diff --git a/app/disposisi/tabel.php b/app/disposisi/tabel.php index f8b3fe8..0fd527d 100644 --- a/app/disposisi/tabel.php +++ b/app/disposisi/tabel.php @@ -97,11 +97,11 @@ s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j -$data=pg_query("SELECT s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id), +$data=pg_query($koneksi,"SELECT s.surat_dari,s.no_surat,s.perihal,(SELECT j.jenis FROM jenis_disposisi j WHERE j.id=s.jenis_disposisi_id), s.no_agenda,s.sm_baca,s.id, (SELECT f.sifat FROM sifat_surat f WHERE f.id=s.sifat_surat_id),s.tgl_surat_masuk,s.tgl_diterima, (SELECT kode FROM kode WHERE id=s.kode_id), - s.tgl_surat_masuk,s.tgl_diterima, + s.tgl_surat_masuk,s.tgl_diterima,s.jam_diterima, MAX(k.tgl_input)".$nb." FROM surat s LEFT OUTER JOIN (SELECT k3.* FROM kirim k3 LEFT OUTER JOIN surat s3 ON (s3.id=k3.surat_id) diff --git a/app/kirim/count.php b/app/kirim/count.php index 7712a33..179e8be 100644 --- a/app/kirim/count.php +++ b/app/kirim/count.php @@ -3,102 +3,19 @@ include("../koneksi.php"); $thn=$_POST['thn_count']; $satker=$_POST['satker_count']; -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='1' -"); -while($r1=pg_fetch_array($d1)) {$b1=$r1[0];} +$output = ''; -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='2' -"); -while($r1=pg_fetch_array($d1)) {$b2=$r1[0];} +for ($i = 1; $i <= 12; $i++) { + $d1=pg_query($koneksi,"SELECT COUNT(DISTINCT s.id) + FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' + AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' + AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' + AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='$i' + "); + while($r1=pg_fetch_array($d1)) { + $output .= $r1[0] . '^'; + } +} -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='3' -"); -while($r1=pg_fetch_array($d1)) {$b3=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='4' -"); -while($r1=pg_fetch_array($d1)) {$b4=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='5' -"); -while($r1=pg_fetch_array($d1)) {$b5=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='6' -"); -while($r1=pg_fetch_array($d1)) {$b6=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='7' -"); -while($r1=pg_fetch_array($d1)) {$b7=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='8' -"); -while($r1=pg_fetch_array($d1)) {$b8=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='9' -"); -while($r1=pg_fetch_array($d1)) {$b9=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='10' -"); -while($r1=pg_fetch_array($d1)) {$b10=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='11' -"); -while($r1=pg_fetch_array($d1)) {$b11=$r1[0];} - -$d1=pg_query("SELECT COUNT(DISTINCT s.id) -FROM surat s WHERE s.satuan_kerja_id='$satker' AND COALESCE(s.tahun,'') <> 'batal' -AND s.jenis_surat_id='3' AND s.jenis_disposisi_id='3' -AND EXTRACT(YEAR FROM DATE(s.tgl_surat_keluar))='$thn' -AND EXTRACT(MONTH FROM DATE(s.tgl_surat_keluar))='12' -"); -while($r1=pg_fetch_array($d1)) {$b12=$r1[0];} - -echo $b1.'^'.$b2.'^'.$b3.'^'.$b4.'^'.$b5.'^'.$b6.'^'.$b7.'^'.$b8.'^'.$b9.'^'.$b10.'^'.$b11.'^'.$b12; +echo rtrim($output, '^'); ?> - diff --git a/app/kirim/crud.php b/app/kirim/crud.php index 755a548..945943f 100644 --- a/app/kirim/crud.php +++ b/app/kirim/crud.php @@ -1,37 +1,34 @@ =$kirim_id))"); - pg_query($koneksi, "DELETE FROM komen WHERE surat_id=$surat_id AND id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id))"); - pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id)"); - $surat_id = $_POST['surat_id']; - $satuan_kerja_id = $_POST['satuan_kerja_id']; - $mn = pg_query($koneksi, "SELECT MIN(k.id) - FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) - LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) - WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id - AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id - "); - while ($rmn = pg_fetch_array($mn)) { - $kirimidmn = $rmn[0]; - } - pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND id=$kirimidmn"); - pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_penginput<>$satuan_kerja_id"); - $cdx = pg_query($koneksi, "SELECT MIN(k.id) - FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) - LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) - WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id - AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id - "); - while ($rcdx = pg_fetch_array($cdx)) { - $kirimid = $rcdx[0]; - } - pg_query($koneksi, "UPDATE kirim SET isi=NULL,dis_baca=NULL,proses_tu=NULL,tgl_diterima=NULL WHERE id=$kirimid"); - } - } - - if ($key == 'simpan_kirim') { - $id = $_POST['surat_id']; - $satuan_kerja_id = $_POST['satuan_kerja_id']; - $perihal = $_POST['perihal']; - $no_surat = $_POST['no_surat']; - $cek_satker = pg_query($koneksi, "SELECT id FROM surat WHERE id='$id'"); - $row_satker = pg_fetch_row($cek_satker); - if ($row_satker[0] > 0) { - $upd_satker = pg_query($koneksi, "UPDATE surat SET perihal='$perihal', no_surat='$no_surat' WHERE id='$id'"); - } else { - $ins_satker = pg_query($koneksi, "INSERT into surat (satuan_kerja_id, perihal,tgl_surat_keluar,jenis_surat_id, jenis_disposisi_id, no_surat ) - VALUES('$satuan_kerja_id','$perihal', NOW(), 3, 3, '$no_surat' ) - "); - } - $d = pg_query($koneksi, "SELECT id FROM surat WHERE satuan_kerja_id=$satuan_kerja_id AND no_surat='$no_surat' AND perihal='$perihal' AND jenis_surat_id=3 AND jenis_disposisi_id=3 - AND id=(SELECT MAX(id) FROM surat WHERE satuan_kerja_id=$satuan_kerja_id AND no_surat='$no_surat' AND perihal='$perihal' AND jenis_surat_id=3 AND jenis_disposisi_id=3)"); - while ($r = pg_fetch_array($d)) { - $surat_id = $r[0]; - } - echo $surat_id; - } - - if ($key == 'simpan_kepada_tl') { + break; + case 'delete_kepada_kr': + $kirim_id = $_POST['id']; + $d = pg_query($koneksi, "SELECT surat_id,isi FROM kirim WHERE id=$kirim_id"); + while ($r = pg_fetch_array($d)) { + $surat_id = $r['surat_id']; + $isi = $r['isi']; + } + if ($isi == 'SM') { + pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id=$kirim_id)"); + pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND id=$kirim_id"); + } else { + pg_query($koneksi, "DELETE FROM scan_komen WHERE komen_id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id))"); + pg_query($koneksi, "DELETE FROM komen WHERE surat_id=$surat_id AND id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id))"); + pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id)"); $surat_id = $_POST['surat_id']; - $kepada = $_POST['kepada']; - $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; - $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' + $satuan_kerja_id = $_POST['satuan_kerja_id']; + $mn = pg_query($koneksi, "SELECT MIN(k.id) + FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) + LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) + WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id + AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id + "); + while ($rmn = pg_fetch_array($mn)) { + $kirimidmn = $rmn[0]; + } + pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND id=$kirimidmn"); + pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_penginput<>$satuan_kerja_id"); + $cdx = pg_query($koneksi, "SELECT MIN(k.id) + FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) + LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) + WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id + AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id + "); + while ($rcdx = pg_fetch_array($cdx)) { + $kirimid = $rcdx[0]; + } + pg_query($koneksi, "UPDATE kirim SET isi=NULL,dis_baca=NULL,proses_tu=NULL,tgl_diterima=NULL WHERE id=$kirimid"); + } + break; + case 'simpan_kirim': + $id = $_POST['surat_id']; + $satuan_kerja_id = $_POST['satuan_kerja_id']; + $perihal = $_POST['perihal']; + $no_surat = $_POST['no_surat']; + + $query = "SELECT id FROM surat WHERE id=$1"; + $result = pg_query_params($koneksi, $query, array($id)); + $row = pg_fetch_row($result); + + if ($row) { + $update_query = "UPDATE surat SET perihal=$1, no_surat=$2 WHERE id=$3"; + pg_query_params($koneksi, $update_query, array($perihal, $no_surat, $id)); + } else { + $insert_query = "INSERT INTO surat (satuan_kerja_id, perihal, tgl_surat_keluar, jenis_surat_id, jenis_disposisi_id, no_surat) + VALUES ($1, $2, NOW(), 3, 3, $3)"; + pg_query_params($koneksi, $insert_query, array($satuan_kerja_id, $perihal, $no_surat)); + } + + // Mendapatkan id surat yang baru saja di-insert atau di-update + $select_query = "SELECT id FROM surat WHERE satuan_kerja_id=$1 AND no_surat=$2 AND perihal=$3 AND jenis_surat_id=3 AND jenis_disposisi_id=3 + ORDER BY id DESC LIMIT 1"; + $result = pg_query_params($koneksi, $select_query, array($satuan_kerja_id, $no_surat, $perihal)); + $surat_id = null; + + if ($row = pg_fetch_row($result)) { + $surat_id = $row[0]; + } + + echo $surat_id; + break; + case 'simpan_kepada_tl': + $surat_id = $_POST['surat_id']; + $kepada = $_POST['kepada']; + $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; + $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); - $row_satker = pg_fetch_row($cek_satker); - if ($row_satker[0] > 0) { - } else { - $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); - while ($rcdata = pg_fetch_array($cdata)) { - $jdata = $rcdata[0]; - } - if ($jdata == 0) { - $inp = pg_query($koneksi, "INSERT INTO kirim ( surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput) + $row_satker = pg_fetch_row($cek_satker); + if ($row_satker[0] > 0) { + } else { + $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); + while ($rcdata = pg_fetch_array($cdata)) { + $jdata = $rcdata[0]; + } + if ($jdata == 0) { + $inp = pg_query($koneksi, "INSERT INTO kirim ( surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput) VALUES ('$surat_id','$kepada',NOW(), NOW(),'$satuan_kerja_penginput') "); - } else { - $inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada,tgl_input, jam_input, satuan_kerja_penginput, isi) + } else { + $inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada,tgl_input, jam_input, satuan_kerja_penginput, isi) VALUES ('$surat_id','$kepada', NOW(), NOW(),'$satuan_kerja_penginput','SM') "); - } } - } - - if ($key == 'simpan_kepada_kr') { - $surat_id = $_POST['surat_id']; + } + break; + case 'simpan_kepada_kr': + $surat_id = $_POST['surat_id']; $kepada = $_POST['kepada']; $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' @@ -160,9 +163,8 @@ if ($key == 'delete_kepada_kr') { "); } } - } - - if ($key == 'jumlah_kepada') { + break; + case 'jumlah_kepada': $surat_id = $_POST['surat_id']; $satuan_kerja_id = $_POST['satuan_kerja_id']; $k = pg_query($koneksi, "SELECT COUNT(*) @@ -172,120 +174,378 @@ if ($key == 'delete_kepada_kr') { while ($rk = pg_fetch_array($k)) { echo $rk[0]; } - } - - if ($key == 'jumlah_jpg') { - $surat_id = $_POST['surat_id']; - $k = pg_query($koneksi, "SELECT COUNT(*) + break; + case 'jumlah_jpg': + $surat_id = $_POST['surat_id']; + $k = pg_query($koneksi, "SELECT COUNT(*) FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) WHERE k.surat_id='$surat_id' AND LOWER(k.file) LIKE '%jpg' AND k.file NOT IN ('') "); - while ($rk = pg_fetch_array($k)) { - echo $rk[0]; - } + while ($rk = pg_fetch_array($k)) { + echo $rk[0]; } - - if ($key == 'jumlah_nonjpg') { - $surat_id = $_POST['surat_id']; - $k = pg_query($koneksi, "SELECT COUNT(*) -FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) -WHERE k.surat_id='$surat_id' AND LOWER(k.file) NOT LIKE '%.jpg' AND k.file NOT IN ('')"); - while ($rk = pg_fetch_array($k)) { - echo $rk[0]; - } -} else -if ($key == 'hapus_kirim') { - $id = $_POST['id']; - /* -pg_query("DELETE FROM scan WHERE surat_id='$id'"); -pg_query("DELETE FROM kirim WHERE surat_id='$id'"); -pg_query("DELETE FROM surat WHERE id='$id'"); -*/ - pg_query($koneksi, "UPDATE surat SET tahun='batal' WHERE id=$id"); -} else -if ($key == 'start_kirim') { - $id = $_POST['id']; - $satuan_kerja_id = $_POST['satuan_kerja_id']; - $d = pg_query($koneksi, "SELECT id,kepada FROM kirim WHERE surat_id='$id' AND satuan_kerja_penginput=$satuan_kerja_id AND satuan_kerja_tujuan IS NULL AND lama IS NULL"); - while (($r = pg_fetch_array($d)) !== FALSE) { - $kirim_id = $r[0]; - $kepada = $r[1]; - $sat = pg_query($koneksi, "SELECT satuan_kerja_id FROM data_user WHERE jabatan_pegawai_id='$kepada'"); - while ($r = pg_fetch_array($sat)) { - $satuan_kerja_tujuan = $r[0]; - } - pg_query($koneksi, "UPDATE kirim SET satuan_kerja_tujuan='$satuan_kerja_tujuan', lama=NOW() WHERE id='$kirim_id'"); - } - $d = pg_query($koneksi, "UPDATE surat SET tgl_kirim=NOW() WHERE id='$id'"); -} else -if ($key == 'kirim_semua') { - $userpeg = pg_query($koneksi, "SELECT DISTINCT j.id, -SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1), -CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) -FROM data_user k -INNER JOIN jabatan_pegawai j ON (j.id=k.jabatan_pegawai_id) -INNER JOIN satuan_kerja s ON (s.id=k.satuan_kerja_id) WHERE LOWER(j.nama) NOT LIKE '%akun lama%' AND k.aktif='t' -ORDER BY SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1) ASC, -CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) ASC -"); - while (($rows = pg_fetch_array($userpeg)) !== FALSE) { - $kpd = $rows[0]; + break; + case 'jumlah_nonjpg': $surat_id = $_POST['surat_id']; - $kepada = $kpd; - $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; - $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); - $row_satker = pg_fetch_row($cek_satker); - if ($row_satker[0] > 0) { - } else { - $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); - while ($rcdata = pg_fetch_array($cdata)) { - $jdata = $rcdata[0]; + $k = pg_query($koneksi, "SELECT COUNT(*) + FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) + WHERE k.surat_id='$surat_id' AND LOWER(k.file) NOT LIKE '%.jpg' AND k.file NOT IN ('')"); + while ($rk = pg_fetch_array($k)) { + echo $rk[0]; + } + break; + case 'hapus_kirim': + $id = $_POST['id']; + pg_query($koneksi, "UPDATE surat SET tahun='batal' WHERE id=$id"); + break; + case 'start_kirim': + $id = $_POST['id']; + $satuan_kerja_id = $_POST['satuan_kerja_id']; + $d = pg_query($koneksi, "SELECT id,kepada FROM kirim WHERE surat_id='$id' AND satuan_kerja_penginput=$satuan_kerja_id AND satuan_kerja_tujuan IS NULL AND lama IS NULL"); + while (($r = pg_fetch_array($d)) !== FALSE) { + $kirim_id = $r[0]; + $kepada = $r[1]; + $sat = pg_query($koneksi, "SELECT satuan_kerja_id FROM data_user WHERE jabatan_pegawai_id='$kepada'"); + while ($r = pg_fetch_array($sat)) { + $satuan_kerja_tujuan = $r[0]; } - if ($jdata == 0) { - $inp = pg_query($koneksi, "INSERT INTO kirim ( - surat_id, - kepada, - tgl_input, - jam_input, - satuan_kerja_penginput - ) VALUES ( - '$surat_id', - '$kepada', - NOW(), - NOW(), - '$satuan_kerja_penginput' - )"); + pg_query($koneksi, "UPDATE kirim SET satuan_kerja_tujuan='$satuan_kerja_tujuan', lama=NOW() WHERE id='$kirim_id'"); + } + $d = pg_query($koneksi, "UPDATE surat SET tgl_kirim=NOW() WHERE id='$id'"); + break; + case 'kirim_semua': + $userpeg = pg_query($koneksi, "SELECT DISTINCT j.id, + SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1), + CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) + FROM data_user k + INNER JOIN jabatan_pegawai j ON (j.id=k.jabatan_pegawai_id) + INNER JOIN satuan_kerja s ON (s.id=k.satuan_kerja_id) WHERE LOWER(j.nama) NOT LIKE '%akun lama%' AND k.aktif='t' + ORDER BY SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1) ASC, + CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) ASC + "); + while (($rows = pg_fetch_array($userpeg)) !== FALSE) { + $kpd = $rows[0]; + $surat_id = $_POST['surat_id']; + $kepada = $kpd; + $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; + $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); + $row_satker = pg_fetch_row($cek_satker); + if ($row_satker[0] > 0) { } else { - $inp = pg_query($koneksi, "INSERT INTO kirim ( - surat_id, - kepada, - tgl_input, - jam_input, - satuan_kerja_penginput, - isi - ) VALUES ( - '$surat_id', - '$kepada', - NOW(), - NOW(), - '$satuan_kerja_penginput', - 'SM' - )"); + $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); + while ($rcdata = pg_fetch_array($cdata)) { + $jdata = $rcdata[0]; + } + if ($jdata == 0) { + $inp = pg_query($koneksi, "INSERT INTO kirim ( + surat_id, + kepada, + tgl_input, + jam_input, + satuan_kerja_penginput + ) VALUES ( + '$surat_id', + '$kepada', + NOW(), + NOW(), + '$satuan_kerja_penginput' + )"); + } else { + $inp = pg_query($koneksi, "INSERT INTO kirim ( + surat_id, + kepada, + tgl_input, + jam_input, + satuan_kerja_penginput, + isi + ) VALUES ( + '$surat_id', + '$kepada', + NOW(), + NOW(), + '$satuan_kerja_penginput', + 'SM' + )"); + } } } - } -} else -if ($key == 'clear_kepada') { - $surat_id = $_POST['surat_id']; - $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; - pg_query($koneksi, "DELETE FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput'"); -} else -if ($key == 'cek_no_surat') { - $no_surat = $_POST['no_surat']; - $satuan_kerja_id = $_POST['satuan_kerja_id']; - $cek = pg_query($koneksi, "SELECT no_surat FROM surat WHERE no_surat='$no_surat' AND jenis_surat_id=3 AND jenis_disposisi_id=3 AND satuan_kerja_id=$satuan_kerja_id AND tahun IS NULL"); - while ($rcek = pg_fetch_array($cek)) { - $hsl = $rcek[0]; - } - echo $hsl; + break; + case 'clear_kepada': + $surat_id = $_POST['surat_id']; + $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; + pg_query($koneksi, "DELETE FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput'"); + break; + case 'cek_no_surat': + $no_surat = $_POST['no_surat']; + $satuan_kerja_id = $_POST['satuan_kerja_id']; + $cek = pg_query($koneksi, "SELECT no_surat FROM surat WHERE no_surat='$no_surat' AND jenis_surat_id=3 AND jenis_disposisi_id=3 AND satuan_kerja_id=$satuan_kerja_id AND tahun IS NULL"); + while ($rcek = pg_fetch_array($cek)) { + $hsl = $rcek[0]; + } + echo $hsl; + break; + case "gagal": + echo 'gagaaaaaal'; + break; } +// if ($key == 'verif_kirim') { +// } +// if ($key == 'delete_kepada_tl') { +// $id = $_POST['id']; +// pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk=$id"); +// pg_query($koneksi, "DELETE FROM kirim WHERE id='$id'"); + +// $surat_id = $_POST['surat_id']; +// $jabatan_pegawai_id = $_POST['jabatan_pegawai_id']; +// pg_query($koneksi, "UPDATE kirim SET isi=NULL WHERE id=( +// SELECT MIN(k.id) +// FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) +// INNER JOIN data_user u ON (u.satuan_kerja_id=k.satuan_kerja_penginput) +// WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id AND u.jabatan_pegawai_id=$jabatan_pegawai_id AND k.satuan_kerja_tujuan IS NULL) +// "); +// } + +// if ($key == 'delete_kepada_kr') { +// $kirim_id = $_POST['id']; +// $d = pg_query($koneksi, "SELECT surat_id,isi FROM kirim WHERE id=$kirim_id"); +// while ($r = pg_fetch_array($d)) { +// $surat_id = $r['surat_id']; +// $isi = $r['isi']; +// } +// if ($isi == 'SM') { +// pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id=$kirim_id)"); +// pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND id=$kirim_id"); +// } else { +// pg_query($koneksi, "DELETE FROM scan_komen WHERE komen_id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id))"); +// pg_query($koneksi, "DELETE FROM komen WHERE surat_id=$surat_id AND id IN (SELECT komen_id FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id))"); +// pg_query($koneksi, "DELETE FROM teruskan WHERE kirim_id_untuk IN (SELECT id FROM kirim WHERE surat_id=$surat_id AND id>=$kirim_id)"); +// $surat_id = $_POST['surat_id']; +// $satuan_kerja_id = $_POST['satuan_kerja_id']; +// $mn = pg_query($koneksi, "SELECT MIN(k.id) +// FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) +// LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) +// WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id +// AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id +// "); +// while ($rmn = pg_fetch_array($mn)) { +// $kirimidmn = $rmn[0]; +// } +// pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND id=$kirimidmn"); +// pg_query($koneksi, "DELETE FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_penginput<>$satuan_kerja_id"); +// $cdx = pg_query($koneksi, "SELECT MIN(k.id) +// FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) +// LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) +// WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id +// AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id +// "); +// while ($rcdx = pg_fetch_array($cdx)) { +// $kirimid = $rcdx[0]; +// } +// pg_query($koneksi, "UPDATE kirim SET isi=NULL,dis_baca=NULL,proses_tu=NULL,tgl_diterima=NULL WHERE id=$kirimid"); +// } +// } + +// if ($key == 'simpan_kirim') { +// $id = $_POST['surat_id']; +// $satuan_kerja_id = $_POST['satuan_kerja_id']; +// $perihal = $_POST['perihal']; +// $no_surat = $_POST['no_surat']; +// $cek_satker = pg_query($koneksi, "SELECT id FROM surat WHERE id='$id'"); +// $row_satker = pg_fetch_row($cek_satker); +// if ($row_satker[0] > 0) { +// $upd_satker = pg_query($koneksi, "UPDATE surat SET perihal='$perihal', no_surat='$no_surat' WHERE id='$id'"); +// } else { +// $ins_satker = pg_query($koneksi, "INSERT into surat (satuan_kerja_id, perihal,tgl_surat_keluar,jenis_surat_id, jenis_disposisi_id, no_surat ) +// VALUES('$satuan_kerja_id','$perihal', NOW(), 3, 3, '$no_surat' ) +// "); +// } +// $d = pg_query($koneksi, "SELECT id FROM surat WHERE satuan_kerja_id=$satuan_kerja_id AND no_surat='$no_surat' AND perihal='$perihal' AND jenis_surat_id=3 AND jenis_disposisi_id=3 +// AND id=(SELECT MAX(id) FROM surat WHERE satuan_kerja_id=$satuan_kerja_id AND no_surat='$no_surat' AND perihal='$perihal' AND jenis_surat_id=3 AND jenis_disposisi_id=3)"); +// while ($r = pg_fetch_array($d)) { +// $surat_id = $r[0]; +// } +// echo $surat_id; +// } + +// if ($key == 'simpan_kepada_tl') { +// $surat_id = $_POST['surat_id']; +// $kepada = $_POST['kepada']; +// $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; +// $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' +// AND satuan_kerja_tujuan IS NULL"); +// $row_satker = pg_fetch_row($cek_satker); +// if ($row_satker[0] > 0) { +// } else { +// $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); +// while ($rcdata = pg_fetch_array($cdata)) { +// $jdata = $rcdata[0]; +// } +// if ($jdata == 0) { +// $inp = pg_query($koneksi, "INSERT INTO kirim ( surat_id, kepada, tgl_input, jam_input, satuan_kerja_penginput) +// VALUES ('$surat_id','$kepada',NOW(), NOW(),'$satuan_kerja_penginput') +// "); +// } else { +// $inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada,tgl_input, jam_input, satuan_kerja_penginput, isi) +// VALUES ('$surat_id','$kepada', NOW(), NOW(),'$satuan_kerja_penginput','SM') +// "); +// } +// } +// } + +// if ($key == 'simpan_kepada_kr') { +// $surat_id = $_POST['surat_id']; +// $kepada = $_POST['kepada']; +// $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; +// $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' +// AND satuan_kerja_tujuan IS NULL +// "); +// $row_satker = pg_fetch_row($cek_satker); +// if ($row_satker[0] > 0) { +// } else { +// $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); +// while ($rcdata = pg_fetch_array($cdata)) { +// $jdata = $rcdata[0]; +// } +// $cdata1 = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND isi='SM'"); +// while ($rcdata1 = pg_fetch_array($cdata1)) { +// $jdata1 = $rcdata1[0]; +// } +// if (($jdata == 0) && ($jdata1 == 0)) { +// $inp = pg_query($koneksi, "INSERT INTO kirim (surat_id,kepada, tgl_input,jam_input,satuan_kerja_penginput) +// VALUES ('$surat_id','$kepada',NOW(),NOW(),'$satuan_kerja_penginput') +// "); +// } else { +// $inp = pg_query($koneksi, "INSERT INTO kirim (surat_id, kepada, tgl_input,jam_input,satuan_kerja_penginput,isi) +// VALUES ('$surat_id','$kepada', NOW(), NOW(),'$satuan_kerja_penginput', 'SM') +// "); +// } +// } +// } + +// if ($key == 'jumlah_kepada') { +// $surat_id = $_POST['surat_id']; +// $satuan_kerja_id = $_POST['satuan_kerja_id']; +// $k = pg_query($koneksi, "SELECT COUNT(*) +// FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) +// LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) +// WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id"); +// while ($rk = pg_fetch_array($k)) { +// echo $rk[0]; +// } +// } + +// if ($key == 'jumlah_jpg') { +// $surat_id = $_POST['surat_id']; +// $k = pg_query($koneksi, "SELECT COUNT(*) +// FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) +// WHERE k.surat_id='$surat_id' AND LOWER(k.file) LIKE '%jpg' AND k.file NOT IN ('') +// "); +// while ($rk = pg_fetch_array($k)) { +// echo $rk[0]; +// } +// } + +// if ($key == 'jumlah_nonjpg') { +// $surat_id = $_POST['surat_id']; +// $k = pg_query($koneksi, "SELECT COUNT(*) +// FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) +// WHERE k.surat_id='$surat_id' AND LOWER(k.file) NOT LIKE '%.jpg' AND k.file NOT IN ('')"); +// while ($rk = pg_fetch_array($k)) { +// echo $rk[0]; +// } +// } +// if ($key == 'hapus_kirim') { +// $id = $_POST['id']; +// /* +// pg_query("DELETE FROM scan WHERE surat_id='$id'"); +// pg_query("DELETE FROM kirim WHERE surat_id='$id'"); +// pg_query("DELETE FROM surat WHERE id='$id'"); +// */ +// pg_query($koneksi, "UPDATE surat SET tahun='batal' WHERE id=$id"); +// } +// if ($key == 'start_kirim') { +// $id = $_POST['id']; +// $satuan_kerja_id = $_POST['satuan_kerja_id']; +// $d = pg_query($koneksi, "SELECT id,kepada FROM kirim WHERE surat_id='$id' AND satuan_kerja_penginput=$satuan_kerja_id AND satuan_kerja_tujuan IS NULL AND lama IS NULL"); +// while (($r = pg_fetch_array($d)) !== FALSE) { +// $kirim_id = $r[0]; +// $kepada = $r[1]; +// $sat = pg_query($koneksi, "SELECT satuan_kerja_id FROM data_user WHERE jabatan_pegawai_id='$kepada'"); +// while ($r = pg_fetch_array($sat)) { +// $satuan_kerja_tujuan = $r[0]; +// } +// pg_query($koneksi, "UPDATE kirim SET satuan_kerja_tujuan='$satuan_kerja_tujuan', lama=NOW() WHERE id='$kirim_id'"); +// } +// $d = pg_query($koneksi, "UPDATE surat SET tgl_kirim=NOW() WHERE id='$id'"); +// } else +// if ($key == 'kirim_semua') { +// $userpeg = pg_query($koneksi, "SELECT DISTINCT j.id, +// SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1), +// CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) +// FROM data_user k +// INNER JOIN jabatan_pegawai j ON (j.id=k.jabatan_pegawai_id) +// INNER JOIN satuan_kerja s ON (s.id=k.satuan_kerja_id) WHERE LOWER(j.nama) NOT LIKE '%akun lama%' AND k.aktif='t' +// ORDER BY SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',1) ASC, +// CAST(SPLIT_PART(CASE WHEN s.kode_satker='' THEN '999.0' ELSE s.kode_satker END,'.',2) AS INTEGER) ASC +// "); +// while (($rows = pg_fetch_array($userpeg)) !== FALSE) { +// $kpd = $rows[0]; +// $surat_id = $_POST['surat_id']; +// $kepada = $kpd; +// $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; +// $cek_satker = pg_query($koneksi, "SELECT id FROM kirim WHERE surat_id='$surat_id' AND kepada='$kepada' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); +// $row_satker = pg_fetch_row($cek_satker); +// if ($row_satker[0] > 0) { +// } else { +// $cdata = pg_query($koneksi, "SELECT COUNT(*) FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput' AND satuan_kerja_tujuan IS NULL"); +// while ($rcdata = pg_fetch_array($cdata)) { +// $jdata = $rcdata[0]; +// } +// if ($jdata == 0) { +// $inp = pg_query($koneksi, "INSERT INTO kirim ( +// surat_id, +// kepada, +// tgl_input, +// jam_input, +// satuan_kerja_penginput +// ) VALUES ( +// '$surat_id', +// '$kepada', +// NOW(), +// NOW(), +// '$satuan_kerja_penginput' +// )"); +// } else { +// $inp = pg_query($koneksi, "INSERT INTO kirim ( +// surat_id, +// kepada, +// tgl_input, +// jam_input, +// satuan_kerja_penginput, +// isi +// ) VALUES ( +// '$surat_id', +// '$kepada', +// NOW(), +// NOW(), +// '$satuan_kerja_penginput', +// 'SM' +// )"); +// } +// } +// } +// } +// if ($key == 'clear_kepada') { +// $surat_id = $_POST['surat_id']; +// $satuan_kerja_penginput = $_POST['satuan_kerja_penginput']; +// pg_query($koneksi, "DELETE FROM kirim WHERE surat_id='$surat_id' AND satuan_kerja_penginput='$satuan_kerja_penginput'"); +// } else +// if ($key == 'cek_no_surat') { +// $no_surat = $_POST['no_surat']; +// $satuan_kerja_id = $_POST['satuan_kerja_id']; +// $cek = pg_query($koneksi, "SELECT no_surat FROM surat WHERE no_surat='$no_surat' AND jenis_surat_id=3 AND jenis_disposisi_id=3 AND satuan_kerja_id=$satuan_kerja_id AND tahun IS NULL"); +// while ($rcek = pg_fetch_array($cek)) { +// $hsl = $rcek[0]; +// } +// echo $hsl; +// } diff --git a/app/kirim/main.php b/app/kirim/main.php index 78f992b..f922af9 100644 --- a/app/kirim/main.php +++ b/app/kirim/main.php @@ -269,15 +269,16 @@ if (($disp_thn == NULL) || ($disp_thn == '')) { $('#kirim_bos').hide(); $('#kirim_bos').click(function() { - var key1 = 'verif_kirim'; var surat_id = $('#surat_id_cek').val(); var satuan_kerja_id = $('#satuan_kerja_idcek').val(); $.ajax({ type: "POST", url: "app/kirim/crud.php", - data: 'surat_id=' + surat_id + - '&satuan_kerja_id=' + satuan_kerja_id + - '&key=' + key1, + data: { + surat_id: surat_id, + satuan_kerja_id: satuan_kerja_id, + key: 'verif_kirim' + }, success: function(data) { var chars = data.split('$%^'); var no_surat = $('#no_surat').val(); @@ -291,16 +292,17 @@ if (($disp_thn == NULL) || ($disp_thn == '')) { } else { var x = confirm("Anda yakin ingin mengirim ?"); if (x) { - var key = "start_kirim"; var id = $('#surat_id_cek').val(); var thn2 = $('#disp_thn').val(); var bln2 = $('#disp_bln').val(); $.ajax({ type: "POST", url: "app/kirim/crud.php", - data: 'id=' + id + - '&satuan_kerja_id=' + satuan_kerja_id + - '&key=' + key, + data: { + id: id, + satuan_kerja_id: satuan_kerja_id, + key: 'start_kirim' + }, success: function(data) { alert('Surat terkirim ke tujuan..'); $('#modal_kirim2').modal('hide'); @@ -346,74 +348,56 @@ if (($disp_thn == NULL) || ($disp_thn == '')) { $.ajax({ type: "POST", url: "app/kirim/count.php", - data: 'thn_count=' + thn_count + - '&satker_count=' + satker_count, + data: { + thn_count: thn_count, + satker_count: satker_count + }, success: function(data) { var b = data.split('^'); - if (b[0] == 0) { - $('#cn1').html('JANUARI'); - } else { - $('#cn1').html('JANUARI (' + b[0] + ')'); - } - if (b[1] == 0) { - $('#cn2').html('PEBRUARI'); - } else { - $('#cn2').html('PEBRUARI (' + b[1] + ')'); - } - if (b[2] == 0) { - $('#cn3').html('MARET'); - } else { - $('#cn3').html('MARET (' + b[2] + ')'); - } - if (b[3] == 0) { - $('#cn4').html('APRIL'); - } else { - $('#cn4').html('APRIL (' + b[3] + ')'); - } - if (b[4] == 0) { - $('#cn5').html('MEI'); - } else { - $('#cn5').html('MEI (' + b[4] + ')'); - } - if (b[5] == 0) { - $('#cn6').html('JUNI'); - } else { - $('#cn6').html('JUNI (' + b[5] + ')'); - } - if (b[6] == 0) { - $('#cn7').html('JULI'); - } else { - $('#cn7').html('JULI (' + b[6] + ')'); - } - if (b[7] == 0) { - $('#cn8').html('AGUSTUS'); - } else { - $('#cn8').html('AGUSTUS (' + b[7] + ')'); - } - if (b[8] == 0) { - $('#cn9').html('SEPTEMBER'); - } else { - $('#cn9').html('SEPTEMBER (' + b[8] + ')'); - } - if (b[9] == 0) { - $('#cn10').html('OKTOBER'); - } else { - $('#cn10').html('OKTOBER (' + b[9] + ')'); - } - if (b[10] == 0) { - $('#cn11').html('NOPEMBER'); - } else { - $('#cn11').html('NOPEMBER (' + b[10] + ')'); - } - if (b[11] == 0) { - $('#cn12').html('DESEMBER'); - } else { - $('#cn12').html('DESEMBER (' + b[11] + ')'); + for (var i = 0; i < 12; i++) { + var month = ''; + switch (i) { + case 0: + month = 'JANUARI'; + break; + case 1: + month = 'PEBRUARI'; + break; + case 2: + month = 'MARET'; + break; + case 3: + month = 'APRIL'; + break; + case 4: + month = 'MEI'; + break; + case 5: + month = 'JUNI'; + break; + case 6: + month = 'JULI'; + break; + case 7: + month = 'AGUSTUS'; + break; + case 8: + month = 'SEPTEMBER'; + break; + case 9: + month = 'OKTOBER'; + break; + case 10: + month = 'NOPEMBER'; + break; + case 11: + month = 'DESEMBER'; + break; + } } } }); } - hitung_surat(); $('#thn').focusout(function() { hitung_surat(); @@ -440,7 +424,6 @@ if (($disp_thn == NULL) || ($disp_thn == '')) { bln2: bln2 }); } - $('#bln').change(function() { var thn2 = $('#thn').val(); var bln2 = $('#bln').val(); @@ -469,7 +452,7 @@ if (($disp_thn == NULL) || ($disp_thn == '')) { var thn2 = $('#thn').val(); var bln2 = $('#bln').val(); var sat = $('#sat').val(); - /* if (sat=='3') { */ + if (sat == '172') { $('#tabel_kirim').load("app/kirim/tabel.php", { satker: sat, diff --git a/app/kirim/modal_edit.php b/app/kirim/modal_edit.php index 5d4f118..285ee06 100644 --- a/app/kirim/modal_edit.php +++ b/app/kirim/modal_edit.php @@ -13,9 +13,9 @@ while ($r = pg_fetch_array($d)) { ?>
- - - + + +
@@ -29,7 +29,7 @@ while ($r = pg_fetch_array($d)) {
TUJUAN

-

+

LAMPIRAN


@@ -74,16 +74,18 @@ while ($r = pg_fetch_array($d)) { } else { var satuan_kerja_id = sess_satker; } - var key = 'simpan_kirim'; + // var key = 'simpan_kirim'; if ((!no_surat) && (!perihal)) {} else { $.ajax({ type: "POST", url: "app/kirim/crud.php", - data: 'surat_id=' + surat_id + - '&perihal=' + perihal + - '&no_surat=' + no_surat + - '&satuan_kerja_id=' + satuan_kerja_id + - '&key=' + key, + data: { + surat_id: surat_id, + perihal: perihal, + no_surat: no_surat, + satuan_kerja_id: satuan_kerja_id, + key: 'simpan_kirim' + }, success: function(data) { $('#surat_id_cek').val(data); var surat_id = $('#surat_id_cek').val(); @@ -93,10 +95,12 @@ while ($r = pg_fetch_array($d)) { satuan_kerja_id: satuan_kerja_id }); $('#lampedit').load('app/kirim/upd_file.php', { - id: surat_id + id: surat_id, + satuan_kerja_id: satuan_kerja_id }); $('#scanedit').load('app/kirim/modal_dok.php', { - id: surat_id + id: surat_id, + satuan_kerja_id: satuan_kerja_id }); var thn2 = $('#thn').val(); var bln2 = $('#bln').val(); @@ -129,36 +133,36 @@ while ($r = pg_fetch_array($d)) { } } - $('#no_surat').focusout(function() { - var d = $('#no_surat_cek').val(); - var b = $('#no_surat').val(); - var c = $.trim(b); - if (c == d) {} else { + // $('#no_surat').focusout(function() { + // var d = $('#no_surat_cek').val(); + // var b = $('#no_surat').val(); + // var c = $.trim(b); + // if (c == d) {} else { - var a = c.replace(/ /g, ''); - var satuan_kerja_id = $('#satuan_kerja_id_cek').val(); - if (!a) {} else { - var key = 'cek_no_surat' - $.ajax({ - type: "POST", - url: "app/kirim/crud.php", - data: { - no_surat: a, - satuan_kerja_id: satuan_kerja_id, - key: key - }, - success: function(data) { - if (data == 0) { - simpkr(); - } else { - alert('Nomor Surat sudah ada.'); - $('#no_surat').val('').focus(); - } - } - }); - } - } - }); + // var a = c.replace(/ /g, ''); + // var satuan_kerja_id = $('#satuan_kerja_id_cek').val(); + // if (!a) {} else { + // var key = 'cek_no_surat' + // $.ajax({ + // type: "POST", + // url: "app/kirim/crud.php", + // data: { + // no_surat: a, + // satuan_kerja_id: satuan_kerja_id, + // key: key + // }, + // success: function(data) { + // if (data == 0) { + // simpkr(); + // } else { + // alert('Nomor Surat sudah ada.'); + // $('#no_surat').val('').focus(); + // } + // } + // }); + // } + // } + // }); $('#perihal').focusout(function() { simpkr(); diff --git a/app/kirim/modal_kepada.php b/app/kirim/modal_kepada.php index 7e6dd60..2178e83 100644 --- a/app/kirim/modal_kepada.php +++ b/app/kirim/modal_kepada.php @@ -1,212 +1,266 @@ - - - - -
- - - - - - - - - - -
- - - + + +
+
+ + + + + + + + + + +
+ + +
-
- -
-
- -
-
-
-
- - \ No newline at end of file + $('#tabel_kepada_kr').load('app/kirim/tabel_kepada.php', { + surat_id: surat_id, + satuan_kerja_id: stk + }); + var key = "jumlah_kepada"; + $.ajax({ + type: "POST", + url: "app/kirim/crud.php", + data: 'surat_id=' + surat_id + + '&satuan_kerja_id=' + stk + + '&key=' + key, + success: function(data) { + $('.sp' + surat_id).html(' (' + data + ')'); + $('.xp' + surat_id).html(data); + $('#kepada_kr').first().focus().selected(); + } + }); + } + }); + } else {} + }); + \ No newline at end of file diff --git a/app/kirim/tabel.php b/app/kirim/tabel.php index 8357709..345824d 100644 --- a/app/kirim/tabel.php +++ b/app/kirim/tabel.php @@ -1,19 +1,26 @@ - @@ -23,310 +30,310 @@ $("#tabel_data_kirim").DataTable({"paging": true,"lengthChange": true,"searching - - - - - - - - - - - - - - - - - - 'batal' - ".($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(tgl_surat_keluar))='$thn2'")." - ".($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(tgl_surat_keluar))='$bln2'")." - ORDER BY tgl_surat_keluar DESC - "); - while($r=pg_fetch_array($data)) { - - $surat_id=$r[3]; - $satuan_kerja_id=$r['satuan_kerja_id']; - /* - $k=pg_query("SELECT COUNT(*) - FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) - WHERE k.kepada IS NOT NULL AND k.surat_id='$surat_id'"); - while($rk=pg_fetch_array($k)) {$kpd=$rk[0];} - */ - - /* - $k=pg_query("SELECT COUNT(*) - FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) - LEFT OUTER JOIN teruskan t ON (k.id=t.kirim_id_untuk) - WHERE k.kepada IS NOT NULL AND k.surat_id=$surat_id AND t.jabatan_dari IS NULL AND k.satuan_kerja_penginput=$satuan_kerja_id"); - while($rk=pg_fetch_array($k)) {$kpd=$rk[0];} - - $l=pg_query("SELECT COUNT(*) - FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) - WHERE k.surat_id='$surat_id' AND LOWER(k.file) LIKE '%jpg' AND k.file NOT IN ('')"); - while($rl=pg_fetch_array($l)) {$tj=$rl[0];} +
No SuratPerihalTgl KirimNo SuratTools
+ + + + + + + + + + + + + + + + + 'batal' + " . ($thn2 == '' ? "" : "AND EXTRACT(YEAR FROM DATE(tgl_surat_keluar))='$thn2'") . " + " . ($bln2 == '0' ? "" : "AND EXTRACT(MONTH FROM DATE(tgl_surat_keluar))='$bln2'") . " + ORDER BY tgl_surat_keluar DESC + "); + while ($r = pg_fetch_array($data)) { + $surat_id = $r[3]; + $satuan_kerja_id = $r['satuan_kerja_id']; + /* + $k=pg_query("SELECT COUNT(*) + FROM kirim k INNER JOIN surat s ON (k.surat_id=s.id) + WHERE k.kepada IS NOT NULL AND k.surat_id='$surat_id'"); + while($rk=pg_fetch_array($k)) {$kpd=$rk[0];} + */ - $m=pg_query("SELECT COUNT(*) - FROM scan k INNER JOIN surat s ON (k.surat_id=s.id) - WHERE k.surat_id='$surat_id' AND LOWER(k.file) NOT LIKE '%jpg' AND k.file NOT IN ('')"); - while($rm=pg_fetch_array($m)) {$tm=$rm[0];} - - $n=pg_query("SELECT COUNT(*) FROM kirim WHERE surat_id=$surat_id AND satuan_kerja_tujuan IS NULL AND satuan_kerja_penginput=$satuan_kerja_id"); - while($rn=pg_fetch_array($n)) {$tn=$rn[0];} - */ - $to=''; - /*$o=pg_query("SELECT jabatan_untuk FROM teruskan WHERE surat_id=$surat_id AND id=(SELECT MAX(id) FROM teruskan WHERE surat_id=$surat_id)"); - while($ro=pg_fetch_array($o)) {$to=$ro[0];}*/ - - $o=pg_query($koneksi,"SELECT t.jabatan_untuk FROM teruskan t INNER JOIN kirim k ON (k.id=t.kirim_id_untuk) WHERE t.surat_id=$surat_id - AND k.isi IS NULL AND t.id=(SELECT MAX(t2.id) FROM teruskan t2 INNER JOIN kirim k2 ON (k2.id=t2.kirim_id_untuk) WHERE t2.surat_id=$surat_id - AND k2.isi IS NULL)"); - while($ro=pg_fetch_array($o)) {$to=$ro[0];} - - $p=pg_query($koneksi,"SELECT u.jabatan_pegawai_id FROM data_user u INNER JOIN jabatan_pegawai j ON (j.id=u.jabatan_pegawai_id) WHERE u.satuan_kerja_id=$satuan_kerja_id"); - while($rp=pg_fetch_array($p)) {$tp=$rp[0];} - ?> - - - - - - - - - + + + + + - - - - - - - - + + + + + + + + + +
No SuratPerihalTgl KirimNo SuratTools
- - - - - - - - + Belum Dikirim' : date('d-m-Y H:i', strtotime($r['tgl_kirim'])); ?> + + + + + + + + - - - - -
- + \ No newline at end of file + $("#tabel_data_kirim").on('click', '.kepada_kirim', function() { + var id = $(this).attr('id'); + var satuan_kerja_id = $('#satuan_kerja_idcek').val(); + $('#modal_kepada').modal('show'); + $('#modal_body_kepada').html(""); + $.ajax({ + type: "POST", + url: "app/kirim/modal_kepada.php", + data: 'id=' + id + + '&satuan_kerja_id=' + satuan_kerja_id, + success: function(data) { + $('#modal_body_kepada').html(data); + $('#kepada_k').first().focus().selected(); + } + }); + }); + + $("#tabel_data_kirim").on('click', '.jpg_kirim', function() { + var id = $(this).attr('id'); + $('#modal_pic').modal('show'); + $('#modal_body_pic').html(""); + $.ajax({ + type: "POST", + url: "app/kirim/modal_dok.php", + data: 'id=' + id, + success: function(data) { + $('#modal_body_pic').html(data); + } + }); + }); + + $("#tabel_data_kirim").on('click', '.file_kirim', function() { + var id = $(this).attr('id'); + $('#modal_file').modal('show'); + $('#modal_body_file').html(""); + $.ajax({ + type: "POST", + url: "app/kirim/upd_file.php", + data: 'id=' + id, + success: function(data) { + $('#modal_body_file').html(data); + } + }); + }); + + $("#tabel_data_kirim").on('click', '.proses_tl', function() { + var currentRow = $(this).closest("tr"); + var perihal = currentRow.find("td:eq(4)").text(); + var id = $(this).attr('id'); + var cek_satker = $('#satuan_kerja_idcek').val(); + var key = 'kirim_awal'; + $('#modal_tl').modal('show'); + $('#modal_body_tl').html(""); + $.ajax({ + type: "POST", + url: "app/tindaklanjut/main.php", + data: 'id=' + id + + '&perihal=' + perihal + + '&cek_satker=' + cek_satker + + '&key=' + key, + success: function(data) { + $('#modal_body_tl').html(data); + $('#inkomen').hide(); + } + }); + }); + + + $("#tabel_data_kirim").on('click', '.hapus_kirim', function() { + var x = confirm("Anda yakin ingin menghapus ?"); + if (x) { + var key = "hapus_kirim"; + var id = $(this).attr('id'); + var rowElement = $(this).parent().parent(); + $.ajax({ + type: "POST", + url: "app/kirim/crud.php", + data: 'id=' + id + + '&key=' + key, + success: function(data) { + rowElement.fadeOut(500).remove(); + // $('#tabel_data_kirim').load("app/kirim/tabel.php"); // memuat ulang tabel dengan id yang sama + } + }); + } else {} + }); + + /* + $("#tabel_data_kirim").on('click','.start_kirim',function(){ + var currentRow=$(this).closest("tr"); + var no_surat = currentRow.find("td:eq(3)").text(); + var perihal = currentRow.find("td:eq(4)").text(); + var jml_pic = currentRow.find("td:eq(6)").text(); + var jml_file = currentRow.find("td:eq(7)").text(); + var jml_kpd = currentRow.find("td:eq(8)").text(); + var satuan_kerja_id = $('#satuan_kerja_idcek').val(); + if ((!no_surat) || (!perihal) || ((jml_pic=='0') && (jml_file=='0')) || (jml_kpd=='0')) { + alert('No surat, Perihal, Lampiran, dan Kepada harus di-isi, Mohon dicek kembali..'); + } else { + var x = confirm("Anda yakin ingin mengirim ?"); + if (x) { + var key = "start_kirim"; + var id = $(this).attr('id'); + var thn2 = $('#disp_thn').val(); + var bln2 = $('#disp_bln').val(); + $.ajax({ + type: "POST", + url: "app/kirim/crud.php", + data: 'id='+id + +'&satuan_kerja_id='+satuan_kerja_id + +'&key='+key, + success: function(data){ + alert('Surat terkirim ke tujuan..'); + var thn2 = $('#disp_thn').val(); + var bln2 = $('#disp_bln').val(); + var sat = $('#satuan_kerja_id').val(); + if (sat=='172') { + $('#tabel_kirim').load("app/kirim/tabel.php",{satker:sat,jenis:sess_jenis,sess_nama:sess_nama,thn2:thn2,bln2:bln2}); + } else { + $('#tabel_kirim').load("app/kirim/tabel.php",{satker:sess_satker,jenis:sess_jenis,sess_nama:sess_nama,thn2:thn2,bln2:bln2}); + } + } + }); + } else {} + } + }); + */ + \ No newline at end of file diff --git a/app/kirim/tabel_kepada.php b/app/kirim/tabel_kepada.php index 867ad6a..930eccd 100644 --- a/app/kirim/tabel_kepada.php +++ b/app/kirim/tabel_kepada.php @@ -35,12 +35,26 @@ $satuan_kerja_id = $_POST['satuan_kerja_id']; @@ -53,10 +67,10 @@ $satuan_kerja_id = $_POST['satuan_kerja_id']; } else { ?> diff --git a/app/koneksi.php b/app/koneksi.php index 57af884..935756e 100644 --- a/app/koneksi.php +++ b/app/koneksi.php @@ -4,7 +4,7 @@ $db_port = "5432"; $db_username = "postgres"; $db_password = "rumbuk"; - $db_name = "simdistu"; + $db_name = "simdistudev"; $koneksi = pg_connect("host=$db_hostname port=$db_port dbname=$db_name user=$db_username password=$db_password"); diff --git a/assets/vendor/sweetalert2/sweetalert2.all.js b/assets/vendor/sweetalert2/sweetalert2.all.js new file mode 100644 index 0000000..dad8e34 --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.all.js @@ -0,0 +1,3067 @@ +/*! +* sweetalert2 v9.10.8 +* Released under the MIT License. +*/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Sweetalert2 = factory()); +}(this, function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); + } + + function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; + } + + function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); + } + + var consolePrefix = 'SweetAlert2:'; + /** + * Filter the unique values into a new array + * @param arr + */ + + var uniqueArray = function uniqueArray(arr) { + var result = []; + + for (var i = 0; i < arr.length; i++) { + if (result.indexOf(arr[i]) === -1) { + result.push(arr[i]); + } + } + + return result; + }; + /** + * Capitalize the first letter of a string + * @param str + */ + + var capitalizeFirstLetter = function capitalizeFirstLetter(str) { + return str.charAt(0).toUpperCase() + str.slice(1); + }; + /** + * Returns the array ob object values (Object.values isn't supported in IE11) + * @param obj + */ + + var objectValues = function objectValues(obj) { + return Object.keys(obj).map(function (key) { + return obj[key]; + }); + }; + /** + * Convert NodeList to Array + * @param nodeList + */ + + var toArray = function toArray(nodeList) { + return Array.prototype.slice.call(nodeList); + }; + /** + * Standardise console warnings + * @param message + */ + + var warn = function warn(message) { + console.warn("".concat(consolePrefix, " ").concat(message)); + }; + /** + * Standardise console errors + * @param message + */ + + var error = function error(message) { + console.error("".concat(consolePrefix, " ").concat(message)); + }; + /** + * Private global state for `warnOnce` + * @type {Array} + * @private + */ + + var previousWarnOnceMessages = []; + /** + * Show a console warning, but only if it hasn't already been shown + * @param message + */ + + var warnOnce = function warnOnce(message) { + if (!(previousWarnOnceMessages.indexOf(message) !== -1)) { + previousWarnOnceMessages.push(message); + warn(message); + } + }; + /** + * Show a one-time console warning about deprecated params/methods + */ + + var warnAboutDepreation = function warnAboutDepreation(deprecatedParam, useInstead) { + warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead.")); + }; + /** + * If `arg` is a function, call it (with no arguments or context) and return the result. + * Otherwise, just pass the value through + * @param arg + */ + + var callIfFunction = function callIfFunction(arg) { + return typeof arg === 'function' ? arg() : arg; + }; + var isPromise = function isPromise(arg) { + return arg && Promise.resolve(arg) === arg; + }; + + var DismissReason = Object.freeze({ + cancel: 'cancel', + backdrop: 'backdrop', + close: 'close', + esc: 'esc', + timer: 'timer' + }); + + var isJqueryElement = function isJqueryElement(elem) { + return _typeof(elem) === 'object' && elem.jquery; + }; + + var isElement = function isElement(elem) { + return elem instanceof Element || isJqueryElement(elem); + }; + + var argsToParams = function argsToParams(args) { + var params = {}; + + if (_typeof(args[0]) === 'object' && !isElement(args[0])) { + _extends(params, args[0]); + } else { + ['title', 'html', 'icon'].forEach(function (name, index) { + var arg = args[index]; + + if (typeof arg === 'string' || isElement(arg)) { + params[name] = arg; + } else if (arg !== undefined) { + error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg))); + } + }); + } + + return params; + }; + + var swalPrefix = 'swal2-'; + var prefix = function prefix(items) { + var result = {}; + + for (var i in items) { + result[items[i]] = swalPrefix + items[i]; + } + + return result; + }; + var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); + var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); + + var getContainer = function getContainer() { + return document.body.querySelector(".".concat(swalClasses.container)); + }; + var elementBySelector = function elementBySelector(selectorString) { + var container = getContainer(); + return container ? container.querySelector(selectorString) : null; + }; + + var elementByClass = function elementByClass(className) { + return elementBySelector(".".concat(className)); + }; + + var getPopup = function getPopup() { + return elementByClass(swalClasses.popup); + }; + var getIcons = function getIcons() { + var popup = getPopup(); + return toArray(popup.querySelectorAll(".".concat(swalClasses.icon))); + }; + var getIcon = function getIcon() { + var visibleIcon = getIcons().filter(function (icon) { + return isVisible(icon); + }); + return visibleIcon.length ? visibleIcon[0] : null; + }; + var getTitle = function getTitle() { + return elementByClass(swalClasses.title); + }; + var getContent = function getContent() { + return elementByClass(swalClasses.content); + }; + var getHtmlContainer = function getHtmlContainer() { + return elementByClass(swalClasses['html-container']); + }; + var getImage = function getImage() { + return elementByClass(swalClasses.image); + }; + var getProgressSteps = function getProgressSteps() { + return elementByClass(swalClasses['progress-steps']); + }; + var getValidationMessage = function getValidationMessage() { + return elementByClass(swalClasses['validation-message']); + }; + var getConfirmButton = function getConfirmButton() { + return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); + }; + var getCancelButton = function getCancelButton() { + return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); + }; + var getActions = function getActions() { + return elementByClass(swalClasses.actions); + }; + var getHeader = function getHeader() { + return elementByClass(swalClasses.header); + }; + var getFooter = function getFooter() { + return elementByClass(swalClasses.footer); + }; + var getTimerProgressBar = function getTimerProgressBar() { + return elementByClass(swalClasses['timer-progress-bar']); + }; + var getCloseButton = function getCloseButton() { + return elementByClass(swalClasses.close); + }; // https://github.com/jkup/focusable/blob/master/index.js + + var focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; + var getFocusableElements = function getFocusableElements() { + var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex + .sort(function (a, b) { + a = parseInt(a.getAttribute('tabindex')); + b = parseInt(b.getAttribute('tabindex')); + + if (a > b) { + return 1; + } else if (a < b) { + return -1; + } + + return 0; + }); + var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) { + return el.getAttribute('tabindex') !== '-1'; + }); + return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) { + return isVisible(el); + }); + }; + var isModal = function isModal() { + return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']); + }; + var isToast = function isToast() { + return document.body.classList.contains(swalClasses['toast-shown']); + }; + var isLoading = function isLoading() { + return getPopup().hasAttribute('data-loading'); + }; + + var states = { + previousBodyPadding: null + }; + var setInnerHtml = function setInnerHtml(elem, html) { + // #1926 + elem.textContent = ''; + + if (html) { + var parser = new DOMParser(); + var parsed = parser.parseFromString(html, "text/html"); + toArray(parsed.querySelector('head').childNodes).forEach(function (child) { + elem.appendChild(child); + }); + toArray(parsed.querySelector('body').childNodes).forEach(function (child) { + elem.appendChild(child); + }); + } + }; + var hasClass = function hasClass(elem, className) { + if (!className) { + return false; + } + + var classList = className.split(/\s+/); + + for (var i = 0; i < classList.length; i++) { + if (!elem.classList.contains(classList[i])) { + return false; + } + } + + return true; + }; + + var removeCustomClasses = function removeCustomClasses(elem, params) { + toArray(elem.classList).forEach(function (className) { + if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) { + elem.classList.remove(className); + } + }); + }; + + var applyCustomClass = function applyCustomClass(elem, params, className) { + removeCustomClasses(elem, params); + + if (params.customClass && params.customClass[className]) { + if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) { + return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\"")); + } + + addClass(elem, params.customClass[className]); + } + }; + function getInput(content, inputType) { + if (!inputType) { + return null; + } + + switch (inputType) { + case 'select': + case 'textarea': + case 'file': + return getChildByClass(content, swalClasses[inputType]); + + case 'checkbox': + return content.querySelector(".".concat(swalClasses.checkbox, " input")); + + case 'radio': + return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child")); + + case 'range': + return content.querySelector(".".concat(swalClasses.range, " input")); + + default: + return getChildByClass(content, swalClasses.input); + } + } + var focusInput = function focusInput(input) { + input.focus(); // place cursor at end of text in text input + + if (input.type !== 'file') { + // http://stackoverflow.com/a/2345915 + var val = input.value; + input.value = ''; + input.value = val; + } + }; + var toggleClass = function toggleClass(target, classList, condition) { + if (!target || !classList) { + return; + } + + if (typeof classList === 'string') { + classList = classList.split(/\s+/).filter(Boolean); + } + + classList.forEach(function (className) { + if (target.forEach) { + target.forEach(function (elem) { + condition ? elem.classList.add(className) : elem.classList.remove(className); + }); + } else { + condition ? target.classList.add(className) : target.classList.remove(className); + } + }); + }; + var addClass = function addClass(target, classList) { + toggleClass(target, classList, true); + }; + var removeClass = function removeClass(target, classList) { + toggleClass(target, classList, false); + }; + var getChildByClass = function getChildByClass(elem, className) { + for (var i = 0; i < elem.childNodes.length; i++) { + if (hasClass(elem.childNodes[i], className)) { + return elem.childNodes[i]; + } + } + }; + var applyNumericalStyle = function applyNumericalStyle(elem, property, value) { + if (value || parseInt(value) === 0) { + elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value; + } else { + elem.style.removeProperty(property); + } + }; + var show = function show(elem) { + var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex'; + elem.style.opacity = ''; + elem.style.display = display; + }; + var hide = function hide(elem) { + elem.style.opacity = ''; + elem.style.display = 'none'; + }; + var toggle = function toggle(elem, condition, display) { + condition ? show(elem, display) : hide(elem); + }; // borrowed from jquery $(elem).is(':visible') implementation + + var isVisible = function isVisible(elem) { + return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); + }; + /* istanbul ignore next */ + + var isScrollable = function isScrollable(elem) { + return !!(elem.scrollHeight > elem.clientHeight); + }; // borrowed from https://stackoverflow.com/a/46352119 + + var hasCssAnimation = function hasCssAnimation(elem) { + var style = window.getComputedStyle(elem); + var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0'); + var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); + return animDuration > 0 || transDuration > 0; + }; + var contains = function contains(haystack, needle) { + if (typeof haystack.contains === 'function') { + return haystack.contains(needle); + } + }; + var animateTimerProgressBar = function animateTimerProgressBar(timer) { + var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var timerProgressBar = getTimerProgressBar(); + + if (isVisible(timerProgressBar)) { + if (reset) { + timerProgressBar.style.transition = 'none'; + timerProgressBar.style.width = '100%'; + } + + setTimeout(function () { + timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear"); + timerProgressBar.style.width = '0%'; + }, 10); + } + }; + var stopTimerProgressBar = function stopTimerProgressBar() { + var timerProgressBar = getTimerProgressBar(); + var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width); + timerProgressBar.style.removeProperty('transition'); + timerProgressBar.style.width = '100%'; + var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width); + var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100); + timerProgressBar.style.removeProperty('transition'); + timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); + }; + + // Detect Node env + var isNodeEnv = function isNodeEnv() { + return typeof window === 'undefined' || typeof document === 'undefined'; + }; + + var sweetHTML = "\n
\n
\n
    \n
    \n
    \n
    \n
    \n
    \n \n

    \n \n
    \n
    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n").replace(/(^|\n)\s*/g, ''); + + var resetOldContainer = function resetOldContainer() { + var oldContainer = getContainer(); + + if (!oldContainer) { + return false; + } + + oldContainer.parentNode.removeChild(oldContainer); + removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]); + return true; + }; + + var oldInputVal; // IE11 workaround, see #1109 for details + + var resetValidationMessage = function resetValidationMessage(e) { + if (Swal.isVisible() && oldInputVal !== e.target.value) { + Swal.resetValidationMessage(); + } + + oldInputVal = e.target.value; + }; + + var addInputChangeListeners = function addInputChangeListeners() { + var content = getContent(); + var input = getChildByClass(content, swalClasses.input); + var file = getChildByClass(content, swalClasses.file); + var range = content.querySelector(".".concat(swalClasses.range, " input")); + var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output")); + var select = getChildByClass(content, swalClasses.select); + var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input")); + var textarea = getChildByClass(content, swalClasses.textarea); + input.oninput = resetValidationMessage; + file.onchange = resetValidationMessage; + select.onchange = resetValidationMessage; + checkbox.onchange = resetValidationMessage; + textarea.oninput = resetValidationMessage; + + range.oninput = function (e) { + resetValidationMessage(e); + rangeOutput.value = range.value; + }; + + range.onchange = function (e) { + resetValidationMessage(e); + range.nextSibling.value = range.value; + }; + }; + + var getTarget = function getTarget(target) { + return typeof target === 'string' ? document.querySelector(target) : target; + }; + + var setupAccessibility = function setupAccessibility(params) { + var popup = getPopup(); + popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); + popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); + + if (!params.toast) { + popup.setAttribute('aria-modal', 'true'); + } + }; + + var setupRTL = function setupRTL(targetElement) { + if (window.getComputedStyle(targetElement).direction === 'rtl') { + addClass(getContainer(), swalClasses.rtl); + } + }; + /* + * Add modal + backdrop to DOM + */ + + + var init = function init(params) { + // Clean up the old popup container if it exists + var oldContainerExisted = resetOldContainer(); + /* istanbul ignore if */ + + if (isNodeEnv()) { + error('SweetAlert2 requires document to initialize'); + return; + } + + var container = document.createElement('div'); + container.className = swalClasses.container; + + if (oldContainerExisted) { + addClass(container, swalClasses['no-transition']); + } + + setInnerHtml(container, sweetHTML); + var targetElement = getTarget(params.target); + targetElement.appendChild(container); + setupAccessibility(params); + setupRTL(targetElement); + addInputChangeListeners(); + }; + + var parseHtmlToContainer = function parseHtmlToContainer(param, target) { + // DOM element + if (param instanceof HTMLElement) { + target.appendChild(param); // Object + } else if (_typeof(param) === 'object') { + handleObject(param, target); // Plain string + } else if (param) { + setInnerHtml(target, param); + } + }; + + var handleObject = function handleObject(param, target) { + // JQuery element(s) + if (param.jquery) { + handleJqueryElem(target, param); // For other objects use their string representation + } else { + setInnerHtml(target, param.toString()); + } + }; + + var handleJqueryElem = function handleJqueryElem(target, elem) { + target.textContent = ''; + + if (0 in elem) { + for (var i = 0; i in elem; i++) { + target.appendChild(elem[i].cloneNode(true)); + } + } else { + target.appendChild(elem.cloneNode(true)); + } + }; + + var animationEndEvent = function () { + // Prevent run in Node env + + /* istanbul ignore if */ + if (isNodeEnv()) { + return false; + } + + var testEl = document.createElement('div'); + var transEndEventNames = { + WebkitAnimation: 'webkitAnimationEnd', + OAnimation: 'oAnimationEnd oanimationend', + animation: 'animationend' + }; + + for (var i in transEndEventNames) { + if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') { + return transEndEventNames[i]; + } + } + + return false; + }(); + + // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + + var measureScrollbar = function measureScrollbar() { + var scrollDiv = document.createElement('div'); + scrollDiv.className = swalClasses['scrollbar-measure']; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + }; + + var renderActions = function renderActions(instance, params) { + var actions = getActions(); + var confirmButton = getConfirmButton(); + var cancelButton = getCancelButton(); // Actions (buttons) wrapper + + if (!params.showConfirmButton && !params.showCancelButton) { + hide(actions); + } // Custom class + + + applyCustomClass(actions, params, 'actions'); // Render confirm button + + renderButton(confirmButton, 'confirm', params); // render Cancel Button + + renderButton(cancelButton, 'cancel', params); + + if (params.buttonsStyling) { + handleButtonsStyling(confirmButton, cancelButton, params); + } else { + removeClass([confirmButton, cancelButton], swalClasses.styled); + confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = ''; + cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = ''; + } + + if (params.reverseButtons) { + confirmButton.parentNode.insertBefore(cancelButton, confirmButton); + } + }; + + function handleButtonsStyling(confirmButton, cancelButton, params) { + addClass([confirmButton, cancelButton], swalClasses.styled); // Buttons background colors + + if (params.confirmButtonColor) { + confirmButton.style.backgroundColor = params.confirmButtonColor; + } + + if (params.cancelButtonColor) { + cancelButton.style.backgroundColor = params.cancelButtonColor; + } // Loading state + + + var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color'); + confirmButton.style.borderLeftColor = confirmButtonBackgroundColor; + confirmButton.style.borderRightColor = confirmButtonBackgroundColor; + } + + function renderButton(button, buttonType, params) { + toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); + setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text + + button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label + // Add buttons custom classes + + button.className = swalClasses[buttonType]; + applyCustomClass(button, params, "".concat(buttonType, "Button")); + addClass(button, params["".concat(buttonType, "ButtonClass")]); + } + + function handleBackdropParam(container, backdrop) { + if (typeof backdrop === 'string') { + container.style.background = backdrop; + } else if (!backdrop) { + addClass([document.documentElement, document.body], swalClasses['no-backdrop']); + } + } + + function handlePositionParam(container, position) { + if (position in swalClasses) { + addClass(container, swalClasses[position]); + } else { + warn('The "position" parameter is not valid, defaulting to "center"'); + addClass(container, swalClasses.center); + } + } + + function handleGrowParam(container, grow) { + if (grow && typeof grow === 'string') { + var growClass = "grow-".concat(grow); + + if (growClass in swalClasses) { + addClass(container, swalClasses[growClass]); + } + } + } + + var renderContainer = function renderContainer(instance, params) { + var container = getContainer(); + + if (!container) { + return; + } + + handleBackdropParam(container, params.backdrop); + + if (!params.backdrop && params.allowOutsideClick) { + warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'); + } + + handlePositionParam(container, params.position); + handleGrowParam(container, params.grow); // Custom class + + applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method + + var queueStep = document.body.getAttribute('data-swal2-queue-step'); + + if (queueStep) { + container.setAttribute('data-queue-step', queueStep); + document.body.removeAttribute('data-swal2-queue-step'); + } + }; + + /** + * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. + */ + var privateProps = { + promise: new WeakMap(), + innerParams: new WeakMap(), + domCache: new WeakMap() + }; + + var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + var renderInput = function renderInput(instance, params) { + var content = getContent(); + var innerParams = privateProps.innerParams.get(instance); + var rerender = !innerParams || params.input !== innerParams.input; + inputTypes.forEach(function (inputType) { + var inputClass = swalClasses[inputType]; + var inputContainer = getChildByClass(content, inputClass); // set attributes + + setAttributes(inputType, params.inputAttributes); // set class + + inputContainer.className = inputClass; + + if (rerender) { + hide(inputContainer); + } + }); + + if (params.input) { + if (rerender) { + showInput(params); + } // set custom class + + + setCustomClass(params); + } + }; + + var showInput = function showInput(params) { + if (!renderInputType[params.input]) { + return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\"")); + } + + var inputContainer = getInputContainer(params.input); + var input = renderInputType[params.input](inputContainer, params); + show(input); // input autofocus + + setTimeout(function () { + focusInput(input); + }); + }; + + var removeAttributes = function removeAttributes(input) { + for (var i = 0; i < input.attributes.length; i++) { + var attrName = input.attributes[i].name; + + if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) { + input.removeAttribute(attrName); + } + } + }; + + var setAttributes = function setAttributes(inputType, inputAttributes) { + var input = getInput(getContent(), inputType); + + if (!input) { + return; + } + + removeAttributes(input); + + for (var attr in inputAttributes) { + // Do not set a placeholder for + // it'll crash Edge, #1298 + if (inputType === 'range' && attr === 'placeholder') { + continue; + } + + input.setAttribute(attr, inputAttributes[attr]); + } + }; + + var setCustomClass = function setCustomClass(params) { + var inputContainer = getInputContainer(params.input); + + if (params.customClass) { + addClass(inputContainer, params.customClass.input); + } + }; + + var setInputPlaceholder = function setInputPlaceholder(input, params) { + if (!input.placeholder || params.inputPlaceholder) { + input.placeholder = params.inputPlaceholder; + } + }; + + var getInputContainer = function getInputContainer(inputType) { + var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; + return getChildByClass(getContent(), inputClass); + }; + + var renderInputType = {}; + + renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) { + if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { + input.value = params.inputValue; + } else if (!isPromise(params.inputValue)) { + warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\"")); + } + + setInputPlaceholder(input, params); + input.type = params.input; + return input; + }; + + renderInputType.file = function (input, params) { + setInputPlaceholder(input, params); + return input; + }; + + renderInputType.range = function (range, params) { + var rangeInput = range.querySelector('input'); + var rangeOutput = range.querySelector('output'); + rangeInput.value = params.inputValue; + rangeInput.type = params.input; + rangeOutput.value = params.inputValue; + return range; + }; + + renderInputType.select = function (select, params) { + select.textContent = ''; + + if (params.inputPlaceholder) { + var placeholder = document.createElement('option'); + setInnerHtml(placeholder, params.inputPlaceholder); + placeholder.value = ''; + placeholder.disabled = true; + placeholder.selected = true; + select.appendChild(placeholder); + } + + return select; + }; + + renderInputType.radio = function (radio) { + radio.textContent = ''; + return radio; + }; + + renderInputType.checkbox = function (checkboxContainer, params) { + var checkbox = getInput(getContent(), 'checkbox'); + checkbox.value = 1; + checkbox.id = swalClasses.checkbox; + checkbox.checked = Boolean(params.inputValue); + var label = checkboxContainer.querySelector('span'); + setInnerHtml(label, params.inputPlaceholder); + return checkboxContainer; + }; + + renderInputType.textarea = function (textarea, params) { + textarea.value = params.inputValue; + setInputPlaceholder(textarea, params); + + if ('MutationObserver' in window) { + // #1699 + var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); + var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight); + + var outputsize = function outputsize() { + var contentWidth = textarea.offsetWidth + popupPadding; + + if (contentWidth > initialPopupWidth) { + getPopup().style.width = "".concat(contentWidth, "px"); + } else { + getPopup().style.width = null; + } + }; + + new MutationObserver(outputsize).observe(textarea, { + attributes: true, + attributeFilter: ['style'] + }); + } + + return textarea; + }; + + var renderContent = function renderContent(instance, params) { + var content = getContent().querySelector("#".concat(swalClasses.content)); // Content as HTML + + if (params.html) { + parseHtmlToContainer(params.html, content); + show(content, 'block'); // Content as plain text + } else if (params.text) { + content.textContent = params.text; + show(content, 'block'); // No content + } else { + hide(content); + } + + renderInput(instance, params); // Custom class + + applyCustomClass(getContent(), params, 'content'); + }; + + var renderFooter = function renderFooter(instance, params) { + var footer = getFooter(); + toggle(footer, params.footer); + + if (params.footer) { + parseHtmlToContainer(params.footer, footer); + } // Custom class + + + applyCustomClass(footer, params, 'footer'); + }; + + var renderCloseButton = function renderCloseButton(instance, params) { + var closeButton = getCloseButton(); + setInnerHtml(closeButton, params.closeButtonHtml); // Custom class + + applyCustomClass(closeButton, params, 'closeButton'); + toggle(closeButton, params.showCloseButton); + closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); + }; + + var renderIcon = function renderIcon(instance, params) { + var innerParams = privateProps.innerParams.get(instance); // if the give icon already rendered, apply the custom class without re-rendering the icon + + if (innerParams && params.icon === innerParams.icon && getIcon()) { + applyCustomClass(getIcon(), params, 'icon'); + return; + } + + hideAllIcons(); + + if (!params.icon) { + return; + } + + if (Object.keys(iconTypes).indexOf(params.icon) !== -1) { + var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.icon])); + show(icon); // Custom or default content + + setContent(icon, params); + adjustSuccessIconBackgoundColor(); // Custom class + + applyCustomClass(icon, params, 'icon'); // Animate icon + + addClass(icon, params.showClass.icon); + } else { + error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); + } + }; + + var hideAllIcons = function hideAllIcons() { + var icons = getIcons(); + + for (var i = 0; i < icons.length; i++) { + hide(icons[i]); + } + }; // Adjust success icon background color to match the popup background color + + + var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() { + var popup = getPopup(); + var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); + var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); + + for (var i = 0; i < successIconParts.length; i++) { + successIconParts[i].style.backgroundColor = popupBackgroundColor; + } + }; + + var setContent = function setContent(icon, params) { + icon.textContent = ''; + + if (params.iconHtml) { + setInnerHtml(icon, iconContent(params.iconHtml)); + } else if (params.icon === 'success') { + setInnerHtml(icon, "\n
    \n \n
    \n
    \n "); + } else if (params.icon === 'error') { + setInnerHtml(icon, "\n \n \n \n \n "); + } else { + var defaultIconHtml = { + question: '?', + warning: '!', + info: 'i' + }; + setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); + } + }; + + var iconContent = function iconContent(content) { + return "
    ").concat(content, "
    "); + }; + + var renderImage = function renderImage(instance, params) { + var image = getImage(); + + if (!params.imageUrl) { + return hide(image); + } + + show(image); // Src, alt + + image.setAttribute('src', params.imageUrl); + image.setAttribute('alt', params.imageAlt); // Width, height + + applyNumericalStyle(image, 'width', params.imageWidth); + applyNumericalStyle(image, 'height', params.imageHeight); // Class + + image.className = swalClasses.image; + applyCustomClass(image, params, 'image'); + }; + + var currentSteps = []; + /* + * Global function for chaining sweetAlert popups + */ + + var queue = function queue(steps) { + var Swal = this; + currentSteps = steps; + + var resetAndResolve = function resetAndResolve(resolve, value) { + currentSteps = []; + resolve(value); + }; + + var queueResult = []; + return new Promise(function (resolve) { + (function step(i, callback) { + if (i < currentSteps.length) { + document.body.setAttribute('data-swal2-queue-step', i); + Swal.fire(currentSteps[i]).then(function (result) { + if (typeof result.value !== 'undefined') { + queueResult.push(result.value); + step(i + 1, callback); + } else { + resetAndResolve(resolve, { + dismiss: result.dismiss + }); + } + }); + } else { + resetAndResolve(resolve, { + value: queueResult + }); + } + })(0); + }); + }; + /* + * Global function for getting the index of current popup in queue + */ + + var getQueueStep = function getQueueStep() { + return getContainer().getAttribute('data-queue-step'); + }; + /* + * Global function for inserting a popup to the queue + */ + + var insertQueueStep = function insertQueueStep(step, index) { + if (index && index < currentSteps.length) { + return currentSteps.splice(index, 0, step); + } + + return currentSteps.push(step); + }; + /* + * Global function for deleting a popup from the queue + */ + + var deleteQueueStep = function deleteQueueStep(index) { + if (typeof currentSteps[index] !== 'undefined') { + currentSteps.splice(index, 1); + } + }; + + var createStepElement = function createStepElement(step) { + var stepEl = document.createElement('li'); + addClass(stepEl, swalClasses['progress-step']); + setInnerHtml(stepEl, step); + return stepEl; + }; + + var createLineElement = function createLineElement(params) { + var lineEl = document.createElement('li'); + addClass(lineEl, swalClasses['progress-step-line']); + + if (params.progressStepsDistance) { + lineEl.style.width = params.progressStepsDistance; + } + + return lineEl; + }; + + var renderProgressSteps = function renderProgressSteps(instance, params) { + var progressStepsContainer = getProgressSteps(); + + if (!params.progressSteps || params.progressSteps.length === 0) { + return hide(progressStepsContainer); + } + + show(progressStepsContainer); + progressStepsContainer.textContent = ''; + var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep); + + if (currentProgressStep >= params.progressSteps.length) { + warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); + } + + params.progressSteps.forEach(function (step, index) { + var stepEl = createStepElement(step); + progressStepsContainer.appendChild(stepEl); + + if (index === currentProgressStep) { + addClass(stepEl, swalClasses['active-progress-step']); + } + + if (index !== params.progressSteps.length - 1) { + var lineEl = createLineElement(step); + progressStepsContainer.appendChild(lineEl); + } + }); + }; + + var renderTitle = function renderTitle(instance, params) { + var title = getTitle(); + toggle(title, params.title || params.titleText); + + if (params.title) { + parseHtmlToContainer(params.title, title); + } + + if (params.titleText) { + title.innerText = params.titleText; + } // Custom class + + + applyCustomClass(title, params, 'title'); + }; + + var renderHeader = function renderHeader(instance, params) { + var header = getHeader(); // Custom class + + applyCustomClass(header, params, 'header'); // Progress steps + + renderProgressSteps(instance, params); // Icon + + renderIcon(instance, params); // Image + + renderImage(instance, params); // Title + + renderTitle(instance, params); // Close button + + renderCloseButton(instance, params); + }; + + var renderPopup = function renderPopup(instance, params) { + var popup = getPopup(); // Width + + applyNumericalStyle(popup, 'width', params.width); // Padding + + applyNumericalStyle(popup, 'padding', params.padding); // Background + + if (params.background) { + popup.style.background = params.background; + } // Classes + + + addClasses(popup, params); + }; + + var addClasses = function addClasses(popup, params) { + // Default Class + showClass when updating Swal.update({}) + popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : ''); + + if (params.toast) { + addClass([document.documentElement, document.body], swalClasses['toast-shown']); + addClass(popup, swalClasses.toast); + } else { + addClass(popup, swalClasses.modal); + } // Custom class + + + applyCustomClass(popup, params, 'popup'); + + if (typeof params.customClass === 'string') { + addClass(popup, params.customClass); + } // Icon class (#1842) + + + if (params.icon) { + addClass(popup, swalClasses["icon-".concat(params.icon)]); + } + }; + + var render = function render(instance, params) { + renderPopup(instance, params); + renderContainer(instance, params); + renderHeader(instance, params); + renderContent(instance, params); + renderActions(instance, params); + renderFooter(instance, params); + + if (typeof params.onRender === 'function') { + params.onRender(getPopup()); + } + }; + + /* + * Global function to determine if SweetAlert2 popup is shown + */ + + var isVisible$1 = function isVisible$$1() { + return isVisible(getPopup()); + }; + /* + * Global function to click 'Confirm' button + */ + + var clickConfirm = function clickConfirm() { + return getConfirmButton() && getConfirmButton().click(); + }; + /* + * Global function to click 'Cancel' button + */ + + var clickCancel = function clickCancel() { + return getCancelButton() && getCancelButton().click(); + }; + + function fire() { + var Swal = this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _construct(Swal, args); + } + + /** + * Returns an extended version of `Swal` containing `params` as defaults. + * Useful for reusing Swal configuration. + * + * For example: + * + * Before: + * const textPromptOptions = { input: 'text', showCancelButton: true } + * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) + * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) + * + * After: + * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) + * const {value: firstName} = await TextPrompt('What is your first name?') + * const {value: lastName} = await TextPrompt('What is your last name?') + * + * @param mixinParams + */ + function mixin(mixinParams) { + var MixinSwal = /*#__PURE__*/function (_this) { + _inherits(MixinSwal, _this); + + function MixinSwal() { + _classCallCheck(this, MixinSwal); + + return _possibleConstructorReturn(this, _getPrototypeOf(MixinSwal).apply(this, arguments)); + } + + _createClass(MixinSwal, [{ + key: "_main", + value: function _main(params) { + return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params)); + } + }]); + + return MixinSwal; + }(this); + + return MixinSwal; + } + + /** + * Show spinner instead of Confirm button + */ + + var showLoading = function showLoading() { + var popup = getPopup(); + + if (!popup) { + Swal.fire(); + } + + popup = getPopup(); + var actions = getActions(); + var confirmButton = getConfirmButton(); + show(actions); + show(confirmButton, 'inline-block'); + addClass([popup, actions], swalClasses.loading); + confirmButton.disabled = true; + popup.setAttribute('data-loading', true); + popup.setAttribute('aria-busy', true); + popup.focus(); + }; + + var RESTORE_FOCUS_TIMEOUT = 100; + + var globalState = {}; + + var focusPreviousActiveElement = function focusPreviousActiveElement() { + if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { + globalState.previousActiveElement.focus(); + globalState.previousActiveElement = null; + } else if (document.body) { + document.body.focus(); + } + }; // Restore previous active (focused) element + + + var restoreActiveElement = function restoreActiveElement() { + return new Promise(function (resolve) { + var x = window.scrollX; + var y = window.scrollY; + globalState.restoreFocusTimeout = setTimeout(function () { + focusPreviousActiveElement(); + resolve(); + }, RESTORE_FOCUS_TIMEOUT); // issues/900 + + /* istanbul ignore if */ + + if (typeof x !== 'undefined' && typeof y !== 'undefined') { + // IE doesn't have scrollX/scrollY support + window.scrollTo(x, y); + } + }); + }; + + /** + * If `timer` parameter is set, returns number of milliseconds of timer remained. + * Otherwise, returns undefined. + */ + + var getTimerLeft = function getTimerLeft() { + return globalState.timeout && globalState.timeout.getTimerLeft(); + }; + /** + * Stop timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var stopTimer = function stopTimer() { + if (globalState.timeout) { + stopTimerProgressBar(); + return globalState.timeout.stop(); + } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var resumeTimer = function resumeTimer() { + if (globalState.timeout) { + var remaining = globalState.timeout.start(); + animateTimerProgressBar(remaining); + return remaining; + } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var toggleTimer = function toggleTimer() { + var timer = globalState.timeout; + return timer && (timer.running ? stopTimer() : resumeTimer()); + }; + /** + * Increase timer. Returns number of milliseconds of an updated timer. + * If `timer` parameter isn't set, returns undefined. + */ + + var increaseTimer = function increaseTimer(n) { + if (globalState.timeout) { + var remaining = globalState.timeout.increase(n); + animateTimerProgressBar(remaining, true); + return remaining; + } + }; + /** + * Check if timer is running. Returns true if timer is running + * or false if timer is paused or stopped. + * If `timer` parameter isn't set, returns undefined + */ + + var isTimerRunning = function isTimerRunning() { + return globalState.timeout && globalState.timeout.isRunning(); + }; + + var defaultParams = { + title: '', + titleText: '', + text: '', + html: '', + footer: '', + icon: undefined, + iconHtml: undefined, + toast: false, + animation: true, + showClass: { + popup: 'swal2-show', + backdrop: 'swal2-backdrop-show', + icon: 'swal2-icon-show' + }, + hideClass: { + popup: 'swal2-hide', + backdrop: 'swal2-backdrop-hide', + icon: 'swal2-icon-hide' + }, + customClass: undefined, + target: 'body', + backdrop: true, + heightAuto: true, + allowOutsideClick: true, + allowEscapeKey: true, + allowEnterKey: true, + stopKeydownPropagation: true, + keydownListenerCapture: false, + showConfirmButton: true, + showCancelButton: false, + preConfirm: undefined, + confirmButtonText: 'OK', + confirmButtonAriaLabel: '', + confirmButtonColor: undefined, + cancelButtonText: 'Cancel', + cancelButtonAriaLabel: '', + cancelButtonColor: undefined, + buttonsStyling: true, + reverseButtons: false, + focusConfirm: true, + focusCancel: false, + showCloseButton: false, + closeButtonHtml: '×', + closeButtonAriaLabel: 'Close this dialog', + showLoaderOnConfirm: false, + imageUrl: undefined, + imageWidth: undefined, + imageHeight: undefined, + imageAlt: '', + timer: undefined, + timerProgressBar: false, + width: undefined, + padding: undefined, + background: undefined, + input: undefined, + inputPlaceholder: '', + inputValue: '', + inputOptions: {}, + inputAutoTrim: true, + inputAttributes: {}, + inputValidator: undefined, + validationMessage: undefined, + grow: false, + position: 'center', + progressSteps: [], + currentProgressStep: undefined, + progressStepsDistance: undefined, + onBeforeOpen: undefined, + onOpen: undefined, + onRender: undefined, + onClose: undefined, + onAfterClose: undefined, + onDestroy: undefined, + scrollbarPadding: true + }; + var updatableParams = ['title', 'titleText', 'text', 'html', 'icon', 'hideClass', 'customClass', 'allowOutsideClick', 'allowEscapeKey', 'showConfirmButton', 'showCancelButton', 'confirmButtonText', 'confirmButtonAriaLabel', 'confirmButtonColor', 'cancelButtonText', 'cancelButtonAriaLabel', 'cancelButtonColor', 'buttonsStyling', 'reverseButtons', 'imageUrl', 'imageWidth', 'imageHeight', 'imageAlt', 'progressSteps', 'currentProgressStep']; + var deprecatedParams = { + animation: 'showClass" and "hideClass' + }; + var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusCancel', 'heightAuto', 'keydownListenerCapture']; + /** + * Is valid parameter + * @param {String} paramName + */ + + var isValidParameter = function isValidParameter(paramName) { + return Object.prototype.hasOwnProperty.call(defaultParams, paramName); + }; + /** + * Is valid parameter for Swal.update() method + * @param {String} paramName + */ + + var isUpdatableParameter = function isUpdatableParameter(paramName) { + return updatableParams.indexOf(paramName) !== -1; + }; + /** + * Is deprecated parameter + * @param {String} paramName + */ + + var isDeprecatedParameter = function isDeprecatedParameter(paramName) { + return deprecatedParams[paramName]; + }; + + var checkIfParamIsValid = function checkIfParamIsValid(param) { + if (!isValidParameter(param)) { + warn("Unknown parameter \"".concat(param, "\"")); + } + }; + + var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) { + if (toastIncompatibleParams.indexOf(param) !== -1) { + warn("The parameter \"".concat(param, "\" is incompatible with toasts")); + } + }; + + var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) { + if (isDeprecatedParameter(param)) { + warnAboutDepreation(param, isDeprecatedParameter(param)); + } + }; + /** + * Show relevant warnings for given params + * + * @param params + */ + + + var showWarningsForParams = function showWarningsForParams(params) { + for (var param in params) { + checkIfParamIsValid(param); + + if (params.toast) { + checkIfToastParamIsValid(param); + } + + checkIfParamIsDeprecated(param); + } + }; + + + + var staticMethods = /*#__PURE__*/Object.freeze({ + isValidParameter: isValidParameter, + isUpdatableParameter: isUpdatableParameter, + isDeprecatedParameter: isDeprecatedParameter, + argsToParams: argsToParams, + isVisible: isVisible$1, + clickConfirm: clickConfirm, + clickCancel: clickCancel, + getContainer: getContainer, + getPopup: getPopup, + getTitle: getTitle, + getContent: getContent, + getHtmlContainer: getHtmlContainer, + getImage: getImage, + getIcon: getIcon, + getIcons: getIcons, + getCloseButton: getCloseButton, + getActions: getActions, + getConfirmButton: getConfirmButton, + getCancelButton: getCancelButton, + getHeader: getHeader, + getFooter: getFooter, + getTimerProgressBar: getTimerProgressBar, + getFocusableElements: getFocusableElements, + getValidationMessage: getValidationMessage, + isLoading: isLoading, + fire: fire, + mixin: mixin, + queue: queue, + getQueueStep: getQueueStep, + insertQueueStep: insertQueueStep, + deleteQueueStep: deleteQueueStep, + showLoading: showLoading, + enableLoading: showLoading, + getTimerLeft: getTimerLeft, + stopTimer: stopTimer, + resumeTimer: resumeTimer, + toggleTimer: toggleTimer, + increaseTimer: increaseTimer, + isTimerRunning: isTimerRunning + }); + + /** + * Enables buttons and hide loader. + */ + + function hideLoading() { + // do nothing if popup is closed + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; + } + + var domCache = privateProps.domCache.get(this); + + if (!innerParams.showConfirmButton) { + hide(domCache.confirmButton); + + if (!innerParams.showCancelButton) { + hide(domCache.actions); + } + } + + removeClass([domCache.popup, domCache.actions], swalClasses.loading); + domCache.popup.removeAttribute('aria-busy'); + domCache.popup.removeAttribute('data-loading'); + domCache.confirmButton.disabled = false; + domCache.cancelButton.disabled = false; + } + + function getInput$1(instance) { + var innerParams = privateProps.innerParams.get(instance || this); + var domCache = privateProps.domCache.get(instance || this); + + if (!domCache) { + return null; + } + + return getInput(domCache.content, innerParams.input); + } + + var fixScrollbar = function fixScrollbar() { + // for queues, do not do this more than once + if (states.previousBodyPadding !== null) { + return; + } // if the body has overflow + + + if (document.body.scrollHeight > window.innerHeight) { + // add padding so the content doesn't shift after removal of scrollbar + states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right')); + document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px"); + } + }; + var undoScrollbar = function undoScrollbar() { + if (states.previousBodyPadding !== null) { + document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px"); + states.previousBodyPadding = null; + } + }; + + /* istanbul ignore file */ + + var iOSfix = function iOSfix() { + var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; + + if (iOS && !hasClass(document.body, swalClasses.iosfix)) { + var offset = document.body.scrollTop; + document.body.style.top = "".concat(offset * -1, "px"); + addClass(document.body, swalClasses.iosfix); + lockBodyScroll(); + } + }; + + var lockBodyScroll = function lockBodyScroll() { + // #1246 + var container = getContainer(); + var preventTouchMove; + + container.ontouchstart = function (e) { + preventTouchMove = e.target === container || !isScrollable(container) && e.target.tagName !== 'INPUT' // #1603 + ; + }; + + container.ontouchmove = function (e) { + if (preventTouchMove) { + e.preventDefault(); + e.stopPropagation(); + } + }; + }; + + var undoIOSfix = function undoIOSfix() { + if (hasClass(document.body, swalClasses.iosfix)) { + var offset = parseInt(document.body.style.top, 10); + removeClass(document.body, swalClasses.iosfix); + document.body.style.top = ''; + document.body.scrollTop = offset * -1; + } + }; + + /* istanbul ignore file */ + + var isIE11 = function isIE11() { + return !!window.MSInputMethodContext && !!document.documentMode; + }; // Fix IE11 centering sweetalert2/issues/933 + + + var fixVerticalPositionIE = function fixVerticalPositionIE() { + var container = getContainer(); + var popup = getPopup(); + container.style.removeProperty('align-items'); + + if (popup.offsetTop < 0) { + container.style.alignItems = 'flex-start'; + } + }; + + var IEfix = function IEfix() { + if (typeof window !== 'undefined' && isIE11()) { + fixVerticalPositionIE(); + window.addEventListener('resize', fixVerticalPositionIE); + } + }; + var undoIEfix = function undoIEfix() { + if (typeof window !== 'undefined' && isIE11()) { + window.removeEventListener('resize', fixVerticalPositionIE); + } + }; + + // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that + // elements not within the active modal dialog will not be surfaced if a user opens a screen + // reader’s list of elements (headings, form controls, landmarks, etc.) in the document. + + var setAriaHidden = function setAriaHidden() { + var bodyChildren = toArray(document.body.children); + bodyChildren.forEach(function (el) { + if (el === getContainer() || contains(el, getContainer())) { + return; + } + + if (el.hasAttribute('aria-hidden')) { + el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden')); + } + + el.setAttribute('aria-hidden', 'true'); + }); + }; + var unsetAriaHidden = function unsetAriaHidden() { + var bodyChildren = toArray(document.body.children); + bodyChildren.forEach(function (el) { + if (el.hasAttribute('data-previous-aria-hidden')) { + el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden')); + el.removeAttribute('data-previous-aria-hidden'); + } else { + el.removeAttribute('aria-hidden'); + } + }); + }; + + /** + * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. + */ + var privateMethods = { + swalPromiseResolve: new WeakMap() + }; + + /* + * Instance method to close sweetAlert + */ + + function removePopupAndResetState(instance, container, isToast$$1, onAfterClose) { + if (isToast$$1) { + triggerOnAfterCloseAndDispose(instance, onAfterClose); + } else { + restoreActiveElement().then(function () { + return triggerOnAfterCloseAndDispose(instance, onAfterClose); + }); + globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = false; + } + + if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) { + container.parentNode.removeChild(container); + } + + if (isModal()) { + undoScrollbar(); + undoIOSfix(); + undoIEfix(); + unsetAriaHidden(); + } + + removeBodyClasses(); + } + + function removeBodyClasses() { + removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]); + } + + function close(resolveValue) { + var popup = getPopup(); + + if (!popup) { + return; + } + + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) { + return; + } + + var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this); + removeClass(popup, innerParams.showClass.popup); + addClass(popup, innerParams.hideClass.popup); + var backdrop = getContainer(); + removeClass(backdrop, innerParams.showClass.backdrop); + addClass(backdrop, innerParams.hideClass.backdrop); + handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise + + swalPromiseResolve(resolveValue || {}); + } + + var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) { + var container = getContainer(); // If animation is supported, animate + + var animationIsSupported = animationEndEvent && hasCssAnimation(popup); + var onClose = innerParams.onClose, + onAfterClose = innerParams.onAfterClose; + + if (onClose !== null && typeof onClose === 'function') { + onClose(popup); + } + + if (animationIsSupported) { + animatePopup(instance, popup, container, onAfterClose); + } else { + // Otherwise, remove immediately + removePopupAndResetState(instance, container, isToast(), onAfterClose); + } + }; + + var animatePopup = function animatePopup(instance, popup, container, onAfterClose) { + globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), onAfterClose); + popup.addEventListener(animationEndEvent, function (e) { + if (e.target === popup) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } + }); + }; + + var triggerOnAfterCloseAndDispose = function triggerOnAfterCloseAndDispose(instance, onAfterClose) { + setTimeout(function () { + if (typeof onAfterClose === 'function') { + onAfterClose(); + } + + instance._destroy(); + }); + }; + + function setButtonsDisabled(instance, buttons, disabled) { + var domCache = privateProps.domCache.get(instance); + buttons.forEach(function (button) { + domCache[button].disabled = disabled; + }); + } + + function setInputDisabled(input, disabled) { + if (!input) { + return false; + } + + if (input.type === 'radio') { + var radiosContainer = input.parentNode.parentNode; + var radios = radiosContainer.querySelectorAll('input'); + + for (var i = 0; i < radios.length; i++) { + radios[i].disabled = disabled; + } + } else { + input.disabled = disabled; + } + } + + function enableButtons() { + setButtonsDisabled(this, ['confirmButton', 'cancelButton'], false); + } + function disableButtons() { + setButtonsDisabled(this, ['confirmButton', 'cancelButton'], true); + } + function enableInput() { + return setInputDisabled(this.getInput(), false); + } + function disableInput() { + return setInputDisabled(this.getInput(), true); + } + + function showValidationMessage(error) { + var domCache = privateProps.domCache.get(this); + setInnerHtml(domCache.validationMessage, error); + var popupComputedStyle = window.getComputedStyle(domCache.popup); + domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left')); + domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right')); + show(domCache.validationMessage); + var input = this.getInput(); + + if (input) { + input.setAttribute('aria-invalid', true); + input.setAttribute('aria-describedBy', swalClasses['validation-message']); + focusInput(input); + addClass(input, swalClasses.inputerror); + } + } // Hide block with validation message + + function resetValidationMessage$1() { + var domCache = privateProps.domCache.get(this); + + if (domCache.validationMessage) { + hide(domCache.validationMessage); + } + + var input = this.getInput(); + + if (input) { + input.removeAttribute('aria-invalid'); + input.removeAttribute('aria-describedBy'); + removeClass(input, swalClasses.inputerror); + } + } + + function getProgressSteps$1() { + var domCache = privateProps.domCache.get(this); + return domCache.progressSteps; + } + + var Timer = /*#__PURE__*/function () { + function Timer(callback, delay) { + _classCallCheck(this, Timer); + + this.callback = callback; + this.remaining = delay; + this.running = false; + this.start(); + } + + _createClass(Timer, [{ + key: "start", + value: function start() { + if (!this.running) { + this.running = true; + this.started = new Date(); + this.id = setTimeout(this.callback, this.remaining); + } + + return this.remaining; + } + }, { + key: "stop", + value: function stop() { + if (this.running) { + this.running = false; + clearTimeout(this.id); + this.remaining -= new Date() - this.started; + } + + return this.remaining; + } + }, { + key: "increase", + value: function increase(n) { + var running = this.running; + + if (running) { + this.stop(); + } + + this.remaining += n; + + if (running) { + this.start(); + } + + return this.remaining; + } + }, { + key: "getTimerLeft", + value: function getTimerLeft() { + if (this.running) { + this.stop(); + this.start(); + } + + return this.remaining; + } + }, { + key: "isRunning", + value: function isRunning() { + return this.running; + } + }]); + + return Timer; + }(); + + var defaultInputValidators = { + email: function email(string, validationMessage) { + return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); + }, + url: function url(string, validationMessage) { + // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 + return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); + } + }; + + function setDefaultInputValidators(params) { + // Use default `inputValidator` for supported input types if not provided + if (!params.inputValidator) { + Object.keys(defaultInputValidators).forEach(function (key) { + if (params.input === key) { + params.inputValidator = defaultInputValidators[key]; + } + }); + } + } + + function validateCustomTargetElement(params) { + // Determine if the custom target element is valid + if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { + warn('Target parameter is not valid, defaulting to "body"'); + params.target = 'body'; + } + } + /** + * Set type, text and actions on popup + * + * @param params + * @returns {boolean} + */ + + + function setParameters(params) { + setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm + + if (params.showLoaderOnConfirm && !params.preConfirm) { + warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); + } // params.animation will be actually used in renderPopup.js + // but in case when params.animation is a function, we need to call that function + // before popup (re)initialization, so it'll be possible to check Swal.isVisible() + // inside the params.animation function + + + params.animation = callIfFunction(params.animation); + validateCustomTargetElement(params); // Replace newlines with
    in title + + if (typeof params.title === 'string') { + params.title = params.title.split('\n').join('
    '); + } + + init(params); + } + + /** + * Open popup, add necessary classes and styles, fix scrollbar + * + * @param {Array} params + */ + + var openPopup = function openPopup(params) { + var container = getContainer(); + var popup = getPopup(); + + if (typeof params.onBeforeOpen === 'function') { + params.onBeforeOpen(popup); + } + + addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto' + + setScrollingVisibility(container, popup); + + if (isModal()) { + fixScrollContainer(container, params.scrollbarPadding); + } + + if (!isToast() && !globalState.previousActiveElement) { + globalState.previousActiveElement = document.activeElement; + } + + if (typeof params.onOpen === 'function') { + setTimeout(function () { + return params.onOpen(popup); + }); + } + + removeClass(container, swalClasses['no-transition']); + }; + + function swalOpenAnimationFinished(event) { + var popup = getPopup(); + + if (event.target !== popup) { + return; + } + + var container = getContainer(); + popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished); + container.style.overflowY = 'auto'; + } + + var setScrollingVisibility = function setScrollingVisibility(container, popup) { + if (animationEndEvent && hasCssAnimation(popup)) { + container.style.overflowY = 'hidden'; + popup.addEventListener(animationEndEvent, swalOpenAnimationFinished); + } else { + container.style.overflowY = 'auto'; + } + }; + + var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding) { + iOSfix(); + IEfix(); + setAriaHidden(); + + if (scrollbarPadding) { + fixScrollbar(); + } // sweetalert2/issues/1247 + + + setTimeout(function () { + container.scrollTop = 0; + }); + }; + + var addClasses$1 = function addClasses(container, popup, params) { + addClass(container, params.showClass.backdrop); + show(popup); // Animate popup right after showing it + + addClass(popup, params.showClass.popup); + addClass([document.documentElement, document.body], swalClasses.shown); + + if (params.heightAuto && params.backdrop && !params.toast) { + addClass([document.documentElement, document.body], swalClasses['height-auto']); + } + }; + + var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) { + if (params.input === 'select' || params.input === 'radio') { + handleInputOptions(instance, params); + } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && isPromise(params.inputValue)) { + handleInputValue(instance, params); + } + }; + var getInputValue = function getInputValue(instance, innerParams) { + var input = instance.getInput(); + + if (!input) { + return null; + } + + switch (innerParams.input) { + case 'checkbox': + return getCheckboxValue(input); + + case 'radio': + return getRadioValue(input); + + case 'file': + return getFileValue(input); + + default: + return innerParams.inputAutoTrim ? input.value.trim() : input.value; + } + }; + + var getCheckboxValue = function getCheckboxValue(input) { + return input.checked ? 1 : 0; + }; + + var getRadioValue = function getRadioValue(input) { + return input.checked ? input.value : null; + }; + + var getFileValue = function getFileValue(input) { + return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null; + }; + + var handleInputOptions = function handleInputOptions(instance, params) { + var content = getContent(); + + var processInputOptions = function processInputOptions(inputOptions) { + return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params); + }; + + if (isPromise(params.inputOptions)) { + showLoading(); + params.inputOptions.then(function (inputOptions) { + instance.hideLoading(); + processInputOptions(inputOptions); + }); + } else if (_typeof(params.inputOptions) === 'object') { + processInputOptions(params.inputOptions); + } else { + error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions))); + } + }; + + var handleInputValue = function handleInputValue(instance, params) { + var input = instance.getInput(); + hide(input); + params.inputValue.then(function (inputValue) { + input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue); + show(input); + input.focus(); + instance.hideLoading(); + })["catch"](function (err) { + error("Error in inputValue promise: ".concat(err)); + input.value = ''; + show(input); + input.focus(); + instance.hideLoading(); + }); + }; + + var populateInputOptions = { + select: function select(content, inputOptions, params) { + var select = getChildByClass(content, swalClasses.select); + inputOptions.forEach(function (inputOption) { + var optionValue = inputOption[0]; + var optionLabel = inputOption[1]; + var option = document.createElement('option'); + option.value = optionValue; + setInnerHtml(option, optionLabel); + + if (params.inputValue.toString() === optionValue.toString()) { + option.selected = true; + } + + select.appendChild(option); + }); + select.focus(); + }, + radio: function radio(content, inputOptions, params) { + var radio = getChildByClass(content, swalClasses.radio); + inputOptions.forEach(function (inputOption) { + var radioValue = inputOption[0]; + var radioLabel = inputOption[1]; + var radioInput = document.createElement('input'); + var radioLabelElement = document.createElement('label'); + radioInput.type = 'radio'; + radioInput.name = swalClasses.radio; + radioInput.value = radioValue; + + if (params.inputValue.toString() === radioValue.toString()) { + radioInput.checked = true; + } + + var label = document.createElement('span'); + setInnerHtml(label, radioLabel); + label.className = swalClasses.label; + radioLabelElement.appendChild(radioInput); + radioLabelElement.appendChild(label); + radio.appendChild(radioLabelElement); + }); + var radios = radio.querySelectorAll('input'); + + if (radios.length) { + radios[0].focus(); + } + } + }; + /** + * Converts `inputOptions` into an array of `[value, label]`s + * @param inputOptions + */ + + var formatInputOptions = function formatInputOptions(inputOptions) { + var result = []; + + if (typeof Map !== 'undefined' && inputOptions instanceof Map) { + inputOptions.forEach(function (value, key) { + result.push([key, value]); + }); + } else { + Object.keys(inputOptions).forEach(function (key) { + result.push([key, inputOptions[key]]); + }); + } + + return result; + }; + + var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) { + instance.disableButtons(); + + if (innerParams.input) { + handleConfirmWithInput(instance, innerParams); + } else { + confirm(instance, innerParams, true); + } + }; + var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) { + instance.disableButtons(); + dismissWith(DismissReason.cancel); + }; + + var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) { + var inputValue = getInputValue(instance, innerParams); + + if (innerParams.inputValidator) { + instance.disableInput(); + var validationPromise = Promise.resolve().then(function () { + return innerParams.inputValidator(inputValue, innerParams.validationMessage); + }); + validationPromise.then(function (validationMessage) { + instance.enableButtons(); + instance.enableInput(); + + if (validationMessage) { + instance.showValidationMessage(validationMessage); + } else { + confirm(instance, innerParams, inputValue); + } + }); + } else if (!instance.getInput().checkValidity()) { + instance.enableButtons(); + instance.showValidationMessage(innerParams.validationMessage); + } else { + confirm(instance, innerParams, inputValue); + } + }; + + var succeedWith = function succeedWith(instance, value) { + instance.closePopup({ + value: value + }); + }; + + var confirm = function confirm(instance, innerParams, value) { + if (innerParams.showLoaderOnConfirm) { + showLoading(); // TODO: make showLoading an *instance* method + } + + if (innerParams.preConfirm) { + instance.resetValidationMessage(); + var preConfirmPromise = Promise.resolve().then(function () { + return innerParams.preConfirm(value, innerParams.validationMessage); + }); + preConfirmPromise.then(function (preConfirmValue) { + if (isVisible(getValidationMessage()) || preConfirmValue === false) { + instance.hideLoading(); + } else { + succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); + } + }); + } else { + succeedWith(instance, value); + } + }; + + var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) { + if (globalState.keydownTarget && globalState.keydownHandlerAdded) { + globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = false; + } + + if (!innerParams.toast) { + globalState.keydownHandler = function (e) { + return keydownHandler(instance, e, dismissWith); + }; + + globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup(); + globalState.keydownListenerCapture = innerParams.keydownListenerCapture; + globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = true; + } + }; // Focus handling + + var setFocus = function setFocus(innerParams, index, increment) { + var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match + + for (var i = 0; i < focusableElements.length; i++) { + index = index + increment; // rollover to first item + + if (index === focusableElements.length) { + index = 0; // go to last item + } else if (index === -1) { + index = focusableElements.length - 1; + } + + return focusableElements[index].focus(); + } // no visible focusable elements, focus the popup + + + getPopup().focus(); + }; + var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11 + ]; + var escKeys = ['Escape', 'Esc' // IE11 + ]; + + var keydownHandler = function keydownHandler(instance, e, dismissWith) { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.stopKeydownPropagation) { + e.stopPropagation(); + } // ENTER + + + if (e.key === 'Enter') { + handleEnter(instance, e, innerParams); // TAB + } else if (e.key === 'Tab') { + handleTab(e, innerParams); // ARROWS - switch focus between buttons + } else if (arrowKeys.indexOf(e.key) !== -1) { + handleArrows(); // ESC + } else if (escKeys.indexOf(e.key) !== -1) { + handleEsc(e, innerParams, dismissWith); + } + }; + + var handleEnter = function handleEnter(instance, e, innerParams) { + // #720 #721 + if (e.isComposing) { + return; + } + + if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { + if (['textarea', 'file'].indexOf(innerParams.input) !== -1) { + return; // do not submit + } + + clickConfirm(); + e.preventDefault(); + } + }; + + var handleTab = function handleTab(e, innerParams) { + var targetElement = e.target; + var focusableElements = getFocusableElements(); + var btnIndex = -1; + + for (var i = 0; i < focusableElements.length; i++) { + if (targetElement === focusableElements[i]) { + btnIndex = i; + break; + } + } + + if (!e.shiftKey) { + // Cycle to the next button + setFocus(innerParams, btnIndex, 1); + } else { + // Cycle to the prev button + setFocus(innerParams, btnIndex, -1); + } + + e.stopPropagation(); + e.preventDefault(); + }; + + var handleArrows = function handleArrows() { + var confirmButton = getConfirmButton(); + var cancelButton = getCancelButton(); // focus Cancel button if Confirm button is currently focused + + if (document.activeElement === confirmButton && isVisible(cancelButton)) { + cancelButton.focus(); // and vice versa + } else if (document.activeElement === cancelButton && isVisible(confirmButton)) { + confirmButton.focus(); + } + }; + + var handleEsc = function handleEsc(e, innerParams, dismissWith) { + if (callIfFunction(innerParams.allowEscapeKey)) { + e.preventDefault(); + dismissWith(DismissReason.esc); + } + }; + + var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.toast) { + handleToastClick(instance, domCache, dismissWith); + } else { + // Ignore click events that had mousedown on the popup but mouseup on the container + // This can happen when the user drags a slider + handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + + handleContainerMousedown(domCache); + handleModalClick(instance, domCache, dismissWith); + } + }; + + var handleToastClick = function handleToastClick(instance, domCache, dismissWith) { + // Closing toast by internal click + domCache.popup.onclick = function () { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.showConfirmButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) { + return; + } + + dismissWith(DismissReason.close); + }; + }; + + var ignoreOutsideClick = false; + + var handleModalMousedown = function handleModalMousedown(domCache) { + domCache.popup.onmousedown = function () { + domCache.container.onmouseup = function (e) { + domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't + // have any other direct children aside of the popup + + if (e.target === domCache.container) { + ignoreOutsideClick = true; + } + }; + }; + }; + + var handleContainerMousedown = function handleContainerMousedown(domCache) { + domCache.container.onmousedown = function () { + domCache.popup.onmouseup = function (e) { + domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup + + if (e.target === domCache.popup || domCache.popup.contains(e.target)) { + ignoreOutsideClick = true; + } + }; + }; + }; + + var handleModalClick = function handleModalClick(instance, domCache, dismissWith) { + domCache.container.onclick = function (e) { + var innerParams = privateProps.innerParams.get(instance); + + if (ignoreOutsideClick) { + ignoreOutsideClick = false; + return; + } + + if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { + dismissWith(DismissReason.backdrop); + } + }; + }; + + function _main(userParams) { + showWarningsForParams(userParams); + + if (globalState.currentInstance) { + globalState.currentInstance._destroy(); + } + + globalState.currentInstance = this; + var innerParams = prepareParams(userParams); + setParameters(innerParams); + Object.freeze(innerParams); // clear the previous timer + + if (globalState.timeout) { + globalState.timeout.stop(); + delete globalState.timeout; + } // clear the restore focus timeout + + + clearTimeout(globalState.restoreFocusTimeout); + var domCache = populateDomCache(this); + render(this, innerParams); + privateProps.innerParams.set(this, innerParams); + return swalPromise(this, domCache, innerParams); + } + + var prepareParams = function prepareParams(userParams) { + var showClass = _extends({}, defaultParams.showClass, userParams.showClass); + + var hideClass = _extends({}, defaultParams.hideClass, userParams.hideClass); + + var params = _extends({}, defaultParams, userParams); + + params.showClass = showClass; + params.hideClass = hideClass; // @deprecated + + if (userParams.animation === false) { + params.showClass = { + popup: 'swal2-noanimation', + backdrop: 'swal2-noanimation' + }; + params.hideClass = {}; + } + + return params; + }; + + var swalPromise = function swalPromise(instance, domCache, innerParams) { + return new Promise(function (resolve) { + // functions to handle all closings/dismissals + var dismissWith = function dismissWith(dismiss) { + instance.closePopup({ + dismiss: dismiss + }); + }; + + privateMethods.swalPromiseResolve.set(instance, resolve); + + domCache.confirmButton.onclick = function () { + return handleConfirmButtonClick(instance, innerParams); + }; + + domCache.cancelButton.onclick = function () { + return handleCancelButtonClick(instance, dismissWith); + }; + + domCache.closeButton.onclick = function () { + return dismissWith(DismissReason.close); + }; + + handlePopupClick(instance, domCache, dismissWith); + addKeydownHandler(instance, globalState, innerParams, dismissWith); + + if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) { + addClass(document.body, swalClasses['toast-column']); + } else { + removeClass(document.body, swalClasses['toast-column']); + } + + handleInputOptionsAndValue(instance, innerParams); + openPopup(innerParams); + setupTimer(globalState, innerParams, dismissWith); + initFocus(domCache, innerParams); // Scroll container to top on open (#1247) + + domCache.container.scrollTop = 0; + }); + }; + + var populateDomCache = function populateDomCache(instance) { + var domCache = { + popup: getPopup(), + container: getContainer(), + content: getContent(), + actions: getActions(), + confirmButton: getConfirmButton(), + cancelButton: getCancelButton(), + closeButton: getCloseButton(), + validationMessage: getValidationMessage(), + progressSteps: getProgressSteps() + }; + privateProps.domCache.set(instance, domCache); + return domCache; + }; + + var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) { + var timerProgressBar = getTimerProgressBar(); + hide(timerProgressBar); + + if (innerParams.timer) { + globalState$$1.timeout = new Timer(function () { + dismissWith('timer'); + delete globalState$$1.timeout; + }, innerParams.timer); + + if (innerParams.timerProgressBar) { + show(timerProgressBar); + setTimeout(function () { + if (globalState$$1.timeout.running) { + // timer can be already stopped at this point + animateTimerProgressBar(innerParams.timer); + } + }); + } + } + }; + + var initFocus = function initFocus(domCache, innerParams) { + if (innerParams.toast) { + return; + } + + if (!callIfFunction(innerParams.allowEnterKey)) { + return blurActiveElement(); + } + + if (innerParams.focusCancel && isVisible(domCache.cancelButton)) { + return domCache.cancelButton.focus(); + } + + if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) { + return domCache.confirmButton.focus(); + } + + setFocus(innerParams, -1, 1); + }; + + var blurActiveElement = function blurActiveElement() { + if (document.activeElement && typeof document.activeElement.blur === 'function') { + document.activeElement.blur(); + } + }; + + /** + * Updates popup parameters. + */ + + function update(params) { + var popup = getPopup(); + var innerParams = privateProps.innerParams.get(this); + + if (!popup || hasClass(popup, innerParams.hideClass.popup)) { + return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); + } + + var validUpdatableParams = {}; // assign valid params from `params` to `defaults` + + Object.keys(params).forEach(function (param) { + if (Swal.isUpdatableParameter(param)) { + validUpdatableParams[param] = params[param]; + } else { + warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js")); + } + }); + + var updatedParams = _extends({}, innerParams, validUpdatableParams); + + render(this, updatedParams); + privateProps.innerParams.set(this, updatedParams); + Object.defineProperties(this, { + params: { + value: _extends({}, this.params, params), + writable: false, + enumerable: true + } + }); + } + + function _destroy() { + var domCache = privateProps.domCache.get(this); + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; // This instance has already been destroyed + } // Check if there is another Swal closing + + + if (domCache.popup && globalState.swalCloseEventFinishedCallback) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } // Check if there is a swal disposal defer timer + + + if (globalState.deferDisposalTimer) { + clearTimeout(globalState.deferDisposalTimer); + delete globalState.deferDisposalTimer; + } + + if (typeof innerParams.onDestroy === 'function') { + innerParams.onDestroy(); + } + + disposeSwal(this); + } + + var disposeSwal = function disposeSwal(instance) { + // Unset this.params so GC will dispose it (#1569) + delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + + delete globalState.keydownHandler; + delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569) + + unsetWeakMaps(privateProps); + unsetWeakMaps(privateMethods); + }; + + var unsetWeakMaps = function unsetWeakMaps(obj) { + for (var i in obj) { + obj[i] = new WeakMap(); + } + }; + + + + var instanceMethods = /*#__PURE__*/Object.freeze({ + hideLoading: hideLoading, + disableLoading: hideLoading, + getInput: getInput$1, + close: close, + closePopup: close, + closeModal: close, + closeToast: close, + enableButtons: enableButtons, + disableButtons: disableButtons, + enableInput: enableInput, + disableInput: disableInput, + showValidationMessage: showValidationMessage, + resetValidationMessage: resetValidationMessage$1, + getProgressSteps: getProgressSteps$1, + _main: _main, + update: update, + _destroy: _destroy + }); + + var currentInstance; // SweetAlert constructor + + function SweetAlert() { + // Prevent run in Node env + + /* istanbul ignore if */ + if (typeof window === 'undefined') { + return; + } // Check for the existence of Promise + + /* istanbul ignore if */ + + + if (typeof Promise === 'undefined') { + error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)'); + } + + currentInstance = this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var outerParams = Object.freeze(this.constructor.argsToParams(args)); + Object.defineProperties(this, { + params: { + value: outerParams, + writable: false, + enumerable: true, + configurable: true + } + }); + + var promise = this._main(this.params); + + privateProps.promise.set(this, promise); + } // `catch` cannot be the name of a module export, so we define our thenable methods here instead + + + SweetAlert.prototype.then = function (onFulfilled) { + var promise = privateProps.promise.get(this); + return promise.then(onFulfilled); + }; + + SweetAlert.prototype["finally"] = function (onFinally) { + var promise = privateProps.promise.get(this); + return promise["finally"](onFinally); + }; // Assign instance methods from src/instanceMethods/*.js to prototype + + + _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor + + + _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility + + + Object.keys(instanceMethods).forEach(function (key) { + SweetAlert[key] = function () { + if (currentInstance) { + var _currentInstance; + + return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments); + } + }; + }); + SweetAlert.DismissReason = DismissReason; + SweetAlert.version = '9.10.8'; + + var Swal = SweetAlert; + Swal["default"] = Swal; + + return Swal; + +})); +if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} + +"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\"\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}"); \ No newline at end of file diff --git a/assets/vendor/sweetalert2/sweetalert2.all.min.js b/assets/vendor/sweetalert2/sweetalert2.all.min.js new file mode 100644 index 0000000..b21cafa --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.all.min.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n\n
    \n
      \n
      \n
      \n
      \n
      \n
      \n \n

      \n \n
      \n
      \n
      \n \n \n
      \n \n \n
      \n \n
      \n \n \n
      \n
      \n
      \n \n \n
      \n
      \n
      \n
      \n
      \n
      \n').replace(/(^|\n)\s*/g,""),mt=function(t){var e,n=!!(e=W())&&(e.parentNode.removeChild(e),lt([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0);if(it())v("SweetAlert2 requires document to initialize");else{var o=document.createElement("div");o.className=F.container,n&&ut(o,F["no-transition"]),M(o,ft);var i,r,a,c,s,u,l,d,p,f,m,h,g="string"==typeof(i=t.target)?document.querySelector(i):i;g.appendChild(o),r=t,(a=K()).setAttribute("role",r.toast?"alert":"dialog"),a.setAttribute("aria-live",r.toast?"polite":"assertive"),r.toast||a.setAttribute("aria-modal","true"),c=g,"rtl"===window.getComputedStyle(c).direction&&ut(W(),F.rtl),s=k(),u=dt(s,F.input),l=dt(s,F.file),d=s.querySelector(".".concat(F.range," input")),p=s.querySelector(".".concat(F.range," output")),f=dt(s,F.select),m=s.querySelector(".".concat(F.checkbox," input")),h=dt(s,F.textarea),u.oninput=rt,l.onchange=rt,f.onchange=rt,m.onchange=rt,h.oninput=rt,d.oninput=function(t){rt(t),p.value=d.value},d.onchange=function(t){rt(t),d.nextSibling.value=d.value}}},ht=function(t,e){t.jquery?gt(e,t):M(e,t.toString())},gt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},vt=function(){if(it())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function bt(t,e,n){var o;et(t,n["show".concat((o=e).charAt(0).toUpperCase()+o.slice(1),"Button")],"inline-block"),M(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=F[e],R(t,n,"".concat(e,"Button")),ut(t,n["".concat(e,"ButtonClass")])}function yt(t,e){var n=W();if(n){var o,i,r,a;o=n,"string"==typeof(i=e.backdrop)?o.style.background=i:i||ut([document.documentElement,document.body],F["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&D('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),r=n,(a=e.position)in F?ut(r,F[a]):(D('The "position" parameter is not valid, defaulting to "center"'),ut(r,F.center)),function(t,e){if(e&&"string"==typeof e){var n="grow-".concat(e);n in F&&ut(t,F[n])}}(n,e.grow),R(n,e,"container");var c=document.body.getAttribute("data-swal2-queue-step");c&&(n.setAttribute("data-queue-step",c),document.body.removeAttribute("data-swal2-queue-step"))}}function wt(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var Ct={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},kt=["input","file","range","select","radio","checkbox","textarea"],xt=function(t){if(!St[t.input])return v('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=Bt(t.input),n=St[t.input](e,t);G(n),setTimeout(function(){$(n)})},Pt=function(t,e){var n=Q(k(),t);if(n)for(var o in!function(t){for(var e=0;e=s.progressSteps.length&&D("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.progressSteps.forEach(function(t,e){var n,o,i,r,a=(n=t,o=document.createElement("li"),ut(o,F["progress-step"]),M(o,n),o);if(u.appendChild(a),e===l&&ut(a,F["active-progress-step"]),e!==s.progressSteps.length-1){var c=(i=t,r=document.createElement("li"),ut(r,F["progress-step-line"]),i.progressStepsDistance&&(r.style.width=i.progressStepsDistance),r);u.appendChild(c)}})}function Lt(t,e){var n,o,i,r,a=O();R(a,e,"header"),Tt(0,e),function(t,e){var n=Ct.innerParams.get(t);if(n&&e.icon===n.icon&&w())R(w(),e,"icon");else if(jt(),e.icon)if(-1!==Object.keys(z).indexOf(e.icon)){var o=y(".".concat(F.icon,".").concat(z[e.icon]));G(o),Vt(o,e),Mt(),R(o,e,"icon"),ut(o,e.showClass.icon)}else v('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.icon,'"'))}(t,e),function(t){var e=x();if(!t.imageUrl)return tt(e);G(e),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),X(e,"width",t.imageWidth),X(e,"height",t.imageHeight),e.className=F.image,R(e,t,"image")}(e),n=e,o=C(),et(o,n.title||n.titleText),n.title&&at(n.title,o),n.titleText&&(o.innerText=n.titleText),R(o,n,"title"),i=e,r=q(),M(r,i.closeButtonHtml),R(r,i,"closeButton"),et(r,i.showCloseButton),r.setAttribute("aria-label",i.closeButtonAriaLabel)}function qt(t,e){var n,o,i,r;n=e,o=K(),X(o,"width",n.width),X(o,"padding",n.padding),n.background&&(o.style.background=n.background),Dt(o,n),yt(0,e),Lt(t,e),Et(t,e),ct(0,e),i=e,r=T(),et(r,i.footer),i.footer&&at(i.footer,r),R(r,i,"footer"),"function"==typeof e.onRender&&e.onRender(K())}function It(){return B()&&B().click()}var jt=function(){for(var t=n(),e=0;e\n \n
      \n
      \n ');else if("error"===e.icon)M(t,'\n \n \n \n \n ');else{M(t,Rt({question:"?",warning:"!",info:"i"}[e.icon]))}},Rt=function(t){return'
      ').concat(t,"
      ")},Ht=[],Dt=function(t,e){t.className="".concat(F.popup," ").concat(pt(t)?e.showClass.popup:""),e.toast?(ut([document.documentElement,document.body],F["toast-shown"]),ut(t,F.toast)):ut(t,F.modal),R(t,e,"popup"),"string"==typeof e.customClass&&ut(t,e.customClass),e.icon&&ut(t,F["icon-".concat(e.icon)])};function Nt(){var t=K();t||Ge.fire(),t=K();var e=E(),n=B();G(e),G(n,"inline-block"),ut([t,e],F.loading),n.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Ut(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;Kt.restoreFocusTimeout=setTimeout(function(){Kt.previousActiveElement&&Kt.previousActiveElement.focus?(Kt.previousActiveElement.focus(),Kt.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function _t(){if(Kt.timeout)return function(){var t=L(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),o=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(o,"%")}(),Kt.timeout.stop()}function Ft(){if(Kt.timeout){var t=Kt.timeout.start();return ot(t),t}}function zt(t){return Object.prototype.hasOwnProperty.call(Yt,t)}function Wt(t){return Qt[t]}var Kt={},Yt={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,onRender:void 0,onClose:void 0,onAfterClose:void 0,onDestroy:void 0,scrollbarPadding:!0},Zt=["title","titleText","text","html","icon","hideClass","customClass","allowOutsideClick","allowEscapeKey","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeight","imageAlt","progressSteps","currentProgressStep"],Qt={animation:'showClass" and "hideClass'},$t=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],Jt=Object.freeze({isValidParameter:zt,isUpdatableParameter:function(t){return-1!==Zt.indexOf(t)},isDeprecatedParameter:Wt,argsToParams:function(o){var i={};return"object"!==r(o[0])||b(o[0])?["title","html","icon"].forEach(function(t,e){var n=o[e];"string"==typeof n||b(n)?i[t]=n:void 0!==n&&v("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(n)))}):c(i,o[0]),i},isVisible:function(){return pt(K())},clickConfirm:It,clickCancel:function(){return S()&&S().click()},getContainer:W,getPopup:K,getTitle:C,getContent:k,getHtmlContainer:function(){return e(F["html-container"])},getImage:x,getIcon:w,getIcons:n,getCloseButton:q,getActions:E,getConfirmButton:B,getCancelButton:S,getHeader:O,getFooter:T,getTimerProgressBar:L,getFocusableElements:I,getValidationMessage:A,isLoading:function(){return K().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;nwindow.innerHeight&&(Z.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(Z.previousBodyPadding+function(){var t=document.createElement("div");t.className=F["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function te(){return!!window.MSInputMethodContext&&!!document.documentMode}function ee(){var t=W(),e=K();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var ne=function(){var n,o=W();o.ontouchstart=function(t){var e;n=t.target===o||!((e=o).scrollHeight>e.clientHeight)&&"INPUT"!==t.target.tagName},o.ontouchmove=function(t){n&&(t.preventDefault(),t.stopPropagation())}},oe={swalPromiseResolve:new WeakMap};function ie(t,e,n,o){n?ce(t,o):(Ut().then(function(){return ce(t,o)}),Kt.keydownTarget.removeEventListener("keydown",Kt.keydownHandler,{capture:Kt.keydownListenerCapture}),Kt.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),j()&&(null!==Z.previousBodyPadding&&(document.body.style.paddingRight="".concat(Z.previousBodyPadding,"px"),Z.previousBodyPadding=null),function(){if(V(document.body,F.iosfix)){var t=parseInt(document.body.style.top,10);lt(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),"undefined"!=typeof window&&te()&&window.removeEventListener("resize",ee),m(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),lt([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"],F["toast-column"]])}function re(t){var e=K();if(e){var n=Ct.innerParams.get(this);if(n&&!V(e,n.hideClass.popup)){var o=oe.swalPromiseResolve.get(this);lt(e,n.showClass.popup),ut(e,n.hideClass.popup);var i=W();lt(i,n.showClass.backdrop),ut(i,n.hideClass.backdrop),function(t,e,n){var o=W(),i=vt&&nt(e),r=n.onClose,a=n.onAfterClose;if(r!==null&&typeof r==="function"){r(e)}if(i){ae(t,e,o,a)}else{ie(t,o,Y(),a)}}(this,e,n),o(t||{})}}}var ae=function(t,e,n,o){Kt.swalCloseEventFinishedCallback=ie.bind(null,t,n,Y(),o),e.addEventListener(vt,function(t){t.target===e&&(Kt.swalCloseEventFinishedCallback(),delete Kt.swalCloseEventFinishedCallback)})},ce=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function se(t,e,n){var o=Ct.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function ue(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o")),mt(t)}function fe(t){var e=W(),n=K();"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n),Pe(e,n,t),ke(e,n),j()&&xe(e,t.scrollbarPadding),Y()||Kt.previousActiveElement||(Kt.previousActiveElement=document.activeElement),"function"==typeof t.onOpen&&setTimeout(function(){return t.onOpen(n)}),lt(e,F["no-transition"])}function me(t){var e=K();if(t.target===e){var n=W();e.removeEventListener(vt,me),n.style.overflowY="auto"}}function he(t,e){"select"===e.input||"radio"===e.input?Ee(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&g(e.inputValue)&&Oe(t,e)}function ge(t,e){t.disableButtons(),e.input?qe(t,e):Ie(t,e,!0)}function ve(t,e){t.disableButtons(),e(_.cancel)}function be(t,e){t.closePopup({value:e})}function ye(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return Ve(e,t,o)},t.keydownTarget=n.keydownListenerCapture?window:K(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function we(t,e,n){var o=I(),i=0;if(i:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:\"\";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em}"); \ No newline at end of file diff --git a/assets/vendor/sweetalert2/sweetalert2.css b/assets/vendor/sweetalert2/sweetalert2.css new file mode 100644 index 0000000..1be92e3 --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.css @@ -0,0 +1,1371 @@ +.swal2-popup.swal2-toast { + flex-direction: row; + align-items: center; + width: auto; + padding: 0.625em; + overflow-y: hidden; + background: #fff; + box-shadow: 0 0 0.625em #d9d9d9; +} +.swal2-popup.swal2-toast .swal2-header { + flex-direction: row; +} +.swal2-popup.swal2-toast .swal2-title { + flex-grow: 1; + justify-content: flex-start; + margin: 0 0.6em; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-footer { + margin: 0.5em 0 0; + padding: 0.5em 0 0; + font-size: 0.8em; +} +.swal2-popup.swal2-toast .swal2-close { + position: static; + width: 0.8em; + height: 0.8em; + line-height: 0.8; +} +.swal2-popup.swal2-toast .swal2-content { + justify-content: flex-start; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-icon { + width: 2em; + min-width: 2em; + height: 2em; + margin: 0; +} +.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { + display: flex; + align-items: center; + font-size: 1.8em; + font-weight: bold; +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-popup.swal2-toast .swal2-icon .swal2-icon-content { + font-size: 0.25em; + } +} +.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring { + width: 2em; + height: 2em; +} +.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line] { + top: 0.875em; + width: 1.375em; +} +.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { + left: 0.3125em; +} +.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { + right: 0.3125em; +} +.swal2-popup.swal2-toast .swal2-actions { + flex-basis: auto !important; + width: auto; + height: auto; + margin: 0 0.3125em; +} +.swal2-popup.swal2-toast .swal2-styled { + margin: 0 0.3125em; + padding: 0.3125em 0.625em; + font-size: 1em; +} +.swal2-popup.swal2-toast .swal2-styled:focus { + box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(50, 100, 150, 0.4); +} +.swal2-popup.swal2-toast .swal2-success { + border-color: #a5dc86; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line] { + position: absolute; + width: 1.6em; + height: 3em; + transform: rotate(45deg); + border-radius: 50%; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left] { + top: -0.8em; + left: -0.5em; + transform: rotate(-45deg); + transform-origin: 2em 2em; + border-radius: 4em 0 0 4em; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right] { + top: -0.25em; + left: 0.9375em; + transform-origin: 0 1.5em; + border-radius: 0 4em 4em 0; +} +.swal2-popup.swal2-toast .swal2-success .swal2-success-ring { + width: 2em; + height: 2em; +} +.swal2-popup.swal2-toast .swal2-success .swal2-success-fix { + top: 0; + left: 0.4375em; + width: 0.4375em; + height: 2.6875em; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line] { + height: 0.3125em; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip] { + top: 1.125em; + left: 0.1875em; + width: 0.75em; +} +.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long] { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; +} +.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip { + -webkit-animation: swal2-toast-animate-success-line-tip 0.75s; + animation: swal2-toast-animate-success-line-tip 0.75s; +} +.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long { + -webkit-animation: swal2-toast-animate-success-line-long 0.75s; + animation: swal2-toast-animate-success-line-long 0.75s; +} +.swal2-popup.swal2-toast.swal2-show { + -webkit-animation: swal2-toast-show 0.5s; + animation: swal2-toast-show 0.5s; +} +.swal2-popup.swal2-toast.swal2-hide { + -webkit-animation: swal2-toast-hide 0.1s forwards; + animation: swal2-toast-hide 0.1s forwards; +} + +.swal2-container { + display: flex; + position: fixed; + z-index: 1060; + top: 0; + right: 0; + bottom: 0; + left: 0; + flex-direction: row; + align-items: center; + justify-content: center; + padding: 0.625em; + overflow-x: hidden; + transition: background-color 0.1s; + -webkit-overflow-scrolling: touch; +} +.swal2-container.swal2-backdrop-show, .swal2-container.swal2-noanimation { + background: rgba(0, 0, 0, 0.4); +} +.swal2-container.swal2-backdrop-hide { + background: transparent !important; +} +.swal2-container.swal2-top { + align-items: flex-start; +} +.swal2-container.swal2-top-start, .swal2-container.swal2-top-left { + align-items: flex-start; + justify-content: flex-start; +} +.swal2-container.swal2-top-end, .swal2-container.swal2-top-right { + align-items: flex-start; + justify-content: flex-end; +} +.swal2-container.swal2-center { + align-items: center; +} +.swal2-container.swal2-center-start, .swal2-container.swal2-center-left { + align-items: center; + justify-content: flex-start; +} +.swal2-container.swal2-center-end, .swal2-container.swal2-center-right { + align-items: center; + justify-content: flex-end; +} +.swal2-container.swal2-bottom { + align-items: flex-end; +} +.swal2-container.swal2-bottom-start, .swal2-container.swal2-bottom-left { + align-items: flex-end; + justify-content: flex-start; +} +.swal2-container.swal2-bottom-end, .swal2-container.swal2-bottom-right { + align-items: flex-end; + justify-content: flex-end; +} +.swal2-container.swal2-bottom > :first-child, .swal2-container.swal2-bottom-start > :first-child, .swal2-container.swal2-bottom-left > :first-child, .swal2-container.swal2-bottom-end > :first-child, .swal2-container.swal2-bottom-right > :first-child { + margin-top: auto; +} +.swal2-container.swal2-grow-fullscreen > .swal2-modal { + display: flex !important; + flex: 1; + align-self: stretch; + justify-content: center; +} +.swal2-container.swal2-grow-row > .swal2-modal { + display: flex !important; + flex: 1; + align-content: center; + justify-content: center; +} +.swal2-container.swal2-grow-column { + flex: 1; + flex-direction: column; +} +.swal2-container.swal2-grow-column.swal2-top, .swal2-container.swal2-grow-column.swal2-center, .swal2-container.swal2-grow-column.swal2-bottom { + align-items: center; +} +.swal2-container.swal2-grow-column.swal2-top-start, .swal2-container.swal2-grow-column.swal2-center-start, .swal2-container.swal2-grow-column.swal2-bottom-start, .swal2-container.swal2-grow-column.swal2-top-left, .swal2-container.swal2-grow-column.swal2-center-left, .swal2-container.swal2-grow-column.swal2-bottom-left { + align-items: flex-start; +} +.swal2-container.swal2-grow-column.swal2-top-end, .swal2-container.swal2-grow-column.swal2-center-end, .swal2-container.swal2-grow-column.swal2-bottom-end, .swal2-container.swal2-grow-column.swal2-top-right, .swal2-container.swal2-grow-column.swal2-center-right, .swal2-container.swal2-grow-column.swal2-bottom-right { + align-items: flex-end; +} +.swal2-container.swal2-grow-column > .swal2-modal { + display: flex !important; + flex: 1; + align-content: center; + justify-content: center; +} +.swal2-container.swal2-no-transition { + transition: none !important; +} +.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen) > .swal2-modal { + margin: auto; +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-container .swal2-modal { + margin: 0 !important; + } +} + +.swal2-popup { + display: none; + position: relative; + box-sizing: border-box; + flex-direction: column; + justify-content: center; + width: 32em; + max-width: 100%; + padding: 1.25em; + border: none; + border-radius: 0.3125em; + background: #fff; + font-family: inherit; + font-size: 1rem; +} +.swal2-popup:focus { + outline: none; +} +.swal2-popup.swal2-loading { + overflow-y: hidden; +} + +.swal2-header { + display: flex; + flex-direction: column; + align-items: center; +} + +.swal2-title { + position: relative; + max-width: 100%; + margin: 0 0 0.4em; + padding: 0; + color: #595959; + font-size: 1.875em; + font-weight: 600; + text-align: center; + text-transform: none; + word-wrap: break-word; +} + +.swal2-actions { + display: flex; + z-index: 1; + flex-wrap: wrap; + align-items: center; + justify-content: center; + width: 100%; + margin: 1.25em auto 0; +} +.swal2-actions:not(.swal2-loading) .swal2-styled[disabled] { + opacity: 0.4; +} +.swal2-actions:not(.swal2-loading) .swal2-styled:hover { + background-image: linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1)); +} +.swal2-actions:not(.swal2-loading) .swal2-styled:active { + background-image: linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)); +} +.swal2-actions.swal2-loading .swal2-styled.swal2-confirm { + box-sizing: border-box; + width: 2.5em; + height: 2.5em; + margin: 0.46875em; + padding: 0; + -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + border: 0.25em solid transparent; + border-radius: 100%; + border-color: transparent; + background-color: transparent !important; + color: transparent; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.swal2-actions.swal2-loading .swal2-styled.swal2-cancel { + margin-right: 30px; + margin-left: 30px; +} +.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after { + content: ""; + display: inline-block; + width: 15px; + height: 15px; + margin-left: 5px; + -webkit-animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + animation: swal2-rotate-loading 1.5s linear 0s infinite normal; + border: 3px solid #999999; + border-radius: 50%; + border-right-color: transparent; + box-shadow: 1px 1px 1px #fff; +} + +.swal2-styled { + margin: 0.3125em; + padding: 0.625em 2em; + box-shadow: none; + font-weight: 500; +} +.swal2-styled:not([disabled]) { + cursor: pointer; +} +.swal2-styled.swal2-confirm { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #3085d6; + color: #fff; + font-size: 1.0625em; +} +.swal2-styled.swal2-cancel { + border: 0; + border-radius: 0.25em; + background: initial; + background-color: #aaa; + color: #fff; + font-size: 1.0625em; +} +.swal2-styled:focus { + outline: none; + box-shadow: 0 0 0 1px #fff, 0 0 0 3px rgba(50, 100, 150, 0.4); +} +.swal2-styled::-moz-focus-inner { + border: 0; +} + +.swal2-footer { + justify-content: center; + margin: 1.25em 0 0; + padding: 1em 0 0; + border-top: 1px solid #eee; + color: #545454; + font-size: 1em; +} + +.swal2-timer-progress-bar-container { + position: absolute; + right: 0; + bottom: 0; + left: 0; + height: 0.25em; + overflow: hidden; + border-bottom-right-radius: 0.3125em; + border-bottom-left-radius: 0.3125em; +} + +.swal2-timer-progress-bar { + width: 100%; + height: 0.25em; + background: rgba(0, 0, 0, 0.2); +} + +.swal2-image { + max-width: 100%; + margin: 1.25em auto; +} + +.swal2-close { + position: absolute; + z-index: 2; + top: 0; + right: 0; + align-items: center; + justify-content: center; + width: 1.2em; + height: 1.2em; + padding: 0; + overflow: hidden; + transition: color 0.1s ease-out; + border: none; + border-radius: 0; + background: transparent; + color: #cccccc; + font-family: serif; + font-size: 2.5em; + line-height: 1.2; + cursor: pointer; +} +.swal2-close:hover { + transform: none; + background: transparent; + color: #f27474; +} +.swal2-close::-moz-focus-inner { + border: 0; +} + +.swal2-content { + z-index: 1; + justify-content: center; + margin: 0; + padding: 0; + color: #545454; + font-size: 1.125em; + font-weight: normal; + line-height: normal; + text-align: center; + word-wrap: break-word; +} + +.swal2-input, +.swal2-file, +.swal2-textarea, +.swal2-select, +.swal2-radio, +.swal2-checkbox { + margin: 1em auto; +} + +.swal2-input, +.swal2-file, +.swal2-textarea { + box-sizing: border-box; + width: 100%; + transition: border-color 0.3s, box-shadow 0.3s; + border: 1px solid #d9d9d9; + border-radius: 0.1875em; + background: inherit; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06); + color: inherit; + font-size: 1.125em; +} +.swal2-input.swal2-inputerror, +.swal2-file.swal2-inputerror, +.swal2-textarea.swal2-inputerror { + border-color: #f27474 !important; + box-shadow: 0 0 2px #f27474 !important; +} +.swal2-input:focus, +.swal2-file:focus, +.swal2-textarea:focus { + border: 1px solid #b4dbed; + outline: none; + box-shadow: 0 0 3px #c4e6f5; +} +.swal2-input::-webkit-input-placeholder, .swal2-file::-webkit-input-placeholder, .swal2-textarea::-webkit-input-placeholder { + color: #cccccc; +} +.swal2-input::-moz-placeholder, .swal2-file::-moz-placeholder, .swal2-textarea::-moz-placeholder { + color: #cccccc; +} +.swal2-input:-ms-input-placeholder, .swal2-file:-ms-input-placeholder, .swal2-textarea:-ms-input-placeholder { + color: #cccccc; +} +.swal2-input::-ms-input-placeholder, .swal2-file::-ms-input-placeholder, .swal2-textarea::-ms-input-placeholder { + color: #cccccc; +} +.swal2-input::placeholder, +.swal2-file::placeholder, +.swal2-textarea::placeholder { + color: #cccccc; +} + +.swal2-range { + margin: 1em auto; + background: #fff; +} +.swal2-range input { + width: 80%; +} +.swal2-range output { + width: 20%; + color: inherit; + font-weight: 600; + text-align: center; +} +.swal2-range input, +.swal2-range output { + height: 2.625em; + padding: 0; + font-size: 1.125em; + line-height: 2.625em; +} + +.swal2-input { + height: 2.625em; + padding: 0 0.75em; +} +.swal2-input[type=number] { + max-width: 10em; +} + +.swal2-file { + background: inherit; + font-size: 1.125em; +} + +.swal2-textarea { + height: 6.75em; + padding: 0.75em; +} + +.swal2-select { + min-width: 50%; + max-width: 100%; + padding: 0.375em 0.625em; + background: inherit; + color: inherit; + font-size: 1.125em; +} + +.swal2-radio, +.swal2-checkbox { + align-items: center; + justify-content: center; + background: #fff; + color: inherit; +} +.swal2-radio label, +.swal2-checkbox label { + margin: 0 0.6em; + font-size: 1.125em; +} +.swal2-radio input, +.swal2-checkbox input { + margin: 0 0.4em; +} + +.swal2-validation-message { + display: none; + align-items: center; + justify-content: center; + padding: 0.625em; + overflow: hidden; + background: #f0f0f0; + color: #666666; + font-size: 1em; + font-weight: 300; +} +.swal2-validation-message::before { + content: "!"; + display: inline-block; + width: 1.5em; + min-width: 1.5em; + height: 1.5em; + margin: 0 0.625em; + border-radius: 50%; + background-color: #f27474; + color: #fff; + font-weight: 600; + line-height: 1.5em; + text-align: center; +} + +.swal2-icon { + position: relative; + box-sizing: content-box; + justify-content: center; + width: 5em; + height: 5em; + margin: 1.25em auto 1.875em; + border: 0.25em solid transparent; + border-radius: 50%; + font-family: inherit; + line-height: 5em; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.swal2-icon .swal2-icon-content { + display: flex; + align-items: center; + font-size: 3.75em; +} +.swal2-icon.swal2-error { + border-color: #f27474; + color: #f27474; +} +.swal2-icon.swal2-error .swal2-x-mark { + position: relative; + flex-grow: 1; +} +.swal2-icon.swal2-error [class^=swal2-x-mark-line] { + display: block; + position: absolute; + top: 2.3125em; + width: 2.9375em; + height: 0.3125em; + border-radius: 0.125em; + background-color: #f27474; +} +.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left] { + left: 1.0625em; + transform: rotate(45deg); +} +.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right] { + right: 1em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-error.swal2-icon-show { + -webkit-animation: swal2-animate-error-icon 0.5s; + animation: swal2-animate-error-icon 0.5s; +} +.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark { + -webkit-animation: swal2-animate-error-x-mark 0.5s; + animation: swal2-animate-error-x-mark 0.5s; +} +.swal2-icon.swal2-warning { + border-color: #facea8; + color: #f8bb86; +} +.swal2-icon.swal2-info { + border-color: #9de0f6; + color: #3fc3ee; +} +.swal2-icon.swal2-question { + border-color: #c9dae1; + color: #87adbd; +} +.swal2-icon.swal2-success { + border-color: #a5dc86; + color: #a5dc86; +} +.swal2-icon.swal2-success [class^=swal2-success-circular-line] { + position: absolute; + width: 3.75em; + height: 7.5em; + transform: rotate(45deg); + border-radius: 50%; +} +.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left] { + top: -0.4375em; + left: -2.0635em; + transform: rotate(-45deg); + transform-origin: 3.75em 3.75em; + border-radius: 7.5em 0 0 7.5em; +} +.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right] { + top: -0.6875em; + left: 1.875em; + transform: rotate(-45deg); + transform-origin: 0 3.75em; + border-radius: 0 7.5em 7.5em 0; +} +.swal2-icon.swal2-success .swal2-success-ring { + position: absolute; + z-index: 2; + top: -0.25em; + left: -0.25em; + box-sizing: content-box; + width: 100%; + height: 100%; + border: 0.25em solid rgba(165, 220, 134, 0.3); + border-radius: 50%; +} +.swal2-icon.swal2-success .swal2-success-fix { + position: absolute; + z-index: 1; + top: 0.5em; + left: 1.625em; + width: 0.4375em; + height: 5.625em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-success [class^=swal2-success-line] { + display: block; + position: absolute; + z-index: 2; + height: 0.3125em; + border-radius: 0.125em; + background-color: #a5dc86; +} +.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip] { + top: 2.875em; + left: 0.8125em; + width: 1.5625em; + transform: rotate(45deg); +} +.swal2-icon.swal2-success [class^=swal2-success-line][class$=long] { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + transform: rotate(-45deg); +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip { + -webkit-animation: swal2-animate-success-line-tip 0.75s; + animation: swal2-animate-success-line-tip 0.75s; +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long { + -webkit-animation: swal2-animate-success-line-long 0.75s; + animation: swal2-animate-success-line-long 0.75s; +} +.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right { + -webkit-animation: swal2-rotate-success-circular-line 4.25s ease-in; + animation: swal2-rotate-success-circular-line 4.25s ease-in; +} + +.swal2-progress-steps { + align-items: center; + margin: 0 0 1.25em; + padding: 0; + background: inherit; + font-weight: 600; +} +.swal2-progress-steps li { + display: inline-block; + position: relative; +} +.swal2-progress-steps .swal2-progress-step { + z-index: 20; + width: 2em; + height: 2em; + border-radius: 2em; + background: #3085d6; + color: #fff; + line-height: 2em; + text-align: center; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step { + background: #3085d6; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step { + background: #add8e6; + color: #fff; +} +.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step ~ .swal2-progress-step-line { + background: #add8e6; +} +.swal2-progress-steps .swal2-progress-step-line { + z-index: 10; + width: 2.5em; + height: 0.4em; + margin: 0 -1px; + background: #3085d6; +} + +[class^=swal2] { + -webkit-tap-highlight-color: transparent; +} + +.swal2-show { + -webkit-animation: swal2-show 0.3s; + animation: swal2-show 0.3s; +} + +.swal2-hide { + -webkit-animation: swal2-hide 0.15s forwards; + animation: swal2-hide 0.15s forwards; +} + +.swal2-noanimation { + transition: none; +} + +.swal2-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +.swal2-rtl .swal2-close { + right: auto; + left: 0; +} +.swal2-rtl .swal2-timer-progress-bar { + right: 0; + left: auto; +} + +@supports (-ms-accelerator: true) { + .swal2-range input { + width: 100% !important; + } + .swal2-range output { + display: none; + } +} +@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) { + .swal2-range input { + width: 100% !important; + } + .swal2-range output { + display: none; + } +} +@-moz-document url-prefix() { + .swal2-close:focus { + outline: 2px solid rgba(50, 100, 150, 0.4); + } +} +@-webkit-keyframes swal2-toast-show { + 0% { + transform: translateY(-0.625em) rotateZ(2deg); + } + 33% { + transform: translateY(0) rotateZ(-2deg); + } + 66% { + transform: translateY(0.3125em) rotateZ(2deg); + } + 100% { + transform: translateY(0) rotateZ(0deg); + } +} +@keyframes swal2-toast-show { + 0% { + transform: translateY(-0.625em) rotateZ(2deg); + } + 33% { + transform: translateY(0) rotateZ(-2deg); + } + 66% { + transform: translateY(0.3125em) rotateZ(2deg); + } + 100% { + transform: translateY(0) rotateZ(0deg); + } +} +@-webkit-keyframes swal2-toast-hide { + 100% { + transform: rotateZ(1deg); + opacity: 0; + } +} +@keyframes swal2-toast-hide { + 100% { + transform: rotateZ(1deg); + opacity: 0; + } +} +@-webkit-keyframes swal2-toast-animate-success-line-tip { + 0% { + top: 0.5625em; + left: 0.0625em; + width: 0; + } + 54% { + top: 0.125em; + left: 0.125em; + width: 0; + } + 70% { + top: 0.625em; + left: -0.25em; + width: 1.625em; + } + 84% { + top: 1.0625em; + left: 0.75em; + width: 0.5em; + } + 100% { + top: 1.125em; + left: 0.1875em; + width: 0.75em; + } +} +@keyframes swal2-toast-animate-success-line-tip { + 0% { + top: 0.5625em; + left: 0.0625em; + width: 0; + } + 54% { + top: 0.125em; + left: 0.125em; + width: 0; + } + 70% { + top: 0.625em; + left: -0.25em; + width: 1.625em; + } + 84% { + top: 1.0625em; + left: 0.75em; + width: 0.5em; + } + 100% { + top: 1.125em; + left: 0.1875em; + width: 0.75em; + } +} +@-webkit-keyframes swal2-toast-animate-success-line-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; + } + 65% { + top: 1.25em; + right: 0.9375em; + width: 0; + } + 84% { + top: 0.9375em; + right: 0; + width: 1.125em; + } + 100% { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; + } +} +@keyframes swal2-toast-animate-success-line-long { + 0% { + top: 1.625em; + right: 1.375em; + width: 0; + } + 65% { + top: 1.25em; + right: 0.9375em; + width: 0; + } + 84% { + top: 0.9375em; + right: 0; + width: 1.125em; + } + 100% { + top: 0.9375em; + right: 0.1875em; + width: 1.375em; + } +} +@-webkit-keyframes swal2-show { + 0% { + transform: scale(0.7); + } + 45% { + transform: scale(1.05); + } + 80% { + transform: scale(0.95); + } + 100% { + transform: scale(1); + } +} +@keyframes swal2-show { + 0% { + transform: scale(0.7); + } + 45% { + transform: scale(1.05); + } + 80% { + transform: scale(0.95); + } + 100% { + transform: scale(1); + } +} +@-webkit-keyframes swal2-hide { + 0% { + transform: scale(1); + opacity: 1; + } + 100% { + transform: scale(0.5); + opacity: 0; + } +} +@keyframes swal2-hide { + 0% { + transform: scale(1); + opacity: 1; + } + 100% { + transform: scale(0.5); + opacity: 0; + } +} +@-webkit-keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: 0.0625em; + width: 0; + } + 54% { + top: 1.0625em; + left: 0.125em; + width: 0; + } + 70% { + top: 2.1875em; + left: -0.375em; + width: 3.125em; + } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; + } + 100% { + top: 2.8125em; + left: 0.8125em; + width: 1.5625em; + } +} +@keyframes swal2-animate-success-line-tip { + 0% { + top: 1.1875em; + left: 0.0625em; + width: 0; + } + 54% { + top: 1.0625em; + left: 0.125em; + width: 0; + } + 70% { + top: 2.1875em; + left: -0.375em; + width: 3.125em; + } + 84% { + top: 3em; + left: 1.3125em; + width: 1.0625em; + } + 100% { + top: 2.8125em; + left: 0.8125em; + width: 1.5625em; + } +} +@-webkit-keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; + } + 100% { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + } +} +@keyframes swal2-animate-success-line-long { + 0% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 65% { + top: 3.375em; + right: 2.875em; + width: 0; + } + 84% { + top: 2.1875em; + right: 0; + width: 3.4375em; + } + 100% { + top: 2.375em; + right: 0.5em; + width: 2.9375em; + } +} +@-webkit-keyframes swal2-rotate-success-circular-line { + 0% { + transform: rotate(-45deg); + } + 5% { + transform: rotate(-45deg); + } + 12% { + transform: rotate(-405deg); + } + 100% { + transform: rotate(-405deg); + } +} +@keyframes swal2-rotate-success-circular-line { + 0% { + transform: rotate(-45deg); + } + 5% { + transform: rotate(-45deg); + } + 12% { + transform: rotate(-405deg); + } + 100% { + transform: rotate(-405deg); + } +} +@-webkit-keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 50% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 80% { + margin-top: -0.375em; + transform: scale(1.15); + } + 100% { + margin-top: 0; + transform: scale(1); + opacity: 1; + } +} +@keyframes swal2-animate-error-x-mark { + 0% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 50% { + margin-top: 1.625em; + transform: scale(0.4); + opacity: 0; + } + 80% { + margin-top: -0.375em; + transform: scale(1.15); + } + 100% { + margin-top: 0; + transform: scale(1); + opacity: 1; + } +} +@-webkit-keyframes swal2-animate-error-icon { + 0% { + transform: rotateX(100deg); + opacity: 0; + } + 100% { + transform: rotateX(0deg); + opacity: 1; + } +} +@keyframes swal2-animate-error-icon { + 0% { + transform: rotateX(100deg); + opacity: 0; + } + 100% { + transform: rotateX(0deg); + opacity: 1; + } +} +@-webkit-keyframes swal2-rotate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes swal2-rotate-loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow: hidden; +} +body.swal2-height-auto { + height: auto !important; +} +body.swal2-no-backdrop .swal2-container { + top: auto; + right: auto; + bottom: auto; + left: auto; + max-width: calc(100% - 0.625em * 2); + background-color: transparent !important; +} +body.swal2-no-backdrop .swal2-container > .swal2-modal { + box-shadow: 0 0 10px rgba(0, 0, 0, 0.4); +} +body.swal2-no-backdrop .swal2-container.swal2-top { + top: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-top-start, body.swal2-no-backdrop .swal2-container.swal2-top-left { + top: 0; + left: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-top-end, body.swal2-no-backdrop .swal2-container.swal2-top-right { + top: 0; + right: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-center { + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +} +body.swal2-no-backdrop .swal2-container.swal2-center-start, body.swal2-no-backdrop .swal2-container.swal2-center-left { + top: 50%; + left: 0; + transform: translateY(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-center-end, body.swal2-no-backdrop .swal2-container.swal2-center-right { + top: 50%; + right: 0; + transform: translateY(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-bottom { + bottom: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-no-backdrop .swal2-container.swal2-bottom-start, body.swal2-no-backdrop .swal2-container.swal2-bottom-left { + bottom: 0; + left: 0; +} +body.swal2-no-backdrop .swal2-container.swal2-bottom-end, body.swal2-no-backdrop .swal2-container.swal2-bottom-right { + right: 0; + bottom: 0; +} +@media print { + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) { + overflow-y: scroll !important; + } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) > [aria-hidden=true] { + display: none; + } + body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container { + position: static !important; + } +} +body.swal2-toast-shown .swal2-container { + background-color: transparent; +} +body.swal2-toast-shown .swal2-container.swal2-top { + top: 0; + right: auto; + bottom: auto; + left: 50%; + transform: translateX(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-top-end, body.swal2-toast-shown .swal2-container.swal2-top-right { + top: 0; + right: 0; + bottom: auto; + left: auto; +} +body.swal2-toast-shown .swal2-container.swal2-top-start, body.swal2-toast-shown .swal2-container.swal2-top-left { + top: 0; + right: auto; + bottom: auto; + left: 0; +} +body.swal2-toast-shown .swal2-container.swal2-center-start, body.swal2-toast-shown .swal2-container.swal2-center-left { + top: 50%; + right: auto; + bottom: auto; + left: 0; + transform: translateY(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-center { + top: 50%; + right: auto; + bottom: auto; + left: 50%; + transform: translate(-50%, -50%); +} +body.swal2-toast-shown .swal2-container.swal2-center-end, body.swal2-toast-shown .swal2-container.swal2-center-right { + top: 50%; + right: 0; + bottom: auto; + left: auto; + transform: translateY(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-bottom-start, body.swal2-toast-shown .swal2-container.swal2-bottom-left { + top: auto; + right: auto; + bottom: 0; + left: 0; +} +body.swal2-toast-shown .swal2-container.swal2-bottom { + top: auto; + right: auto; + bottom: 0; + left: 50%; + transform: translateX(-50%); +} +body.swal2-toast-shown .swal2-container.swal2-bottom-end, body.swal2-toast-shown .swal2-container.swal2-bottom-right { + top: auto; + right: 0; + bottom: 0; + left: auto; +} +body.swal2-toast-column .swal2-toast { + flex-direction: column; + align-items: stretch; +} +body.swal2-toast-column .swal2-toast .swal2-actions { + flex: 1; + align-self: stretch; + height: 2.2em; + margin-top: 0.3125em; +} +body.swal2-toast-column .swal2-toast .swal2-loading { + justify-content: center; +} +body.swal2-toast-column .swal2-toast .swal2-input { + height: 2em; + margin: 0.3125em auto; + font-size: 1em; +} +body.swal2-toast-column .swal2-toast .swal2-validation-message { + font-size: 1em; +} \ No newline at end of file diff --git a/assets/vendor/sweetalert2/sweetalert2.js b/assets/vendor/sweetalert2/sweetalert2.js new file mode 100644 index 0000000..fd9ae10 --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.js @@ -0,0 +1,3065 @@ +/*! +* sweetalert2 v9.10.8 +* Released under the MIT License. +*/ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Sweetalert2 = factory()); +}(this, function () { 'use strict'; + + function _typeof(obj) { + "@babel/helpers - typeof"; + + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function (obj) { + return typeof obj; + }; + } else { + _typeof = function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + + return _typeof(obj); + } + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); + } + + function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); + } + + function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); + } + + function isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + return true; + } catch (e) { + return false; + } + } + + function _construct(Parent, args, Class) { + if (isNativeReflectConstruct()) { + _construct = Reflect.construct; + } else { + _construct = function _construct(Parent, args, Class) { + var a = [null]; + a.push.apply(a, args); + var Constructor = Function.bind.apply(Parent, a); + var instance = new Constructor(); + if (Class) _setPrototypeOf(instance, Class.prototype); + return instance; + }; + } + + return _construct.apply(null, arguments); + } + + function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; + } + + function _possibleConstructorReturn(self, call) { + if (call && (typeof call === "object" || typeof call === "function")) { + return call; + } + + return _assertThisInitialized(self); + } + + function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + + return object; + } + + function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + + if (desc.get) { + return desc.get.call(receiver); + } + + return desc.value; + }; + } + + return _get(target, property, receiver || target); + } + + var consolePrefix = 'SweetAlert2:'; + /** + * Filter the unique values into a new array + * @param arr + */ + + var uniqueArray = function uniqueArray(arr) { + var result = []; + + for (var i = 0; i < arr.length; i++) { + if (result.indexOf(arr[i]) === -1) { + result.push(arr[i]); + } + } + + return result; + }; + /** + * Capitalize the first letter of a string + * @param str + */ + + var capitalizeFirstLetter = function capitalizeFirstLetter(str) { + return str.charAt(0).toUpperCase() + str.slice(1); + }; + /** + * Returns the array ob object values (Object.values isn't supported in IE11) + * @param obj + */ + + var objectValues = function objectValues(obj) { + return Object.keys(obj).map(function (key) { + return obj[key]; + }); + }; + /** + * Convert NodeList to Array + * @param nodeList + */ + + var toArray = function toArray(nodeList) { + return Array.prototype.slice.call(nodeList); + }; + /** + * Standardise console warnings + * @param message + */ + + var warn = function warn(message) { + console.warn("".concat(consolePrefix, " ").concat(message)); + }; + /** + * Standardise console errors + * @param message + */ + + var error = function error(message) { + console.error("".concat(consolePrefix, " ").concat(message)); + }; + /** + * Private global state for `warnOnce` + * @type {Array} + * @private + */ + + var previousWarnOnceMessages = []; + /** + * Show a console warning, but only if it hasn't already been shown + * @param message + */ + + var warnOnce = function warnOnce(message) { + if (!(previousWarnOnceMessages.indexOf(message) !== -1)) { + previousWarnOnceMessages.push(message); + warn(message); + } + }; + /** + * Show a one-time console warning about deprecated params/methods + */ + + var warnAboutDepreation = function warnAboutDepreation(deprecatedParam, useInstead) { + warnOnce("\"".concat(deprecatedParam, "\" is deprecated and will be removed in the next major release. Please use \"").concat(useInstead, "\" instead.")); + }; + /** + * If `arg` is a function, call it (with no arguments or context) and return the result. + * Otherwise, just pass the value through + * @param arg + */ + + var callIfFunction = function callIfFunction(arg) { + return typeof arg === 'function' ? arg() : arg; + }; + var isPromise = function isPromise(arg) { + return arg && Promise.resolve(arg) === arg; + }; + + var DismissReason = Object.freeze({ + cancel: 'cancel', + backdrop: 'backdrop', + close: 'close', + esc: 'esc', + timer: 'timer' + }); + + var isJqueryElement = function isJqueryElement(elem) { + return _typeof(elem) === 'object' && elem.jquery; + }; + + var isElement = function isElement(elem) { + return elem instanceof Element || isJqueryElement(elem); + }; + + var argsToParams = function argsToParams(args) { + var params = {}; + + if (_typeof(args[0]) === 'object' && !isElement(args[0])) { + _extends(params, args[0]); + } else { + ['title', 'html', 'icon'].forEach(function (name, index) { + var arg = args[index]; + + if (typeof arg === 'string' || isElement(arg)) { + params[name] = arg; + } else if (arg !== undefined) { + error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(_typeof(arg))); + } + }); + } + + return params; + }; + + var swalPrefix = 'swal2-'; + var prefix = function prefix(items) { + var result = {}; + + for (var i in items) { + result[items[i]] = swalPrefix + items[i]; + } + + return result; + }; + var swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'cancel', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); + var iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); + + var getContainer = function getContainer() { + return document.body.querySelector(".".concat(swalClasses.container)); + }; + var elementBySelector = function elementBySelector(selectorString) { + var container = getContainer(); + return container ? container.querySelector(selectorString) : null; + }; + + var elementByClass = function elementByClass(className) { + return elementBySelector(".".concat(className)); + }; + + var getPopup = function getPopup() { + return elementByClass(swalClasses.popup); + }; + var getIcons = function getIcons() { + var popup = getPopup(); + return toArray(popup.querySelectorAll(".".concat(swalClasses.icon))); + }; + var getIcon = function getIcon() { + var visibleIcon = getIcons().filter(function (icon) { + return isVisible(icon); + }); + return visibleIcon.length ? visibleIcon[0] : null; + }; + var getTitle = function getTitle() { + return elementByClass(swalClasses.title); + }; + var getContent = function getContent() { + return elementByClass(swalClasses.content); + }; + var getHtmlContainer = function getHtmlContainer() { + return elementByClass(swalClasses['html-container']); + }; + var getImage = function getImage() { + return elementByClass(swalClasses.image); + }; + var getProgressSteps = function getProgressSteps() { + return elementByClass(swalClasses['progress-steps']); + }; + var getValidationMessage = function getValidationMessage() { + return elementByClass(swalClasses['validation-message']); + }; + var getConfirmButton = function getConfirmButton() { + return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); + }; + var getCancelButton = function getCancelButton() { + return elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); + }; + var getActions = function getActions() { + return elementByClass(swalClasses.actions); + }; + var getHeader = function getHeader() { + return elementByClass(swalClasses.header); + }; + var getFooter = function getFooter() { + return elementByClass(swalClasses.footer); + }; + var getTimerProgressBar = function getTimerProgressBar() { + return elementByClass(swalClasses['timer-progress-bar']); + }; + var getCloseButton = function getCloseButton() { + return elementByClass(swalClasses.close); + }; // https://github.com/jkup/focusable/blob/master/index.js + + var focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; + var getFocusableElements = function getFocusableElements() { + var focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex + .sort(function (a, b) { + a = parseInt(a.getAttribute('tabindex')); + b = parseInt(b.getAttribute('tabindex')); + + if (a > b) { + return 1; + } else if (a < b) { + return -1; + } + + return 0; + }); + var otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(function (el) { + return el.getAttribute('tabindex') !== '-1'; + }); + return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(function (el) { + return isVisible(el); + }); + }; + var isModal = function isModal() { + return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']); + }; + var isToast = function isToast() { + return document.body.classList.contains(swalClasses['toast-shown']); + }; + var isLoading = function isLoading() { + return getPopup().hasAttribute('data-loading'); + }; + + var states = { + previousBodyPadding: null + }; + var setInnerHtml = function setInnerHtml(elem, html) { + // #1926 + elem.textContent = ''; + + if (html) { + var parser = new DOMParser(); + var parsed = parser.parseFromString(html, "text/html"); + toArray(parsed.querySelector('head').childNodes).forEach(function (child) { + elem.appendChild(child); + }); + toArray(parsed.querySelector('body').childNodes).forEach(function (child) { + elem.appendChild(child); + }); + } + }; + var hasClass = function hasClass(elem, className) { + if (!className) { + return false; + } + + var classList = className.split(/\s+/); + + for (var i = 0; i < classList.length; i++) { + if (!elem.classList.contains(classList[i])) { + return false; + } + } + + return true; + }; + + var removeCustomClasses = function removeCustomClasses(elem, params) { + toArray(elem.classList).forEach(function (className) { + if (!(objectValues(swalClasses).indexOf(className) !== -1) && !(objectValues(iconTypes).indexOf(className) !== -1) && !(objectValues(params.showClass).indexOf(className) !== -1)) { + elem.classList.remove(className); + } + }); + }; + + var applyCustomClass = function applyCustomClass(elem, params, className) { + removeCustomClasses(elem, params); + + if (params.customClass && params.customClass[className]) { + if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) { + return warn("Invalid type of customClass.".concat(className, "! Expected string or iterable object, got \"").concat(_typeof(params.customClass[className]), "\"")); + } + + addClass(elem, params.customClass[className]); + } + }; + function getInput(content, inputType) { + if (!inputType) { + return null; + } + + switch (inputType) { + case 'select': + case 'textarea': + case 'file': + return getChildByClass(content, swalClasses[inputType]); + + case 'checkbox': + return content.querySelector(".".concat(swalClasses.checkbox, " input")); + + case 'radio': + return content.querySelector(".".concat(swalClasses.radio, " input:checked")) || content.querySelector(".".concat(swalClasses.radio, " input:first-child")); + + case 'range': + return content.querySelector(".".concat(swalClasses.range, " input")); + + default: + return getChildByClass(content, swalClasses.input); + } + } + var focusInput = function focusInput(input) { + input.focus(); // place cursor at end of text in text input + + if (input.type !== 'file') { + // http://stackoverflow.com/a/2345915 + var val = input.value; + input.value = ''; + input.value = val; + } + }; + var toggleClass = function toggleClass(target, classList, condition) { + if (!target || !classList) { + return; + } + + if (typeof classList === 'string') { + classList = classList.split(/\s+/).filter(Boolean); + } + + classList.forEach(function (className) { + if (target.forEach) { + target.forEach(function (elem) { + condition ? elem.classList.add(className) : elem.classList.remove(className); + }); + } else { + condition ? target.classList.add(className) : target.classList.remove(className); + } + }); + }; + var addClass = function addClass(target, classList) { + toggleClass(target, classList, true); + }; + var removeClass = function removeClass(target, classList) { + toggleClass(target, classList, false); + }; + var getChildByClass = function getChildByClass(elem, className) { + for (var i = 0; i < elem.childNodes.length; i++) { + if (hasClass(elem.childNodes[i], className)) { + return elem.childNodes[i]; + } + } + }; + var applyNumericalStyle = function applyNumericalStyle(elem, property, value) { + if (value || parseInt(value) === 0) { + elem.style[property] = typeof value === 'number' ? "".concat(value, "px") : value; + } else { + elem.style.removeProperty(property); + } + }; + var show = function show(elem) { + var display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex'; + elem.style.opacity = ''; + elem.style.display = display; + }; + var hide = function hide(elem) { + elem.style.opacity = ''; + elem.style.display = 'none'; + }; + var toggle = function toggle(elem, condition, display) { + condition ? show(elem, display) : hide(elem); + }; // borrowed from jquery $(elem).is(':visible') implementation + + var isVisible = function isVisible(elem) { + return !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); + }; + /* istanbul ignore next */ + + var isScrollable = function isScrollable(elem) { + return !!(elem.scrollHeight > elem.clientHeight); + }; // borrowed from https://stackoverflow.com/a/46352119 + + var hasCssAnimation = function hasCssAnimation(elem) { + var style = window.getComputedStyle(elem); + var animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0'); + var transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); + return animDuration > 0 || transDuration > 0; + }; + var contains = function contains(haystack, needle) { + if (typeof haystack.contains === 'function') { + return haystack.contains(needle); + } + }; + var animateTimerProgressBar = function animateTimerProgressBar(timer) { + var reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var timerProgressBar = getTimerProgressBar(); + + if (isVisible(timerProgressBar)) { + if (reset) { + timerProgressBar.style.transition = 'none'; + timerProgressBar.style.width = '100%'; + } + + setTimeout(function () { + timerProgressBar.style.transition = "width ".concat(timer / 1000, "s linear"); + timerProgressBar.style.width = '0%'; + }, 10); + } + }; + var stopTimerProgressBar = function stopTimerProgressBar() { + var timerProgressBar = getTimerProgressBar(); + var timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width); + timerProgressBar.style.removeProperty('transition'); + timerProgressBar.style.width = '100%'; + var timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width); + var timerProgressBarPercent = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100); + timerProgressBar.style.removeProperty('transition'); + timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); + }; + + // Detect Node env + var isNodeEnv = function isNodeEnv() { + return typeof window === 'undefined' || typeof document === 'undefined'; + }; + + var sweetHTML = "\n
      \n
      \n
        \n
        \n
        \n
        \n
        \n
        \n \n

        \n \n
        \n
        \n
        \n \n \n
        \n \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n").replace(/(^|\n)\s*/g, ''); + + var resetOldContainer = function resetOldContainer() { + var oldContainer = getContainer(); + + if (!oldContainer) { + return false; + } + + oldContainer.parentNode.removeChild(oldContainer); + removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]); + return true; + }; + + var oldInputVal; // IE11 workaround, see #1109 for details + + var resetValidationMessage = function resetValidationMessage(e) { + if (Swal.isVisible() && oldInputVal !== e.target.value) { + Swal.resetValidationMessage(); + } + + oldInputVal = e.target.value; + }; + + var addInputChangeListeners = function addInputChangeListeners() { + var content = getContent(); + var input = getChildByClass(content, swalClasses.input); + var file = getChildByClass(content, swalClasses.file); + var range = content.querySelector(".".concat(swalClasses.range, " input")); + var rangeOutput = content.querySelector(".".concat(swalClasses.range, " output")); + var select = getChildByClass(content, swalClasses.select); + var checkbox = content.querySelector(".".concat(swalClasses.checkbox, " input")); + var textarea = getChildByClass(content, swalClasses.textarea); + input.oninput = resetValidationMessage; + file.onchange = resetValidationMessage; + select.onchange = resetValidationMessage; + checkbox.onchange = resetValidationMessage; + textarea.oninput = resetValidationMessage; + + range.oninput = function (e) { + resetValidationMessage(e); + rangeOutput.value = range.value; + }; + + range.onchange = function (e) { + resetValidationMessage(e); + range.nextSibling.value = range.value; + }; + }; + + var getTarget = function getTarget(target) { + return typeof target === 'string' ? document.querySelector(target) : target; + }; + + var setupAccessibility = function setupAccessibility(params) { + var popup = getPopup(); + popup.setAttribute('role', params.toast ? 'alert' : 'dialog'); + popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive'); + + if (!params.toast) { + popup.setAttribute('aria-modal', 'true'); + } + }; + + var setupRTL = function setupRTL(targetElement) { + if (window.getComputedStyle(targetElement).direction === 'rtl') { + addClass(getContainer(), swalClasses.rtl); + } + }; + /* + * Add modal + backdrop to DOM + */ + + + var init = function init(params) { + // Clean up the old popup container if it exists + var oldContainerExisted = resetOldContainer(); + /* istanbul ignore if */ + + if (isNodeEnv()) { + error('SweetAlert2 requires document to initialize'); + return; + } + + var container = document.createElement('div'); + container.className = swalClasses.container; + + if (oldContainerExisted) { + addClass(container, swalClasses['no-transition']); + } + + setInnerHtml(container, sweetHTML); + var targetElement = getTarget(params.target); + targetElement.appendChild(container); + setupAccessibility(params); + setupRTL(targetElement); + addInputChangeListeners(); + }; + + var parseHtmlToContainer = function parseHtmlToContainer(param, target) { + // DOM element + if (param instanceof HTMLElement) { + target.appendChild(param); // Object + } else if (_typeof(param) === 'object') { + handleObject(param, target); // Plain string + } else if (param) { + setInnerHtml(target, param); + } + }; + + var handleObject = function handleObject(param, target) { + // JQuery element(s) + if (param.jquery) { + handleJqueryElem(target, param); // For other objects use their string representation + } else { + setInnerHtml(target, param.toString()); + } + }; + + var handleJqueryElem = function handleJqueryElem(target, elem) { + target.textContent = ''; + + if (0 in elem) { + for (var i = 0; i in elem; i++) { + target.appendChild(elem[i].cloneNode(true)); + } + } else { + target.appendChild(elem.cloneNode(true)); + } + }; + + var animationEndEvent = function () { + // Prevent run in Node env + + /* istanbul ignore if */ + if (isNodeEnv()) { + return false; + } + + var testEl = document.createElement('div'); + var transEndEventNames = { + WebkitAnimation: 'webkitAnimationEnd', + OAnimation: 'oAnimationEnd oanimationend', + animation: 'animationend' + }; + + for (var i in transEndEventNames) { + if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') { + return transEndEventNames[i]; + } + } + + return false; + }(); + + // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + + var measureScrollbar = function measureScrollbar() { + var scrollDiv = document.createElement('div'); + scrollDiv.className = swalClasses['scrollbar-measure']; + document.body.appendChild(scrollDiv); + var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + return scrollbarWidth; + }; + + var renderActions = function renderActions(instance, params) { + var actions = getActions(); + var confirmButton = getConfirmButton(); + var cancelButton = getCancelButton(); // Actions (buttons) wrapper + + if (!params.showConfirmButton && !params.showCancelButton) { + hide(actions); + } // Custom class + + + applyCustomClass(actions, params, 'actions'); // Render confirm button + + renderButton(confirmButton, 'confirm', params); // render Cancel Button + + renderButton(cancelButton, 'cancel', params); + + if (params.buttonsStyling) { + handleButtonsStyling(confirmButton, cancelButton, params); + } else { + removeClass([confirmButton, cancelButton], swalClasses.styled); + confirmButton.style.backgroundColor = confirmButton.style.borderLeftColor = confirmButton.style.borderRightColor = ''; + cancelButton.style.backgroundColor = cancelButton.style.borderLeftColor = cancelButton.style.borderRightColor = ''; + } + + if (params.reverseButtons) { + confirmButton.parentNode.insertBefore(cancelButton, confirmButton); + } + }; + + function handleButtonsStyling(confirmButton, cancelButton, params) { + addClass([confirmButton, cancelButton], swalClasses.styled); // Buttons background colors + + if (params.confirmButtonColor) { + confirmButton.style.backgroundColor = params.confirmButtonColor; + } + + if (params.cancelButtonColor) { + cancelButton.style.backgroundColor = params.cancelButtonColor; + } // Loading state + + + var confirmButtonBackgroundColor = window.getComputedStyle(confirmButton).getPropertyValue('background-color'); + confirmButton.style.borderLeftColor = confirmButtonBackgroundColor; + confirmButton.style.borderRightColor = confirmButtonBackgroundColor; + } + + function renderButton(button, buttonType, params) { + toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); + setInnerHtml(button, params["".concat(buttonType, "ButtonText")]); // Set caption text + + button.setAttribute('aria-label', params["".concat(buttonType, "ButtonAriaLabel")]); // ARIA label + // Add buttons custom classes + + button.className = swalClasses[buttonType]; + applyCustomClass(button, params, "".concat(buttonType, "Button")); + addClass(button, params["".concat(buttonType, "ButtonClass")]); + } + + function handleBackdropParam(container, backdrop) { + if (typeof backdrop === 'string') { + container.style.background = backdrop; + } else if (!backdrop) { + addClass([document.documentElement, document.body], swalClasses['no-backdrop']); + } + } + + function handlePositionParam(container, position) { + if (position in swalClasses) { + addClass(container, swalClasses[position]); + } else { + warn('The "position" parameter is not valid, defaulting to "center"'); + addClass(container, swalClasses.center); + } + } + + function handleGrowParam(container, grow) { + if (grow && typeof grow === 'string') { + var growClass = "grow-".concat(grow); + + if (growClass in swalClasses) { + addClass(container, swalClasses[growClass]); + } + } + } + + var renderContainer = function renderContainer(instance, params) { + var container = getContainer(); + + if (!container) { + return; + } + + handleBackdropParam(container, params.backdrop); + + if (!params.backdrop && params.allowOutsideClick) { + warn('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'); + } + + handlePositionParam(container, params.position); + handleGrowParam(container, params.grow); // Custom class + + applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method + + var queueStep = document.body.getAttribute('data-swal2-queue-step'); + + if (queueStep) { + container.setAttribute('data-queue-step', queueStep); + document.body.removeAttribute('data-swal2-queue-step'); + } + }; + + /** + * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. + */ + var privateProps = { + promise: new WeakMap(), + innerParams: new WeakMap(), + domCache: new WeakMap() + }; + + var inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + var renderInput = function renderInput(instance, params) { + var content = getContent(); + var innerParams = privateProps.innerParams.get(instance); + var rerender = !innerParams || params.input !== innerParams.input; + inputTypes.forEach(function (inputType) { + var inputClass = swalClasses[inputType]; + var inputContainer = getChildByClass(content, inputClass); // set attributes + + setAttributes(inputType, params.inputAttributes); // set class + + inputContainer.className = inputClass; + + if (rerender) { + hide(inputContainer); + } + }); + + if (params.input) { + if (rerender) { + showInput(params); + } // set custom class + + + setCustomClass(params); + } + }; + + var showInput = function showInput(params) { + if (!renderInputType[params.input]) { + return error("Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"".concat(params.input, "\"")); + } + + var inputContainer = getInputContainer(params.input); + var input = renderInputType[params.input](inputContainer, params); + show(input); // input autofocus + + setTimeout(function () { + focusInput(input); + }); + }; + + var removeAttributes = function removeAttributes(input) { + for (var i = 0; i < input.attributes.length; i++) { + var attrName = input.attributes[i].name; + + if (!(['type', 'value', 'style'].indexOf(attrName) !== -1)) { + input.removeAttribute(attrName); + } + } + }; + + var setAttributes = function setAttributes(inputType, inputAttributes) { + var input = getInput(getContent(), inputType); + + if (!input) { + return; + } + + removeAttributes(input); + + for (var attr in inputAttributes) { + // Do not set a placeholder for + // it'll crash Edge, #1298 + if (inputType === 'range' && attr === 'placeholder') { + continue; + } + + input.setAttribute(attr, inputAttributes[attr]); + } + }; + + var setCustomClass = function setCustomClass(params) { + var inputContainer = getInputContainer(params.input); + + if (params.customClass) { + addClass(inputContainer, params.customClass.input); + } + }; + + var setInputPlaceholder = function setInputPlaceholder(input, params) { + if (!input.placeholder || params.inputPlaceholder) { + input.placeholder = params.inputPlaceholder; + } + }; + + var getInputContainer = function getInputContainer(inputType) { + var inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; + return getChildByClass(getContent(), inputClass); + }; + + var renderInputType = {}; + + renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = function (input, params) { + if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { + input.value = params.inputValue; + } else if (!isPromise(params.inputValue)) { + warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(_typeof(params.inputValue), "\"")); + } + + setInputPlaceholder(input, params); + input.type = params.input; + return input; + }; + + renderInputType.file = function (input, params) { + setInputPlaceholder(input, params); + return input; + }; + + renderInputType.range = function (range, params) { + var rangeInput = range.querySelector('input'); + var rangeOutput = range.querySelector('output'); + rangeInput.value = params.inputValue; + rangeInput.type = params.input; + rangeOutput.value = params.inputValue; + return range; + }; + + renderInputType.select = function (select, params) { + select.textContent = ''; + + if (params.inputPlaceholder) { + var placeholder = document.createElement('option'); + setInnerHtml(placeholder, params.inputPlaceholder); + placeholder.value = ''; + placeholder.disabled = true; + placeholder.selected = true; + select.appendChild(placeholder); + } + + return select; + }; + + renderInputType.radio = function (radio) { + radio.textContent = ''; + return radio; + }; + + renderInputType.checkbox = function (checkboxContainer, params) { + var checkbox = getInput(getContent(), 'checkbox'); + checkbox.value = 1; + checkbox.id = swalClasses.checkbox; + checkbox.checked = Boolean(params.inputValue); + var label = checkboxContainer.querySelector('span'); + setInnerHtml(label, params.inputPlaceholder); + return checkboxContainer; + }; + + renderInputType.textarea = function (textarea, params) { + textarea.value = params.inputValue; + setInputPlaceholder(textarea, params); + + if ('MutationObserver' in window) { + // #1699 + var initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); + var popupPadding = parseInt(window.getComputedStyle(getPopup()).paddingLeft) + parseInt(window.getComputedStyle(getPopup()).paddingRight); + + var outputsize = function outputsize() { + var contentWidth = textarea.offsetWidth + popupPadding; + + if (contentWidth > initialPopupWidth) { + getPopup().style.width = "".concat(contentWidth, "px"); + } else { + getPopup().style.width = null; + } + }; + + new MutationObserver(outputsize).observe(textarea, { + attributes: true, + attributeFilter: ['style'] + }); + } + + return textarea; + }; + + var renderContent = function renderContent(instance, params) { + var content = getContent().querySelector("#".concat(swalClasses.content)); // Content as HTML + + if (params.html) { + parseHtmlToContainer(params.html, content); + show(content, 'block'); // Content as plain text + } else if (params.text) { + content.textContent = params.text; + show(content, 'block'); // No content + } else { + hide(content); + } + + renderInput(instance, params); // Custom class + + applyCustomClass(getContent(), params, 'content'); + }; + + var renderFooter = function renderFooter(instance, params) { + var footer = getFooter(); + toggle(footer, params.footer); + + if (params.footer) { + parseHtmlToContainer(params.footer, footer); + } // Custom class + + + applyCustomClass(footer, params, 'footer'); + }; + + var renderCloseButton = function renderCloseButton(instance, params) { + var closeButton = getCloseButton(); + setInnerHtml(closeButton, params.closeButtonHtml); // Custom class + + applyCustomClass(closeButton, params, 'closeButton'); + toggle(closeButton, params.showCloseButton); + closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); + }; + + var renderIcon = function renderIcon(instance, params) { + var innerParams = privateProps.innerParams.get(instance); // if the give icon already rendered, apply the custom class without re-rendering the icon + + if (innerParams && params.icon === innerParams.icon && getIcon()) { + applyCustomClass(getIcon(), params, 'icon'); + return; + } + + hideAllIcons(); + + if (!params.icon) { + return; + } + + if (Object.keys(iconTypes).indexOf(params.icon) !== -1) { + var icon = elementBySelector(".".concat(swalClasses.icon, ".").concat(iconTypes[params.icon])); + show(icon); // Custom or default content + + setContent(icon, params); + adjustSuccessIconBackgoundColor(); // Custom class + + applyCustomClass(icon, params, 'icon'); // Animate icon + + addClass(icon, params.showClass.icon); + } else { + error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); + } + }; + + var hideAllIcons = function hideAllIcons() { + var icons = getIcons(); + + for (var i = 0; i < icons.length; i++) { + hide(icons[i]); + } + }; // Adjust success icon background color to match the popup background color + + + var adjustSuccessIconBackgoundColor = function adjustSuccessIconBackgoundColor() { + var popup = getPopup(); + var popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); + var successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); + + for (var i = 0; i < successIconParts.length; i++) { + successIconParts[i].style.backgroundColor = popupBackgroundColor; + } + }; + + var setContent = function setContent(icon, params) { + icon.textContent = ''; + + if (params.iconHtml) { + setInnerHtml(icon, iconContent(params.iconHtml)); + } else if (params.icon === 'success') { + setInnerHtml(icon, "\n
        \n \n
        \n
        \n "); + } else if (params.icon === 'error') { + setInnerHtml(icon, "\n \n \n \n \n "); + } else { + var defaultIconHtml = { + question: '?', + warning: '!', + info: 'i' + }; + setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); + } + }; + + var iconContent = function iconContent(content) { + return "
        ").concat(content, "
        "); + }; + + var renderImage = function renderImage(instance, params) { + var image = getImage(); + + if (!params.imageUrl) { + return hide(image); + } + + show(image); // Src, alt + + image.setAttribute('src', params.imageUrl); + image.setAttribute('alt', params.imageAlt); // Width, height + + applyNumericalStyle(image, 'width', params.imageWidth); + applyNumericalStyle(image, 'height', params.imageHeight); // Class + + image.className = swalClasses.image; + applyCustomClass(image, params, 'image'); + }; + + var currentSteps = []; + /* + * Global function for chaining sweetAlert popups + */ + + var queue = function queue(steps) { + var Swal = this; + currentSteps = steps; + + var resetAndResolve = function resetAndResolve(resolve, value) { + currentSteps = []; + resolve(value); + }; + + var queueResult = []; + return new Promise(function (resolve) { + (function step(i, callback) { + if (i < currentSteps.length) { + document.body.setAttribute('data-swal2-queue-step', i); + Swal.fire(currentSteps[i]).then(function (result) { + if (typeof result.value !== 'undefined') { + queueResult.push(result.value); + step(i + 1, callback); + } else { + resetAndResolve(resolve, { + dismiss: result.dismiss + }); + } + }); + } else { + resetAndResolve(resolve, { + value: queueResult + }); + } + })(0); + }); + }; + /* + * Global function for getting the index of current popup in queue + */ + + var getQueueStep = function getQueueStep() { + return getContainer().getAttribute('data-queue-step'); + }; + /* + * Global function for inserting a popup to the queue + */ + + var insertQueueStep = function insertQueueStep(step, index) { + if (index && index < currentSteps.length) { + return currentSteps.splice(index, 0, step); + } + + return currentSteps.push(step); + }; + /* + * Global function for deleting a popup from the queue + */ + + var deleteQueueStep = function deleteQueueStep(index) { + if (typeof currentSteps[index] !== 'undefined') { + currentSteps.splice(index, 1); + } + }; + + var createStepElement = function createStepElement(step) { + var stepEl = document.createElement('li'); + addClass(stepEl, swalClasses['progress-step']); + setInnerHtml(stepEl, step); + return stepEl; + }; + + var createLineElement = function createLineElement(params) { + var lineEl = document.createElement('li'); + addClass(lineEl, swalClasses['progress-step-line']); + + if (params.progressStepsDistance) { + lineEl.style.width = params.progressStepsDistance; + } + + return lineEl; + }; + + var renderProgressSteps = function renderProgressSteps(instance, params) { + var progressStepsContainer = getProgressSteps(); + + if (!params.progressSteps || params.progressSteps.length === 0) { + return hide(progressStepsContainer); + } + + show(progressStepsContainer); + progressStepsContainer.textContent = ''; + var currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep); + + if (currentProgressStep >= params.progressSteps.length) { + warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)'); + } + + params.progressSteps.forEach(function (step, index) { + var stepEl = createStepElement(step); + progressStepsContainer.appendChild(stepEl); + + if (index === currentProgressStep) { + addClass(stepEl, swalClasses['active-progress-step']); + } + + if (index !== params.progressSteps.length - 1) { + var lineEl = createLineElement(step); + progressStepsContainer.appendChild(lineEl); + } + }); + }; + + var renderTitle = function renderTitle(instance, params) { + var title = getTitle(); + toggle(title, params.title || params.titleText); + + if (params.title) { + parseHtmlToContainer(params.title, title); + } + + if (params.titleText) { + title.innerText = params.titleText; + } // Custom class + + + applyCustomClass(title, params, 'title'); + }; + + var renderHeader = function renderHeader(instance, params) { + var header = getHeader(); // Custom class + + applyCustomClass(header, params, 'header'); // Progress steps + + renderProgressSteps(instance, params); // Icon + + renderIcon(instance, params); // Image + + renderImage(instance, params); // Title + + renderTitle(instance, params); // Close button + + renderCloseButton(instance, params); + }; + + var renderPopup = function renderPopup(instance, params) { + var popup = getPopup(); // Width + + applyNumericalStyle(popup, 'width', params.width); // Padding + + applyNumericalStyle(popup, 'padding', params.padding); // Background + + if (params.background) { + popup.style.background = params.background; + } // Classes + + + addClasses(popup, params); + }; + + var addClasses = function addClasses(popup, params) { + // Default Class + showClass when updating Swal.update({}) + popup.className = "".concat(swalClasses.popup, " ").concat(isVisible(popup) ? params.showClass.popup : ''); + + if (params.toast) { + addClass([document.documentElement, document.body], swalClasses['toast-shown']); + addClass(popup, swalClasses.toast); + } else { + addClass(popup, swalClasses.modal); + } // Custom class + + + applyCustomClass(popup, params, 'popup'); + + if (typeof params.customClass === 'string') { + addClass(popup, params.customClass); + } // Icon class (#1842) + + + if (params.icon) { + addClass(popup, swalClasses["icon-".concat(params.icon)]); + } + }; + + var render = function render(instance, params) { + renderPopup(instance, params); + renderContainer(instance, params); + renderHeader(instance, params); + renderContent(instance, params); + renderActions(instance, params); + renderFooter(instance, params); + + if (typeof params.onRender === 'function') { + params.onRender(getPopup()); + } + }; + + /* + * Global function to determine if SweetAlert2 popup is shown + */ + + var isVisible$1 = function isVisible$$1() { + return isVisible(getPopup()); + }; + /* + * Global function to click 'Confirm' button + */ + + var clickConfirm = function clickConfirm() { + return getConfirmButton() && getConfirmButton().click(); + }; + /* + * Global function to click 'Cancel' button + */ + + var clickCancel = function clickCancel() { + return getCancelButton() && getCancelButton().click(); + }; + + function fire() { + var Swal = this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _construct(Swal, args); + } + + /** + * Returns an extended version of `Swal` containing `params` as defaults. + * Useful for reusing Swal configuration. + * + * For example: + * + * Before: + * const textPromptOptions = { input: 'text', showCancelButton: true } + * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) + * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) + * + * After: + * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) + * const {value: firstName} = await TextPrompt('What is your first name?') + * const {value: lastName} = await TextPrompt('What is your last name?') + * + * @param mixinParams + */ + function mixin(mixinParams) { + var MixinSwal = /*#__PURE__*/function (_this) { + _inherits(MixinSwal, _this); + + function MixinSwal() { + _classCallCheck(this, MixinSwal); + + return _possibleConstructorReturn(this, _getPrototypeOf(MixinSwal).apply(this, arguments)); + } + + _createClass(MixinSwal, [{ + key: "_main", + value: function _main(params) { + return _get(_getPrototypeOf(MixinSwal.prototype), "_main", this).call(this, _extends({}, mixinParams, params)); + } + }]); + + return MixinSwal; + }(this); + + return MixinSwal; + } + + /** + * Show spinner instead of Confirm button + */ + + var showLoading = function showLoading() { + var popup = getPopup(); + + if (!popup) { + Swal.fire(); + } + + popup = getPopup(); + var actions = getActions(); + var confirmButton = getConfirmButton(); + show(actions); + show(confirmButton, 'inline-block'); + addClass([popup, actions], swalClasses.loading); + confirmButton.disabled = true; + popup.setAttribute('data-loading', true); + popup.setAttribute('aria-busy', true); + popup.focus(); + }; + + var RESTORE_FOCUS_TIMEOUT = 100; + + var globalState = {}; + + var focusPreviousActiveElement = function focusPreviousActiveElement() { + if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { + globalState.previousActiveElement.focus(); + globalState.previousActiveElement = null; + } else if (document.body) { + document.body.focus(); + } + }; // Restore previous active (focused) element + + + var restoreActiveElement = function restoreActiveElement() { + return new Promise(function (resolve) { + var x = window.scrollX; + var y = window.scrollY; + globalState.restoreFocusTimeout = setTimeout(function () { + focusPreviousActiveElement(); + resolve(); + }, RESTORE_FOCUS_TIMEOUT); // issues/900 + + /* istanbul ignore if */ + + if (typeof x !== 'undefined' && typeof y !== 'undefined') { + // IE doesn't have scrollX/scrollY support + window.scrollTo(x, y); + } + }); + }; + + /** + * If `timer` parameter is set, returns number of milliseconds of timer remained. + * Otherwise, returns undefined. + */ + + var getTimerLeft = function getTimerLeft() { + return globalState.timeout && globalState.timeout.getTimerLeft(); + }; + /** + * Stop timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var stopTimer = function stopTimer() { + if (globalState.timeout) { + stopTimerProgressBar(); + return globalState.timeout.stop(); + } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var resumeTimer = function resumeTimer() { + if (globalState.timeout) { + var remaining = globalState.timeout.start(); + animateTimerProgressBar(remaining); + return remaining; + } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ + + var toggleTimer = function toggleTimer() { + var timer = globalState.timeout; + return timer && (timer.running ? stopTimer() : resumeTimer()); + }; + /** + * Increase timer. Returns number of milliseconds of an updated timer. + * If `timer` parameter isn't set, returns undefined. + */ + + var increaseTimer = function increaseTimer(n) { + if (globalState.timeout) { + var remaining = globalState.timeout.increase(n); + animateTimerProgressBar(remaining, true); + return remaining; + } + }; + /** + * Check if timer is running. Returns true if timer is running + * or false if timer is paused or stopped. + * If `timer` parameter isn't set, returns undefined + */ + + var isTimerRunning = function isTimerRunning() { + return globalState.timeout && globalState.timeout.isRunning(); + }; + + var defaultParams = { + title: '', + titleText: '', + text: '', + html: '', + footer: '', + icon: undefined, + iconHtml: undefined, + toast: false, + animation: true, + showClass: { + popup: 'swal2-show', + backdrop: 'swal2-backdrop-show', + icon: 'swal2-icon-show' + }, + hideClass: { + popup: 'swal2-hide', + backdrop: 'swal2-backdrop-hide', + icon: 'swal2-icon-hide' + }, + customClass: undefined, + target: 'body', + backdrop: true, + heightAuto: true, + allowOutsideClick: true, + allowEscapeKey: true, + allowEnterKey: true, + stopKeydownPropagation: true, + keydownListenerCapture: false, + showConfirmButton: true, + showCancelButton: false, + preConfirm: undefined, + confirmButtonText: 'OK', + confirmButtonAriaLabel: '', + confirmButtonColor: undefined, + cancelButtonText: 'Cancel', + cancelButtonAriaLabel: '', + cancelButtonColor: undefined, + buttonsStyling: true, + reverseButtons: false, + focusConfirm: true, + focusCancel: false, + showCloseButton: false, + closeButtonHtml: '×', + closeButtonAriaLabel: 'Close this dialog', + showLoaderOnConfirm: false, + imageUrl: undefined, + imageWidth: undefined, + imageHeight: undefined, + imageAlt: '', + timer: undefined, + timerProgressBar: false, + width: undefined, + padding: undefined, + background: undefined, + input: undefined, + inputPlaceholder: '', + inputValue: '', + inputOptions: {}, + inputAutoTrim: true, + inputAttributes: {}, + inputValidator: undefined, + validationMessage: undefined, + grow: false, + position: 'center', + progressSteps: [], + currentProgressStep: undefined, + progressStepsDistance: undefined, + onBeforeOpen: undefined, + onOpen: undefined, + onRender: undefined, + onClose: undefined, + onAfterClose: undefined, + onDestroy: undefined, + scrollbarPadding: true + }; + var updatableParams = ['title', 'titleText', 'text', 'html', 'icon', 'hideClass', 'customClass', 'allowOutsideClick', 'allowEscapeKey', 'showConfirmButton', 'showCancelButton', 'confirmButtonText', 'confirmButtonAriaLabel', 'confirmButtonColor', 'cancelButtonText', 'cancelButtonAriaLabel', 'cancelButtonColor', 'buttonsStyling', 'reverseButtons', 'imageUrl', 'imageWidth', 'imageHeight', 'imageAlt', 'progressSteps', 'currentProgressStep']; + var deprecatedParams = { + animation: 'showClass" and "hideClass' + }; + var toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusCancel', 'heightAuto', 'keydownListenerCapture']; + /** + * Is valid parameter + * @param {String} paramName + */ + + var isValidParameter = function isValidParameter(paramName) { + return Object.prototype.hasOwnProperty.call(defaultParams, paramName); + }; + /** + * Is valid parameter for Swal.update() method + * @param {String} paramName + */ + + var isUpdatableParameter = function isUpdatableParameter(paramName) { + return updatableParams.indexOf(paramName) !== -1; + }; + /** + * Is deprecated parameter + * @param {String} paramName + */ + + var isDeprecatedParameter = function isDeprecatedParameter(paramName) { + return deprecatedParams[paramName]; + }; + + var checkIfParamIsValid = function checkIfParamIsValid(param) { + if (!isValidParameter(param)) { + warn("Unknown parameter \"".concat(param, "\"")); + } + }; + + var checkIfToastParamIsValid = function checkIfToastParamIsValid(param) { + if (toastIncompatibleParams.indexOf(param) !== -1) { + warn("The parameter \"".concat(param, "\" is incompatible with toasts")); + } + }; + + var checkIfParamIsDeprecated = function checkIfParamIsDeprecated(param) { + if (isDeprecatedParameter(param)) { + warnAboutDepreation(param, isDeprecatedParameter(param)); + } + }; + /** + * Show relevant warnings for given params + * + * @param params + */ + + + var showWarningsForParams = function showWarningsForParams(params) { + for (var param in params) { + checkIfParamIsValid(param); + + if (params.toast) { + checkIfToastParamIsValid(param); + } + + checkIfParamIsDeprecated(param); + } + }; + + + + var staticMethods = /*#__PURE__*/Object.freeze({ + isValidParameter: isValidParameter, + isUpdatableParameter: isUpdatableParameter, + isDeprecatedParameter: isDeprecatedParameter, + argsToParams: argsToParams, + isVisible: isVisible$1, + clickConfirm: clickConfirm, + clickCancel: clickCancel, + getContainer: getContainer, + getPopup: getPopup, + getTitle: getTitle, + getContent: getContent, + getHtmlContainer: getHtmlContainer, + getImage: getImage, + getIcon: getIcon, + getIcons: getIcons, + getCloseButton: getCloseButton, + getActions: getActions, + getConfirmButton: getConfirmButton, + getCancelButton: getCancelButton, + getHeader: getHeader, + getFooter: getFooter, + getTimerProgressBar: getTimerProgressBar, + getFocusableElements: getFocusableElements, + getValidationMessage: getValidationMessage, + isLoading: isLoading, + fire: fire, + mixin: mixin, + queue: queue, + getQueueStep: getQueueStep, + insertQueueStep: insertQueueStep, + deleteQueueStep: deleteQueueStep, + showLoading: showLoading, + enableLoading: showLoading, + getTimerLeft: getTimerLeft, + stopTimer: stopTimer, + resumeTimer: resumeTimer, + toggleTimer: toggleTimer, + increaseTimer: increaseTimer, + isTimerRunning: isTimerRunning + }); + + /** + * Enables buttons and hide loader. + */ + + function hideLoading() { + // do nothing if popup is closed + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; + } + + var domCache = privateProps.domCache.get(this); + + if (!innerParams.showConfirmButton) { + hide(domCache.confirmButton); + + if (!innerParams.showCancelButton) { + hide(domCache.actions); + } + } + + removeClass([domCache.popup, domCache.actions], swalClasses.loading); + domCache.popup.removeAttribute('aria-busy'); + domCache.popup.removeAttribute('data-loading'); + domCache.confirmButton.disabled = false; + domCache.cancelButton.disabled = false; + } + + function getInput$1(instance) { + var innerParams = privateProps.innerParams.get(instance || this); + var domCache = privateProps.domCache.get(instance || this); + + if (!domCache) { + return null; + } + + return getInput(domCache.content, innerParams.input); + } + + var fixScrollbar = function fixScrollbar() { + // for queues, do not do this more than once + if (states.previousBodyPadding !== null) { + return; + } // if the body has overflow + + + if (document.body.scrollHeight > window.innerHeight) { + // add padding so the content doesn't shift after removal of scrollbar + states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right')); + document.body.style.paddingRight = "".concat(states.previousBodyPadding + measureScrollbar(), "px"); + } + }; + var undoScrollbar = function undoScrollbar() { + if (states.previousBodyPadding !== null) { + document.body.style.paddingRight = "".concat(states.previousBodyPadding, "px"); + states.previousBodyPadding = null; + } + }; + + /* istanbul ignore file */ + + var iOSfix = function iOSfix() { + var iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; + + if (iOS && !hasClass(document.body, swalClasses.iosfix)) { + var offset = document.body.scrollTop; + document.body.style.top = "".concat(offset * -1, "px"); + addClass(document.body, swalClasses.iosfix); + lockBodyScroll(); + } + }; + + var lockBodyScroll = function lockBodyScroll() { + // #1246 + var container = getContainer(); + var preventTouchMove; + + container.ontouchstart = function (e) { + preventTouchMove = e.target === container || !isScrollable(container) && e.target.tagName !== 'INPUT' // #1603 + ; + }; + + container.ontouchmove = function (e) { + if (preventTouchMove) { + e.preventDefault(); + e.stopPropagation(); + } + }; + }; + + var undoIOSfix = function undoIOSfix() { + if (hasClass(document.body, swalClasses.iosfix)) { + var offset = parseInt(document.body.style.top, 10); + removeClass(document.body, swalClasses.iosfix); + document.body.style.top = ''; + document.body.scrollTop = offset * -1; + } + }; + + /* istanbul ignore file */ + + var isIE11 = function isIE11() { + return !!window.MSInputMethodContext && !!document.documentMode; + }; // Fix IE11 centering sweetalert2/issues/933 + + + var fixVerticalPositionIE = function fixVerticalPositionIE() { + var container = getContainer(); + var popup = getPopup(); + container.style.removeProperty('align-items'); + + if (popup.offsetTop < 0) { + container.style.alignItems = 'flex-start'; + } + }; + + var IEfix = function IEfix() { + if (typeof window !== 'undefined' && isIE11()) { + fixVerticalPositionIE(); + window.addEventListener('resize', fixVerticalPositionIE); + } + }; + var undoIEfix = function undoIEfix() { + if (typeof window !== 'undefined' && isIE11()) { + window.removeEventListener('resize', fixVerticalPositionIE); + } + }; + + // Adding aria-hidden="true" to elements outside of the active modal dialog ensures that + // elements not within the active modal dialog will not be surfaced if a user opens a screen + // reader’s list of elements (headings, form controls, landmarks, etc.) in the document. + + var setAriaHidden = function setAriaHidden() { + var bodyChildren = toArray(document.body.children); + bodyChildren.forEach(function (el) { + if (el === getContainer() || contains(el, getContainer())) { + return; + } + + if (el.hasAttribute('aria-hidden')) { + el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden')); + } + + el.setAttribute('aria-hidden', 'true'); + }); + }; + var unsetAriaHidden = function unsetAriaHidden() { + var bodyChildren = toArray(document.body.children); + bodyChildren.forEach(function (el) { + if (el.hasAttribute('data-previous-aria-hidden')) { + el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden')); + el.removeAttribute('data-previous-aria-hidden'); + } else { + el.removeAttribute('aria-hidden'); + } + }); + }; + + /** + * This module containts `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. + */ + var privateMethods = { + swalPromiseResolve: new WeakMap() + }; + + /* + * Instance method to close sweetAlert + */ + + function removePopupAndResetState(instance, container, isToast$$1, onAfterClose) { + if (isToast$$1) { + triggerOnAfterCloseAndDispose(instance, onAfterClose); + } else { + restoreActiveElement().then(function () { + return triggerOnAfterCloseAndDispose(instance, onAfterClose); + }); + globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = false; + } + + if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) { + container.parentNode.removeChild(container); + } + + if (isModal()) { + undoScrollbar(); + undoIOSfix(); + undoIEfix(); + unsetAriaHidden(); + } + + removeBodyClasses(); + } + + function removeBodyClasses() { + removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]); + } + + function close(resolveValue) { + var popup = getPopup(); + + if (!popup) { + return; + } + + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) { + return; + } + + var swalPromiseResolve = privateMethods.swalPromiseResolve.get(this); + removeClass(popup, innerParams.showClass.popup); + addClass(popup, innerParams.hideClass.popup); + var backdrop = getContainer(); + removeClass(backdrop, innerParams.showClass.backdrop); + addClass(backdrop, innerParams.hideClass.backdrop); + handlePopupAnimation(this, popup, innerParams); // Resolve Swal promise + + swalPromiseResolve(resolveValue || {}); + } + + var handlePopupAnimation = function handlePopupAnimation(instance, popup, innerParams) { + var container = getContainer(); // If animation is supported, animate + + var animationIsSupported = animationEndEvent && hasCssAnimation(popup); + var onClose = innerParams.onClose, + onAfterClose = innerParams.onAfterClose; + + if (onClose !== null && typeof onClose === 'function') { + onClose(popup); + } + + if (animationIsSupported) { + animatePopup(instance, popup, container, onAfterClose); + } else { + // Otherwise, remove immediately + removePopupAndResetState(instance, container, isToast(), onAfterClose); + } + }; + + var animatePopup = function animatePopup(instance, popup, container, onAfterClose) { + globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), onAfterClose); + popup.addEventListener(animationEndEvent, function (e) { + if (e.target === popup) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } + }); + }; + + var triggerOnAfterCloseAndDispose = function triggerOnAfterCloseAndDispose(instance, onAfterClose) { + setTimeout(function () { + if (typeof onAfterClose === 'function') { + onAfterClose(); + } + + instance._destroy(); + }); + }; + + function setButtonsDisabled(instance, buttons, disabled) { + var domCache = privateProps.domCache.get(instance); + buttons.forEach(function (button) { + domCache[button].disabled = disabled; + }); + } + + function setInputDisabled(input, disabled) { + if (!input) { + return false; + } + + if (input.type === 'radio') { + var radiosContainer = input.parentNode.parentNode; + var radios = radiosContainer.querySelectorAll('input'); + + for (var i = 0; i < radios.length; i++) { + radios[i].disabled = disabled; + } + } else { + input.disabled = disabled; + } + } + + function enableButtons() { + setButtonsDisabled(this, ['confirmButton', 'cancelButton'], false); + } + function disableButtons() { + setButtonsDisabled(this, ['confirmButton', 'cancelButton'], true); + } + function enableInput() { + return setInputDisabled(this.getInput(), false); + } + function disableInput() { + return setInputDisabled(this.getInput(), true); + } + + function showValidationMessage(error) { + var domCache = privateProps.domCache.get(this); + setInnerHtml(domCache.validationMessage, error); + var popupComputedStyle = window.getComputedStyle(domCache.popup); + domCache.validationMessage.style.marginLeft = "-".concat(popupComputedStyle.getPropertyValue('padding-left')); + domCache.validationMessage.style.marginRight = "-".concat(popupComputedStyle.getPropertyValue('padding-right')); + show(domCache.validationMessage); + var input = this.getInput(); + + if (input) { + input.setAttribute('aria-invalid', true); + input.setAttribute('aria-describedBy', swalClasses['validation-message']); + focusInput(input); + addClass(input, swalClasses.inputerror); + } + } // Hide block with validation message + + function resetValidationMessage$1() { + var domCache = privateProps.domCache.get(this); + + if (domCache.validationMessage) { + hide(domCache.validationMessage); + } + + var input = this.getInput(); + + if (input) { + input.removeAttribute('aria-invalid'); + input.removeAttribute('aria-describedBy'); + removeClass(input, swalClasses.inputerror); + } + } + + function getProgressSteps$1() { + var domCache = privateProps.domCache.get(this); + return domCache.progressSteps; + } + + var Timer = /*#__PURE__*/function () { + function Timer(callback, delay) { + _classCallCheck(this, Timer); + + this.callback = callback; + this.remaining = delay; + this.running = false; + this.start(); + } + + _createClass(Timer, [{ + key: "start", + value: function start() { + if (!this.running) { + this.running = true; + this.started = new Date(); + this.id = setTimeout(this.callback, this.remaining); + } + + return this.remaining; + } + }, { + key: "stop", + value: function stop() { + if (this.running) { + this.running = false; + clearTimeout(this.id); + this.remaining -= new Date() - this.started; + } + + return this.remaining; + } + }, { + key: "increase", + value: function increase(n) { + var running = this.running; + + if (running) { + this.stop(); + } + + this.remaining += n; + + if (running) { + this.start(); + } + + return this.remaining; + } + }, { + key: "getTimerLeft", + value: function getTimerLeft() { + if (this.running) { + this.stop(); + this.start(); + } + + return this.remaining; + } + }, { + key: "isRunning", + value: function isRunning() { + return this.running; + } + }]); + + return Timer; + }(); + + var defaultInputValidators = { + email: function email(string, validationMessage) { + return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); + }, + url: function url(string, validationMessage) { + // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 + return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{2,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); + } + }; + + function setDefaultInputValidators(params) { + // Use default `inputValidator` for supported input types if not provided + if (!params.inputValidator) { + Object.keys(defaultInputValidators).forEach(function (key) { + if (params.input === key) { + params.inputValidator = defaultInputValidators[key]; + } + }); + } + } + + function validateCustomTargetElement(params) { + // Determine if the custom target element is valid + if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) { + warn('Target parameter is not valid, defaulting to "body"'); + params.target = 'body'; + } + } + /** + * Set type, text and actions on popup + * + * @param params + * @returns {boolean} + */ + + + function setParameters(params) { + setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm + + if (params.showLoaderOnConfirm && !params.preConfirm) { + warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\n' + 'https://sweetalert2.github.io/#ajax-request'); + } // params.animation will be actually used in renderPopup.js + // but in case when params.animation is a function, we need to call that function + // before popup (re)initialization, so it'll be possible to check Swal.isVisible() + // inside the params.animation function + + + params.animation = callIfFunction(params.animation); + validateCustomTargetElement(params); // Replace newlines with
        in title + + if (typeof params.title === 'string') { + params.title = params.title.split('\n').join('
        '); + } + + init(params); + } + + /** + * Open popup, add necessary classes and styles, fix scrollbar + * + * @param {Array} params + */ + + var openPopup = function openPopup(params) { + var container = getContainer(); + var popup = getPopup(); + + if (typeof params.onBeforeOpen === 'function') { + params.onBeforeOpen(popup); + } + + addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto' + + setScrollingVisibility(container, popup); + + if (isModal()) { + fixScrollContainer(container, params.scrollbarPadding); + } + + if (!isToast() && !globalState.previousActiveElement) { + globalState.previousActiveElement = document.activeElement; + } + + if (typeof params.onOpen === 'function') { + setTimeout(function () { + return params.onOpen(popup); + }); + } + + removeClass(container, swalClasses['no-transition']); + }; + + function swalOpenAnimationFinished(event) { + var popup = getPopup(); + + if (event.target !== popup) { + return; + } + + var container = getContainer(); + popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished); + container.style.overflowY = 'auto'; + } + + var setScrollingVisibility = function setScrollingVisibility(container, popup) { + if (animationEndEvent && hasCssAnimation(popup)) { + container.style.overflowY = 'hidden'; + popup.addEventListener(animationEndEvent, swalOpenAnimationFinished); + } else { + container.style.overflowY = 'auto'; + } + }; + + var fixScrollContainer = function fixScrollContainer(container, scrollbarPadding) { + iOSfix(); + IEfix(); + setAriaHidden(); + + if (scrollbarPadding) { + fixScrollbar(); + } // sweetalert2/issues/1247 + + + setTimeout(function () { + container.scrollTop = 0; + }); + }; + + var addClasses$1 = function addClasses(container, popup, params) { + addClass(container, params.showClass.backdrop); + show(popup); // Animate popup right after showing it + + addClass(popup, params.showClass.popup); + addClass([document.documentElement, document.body], swalClasses.shown); + + if (params.heightAuto && params.backdrop && !params.toast) { + addClass([document.documentElement, document.body], swalClasses['height-auto']); + } + }; + + var handleInputOptionsAndValue = function handleInputOptionsAndValue(instance, params) { + if (params.input === 'select' || params.input === 'radio') { + handleInputOptions(instance, params); + } else if (['text', 'email', 'number', 'tel', 'textarea'].indexOf(params.input) !== -1 && isPromise(params.inputValue)) { + handleInputValue(instance, params); + } + }; + var getInputValue = function getInputValue(instance, innerParams) { + var input = instance.getInput(); + + if (!input) { + return null; + } + + switch (innerParams.input) { + case 'checkbox': + return getCheckboxValue(input); + + case 'radio': + return getRadioValue(input); + + case 'file': + return getFileValue(input); + + default: + return innerParams.inputAutoTrim ? input.value.trim() : input.value; + } + }; + + var getCheckboxValue = function getCheckboxValue(input) { + return input.checked ? 1 : 0; + }; + + var getRadioValue = function getRadioValue(input) { + return input.checked ? input.value : null; + }; + + var getFileValue = function getFileValue(input) { + return input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null; + }; + + var handleInputOptions = function handleInputOptions(instance, params) { + var content = getContent(); + + var processInputOptions = function processInputOptions(inputOptions) { + return populateInputOptions[params.input](content, formatInputOptions(inputOptions), params); + }; + + if (isPromise(params.inputOptions)) { + showLoading(); + params.inputOptions.then(function (inputOptions) { + instance.hideLoading(); + processInputOptions(inputOptions); + }); + } else if (_typeof(params.inputOptions) === 'object') { + processInputOptions(params.inputOptions); + } else { + error("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(_typeof(params.inputOptions))); + } + }; + + var handleInputValue = function handleInputValue(instance, params) { + var input = instance.getInput(); + hide(input); + params.inputValue.then(function (inputValue) { + input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : "".concat(inputValue); + show(input); + input.focus(); + instance.hideLoading(); + })["catch"](function (err) { + error("Error in inputValue promise: ".concat(err)); + input.value = ''; + show(input); + input.focus(); + instance.hideLoading(); + }); + }; + + var populateInputOptions = { + select: function select(content, inputOptions, params) { + var select = getChildByClass(content, swalClasses.select); + inputOptions.forEach(function (inputOption) { + var optionValue = inputOption[0]; + var optionLabel = inputOption[1]; + var option = document.createElement('option'); + option.value = optionValue; + setInnerHtml(option, optionLabel); + + if (params.inputValue.toString() === optionValue.toString()) { + option.selected = true; + } + + select.appendChild(option); + }); + select.focus(); + }, + radio: function radio(content, inputOptions, params) { + var radio = getChildByClass(content, swalClasses.radio); + inputOptions.forEach(function (inputOption) { + var radioValue = inputOption[0]; + var radioLabel = inputOption[1]; + var radioInput = document.createElement('input'); + var radioLabelElement = document.createElement('label'); + radioInput.type = 'radio'; + radioInput.name = swalClasses.radio; + radioInput.value = radioValue; + + if (params.inputValue.toString() === radioValue.toString()) { + radioInput.checked = true; + } + + var label = document.createElement('span'); + setInnerHtml(label, radioLabel); + label.className = swalClasses.label; + radioLabelElement.appendChild(radioInput); + radioLabelElement.appendChild(label); + radio.appendChild(radioLabelElement); + }); + var radios = radio.querySelectorAll('input'); + + if (radios.length) { + radios[0].focus(); + } + } + }; + /** + * Converts `inputOptions` into an array of `[value, label]`s + * @param inputOptions + */ + + var formatInputOptions = function formatInputOptions(inputOptions) { + var result = []; + + if (typeof Map !== 'undefined' && inputOptions instanceof Map) { + inputOptions.forEach(function (value, key) { + result.push([key, value]); + }); + } else { + Object.keys(inputOptions).forEach(function (key) { + result.push([key, inputOptions[key]]); + }); + } + + return result; + }; + + var handleConfirmButtonClick = function handleConfirmButtonClick(instance, innerParams) { + instance.disableButtons(); + + if (innerParams.input) { + handleConfirmWithInput(instance, innerParams); + } else { + confirm(instance, innerParams, true); + } + }; + var handleCancelButtonClick = function handleCancelButtonClick(instance, dismissWith) { + instance.disableButtons(); + dismissWith(DismissReason.cancel); + }; + + var handleConfirmWithInput = function handleConfirmWithInput(instance, innerParams) { + var inputValue = getInputValue(instance, innerParams); + + if (innerParams.inputValidator) { + instance.disableInput(); + var validationPromise = Promise.resolve().then(function () { + return innerParams.inputValidator(inputValue, innerParams.validationMessage); + }); + validationPromise.then(function (validationMessage) { + instance.enableButtons(); + instance.enableInput(); + + if (validationMessage) { + instance.showValidationMessage(validationMessage); + } else { + confirm(instance, innerParams, inputValue); + } + }); + } else if (!instance.getInput().checkValidity()) { + instance.enableButtons(); + instance.showValidationMessage(innerParams.validationMessage); + } else { + confirm(instance, innerParams, inputValue); + } + }; + + var succeedWith = function succeedWith(instance, value) { + instance.closePopup({ + value: value + }); + }; + + var confirm = function confirm(instance, innerParams, value) { + if (innerParams.showLoaderOnConfirm) { + showLoading(); // TODO: make showLoading an *instance* method + } + + if (innerParams.preConfirm) { + instance.resetValidationMessage(); + var preConfirmPromise = Promise.resolve().then(function () { + return innerParams.preConfirm(value, innerParams.validationMessage); + }); + preConfirmPromise.then(function (preConfirmValue) { + if (isVisible(getValidationMessage()) || preConfirmValue === false) { + instance.hideLoading(); + } else { + succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); + } + }); + } else { + succeedWith(instance, value); + } + }; + + var addKeydownHandler = function addKeydownHandler(instance, globalState, innerParams, dismissWith) { + if (globalState.keydownTarget && globalState.keydownHandlerAdded) { + globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = false; + } + + if (!innerParams.toast) { + globalState.keydownHandler = function (e) { + return keydownHandler(instance, e, dismissWith); + }; + + globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup(); + globalState.keydownListenerCapture = innerParams.keydownListenerCapture; + globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, { + capture: globalState.keydownListenerCapture + }); + globalState.keydownHandlerAdded = true; + } + }; // Focus handling + + var setFocus = function setFocus(innerParams, index, increment) { + var focusableElements = getFocusableElements(); // search for visible elements and select the next possible match + + for (var i = 0; i < focusableElements.length; i++) { + index = index + increment; // rollover to first item + + if (index === focusableElements.length) { + index = 0; // go to last item + } else if (index === -1) { + index = focusableElements.length - 1; + } + + return focusableElements[index].focus(); + } // no visible focusable elements, focus the popup + + + getPopup().focus(); + }; + var arrowKeys = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Left', 'Right', 'Up', 'Down' // IE11 + ]; + var escKeys = ['Escape', 'Esc' // IE11 + ]; + + var keydownHandler = function keydownHandler(instance, e, dismissWith) { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.stopKeydownPropagation) { + e.stopPropagation(); + } // ENTER + + + if (e.key === 'Enter') { + handleEnter(instance, e, innerParams); // TAB + } else if (e.key === 'Tab') { + handleTab(e, innerParams); // ARROWS - switch focus between buttons + } else if (arrowKeys.indexOf(e.key) !== -1) { + handleArrows(); // ESC + } else if (escKeys.indexOf(e.key) !== -1) { + handleEsc(e, innerParams, dismissWith); + } + }; + + var handleEnter = function handleEnter(instance, e, innerParams) { + // #720 #721 + if (e.isComposing) { + return; + } + + if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { + if (['textarea', 'file'].indexOf(innerParams.input) !== -1) { + return; // do not submit + } + + clickConfirm(); + e.preventDefault(); + } + }; + + var handleTab = function handleTab(e, innerParams) { + var targetElement = e.target; + var focusableElements = getFocusableElements(); + var btnIndex = -1; + + for (var i = 0; i < focusableElements.length; i++) { + if (targetElement === focusableElements[i]) { + btnIndex = i; + break; + } + } + + if (!e.shiftKey) { + // Cycle to the next button + setFocus(innerParams, btnIndex, 1); + } else { + // Cycle to the prev button + setFocus(innerParams, btnIndex, -1); + } + + e.stopPropagation(); + e.preventDefault(); + }; + + var handleArrows = function handleArrows() { + var confirmButton = getConfirmButton(); + var cancelButton = getCancelButton(); // focus Cancel button if Confirm button is currently focused + + if (document.activeElement === confirmButton && isVisible(cancelButton)) { + cancelButton.focus(); // and vice versa + } else if (document.activeElement === cancelButton && isVisible(confirmButton)) { + confirmButton.focus(); + } + }; + + var handleEsc = function handleEsc(e, innerParams, dismissWith) { + if (callIfFunction(innerParams.allowEscapeKey)) { + e.preventDefault(); + dismissWith(DismissReason.esc); + } + }; + + var handlePopupClick = function handlePopupClick(instance, domCache, dismissWith) { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.toast) { + handleToastClick(instance, domCache, dismissWith); + } else { + // Ignore click events that had mousedown on the popup but mouseup on the container + // This can happen when the user drags a slider + handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + + handleContainerMousedown(domCache); + handleModalClick(instance, domCache, dismissWith); + } + }; + + var handleToastClick = function handleToastClick(instance, domCache, dismissWith) { + // Closing toast by internal click + domCache.popup.onclick = function () { + var innerParams = privateProps.innerParams.get(instance); + + if (innerParams.showConfirmButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.input) { + return; + } + + dismissWith(DismissReason.close); + }; + }; + + var ignoreOutsideClick = false; + + var handleModalMousedown = function handleModalMousedown(domCache) { + domCache.popup.onmousedown = function () { + domCache.container.onmouseup = function (e) { + domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't + // have any other direct children aside of the popup + + if (e.target === domCache.container) { + ignoreOutsideClick = true; + } + }; + }; + }; + + var handleContainerMousedown = function handleContainerMousedown(domCache) { + domCache.container.onmousedown = function () { + domCache.popup.onmouseup = function (e) { + domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup + + if (e.target === domCache.popup || domCache.popup.contains(e.target)) { + ignoreOutsideClick = true; + } + }; + }; + }; + + var handleModalClick = function handleModalClick(instance, domCache, dismissWith) { + domCache.container.onclick = function (e) { + var innerParams = privateProps.innerParams.get(instance); + + if (ignoreOutsideClick) { + ignoreOutsideClick = false; + return; + } + + if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { + dismissWith(DismissReason.backdrop); + } + }; + }; + + function _main(userParams) { + showWarningsForParams(userParams); + + if (globalState.currentInstance) { + globalState.currentInstance._destroy(); + } + + globalState.currentInstance = this; + var innerParams = prepareParams(userParams); + setParameters(innerParams); + Object.freeze(innerParams); // clear the previous timer + + if (globalState.timeout) { + globalState.timeout.stop(); + delete globalState.timeout; + } // clear the restore focus timeout + + + clearTimeout(globalState.restoreFocusTimeout); + var domCache = populateDomCache(this); + render(this, innerParams); + privateProps.innerParams.set(this, innerParams); + return swalPromise(this, domCache, innerParams); + } + + var prepareParams = function prepareParams(userParams) { + var showClass = _extends({}, defaultParams.showClass, userParams.showClass); + + var hideClass = _extends({}, defaultParams.hideClass, userParams.hideClass); + + var params = _extends({}, defaultParams, userParams); + + params.showClass = showClass; + params.hideClass = hideClass; // @deprecated + + if (userParams.animation === false) { + params.showClass = { + popup: 'swal2-noanimation', + backdrop: 'swal2-noanimation' + }; + params.hideClass = {}; + } + + return params; + }; + + var swalPromise = function swalPromise(instance, domCache, innerParams) { + return new Promise(function (resolve) { + // functions to handle all closings/dismissals + var dismissWith = function dismissWith(dismiss) { + instance.closePopup({ + dismiss: dismiss + }); + }; + + privateMethods.swalPromiseResolve.set(instance, resolve); + + domCache.confirmButton.onclick = function () { + return handleConfirmButtonClick(instance, innerParams); + }; + + domCache.cancelButton.onclick = function () { + return handleCancelButtonClick(instance, dismissWith); + }; + + domCache.closeButton.onclick = function () { + return dismissWith(DismissReason.close); + }; + + handlePopupClick(instance, domCache, dismissWith); + addKeydownHandler(instance, globalState, innerParams, dismissWith); + + if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) { + addClass(document.body, swalClasses['toast-column']); + } else { + removeClass(document.body, swalClasses['toast-column']); + } + + handleInputOptionsAndValue(instance, innerParams); + openPopup(innerParams); + setupTimer(globalState, innerParams, dismissWith); + initFocus(domCache, innerParams); // Scroll container to top on open (#1247) + + domCache.container.scrollTop = 0; + }); + }; + + var populateDomCache = function populateDomCache(instance) { + var domCache = { + popup: getPopup(), + container: getContainer(), + content: getContent(), + actions: getActions(), + confirmButton: getConfirmButton(), + cancelButton: getCancelButton(), + closeButton: getCloseButton(), + validationMessage: getValidationMessage(), + progressSteps: getProgressSteps() + }; + privateProps.domCache.set(instance, domCache); + return domCache; + }; + + var setupTimer = function setupTimer(globalState$$1, innerParams, dismissWith) { + var timerProgressBar = getTimerProgressBar(); + hide(timerProgressBar); + + if (innerParams.timer) { + globalState$$1.timeout = new Timer(function () { + dismissWith('timer'); + delete globalState$$1.timeout; + }, innerParams.timer); + + if (innerParams.timerProgressBar) { + show(timerProgressBar); + setTimeout(function () { + if (globalState$$1.timeout.running) { + // timer can be already stopped at this point + animateTimerProgressBar(innerParams.timer); + } + }); + } + } + }; + + var initFocus = function initFocus(domCache, innerParams) { + if (innerParams.toast) { + return; + } + + if (!callIfFunction(innerParams.allowEnterKey)) { + return blurActiveElement(); + } + + if (innerParams.focusCancel && isVisible(domCache.cancelButton)) { + return domCache.cancelButton.focus(); + } + + if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) { + return domCache.confirmButton.focus(); + } + + setFocus(innerParams, -1, 1); + }; + + var blurActiveElement = function blurActiveElement() { + if (document.activeElement && typeof document.activeElement.blur === 'function') { + document.activeElement.blur(); + } + }; + + /** + * Updates popup parameters. + */ + + function update(params) { + var popup = getPopup(); + var innerParams = privateProps.innerParams.get(this); + + if (!popup || hasClass(popup, innerParams.hideClass.popup)) { + return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); + } + + var validUpdatableParams = {}; // assign valid params from `params` to `defaults` + + Object.keys(params).forEach(function (param) { + if (Swal.isUpdatableParameter(param)) { + validUpdatableParams[param] = params[param]; + } else { + warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js")); + } + }); + + var updatedParams = _extends({}, innerParams, validUpdatableParams); + + render(this, updatedParams); + privateProps.innerParams.set(this, updatedParams); + Object.defineProperties(this, { + params: { + value: _extends({}, this.params, params), + writable: false, + enumerable: true + } + }); + } + + function _destroy() { + var domCache = privateProps.domCache.get(this); + var innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; // This instance has already been destroyed + } // Check if there is another Swal closing + + + if (domCache.popup && globalState.swalCloseEventFinishedCallback) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } // Check if there is a swal disposal defer timer + + + if (globalState.deferDisposalTimer) { + clearTimeout(globalState.deferDisposalTimer); + delete globalState.deferDisposalTimer; + } + + if (typeof innerParams.onDestroy === 'function') { + innerParams.onDestroy(); + } + + disposeSwal(this); + } + + var disposeSwal = function disposeSwal(instance) { + // Unset this.params so GC will dispose it (#1569) + delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + + delete globalState.keydownHandler; + delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569) + + unsetWeakMaps(privateProps); + unsetWeakMaps(privateMethods); + }; + + var unsetWeakMaps = function unsetWeakMaps(obj) { + for (var i in obj) { + obj[i] = new WeakMap(); + } + }; + + + + var instanceMethods = /*#__PURE__*/Object.freeze({ + hideLoading: hideLoading, + disableLoading: hideLoading, + getInput: getInput$1, + close: close, + closePopup: close, + closeModal: close, + closeToast: close, + enableButtons: enableButtons, + disableButtons: disableButtons, + enableInput: enableInput, + disableInput: disableInput, + showValidationMessage: showValidationMessage, + resetValidationMessage: resetValidationMessage$1, + getProgressSteps: getProgressSteps$1, + _main: _main, + update: update, + _destroy: _destroy + }); + + var currentInstance; // SweetAlert constructor + + function SweetAlert() { + // Prevent run in Node env + + /* istanbul ignore if */ + if (typeof window === 'undefined') { + return; + } // Check for the existence of Promise + + /* istanbul ignore if */ + + + if (typeof Promise === 'undefined') { + error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)'); + } + + currentInstance = this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var outerParams = Object.freeze(this.constructor.argsToParams(args)); + Object.defineProperties(this, { + params: { + value: outerParams, + writable: false, + enumerable: true, + configurable: true + } + }); + + var promise = this._main(this.params); + + privateProps.promise.set(this, promise); + } // `catch` cannot be the name of a module export, so we define our thenable methods here instead + + + SweetAlert.prototype.then = function (onFulfilled) { + var promise = privateProps.promise.get(this); + return promise.then(onFulfilled); + }; + + SweetAlert.prototype["finally"] = function (onFinally) { + var promise = privateProps.promise.get(this); + return promise["finally"](onFinally); + }; // Assign instance methods from src/instanceMethods/*.js to prototype + + + _extends(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor + + + _extends(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility + + + Object.keys(instanceMethods).forEach(function (key) { + SweetAlert[key] = function () { + if (currentInstance) { + var _currentInstance; + + return (_currentInstance = currentInstance)[key].apply(_currentInstance, arguments); + } + }; + }); + SweetAlert.DismissReason = DismissReason; + SweetAlert.version = '9.10.8'; + + var Swal = SweetAlert; + Swal["default"] = Swal; + + return Swal; + +})); +if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} diff --git a/assets/vendor/sweetalert2/sweetalert2.min.css b/assets/vendor/sweetalert2/sweetalert2.min.css new file mode 100644 index 0000000..93d790a --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.min.css @@ -0,0 +1 @@ +.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.625em;overflow-y:hidden;background:#fff;box-shadow:0 0 .625em #d9d9d9}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:1em}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{font-size:.25em}}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{flex-basis:auto!important;width:auto;height:auto;margin:0 .3125em}.swal2-popup.swal2-toast .swal2-styled{margin:0 .3125em;padding:.3125em .625em;font-size:1em}.swal2-popup.swal2-toast .swal2-styled:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:flex;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;flex-direction:row;align-items:center;justify-content:center;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-top{align-items:flex-start}.swal2-container.swal2-top-left,.swal2-container.swal2-top-start{align-items:flex-start;justify-content:flex-start}.swal2-container.swal2-top-end,.swal2-container.swal2-top-right{align-items:flex-start;justify-content:flex-end}.swal2-container.swal2-center{align-items:center}.swal2-container.swal2-center-left,.swal2-container.swal2-center-start{align-items:center;justify-content:flex-start}.swal2-container.swal2-center-end,.swal2-container.swal2-center-right{align-items:center;justify-content:flex-end}.swal2-container.swal2-bottom{align-items:flex-end}.swal2-container.swal2-bottom-left,.swal2-container.swal2-bottom-start{align-items:flex-end;justify-content:flex-start}.swal2-container.swal2-bottom-end,.swal2-container.swal2-bottom-right{align-items:flex-end;justify-content:flex-end}.swal2-container.swal2-bottom-end>:first-child,.swal2-container.swal2-bottom-left>:first-child,.swal2-container.swal2-bottom-right>:first-child,.swal2-container.swal2-bottom-start>:first-child,.swal2-container.swal2-bottom>:first-child{margin-top:auto}.swal2-container.swal2-grow-fullscreen>.swal2-modal{display:flex!important;flex:1;align-self:stretch;justify-content:center}.swal2-container.swal2-grow-row>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-grow-column{flex:1;flex-direction:column}.swal2-container.swal2-grow-column.swal2-bottom,.swal2-container.swal2-grow-column.swal2-center,.swal2-container.swal2-grow-column.swal2-top{align-items:center}.swal2-container.swal2-grow-column.swal2-bottom-left,.swal2-container.swal2-grow-column.swal2-bottom-start,.swal2-container.swal2-grow-column.swal2-center-left,.swal2-container.swal2-grow-column.swal2-center-start,.swal2-container.swal2-grow-column.swal2-top-left,.swal2-container.swal2-grow-column.swal2-top-start{align-items:flex-start}.swal2-container.swal2-grow-column.swal2-bottom-end,.swal2-container.swal2-grow-column.swal2-bottom-right,.swal2-container.swal2-grow-column.swal2-center-end,.swal2-container.swal2-grow-column.swal2-center-right,.swal2-container.swal2-grow-column.swal2-top-end,.swal2-container.swal2-grow-column.swal2-top-right{align-items:flex-end}.swal2-container.swal2-grow-column>.swal2-modal{display:flex!important;flex:1;align-content:center;justify-content:center}.swal2-container.swal2-no-transition{transition:none!important}.swal2-container:not(.swal2-top):not(.swal2-top-start):not(.swal2-top-end):not(.swal2-top-left):not(.swal2-top-right):not(.swal2-center-start):not(.swal2-center-end):not(.swal2-center-left):not(.swal2-center-right):not(.swal2-bottom):not(.swal2-bottom-start):not(.swal2-bottom-end):not(.swal2-bottom-left):not(.swal2-bottom-right):not(.swal2-grow-fullscreen)>.swal2-modal{margin:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-container .swal2-modal{margin:0!important}}.swal2-popup{display:none;position:relative;box-sizing:border-box;flex-direction:column;justify-content:center;width:32em;max-width:100%;padding:1.25em;border:none;border-radius:.3125em;background:#fff;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-header{display:flex;flex-direction:column;align-items:center}.swal2-title{position:relative;max-width:100%;margin:0 0 .4em;padding:0;color:#595959;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;margin:1.25em auto 0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-actions.swal2-loading .swal2-styled.swal2-confirm{box-sizing:border-box;width:2.5em;height:2.5em;margin:.46875em;padding:0;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:.25em solid transparent;border-radius:100%;border-color:transparent;background-color:transparent!important;color:transparent;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-actions.swal2-loading .swal2-styled.swal2-cancel{margin-right:30px;margin-left:30px}.swal2-actions.swal2-loading :not(.swal2-styled).swal2-confirm::after{content:"";display:inline-block;width:15px;height:15px;margin-left:5px;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border:3px solid #999;border-radius:50%;border-right-color:transparent;box-shadow:1px 1px 1px #fff}.swal2-styled{margin:.3125em;padding:.625em 2em;box-shadow:none;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#3085d6;color:#fff;font-size:1.0625em}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#aaa;color:#fff;font-size:1.0625em}.swal2-styled:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 3px rgba(50,100,150,.4)}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1.25em 0 0;padding:1em 0 0;border-top:1px solid #eee;color:#545454;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;height:.25em;overflow:hidden;border-bottom-right-radius:.3125em;border-bottom-left-radius:.3125em}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:1.25em auto}.swal2-close{position:absolute;z-index:2;top:0;right:0;align-items:center;justify-content:center;width:1.2em;height:1.2em;padding:0;overflow:hidden;transition:color .1s ease-out;border:none;border-radius:0;background:0 0;color:#ccc;font-family:serif;font-size:2.5em;line-height:1.2;cursor:pointer}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close::-moz-focus-inner{border:0}.swal2-content{z-index:1;justify-content:center;margin:0;padding:0;color:#545454;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em auto}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:100%;transition:border-color .3s,box-shadow .3s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06);color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:0 0 3px #c4e6f5}.swal2-file::-webkit-input-placeholder,.swal2-input::-webkit-input-placeholder,.swal2-textarea::-webkit-input-placeholder{color:#ccc}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::-ms-input-placeholder,.swal2-input::-ms-input-placeholder,.swal2-textarea::-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em auto;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-input[type=number]{max-width:10em}.swal2-file{background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{margin:0 .4em}.swal2-validation-message{display:none;align-items:center;justify-content:center;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:1.25em auto 1.875em;border:.25em solid transparent;border-radius:50%;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{align-items:center;margin:0 0 1.25em;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;width:2em;height:2em;border-radius:2em;background:#3085d6;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#3085d6}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;width:2.5em;height:.4em;margin:0 -1px;background:#3085d6}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{right:auto;left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@supports (-ms-accelerator:true){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.swal2-range input{width:100%!important}.swal2-range output{display:none}}@-moz-document url-prefix(){.swal2-close:focus{outline:2px solid rgba(50,100,150,.4)}}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{top:auto;right:auto;bottom:auto;left:auto;max-width:calc(100% - .625em * 2);background-color:transparent!important}body.swal2-no-backdrop .swal2-container>.swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}body.swal2-no-backdrop .swal2-container.swal2-top{top:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-top-left,body.swal2-no-backdrop .swal2-container.swal2-top-start{top:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-top-end,body.swal2-no-backdrop .swal2-container.swal2-top-right{top:0;right:0}body.swal2-no-backdrop .swal2-container.swal2-center{top:50%;left:50%;transform:translate(-50%,-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-left,body.swal2-no-backdrop .swal2-container.swal2-center-start{top:50%;left:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-center-end,body.swal2-no-backdrop .swal2-container.swal2-center-right{top:50%;right:0;transform:translateY(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom{bottom:0;left:50%;transform:translateX(-50%)}body.swal2-no-backdrop .swal2-container.swal2-bottom-left,body.swal2-no-backdrop .swal2-container.swal2-bottom-start{bottom:0;left:0}body.swal2-no-backdrop .swal2-container.swal2-bottom-end,body.swal2-no-backdrop .swal2-container.swal2-bottom-right{right:0;bottom:0}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{background-color:transparent}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}body.swal2-toast-column .swal2-toast{flex-direction:column;align-items:stretch}body.swal2-toast-column .swal2-toast .swal2-actions{flex:1;align-self:stretch;height:2.2em;margin-top:.3125em}body.swal2-toast-column .swal2-toast .swal2-loading{justify-content:center}body.swal2-toast-column .swal2-toast .swal2-input{height:2em;margin:.3125em auto;font-size:1em}body.swal2-toast-column .swal2-toast .swal2-validation-message{font-size:1em} \ No newline at end of file diff --git a/assets/vendor/sweetalert2/sweetalert2.min.js b/assets/vendor/sweetalert2/sweetalert2.min.js new file mode 100644 index 0000000..7b337ab --- /dev/null +++ b/assets/vendor/sweetalert2/sweetalert2.min.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).Sweetalert2=e()}(this,function(){"use strict";function r(t){return(r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n\n
        \n
          \n
          \n
          \n
          \n
          \n
          \n \n

          \n \n
          \n
          \n
          \n \n \n
          \n \n \n
          \n \n
          \n \n \n
          \n
          \n
          \n \n \n
          \n
          \n
          \n
          \n
          \n \n').replace(/(^|\n)\s*/g,""),mt=function(t){var e,n=!!(e=W())&&(e.parentNode.removeChild(e),lt([document.documentElement,document.body],[F["no-backdrop"],F["toast-shown"],F["has-column"]]),!0);if(it())v("SweetAlert2 requires document to initialize");else{var o=document.createElement("div");o.className=F.container,n&&ut(o,F["no-transition"]),M(o,ft);var i,r,a,c,s,u,l,d,p,f,m,h,g="string"==typeof(i=t.target)?document.querySelector(i):i;g.appendChild(o),r=t,(a=K()).setAttribute("role",r.toast?"alert":"dialog"),a.setAttribute("aria-live",r.toast?"polite":"assertive"),r.toast||a.setAttribute("aria-modal","true"),c=g,"rtl"===window.getComputedStyle(c).direction&&ut(W(),F.rtl),s=k(),u=dt(s,F.input),l=dt(s,F.file),d=s.querySelector(".".concat(F.range," input")),p=s.querySelector(".".concat(F.range," output")),f=dt(s,F.select),m=s.querySelector(".".concat(F.checkbox," input")),h=dt(s,F.textarea),u.oninput=rt,l.onchange=rt,f.onchange=rt,m.onchange=rt,h.oninput=rt,d.oninput=function(t){rt(t),p.value=d.value},d.onchange=function(t){rt(t),d.nextSibling.value=d.value}}},ht=function(t,e){t.jquery?gt(e,t):M(e,t.toString())},gt=function(t,e){if(t.textContent="",0 in e)for(var n=0;n in e;n++)t.appendChild(e[n].cloneNode(!0));else t.appendChild(e.cloneNode(!0))},vt=function(){if(it())return!1;var t=document.createElement("div"),e={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(var n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&void 0!==t.style[n])return e[n];return!1}();function bt(t,e,n){var o;et(t,n["show".concat((o=e).charAt(0).toUpperCase()+o.slice(1),"Button")],"inline-block"),M(t,n["".concat(e,"ButtonText")]),t.setAttribute("aria-label",n["".concat(e,"ButtonAriaLabel")]),t.className=F[e],R(t,n,"".concat(e,"Button")),ut(t,n["".concat(e,"ButtonClass")])}function yt(t,e){var n=W();if(n){var o,i,r,a;o=n,"string"==typeof(i=e.backdrop)?o.style.background=i:i||ut([document.documentElement,document.body],F["no-backdrop"]),!e.backdrop&&e.allowOutsideClick&&D('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),r=n,(a=e.position)in F?ut(r,F[a]):(D('The "position" parameter is not valid, defaulting to "center"'),ut(r,F.center)),function(t,e){if(e&&"string"==typeof e){var n="grow-".concat(e);n in F&&ut(t,F[n])}}(n,e.grow),R(n,e,"container");var c=document.body.getAttribute("data-swal2-queue-step");c&&(n.setAttribute("data-queue-step",c),document.body.removeAttribute("data-swal2-queue-step"))}}function wt(t,e){t.placeholder&&!e.inputPlaceholder||(t.placeholder=e.inputPlaceholder)}var Ct={promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap},kt=["input","file","range","select","radio","checkbox","textarea"],xt=function(t){if(!St[t.input])return v('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(t.input,'"'));var e=Bt(t.input),n=St[t.input](e,t);G(n),setTimeout(function(){$(n)})},Pt=function(t,e){var n=Q(k(),t);if(n)for(var o in!function(t){for(var e=0;e=s.progressSteps.length&&D("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),s.progressSteps.forEach(function(t,e){var n,o,i,r,a=(n=t,o=document.createElement("li"),ut(o,F["progress-step"]),M(o,n),o);if(u.appendChild(a),e===l&&ut(a,F["active-progress-step"]),e!==s.progressSteps.length-1){var c=(i=t,r=document.createElement("li"),ut(r,F["progress-step-line"]),i.progressStepsDistance&&(r.style.width=i.progressStepsDistance),r);u.appendChild(c)}})}function Lt(t,e){var n,o,i,r,a=O();R(a,e,"header"),Tt(0,e),function(t,e){var n=Ct.innerParams.get(t);if(n&&e.icon===n.icon&&w())R(w(),e,"icon");else if(jt(),e.icon)if(-1!==Object.keys(z).indexOf(e.icon)){var o=y(".".concat(F.icon,".").concat(z[e.icon]));G(o),Vt(o,e),Mt(),R(o,e,"icon"),ut(o,e.showClass.icon)}else v('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(e.icon,'"'))}(t,e),function(t){var e=x();if(!t.imageUrl)return tt(e);G(e),e.setAttribute("src",t.imageUrl),e.setAttribute("alt",t.imageAlt),X(e,"width",t.imageWidth),X(e,"height",t.imageHeight),e.className=F.image,R(e,t,"image")}(e),n=e,o=C(),et(o,n.title||n.titleText),n.title&&at(n.title,o),n.titleText&&(o.innerText=n.titleText),R(o,n,"title"),i=e,r=q(),M(r,i.closeButtonHtml),R(r,i,"closeButton"),et(r,i.showCloseButton),r.setAttribute("aria-label",i.closeButtonAriaLabel)}function qt(t,e){var n,o,i,r;n=e,o=K(),X(o,"width",n.width),X(o,"padding",n.padding),n.background&&(o.style.background=n.background),Dt(o,n),yt(0,e),Lt(t,e),Et(t,e),ct(0,e),i=e,r=T(),et(r,i.footer),i.footer&&at(i.footer,r),R(r,i,"footer"),"function"==typeof e.onRender&&e.onRender(K())}function It(){return B()&&B().click()}var jt=function(){for(var t=n(),e=0;e\n \n
          \n
          \n ');else if("error"===e.icon)M(t,'\n \n \n \n \n ');else{M(t,Rt({question:"?",warning:"!",info:"i"}[e.icon]))}},Rt=function(t){return'
          ').concat(t,"
          ")},Ht=[],Dt=function(t,e){t.className="".concat(F.popup," ").concat(pt(t)?e.showClass.popup:""),e.toast?(ut([document.documentElement,document.body],F["toast-shown"]),ut(t,F.toast)):ut(t,F.modal),R(t,e,"popup"),"string"==typeof e.customClass&&ut(t,e.customClass),e.icon&&ut(t,F["icon-".concat(e.icon)])};function Nt(){var t=K();t||Ge.fire(),t=K();var e=E(),n=B();G(e),G(n,"inline-block"),ut([t,e],F.loading),n.disabled=!0,t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()}function Ut(){return new Promise(function(t){var e=window.scrollX,n=window.scrollY;Kt.restoreFocusTimeout=setTimeout(function(){Kt.previousActiveElement&&Kt.previousActiveElement.focus?(Kt.previousActiveElement.focus(),Kt.previousActiveElement=null):document.body&&document.body.focus(),t()},100),void 0!==e&&void 0!==n&&window.scrollTo(e,n)})}function _t(){if(Kt.timeout)return function(){var t=L(),e=parseInt(window.getComputedStyle(t).width);t.style.removeProperty("transition"),t.style.width="100%";var n=parseInt(window.getComputedStyle(t).width),o=parseInt(e/n*100);t.style.removeProperty("transition"),t.style.width="".concat(o,"%")}(),Kt.timeout.stop()}function Ft(){if(Kt.timeout){var t=Kt.timeout.start();return ot(t),t}}function zt(t){return Object.prototype.hasOwnProperty.call(Yt,t)}function Wt(t){return Qt[t]}var Kt={},Yt={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconHtml:void 0,toast:!1,animation:!0,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:void 0,target:"body",backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showCancelButton:!1,preConfirm:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusCancel:!1,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",showLoaderOnConfirm:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,onBeforeOpen:void 0,onOpen:void 0,onRender:void 0,onClose:void 0,onAfterClose:void 0,onDestroy:void 0,scrollbarPadding:!0},Zt=["title","titleText","text","html","icon","hideClass","customClass","allowOutsideClick","allowEscapeKey","showConfirmButton","showCancelButton","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","imageUrl","imageWidth","imageHeight","imageAlt","progressSteps","currentProgressStep"],Qt={animation:'showClass" and "hideClass'},$t=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusCancel","heightAuto","keydownListenerCapture"],Jt=Object.freeze({isValidParameter:zt,isUpdatableParameter:function(t){return-1!==Zt.indexOf(t)},isDeprecatedParameter:Wt,argsToParams:function(o){var i={};return"object"!==r(o[0])||b(o[0])?["title","html","icon"].forEach(function(t,e){var n=o[e];"string"==typeof n||b(n)?i[t]=n:void 0!==n&&v("Unexpected type of ".concat(t,'! Expected "string" or "Element", got ').concat(r(n)))}):c(i,o[0]),i},isVisible:function(){return pt(K())},clickConfirm:It,clickCancel:function(){return S()&&S().click()},getContainer:W,getPopup:K,getTitle:C,getContent:k,getHtmlContainer:function(){return e(F["html-container"])},getImage:x,getIcon:w,getIcons:n,getCloseButton:q,getActions:E,getConfirmButton:B,getCancelButton:S,getHeader:O,getFooter:T,getTimerProgressBar:L,getFocusableElements:I,getValidationMessage:A,isLoading:function(){return K().hasAttribute("data-loading")},fire:function(){for(var t=arguments.length,e=new Array(t),n=0;nwindow.innerHeight&&(Z.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(Z.previousBodyPadding+function(){var t=document.createElement("div");t.className=F["scrollbar-measure"],document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e}(),"px"))}function te(){return!!window.MSInputMethodContext&&!!document.documentMode}function ee(){var t=W(),e=K();t.style.removeProperty("align-items"),e.offsetTop<0&&(t.style.alignItems="flex-start")}var ne=function(){var n,o=W();o.ontouchstart=function(t){var e;n=t.target===o||!((e=o).scrollHeight>e.clientHeight)&&"INPUT"!==t.target.tagName},o.ontouchmove=function(t){n&&(t.preventDefault(),t.stopPropagation())}},oe={swalPromiseResolve:new WeakMap};function ie(t,e,n,o){n?ce(t,o):(Ut().then(function(){return ce(t,o)}),Kt.keydownTarget.removeEventListener("keydown",Kt.keydownHandler,{capture:Kt.keydownListenerCapture}),Kt.keydownHandlerAdded=!1),e.parentNode&&!document.body.getAttribute("data-swal2-queue-step")&&e.parentNode.removeChild(e),j()&&(null!==Z.previousBodyPadding&&(document.body.style.paddingRight="".concat(Z.previousBodyPadding,"px"),Z.previousBodyPadding=null),function(){if(V(document.body,F.iosfix)){var t=parseInt(document.body.style.top,10);lt(document.body,F.iosfix),document.body.style.top="",document.body.scrollTop=-1*t}}(),"undefined"!=typeof window&&te()&&window.removeEventListener("resize",ee),m(document.body.children).forEach(function(t){t.hasAttribute("data-previous-aria-hidden")?(t.setAttribute("aria-hidden",t.getAttribute("data-previous-aria-hidden")),t.removeAttribute("data-previous-aria-hidden")):t.removeAttribute("aria-hidden")})),lt([document.documentElement,document.body],[F.shown,F["height-auto"],F["no-backdrop"],F["toast-shown"],F["toast-column"]])}function re(t){var e=K();if(e){var n=Ct.innerParams.get(this);if(n&&!V(e,n.hideClass.popup)){var o=oe.swalPromiseResolve.get(this);lt(e,n.showClass.popup),ut(e,n.hideClass.popup);var i=W();lt(i,n.showClass.backdrop),ut(i,n.hideClass.backdrop),function(t,e,n){var o=W(),i=vt&&nt(e),r=n.onClose,a=n.onAfterClose;if(r!==null&&typeof r==="function"){r(e)}if(i){ae(t,e,o,a)}else{ie(t,o,Y(),a)}}(this,e,n),o(t||{})}}}var ae=function(t,e,n,o){Kt.swalCloseEventFinishedCallback=ie.bind(null,t,n,Y(),o),e.addEventListener(vt,function(t){t.target===e&&(Kt.swalCloseEventFinishedCallback(),delete Kt.swalCloseEventFinishedCallback)})},ce=function(t,e){setTimeout(function(){"function"==typeof e&&e(),t._destroy()})};function se(t,e,n){var o=Ct.domCache.get(t);e.forEach(function(t){o[t].disabled=n})}function ue(t,e){if(!t)return!1;if("radio"===t.type)for(var n=t.parentNode.parentNode.querySelectorAll("input"),o=0;o")),mt(t)}function fe(t){var e=W(),n=K();"function"==typeof t.onBeforeOpen&&t.onBeforeOpen(n),Pe(e,n,t),ke(e,n),j()&&xe(e,t.scrollbarPadding),Y()||Kt.previousActiveElement||(Kt.previousActiveElement=document.activeElement),"function"==typeof t.onOpen&&setTimeout(function(){return t.onOpen(n)}),lt(e,F["no-transition"])}function me(t){var e=K();if(t.target===e){var n=W();e.removeEventListener(vt,me),n.style.overflowY="auto"}}function he(t,e){"select"===e.input||"radio"===e.input?Ee(t,e):-1!==["text","email","number","tel","textarea"].indexOf(e.input)&&g(e.inputValue)&&Oe(t,e)}function ge(t,e){t.disableButtons(),e.input?qe(t,e):Ie(t,e,!0)}function ve(t,e){t.disableButtons(),e(_.cancel)}function be(t,e){t.closePopup({value:e})}function ye(e,t,n,o){t.keydownTarget&&t.keydownHandlerAdded&&(t.keydownTarget.removeEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!1),n.toast||(t.keydownHandler=function(t){return Ve(e,t,o)},t.keydownTarget=n.keydownListenerCapture?window:K(),t.keydownListenerCapture=n.keydownListenerCapture,t.keydownTarget.addEventListener("keydown",t.keydownHandler,{capture:t.keydownListenerCapture}),t.keydownHandlerAdded=!0)}function we(t,e,n){var o=I(),i=0;if(i + + @@ -72,6 +74,7 @@ @@ -116,50 +119,61 @@ + + + + + \ No newline at end of file diff --git a/login.php b/login.php index e989813..5e399d6 100644 --- a/login.php +++ b/login.php @@ -10,6 +10,7 @@ $res = pg_query($koneksi,"SELECT u.jenis_user,u.nama,u.satuan_kerja_id,u.data_pe WHERE u.password='$password' AND u.nama='$username' AND u.aktif='t'"); $num_row = pg_num_rows($res); $row = pg_fetch_array($res); + if ($num_row == 1) { $jns_user_id = $row['jenis_user']; $sess_nama = $row[1]; @@ -77,7 +78,6 @@ if ($num_row == 1) { 'nama_satker' => $satker_nama, 'pass' => $password ]; - // echo $sess_nama . '$%^' . $sess_jenis . '$%^' . $sess_satker . '$%^' . $sess_nampeg . '$%^' . $data_user_id . '$%^' . $sess_jabatan . '$%^' . $satker_nama . '$%^' . $password . '$%^' . $sess_jabatan_id; } else { echo "false"; }