From fb9a5fddf53df3e375a94e73ec4726d07baffc38 Mon Sep 17 00:00:00 2001 From: Aigars Silkalns Date: Tue, 5 Aug 2025 10:24:04 +0300 Subject: [PATCH] Major cleanup --- .gitignore | 68 +- README.md | 306 +- assets/images/avatar-5.jpg | Bin 1029 -> 0 bytes assets/images/card-img-1.jpg | Bin 17689 -> 0 bytes assets/images/card-img-2.jpg | Bin 17689 -> 0 bytes assets/images/card-img-3.jpg | Bin 17689 -> 0 bytes assets/images/card-img.jpg | Bin 23927 -> 0 bytes assets/images/down-arrow.png | Bin 1015 -> 0 bytes assets/images/drag-indicator.png | Bin 979 -> 0 bytes assets/images/error-img.png | Bin 4585 -> 0 bytes assets/images/loader.svg | 31 - assets/images/logo.png | Bin 2000 -> 0 bytes assets/images/product-pic-2.jpg | Bin 6019 -> 0 bytes assets/images/product-pic-3.jpg | Bin 6019 -> 0 bytes assets/images/product-pic-4.jpg | Bin 6019 -> 0 bytes assets/images/product-pic.jpg | Bin 6019 -> 0 bytes assets/images/switch.png | Bin 1166 -> 0 bytes assets/libs/css/style-modern.css | 295 - assets/libs/css/style.css | 6978 ------ assets/libs/js/dashboard-ecommerce.js | 265 - assets/libs/js/dashboard-finance.js | 417 - assets/libs/js/dashboard-influencer.js | 91 - assets/libs/js/dashboard-sales.js | 237 - assets/libs/js/gmaps.min.js | 2 - assets/libs/js/google_map.js | 283 - assets/libs/js/jvectormap.custom.js | 98 - assets/libs/js/main-js.js | 132 - .../jquery-minicolors/jquery.minicolors.css | 320 - .../jquery.minicolors.min.js | 8 - .../jquery-minicolors/jquery.minicolors.png | Bin 68627 -> 0 bytes .../jquery-asColor/dist/jquery-asColor.min.js | 9 - .../dist/jquery-asColorPicker.min.js | 9 - .../dist/jquery-asGradient.js | 859 - .../bootstrap-select/css/bootstrap-select.css | 392 - .../bootstrap-select/js/bootstrap-select.js | 2737 --- assets/vendor/bootstrap/css/bootstrap.min.css | 7 - .../vendor/bootstrap/js/bootstrap.bundle.js | 6433 ------ assets/vendor/charts/c3charts/C3chartjs.js | 393 - assets/vendor/charts/c3charts/c3.css | 187 - assets/vendor/charts/c3charts/c3.min.js | 2 - assets/vendor/charts/c3charts/d3-5.4.0.min.js | 2 - .../charts/chartist-bundle/Chartistjs.js | 518 - .../chartist-plugin-threshold.js | 128 - .../charts/chartist-bundle/chartist.css | 625 - .../charts/chartist-bundle/chartist.min.js | 10 - .../charts/charts-bundle/Chart.bundle.js | 18919 ---------------- assets/vendor/charts/charts-bundle/chartjs.js | 280 - .../vendor/charts/morris-bundle/Morrisjs.js | 174 - assets/vendor/charts/morris-bundle/morris.css | 44 - assets/vendor/charts/morris-bundle/morris.js | 2113 -- .../vendor/charts/morris-bundle/morrisjs.html | 384 - .../charts/morris-bundle/raphael.min.js | 1 - .../charts/sparkline/jquery.sparkline.js | 3054 --- assets/vendor/charts/sparkline/spark-js.js | 125 - assets/vendor/cropper/dist/cropper-int.js | 275 - assets/vendor/cropper/dist/cropper.min.css | 9 - assets/vendor/cropper/dist/cropper.min.js | 10 - .../vendor/custom-js/jquery.multi-select.html | 384 - .../datatables/css/buttons.bootstrap4.css | 225 - .../datatables/css/dataTables.bootstrap4.css | 206 - .../datatables/css/fixedHeader.bootstrap4.css | 20 - .../datatables/css/select.bootstrap4.css | 115 - .../datatables/js/buttons.bootstrap4.min.js | 17 - assets/vendor/datatables/js/data-table.js | 88 - .../js/dataTables.bootstrap4.min.js | 53 - assets/vendor/datepicker/datepicker.js | 116 - assets/vendor/datepicker/moment.js | 4506 ---- .../datepicker/tempusdominus-bootstrap-4.css | 208 - .../datepicker/tempusdominus-bootstrap-4.js | 2776 --- .../daterangepicker/daterangepicker.css | 388 - assets/vendor/dropzone/dropzone.js | 3530 --- .../fonts/circular-std/CircularStd-Black.woff | Bin 41324 -> 0 bytes .../circular-std/CircularStd-BlackItalic.woff | Bin 44884 -> 0 bytes .../fonts/circular-std/CircularStd-Bold.woff | Bin 41308 -> 0 bytes .../circular-std/CircularStd-BoldItalic.woff | Bin 45156 -> 0 bytes .../fonts/circular-std/CircularStd-Book.woff | Bin 36612 -> 0 bytes .../circular-std/CircularStd-BookItalic.woff | Bin 39220 -> 0 bytes .../circular-std/CircularStd-Medium.woff | Bin 40840 -> 0 bytes .../CircularStd-MediumItalic.woff | Bin 44660 -> 0 bytes assets/vendor/fonts/circular-std/style.css | 64 - .../fonts/flag-icon-css/flag-icon.min.css | 1 - .../vendor/fonts/flag-icon-css/flags/ad.svg | 151 - .../vendor/fonts/flag-icon-css/flags/ae.svg | 8 - .../vendor/fonts/flag-icon-css/flags/af.svg | 431 - .../vendor/fonts/flag-icon-css/flags/ag.svg | 15 - .../vendor/fonts/flag-icon-css/flags/ai.svg | 767 - .../vendor/fonts/flag-icon-css/flags/al.svg | 5 - .../vendor/fonts/flag-icon-css/flags/am.svg | 5 - .../vendor/fonts/flag-icon-css/flags/ao.svg | 13 - .../vendor/fonts/flag-icon-css/flags/aq.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ar.svg | 143 - .../vendor/fonts/flag-icon-css/flags/as.svg | 33 - .../vendor/fonts/flag-icon-css/flags/at.svg | 6 - .../vendor/fonts/flag-icon-css/flags/au.svg | 9 - .../vendor/fonts/flag-icon-css/flags/aw.svg | 186 - .../vendor/fonts/flag-icon-css/flags/ax.svg | 18 - .../vendor/fonts/flag-icon-css/flags/az.svg | 8 - .../vendor/fonts/flag-icon-css/flags/ba.svg | 12 - .../vendor/fonts/flag-icon-css/flags/bb.svg | 6 - .../vendor/fonts/flag-icon-css/flags/bd.svg | 4 - .../vendor/fonts/flag-icon-css/flags/be.svg | 7 - .../vendor/fonts/flag-icon-css/flags/bf.svg | 7 - .../vendor/fonts/flag-icon-css/flags/bg.svg | 7 - .../vendor/fonts/flag-icon-css/flags/bh.svg | 11 - .../vendor/fonts/flag-icon-css/flags/bi.svg | 15 - .../vendor/fonts/flag-icon-css/flags/bj.svg | 14 - .../vendor/fonts/flag-icon-css/flags/bl.svg | 7 - .../vendor/fonts/flag-icon-css/flags/bm.svg | 99 - .../vendor/fonts/flag-icon-css/flags/bn.svg | 36 - .../vendor/fonts/flag-icon-css/flags/bo.svg | 7 - .../vendor/fonts/flag-icon-css/flags/bq.svg | 5 - .../vendor/fonts/flag-icon-css/flags/br.svg | 45 - .../vendor/fonts/flag-icon-css/flags/bs.svg | 13 - .../vendor/fonts/flag-icon-css/flags/bt.svg | 122 - .../vendor/fonts/flag-icon-css/flags/bv.svg | 13 - .../vendor/fonts/flag-icon-css/flags/bw.svg | 7 - .../vendor/fonts/flag-icon-css/flags/by.svg | 61 - .../vendor/fonts/flag-icon-css/flags/bz.svg | 235 - .../vendor/fonts/flag-icon-css/flags/ca.svg | 11 - .../vendor/fonts/flag-icon-css/flags/cc.svg | 19 - .../vendor/fonts/flag-icon-css/flags/cd.svg | 5 - .../vendor/fonts/flag-icon-css/flags/cf.svg | 15 - .../vendor/fonts/flag-icon-css/flags/cg.svg | 12 - .../vendor/fonts/flag-icon-css/flags/ch.svg | 9 - .../vendor/fonts/flag-icon-css/flags/ci.svg | 7 - .../vendor/fonts/flag-icon-css/flags/ck.svg | 9 - .../vendor/fonts/flag-icon-css/flags/cl.svg | 13 - .../vendor/fonts/flag-icon-css/flags/cm.svg | 15 - .../vendor/fonts/flag-icon-css/flags/cn.svg | 19 - .../vendor/fonts/flag-icon-css/flags/co.svg | 7 - .../vendor/fonts/flag-icon-css/flags/cr.svg | 7 - .../vendor/fonts/flag-icon-css/flags/cu.svg | 13 - .../vendor/fonts/flag-icon-css/flags/cv.svg | 16 - .../vendor/fonts/flag-icon-css/flags/cw.svg | 14 - .../vendor/fonts/flag-icon-css/flags/cx.svg | 15 - .../vendor/fonts/flag-icon-css/flags/cy.svg | 6 - .../vendor/fonts/flag-icon-css/flags/cz.svg | 12 - .../vendor/fonts/flag-icon-css/flags/de.svg | 7 - .../vendor/fonts/flag-icon-css/flags/dj.svg | 13 - .../vendor/fonts/flag-icon-css/flags/dk.svg | 5 - .../vendor/fonts/flag-icon-css/flags/dm.svg | 152 - .../vendor/fonts/flag-icon-css/flags/do.svg | 6748 ------ .../vendor/fonts/flag-icon-css/flags/dz.svg | 5 - .../vendor/fonts/flag-icon-css/flags/ec.svg | 143 - .../vendor/fonts/flag-icon-css/flags/ee.svg | 7 - .../vendor/fonts/flag-icon-css/flags/eg.svg | 38 - .../vendor/fonts/flag-icon-css/flags/eh.svg | 15 - .../vendor/fonts/flag-icon-css/flags/er.svg | 8 - .../vendor/fonts/flag-icon-css/flags/es.svg | 581 - .../vendor/fonts/flag-icon-css/flags/et.svg | 14 - .../vendor/fonts/flag-icon-css/flags/fi.svg | 15 - .../vendor/fonts/flag-icon-css/flags/fj.svg | 138 - .../vendor/fonts/flag-icon-css/flags/fk.svg | 90 - .../vendor/fonts/flag-icon-css/flags/fm.svg | 11 - .../vendor/fonts/flag-icon-css/flags/fo.svg | 12 - .../vendor/fonts/flag-icon-css/flags/fr.svg | 7 - .../vendor/fonts/flag-icon-css/flags/ga.svg | 7 - .../vendor/fonts/flag-icon-css/flags/gb.svg | 15 - .../vendor/fonts/flag-icon-css/flags/gd.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ge.svg | 18 - .../vendor/fonts/flag-icon-css/flags/gf.svg | 5 - .../vendor/fonts/flag-icon-css/flags/gg.svg | 18 - .../vendor/fonts/flag-icon-css/flags/gh.svg | 6 - .../vendor/fonts/flag-icon-css/flags/gi.svg | 33 - .../vendor/fonts/flag-icon-css/flags/gl.svg | 12 - .../vendor/fonts/flag-icon-css/flags/gm.svg | 14 - .../vendor/fonts/flag-icon-css/flags/gn.svg | 7 - .../vendor/fonts/flag-icon-css/flags/gp.svg | 7 - .../vendor/fonts/flag-icon-css/flags/gq.svg | 36 - .../vendor/fonts/flag-icon-css/flags/gr.svg | 22 - .../vendor/fonts/flag-icon-css/flags/gs.svg | 205 - .../vendor/fonts/flag-icon-css/flags/gt.svg | 204 - .../vendor/fonts/flag-icon-css/flags/gu.svg | 39 - .../vendor/fonts/flag-icon-css/flags/gw.svg | 13 - .../vendor/fonts/flag-icon-css/flags/gy.svg | 9 - .../vendor/fonts/flag-icon-css/flags/hk.svg | 34 - .../vendor/fonts/flag-icon-css/flags/hm.svg | 9 - .../vendor/fonts/flag-icon-css/flags/hn.svg | 18 - .../vendor/fonts/flag-icon-css/flags/hr.svg | 61 - .../vendor/fonts/flag-icon-css/flags/ht.svg | 128 - .../vendor/fonts/flag-icon-css/flags/hu.svg | 7 - .../vendor/fonts/flag-icon-css/flags/id.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ie.svg | 7 - .../vendor/fonts/flag-icon-css/flags/il.svg | 14 - .../vendor/fonts/flag-icon-css/flags/im.svg | 36 - .../vendor/fonts/flag-icon-css/flags/in.svg | 25 - .../vendor/fonts/flag-icon-css/flags/io.svg | 152 - .../vendor/fonts/flag-icon-css/flags/iq.svg | 10 - .../vendor/fonts/flag-icon-css/flags/ir.svg | 223 - .../vendor/fonts/flag-icon-css/flags/is.svg | 12 - .../vendor/fonts/flag-icon-css/flags/it.svg | 7 - .../vendor/fonts/flag-icon-css/flags/je.svg | 36 - .../vendor/fonts/flag-icon-css/flags/jm.svg | 8 - .../vendor/fonts/flag-icon-css/flags/jo.svg | 16 - .../vendor/fonts/flag-icon-css/flags/jp.svg | 11 - .../vendor/fonts/flag-icon-css/flags/ke.svg | 23 - .../vendor/fonts/flag-icon-css/flags/kg.svg | 15 - .../vendor/fonts/flag-icon-css/flags/kh.svg | 117 - .../vendor/fonts/flag-icon-css/flags/ki.svg | 36 - .../vendor/fonts/flag-icon-css/flags/km.svg | 16 - .../vendor/fonts/flag-icon-css/flags/kn.svg | 14 - .../vendor/fonts/flag-icon-css/flags/kp.svg | 15 - .../vendor/fonts/flag-icon-css/flags/kr.svg | 24 - .../vendor/fonts/flag-icon-css/flags/kw.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ky.svg | 65 - .../vendor/fonts/flag-icon-css/flags/kz.svg | 23 - .../vendor/fonts/flag-icon-css/flags/la.svg | 12 - .../vendor/fonts/flag-icon-css/flags/lb.svg | 15 - .../vendor/fonts/flag-icon-css/flags/lc.svg | 8 - .../vendor/fonts/flag-icon-css/flags/li.svg | 43 - .../vendor/fonts/flag-icon-css/flags/lk.svg | 22 - .../vendor/fonts/flag-icon-css/flags/lr.svg | 14 - .../vendor/fonts/flag-icon-css/flags/ls.svg | 15 - .../vendor/fonts/flag-icon-css/flags/lt.svg | 7 - .../vendor/fonts/flag-icon-css/flags/lu.svg | 7 - .../vendor/fonts/flag-icon-css/flags/lv.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ly.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ma.svg | 4 - .../vendor/fonts/flag-icon-css/flags/mc.svg | 6 - .../vendor/fonts/flag-icon-css/flags/md.svg | 72 - .../vendor/fonts/flag-icon-css/flags/me.svg | 104 - .../vendor/fonts/flag-icon-css/flags/mf.svg | 7 - .../vendor/fonts/flag-icon-css/flags/mg.svg | 7 - .../vendor/fonts/flag-icon-css/flags/mh.svg | 7 - .../vendor/fonts/flag-icon-css/flags/mk.svg | 5 - .../vendor/fonts/flag-icon-css/flags/ml.svg | 7 - .../vendor/fonts/flag-icon-css/flags/mm.svg | 21 - .../vendor/fonts/flag-icon-css/flags/mn.svg | 16 - .../vendor/fonts/flag-icon-css/flags/mo.svg | 9 - .../vendor/fonts/flag-icon-css/flags/mp.svg | 88 - .../vendor/fonts/flag-icon-css/flags/mq.svg | 7 - .../vendor/fonts/flag-icon-css/flags/mr.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ms.svg | 39 - .../vendor/fonts/flag-icon-css/flags/mt.svg | 49 - .../vendor/fonts/flag-icon-css/flags/mu.svg | 8 - .../vendor/fonts/flag-icon-css/flags/mv.svg | 8 - .../vendor/fonts/flag-icon-css/flags/mw.svg | 12 - .../vendor/fonts/flag-icon-css/flags/mx.svg | 184 - .../vendor/fonts/flag-icon-css/flags/my.svg | 13 - .../vendor/fonts/flag-icon-css/flags/mz.svg | 21 - .../vendor/fonts/flag-icon-css/flags/na.svg | 18 - .../vendor/fonts/flag-icon-css/flags/nc.svg | 7 - .../vendor/fonts/flag-icon-css/flags/ne.svg | 6 - .../vendor/fonts/flag-icon-css/flags/nf.svg | 9 - .../vendor/fonts/flag-icon-css/flags/ng.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ni.svg | 133 - .../vendor/fonts/flag-icon-css/flags/nl.svg | 7 - .../vendor/fonts/flag-icon-css/flags/no.svg | 7 - .../vendor/fonts/flag-icon-css/flags/np.svg | 14 - .../vendor/fonts/flag-icon-css/flags/nr.svg | 12 - .../vendor/fonts/flag-icon-css/flags/nu.svg | 26 - .../vendor/fonts/flag-icon-css/flags/nz.svg | 27 - .../vendor/fonts/flag-icon-css/flags/om.svg | 128 - .../vendor/fonts/flag-icon-css/flags/pa.svg | 14 - .../vendor/fonts/flag-icon-css/flags/pe.svg | 6 - .../vendor/fonts/flag-icon-css/flags/pf.svg | 33 - .../vendor/fonts/flag-icon-css/flags/pg.svg | 9 - .../vendor/fonts/flag-icon-css/flags/ph.svg | 28 - .../vendor/fonts/flag-icon-css/flags/pk.svg | 15 - .../vendor/fonts/flag-icon-css/flags/pl.svg | 6 - .../vendor/fonts/flag-icon-css/flags/pm.svg | 7 - .../vendor/fonts/flag-icon-css/flags/pn.svg | 81 - .../vendor/fonts/flag-icon-css/flags/pr.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ps.svg | 15 - .../vendor/fonts/flag-icon-css/flags/pt.svg | 57 - .../vendor/fonts/flag-icon-css/flags/pw.svg | 11 - .../vendor/fonts/flag-icon-css/flags/py.svg | 157 - .../vendor/fonts/flag-icon-css/flags/qa.svg | 11 - .../vendor/fonts/flag-icon-css/flags/re.svg | 7 - .../vendor/fonts/flag-icon-css/flags/ro.svg | 7 - .../vendor/fonts/flag-icon-css/flags/rs.svg | 300 - .../vendor/fonts/flag-icon-css/flags/ru.svg | 7 - .../vendor/fonts/flag-icon-css/flags/rw.svg | 13 - .../vendor/fonts/flag-icon-css/flags/sa.svg | 26 - .../vendor/fonts/flag-icon-css/flags/sb.svg | 13 - .../vendor/fonts/flag-icon-css/flags/sc.svg | 14 - .../vendor/fonts/flag-icon-css/flags/sd.svg | 13 - .../vendor/fonts/flag-icon-css/flags/se.svg | 16 - .../vendor/fonts/flag-icon-css/flags/sg.svg | 13 - .../vendor/fonts/flag-icon-css/flags/sh.svg | 76 - .../vendor/fonts/flag-icon-css/flags/si.svg | 18 - .../vendor/fonts/flag-icon-css/flags/sj.svg | 14 - .../vendor/fonts/flag-icon-css/flags/sk.svg | 16 - .../vendor/fonts/flag-icon-css/flags/sl.svg | 7 - .../vendor/fonts/flag-icon-css/flags/sm.svg | 92 - .../vendor/fonts/flag-icon-css/flags/sn.svg | 8 - .../vendor/fonts/flag-icon-css/flags/so.svg | 11 - .../vendor/fonts/flag-icon-css/flags/sr.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ss.svg | 11 - .../vendor/fonts/flag-icon-css/flags/st.svg | 15 - .../vendor/fonts/flag-icon-css/flags/sv.svg | 621 - .../vendor/fonts/flag-icon-css/flags/sx.svg | 56 - .../vendor/fonts/flag-icon-css/flags/sy.svg | 10 - .../vendor/fonts/flag-icon-css/flags/sz.svg | 49 - .../vendor/fonts/flag-icon-css/flags/tc.svg | 73 - .../vendor/fonts/flag-icon-css/flags/td.svg | 7 - .../vendor/fonts/flag-icon-css/flags/tf.svg | 15 - .../vendor/fonts/flag-icon-css/flags/tg.svg | 14 - .../vendor/fonts/flag-icon-css/flags/th.svg | 7 - .../vendor/fonts/flag-icon-css/flags/tj.svg | 181 - .../vendor/fonts/flag-icon-css/flags/tk.svg | 9 - .../vendor/fonts/flag-icon-css/flags/tl.svg | 13 - .../vendor/fonts/flag-icon-css/flags/tm.svg | 222 - .../vendor/fonts/flag-icon-css/flags/tn.svg | 13 - .../vendor/fonts/flag-icon-css/flags/to.svg | 10 - .../vendor/fonts/flag-icon-css/flags/tr.svg | 8 - .../vendor/fonts/flag-icon-css/flags/tt.svg | 5 - .../vendor/fonts/flag-icon-css/flags/tv.svg | 29 - .../vendor/fonts/flag-icon-css/flags/tw.svg | 14 - .../vendor/fonts/flag-icon-css/flags/tz.svg | 13 - .../vendor/fonts/flag-icon-css/flags/ua.svg | 6 - .../vendor/fonts/flag-icon-css/flags/ug.svg | 30 - .../vendor/fonts/flag-icon-css/flags/um.svg | 48 - .../vendor/fonts/flag-icon-css/flags/us.svg | 48 - .../vendor/fonts/flag-icon-css/flags/uy.svg | 28 - .../vendor/fonts/flag-icon-css/flags/uz.svg | 30 - .../vendor/fonts/flag-icon-css/flags/va.svg | 483 - .../vendor/fonts/flag-icon-css/flags/vc.svg | 8 - .../vendor/fonts/flag-icon-css/flags/ve.svg | 28 - .../vendor/fonts/flag-icon-css/flags/vg.svg | 143 - .../vendor/fonts/flag-icon-css/flags/vi.svg | 32 - .../vendor/fonts/flag-icon-css/flags/vn.svg | 11 - .../vendor/fonts/flag-icon-css/flags/vu.svg | 18 - .../vendor/fonts/flag-icon-css/flags/wf.svg | 7 - .../vendor/fonts/flag-icon-css/flags/ws.svg | 9 - .../vendor/fonts/flag-icon-css/flags/ye.svg | 7 - .../vendor/fonts/flag-icon-css/flags/yt.svg | 7 - .../vendor/fonts/flag-icon-css/flags/za.svg | 17 - .../vendor/fonts/flag-icon-css/flags/zm.svg | 27 - .../vendor/fonts/flag-icon-css/flags/zw.svg | 26 - .../fonts/fontawesome/css/fontawesome-all.css | 2855 --- .../fontawesome/webfonts/fa-brands-400.eot | Bin 98940 -> 0 bytes .../fontawesome/webfonts/fa-brands-400.html | Bin 54684 -> 0 bytes .../fontawesome/webfonts/fa-brands-400.svg | 1011 - .../fontawesome/webfonts/fa-brands-400.ttf | Bin 98704 -> 0 bytes .../fontawesome/webfonts/fa-brands-400.woff | Bin 63904 -> 0 bytes .../webfonts/fa-brands-400d41d.eot | Bin 98940 -> 0 bytes .../fontawesome/webfonts/fa-regular-400.eot | Bin 30788 -> 0 bytes .../fontawesome/webfonts/fa-regular-400.html | Bin 12224 -> 0 bytes .../fontawesome/webfonts/fa-regular-400.svg | 366 - .../fontawesome/webfonts/fa-regular-400.ttf | Bin 30560 -> 0 bytes .../fontawesome/webfonts/fa-regular-400.woff | Bin 14672 -> 0 bytes .../webfonts/fa-regular-400d41d.eot | Bin 30788 -> 0 bytes .../fontawesome/webfonts/fa-solid-900.eot | Bin 115152 -> 0 bytes .../fontawesome/webfonts/fa-solid-900.html | Bin 44004 -> 0 bytes .../fontawesome/webfonts/fa-solid-900.svg | 1644 -- .../fontawesome/webfonts/fa-solid-900.ttf | Bin 114932 -> 0 bytes .../fontawesome/webfonts/fa-solid-900.woff | Bin 55484 -> 0 bytes .../fontawesome/webfonts/fa-solid-900d41d.eot | Bin 115152 -> 0 bytes .../css/materialdesignicons.min.css | 2 - .../fonts/materialdesignicons-webfontd41d.eot | Bin 261608 -> 0 bytes .../fonts/materialdesignicons-webfontdc99.eot | Bin 261608 -> 0 bytes .../materialdesignicons-webfontdc99.html | Bin 99736 -> 0 bytes .../fonts/materialdesignicons-webfontdc99.svg | 5520 ----- .../fonts/materialdesignicons-webfontdc99.ttf | Bin 261388 -> 0 bytes .../materialdesignicons-webfontdc99.woff | Bin 129588 -> 0 bytes .../css/simple-line-icons.css | 754 - .../fonts/Simple-Line-Icons4c82.eot | Bin 53572 -> 0 bytes .../fonts/Simple-Line-Icons4c82.html | Bin 26384 -> 0 bytes .../fonts/Simple-Line-Icons4c82.svg | 211 - .../fonts/Simple-Line-Icons4c82.ttf | Bin 53368 -> 0 bytes .../fonts/Simple-Line-Icons4c82.woff | Bin 53444 -> 0 bytes .../fonts/Simple-Line-Iconsd41d.eot | Bin 53572 -> 0 bytes .../fonts/themify-icons/fonts/themify.ttf | Bin 78584 -> 0 bytes .../fonts/themify-icons/fonts/themify.woff | Bin 56108 -> 0 bytes .../fonts/themify-icons/fonts/themify9f24.eot | Bin 78748 -> 0 bytes .../fonts/themify-icons/fonts/themify9f24.svg | 362 - .../fonts/themify-icons/fonts/themifyd41d.eot | Bin 78748 -> 0 bytes .../fonts/themify-icons/themify-icons.css | 1081 - .../weather-icons/css/weather-icons.min.css | 21 - .../fonts/weathericons-regular-webfont.eot | Bin 99774 -> 0 bytes .../vendor/full-calendar/css/fullcalendar.css | 1306 -- .../full-calendar/css/fullcalendar.print.css | 176 - assets/vendor/full-calendar/js/calendar.js | 144 - .../vendor/full-calendar/js/fullcalendar.js | 15010 ------------ .../vendor/full-calendar/js/jquery-ui.min.js | 13 - assets/vendor/full-calendar/js/moment.min.js | 1 - assets/vendor/gauge/gauge.js | 199 - assets/vendor/gauge/gauge.min.js | 1 - assets/vendor/inputmask/css/inputmask.css | 69 - .../inputmask/js/jquery.inputmask.bundle.js | 3881 ---- assets/vendor/jquery/jquery-3.3.1.min.js | 2 - .../jvectormap/jquery-jvectormap-2.0.2.css | 132 - .../jvectormap/jquery-jvectormap-2.0.2.min.js | 3328 --- .../jvectormap/jquery-jvectormap-au-mill.js | 1 - .../jvectormap/jquery-jvectormap-in-mill.js | 1 - .../jquery-jvectormap-uk-mill-en.js | 1 - .../jvectormap/jquery-jvectormap-us-aea-en.js | 1 - .../jquery-jvectormap-world-mill-en.js | 1 - .../vendor/multi-select/css/multi-select.css | 93 - .../multi-select/js/jquery.multi-select.js | 544 - assets/vendor/parsley/parsley.js | 2494 -- assets/vendor/select2/css/select2.css | 502 - assets/vendor/select2/js/select2.min.js | 1 - .../vendor/shortable-nestable/Sortable.min.js | 3 - .../shortable-nestable/jquery.nestable.js | 484 - assets/vendor/shortable-nestable/sort-nest.js | 21 - assets/vendor/slimscroll/jquery.slimscroll.js | 474 - .../vendor/summernote/css/font/summernote.eot | Bin 12072 -> 0 bytes .../vendor/summernote/css/font/summernote.ttf | Bin 11896 -> 0 bytes .../summernote/css/font/summernote.woff | Bin 7428 -> 0 bytes .../summernote/css/font/summernote.woff2 | Bin 6156 -> 0 bytes .../vendor/summernote/css/summernote-bs4.css | 771 - assets/vendor/summernote/js/summernote-bs4.js | 8764 ------- .../vendor/timeline/img/cd-icon-location.svg | 4 - assets/vendor/timeline/img/cd-icon-movie.svg | 4 - .../vendor/timeline/img/cd-icon-picture.svg | 5 - assets/vendor/timeline/js/main.js | 71 - assets/vendor/vector-map/jqvmap.css | 50 - concept-modern/.gitignore | 35 - concept-modern/CHANGELOG.md | 112 - concept-modern/DOCUMENTATION_PLAN.md | 285 - concept-modern/DOCUMENTATION_PLAN_EXTENDED.md | 198 - concept-modern/README.md | 216 - concept-modern/VITE_GUIDE.md | 171 - concept-modern/package-lock.json | 4585 ---- concept-modern/package.json | 40 - concept-modern/src/assets/images/avatar-1.jpg | Bin 1029 -> 0 bytes concept-modern/src/assets/images/avatar-2.jpg | Bin 1029 -> 0 bytes concept-modern/src/assets/images/avatar-3.jpg | Bin 1029 -> 0 bytes concept-modern/src/assets/images/avatar-4.jpg | Bin 1029 -> 0 bytes .../src/assets/images/bitbucket.png | Bin 1840 -> 0 bytes concept-modern/src/assets/images/dribbble.png | Bin 1840 -> 0 bytes concept-modern/src/assets/images/dropbox.png | Bin 1840 -> 0 bytes .../src/assets/images/eco-product-img-1.png | Bin 1833 -> 0 bytes .../src/assets/images/eco-product-img-2.png | Bin 1833 -> 0 bytes .../src/assets/images/eco-product-img-3.png | Bin 1833 -> 0 bytes .../src/assets/images/eco-product-img-4.png | Bin 1833 -> 0 bytes .../src/assets/images/eco-slider-img-1.png | Bin 2393 -> 0 bytes .../src/assets/images/eco-slider-img-2.png | Bin 2393 -> 0 bytes .../src/assets/images/eco-slider-img-3.png | Bin 2393 -> 0 bytes concept-modern/src/assets/images/github.png | Bin 1840 -> 0 bytes .../src/assets/images/mail_chimp.png | Bin 1840 -> 0 bytes concept-modern/src/assets/images/slack.png | Bin 1840 -> 0 bytes concept-modern/src/scss/main.scss | 43 - concept-modern/vite.config.js | 129 - .../docs => docs}/components/buttons.md | 60 +- .../docs => docs}/components/cards.md | 95 +- .../docs => docs}/components/charts.md | 67 +- .../docs => docs}/components/forms.md | 47 +- .../docs => docs}/components/overview.md | 72 +- .../docs => docs}/components/tables.md | 82 +- .../docs => docs}/customization/colors.md | 0 .../docs => docs}/customization/overview.md | 0 .../customization/sass-variables.md | 0 .../docs => docs}/customization/theming.md | 0 .../getting-started/build-tools.md | 0 .../getting-started/file-structure.md | 0 .../getting-started/installation.md | 0 .../getting-started/introduction.md | 0 .../getting-started/quick-start.md | 0 documentation/css/32px.png | Bin 3121 -> 0 bytes documentation/css/bootstrap.min.css | 6 - documentation/css/style.css | 195 - documentation/css/throbber.gif | Bin 1720 -> 0 bytes documentation/css/tree-viewer.css | 1 - documentation/img/favicon.ico | Bin 18686 -> 0 bytes documentation/img/logo.png | Bin 3595 -> 0 bytes documentation/index.html | 898 - documentation/js/bootstrap.min.js | 7 - documentation/js/jquery-3.1.0.min.js | 5 - documentation/js/jstree.active.js | 121 - documentation/js/jstree.min.js | 5 - package-lock.json | 4583 +++- package.json | 37 +- pages/accordions.html | 753 - pages/blank-page-header.html | 500 - pages/bootstrap-select.html | 788 - pages/calendar.html | 542 - pages/cards.html | 1451 -- pages/carousel.html | 640 - pages/chart-c3.html | 630 - pages/chart-chartist.html | 718 - pages/chart-charts.html | 584 - pages/chart-gauge.html | 554 - pages/chart-morris.html | 588 - pages/chart-sparkline.html | 643 - pages/color-picker.html | 787 - pages/cropped.html | 384 - pages/cropper-image.html | 986 - pages/data-tables.html | 3008 --- pages/datepicker.html | 623 - pages/form-elements.html | 1143 - pages/form-validation.html | 844 - pages/general-bootstrap5.html | 691 - pages/general-table.html | 756 - pages/general.html | 1147 - pages/icon-flag.html | 759 - pages/icon-fontawesome.html | 1587 -- pages/icon-material.html | 2350 -- pages/icon-simple-lineicon.html | 1057 - pages/icon-themify.html | 932 - pages/icon-weather.html | 841 - pages/index.html | 384 - pages/invoice.html | 617 - pages/listgroup.html | 646 - pages/map-google.html | 673 - pages/map-vector.html | 575 - pages/media-object.html | 1129 - pages/message-chat.html | 1168 - pages/multiselect.html | 699 - pages/pages-app.html | 383 - pages/pricing.html | 677 - pages/sortable-nestable-lists.html | 848 - pages/tabs.html | 892 - pages/timeline.html | 589 - pages/typography.html | 796 - pages/user-profile.html | 384 - pages/widgets.html | 928 - .../scripts => scripts}/build-utils.js | 0 .../scripts => scripts}/download-fonts.js | 0 .../scripts => scripts}/migrate-bs4-to-bs5.js | 0 {assets => src/assets}/images/avatar-1.jpg | Bin {assets => src/assets}/images/avatar-2.jpg | Bin {assets => src/assets}/images/avatar-3.jpg | Bin {assets => src/assets}/images/avatar-4.jpg | Bin {assets => src/assets}/images/bitbucket.png | Bin {assets => src/assets}/images/dribbble.png | Bin {assets => src/assets}/images/dropbox.png | Bin .../assets}/images/eco-product-img-1.png | Bin .../assets}/images/eco-product-img-2.png | Bin .../assets}/images/eco-product-img-3.png | Bin .../assets}/images/eco-product-img-4.png | Bin .../assets}/images/eco-slider-img-1.png | Bin .../assets}/images/eco-slider-img-2.png | Bin .../assets}/images/eco-slider-img-3.png | Bin {assets => src/assets}/images/github.png | Bin {assets => src/assets}/images/mail_chimp.png | Bin {assets => src/assets}/images/slack.png | Bin .../src => src}/config/navigation.js | 0 {concept-modern/src => src}/index.html | 0 {concept-modern/src => src}/js/app.js | 0 .../src => src}/js/components/charts.js | 0 .../src => src}/js/components/datatables.js | 0 .../js/components/form-validation.js | 0 .../src => src}/js/components/popovers.js | 0 .../src => src}/js/components/sidebar.js | 0 .../src => src}/js/components/tooltips.js | 0 .../src => src}/js/pages/calendar.js | 0 {concept-modern/src => src}/js/pages/chat.js | 0 .../src => src}/js/pages/checkout.js | 0 .../src => src}/js/pages/compose.js | 0 .../src => src}/js/pages/data-tables.js | 0 .../src => src}/js/pages/email-details.js | 0 {concept-modern/src => src}/js/pages/inbox.js | 0 .../src => src}/js/pages/influencer-finder.js | 0 .../js/pages/influencer-profile.js | 0 .../src => src}/js/pages/influencer.js | 0 .../src => src}/js/pages/multiselect.js | 0 .../src => src}/js/pages/product-single.js | 0 .../src => src}/js/pages/products.js | 0 .../src => src}/js/pages/settings.js | 0 .../src => src}/js/pages/timeline.js | 0 {concept-modern/src => src}/js/pages/users.js | 0 .../pages/apps/influencer-finder.html | 0 .../pages/apps/influencer-profile.html | 0 .../pages/auth/forgot-password.html | 0 .../src => src}/pages/auth/login.html | 0 .../src => src}/pages/auth/signup.html | 0 .../src => src}/pages/calendar.html | 0 .../src => src}/pages/charts/index.html | 0 {concept-modern/src => src}/pages/chat.html | 0 .../src => src}/pages/dashboards/finance.html | 0 .../pages/dashboards/influencer-v2.html | 0 .../pages/dashboards/influencer.html | 0 .../src => src}/pages/dashboards/sales.html | 0 .../src => src}/pages/ecommerce/checkout.html | 0 .../pages/ecommerce/product-single.html | 0 .../src => src}/pages/ecommerce/products.html | 0 .../src => src}/pages/email/compose.html | 0 .../src => src}/pages/email/details.html | 0 .../src => src}/pages/email/inbox.html | 0 .../src => src}/pages/form-elements.html | 0 .../src => src}/pages/form-validation.html | 0 .../src => src}/pages/misc/404.html | 0 .../src => src}/pages/misc/blank-page.html | 0 .../src => src}/pages/multiselect.html | 0 .../src => src}/pages/settings.html | 0 .../src => src}/pages/tables/data-tables.html | 0 .../pages/tables/general-tables.html | 0 .../src => src}/pages/timeline.html | 0 .../src => src}/pages/ui-elements/cards.html | 0 .../pages/ui-elements/general.html | 0 .../pages/ui-elements/typography.html | 0 {concept-modern/src => src}/pages/users.html | 0 .../src => src}/partials/layouts/base.hbs | 0 .../src => src}/partials/layouts/footer.hbs | 0 .../src => src}/partials/layouts/head.hbs | 0 .../src => src}/partials/layouts/header.hbs | 0 .../src => src}/partials/layouts/main.hbs | 0 .../src => src}/partials/layouts/scripts.hbs | 0 .../src => src}/partials/layouts/sidebar.hbs | 0 .../src => src}/scss/_variables.scss | 0 .../src => src}/scss/components/_badges.scss | 0 .../src => src}/scss/components/_buttons.scss | 0 .../src => src}/scss/components/_cards.scss | 0 .../src => src}/scss/components/_charts.scss | 0 .../scss/components/_datatables.scss | 0 .../src => src}/scss/components/_forms.scss | 0 .../scss/components/_multiselect.scss | 0 .../scss/components/_notifications.scss | 0 .../src => src}/scss/components/_tables.scss | 0 .../src => src}/scss/layouts/_footer.scss | 0 .../src => src}/scss/layouts/_header.scss | 0 .../src => src}/scss/layouts/_layout.scss | 0 .../src => src}/scss/layouts/_sidebar.scss | 0 src/scss/main.scss | 53 +- .../src => src}/scss/pages/_calendar.scss | 0 .../src => src}/scss/pages/_chat.scss | 0 .../src => src}/scss/pages/_checkout.scss | 0 .../src => src}/scss/pages/_dashboard.scss | 0 .../src => src}/scss/pages/_ecommerce.scss | 0 .../scss/pages/_influencer-finder.scss | 0 .../scss/pages/_influencer-profile.scss | 0 .../src => src}/scss/pages/_influencer.scss | 0 .../src => src}/scss/pages/_login.scss | 0 .../scss/pages/_product-single.scss | 0 .../src => src}/scss/pages/_products.scss | 0 .../src => src}/scss/pages/_settings.scss | 0 .../src => src}/scss/pages/_timeline.scss | 0 .../src => src}/scss/pages/_users.scss | 0 .../scss/utilities/_animations.scss | 0 .../src => src}/scss/utilities/_helpers.scss | 0 .../scss/utilities/_scrollbar.scss | 0 {concept-modern/src => src}/test.html | 0 vite.config.js | 122 +- 626 files changed, 5230 insertions(+), 174471 deletions(-) delete mode 100644 assets/images/avatar-5.jpg delete mode 100644 assets/images/card-img-1.jpg delete mode 100644 assets/images/card-img-2.jpg delete mode 100644 assets/images/card-img-3.jpg delete mode 100644 assets/images/card-img.jpg delete mode 100644 assets/images/down-arrow.png delete mode 100644 assets/images/drag-indicator.png delete mode 100644 assets/images/error-img.png delete mode 100644 assets/images/loader.svg delete mode 100644 assets/images/logo.png delete mode 100644 assets/images/product-pic-2.jpg delete mode 100644 assets/images/product-pic-3.jpg delete mode 100644 assets/images/product-pic-4.jpg delete mode 100644 assets/images/product-pic.jpg delete mode 100644 assets/images/switch.png delete mode 100644 assets/libs/css/style-modern.css delete mode 100644 assets/libs/css/style.css delete mode 100644 assets/libs/js/dashboard-ecommerce.js delete mode 100644 assets/libs/js/dashboard-finance.js delete mode 100644 assets/libs/js/dashboard-influencer.js delete mode 100644 assets/libs/js/dashboard-sales.js delete mode 100644 assets/libs/js/gmaps.min.js delete mode 100644 assets/libs/js/google_map.js delete mode 100644 assets/libs/js/jvectormap.custom.js delete mode 100644 assets/libs/js/main-js.js delete mode 100644 assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.css delete mode 100644 assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.min.js delete mode 100644 assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.png delete mode 100644 assets/vendor/bootstrap-colorpicker/jquery-asColor/dist/jquery-asColor.min.js delete mode 100644 assets/vendor/bootstrap-colorpicker/jquery-asColorPicker/dist/jquery-asColorPicker.min.js delete mode 100644 assets/vendor/bootstrap-colorpicker/jquery-asGradient/dist/jquery-asGradient.js delete mode 100644 assets/vendor/bootstrap-select/css/bootstrap-select.css delete mode 100644 assets/vendor/bootstrap-select/js/bootstrap-select.js delete mode 100644 assets/vendor/bootstrap/css/bootstrap.min.css delete mode 100644 assets/vendor/bootstrap/js/bootstrap.bundle.js delete mode 100644 assets/vendor/charts/c3charts/C3chartjs.js delete mode 100644 assets/vendor/charts/c3charts/c3.css delete mode 100644 assets/vendor/charts/c3charts/c3.min.js delete mode 100644 assets/vendor/charts/c3charts/d3-5.4.0.min.js delete mode 100644 assets/vendor/charts/chartist-bundle/Chartistjs.js delete mode 100644 assets/vendor/charts/chartist-bundle/chartist-plugin-threshold.js delete mode 100644 assets/vendor/charts/chartist-bundle/chartist.css delete mode 100644 assets/vendor/charts/chartist-bundle/chartist.min.js delete mode 100644 assets/vendor/charts/charts-bundle/Chart.bundle.js delete mode 100644 assets/vendor/charts/charts-bundle/chartjs.js delete mode 100644 assets/vendor/charts/morris-bundle/Morrisjs.js delete mode 100644 assets/vendor/charts/morris-bundle/morris.css delete mode 100644 assets/vendor/charts/morris-bundle/morris.js delete mode 100644 assets/vendor/charts/morris-bundle/morrisjs.html delete mode 100644 assets/vendor/charts/morris-bundle/raphael.min.js delete mode 100644 assets/vendor/charts/sparkline/jquery.sparkline.js delete mode 100644 assets/vendor/charts/sparkline/spark-js.js delete mode 100644 assets/vendor/cropper/dist/cropper-int.js delete mode 100644 assets/vendor/cropper/dist/cropper.min.css delete mode 100644 assets/vendor/cropper/dist/cropper.min.js delete mode 100644 assets/vendor/custom-js/jquery.multi-select.html delete mode 100644 assets/vendor/datatables/css/buttons.bootstrap4.css delete mode 100644 assets/vendor/datatables/css/dataTables.bootstrap4.css delete mode 100644 assets/vendor/datatables/css/fixedHeader.bootstrap4.css delete mode 100644 assets/vendor/datatables/css/select.bootstrap4.css delete mode 100644 assets/vendor/datatables/js/buttons.bootstrap4.min.js delete mode 100644 assets/vendor/datatables/js/data-table.js delete mode 100644 assets/vendor/datatables/js/dataTables.bootstrap4.min.js delete mode 100644 assets/vendor/datepicker/datepicker.js delete mode 100644 assets/vendor/datepicker/moment.js delete mode 100644 assets/vendor/datepicker/tempusdominus-bootstrap-4.css delete mode 100644 assets/vendor/datepicker/tempusdominus-bootstrap-4.js delete mode 100644 assets/vendor/daterangepicker/daterangepicker.css delete mode 100644 assets/vendor/dropzone/dropzone.js delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-Black.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-BlackItalic.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-Bold.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-BoldItalic.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-Book.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-BookItalic.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-Medium.woff delete mode 100644 assets/vendor/fonts/circular-std/CircularStd-MediumItalic.woff delete mode 100644 assets/vendor/fonts/circular-std/style.css delete mode 100644 assets/vendor/fonts/flag-icon-css/flag-icon.min.css delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ad.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ae.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/af.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ag.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ai.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/al.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/am.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ao.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/aq.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ar.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/as.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/at.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/au.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/aw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ax.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/az.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ba.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bb.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bd.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/be.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bi.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bj.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bo.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bq.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/br.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bs.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/by.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/bz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ca.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cd.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ch.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ci.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ck.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/co.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cx.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cy.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/cz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/de.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/dj.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/dk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/dm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/do.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/dz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ec.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ee.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/eg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/eh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/er.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/es.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/et.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fi.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fj.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fo.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/fr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ga.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gb.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gd.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ge.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gi.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gp.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gq.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gs.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/gy.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/hk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/hm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/hn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/hr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ht.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/hu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/id.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ie.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/il.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/im.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/in.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/io.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/iq.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ir.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/is.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/it.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/je.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/jm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/jo.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/jp.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ke.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ki.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/km.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kp.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ky.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/kz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/la.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lb.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/li.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ls.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/lv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ly.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ma.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/md.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/me.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ml.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mo.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mp.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mq.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ms.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mx.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/my.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/mz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/na.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ne.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ng.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ni.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/no.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/np.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/nz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/om.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pa.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pe.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ph.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ps.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/pw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/py.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/qa.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/re.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ro.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/rs.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ru.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/rw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sa.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sb.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sd.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/se.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sh.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/si.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sj.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/so.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ss.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/st.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sx.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sy.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/sz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/td.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/th.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tj.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tk.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tl.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/to.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tr.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tv.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tw.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/tz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ua.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ug.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/um.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/us.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/uy.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/uz.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/va.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/vc.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ve.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/vg.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/vi.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/vn.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/vu.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/wf.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ws.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/ye.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/yt.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/za.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/zm.svg delete mode 100644 assets/vendor/fonts/flag-icon-css/flags/zw.svg delete mode 100644 assets/vendor/fonts/fontawesome/css/fontawesome-all.css delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400.eot delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400.html delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400.svg delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400.ttf delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400.woff delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-brands-400d41d.eot delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400.eot delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400.html delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400.svg delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400.ttf delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400.woff delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-regular-400d41d.eot delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900.eot delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900.html delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900.svg delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900.ttf delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900.woff delete mode 100644 assets/vendor/fonts/fontawesome/webfonts/fa-solid-900d41d.eot delete mode 100644 assets/vendor/fonts/material-design-iconic-font/css/materialdesignicons.min.css delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontd41d.eot delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontdc99.eot delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontdc99.html delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontdc99.svg delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontdc99.ttf delete mode 100644 assets/vendor/fonts/material-design-iconic-font/fonts/materialdesignicons-webfontdc99.woff delete mode 100644 assets/vendor/fonts/simple-line-icons/css/simple-line-icons.css delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Icons4c82.eot delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Icons4c82.html delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Icons4c82.svg delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Icons4c82.ttf delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Icons4c82.woff delete mode 100644 assets/vendor/fonts/simple-line-icons/fonts/Simple-Line-Iconsd41d.eot delete mode 100644 assets/vendor/fonts/themify-icons/fonts/themify.ttf delete mode 100644 assets/vendor/fonts/themify-icons/fonts/themify.woff delete mode 100644 assets/vendor/fonts/themify-icons/fonts/themify9f24.eot delete mode 100644 assets/vendor/fonts/themify-icons/fonts/themify9f24.svg delete mode 100644 assets/vendor/fonts/themify-icons/fonts/themifyd41d.eot delete mode 100644 assets/vendor/fonts/themify-icons/themify-icons.css delete mode 100644 assets/vendor/fonts/weather-icons/css/weather-icons.min.css delete mode 100644 assets/vendor/fonts/weather-icons/fonts/weathericons-regular-webfont.eot delete mode 100644 assets/vendor/full-calendar/css/fullcalendar.css delete mode 100644 assets/vendor/full-calendar/css/fullcalendar.print.css delete mode 100644 assets/vendor/full-calendar/js/calendar.js delete mode 100644 assets/vendor/full-calendar/js/fullcalendar.js delete mode 100644 assets/vendor/full-calendar/js/jquery-ui.min.js delete mode 100644 assets/vendor/full-calendar/js/moment.min.js delete mode 100644 assets/vendor/gauge/gauge.js delete mode 100644 assets/vendor/gauge/gauge.min.js delete mode 100644 assets/vendor/inputmask/css/inputmask.css delete mode 100644 assets/vendor/inputmask/js/jquery.inputmask.bundle.js delete mode 100644 assets/vendor/jquery/jquery-3.3.1.min.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-2.0.2.css delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-2.0.2.min.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-au-mill.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-in-mill.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-uk-mill-en.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-us-aea-en.js delete mode 100644 assets/vendor/jvectormap/jquery-jvectormap-world-mill-en.js delete mode 100644 assets/vendor/multi-select/css/multi-select.css delete mode 100644 assets/vendor/multi-select/js/jquery.multi-select.js delete mode 100644 assets/vendor/parsley/parsley.js delete mode 100644 assets/vendor/select2/css/select2.css delete mode 100644 assets/vendor/select2/js/select2.min.js delete mode 100644 assets/vendor/shortable-nestable/Sortable.min.js delete mode 100644 assets/vendor/shortable-nestable/jquery.nestable.js delete mode 100644 assets/vendor/shortable-nestable/sort-nest.js delete mode 100644 assets/vendor/slimscroll/jquery.slimscroll.js delete mode 100755 assets/vendor/summernote/css/font/summernote.eot delete mode 100755 assets/vendor/summernote/css/font/summernote.ttf delete mode 100755 assets/vendor/summernote/css/font/summernote.woff delete mode 100755 assets/vendor/summernote/css/font/summernote.woff2 delete mode 100755 assets/vendor/summernote/css/summernote-bs4.css delete mode 100755 assets/vendor/summernote/js/summernote-bs4.js delete mode 100644 assets/vendor/timeline/img/cd-icon-location.svg delete mode 100644 assets/vendor/timeline/img/cd-icon-movie.svg delete mode 100644 assets/vendor/timeline/img/cd-icon-picture.svg delete mode 100644 assets/vendor/timeline/js/main.js delete mode 100644 assets/vendor/vector-map/jqvmap.css delete mode 100644 concept-modern/.gitignore delete mode 100644 concept-modern/CHANGELOG.md delete mode 100644 concept-modern/DOCUMENTATION_PLAN.md delete mode 100644 concept-modern/DOCUMENTATION_PLAN_EXTENDED.md delete mode 100644 concept-modern/README.md delete mode 100644 concept-modern/VITE_GUIDE.md delete mode 100644 concept-modern/package-lock.json delete mode 100644 concept-modern/package.json delete mode 100644 concept-modern/src/assets/images/avatar-1.jpg delete mode 100644 concept-modern/src/assets/images/avatar-2.jpg delete mode 100644 concept-modern/src/assets/images/avatar-3.jpg delete mode 100644 concept-modern/src/assets/images/avatar-4.jpg delete mode 100644 concept-modern/src/assets/images/bitbucket.png delete mode 100644 concept-modern/src/assets/images/dribbble.png delete mode 100644 concept-modern/src/assets/images/dropbox.png delete mode 100644 concept-modern/src/assets/images/eco-product-img-1.png delete mode 100644 concept-modern/src/assets/images/eco-product-img-2.png delete mode 100644 concept-modern/src/assets/images/eco-product-img-3.png delete mode 100644 concept-modern/src/assets/images/eco-product-img-4.png delete mode 100644 concept-modern/src/assets/images/eco-slider-img-1.png delete mode 100644 concept-modern/src/assets/images/eco-slider-img-2.png delete mode 100644 concept-modern/src/assets/images/eco-slider-img-3.png delete mode 100644 concept-modern/src/assets/images/github.png delete mode 100644 concept-modern/src/assets/images/mail_chimp.png delete mode 100644 concept-modern/src/assets/images/slack.png delete mode 100644 concept-modern/src/scss/main.scss delete mode 100644 concept-modern/vite.config.js rename {concept-modern/docs => docs}/components/buttons.md (84%) rename {concept-modern/docs => docs}/components/cards.md (80%) rename {concept-modern/docs => docs}/components/charts.md (90%) rename {concept-modern/docs => docs}/components/forms.md (90%) rename {concept-modern/docs => docs}/components/overview.md (62%) rename {concept-modern/docs => docs}/components/tables.md (85%) rename {concept-modern/docs => docs}/customization/colors.md (100%) rename {concept-modern/docs => docs}/customization/overview.md (100%) rename {concept-modern/docs => docs}/customization/sass-variables.md (100%) rename {concept-modern/docs => docs}/customization/theming.md (100%) rename {concept-modern/docs => docs}/getting-started/build-tools.md (100%) rename {concept-modern/docs => docs}/getting-started/file-structure.md (100%) rename {concept-modern/docs => docs}/getting-started/installation.md (100%) rename {concept-modern/docs => docs}/getting-started/introduction.md (100%) rename {concept-modern/docs => docs}/getting-started/quick-start.md (100%) delete mode 100644 documentation/css/32px.png delete mode 100644 documentation/css/bootstrap.min.css delete mode 100644 documentation/css/style.css delete mode 100644 documentation/css/throbber.gif delete mode 100644 documentation/css/tree-viewer.css delete mode 100644 documentation/img/favicon.ico delete mode 100644 documentation/img/logo.png delete mode 100644 documentation/index.html delete mode 100644 documentation/js/bootstrap.min.js delete mode 100644 documentation/js/jquery-3.1.0.min.js delete mode 100644 documentation/js/jstree.active.js delete mode 100644 documentation/js/jstree.min.js delete mode 100644 pages/accordions.html delete mode 100644 pages/blank-page-header.html delete mode 100644 pages/bootstrap-select.html delete mode 100644 pages/calendar.html delete mode 100644 pages/cards.html delete mode 100644 pages/carousel.html delete mode 100644 pages/chart-c3.html delete mode 100644 pages/chart-chartist.html delete mode 100644 pages/chart-charts.html delete mode 100644 pages/chart-gauge.html delete mode 100644 pages/chart-morris.html delete mode 100644 pages/chart-sparkline.html delete mode 100644 pages/color-picker.html delete mode 100644 pages/cropped.html delete mode 100644 pages/cropper-image.html delete mode 100644 pages/data-tables.html delete mode 100644 pages/datepicker.html delete mode 100644 pages/form-elements.html delete mode 100644 pages/form-validation.html delete mode 100644 pages/general-bootstrap5.html delete mode 100644 pages/general-table.html delete mode 100644 pages/general.html delete mode 100644 pages/icon-flag.html delete mode 100644 pages/icon-fontawesome.html delete mode 100644 pages/icon-material.html delete mode 100644 pages/icon-simple-lineicon.html delete mode 100644 pages/icon-themify.html delete mode 100644 pages/icon-weather.html delete mode 100644 pages/index.html delete mode 100644 pages/invoice.html delete mode 100644 pages/listgroup.html delete mode 100644 pages/map-google.html delete mode 100644 pages/map-vector.html delete mode 100644 pages/media-object.html delete mode 100644 pages/message-chat.html delete mode 100644 pages/multiselect.html delete mode 100644 pages/pages-app.html delete mode 100644 pages/pricing.html delete mode 100644 pages/sortable-nestable-lists.html delete mode 100644 pages/tabs.html delete mode 100644 pages/timeline.html delete mode 100644 pages/typography.html delete mode 100644 pages/user-profile.html delete mode 100644 pages/widgets.html rename {concept-modern/scripts => scripts}/build-utils.js (100%) rename {concept-modern/scripts => scripts}/download-fonts.js (100%) rename {concept-modern/scripts => scripts}/migrate-bs4-to-bs5.js (100%) rename {assets => src/assets}/images/avatar-1.jpg (100%) rename {assets => src/assets}/images/avatar-2.jpg (100%) rename {assets => src/assets}/images/avatar-3.jpg (100%) rename {assets => src/assets}/images/avatar-4.jpg (100%) rename {assets => src/assets}/images/bitbucket.png (100%) rename {assets => src/assets}/images/dribbble.png (100%) rename {assets => src/assets}/images/dropbox.png (100%) rename {assets => src/assets}/images/eco-product-img-1.png (100%) rename {assets => src/assets}/images/eco-product-img-2.png (100%) rename {assets => src/assets}/images/eco-product-img-3.png (100%) rename {assets => src/assets}/images/eco-product-img-4.png (100%) rename {assets => src/assets}/images/eco-slider-img-1.png (100%) rename {assets => src/assets}/images/eco-slider-img-2.png (100%) rename {assets => src/assets}/images/eco-slider-img-3.png (100%) rename {assets => src/assets}/images/github.png (100%) rename {assets => src/assets}/images/mail_chimp.png (100%) rename {assets => src/assets}/images/slack.png (100%) rename {concept-modern/src => src}/config/navigation.js (100%) rename {concept-modern/src => src}/index.html (100%) rename {concept-modern/src => src}/js/app.js (100%) rename {concept-modern/src => src}/js/components/charts.js (100%) rename {concept-modern/src => src}/js/components/datatables.js (100%) rename {concept-modern/src => src}/js/components/form-validation.js (100%) rename {concept-modern/src => src}/js/components/popovers.js (100%) rename {concept-modern/src => src}/js/components/sidebar.js (100%) rename {concept-modern/src => src}/js/components/tooltips.js (100%) rename {concept-modern/src => src}/js/pages/calendar.js (100%) rename {concept-modern/src => src}/js/pages/chat.js (100%) rename {concept-modern/src => src}/js/pages/checkout.js (100%) rename {concept-modern/src => src}/js/pages/compose.js (100%) rename {concept-modern/src => src}/js/pages/data-tables.js (100%) rename {concept-modern/src => src}/js/pages/email-details.js (100%) rename {concept-modern/src => src}/js/pages/inbox.js (100%) rename {concept-modern/src => src}/js/pages/influencer-finder.js (100%) rename {concept-modern/src => src}/js/pages/influencer-profile.js (100%) rename {concept-modern/src => src}/js/pages/influencer.js (100%) rename {concept-modern/src => src}/js/pages/multiselect.js (100%) rename {concept-modern/src => src}/js/pages/product-single.js (100%) rename {concept-modern/src => src}/js/pages/products.js (100%) rename {concept-modern/src => src}/js/pages/settings.js (100%) rename {concept-modern/src => src}/js/pages/timeline.js (100%) rename {concept-modern/src => src}/js/pages/users.js (100%) rename {concept-modern/src => src}/pages/apps/influencer-finder.html (100%) rename {concept-modern/src => src}/pages/apps/influencer-profile.html (100%) rename {concept-modern/src => src}/pages/auth/forgot-password.html (100%) rename {concept-modern/src => src}/pages/auth/login.html (100%) rename {concept-modern/src => src}/pages/auth/signup.html (100%) rename {concept-modern/src => src}/pages/calendar.html (100%) rename {concept-modern/src => src}/pages/charts/index.html (100%) rename {concept-modern/src => src}/pages/chat.html (100%) rename {concept-modern/src => src}/pages/dashboards/finance.html (100%) rename {concept-modern/src => src}/pages/dashboards/influencer-v2.html (100%) rename {concept-modern/src => src}/pages/dashboards/influencer.html (100%) rename {concept-modern/src => src}/pages/dashboards/sales.html (100%) rename {concept-modern/src => src}/pages/ecommerce/checkout.html (100%) rename {concept-modern/src => src}/pages/ecommerce/product-single.html (100%) rename {concept-modern/src => src}/pages/ecommerce/products.html (100%) rename {concept-modern/src => src}/pages/email/compose.html (100%) rename {concept-modern/src => src}/pages/email/details.html (100%) rename {concept-modern/src => src}/pages/email/inbox.html (100%) rename {concept-modern/src => src}/pages/form-elements.html (100%) rename {concept-modern/src => src}/pages/form-validation.html (100%) rename {concept-modern/src => src}/pages/misc/404.html (100%) rename {concept-modern/src => src}/pages/misc/blank-page.html (100%) rename {concept-modern/src => src}/pages/multiselect.html (100%) rename {concept-modern/src => src}/pages/settings.html (100%) rename {concept-modern/src => src}/pages/tables/data-tables.html (100%) rename {concept-modern/src => src}/pages/tables/general-tables.html (100%) rename {concept-modern/src => src}/pages/timeline.html (100%) rename {concept-modern/src => src}/pages/ui-elements/cards.html (100%) rename {concept-modern/src => src}/pages/ui-elements/general.html (100%) rename {concept-modern/src => src}/pages/ui-elements/typography.html (100%) rename {concept-modern/src => src}/pages/users.html (100%) rename {concept-modern/src => src}/partials/layouts/base.hbs (100%) rename {concept-modern/src => src}/partials/layouts/footer.hbs (100%) rename {concept-modern/src => src}/partials/layouts/head.hbs (100%) rename {concept-modern/src => src}/partials/layouts/header.hbs (100%) rename {concept-modern/src => src}/partials/layouts/main.hbs (100%) rename {concept-modern/src => src}/partials/layouts/scripts.hbs (100%) rename {concept-modern/src => src}/partials/layouts/sidebar.hbs (100%) rename {concept-modern/src => src}/scss/_variables.scss (100%) rename {concept-modern/src => src}/scss/components/_badges.scss (100%) rename {concept-modern/src => src}/scss/components/_buttons.scss (100%) rename {concept-modern/src => src}/scss/components/_cards.scss (100%) rename {concept-modern/src => src}/scss/components/_charts.scss (100%) rename {concept-modern/src => src}/scss/components/_datatables.scss (100%) rename {concept-modern/src => src}/scss/components/_forms.scss (100%) rename {concept-modern/src => src}/scss/components/_multiselect.scss (100%) rename {concept-modern/src => src}/scss/components/_notifications.scss (100%) rename {concept-modern/src => src}/scss/components/_tables.scss (100%) rename {concept-modern/src => src}/scss/layouts/_footer.scss (100%) rename {concept-modern/src => src}/scss/layouts/_header.scss (100%) rename {concept-modern/src => src}/scss/layouts/_layout.scss (100%) rename {concept-modern/src => src}/scss/layouts/_sidebar.scss (100%) rename {concept-modern/src => src}/scss/pages/_calendar.scss (100%) rename {concept-modern/src => src}/scss/pages/_chat.scss (100%) rename {concept-modern/src => src}/scss/pages/_checkout.scss (100%) rename {concept-modern/src => src}/scss/pages/_dashboard.scss (100%) rename {concept-modern/src => src}/scss/pages/_ecommerce.scss (100%) rename {concept-modern/src => src}/scss/pages/_influencer-finder.scss (100%) rename {concept-modern/src => src}/scss/pages/_influencer-profile.scss (100%) rename {concept-modern/src => src}/scss/pages/_influencer.scss (100%) rename {concept-modern/src => src}/scss/pages/_login.scss (100%) rename {concept-modern/src => src}/scss/pages/_product-single.scss (100%) rename {concept-modern/src => src}/scss/pages/_products.scss (100%) rename {concept-modern/src => src}/scss/pages/_settings.scss (100%) rename {concept-modern/src => src}/scss/pages/_timeline.scss (100%) rename {concept-modern/src => src}/scss/pages/_users.scss (100%) rename {concept-modern/src => src}/scss/utilities/_animations.scss (100%) rename {concept-modern/src => src}/scss/utilities/_helpers.scss (100%) rename {concept-modern/src => src}/scss/utilities/_scrollbar.scss (100%) rename {concept-modern/src => src}/test.html (100%) diff --git a/.gitignore b/.gitignore index 6090dcc..3943243 100644 --- a/.gitignore +++ b/.gitignore @@ -1,43 +1,49 @@ -# OS Files -.DS_Store -Thumbs.db - -# Development/Migration Files -MIGRATION_STATUS.md -MODERNIZATION_PLAN.md -SIMPLIFIED_APPROACH.md -CLAUDE.md -TODO.md -*.log - -# Old Template Files (to be removed after full migration) -/pages/ -/assets/ -/documentation/ -/package.json -/package-lock.json -/vite.config.js -/src/scss/main.scss -concept-bootstrap-5-admin-dashboard.png - -# Keep only the modern version -!/concept-modern/ - -# Node modules +# Dependencies node_modules/ +.pnp +.pnp.js -# Build files +# Build output dist/ build/ -# IDE files -.vscode/ +# Development +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +# Logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +*.log + +# Editor directories .idea/ +.vscode/ *.swp *.swo +*~ + +# OS files +Thumbs.db +.DS_Store + +# Vite +vite.config.js.timestamp-* +vite.config.ts.timestamp-* + +# Archive & Development Docs +archive/ +DEVELOPMENT_STATUS.md +DOCUMENTATION_PLAN*.md +VITE_GUIDE.md # Temporary files *.tmp *.temp -.cache/ -concept-modern/DEVELOPMENT_STATUS.md +.cache/ \ No newline at end of file diff --git a/README.md b/README.md index 31e6b01..b615a92 100644 --- a/README.md +++ b/README.md @@ -1,211 +1,217 @@ -# Concept - Modern Bootstrap 5 Admin Dashboard Template +# Concept - Bootstrap 5 Admin Dashboard -**Concept** is a cutting-edge, responsive Bootstrap 5 admin dashboard template that combines elegant design with powerful functionality. Built with the latest web technologies including Bootstrap 5.3.7, Vite, and modern JavaScript, this template provides everything you need to create stunning admin interfaces, analytics dashboards, and web applications. +A modern, responsive admin dashboard template built with Bootstrap 5, featuring a clean design and comprehensive functionality for web applications. -## 🚀 Built with Latest Technologies +## Overview -### Screenshot +Concept is a modern admin template built from the ground up with Bootstrap 5.3.7, Vite, and ES6 modules. This jQuery-free dashboard provides a solid foundation for building admin panels, analytics dashboards, and management systems. -![Concept Bootstrap 5 Admin Dashboard](concept-bootstrap-5-admin-dashboard.png) +## Features -### Demo Site: [[Live Preview]](https://colorlib.com/polygon/concept/index.html) +### Core Technologies +- **Bootstrap 5.3.7** - Latest Bootstrap framework with modern components +- **Vite 7.0.6** - Next-generation frontend tooling with lightning-fast HMR support +- **Handlebars** - Template engine with reusable partials +- **SCSS** - Advanced styling with variables and mixins +- **ES6 Modules** - Modern JavaScript architecture +- **jQuery-free** - Pure vanilla JavaScript implementation -## ✨ Key Features +### Dashboard Pages +- **E-commerce Dashboard** - Main dashboard with revenue cards, charts, and recent orders +- **Finance Dashboard** - Financial metrics, transaction charts, and portfolio overview +- **Sales Dashboard** - Sales funnel, team performance, and revenue analytics +- **Influencer Dashboard** - Social media metrics, engagement tracking, and campaign performance -- **Bootstrap 5.3.7**: Latest stable version with all new components and utilities -- **Vite Build System**: Lightning-fast HMR (Hot Module Replacement) for instant development feedback -- **Pure JavaScript**: No jQuery dependency - modern vanilla JS for optimal performance -- **SCSS Architecture**: Organized, maintainable styles with variables and mixins -- **Handlebars Templating**: Reusable components and layouts for rapid development -- **Mobile-First Design**: Fully responsive across all devices and screen sizes -- **Modern UI Components**: Contemporary design with smooth animations and transitions -- **Dark Mode Ready**: Structured for easy dark theme implementation +### UI Components +- **Cards** - Various card layouts with images, colors, borders, and lists +- **Typography** - Complete typography showcase with Bootstrap 5 utilities +- **Forms** - Form elements, validation, and multiselect components +- **Charts** - Chart.js integration with line, bar, pie, and doughnut charts +- **Tables** - Basic tables and DataTables integration with sorting/filtering -## 📦 What's Included +### Applications +- **Calendar** - Full-featured calendar with FullCalendar integration +- **User Management** - User list with DataTables, filters, and bulk actions +- **Timeline** - Activity feed with filters and real-time updates +- **Settings** - Comprehensive settings page with multiple sections -### Multiple Dashboard Variants -- **E-commerce Dashboard** - Track sales, orders, and customer metrics -- **Finance Dashboard** - Monitor financial KPIs and transactions -- **Sales Dashboard** - Analyze sales performance and trends -- **Influencer Dashboard** - Social media analytics and engagement metrics +### Additional Pages +- **404 Error Page** - Modern error page with helpful navigation +- **Blank Page Template** - Starting point for custom pages -### Rich UI Components -- Modern Cards with hover effects -- Bootstrap 5 Buttons with custom styles -- Interactive Progress Bars & Spinners -- Tooltips, Popovers & Modals -- Advanced Forms with validation -- Responsive Tables with sorting -- Custom Badges & Alerts - -### Built-in Applications -- **Real-time Chat Interface** - WhatsApp-style messaging UI -- **Calendar Application** - Event management system -- **Email/Inbox** - Complete mail interface -- **User Management** - User lists and profiles -- **Activity Timeline** - Track system events -- **Settings Panel** - Configuration interface - -### Data Visualization -- Chart.js for modern charts -- C3 & D3 for advanced visualizations -- Morris Charts for simple graphs -- Sparkline for inline charts -- Real-time data updates - -## 🛠️ Technology Stack - -### Core -- **Bootstrap 5.3.7** - Latest CSS framework -- **Vite 7.0** - Next-gen frontend tooling -- **Handlebars** - Powerful templating -- **SCSS** - Advanced stylesheets -- **ES6+ JavaScript** - Modern JS features - -### Included Libraries -- FontAwesome 7 Icons -- Chart.js 4.5 -- DataTables 2.3 -- FullCalendar 6 -- Tom Select -- SortableJS -- And 20+ more... - -## 🚀 Quick Start +## Installation ### Prerequisites -- Node.js 16+ and npm - -### Installation +- Node.js 16.x or higher +- npm 8.x or higher -1. Clone the repository -```bash -git clone https://github.com/yourusername/concept-dashboard.git -cd concept-dashboard -``` +### Setup Instructions -2. Navigate to the project +1. Clone or download the repository: ```bash -cd concept-modern +git clone https://github.com/yourusername/concept.git +cd concept ``` -3. Install dependencies +2. Install dependencies: ```bash npm install ``` -4. Start development server +3. Start the development server: ```bash npm run dev ``` -5. Build for production +4. Build for production: ```bash npm run build ``` -## 📁 Project Structure +5. Preview production build: +```bash +npm run preview +``` + +## Project Structure ``` -concept-modern/ +concept/ ├── src/ -│ ├── assets/ # Images and static files +│ ├── assets/ # Static assets (images, fonts) │ ├── js/ # JavaScript modules -│ │ ├── app.js # Main application file -│ │ ├── components/ # Reusable JS components +│ │ ├── components/ # Reusable components │ │ └── pages/ # Page-specific scripts -│ ├── scss/ # SCSS stylesheets -│ │ ├── main.scss # Main stylesheet +│ ├── pages/ # HTML pages +│ │ ├── dashboards/ # Dashboard pages +│ │ ├── ui-elements/ # UI component pages +│ │ └── misc/ # Miscellaneous pages +│ ├── partials/ # Handlebars partials +│ │ └── layouts/ # Layout components +│ ├── scss/ # SCSS styles │ │ ├── components/ # Component styles +│ │ ├── layouts/ # Layout styles │ │ └── pages/ # Page-specific styles -│ ├── pages/ # HTML pages -│ ├── partials/ # Reusable Handlebars partials │ └── index.html # Main entry point ├── dist/ # Production build output -├── vite.config.js # Vite configuration -└── package.json # Project dependencies +├── docs/ # Documentation +├── scripts/ # Build and utility scripts +├── package.json # Project dependencies +└── vite.config.js # Vite configuration ``` -## 🎨 Discover Premium Admin Templates +## Key Dependencies + +### Core +- `bootstrap@5.3.7` - UI framework +- `@fortawesome/fontawesome-free@7.0.0` - Icon library +- `vite@7.0.6` - Build tool +- `sass@1.89.2` - CSS preprocessor + +### JavaScript Libraries +- `chart.js@4.5.0` - Charts and graphs +- `datatables.net-bs5@2.2.3` - Advanced tables +- `@fullcalendar/core@6.1.15` - Calendar functionality +- `tom-select@2.4.1` - Enhanced select boxes -### [Colorlib](https://colorlib.com) - Premium Quality Templates & Resources +### Build Tools +- `vite-plugin-handlebars@2.0.0` - Handlebars support +- `@vitejs/plugin-legacy@7.1.0` - Legacy browser support -Colorlib is one of the largest and most trusted template resources, offering an extensive collection of free and premium templates. They have amazing curated collections specifically for admin dashboards: +## Browser Support -- 📊 **[Free Bootstrap Admin Dashboard Templates](https://colorlib.com/wp/free-bootstrap-admin-dashboard-templates/)** - 40+ carefully selected free admin templates -- 💼 **[Bootstrap 5 Admin Templates](https://colorlib.com/wp/bootstrap-5-admin-dashboard/)** - Modern templates built with latest Bootstrap -- 🎯 **[React Admin Templates](https://colorlib.com/wp/react-admin-dashboard-templates/)** - For React-based applications -- 📱 **[Responsive Admin Templates](https://colorlib.com/wp/responsive-admin-dashboard-templates/)** - Mobile-first admin panels -- ⚡ **[Free HTML5 Admin Templates](https://colorlib.com/wp/free-html5-admin-dashboard-templates/)** - Clean, modern designs +- Chrome (latest) +- Firefox (latest) +- Safari (latest) +- Edge (latest) +- Chrome Mobile (latest) +- Safari Mobile (latest) -**Why Choose Colorlib:** -- ✅ Trusted by millions of developers worldwide -- ✅ High-quality, production-ready templates -- ✅ Regular updates and new releases -- ✅ Excellent documentation and support -- ✅ SEO-optimized and performance-focused +## Development Guidelines -Visit [Colorlib.com](https://colorlib.com) to explore their amazing collection! +### Adding a New Page -### [DashboardPack](https://dashboardpack.com) - Premium Dashboard Templates +1. Create the HTML file in `src/pages/` +2. Add the page to `vite.config.js` in the `rollupOptions.input` section +3. Create corresponding JavaScript in `src/js/pages/` +4. Create SCSS file in `src/scss/pages/` and import in `main.scss` +5. Update sidebar navigation in `src/partials/layouts/sidebar.hbs` -DashboardPack specializes in high-quality, production-ready admin dashboard templates with a focus on modern design and exceptional developer experience: +### Component Structure -- 🎨 **Stunning Designs** - Carefully crafted UI/UX for the best user experience -- 🔧 **Developer Friendly** - Clean code structure with detailed documentation -- 📊 **Rich Components** - Advanced charts, tables, and data visualization tools -- 🌓 **Dark Mode Included** - Built-in light/dark theme switching -- 📱 **Fully Responsive** - Pixel-perfect on all devices -- 🚀 **Regular Updates** - Stay current with latest design trends -- 💎 **Premium Quality** - Professional-grade templates for serious projects +JavaScript modules follow this pattern: +```javascript +export function initializeComponent() { + // Component logic +} -Explore premium dashboards at [DashboardPack.com](https://dashboardpack.com)! +// Auto-initialize on DOM ready +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', initializeComponent); +} else { + initializeComponent(); +} +``` -## 🎯 Perfect For +### SCSS Organization -- SaaS Applications -- E-commerce Platforms -- Analytics Dashboards -- CRM Systems -- Project Management Tools -- Financial Applications -- Social Media Dashboards -- IoT Monitoring Systems -- Healthcare Management -- Educational Platforms +- Use Bootstrap variables for consistency +- Follow BEM naming convention where applicable +- Keep component styles modular +- Use mixins for repeated patterns -## 💻 Browser Support +## Performance Optimization -- Chrome (latest) -- Firefox (latest) -- Safari (latest) -- Edge (latest) -- Opera (latest) +- Vite's code splitting for optimal loading +- Lazy loading for heavy components +- Optimized images and assets +- Minimal CSS with PurgeCSS in production +- ES6 modules for tree shaking + +## Deployment + +The production build can be deployed to any static hosting service: + +1. Build the project: `npm run build` +2. Deploy the `dist/` folder to your hosting service +3. Configure your server to serve `index.html` for all routes + +### Recommended Hosting +- Netlify +- Vercel +- GitHub Pages +- AWS S3 + CloudFront +- Any static file server + +## 📚 Documentation + +Comprehensive documentation is available in the `docs/` directory: + +- **[Getting Started](docs/getting-started/introduction.md)** - Introduction and overview +- **[Quick Start Guide](docs/getting-started/quick-start.md)** - Get running in 5 minutes +- **[Installation Guide](docs/getting-started/installation.md)** - Detailed setup instructions +- **[Customization](docs/customization/)** - Theme and component customization +- **[Components](docs/components/)** - UI component documentation +- **[Deployment](docs/deployment/)** - Production deployment guides -## 📚 Documentation & Support +## Contributing -- Comprehensive documentation included -- Code examples and snippets -- Component library reference -- Integration guides -- Regular updates and bug fixes +1. Fork the repository +2. Create your feature branch (`git checkout -b feature/amazing-feature`) +3. Commit your changes (`git commit -m 'Add some amazing feature'`) +4. Push to the branch (`git push origin feature/amazing-feature`) +5. Open a Pull Request -## 👥 Authors +## License -- [Colorlib](https://colorlib.com) - Original design and development -- Open Source Community - Continuous improvements and updates +This project is licensed under the MIT License - see the LICENSE file for details. -## 📄 License +## Support -Concept is licensed under The MIT License (MIT). You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the final products. But you always need to state that Colorlib is the original author of this template. +For support, please open an issue in the GitHub repository or contact support@yourcompany.com. ---- +## Credits -

- Made with ❤️ by Colorlib -
- Discover more amazing templates: -
- Free Admin Templates • - Premium Dashboards -

\ No newline at end of file +- Original Concept template design +- Bootstrap team for the excellent framework +- All open-source library contributors \ No newline at end of file diff --git a/assets/images/avatar-5.jpg b/assets/images/avatar-5.jpg deleted file mode 100644 index c539043ef9a6b939bdb3158744005d38fc7a4944..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1029 zcmex=N z4?hnVHy<}AC$AtcAHRTrpa2(-kg$+|Fpw?q{{RCw2SWox10$m#!~Y`;l0cK0fi@rk zRyKAHCZLqM00Scn6Eg!7BMUQBnvsc_1t={jB&;aHA*y6(WE}Ya76S)Jzdge%Br^yx z89P57S1DR|^ql0~=*k1vuYW9j_0?G7j&@q#(T;uI!LIL)oblTiUgLdR;<@3SiTQrqYMuEcv$@|Ue-8g#^3vSBSvK;^^W1LVUajyA*Zw&#%kc~UGwBtPv(xLJS+>oWcxiP%mWcjH2`_HOVBBx(%+kMOJ+a~)qc_aOGzkfS@ zZ+f=;ap^tF`BO??@8FsCF-XljF)3T)(g__+^~XNX_uuiKyu2cN*8YsO;mVWWd5fMF z&a+~@`@FAY&bGppxnB(p{8dbDPt8vC_|KrFDfjhrWccNY?_7$ucC9%2cHinf`g=Z2 zyLrqyFWz2EUwubX@y;`;Q4>}<`=+hce%!^je@Xe#mn-h){mZ()^|xZqv!Cs~+tyjG z+)@-`?fdq!+Ke~z_WlmdkdEwTelqK<`=Kk-A2&u_DL?g6@N7}-)=-Y8PkWn=Yd`%^ zt#5Goa?WG3TNX8b^VRG&FFBL^bQ0UP`XbZxiD{lHE+u-|NuU4he(Bf8z`!{3=&Cnc z?E@ze+jq^~c>Sbw_3iatmHC%$7VS!VxvD7b=O%Uj zD^IedS7+^7@@}u6rlz}W*^yVl+b%5+sLI+aW?%oNJU3KvT|v0QbBl8KzZTDLOMlSo zOuO}YqQA`iUY=l`3l~=06io@Qig@f9I@io%|Lch>*L>LO`<{1+caP0qZ`VW1e8~+Ts4P_Mkt1zOG%Ic;?~8 z{WF<^UaN2Usa>wVUvTlosMRk6qvn3=*zaoHwxZ~qd`5rzlRm!l_ih)jI(0L5*0pkx zABJD2-d!V_(06#QXqx{0Hl@9<=FNS1w^V&`=ImvSo1T4`87IGTtK*#8OU@Z*=f28( m#F?|r&F-*T$o!{k?oI5Jj_Llm`PBB`z8?r>3ncma|2F|BRkP&) diff --git a/assets/images/card-img-1.jpg b/assets/images/card-img-1.jpg deleted file mode 100644 index 675a7b1fd8d819e47f0ac39863425ee040ace562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17689 zcmeIZXH=T$_byB(y~h~TSmMMIBepS$#zHcQVvQOV#7@Q3h6cem~ zXe?;NmSV55pdz-|EB4+F^FRL&@A>e~TJL+#m$TMyvliUXdf)-}eedhu``XuYJa9Y) zxTdG2s|7f5;soHI2jG|m&;XqL=+m#$vA zaPi8;^XD&fUA}Vl+BL3g7cO1rzJ86HGro5G1#t1)3BOaHPMqKZ9M=Ja{<;2t8{mK1 z`EzH_oH~8tMZ9SCpbr^&z$8tcm4KxZuv(d#(#L; z0P@`Xi}$AJ{l_L|USSCz`4D!_-ad&*?{Z2?yLu-T6fsz0cG1^w-D2XI#Tsz?SAT#1 zc{~U>$N6V~hk)My{@(w*{Ko_T@xcGx9ysyFe|J1E(;)xpoNdNvZf2`&6&A>NXPS?( za^VWVMQ)L$#1f2^n0{KKDY*);wki+;qy1>?e)sZx+d>r_W7B*H5P#2M55Zn~=bd z@x>!x|K!$rVX?hbD|C44Y|o&mqkyQ9iArRm+>{DpFhJ-2oAEOQ+dYVD2avT~nlhMD zz9So$JF6Ozu@&ZdHKMmJrFHn0#qa$R5J-1wl!RP{beE`Y%#z=|pc^BC>Z@)!Rgb=| z`V=h}Pp)c@z%0;W&_H7F%$K7m1@2A`)ad4(viQ?2Im5$ z6J^;63pHI0bsL0DrZ3tULEII2e-@#pU((ucy|r}fQ};yQG`UPI{M()0z9xd9PQQQV z0bCbyq!m)-sapqMbB38MJg^W*t0Wr_A$3MSexevZls^Xex`Xb=7Cm9k((sbl_7%OB zZFu>d>(FfN`yYcEgMYjqoF6Mg%R&r-$}5`shn5nuA=bLnGteVFBTP{31In03759TW zu)@u()|H?sNFT#I!yX5m@0W%tI9bg0PUx>BHlQ%e>m_&RxPFXvDu zC6#whe{T!`>g-qC%241hg4eD#0y;Pv7kRUw|Y16mh-0}rCR=TQq-uwuJg&JB3n z8m&MRW|$7tOS~#awn*t+HzybYJj{_lk#!iG#}JWvLp3L#j|qPn=)4Ilrt|6= zo7AraE6(PT8EcrdIvC7s{dSH_ddi>%@Sf6o#xxKv;1i-idS+KRPL~8e{5v3arg(a& z)T=XxjyD<15y|&1r#n?7%8{JHxh$61Lv|th-E9jxUM`-}N8iE4HHtHD@Xk=F!U6DH#tPxoY3ljzlBeU+10yE}a^WFRLq_)jHwj4fMH| zS*+TGESZQ}8ZM24%|}m@RTj1j(4lipM$i99CYn7uWt3%#*8Tx;Nr%2B*pXAW2()y>WhgBn0f(QEeA< zr?}#sAKh0(L^_%fuE9^Zl)#1XkN_{OXu_AqcI5h74dopQo0e%sT`cOmZaAY?r&8(e zdj=-0W)dn|d;LITGWfA`iS7I(4ln#6=x4DNd?Zd?;9y(C+X7iEl~R~w?2Ec(q~{%@ z-j_y})&`WQmQmZ6C9n(4r=_hHi}fX5@n`6fH#FfejTe7Zr{^rl>S5`cfRyp_I&Ll zV1Ti?+X8yAxYh_Ro-!(_5H3lTM%PLwRR6O`Y|>&TNnOUqkYm8b1L){ZQ0E^N#V+%n z_;;}p+wLfKV*OZR5ie1%oncw6Y%oYE-uP68r_%S)nbph%QObwUkA&bdn);REQA^tL zOGpzU@lc|V6RuYy_Je5lW|oT)yH-L%bf%HG4O}y(#4aihq0-9MG*S0dsI%3tlf{4s z$rf{-gXe{T$pZx&&t8XAHWIxpY$Kzm7Rt4Vi;?~YYCXX{@ZxA!wUb5d-W9!Uww7yb zv?2?qd#fgf51+$^YtBcF=f!;f?Llj$-qZRAIrDJ)ggH%m9Uihm z8rcqzlt5==t*!CEH%UL>ZnF<2gdo;I`&I%X$ZmUsfS-jXpMxu*2Jelbrs({@vWR6Z z@}6b5VO2CaGC#?^Dqhnzn$#9mF;O~WT)ZUNI;#+TXLe5@{p2=uHQq_CBUT}R_8@61#`l#u;MrrV`Z z+%DNH8Q9e1oU>?)n-0pvSmFzs@Z?*VeJ6d`8 z)DJjHMeMJ!4#z@2u%&7(3%94r_rDxI8bXB9kjt$e+porIUs%)?$T?D*iiOm}!dUKq zZGzznNGjFAn5K*X9f%$S=63}(7X_tfYi#oAg)Ui*f3WjhvEJKK*}-w}=wu$9cul0$ z2-S>M1F9_4L}R7%6jGj_F<$eC2wD;qn@m2m&_>7kE%d>#a~q8pdxprmnB2kpe~kZf z3~(XVFiVNY0K_BD-1vfI;(hL9a|e{l8xQ1Z6fw7I|Dg%;Ix>G6dhqz=^F!TW-O!R$ z-qrJmnVaIP;(Hwq$U2FwH@zu!DGMqIFRx_`A{Ke#$-{r!_wCIJT{e&*C*I8T>#%2C zG;T+tKp^4I|F%m!kZParjAw!55c}EUWurRviGkz_{0(EU`p`B=M55}uy0&jjcRkQh z^n+TfLIn{omiO98p*i#-cTzX2>1-MDPS;wG@2J36&)SLqbr`! zTA4N@2ZtkprU&zqAQF!vB_|n}tklY{Q}3ZBh^IBzMuYt2!qQ*9Dl9_-4%hrP?(t}z zJdj!-xxEAPg68l*u$U3SMQE%64D5h!i%4Ff=|d_|5kv=-Lq?~?vd>y?reNi^F=*+A z%c8^c28p6P-}uws{KNTs6!A`pOgA%?D5#K+!&Uc1QXU5TYxvwW!>pQZbXtc&>8iI! zTQ+3!^`b5DA|kGluQvpfqT0`wEcCs%mS>XecD5oUL5pxyE1`y3J^`aDRij~bE{Fxy8liK!{`P~dB%}Vgtgv6X8T~T1pg+6XgLE~Zl-6!1%iM< z;jBK&f^x+)SWUHjE}1ZSbF+)y6b#ct5 z6}dneMM8se{9>jOT4v-*$U6Z75+y;8?|Pw^zFQWfcsli;rQgjjYH1&!Rpre|FoVsM zDk4XP^`N%Vb$16I=vU`3Lum}A9PFCe55(iWK%C3Kn|Sjfyh;IT0|qluSv4j~eV|u+ z);-_vXQBpJaX4LGKN+#;yjZW@ig@$@WxOh{#(8lCK{1(oP-P)TBC!{D1y~Lh;0|Ua zGcD>y%w$^Pn(UFmj1gFBMc&WFo!TBhR_1o6lpzK33NS01XsR}e=9LiT9oY3n9sW8jPYY{uRA=i ziZi+ry;Sa%{-+=!nk`JV+|KcN$7S4*3L*Y8MOGq^JDS7K;QP%=T4aBbwMw?mf|y4X zJK9X;jUDBm`H3dn%`=s4r&^{+_edqD+Mt43h93CVyh$BN%5z4jP!|{hV!GS|Z|nrl zae{?!yOd%&Q@>H%ldCj{jn9?K$IR~{3crvltfvbpIPLmnEft7En^fUx9Ir=LwQxBC z{)1K_YkUf!mfzvQMmi5V1Lq2%mCGO@il zT_G>sEPlbmZ6rP3HZJe4rMLsq0!AE)bkLo@+XMhSA*k^@C|iro4C}D%u-N@BiD*Tb4o}o)<7O;`i1Zr4Xj}lfiif zUb`ZoWYb3*rZ<1ML5Sbvrp;LKL3_tknpWi}A7TP|4 zeEltNa`Y$M$4@u4_O*9|Hh*DlP0G6DpKd%Yl;OVU_QxH8xV^}^KRl?*USQHL<6?zf zsmVm2non4GrKy$6?aXi`mXlVU{maLcxZ#z`ugQ3t&Im&((k0S!|GN-#9I>G4%=O;Mn4P=6X@_{ zm-y7l{0`5+1)=eup)j`8ZS#@6=X2xi5klE|4Ge0CC*nQ;G;FMPgc%5ho!XSK+Pm(M zM!DC1E2%2JdrFEDPWW7pYqaL;g`!2cx|G$RJ)dL1P#j1;p;8~CB5f(^R!7P)YfiEi zb!Z=*>FJ?4`W@xI$oekbdHy}jocGEOB=xq=45>^TLzW#L6f2k>~*KG`Yp-$IyHsMyrqs1s-qr3AR`?>TgWGglsz!)Pch zDzaE&we#Kjkmw)A&O^|jN_y{2EX`$wZ^FQ)z7$FGxh=mUGo|vi7-@j0HZPxpxiD8i zeLU_)JP!S);VGEgDHHUbx#dyB1NWFDl>ccx@vd-T`ni(!Vkxm}pg3Kn7GW|(I^xps%u1FW525SSO~YV8KvVBc70R?%Z9z;< zEj7pBz~|v%1Fp-)z8>6jGOJTwLRXMmhl91cShacGftq(-BA}doDeIW&esFN7?}?;M z;ZiHT7lM5YuZ<@V_&rN!OBeKPR`{=pW(ON~6|4&WC01=1S(cU4QXAv4B=>c>Tu)yd zue;XLvbW1LFfh9GR%NYaThy{4R~gPphwY5@jUj^EeI^Gy0V3$BSLwpT5M!W4TRN}f z9NpU{UbIg6+<-EdpXJ3Z{Y2yvcB|##U#7tqbdpcmRd*s(m5Vq9+VTxAZ%u`&>J%Su z-u)2A64;!q+2@7Zi3PZ_fmtyhRS1t(=KJl;H0m(7H_BsPc~At*Mg6Zu|MGW{J5|;$ zvU|gMyn1KBy$lOTw|Uy=*&;oi#!N zxdWD{5%{Cl1jie*rI!+FutF6qm6{p-V#rIoSVMfp<-ij%K{{)1;&)!f*9+ns@p%i2@F?y%>3^-M0RZ`i z{1svEzLDGa4D?zQ?#l4h*Z11gLvEmDyqkf7To9mjWK;Fs;o`keVPz6g5&u}RTyrVL zqi4~Q5N*L1n^%~$NW(syyW^Kdsn$t`)0&F2Q<~5IRx*5+1uYBotC&es(#j z_T$^)Ujcx#YU5|&vx-PvkKHL)n;RUg_MxnfQ?8gbMGu%q&CCVr&!eqtG@mA0NMP3u zL^H(V5s(fWMoTpuZZOQmg!Mj{!J!;hD9@q^0zhfJchJZr&imk<a^5o z+XCDzglA!*{F@L+;zwd`S5ao9Jz2Tjfu52)Y4q~mupE|w-`j5DCzm)vVE|fxEA;n^N)W)u0LNH`hPSpE zaq~4dU)t}6%GR>x;UTekcH|%|*VBr#;PI=P`KsGFj2$SeGOXlanqf^He!jpT({v0# zg4k5A09xxzaTcmo-fHV=;!u$wVN@L0*YkAGGEaECpB9|bPR4^k-Y^(!HWxkC8X2W1 zVZt;BreHj!jvoMQ#PHd|wqm zrMjNR+WL&pB*mMwjC?Y!Q1Y=P9`Z_e9M=<7MGw}2D)&*kGid|gj0f5uE8o=aiq zJ3^;rq_1jIE7O&BH0RU#sL~9JP2)d%pd$nj(g9I*h zu4~7D59g?L9mZ>|$aU7b!?I||S`LnPxmNM1T18yQP(tZadK%9Hn z?U(6R3xt$i#Cec73f#e23^jjy=5C5=8;(zWOe?ro@e14d@tFf%i5y- z%ZBWKPj+-ee;Ad$5;<&iKcd{6`mDO|^y%uT#7m9a4!;8c!P^(ZPv?XY=e+YH65|sk zjEs#Hx)SOIO#L7owvmyMWOCN~3DGDLZC}Z;{8qC0%23F1JX0XSlIB&Y&45tGC}VZD zR1cE%h|%Z?-(7S;ie-dJcTWQ$Y0_(vFu4xrT#Q_Ot<>^rR#`h&H|q|8 zHPW0-jB+d>q1;w*<$EU03#?RM_d{bUDnJPE9+HDaKd2d$+}?00LYXZsS>kf#4xY9T zBK5F?DN)91--!Ejg2fu(^#3 zt0z+qSRk^!=|E{|!7(7_T_2owURN7pvZKMBh5QKA5!t3|)3qz$9dIx5E*by2xEm|{ z-kDb8Y4v>Es1>_#40xpZ<<#Voc8(V647WwOh3k49Wv68M7+?`i0txHFFI&HSa8p1u zWVZ5S(BNc{al1{IsrSR2`%Az4%$%B5T5|mEcECIxmVwUaQtmGJfbtk|CEU}*7g8lWCo(;YBd<{e}Rg=l}KSSu#iI~sy2~!hAIk?qd&&q;P1qsQxK++owjxP3r7{Kx|4s35%(@|M_jFWY!1#{hh>k2UxI@o^LlOcMmq=uy^Z4Ku$6d z(Wzd@p*0JGMyCFuHOb_{Xi}-a&Y1gah@Om2@4^(hxLyD+&12;l>|;nm-q1_6^D0x? z@!$tl2NKuZio51fC=}><-t62&*g3udVziQ|g#bTZ)H14zi({Oy{~hq#sEZTr0AWX) z4NojY#gvP8Y&Nl}IrcSQuOF$$A;|u@-klQM6tq%xGxE3ZsNNI?Ad_#a#1 zQWrpu`J@B~oFARTtjS_heBgVqW5DNy1tJm00=h0{=gVyDhTyb>jC8?+dwX-FnlD}k<_N)tQOrn>c}|NhZ#+V6gV%NzlJU}`uy z-?`CgM5y&5goX6&)m>+mW)~RVp2G$U#dVQ`Dw!SUGX+A-U)XwFeOK0g48Uqx|9+yy zpTgQyLESnA97N=Ds5ia~&dk4KHm^1Hw@z`Uks)c|{1)8tX$Uu(R*De`+P(4W&eGy1 z)&v#0dBDRgUzxvf4ItrxvK^IrabtalUcP7EcHeeS43_zq(0GFK%eL41!u6V7Qr3}q zq+;T3VoLliegw261G_{0rQ~vR4rXq!VebYIU72ApuT_Z9-oNE^*s$?qB1-#>l3^8f= zfm74wF~Fe%*Zys!__<}UvO=R3_@iyCBZDKYmbmD}{X z-r>%;T8xw_<$XF(851ay>2nvb>t3#UQM|Z#-G}4|2A;YOhqY}oi|QIUw8oZ*NZ}97 zIHz9Rp$+3w%u}}Dl2tW2D>rI^{{6}5W4>d+9i<`&Il9LA$=E9$0gCFJYe-8b;LxtKnO#k5>2teF*mhn4*Ks z5Ea3`+<|21JgJ5ikVxPChP-aRt^9ohBa)KRIQE;k$21$bkMnpHdR7uW_ebv`rZI=< zfQ(*knYFofKqigCwI-o3xRDmv0L$$sLL>^T5eS6Db8{}g#`FDwx_5s91-TINlYiMcSC)b{DUPSgB7agV|(hV=Hr zr5I;Aq;>Ae&R~pS>jI)-8dQkyn(_M=JOKdC%MG62`r&~5yfn(NS191P?kBuC^xnxi0mSdJ= z>}Vl3QE*;oIh?#QIxu+3(Ed-BTlvNMZ@3sqD{$U@?vDT z!q|2gPUdcWiV65Z@`bkMCEdHTDK585MRMbhu4eR2&W@g8*CZ}{I3G9Y`FIxGS8o|L z3%Bc?+chAQpobTF6kX!1o`WU03%nNJ^|zddhv*DO$Q{Id0Nh{Z1G_-KKlt!uiYbI< z*S?mzc?>WXxDd|F(44mwb~mkf*s&H}kr49y-9{THfw{rhyjDg$FFCsIXjc@{g1@Gh zL(tPpb#XMvxHv43G#FEi_bcwB=C@&5g!bB9GqKzQ&9)hv@16n-Z}p-|Lo@&IR@;nd zRwQS|u7+_?rY#T?v!qE)hT@M4w} ze|28kicY$P6fpQ!qlgNGB|A(0+lp}+QsrX!0japPugGo21SO}heVfFHqlhYRj1UTf z{jSxfAt{bf^$Ls6!avYwl3WaU%m$W2{Fi7);R43bTAAf5{Qb4D)wHk(-o91V^bnA(I~b<$nJ-X&YQ^t zuV8EwQ{0A<4sSJ_Ci|7POwCtux~HJcsUSZ%41S*=l{E6HDv_ByL5t6-7zAZfvQuj@ zqJq)*T%0TmC|rTl?FFL0mTch17y+)c(_rKX0a# z@|uP|niV&LXd5?swvh!~;`l37B$Imb{3^_Q<6d@ul)R9^9L}bG-GC@u7^F*VJjE{D&mYwQTZ=XV(2zDGu#hvOUsq`RQR(H8f=#hmwGENC0j!$<*I` zY@O!^h;L18`|GkrwWgJUO>33n-N_AN4%DEhw-_Xv-ak#G81Mlk8c~knT_cLe00{>a z$=Cq-NOWt(e3*M6W_cO8`|evW_FfnKyTva{($|&D^oM*7d4*!D|=tCgKu& ztt8Rv9hSCiP?cdSYF?|)SHEX)Mx*`tr%GPNBI}kpBd&as_Z%PIt;#L$rN}6A_BaD@-fhq*$gwlhG6*AFThF&CB-PWqt*bb? z@8~gm-znTYBMEJI(GIPGw@9#Jin!HuWi28KfAo4Co~{B+sKY!@yZ_uaaIV(e$!TJz zZ6vE|Z_Z@6m#C;u!~q3sXlCWPN|S-~VRz-$bes8AE3l(a@G^;%mpas$jNsJf6~PQR z-00nq5FuFq;F0&6N9+0#eXKO{K_C&~olEv&&)f8WEtZ`hWwO)Zb2K1l9o>8F@&Kam z{o?|>)G=TqF=Jiw{crh}wfEbk-@8#C zuKKlxLu!DmP=vmSykJe;sL$4IjOV^kCEq8OXQd{j{W3X`A7p;CcK3a(UC6oK2P>SP zcuqc)ZL;gRqcq(AZJNEcGBsmU`-oC0&lOsT;E1uFJSHh01J<9nc>QZwTt}92FMVjL z^<>qO8v@+_pWOS2F>s}&yv+G8^Xst%@IZw{MMdL^>z4CasF`N_fjSUAav25MWI4Xs z`TucOd08 zSl`5g0vnbQ^vb?;ajkpQyymcVH5X8?{rmEj`@&bvTP%y{-uab`qS~7y&T-cR%X4j# z8WRn=qq*!{@Y)56auCIDjKLIfZk(a1^^eI*TfoMUBQ+=!cJ7bgKk4#mJm*2fRM>YP| zQwQFg1nzLbX(9D--t$fK(>f#}PrVDd6~1UY68ZxsebFPJeOEjUz-1qmKP{u(pU;xc zPQ8;&nB7BJaQSKX^bj9$Ck^CBQ8v;QN?Ok)fyQMcwszpXpJ}HJI-szPfT50Y#qD*2 zwv5OcBK6hUS{k7-e4<>iQ2evD2AXDCLna6CW{RTRYZ&mAf69i)bXZ)lCOUi_=>w`% ztk{10R3Q*;a50^3Vgg1a)D-x+b9!18t&@>a+bdr`^vnJVe(;7*tMzjH>*V5XvySw3 zkX##TS65{3@;0RmhQhrrJsHk&JM$2luj*+Zop@13nuo=>EFAG7@} z;dz_OK{czPEzDq>o-Y%Ya&@(31Trwj4QXA$KB!JF%@v)-Oh49#QH~Ts3@k# zDq999Gh*2iICqB_@8cS)lg=xr3c52}yc^OS#kO|$)b<{hU_>`11e5Y4e`U?Zi*umg&@9xWX<056c}uekmA@g2i--pL0_&4L5zF z;z8A?B1l0(8>hFfQ4;8D^|M5^{C@9EA}lJw)Pj^TIiq4`kuuw zO(pW`rL__Pn#zVR2mvB0ow6-asWD107OZ)mMqOxm9oBuQ)J(&u(8lg#@985kDM{(9 z?H8KqNX2NvCA2X-c+VA2Cd$Ni$pF8XN}SF4F3%5xYwAiZ5bAU(WTlPlgqIptW4%o7 zzM2ETi5(_E65UZG)gch{h7h)`0lqX>4s(b#qa+RD*)fxOfB)Y3TjfZ)6Czev^cDRx z6E&HY&ZVkiS$%8N%6d4Bv92wGL;mS5E;DHG4(`(6W;N)WL2Rj9ZdZst!@3lH$3lgpc);)`k5)p{s# zd2w!54|aumGCXjbwvqAfdwe&`<7~yLbeTUHc4Y#ugmDhuong^;N9TTg*)Xdi?FSDh zc{?4+Eim}U4S^CRmD;&Ihqv)6RVMj}CnIL?q5}60$5YQqh8gb)5{=NdoyL?C;QdGb zDZA*m523%cz6M9vKiEzk_sg`fu0IBd)BTIZSJy0*_ZvuWWXvk#)@F2_N{w3)Hb^x| z5^3B+VG7IEqQx13;V?~U=Zp07?mv$KPbB4O4kn`og0z&DGM{A>{9!XKcp?tMvv(-r z8a<_2{cTjk_XCM$JtsoW%n#q#yr$QS5szCktB8lr=H-#23EgU|h!5bQhw~u@(dVX; zgyzgVmnd$PA+QEwO@I!^R)lbLswVb_p--GJEgv3 z80#Ga49hqKWqdaNfSpEtiBnOwNoZI6^iWE&rD#Y(nA+l1Sq&~`xJNmW$a#KJe7%Pt za-|5E(=yf6gq!^Csb9#bdNl94D{b6rU{@~xJioNq8zb4(LJ{p!^-EOiMw)n)`%FRA z-4k81*AcYq&A9^y?mN)F?4nkXvTx7t>5i!*4f2A^?oCmQr)2|&@vK;Lx6cgRsjx7H z?q#5~%Qly0ojv!g*2g`-3Vq?7+QqK4QHgj%HaaAtOh>5p?^bR+?>?$qX*nhEXm&7eB7D+hTdN}s65&-zA?lK29q|VBW54&VrEb~Z|ZF|H~hr1u# z@X{3sX4r6NYZ@tgB?5+o(hqb7S5Z+L50xtJCCAU0(3JQ|8Lfgoa!lbT0pP8!+KU6)LKtC6c4)FATd4_TL%DG4nPP=FSj?@bEW-oL6i3HO7Lh0|83MbU3cQ_J zrp^zu8^ZJV4LjHoGZ!40-L4#&=7v3V-PKL?U%?jeFFg;1htKb1_l~KaggceB74Ji5PuW?x%ZX)>^i+Dhd}sNA%~t%aWHCk6?4Vzsd&Yp@qu9TqCfWyWSt7p}Y~*cH)D{G^oUTxU z!B(Lfn$I%?>CKtGgTd~)E?zOG6^!2++W=d|6}Z2??O;r!O^Kp59lad2i7)DiaWVg$ zzEBC&MREaHElxO?%Y<&ODV+i3mZV;)q*`mCa;mLGNgc~^mi*3?IX9TA`SZE{zCL&I zj4L^98KLIL3ZdW9KKW&>TE8XlMVo9FxMAT%QsUiA!#E>)&@e}Ir%Fj7-u}ZM^MfLM zbgT+ozbuW&Mu4)IU}tm&EGFB4%jH zhIx~Q60uV^d2R-0H5ci(+mPoTAFUC{$xw$_y=zuF-oM@!A?Rz2QcAI<0H#;Mb zTDfz*lpqyjO(=!I6i0sv)<4w27?F-_UQE{Aa~T|2({^nQK`r(f^b_R|IaH}xyYFnA z&AjLC?&+{jtog!fenc2(!L1{GgXX=Kvy?26(}6m?IG%1=e_o)T_o4;jYJg%={bgw5 zmBQ3eDSD=#mIpnHn|!Ao%iT$YaQhziST!sv?@!D4XE(`L(rk*SG(_}`5c;4-X~Rug zGXrAV3)irGW|L!C^5#eVqcpo@R|*}a{L>&P59P2`Z5|(o7#1+n4O)8AJd=%)Zx^Qh z=p_fsgKjmIMGVqn5~CHnU!vFaWYxfAq&3mt;RkLXJ@r8DK2S2g_y{d z_wNap9W@ZCrmI~X=?(KrwHyj-*S+@j<4SR+2jL*fy8SSi^dx2jBPeXK)89Aj_>u4( zfyr&m2cOGN9(G0(b(!16EmIb^2xaUzq*5Bs{mEpldTzn(YGV$w>f==yCK5o>x-T>~ zU2-0WH{Y~m4vhlSw)CI0Z{%4{9s};DQhweeF80Z_LE%V!2Pf9QW!Zoei92Cqa`Q`M zULoB*O0f3Ij?2#--a6#@NjA|nXglMa)Bf7>x~bbiXKPnS$1#AUlrymxxA|Id5Aj(j5q#oj5Oj9H){0DB9nJZhZ?wB z;XBZ{>*3T_V1SN?A4_yA0zJHAr-fH{!d;bUq2T?g4Xf8|`mfs@8Kmy!qquy&pje zRC8cbWnLai+_5FQS;oF@E!q2yo&4A|_Klk3ZU7jKz5lN;Cc4P-i4HvILb zy723|H>gMnaG+e_Kwh+6wdG>VCmV7OeRdkT3Th%x(rgmeO~Hufr1Aj1QG2||{*y!h z#qIGxrUH>zx0K>UEa)~KksM@f`*p;bL1^Wx4o8P_vwBx#vHv%PZPC8@dG8nw6L-$#5I^hL{L3eijk7L{78 zeCW}N5x8WWSo~d12%xRHuI)dH^+A-d#2E)`3mH>^$AC^N3_i6;nU8aS$c;Hcc_L#2 zEl?~`NG_Ns=cdto&8(Wro9Wt}5=WO?HxuXBC(z&TrS(j~ z;W-aqK`}lTx|_u=&j~o7nk5u)quO{pS;QUBrYssoY}=POl;J2m8mR0FD~i22SrSEb zEz+xB!&pa0+q+pTc6|3>DA<%Hfl>sLp@;(u+kRNL$Gii6yC}D|YVXo|$l~(2U5^5> zd?3HPjJTNiba>p}hP}K`J3Kq{W94+cj5SF}>!hwGV>K~|ah>)s2HU!KrRYyzn@Q10!RT=xhNk&i{9M1KtOKm2}_{M@mqSM_DQwvnj<7Z$-EzKjML ztL}M`J<1LPEaN!hkt@*vm4=#GYB}<^v(I?ZQ#Lv2n{WH1H@axc@Hcp;MK)eec~$}0 zSN^5eM(r4|cHclhli$j%D+F9JM3Ei1y;hF>C>2S#JMy__E$z6U&>nHE2Wf2=o}BHJuy1Moz`t zT^t&}(5`TFJ43MP*WsXYQ$+rCP-t@rI4@>V8x&+D-SNwPQgB*)kNNx2S|9c+kFI-# zvyf>aW;&HOb>N^@w9#`A4x5?8Zeq_78sxcR4(#~%HSXW*TDnRQm=d~FaYp-U7K_%- nKl6CmnoHs%Z!Kl7FuQ2v_kYF7|D61f2ma%M|4Td|e9ZhGX5(Az diff --git a/assets/images/card-img-2.jpg b/assets/images/card-img-2.jpg deleted file mode 100644 index 675a7b1fd8d819e47f0ac39863425ee040ace562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17689 zcmeIZXH=T$_byB(y~h~TSmMMIBepS$#zHcQVvQOV#7@Q3h6cem~ zXe?;NmSV55pdz-|EB4+F^FRL&@A>e~TJL+#m$TMyvliUXdf)-}eedhu``XuYJa9Y) zxTdG2s|7f5;soHI2jG|m&;XqL=+m#$vA zaPi8;^XD&fUA}Vl+BL3g7cO1rzJ86HGro5G1#t1)3BOaHPMqKZ9M=Ja{<;2t8{mK1 z`EzH_oH~8tMZ9SCpbr^&z$8tcm4KxZuv(d#(#L; z0P@`Xi}$AJ{l_L|USSCz`4D!_-ad&*?{Z2?yLu-T6fsz0cG1^w-D2XI#Tsz?SAT#1 zc{~U>$N6V~hk)My{@(w*{Ko_T@xcGx9ysyFe|J1E(;)xpoNdNvZf2`&6&A>NXPS?( za^VWVMQ)L$#1f2^n0{KKDY*);wki+;qy1>?e)sZx+d>r_W7B*H5P#2M55Zn~=bd z@x>!x|K!$rVX?hbD|C44Y|o&mqkyQ9iArRm+>{DpFhJ-2oAEOQ+dYVD2avT~nlhMD zz9So$JF6Ozu@&ZdHKMmJrFHn0#qa$R5J-1wl!RP{beE`Y%#z=|pc^BC>Z@)!Rgb=| z`V=h}Pp)c@z%0;W&_H7F%$K7m1@2A`)ad4(viQ?2Im5$ z6J^;63pHI0bsL0DrZ3tULEII2e-@#pU((ucy|r}fQ};yQG`UPI{M()0z9xd9PQQQV z0bCbyq!m)-sapqMbB38MJg^W*t0Wr_A$3MSexevZls^Xex`Xb=7Cm9k((sbl_7%OB zZFu>d>(FfN`yYcEgMYjqoF6Mg%R&r-$}5`shn5nuA=bLnGteVFBTP{31In03759TW zu)@u()|H?sNFT#I!yX5m@0W%tI9bg0PUx>BHlQ%e>m_&RxPFXvDu zC6#whe{T!`>g-qC%241hg4eD#0y;Pv7kRUw|Y16mh-0}rCR=TQq-uwuJg&JB3n z8m&MRW|$7tOS~#awn*t+HzybYJj{_lk#!iG#}JWvLp3L#j|qPn=)4Ilrt|6= zo7AraE6(PT8EcrdIvC7s{dSH_ddi>%@Sf6o#xxKv;1i-idS+KRPL~8e{5v3arg(a& z)T=XxjyD<15y|&1r#n?7%8{JHxh$61Lv|th-E9jxUM`-}N8iE4HHtHD@Xk=F!U6DH#tPxoY3ljzlBeU+10yE}a^WFRLq_)jHwj4fMH| zS*+TGESZQ}8ZM24%|}m@RTj1j(4lipM$i99CYn7uWt3%#*8Tx;Nr%2B*pXAW2()y>WhgBn0f(QEeA< zr?}#sAKh0(L^_%fuE9^Zl)#1XkN_{OXu_AqcI5h74dopQo0e%sT`cOmZaAY?r&8(e zdj=-0W)dn|d;LITGWfA`iS7I(4ln#6=x4DNd?Zd?;9y(C+X7iEl~R~w?2Ec(q~{%@ z-j_y})&`WQmQmZ6C9n(4r=_hHi}fX5@n`6fH#FfejTe7Zr{^rl>S5`cfRyp_I&Ll zV1Ti?+X8yAxYh_Ro-!(_5H3lTM%PLwRR6O`Y|>&TNnOUqkYm8b1L){ZQ0E^N#V+%n z_;;}p+wLfKV*OZR5ie1%oncw6Y%oYE-uP68r_%S)nbph%QObwUkA&bdn);REQA^tL zOGpzU@lc|V6RuYy_Je5lW|oT)yH-L%bf%HG4O}y(#4aihq0-9MG*S0dsI%3tlf{4s z$rf{-gXe{T$pZx&&t8XAHWIxpY$Kzm7Rt4Vi;?~YYCXX{@ZxA!wUb5d-W9!Uww7yb zv?2?qd#fgf51+$^YtBcF=f!;f?Llj$-qZRAIrDJ)ggH%m9Uihm z8rcqzlt5==t*!CEH%UL>ZnF<2gdo;I`&I%X$ZmUsfS-jXpMxu*2Jelbrs({@vWR6Z z@}6b5VO2CaGC#?^Dqhnzn$#9mF;O~WT)ZUNI;#+TXLe5@{p2=uHQq_CBUT}R_8@61#`l#u;MrrV`Z z+%DNH8Q9e1oU>?)n-0pvSmFzs@Z?*VeJ6d`8 z)DJjHMeMJ!4#z@2u%&7(3%94r_rDxI8bXB9kjt$e+porIUs%)?$T?D*iiOm}!dUKq zZGzznNGjFAn5K*X9f%$S=63}(7X_tfYi#oAg)Ui*f3WjhvEJKK*}-w}=wu$9cul0$ z2-S>M1F9_4L}R7%6jGj_F<$eC2wD;qn@m2m&_>7kE%d>#a~q8pdxprmnB2kpe~kZf z3~(XVFiVNY0K_BD-1vfI;(hL9a|e{l8xQ1Z6fw7I|Dg%;Ix>G6dhqz=^F!TW-O!R$ z-qrJmnVaIP;(Hwq$U2FwH@zu!DGMqIFRx_`A{Ke#$-{r!_wCIJT{e&*C*I8T>#%2C zG;T+tKp^4I|F%m!kZParjAw!55c}EUWurRviGkz_{0(EU`p`B=M55}uy0&jjcRkQh z^n+TfLIn{omiO98p*i#-cTzX2>1-MDPS;wG@2J36&)SLqbr`! zTA4N@2ZtkprU&zqAQF!vB_|n}tklY{Q}3ZBh^IBzMuYt2!qQ*9Dl9_-4%hrP?(t}z zJdj!-xxEAPg68l*u$U3SMQE%64D5h!i%4Ff=|d_|5kv=-Lq?~?vd>y?reNi^F=*+A z%c8^c28p6P-}uws{KNTs6!A`pOgA%?D5#K+!&Uc1QXU5TYxvwW!>pQZbXtc&>8iI! zTQ+3!^`b5DA|kGluQvpfqT0`wEcCs%mS>XecD5oUL5pxyE1`y3J^`aDRij~bE{Fxy8liK!{`P~dB%}Vgtgv6X8T~T1pg+6XgLE~Zl-6!1%iM< z;jBK&f^x+)SWUHjE}1ZSbF+)y6b#ct5 z6}dneMM8se{9>jOT4v-*$U6Z75+y;8?|Pw^zFQWfcsli;rQgjjYH1&!Rpre|FoVsM zDk4XP^`N%Vb$16I=vU`3Lum}A9PFCe55(iWK%C3Kn|Sjfyh;IT0|qluSv4j~eV|u+ z);-_vXQBpJaX4LGKN+#;yjZW@ig@$@WxOh{#(8lCK{1(oP-P)TBC!{D1y~Lh;0|Ua zGcD>y%w$^Pn(UFmj1gFBMc&WFo!TBhR_1o6lpzK33NS01XsR}e=9LiT9oY3n9sW8jPYY{uRA=i ziZi+ry;Sa%{-+=!nk`JV+|KcN$7S4*3L*Y8MOGq^JDS7K;QP%=T4aBbwMw?mf|y4X zJK9X;jUDBm`H3dn%`=s4r&^{+_edqD+Mt43h93CVyh$BN%5z4jP!|{hV!GS|Z|nrl zae{?!yOd%&Q@>H%ldCj{jn9?K$IR~{3crvltfvbpIPLmnEft7En^fUx9Ir=LwQxBC z{)1K_YkUf!mfzvQMmi5V1Lq2%mCGO@il zT_G>sEPlbmZ6rP3HZJe4rMLsq0!AE)bkLo@+XMhSA*k^@C|iro4C}D%u-N@BiD*Tb4o}o)<7O;`i1Zr4Xj}lfiif zUb`ZoWYb3*rZ<1ML5Sbvrp;LKL3_tknpWi}A7TP|4 zeEltNa`Y$M$4@u4_O*9|Hh*DlP0G6DpKd%Yl;OVU_QxH8xV^}^KRl?*USQHL<6?zf zsmVm2non4GrKy$6?aXi`mXlVU{maLcxZ#z`ugQ3t&Im&((k0S!|GN-#9I>G4%=O;Mn4P=6X@_{ zm-y7l{0`5+1)=eup)j`8ZS#@6=X2xi5klE|4Ge0CC*nQ;G;FMPgc%5ho!XSK+Pm(M zM!DC1E2%2JdrFEDPWW7pYqaL;g`!2cx|G$RJ)dL1P#j1;p;8~CB5f(^R!7P)YfiEi zb!Z=*>FJ?4`W@xI$oekbdHy}jocGEOB=xq=45>^TLzW#L6f2k>~*KG`Yp-$IyHsMyrqs1s-qr3AR`?>TgWGglsz!)Pch zDzaE&we#Kjkmw)A&O^|jN_y{2EX`$wZ^FQ)z7$FGxh=mUGo|vi7-@j0HZPxpxiD8i zeLU_)JP!S);VGEgDHHUbx#dyB1NWFDl>ccx@vd-T`ni(!Vkxm}pg3Kn7GW|(I^xps%u1FW525SSO~YV8KvVBc70R?%Z9z;< zEj7pBz~|v%1Fp-)z8>6jGOJTwLRXMmhl91cShacGftq(-BA}doDeIW&esFN7?}?;M z;ZiHT7lM5YuZ<@V_&rN!OBeKPR`{=pW(ON~6|4&WC01=1S(cU4QXAv4B=>c>Tu)yd zue;XLvbW1LFfh9GR%NYaThy{4R~gPphwY5@jUj^EeI^Gy0V3$BSLwpT5M!W4TRN}f z9NpU{UbIg6+<-EdpXJ3Z{Y2yvcB|##U#7tqbdpcmRd*s(m5Vq9+VTxAZ%u`&>J%Su z-u)2A64;!q+2@7Zi3PZ_fmtyhRS1t(=KJl;H0m(7H_BsPc~At*Mg6Zu|MGW{J5|;$ zvU|gMyn1KBy$lOTw|Uy=*&;oi#!N zxdWD{5%{Cl1jie*rI!+FutF6qm6{p-V#rIoSVMfp<-ij%K{{)1;&)!f*9+ns@p%i2@F?y%>3^-M0RZ`i z{1svEzLDGa4D?zQ?#l4h*Z11gLvEmDyqkf7To9mjWK;Fs;o`keVPz6g5&u}RTyrVL zqi4~Q5N*L1n^%~$NW(syyW^Kdsn$t`)0&F2Q<~5IRx*5+1uYBotC&es(#j z_T$^)Ujcx#YU5|&vx-PvkKHL)n;RUg_MxnfQ?8gbMGu%q&CCVr&!eqtG@mA0NMP3u zL^H(V5s(fWMoTpuZZOQmg!Mj{!J!;hD9@q^0zhfJchJZr&imk<a^5o z+XCDzglA!*{F@L+;zwd`S5ao9Jz2Tjfu52)Y4q~mupE|w-`j5DCzm)vVE|fxEA;n^N)W)u0LNH`hPSpE zaq~4dU)t}6%GR>x;UTekcH|%|*VBr#;PI=P`KsGFj2$SeGOXlanqf^He!jpT({v0# zg4k5A09xxzaTcmo-fHV=;!u$wVN@L0*YkAGGEaECpB9|bPR4^k-Y^(!HWxkC8X2W1 zVZt;BreHj!jvoMQ#PHd|wqm zrMjNR+WL&pB*mMwjC?Y!Q1Y=P9`Z_e9M=<7MGw}2D)&*kGid|gj0f5uE8o=aiq zJ3^;rq_1jIE7O&BH0RU#sL~9JP2)d%pd$nj(g9I*h zu4~7D59g?L9mZ>|$aU7b!?I||S`LnPxmNM1T18yQP(tZadK%9Hn z?U(6R3xt$i#Cec73f#e23^jjy=5C5=8;(zWOe?ro@e14d@tFf%i5y- z%ZBWKPj+-ee;Ad$5;<&iKcd{6`mDO|^y%uT#7m9a4!;8c!P^(ZPv?XY=e+YH65|sk zjEs#Hx)SOIO#L7owvmyMWOCN~3DGDLZC}Z;{8qC0%23F1JX0XSlIB&Y&45tGC}VZD zR1cE%h|%Z?-(7S;ie-dJcTWQ$Y0_(vFu4xrT#Q_Ot<>^rR#`h&H|q|8 zHPW0-jB+d>q1;w*<$EU03#?RM_d{bUDnJPE9+HDaKd2d$+}?00LYXZsS>kf#4xY9T zBK5F?DN)91--!Ejg2fu(^#3 zt0z+qSRk^!=|E{|!7(7_T_2owURN7pvZKMBh5QKA5!t3|)3qz$9dIx5E*by2xEm|{ z-kDb8Y4v>Es1>_#40xpZ<<#Voc8(V647WwOh3k49Wv68M7+?`i0txHFFI&HSa8p1u zWVZ5S(BNc{al1{IsrSR2`%Az4%$%B5T5|mEcECIxmVwUaQtmGJfbtk|CEU}*7g8lWCo(;YBd<{e}Rg=l}KSSu#iI~sy2~!hAIk?qd&&q;P1qsQxK++owjxP3r7{Kx|4s35%(@|M_jFWY!1#{hh>k2UxI@o^LlOcMmq=uy^Z4Ku$6d z(Wzd@p*0JGMyCFuHOb_{Xi}-a&Y1gah@Om2@4^(hxLyD+&12;l>|;nm-q1_6^D0x? z@!$tl2NKuZio51fC=}><-t62&*g3udVziQ|g#bTZ)H14zi({Oy{~hq#sEZTr0AWX) z4NojY#gvP8Y&Nl}IrcSQuOF$$A;|u@-klQM6tq%xGxE3ZsNNI?Ad_#a#1 zQWrpu`J@B~oFARTtjS_heBgVqW5DNy1tJm00=h0{=gVyDhTyb>jC8?+dwX-FnlD}k<_N)tQOrn>c}|NhZ#+V6gV%NzlJU}`uy z-?`CgM5y&5goX6&)m>+mW)~RVp2G$U#dVQ`Dw!SUGX+A-U)XwFeOK0g48Uqx|9+yy zpTgQyLESnA97N=Ds5ia~&dk4KHm^1Hw@z`Uks)c|{1)8tX$Uu(R*De`+P(4W&eGy1 z)&v#0dBDRgUzxvf4ItrxvK^IrabtalUcP7EcHeeS43_zq(0GFK%eL41!u6V7Qr3}q zq+;T3VoLliegw261G_{0rQ~vR4rXq!VebYIU72ApuT_Z9-oNE^*s$?qB1-#>l3^8f= zfm74wF~Fe%*Zys!__<}UvO=R3_@iyCBZDKYmbmD}{X z-r>%;T8xw_<$XF(851ay>2nvb>t3#UQM|Z#-G}4|2A;YOhqY}oi|QIUw8oZ*NZ}97 zIHz9Rp$+3w%u}}Dl2tW2D>rI^{{6}5W4>d+9i<`&Il9LA$=E9$0gCFJYe-8b;LxtKnO#k5>2teF*mhn4*Ks z5Ea3`+<|21JgJ5ikVxPChP-aRt^9ohBa)KRIQE;k$21$bkMnpHdR7uW_ebv`rZI=< zfQ(*knYFofKqigCwI-o3xRDmv0L$$sLL>^T5eS6Db8{}g#`FDwx_5s91-TINlYiMcSC)b{DUPSgB7agV|(hV=Hr zr5I;Aq;>Ae&R~pS>jI)-8dQkyn(_M=JOKdC%MG62`r&~5yfn(NS191P?kBuC^xnxi0mSdJ= z>}Vl3QE*;oIh?#QIxu+3(Ed-BTlvNMZ@3sqD{$U@?vDT z!q|2gPUdcWiV65Z@`bkMCEdHTDK585MRMbhu4eR2&W@g8*CZ}{I3G9Y`FIxGS8o|L z3%Bc?+chAQpobTF6kX!1o`WU03%nNJ^|zddhv*DO$Q{Id0Nh{Z1G_-KKlt!uiYbI< z*S?mzc?>WXxDd|F(44mwb~mkf*s&H}kr49y-9{THfw{rhyjDg$FFCsIXjc@{g1@Gh zL(tPpb#XMvxHv43G#FEi_bcwB=C@&5g!bB9GqKzQ&9)hv@16n-Z}p-|Lo@&IR@;nd zRwQS|u7+_?rY#T?v!qE)hT@M4w} ze|28kicY$P6fpQ!qlgNGB|A(0+lp}+QsrX!0japPugGo21SO}heVfFHqlhYRj1UTf z{jSxfAt{bf^$Ls6!avYwl3WaU%m$W2{Fi7);R43bTAAf5{Qb4D)wHk(-o91V^bnA(I~b<$nJ-X&YQ^t zuV8EwQ{0A<4sSJ_Ci|7POwCtux~HJcsUSZ%41S*=l{E6HDv_ByL5t6-7zAZfvQuj@ zqJq)*T%0TmC|rTl?FFL0mTch17y+)c(_rKX0a# z@|uP|niV&LXd5?swvh!~;`l37B$Imb{3^_Q<6d@ul)R9^9L}bG-GC@u7^F*VJjE{D&mYwQTZ=XV(2zDGu#hvOUsq`RQR(H8f=#hmwGENC0j!$<*I` zY@O!^h;L18`|GkrwWgJUO>33n-N_AN4%DEhw-_Xv-ak#G81Mlk8c~knT_cLe00{>a z$=Cq-NOWt(e3*M6W_cO8`|evW_FfnKyTva{($|&D^oM*7d4*!D|=tCgKu& ztt8Rv9hSCiP?cdSYF?|)SHEX)Mx*`tr%GPNBI}kpBd&as_Z%PIt;#L$rN}6A_BaD@-fhq*$gwlhG6*AFThF&CB-PWqt*bb? z@8~gm-znTYBMEJI(GIPGw@9#Jin!HuWi28KfAo4Co~{B+sKY!@yZ_uaaIV(e$!TJz zZ6vE|Z_Z@6m#C;u!~q3sXlCWPN|S-~VRz-$bes8AE3l(a@G^;%mpas$jNsJf6~PQR z-00nq5FuFq;F0&6N9+0#eXKO{K_C&~olEv&&)f8WEtZ`hWwO)Zb2K1l9o>8F@&Kam z{o?|>)G=TqF=Jiw{crh}wfEbk-@8#C zuKKlxLu!DmP=vmSykJe;sL$4IjOV^kCEq8OXQd{j{W3X`A7p;CcK3a(UC6oK2P>SP zcuqc)ZL;gRqcq(AZJNEcGBsmU`-oC0&lOsT;E1uFJSHh01J<9nc>QZwTt}92FMVjL z^<>qO8v@+_pWOS2F>s}&yv+G8^Xst%@IZw{MMdL^>z4CasF`N_fjSUAav25MWI4Xs z`TucOd08 zSl`5g0vnbQ^vb?;ajkpQyymcVH5X8?{rmEj`@&bvTP%y{-uab`qS~7y&T-cR%X4j# z8WRn=qq*!{@Y)56auCIDjKLIfZk(a1^^eI*TfoMUBQ+=!cJ7bgKk4#mJm*2fRM>YP| zQwQFg1nzLbX(9D--t$fK(>f#}PrVDd6~1UY68ZxsebFPJeOEjUz-1qmKP{u(pU;xc zPQ8;&nB7BJaQSKX^bj9$Ck^CBQ8v;QN?Ok)fyQMcwszpXpJ}HJI-szPfT50Y#qD*2 zwv5OcBK6hUS{k7-e4<>iQ2evD2AXDCLna6CW{RTRYZ&mAf69i)bXZ)lCOUi_=>w`% ztk{10R3Q*;a50^3Vgg1a)D-x+b9!18t&@>a+bdr`^vnJVe(;7*tMzjH>*V5XvySw3 zkX##TS65{3@;0RmhQhrrJsHk&JM$2luj*+Zop@13nuo=>EFAG7@} z;dz_OK{czPEzDq>o-Y%Ya&@(31Trwj4QXA$KB!JF%@v)-Oh49#QH~Ts3@k# zDq999Gh*2iICqB_@8cS)lg=xr3c52}yc^OS#kO|$)b<{hU_>`11e5Y4e`U?Zi*umg&@9xWX<056c}uekmA@g2i--pL0_&4L5zF z;z8A?B1l0(8>hFfQ4;8D^|M5^{C@9EA}lJw)Pj^TIiq4`kuuw zO(pW`rL__Pn#zVR2mvB0ow6-asWD107OZ)mMqOxm9oBuQ)J(&u(8lg#@985kDM{(9 z?H8KqNX2NvCA2X-c+VA2Cd$Ni$pF8XN}SF4F3%5xYwAiZ5bAU(WTlPlgqIptW4%o7 zzM2ETi5(_E65UZG)gch{h7h)`0lqX>4s(b#qa+RD*)fxOfB)Y3TjfZ)6Czev^cDRx z6E&HY&ZVkiS$%8N%6d4Bv92wGL;mS5E;DHG4(`(6W;N)WL2Rj9ZdZst!@3lH$3lgpc);)`k5)p{s# zd2w!54|aumGCXjbwvqAfdwe&`<7~yLbeTUHc4Y#ugmDhuong^;N9TTg*)Xdi?FSDh zc{?4+Eim}U4S^CRmD;&Ihqv)6RVMj}CnIL?q5}60$5YQqh8gb)5{=NdoyL?C;QdGb zDZA*m523%cz6M9vKiEzk_sg`fu0IBd)BTIZSJy0*_ZvuWWXvk#)@F2_N{w3)Hb^x| z5^3B+VG7IEqQx13;V?~U=Zp07?mv$KPbB4O4kn`og0z&DGM{A>{9!XKcp?tMvv(-r z8a<_2{cTjk_XCM$JtsoW%n#q#yr$QS5szCktB8lr=H-#23EgU|h!5bQhw~u@(dVX; zgyzgVmnd$PA+QEwO@I!^R)lbLswVb_p--GJEgv3 z80#Ga49hqKWqdaNfSpEtiBnOwNoZI6^iWE&rD#Y(nA+l1Sq&~`xJNmW$a#KJe7%Pt za-|5E(=yf6gq!^Csb9#bdNl94D{b6rU{@~xJioNq8zb4(LJ{p!^-EOiMw)n)`%FRA z-4k81*AcYq&A9^y?mN)F?4nkXvTx7t>5i!*4f2A^?oCmQr)2|&@vK;Lx6cgRsjx7H z?q#5~%Qly0ojv!g*2g`-3Vq?7+QqK4QHgj%HaaAtOh>5p?^bR+?>?$qX*nhEXm&7eB7D+hTdN}s65&-zA?lK29q|VBW54&VrEb~Z|ZF|H~hr1u# z@X{3sX4r6NYZ@tgB?5+o(hqb7S5Z+L50xtJCCAU0(3JQ|8Lfgoa!lbT0pP8!+KU6)LKtC6c4)FATd4_TL%DG4nPP=FSj?@bEW-oL6i3HO7Lh0|83MbU3cQ_J zrp^zu8^ZJV4LjHoGZ!40-L4#&=7v3V-PKL?U%?jeFFg;1htKb1_l~KaggceB74Ji5PuW?x%ZX)>^i+Dhd}sNA%~t%aWHCk6?4Vzsd&Yp@qu9TqCfWyWSt7p}Y~*cH)D{G^oUTxU z!B(Lfn$I%?>CKtGgTd~)E?zOG6^!2++W=d|6}Z2??O;r!O^Kp59lad2i7)DiaWVg$ zzEBC&MREaHElxO?%Y<&ODV+i3mZV;)q*`mCa;mLGNgc~^mi*3?IX9TA`SZE{zCL&I zj4L^98KLIL3ZdW9KKW&>TE8XlMVo9FxMAT%QsUiA!#E>)&@e}Ir%Fj7-u}ZM^MfLM zbgT+ozbuW&Mu4)IU}tm&EGFB4%jH zhIx~Q60uV^d2R-0H5ci(+mPoTAFUC{$xw$_y=zuF-oM@!A?Rz2QcAI<0H#;Mb zTDfz*lpqyjO(=!I6i0sv)<4w27?F-_UQE{Aa~T|2({^nQK`r(f^b_R|IaH}xyYFnA z&AjLC?&+{jtog!fenc2(!L1{GgXX=Kvy?26(}6m?IG%1=e_o)T_o4;jYJg%={bgw5 zmBQ3eDSD=#mIpnHn|!Ao%iT$YaQhziST!sv?@!D4XE(`L(rk*SG(_}`5c;4-X~Rug zGXrAV3)irGW|L!C^5#eVqcpo@R|*}a{L>&P59P2`Z5|(o7#1+n4O)8AJd=%)Zx^Qh z=p_fsgKjmIMGVqn5~CHnU!vFaWYxfAq&3mt;RkLXJ@r8DK2S2g_y{d z_wNap9W@ZCrmI~X=?(KrwHyj-*S+@j<4SR+2jL*fy8SSi^dx2jBPeXK)89Aj_>u4( zfyr&m2cOGN9(G0(b(!16EmIb^2xaUzq*5Bs{mEpldTzn(YGV$w>f==yCK5o>x-T>~ zU2-0WH{Y~m4vhlSw)CI0Z{%4{9s};DQhweeF80Z_LE%V!2Pf9QW!Zoei92Cqa`Q`M zULoB*O0f3Ij?2#--a6#@NjA|nXglMa)Bf7>x~bbiXKPnS$1#AUlrymxxA|Id5Aj(j5q#oj5Oj9H){0DB9nJZhZ?wB z;XBZ{>*3T_V1SN?A4_yA0zJHAr-fH{!d;bUq2T?g4Xf8|`mfs@8Kmy!qquy&pje zRC8cbWnLai+_5FQS;oF@E!q2yo&4A|_Klk3ZU7jKz5lN;Cc4P-i4HvILb zy723|H>gMnaG+e_Kwh+6wdG>VCmV7OeRdkT3Th%x(rgmeO~Hufr1Aj1QG2||{*y!h z#qIGxrUH>zx0K>UEa)~KksM@f`*p;bL1^Wx4o8P_vwBx#vHv%PZPC8@dG8nw6L-$#5I^hL{L3eijk7L{78 zeCW}N5x8WWSo~d12%xRHuI)dH^+A-d#2E)`3mH>^$AC^N3_i6;nU8aS$c;Hcc_L#2 zEl?~`NG_Ns=cdto&8(Wro9Wt}5=WO?HxuXBC(z&TrS(j~ z;W-aqK`}lTx|_u=&j~o7nk5u)quO{pS;QUBrYssoY}=POl;J2m8mR0FD~i22SrSEb zEz+xB!&pa0+q+pTc6|3>DA<%Hfl>sLp@;(u+kRNL$Gii6yC}D|YVXo|$l~(2U5^5> zd?3HPjJTNiba>p}hP}K`J3Kq{W94+cj5SF}>!hwGV>K~|ah>)s2HU!KrRYyzn@Q10!RT=xhNk&i{9M1KtOKm2}_{M@mqSM_DQwvnj<7Z$-EzKjML ztL}M`J<1LPEaN!hkt@*vm4=#GYB}<^v(I?ZQ#Lv2n{WH1H@axc@Hcp;MK)eec~$}0 zSN^5eM(r4|cHclhli$j%D+F9JM3Ei1y;hF>C>2S#JMy__E$z6U&>nHE2Wf2=o}BHJuy1Moz`t zT^t&}(5`TFJ43MP*WsXYQ$+rCP-t@rI4@>V8x&+D-SNwPQgB*)kNNx2S|9c+kFI-# zvyf>aW;&HOb>N^@w9#`A4x5?8Zeq_78sxcR4(#~%HSXW*TDnRQm=d~FaYp-U7K_%- nKl6CmnoHs%Z!Kl7FuQ2v_kYF7|D61f2ma%M|4Td|e9ZhGX5(Az diff --git a/assets/images/card-img-3.jpg b/assets/images/card-img-3.jpg deleted file mode 100644 index 675a7b1fd8d819e47f0ac39863425ee040ace562..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17689 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 diff --git a/assets/images/card-img.jpg b/assets/images/card-img.jpg deleted file mode 100644 index 7a98383e6dd42a99d3258aae0429052582a27b5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23927 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 diff --git a/assets/images/down-arrow.png b/assets/images/down-arrow.png deleted file mode 100644 index 357fe479992db3c8782c84cc1eded08f798b2eda..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1015 zcmaJ=PiWIn7>`V)4hB0FRvCoM!^Aazn|2ASUGt~5Vn^vZ?a?%OTSJ??EP1opK$t^t z13l_l!Gj=p@}}Zppa{Z1J;*?Y9%bN3@GzJ!UAuXh%OUUk9>3rB{k}hMqcU@4XfQEI z5X4Zas8#V9*@LmO`2T?4dV`Mes8c6lq&o>V{Zm%bp6Fc5%fAvnw+- zbERcU7L~h9PK7cK-~eQhq0@E)Im}YsxH7h*Ylb4b5Y)<22cqib3aLULkRqK; z1%{I(iD7w$=aU$b43=GFgh@9T>qpQ)VEVR)Z0M3vM56(hP?o|<4@z*na``Z@8}u55 zTgHTj$8a>uI8Ibo7agD~IFfNJI;bssfT@B2F8L;&$NX5IjC*%-q6mo9$Qm@49N?mo zmZk6wZP}KbN-1hyE93=T(>PAgNQxk-imGLFo}VnJYM)zj17x@+=yUBOu5=<-R()U~ z=+_`@_or8BLIi^*^hkA9B+G_ryOAHYwx<;M_AOu)eCUwf-pKYb`Sbb7l+LF`UQKaW zyEw@zx+Exqsugri$YbpXToz*Y7*+_NUc9x#2A>{=O2M+g+pI d6@PoDV=VFU{9L@f_p=c_#gaawy-;qh{RREwL{tC( diff --git a/assets/images/drag-indicator.png b/assets/images/drag-indicator.png deleted file mode 100644 index 21029ca2be10cc898e62a5f399a4e64a68e4b699..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 979 zcmaJ=&ui2`7>%t+DcytOMe#7E2o>BUlTFwpY;3p5u3a!?*)Hwkso7-O4Q(=UGIi5> z(VnaaK}7r)JP95ILBxv)f_I@uLGYv$j~41=ySwedH87bUy!XEMee=y;eeqUq^716d zak<)p-C*-MHYO&r|Nf^Z8k;WBN{cSxHQIFv;>td5BTx(7b<{wvzkT;JDskNS)u7p; zE$6o3;ZSfhjF5&gV{=?-HjQ0x15waM>p^7lzutY|LExMGit0#CY@trDutU(&&SKNs z+3<9qpS=l6slfz7L|u@En^9t zi;^tLa-Jdb$#z8DG#@3?0|gr;9tmO^;0R=jZX0h=lV?tkQwZasY?SoN#0n;+ZY)AU z%2FBt9q0ehFdU*2+CV3M|0$d_w__wWP=dFJ$1ZMdItvvW7C|n>q>1t7po;Ylra0-~ z7+4mVSqUN^ca!TqxZ@bLD4}lTp_*;-Oh5<%-zb)~qORCbQ>rS26|JnRwx$&-*1Rq& z^1L$O+SuC)QA7t^|AZ@#|RgZ^WcazPqrL(E!zzH9!0F#3G3>!-m=18#6rz3H`D$0;nC6T_%iqW$5{LR%+ImC z*K^-ra0kiEAM?@bE}44Ry7D;p^qRzddHH+p@WNj1>-q7Icj{B^g7l3Da}UmNZ%Y@I THwVw&XV0uwS+rlxukQW@;FvMo diff --git a/assets/images/error-img.png b/assets/images/error-img.png deleted file mode 100644 index 67a865e0a40d1c2fc765523a8a7b6a184d2571d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4585 zcmd5_HrC4FcIPZ>IO=o5Fx>u z5F!r%thoUIkY@k@UqC^NxjF#wmjuGtN~f)@t*EHz&Ye5P#>NT?3IYNGoSdBO?CgL2 z_1B3LC%Cz}MMOj(5Qu|=LtI>3ZEbBsLqlq6>g(69U%h%IEiLWo>G|^IOFKI|etv!y z7aJR!yu5r!NC*Of2oDc8Ffb@7Df#>FzmFU_!o|hq?d{#z*!bYVgO-*ScX#)rM~_~( zaN+Ue$2>ed)z#H9GBPk2OkZEWva+(ZwY99Q3%)g zJ9bP%L*wMhlQuRswzjrSO-*TOX?Q$7DJjXy%1T{b-PhOm`t|ExUS7$`$(Ju*=Huhj z(a~{rbxlY}z+f=4va*hjju{ylF)=Y`&z=Q=K+ew2l9H14_V(J^+QP!Zmo8lbgTc3N z-_Fj?E-Wk*6cj`vk;TQu$B!S6jEoc)7jJHE4hRTPR#w*4)jf6Ul!u4M#fuli!oq@s zgC9P8SYKbCm6cUhRrTo6BSS+&H#fJdSFgs$$78WrI2?ZO-aREHrSs>{KY8-x&6_uB zYHBVnE;ThZrKP1QDJfA=Q79BDIyyQuG*n7T>i+%v=H}*RW@bi4MnXbDPoF-0_UxID zj}He2$MfgUPoF+5At6y$SNGz@3n&yC5fPD>m#3$vS5Z-M_wL=?+}xm`AQcsroSYm{ zQPJ4g*v!n#z`#HzlZlpe>0=%6k()+(@WxpH)CT|njTpdhScT85&oYXwd!hmV^jvy# zx9Ri^*`F;HO=VVg=23jc!KdFzRQ%1q;1?%HumGM;tu)WX_ezu~ATtc_8@izK8}@$X zUBh_OW-;WA=^bkM@OPeqy`eo&khd(|Yp4KwnZ@}(^Zj#(jqr)~Von2jW%*s&JXh8F zhpHp8pVSrwl5byc4#nA{MC*O`_9m+IVS{}@n~=yVm!Nt5!d<89)`ttzKi^N8W?R-_ zK}$wBoaLaXuXyth+(_m}LXN9>vzo1#cwXvBbEv&bk1ixr&V+3WJ!|c8q0=_D`ljCy zBmd>vHRA^}q&w1i+(DoJnL;z>y!FyutgDr$;`8d|FC)eKt8Zxypx9hHvV6YvqU~(4 z3ViP)m0-VjYJczCcj-vA<+J)E@6sYO<)7E{o9l)S&rN@U&HYrTDa%O4vVecv>at^G z+N@oJPEAx-meGuPCf~VzV495%e~!Ya%v0azq4s%N{xL^W1pv zw!ODI%l3a^FxQ=k@AsK};p&nzcxeKS2TOZ#%$}Iv<{g9P6=Rv6idU@F_HF-JPmN>J zTis2Dl~=Rgb6q`Rw(K+A@)Adn8ETey5JHtZ`Js?da;3>Sm-6D!|z z2KR@b&LJC80Q7huk?V{tGOP z6)n_^*~ww?(!)%1Sk$Yc;+&AmJ(2_k=z#_wg8j-X*{`+3Y(H__baHogC+r)xvq%i9wF3u%RLVXd3 zBHsh@SuKBO7y`#GZL^ASK<)LDmY{8l%Kr?#jEdbqS##d>ub5|rOUXKx3QvXMxTKkP zu%wak2vLR=Eah|~XLeO{N){y3=3$tj_m>m<3~qTj!a*N`iS*8x%9w>Lo5e^MD~+es zfXbnpku#OD4DS=4ly2e5q--dN8ER_4o{bl^s7|4Zs+R2_)H^sorC5J4pJN(d-Duc{ z_!W4-b!j~*J;W?w!Es0sY_EOpb%=zF3R7-=pW$aSK)iZ$CttEOEP?0Xs!~7BcOz~) z(P8SrM%#qzfv1Gi4?^ctWy?Bb(x?kxVn2Os;8~;AKnPEC0%ZOujmIhmo|V=^K;$*c1|fgv9Q_iqvnIKf!li#PTwJQH*bK6 zD}7acIbsGX@!H3z`)?_?F@VHxX=TrPs|zO;GqpTG~DGWiM`UUL)*7-r+fYwap1lg@pK1bErcmD zoh6n*z!g6V7L*Y}iZ60aelr%_r`H9nRCzz0s0AaEMiu$ukL)g5Y%O-Ay|~Ul7|r{k zwyeZPn5yY;v!bWgua}mqF27{}zGE^*LfT%e()P^~EYIjybz0t`jy=@u|0%q%*Pffd zn-F3u9tp}hkJQuT`gRz#&6o7BYmQ#*54LC6fJU+Sfl2u;St$@X)ZiewX)YT$7AuND z_glRMw!>DkE+C5&xhe|3CAJ8C8?$G;L)4SleZAH}rKsL+Ey~E;S@zhodOj_~mbQ>N zb!$ij=0=W%whZlP1aj}=)|+Fx%lxA=BzC0NAgDBCfjx`Po8S^yHHP|CRO?Du==Dh7 zG0tFX{Y7cdIBVLmhyQ{Animc_!^~?*b~tnB^xf*JF)SW&(ckPWyyh2b>g^%*T{&q> z#8z``M-oHrUfm&^ku8UXhx-bl<3kT&2eZOVyo!e^p2dmsN(GfBkWX!pV6q$x!;3pW zVWCw?hY0kw&uS(K*id zd>eF(Vb{hj#%o9)h+wq8+%2bc#ZTPtd6qRalb3(4$cbpev-gCu_*aRjFXePvV(PC* zy4ODA)A-2T?vx~S+$EoRt5x)ZDt5wj5-u$rDuFtS4sL6|w0->Y_WE}VwzOU^Q|Aqz z8vR{W#{!&^?kaZIbR(y|J885VDehO6H37*~nc=RP8##EpG#~W+Q|F_{O~B6YTW)sr z+y>Lu0|XE%W43RuYqjplNx&HSZx~Iv1#kWlJ+mAhQpI(ilYACZJ`XG#`6!JBEJ1sJH?Nu6w_B!H#;1SZB z!3t8IpH~8?G}Rw;zsl|V2rLm;NH^{&zIvm)jM#6s3!@R+pBp7$8>%Ts*0@TOSdWd9 zbbpux3NL+4JKvRiPv?B<;S-*7bSY?%PjqU$Hd!y4dXQKHD`)>QGT0r%`}L(`l8*cuKUAMzw|$C}9;6*Kfl^ zuc%)8vKc}7>MFpG+&Z!rSdJ$uSF-5NK{9zcjI3rduz zO{ZOyoQONas{d7-7xL+gCeBZvp@v?P#kb$4SVJ-=)dblmABvWAGqYZNSM&&t|K^_^ zg*4ql@~aRD6wmH~gN2m3Y%w^CS?0UQp)GUSn6M?VG!aT3EK2r*t2WAKJx#JK-Otl36R$`X1eh__|pXA_EZnJ{gTSNAF0Bdb1$c5Dp?$aA=2Nb&y6~uCzvv{Mw zT|Kh1Ya{_UR1`}J5)b2yG5nwTv-@qxa{`mgL|ussv(Plmnu-SN*adsK2YW$0?s%~V zfTFwtSVloXMp3~^K>?zm22oO!kynAp%NO*QhWsA|6x!3*JL3OWSkD$D{bn@KF@@J? HxyAhl*B4rW diff --git a/assets/images/loader.svg b/assets/images/loader.svg deleted file mode 100644 index d8971d8..0000000 --- a/assets/images/loader.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/assets/images/logo.png b/assets/images/logo.png deleted file mode 100644 index 8da4c59fd2f0d083aa44bde6179400f17dd3934b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2000 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 diff --git a/assets/images/product-pic-3.jpg b/assets/images/product-pic-3.jpg deleted file mode 100644 index a727a4d442b6bd09edebf5feeb0ec82148aff0f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6019 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 diff --git a/assets/images/product-pic-4.jpg b/assets/images/product-pic-4.jpg deleted file mode 100644 index a727a4d442b6bd09edebf5feeb0ec82148aff0f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6019 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 diff --git a/assets/images/product-pic.jpg b/assets/images/product-pic.jpg deleted file mode 100644 index a727a4d442b6bd09edebf5feeb0ec82148aff0f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6019 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 diff --git a/assets/images/switch.png b/assets/images/switch.png deleted file mode 100644 index d6d3211c5c2f91f0ec2af9668f3a578529df8b69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1166 zcmeAS@N?(olHy`uVBq!ia0vp^q9Dw{1|(OCFP#RYBuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFe_$;M3hAM`dB6B=jtVb)aX^@765fKFxc2v6eK2Rr0UTq__OB&@Hb09I0xZL0)vRD^GUf^&XRs)DJWscy1?p^1XIrJkXw zp^1f|j)IYap|QS!vA&_PuAz~Yfu)t9sR9%z0c|TvNwW%aaf8|g1^l#~=$>Fbx5 zm+O@q>*W`v>l<2HTIw4Z=^Gj80#)c1SLT%@R_NvxE5l51Ni9w;$}A|!%+FH*nV6WA zUs__T1av9H3%LbwWAlok!2}F2{ffi_eM3D1ke6TzeSPsO&CP|YE-nd5MYtEM!Nnn! z1*!T$sm1xFMajU3OH&3}Rbb^@l$uzQUlfv`p92fUfQJ_m0nlcb)S}F?)D*X({9FaFkF7FsyTuHr zc~HG6xZProQ?EYIG5Vl*MT%#b5HRt8nDA5!}2@3X5YI<-(P&{St7+{5+LAlmo-VCR;(lTB5zvK0-lDL zJp|;e3A5f;=(5 z_sn}^_?En5Je+SjZ_6&}Sz9C~OcoDwZj?%E+Qay?N#vd4HHS4D`_mNG9qGU9z~j78 zVn*LPubhp&^A.btn-primary.dropdown-toggle:focus { - box-shadow: 0 0 0 0.2rem rgb(37, 52, 158); -} - -.btn-primary:not(:disabled):not(.disabled).active, -.btn-primary:not(:disabled):not(.disabled):active, -.show>.btn-primary.dropdown-toggle { - color: #fff; - background-color: #4656e9; - border-color: #4656e9; -} - - -/*--- btn secondary --*/ - -.btn-secondary { - color: #fff; - background-color: #ff407b; - border-color: #ff407b; -} - -.btn-secondary:hover { - color: #fff; - background-color: #f0346e; - border-color: #f0346e; -} - -.btn-secondary.focus, -.btn-secondary:focus { - color: #fff; - background-color: #f0346e; - border-color: #f0346e; - box-shadow: 0 0 0 1px rgb(222, 17, 80); -} - -.btn-secondary:not(:disabled):not(.disabled).active, -.btn-secondary:not(:disabled):not(.disabled):active, -.show>.btn-secondary.dropdown-toggle { - color: #fff; - background-color: #f0346e; - border-color: #f0346e; -} - - -/*--- btn success --*/ - -.btn-success { - color: #fff; - background-color: #2ec551; - border-color: #2ec551; -} - -.btn-success:hover { - color: #fff; - background-color: #21ae41; - border-color: #21ae41; -} - -.btn-success.focus, -.btn-success:focus { - color: #fff; - background-color: #21ae41; - border-color: #21ae41; - box-shadow: 0 0 0 1px rgb(18, 158, 50); -} - -.btn-success:not(:disabled):not(.disabled).active, -.btn-success:not(:disabled):not(.disabled):active, -.show>.btn-success.dropdown-toggle { - color: #fff; - background-color: #21ae41; - border-color: #21ae41; -} - - -/*--- btn danger --*/ - -.btn-danger { - color: #fff; - background-color: #ef172c; - border-color: #ef172c; -} - -.btn-danger:hover { - color: #fff; - background-color: #da0419; - border-color: #da0419; -} - -.btn-danger.focus, -.btn-danger:focus { - color: #fff; - background-color: #da0419; - border-color: #da0419; - box-shadow: 0 0 0 1px rgb(218, 4, 25); -} - -.btn-danger:not(:disabled):not(.disabled).active, -.btn-danger:not(:disabled):not(.disabled):active, -.show>.btn-danger.dropdown-toggle { - color: #fff; - background-color: #da0419; - border-color: #da0419; -} - - -/*--- btn warning --*/ - -.btn-warning { - color: #2e2f39; - background-color: #ffc108; - border-color: #ffc108; -} - -.btn-warning:hover { - color: #2e2f39; - background-color: #f3b600; - border-color: #f3b600; -} - -.btn-warning.focus, -.btn-warning:focus { - color: #2e2f39; - background-color: #f3b600; - border-color: #f3b600; - box-shadow: 0 0 0 1px rgb(238, 182, 0); -} - -.btn-warning:not(:disabled):not(.disabled).active, -.btn-warning:not(:disabled):not(.disabled):active, -.show>.btn-warning.dropdown-toggle { - color: #2e2f39; - background-color: #f3b600; - border-color: #f3b600; -} - - -/*--- btn info --*/ - -.btn-info { - color: #fff; - background-color: #25d5f2; - border-color: #25d5f2; -} - -.btn-info:hover { - color: #fff; - background-color: #17c0dc; - border-color: #17c0dc; -} - -.btn-info.focus, -.btn-info:focus { - color: #fff; - background-color: #17c0dc; - border-color: #17c0dc; - box-shadow: 0 0 0 1px rgb(238, 184, 22); -} - -.btn-info:not(:disabled):not(.disabled).active, -.btn-info:not(:disabled):not(.disabled):active, -.show>.btn-info.dropdown-toggle { - color: #fff; - background-color: #17c0dc; - border-color: #17c0dc; -} - - -/*--- btn light --*/ - -.btn-light { - color: #71738d; - background-color: #f0f0f8; - border-color: #f0f0f8; -} - -.btn-light:hover { - color: #2e2f39; - background-color: #d7d7df; - border-color: #d7d7df; -} - -.btn-light.focus, -.btn-light:focus { - color: #2e2f39; - background-color: #d7d7df; - border-color: #d7d7df; - box-shadow: 0 0 0 1px rgb(215, 215, 223); -} - - -/*--- btn dark --*/ - -.btn-dark { - color: #fff; - background-color: #2e2f39; - border-color: #2e2f39; -} - -.btn-dark:hover { - color: #2e2f39; - background-color: #d7d7df; - border-color: #d7d7df; -} - -.btn-dark.focus, -.btn-dark:focus { - color: #fff; - background-color: #d7d7df; - border-color: #d7d7df; - box-shadow: 0 0 0 1px rgb(46, 47, 57); -} - - -/*--- btn outline brand --*/ - -.btn-outline-brand { - color: #2e2f39; - background-color: transparent; - border-color: #ffc750; -} - -.btn-outline-brand:hover { - color: #2e2f39; - background-color: #ffc750; - border-color: #ffc750; -} - -.btn-outline-brand.focus, -.btn-outline-brand:focus { - color: #2e2f39; - background-color: transparent; - border-color: #ffc750; - box-shadow: 0 0 0 1px rgb(255, 195, 89); -} - - -/*--- btn outline primary --*/ - -.btn-outline-primary { - color: #5969ff; - background-color: transparent; - border-color: #5969ff; -} - -.btn-outline-primary:hover { - color: #fff; - background-color: #5969ff; - border-color: #5969ff; -} - -.btn-outline-primary.focus, -.btn-outline-primary:focus { - color: #fff; - background-color: #5969ff; - border-color: #5969ff; - box-shadow: 0 0 0 1px rgb(65, 77, 167); -} - - -/*--- btn outline secondary --*/ - -.btn-outline-secondary { - color: #ff407b; - background-color: transparent; - border-color: #ff407b; -} - -.btn-outline-secondary:hover { - color: #fff; - background-color: #ff407b; - border-color: #ff407b; -} - -.btn-outline-secondary.focus, -.btn-outline-secondary:focus { - color: #fff; - background-color: #ff407b; - border-color: #ff407b; - box-shadow: 0 0 0 1px rgb(227, 45, 201); -} - -.btn-outline-secondary:not(:disabled):not(.disabled).active, -.btn-outline-secondary:not(:disabled):not(.disabled):active, -.show>.btn-outline-secondary.dropdown-toggle { - color: #fff; - background-color: #ff407b; - border-color: #ff407b; -} - - -/*--- btn outline success --*/ - -.btn-outline-success { - color: #2ec551; - background-color: transparent; - border-color: #2ec551; -} - -.btn-outline-success:hover { - color: #fff; - background-color: #2ec551; - border-color: #2ec551; -} - -.btn-outline-success.focus, -.btn-outline-success:focus { - color: #fff; - background-color: #2ec551; - border-color: #2ec551; - box-shadow: 0 0 0 1px rgb(40, 167, 69); -} - - -/*--- btn outline danger --*/ - -.btn-outline-danger { - color: #ef172c; - background-color: transparent; - border-color: #ef172c; -} - -.btn-outline-danger:hover { - color: #fff; - background-color: #ef172c; - border-color: #ef172c; -} - -.btn-outline-danger.focus, -.btn-outline-danger:focus { - color: #fff; - background-color: #ef172c; - border-color: #ef172c; - box-shadow: 0 0 0 1px rgb(239, 23, 44); -} - - -/*--- btn outline warning --*/ - -.btn-outline-warning { - color: #2e2f39; - background-color: transparent; - border-color: #ffc108; -} - -.btn-outline-warning:hover { - color: #2e2f39; - background-color: #ffc108; - border-color: #ffc108; -} - -.btn-outline-warning.focus, -.btn-outline-warning:focus { - color: #2e2f39; - background-color: #ffc108; - border-color: #ffc108; - box-shadow: 0 0 0 1px rgb(255, 193, 8); -} - - -/*--- btn outline info --*/ - -.btn-outline-info { - color: #25d5f2; - background-color: transparent; - border-color: #25d5f2; -} - -.btn-outline-info:hover { - color: #fff; - background-color: #25d5f2; - border-color: #25d5f2; -} - -.btn-outline-info.focus, -.btn-outline-info:focus { - color: #fff; - background-color: #25d5f2; - border-color: #0998b0; - box-shadow: 0 0 0 1px rgb(238, 184, 22); -} - - -/*--- btn outline light --*/ - -.btn-outline-light { - color: #7171a6; - background-color: transparent; - border-color: #e6e6f2; -} - -.btn-outline-light:hover { - color: #71748d; - background-color: #f0f0f8; - border-color: #cacae0; -} - -.btn-outline-light.focus, -.btn-outline-light:focus { - color: #71748d; - background-color: #f0f0f8; - border-color: #cacae0; - box-shadow: 0 0 0 1px rgb(235, 235, 237); -} - - -/*--- btn outline-dark --*/ - -.btn-outline-dark { - color: #2e2f39; - background-color: transparent; - border-color: #2e2f39; -} - -.btn-outline-dark:hover { - color: #fff; - background-color: #2e2f39; - border-color: #2e2f39; -} - -.btn-outline-dark.focus, -.btn-outline-dark:focus { - color: #fff; - background-color: #2e2f39; - border-color: #2e2f39; - box-shadow: 0 0 0 1px rgb(46, 47, 57); -} - - -/*--- btn size --*/ - -.btn-xs { - padding: 4px 10px; - font-size: 12px; -} - -.btn-sm { - padding: 5px 12px; - font-size: 14px; -} - -.btn-lg { - padding: 11px 20px; - font-size: 15px; -} - - -/*--- btn social --*/ - -.btn-facebook { - color: #fff; - background-color: #3c73df; - border-color: #3c73df; -} - -.btn-google-plus { - color: #fff; - background-color: #eb5e4c; - border-color: #eb5e4c; -} - -.btn-twitter { - color: #fff; - background-color: #2caeff; - border-color: #2caeff; -} - -.btn-instagram { - color: #fff; - background-color: #9361fa; - border-color: #9361fa; -} - -.btn-pinterest { - color: #fff; - background-color: #c8232c; - border-color: #c8232c; -} - - - - -/*--- cropper document btn --*/ - -.btn-rounded { - border-radius: 100px; -} - - -/*--- cropper document btn --*/ - -.docs-buttons .btn, -.docs-data .input-group { - margin-bottom: 5px; -} - - -/*----------------------- -btn-link --------------------------*/ - -.btn-link { - color: #5969ff; -} - -.btn-link:hover { - text-decoration: none; -} - -.btn-primary-link { - color: #5969ff !important; -} - -.btn-brand-link { - color: #ffc750 !important; -} - -.btn-secondary-link { - color: #ff407b !important; -} - - -/* ----------------------- -2.3 Cards --------------------------*/ - -.card { - margin-bottom: 30px; - border: none; - -webkit-box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); - -moz-box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); - box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); -} - -.card-header { - background-color: #fff; - border-bottom: 1px solid #e6e6f2; -} - -.card-title {} - -.card-subtitle { - font-size: 14px; -} - -.card-body {} - -.card-text {} - -.card-footer { - border-top: 1px solid #e6e6f2; - background: #f6f6ff; -} - -.card-link {} - -.toolbar { - font-size: 18px; -} - -.card-header-title { - margin: 0; - line-height: 2; -} - -.card-toolbar-tabs {} - -.card-toolbar-tabs .nav.nav-pills {} - -.card-toolbar-tabs .nav.nav-pills .nav-item {} - -.card-toolbar-tabs .nav.nav-pills .nav-item .nav-link { - font-size: 14px; - padding: 6px 10px; -} - -.card-toolbar-tabs .nav-pills .nav-link.active, -.nav-pills .show>.nav-link { - color: #5969ff; - background-color: transparent; -} - - -/*------------------------- Card Varience --------------------------*/ - -.card-figure { - position: relative; - padding: 10px; - border-radius: 2px; -} - -.card-figure .figure { - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - margin-bottom: 0; -} - -.card-figure .figure-caption { - display: block; - margin-top: 10px; - font-size: .875rem; - color: inherit; -} - -.figure-title { - margin: 0 0 .125rem; - text-transform: capitalize; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.card-figure.has-hoverable { - -webkit-transition: -webkit-transform .2s, -webkit-box-shadow .2s; - transition: -webkit-transform .2s, -webkit-box-shadow .2s; - transition: transform .2s, box-shadow .2s; - transition: transform .2s, box-shadow .2s, -webkit-transform .2s, -webkit-box-shadow .2s; -} - -.card-figure.has-hoverable:focus, -.card-figure.has-hoverable:hover { - -webkit-transform: translate3d(0, -.25rem, 0); - transform: translate3d(0, -.25rem, 0); - -webkit-box-shadow: 0 5px 15px 0 rgba(61, 70, 79, .15); - box-shadow: 0 5px 15px 0 rgba(61, 70, 79, .15); -} - -.figure-img { - position: relative; - margin-bottom: 0; - overflow: hidden; -} - -.figure-img .img-link { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - background-color: hsla(0, 0%, 100%, .96); - opacity: 0; - z-index: 2; - -webkit-transition: opacity .2s ease; - transition: opacity .2s ease; -} - -.card-figure:hover .img-link { - opacity: 1; -} - -.figure-img .img-link .tile { - position: absolute; - top: 50%; - left: 50%; - margin-top: -1rem; - margin-left: -1rem; -} - -.tile.bg-danger { - color: #fff; -} - -.tile-circle { - border-radius: 4rem; -} - -.figure-action { - position: absolute; - left: 0; - right: 0; - bottom: 0; - display: block; - opacity: 0; - -webkit-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - -webkit-transition: all .3s ease; - transition: all .3s ease; -} - -.card-figure:hover .figure-action { - opacity: 1; - -webkit-transform: translateZ(0); - transform: translateZ(0); - z-index: 2; -} - -.figure-tools { - position: absolute; - top: 0; - right: 0; - left: 0; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: start; - -ms-flex-align: start; - align-items: flex-start; - padding: .5rem; - opacity: 0; - z-index: 2; - -webkit-transition: opacity .3s ease; - transition: opacity .3s ease; -} - -.card-figure:hover .figure-tools { - opacity: 1; -} - -.figure-description { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - padding: 2.25rem .5rem; - background-color: hsla(0, 0%, 100%, .96); - opacity: 0; - -webkit-transition: all .3s ease; - transition: all .3s ease; - z-index: 1; -} - -.card-figure:hover .figure-description { - opacity: 1; -} - -.figure-attachment { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - min-height: 200px; - background-color: #f5f5f5; - overflow: hidden; -} - -.btn-reset { - padding: 0 2px; - font-size: inherit; - line-height: inherit; - color: inherit; - background-color: transparent; - border: 0; - cursor: pointer; -} - - -/*------------------------- Card Navigation --------------------------*/ - -.card-header-tabs {} - -.card-header-pills {} - -.pills-regular .card-header-pills.nav.nav-pills .nav-item .nav-link.active { - background-color: #5969ff; - color: #fff; -} - - -/* ----------------------- -2.4 General --------------------------*/ - - -/*---------Tooltips----------*/ - - -/*--------- Popovers ----------------*/ - -.popover { - border: 1px solid rgb(230, 230, 242); -} - -.bs-popover-auto[x-placement^=right] .arrow::before, -.bs-popover-right .arrow::before { - left: 0; - border-right-color: rgb(230, 230, 242); -} - -.popover-header { - padding: .5rem .75rem; - margin-bottom: 0; - font-size: 1rem; - color: inherit; - background-color: #f7f7fd; - border-bottom: 1px solid #efeff6; - border-top-left-radius: calc(.3rem - 1px); - border-top-right-radius: calc(.3rem - 1px); -} - - -/* ----------------------- -2.5 Modals --------------------------*/ - -.bd-example-row .row>.col, -.bd-example-row .row>[class^=col-] { - padding-top: .75rem; - padding-bottom: .75rem; - background-color: rgba(86, 61, 124, .15); - border: 1px solid rgba(86, 61, 124, .2); -} - - -/* ----------------------- -2.6 Notification --------------------------*/ - - -/* ----------------------- -2.7 Icon --------------------------*/ - -.icon-circle { - border-radius: 100%; -} - -.icon-circle-small { - line-height: 1; - padding: 4px 2px; - text-align: center; - font-size: 12px; - display: inline-block; - border-radius: 100%; -} - -.icon-circle-medium { - line-height: 1; - padding: 22px 2px; - text-align: center; - font-size: 12px; - display: inline-block; - border-radius: 100%; -} - -.icon-box {} - -.icon-box-xxl {} - -.icon-box-xl {} - -.icon-box-lg { - height: 68px; - width: 68px; -} - -.icon-box-md { - height: 32px; - width: 32px; -} - -.icon-box-sm {} - -.icon-box-xs { - height: 20px; - width: 20px; -} - - -/* ----------------------- -2.8 Tabs --------------------------*/ - -.tab-regular {} - -.tab-regular .nav.nav-tabs { - border-bottom: transparent; -} - -.tab-regular .nav.nav-tabs .nav-item {} - -.tab-regular .nav.nav-tabs .nav-link { - display: block; - padding: 17px 49px; - color: #71748d; - background-color: #dddde8; - margin-right: 5px; - border-color: #dddde8; -} - -.tab-regular .nav-tabs .nav-link:focus, -.nav-tabs .nav-link:hover {} - -.tab-regular .nav-tabs .nav-link.active { - background-color: #fff; - border-color: #e6e6f2 #e6e6f2 #fff; - color: #5969ff; -} - -.tab-regular .tab-content { - background-color: #fff; - padding: 30px; - border: 1px solid #e6e6f2; - border-radius: 4px; - border-top-left-radius: 0px -} - - -/*----- Tabs Vertical CSS ----*/ - -.tab-vertical {} - -.tab-vertical .nav.nav-tabs { - float: left; - display: block; - margin-right: 0px; - border-bottom: 0; -} - -.tab-vertical .nav.nav-tabs .nav-item { - margin-bottom: 6px; -} - -.tab-vertical .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - background: #fff; - padding: 17px 49px; - color: #71748d; - background-color: #dddde8; - -webkit-border-radius: 4px 0px 0px 4px; - -moz-border-radius: 4px 0px 0px 4px; - border-radius: 4px 0px 0px 4px; -} - -.tab-vertical .nav-tabs .nav-link.active { - color: #5969ff; - background-color: #fff !important; - border-color: transparent !important; -} - -.tab-vertical .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 4px !important; - border-top-right-radius: 0px !important; -} - -.tab-vertical .tab-content { - overflow: auto; - -webkit-border-radius: 0px 4px 4px 4px; - -moz-border-radius: 0px 4px 4px 4px; - border-radius: 0px 4px 4px 4px; - background: #fff; - padding: 30px; -} - - -/*----- Tabs Outline CSS ----*/ - -.tab-outline {} - -.tab-outline .nav.nav-tabs { - border-bottom: transparent; -} - -.tab-outline .nav.nav-tabs .nav-item .nav-link { - display: block; - padding: 17px 49px; - color: #71748d; - background-color: #e9e9f2; - border-color: #c4c4cf #c4c4cf #c4c4cf; - margin-right: 3px; -} - -.tab-outline .nav.nav-tabs .nav-item {} - -.tab-outline .nav-tabs .nav-link.active { - color: #5969ff !important; - background-color: transparent !important; - border-color: #c4c4cf #c4c4cf #efeff6 !important; -} - -.tab-outline .nav-tabs .nav-link:focus, -.nav-tabs .nav-link:hover { - border-color: transparent; - color: #5969ff !important; -} - -.tab-outline .tab-content { - padding: 30px; - border: 1px solid #c4c4cf; - border-radius: 4px; - border-top-left-radius: 0px; -} - - -/*----- Tabs Vertical Outline CSS ----*/ - -.tab-vertical-outline {} - -.tab-vertical-outline .nav.nav-tabs { - float: left; - display: block; - margin-right: 0px; - border-bottom: 0; -} - -.tab-vertical-outline .nav.nav-tabs .nav-item { - margin-bottom: 6px; -} - -.tab-vertical-outline .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: .25rem; - border-top-right-radius: .25rem; - background: #fff; - padding: 17px 49px; - color: #71748d; - background-color: #e9e9f2; - -webkit-border-radius: 4px 0px 0px 4px; - -moz-border-radius: 4px 0px 0px 4px; - border-radius: 4px 0px 0px 4px; - border: 1px solid #c4c4cf !important; -} - -.tab-vertical-outline .nav-tabs .nav-link.active { - color: #5969ff; - border: 1px solid #c4c4cf !important; - background: transparent; - border-right: 1px solid #efeff6 !important; -} - -.tab-vertical-outline .nav-tabs .nav-link { - border: 1px solid transparent; - border-top-left-radius: 4px !important; - border-top-right-radius: 0px !important; -} - -.tab-vertical-outline .tab-content { - overflow: auto; - -webkit-border-radius: 0px 4px 4px 4px; - -moz-border-radius: 0px 4px 4px 4px; - border-radius: 0px 4px 4px 4px; - background: transparent; - padding: 30px; - border: 1px solid #c4c4cf; - left: -1px; - position: relative; - z-index: -1; -} - - -/*--- Simple Card Tabs ----*/ - -.simple-card { - background-color: #fff; - border-radius: 4px; - border: 1px solid #e9e9f2; -} - -.simple-card .nav.nav-tabs { - border-bottom: 1px solid #e6e6f2; -} - -.simple-card .nav.nav-tabs .nav-item {} - -.simple-card .nav.nav-tabs .nav-item .nav-link { - padding: 17px 49px; - color: #71748d; - background: #f8f8fb; - border-color: #e9e9f2 #e9e9f2 #e9e9f2; - margin-right: -1px; - border-radius: 0px; - border-top: transparent; -} - -.simple-card .nav-tabs .nav-link.active { - color: #5969ff !important; - background-color: transparent !important; - border-color: #e9e9f2 #e9e9f2 #fff !important; -} - -.simple-card .tab-content { - padding: 30px; -} - - -/*--- Simple Card Outline Tabs ----*/ - -.simple-outline-card { - border-radius: 4px; - border: 1px solid #c4c4cf; -} - -.simple-outline-card .nav.nav-tabs { - border-bottom: 1px solid #c4c4cf; -} - -.simple-outline-card .nav.nav-tabs .nav-item {} - -.simple-outline-card .nav.nav-tabs .nav-item .nav-link { - padding: 17px 49px; - color: #71748d; - background: #e9e9f2; - border-color: #c4c4cf #c4c4cf #c4c4cf; - margin-right: -1px; - border-radius: 0px; - border-top: transparent; -} - -.simple-outline-card .nav-tabs .nav-link.active { - color: #5969ff !important; - background-color: transparent !important; - border-color: #c4c4cf #c4c4cf #efeff6 !important; -} - -.simple-outline-card .tab-content { - padding: 30px; -} - - -/* ----------------------- -Pills Regular --------------------------*/ - -.pills-regular {} - -.pills-regular .nav.nav-pills {} - -.pills-regular .nav.nav-pills .nav-item {} - -.pills-regular .nav.nav-pills .nav-item .nav-link { - background-color: #dddde8; - padding: 14px 26px; - margin-right: 3px; - color: #71748d; - font-size: 16px; - margin-bottom: 4px; -} - -.pills-regular .nav.nav-pills .nav-item .nav-link.active { - background-color: #fff; - color: #5969ff; -} - -.pills-regular .tab-content { - background-color: #fff; - padding: 30px; - border-radius: 4px; -} - - -/* ----------------------- -Pills Outline --------------------------*/ - -.pills-outline {} - -.pills-outline .nav.nav-pills {} - -.pills-outline .nav.nav-pills .nav-item {} - -.pills-outline .nav.nav-pills .nav-item .nav-link { - background-color: transparent; - padding: 16px 52px; - margin-right: 3px; - color: #71748d; - border: 1px solid #c4c4cf; -} - -.pills-outline .nav.nav-pills .nav-item .nav-link.active { - background-color: transparent; - color: #5969ff; -} - -.pills-outline .tab-content { - background-color: transparent; - padding: 30px; - border-radius: 4px; - border: 1px solid #c4c4cf; -} - - -/* ----------------------- -Pills vertical --------------------------*/ - -.pills-vertical {} - -.pills-vertical .nav.nav-pills {} - -.pills-vertical .nav.nav-pills .nav-link { - background-color: #dddde8; - padding: 16px 52px; - margin-bottom: 4px; - color: #71748d; -} - -.pills-vertical .nav.nav-pills .nav-link.active { - background-color: #fff; - color: #5969ff; -} - -.pills-vertical .tab-content { - background-color: #fff; - padding: 30px; - border-radius: 4px; -} - - -/* ----------------------- -2.9 Accordions --------------------------*/ - -.accrodion-regular {} - -.accrodion-regular .card { - margin-bottom: 5px; -} - -.accrodion-regular .card-body { - margin-top: -1px; -} - -.accrodion-regular .card .card-header { - font-size: 16px; - padding: 10px; - background-color: transparent; -} - -.accrodion-regular .card .card-header:first-child { - border-radius: calc(4px - 1px) calc(4px - 1px) 0 0; -} - -.accrodion-regular .card .card-header .btn-link { - color: #3d405c; - text-decoration: none; -} - -.accrodion-regular .card .card-header .btn-link:hover { - color: #f12357; - text-decoration: none; -} - -.accrodion-outline {} - -.accrodion-outline .card { - margin-bottom: 5px; - background-color: transparent; - border-color: #d9d9e3; - box-shadow: none; -} - -.accrodion-outline .card-body { - border: 1px solid #d9d9e3; - margin-top: -1px; -} - -.accrodion-outline .card .card-header { - font-size: 16px; - padding: 10px; - border: 1px solid #d9d9e3; - background-color: transparent; -} - -.accrodion-outline .card .card-header:first-child { - border-radius: calc(4px - 1px) calc(4px - 1px) 0 0; -} - -.accrodion-outline .card .card-header .btn-link { - color: #3d405c; - text-decoration: none; -} - -.accrodion-outline .card .card-header .btn-link:hover { - color: #f12357; - text-decoration: none; -} - - -/* ----------------------- -2.10 Typography --------------------------*/ - - -/* ----------------------- -2.11 Listgroup --------------------------*/ - -.list-group-item { - position: relative; - display: block; - padding: 16px 20px; - margin-bottom: -1px; - border: 1px solid #e6e6f2; -} - - -/* ----------------------- -2.12 Multiselect --------------------------*/ - - -/*----------------------- -2.13 Badge --------------------------*/ - -.badge { - display: inline-block; - padding: 3px 7px; - font-size: 14px; - font-weight: 400; - line-height: 1; - text-align: center; - white-space: nowrap; - vertical-align: baseline; - border-radius: .25rem; -} - -.badge-primary { - background-color: #5969ff; -} - -.badge-primary[href]:focus, -.badge-primary[href]:hover { - color: #fff; - text-decoration: none; - background-color: #4656e9; -} - -.badge-brand { - background-color: #ffb739; - color: #2e2f39; -} - -.badge-brand[href]:focus, -.badge-brand[href]:hover { - color: #2e2f39; - background-color: #efb63e; - text-decoration: none; -} - -.badge-secondary { - background-color: #ff407b; -} - -.badge-secondary[href]:focus, -.badge-secondary[href]:hover { - color: #fff; - background-color: #ff407b; - text-decoration: none; -} - -.badge-success { - background-color: #21ae41; -} - -.badge-success[href]:focus, -.badge-success[href]:hover { - color: #fff; - background-color: #21ae41; - text-decoration: none; -} - -.badge-danger { - background-color: #da0419; -} - -.badge-danger[href]:focus, -.badge-danger[href]:hover { - color: #fff; - background-color: #ef172c; - text-decoration: none; -} - -.badge-warning { - background-color: #f3b600; - color: #2e2f39; -} - -.badge-warning[href]:focus, -.badge-warning[href]:hover { - color: #2e2f39; - background-color: #f3b600; - text-decoration: none; -} - -.badge-info { - background-color: #0998b0; -} - -.badge-info[href]:focus, -.badge-info[href]:hover { - color: #fff; - background-color: #17c0dc; - text-decoration: none; -} - -.badge-light { - background-color: #efeff6; - color: #757691; -} - -.badge-light[href]:focus, -.badge-light[href]:hover { - color: #2e2f39; - background-color: #d7d7df; - text-decoration: none; -} - -.badge-dark { - background-color: #1f202b; -} - -.badge-light[href]:focus, -.badge-light[href]:hover { - color: #2e2f39; - background-color: #d7d7df; - text-decoration: none; -} - -.dashboard-badges {} - -.badge-dot { - border-radius: 100%; - padding: 4px; - display: inline-block; - margin-right: 3px; -} - -.label { - padding: 3px 10px; - line-height: 13px; - color: #fff; - font-weight: 400; - border-radius: 2px; - font-size: 75%; -} - -.label-rounded { - border-radius: 60px; -} - -.label-primary { - background-color: #5969ff; -} - -.label-success { - background-color: #2ec551; -} - -.label-danger { - background-color: #ef172c; -} - - -/*----------------------- -2.14 Pagination --------------------------*/ - -.page-link { - position: relative; - display: block; - padding: .5rem .75rem; - margin-left: 0px; - margin-right: 5px; - line-height: 1.25; - color: #71748d; - background-color: #fff; - border: 1px solid #e6e6f2; - border-radius: 3px; - line-height: 1; -} - -.page-link:hover { - z-index: 2; - color: #fff; - text-decoration: none; - background-color: #5969ff; - border-color: #5969ff; -} - -.page-item.active .page-link { - z-index: 1; - color: #fff; - background-color: #5969ff; - border-color: #5969ff; -} - - -/*----------------------- -2.15 Spinner --------------------------*/ - -.spinner-xxl { - width: 150px; - height: 150px; -} - -.spinner-xl { - width: 120px; - height: 120px; -} - -.spinner-lg { - width: 100px; - height: 100px; -} - -.spinner-md { - width: 80px; - height: 80px; -} - -.spinner-sm { - width: 60px; - height: 60px; -} - -.spinner-xs { - width: 30px; - height: 30px; -} - -.dashboard-spinner { - margin: 0px 8px; - border-radius: 50%; - background-color: transparent; - border: 6px solid transparent; - border-top: 6px solid #5969ff; - border-left: 6px solid #5969ff; - -webkit-animation: 1s spin linear infinite; - animation: 1s spin linear infinite; - display: inline-block; -} - -.spinner-primary { - border-top-color: #5969ff; - border-left-color: #5969ff; -} - -.spinner-secondary { - border-top-color: #6c757d; - border-left-color: #6c757d; -} - -.spinner-success { - border-top-color: #2ec551; - border-left-color: #2ec551; -} - -.spinner-danger { - border-top-color: #dc3545; - border-left-color: #dc3545; -} - -.spinner-warning { - border-top-color: #ffc107; - border-left-color: #ffc107; -} - -.spinner-info { - border-top-color: #17a2b8; - border-left-color: #17a2b8; -} - -@-webkit-keyframes spin { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - -@keyframes spin { - from { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - to { - -webkit-transform: rotate(360deg); - transform: rotate(360deg); - } -} - - -/*----------------------- -2.16 Switch Toggle --------------------------*/ - -.switch-button.switch-button-xs { - height: 20px; - line-height: 16px; - width: 50px; -} - -.switch-button { - display: inline-block; - border-radius: 50px; - background-color: #9e9eaf; - width: 60px; - height: 27px; - padding: 4px; - position: relative; - overflow: hidden; - vertical-align: middle; -} - -.switch-button input[type=checkbox] { - display: none; -} - -.switch-button input[type=checkbox]:checked+span label { - float: right; - border-color: #2a75f3; -} - -.switch-button.switch-button-xs label { - height: 12px; - width: 12px; -} - -.switch-button input[type=checkbox]:checked+span label:before { - position: absolute; - font-size: 12px; - font-weight: 600; - z-index: 0; - content: "ON"; - color: #FFF; - left: 0; - text-align: left; - padding-left: 10px; -} - -.switch-button.switch-button-xs label:before { - line-height: 21px; -} - -.switch-button label:before { - position: absolute; - font-size: 12px; - font-weight: 600; - z-index: 0; - content: "OFF"; - right: 0; - display: block; - width: 100%; - height: 100%; - line-height: 27px; - top: 0; - text-align: right; - padding-right: 10px; - color: #FFF; -} - -.switch-button input[type=checkbox]:checked+span { - background-color: #5969ff; - display: block; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - padding: 4px; -} - -.switch-button.switch-button-sm label { - height: 16px; - width: 16px; -} - -.switch-button label { - border-radius: 50%; - box-shadow: 0 0 1px 1px #FFF inset; - background-color: #FFF; - margin: 0; - height: 19px; - width: 19px; - z-index: 1; - display: inline-block; - cursor: pointer; - background-clip: padding-box; -} - -.switch-button.switch-button-sm { - height: 24px; - width: 57px; - line-height: 20px; -} - -.switch-button.switch-button-lg { - height: 30px; - line-height: 32px; - width: 64px; -} - -.switch-button.switch-button-success input[type=checkbox]:checked+span { - background-color: #2ec551; -} - -.switch-button.switch-button-warning input[type=checkbox]:checked+span { - background-color: #ffc750; -} - -.switch-button.switch-button-danger input[type=checkbox]:checked+span { - background-color: #ef172c; -} - - -/* ========================================================================== - 3. Charts - ========================================================================== */ - - -/*----------------------- -3.1 Chartist.js --------------------------*/ - -.ct-line.ct-threshold-above, -.ct-point.ct-threshold-above, -.ct-bar.ct-threshold-above { - stroke: #f05b4f; -} - -.ct-line.ct-threshold-below, -.ct-point.ct-threshold-below, -.ct-bar.ct-threshold-below { - stroke: #59922b; -} - -.ct-area.ct-threshold-above { - fill: #f05b4f; -} - -.ct-area.ct-threshold-below { - fill: #59922b; -} - - -/*----------------------- -3.2 Sprkling.js --------------------------*/ - -.spark-chart { - display: inline-block; -} - -.spark-chart-info { - display: inline-block; - float: right; -} - - -/*----------------------- -3.3 Charts.js --------------------------*/ - - -/*----------------------- -3.4 Morris.js --------------------------*/ - - -/*----------------------- -3.5 C3 Charts.js --------------------------*/ - - -/* ========================================================================== - 4. Forms - ========================================================================== */ - - -/*----------------------- -4.1. Form Elements -------------------*/ - - -/*----------------------- -4.2. Form Validations -------------------*/ - - -/*----------------------- -4.3. Multiseelct ------------------*/ - - -/*----------------------- -4.4. Wizard -------------------*/ - - -/*----------------------- -4.5. Summar Note / Text Editor -------------------*/ - - -/*----------------------- -4.6. Multiupload ---------------------*/ - - -/* ========================================================================== - 5. Table - ========================================================================== */ - - -/*----------------------- -5.1. General ---------------------*/ - -.table { - margin-bottom: 0px; -} - -.table td, -.table th { - padding: 10px; - vertical-align: middle; - border-top: 1px solid #e6e6f2; - font-weight: normal; -} - -.table thead th { - vertical-align: bottom; - border-bottom: 2px solid #e6e6f2; -} - -.table thead th, -.table th { - color: #3d405c; - font-family: 'Circular Std Medium'; -} - -.table-bordered { - border: 1px solid #e6e6f2; -} - -.table-bordered td, -.table-bordered th { - border: 1px solid #e6e6f2; -} - -.table-striped tbody tr:nth-of-type(odd) { - background-color: rgba(230, 230, 242, .5); -} - -.table-hover tbody tr:hover { - background-color: rgba(230, 230, 242, .5); -} - - -/*----------------------- -5.2. Data Tables ---------------------*/ - - -/*-- row group table */ - -tr.group, -tr.group:hover { - background-color: #5969ff !important; - color: #fff; - font-family: 'Circular Std Medium'; - font-size: 18px; -} - - -/*----------------------- -5.3. Table Filters ---------------------*/ - - -/* ========================================================================== - 6. Pages - ========================================================================== */ - - -/*----------------------- -6.1 Blank Page --------------------------*/ - - -/*----------------------- -6.2 Blank Page Header --------------------------*/ - - -/*----------------------- -6.3 Login --------------------------*/ - - -/*----------------------- -6.4 Sign up Page --------------------------*/ - - -/*----------------------- -6.5 Forgot Password --------------------------*/ - - -/*----------------------- -6.6 Profile --------------------------*/ - - -/*----------------------- -6.7 Pricing --------------------------*/ - - -/*----------------------- -6.8 Timeline --------------------------*/ - - -/* -------------------------------- - -Patterns - reusable parts of our design - --------------------------------- */ - -@media only screen and (min-width:1170px) { - .cd-is-hidden { - visibility: hidden; - } -} - - -/* -------------------------------- - -Vertical Timeline - by CodyHouse.co - --------------------------------- */ - -.cd-timeline { - overflow: hidden; - margin: 2em auto; -} - -.cd-timeline__container { - position: relative; - width: 90%; - max-width: 1170px; - margin: 0 auto; - padding: 2em 0; -} - -.cd-timeline__container::before { - /* this is the vertical line */ - content: ''; - position: absolute; - top: 0; - left: 18px; - height: 100%; - width: 4px; - background: #dedee9; -} - -@media only screen and (min-width:1170px) { - .cd-timeline { - margin-top: 3em; - margin-bottom: 3em; - } - .cd-timeline__container::before { - left: 50%; - margin-left: -2px; - } -} - -.cd-timeline__block { - position: relative; - margin: 2em 0; -} - -.cd-timeline__block:after { - /* clearfix */ - content: ""; - display: table; - clear: both; -} - -.cd-timeline__block:first-child { - margin-top: 0; -} - -.cd-timeline__block:last-child { - margin-bottom: 0; -} - -@media only screen and (min-width:1170px) { - .cd-timeline__block { - margin: 4em 0; - } -} - -.cd-timeline__img { - position: absolute; - top: 0; - left: 0; - width: 40px; - height: 40px; - border-radius: 50%; - -webkit-box-shadow: 0 0 0 4px white, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05); - box-shadow: 0 0 0 4px white, inset 0 2px 0 rgba(0, 0, 0, 0.08), 0 3px 0 4px rgba(0, 0, 0, 0.05); -} - -.cd-timeline__img img { - display: block; - width: 24px; - height: 24px; - position: relative; - left: 50%; - top: 50%; - margin-left: -12px; - margin-top: -12px; -} - -.cd-timeline__img.cd-timeline__img--picture { - background: #2ec551; -} - -.cd-timeline__img.cd-timeline__img--movie { - background: #ef172c; -} - -.cd-timeline__img.cd-timeline__img--location { - background: #ffc108; -} - -@media only screen and (min-width:1170px) { - .cd-timeline__img { - width: 60px; - height: 60px; - left: 50%; - margin-left: -30px; - /* Force Hardware Acceleration */ - -webkit-transform: translateZ(0); - transform: translateZ(0); - } - .cd-timeline__img.cd-timeline__img--bounce-in { - visibility: visible; - -webkit-animation: cd-bounce-1 0.6s; - animation: cd-bounce-1 0.6s; - } -} - -@-webkit-keyframes cd-bounce-1 { - 0% { - opacity: 0; - -webkit-transform: scale(0.5); - transform: scale(0.5); - } - 60% { - opacity: 1; - -webkit-transform: scale(1.2); - transform: scale(1.2); - } - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -@keyframes cd-bounce-1 { - 0% { - opacity: 0; - -webkit-transform: scale(0.5); - transform: scale(0.5); - } - 60% { - opacity: 1; - -webkit-transform: scale(1.2); - transform: scale(1.2); - } - 100% { - -webkit-transform: scale(1); - transform: scale(1); - } -} - -.cd-timeline__content { - position: relative; - margin-left: 60px; - background: white; - border-radius: 0.25em; - padding: 1em; - border: none; - -webkit-box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); - -moz-box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); - box-shadow: 0px 1px 2px 1px rgba(154, 154, 204, 0.22); -} - -.cd-timeline__content:after { - /* clearfix */ - content: ""; - display: table; - clear: both; -} - -.cd-timeline__content::before { - /* triangle next to content block */ - content: ''; - position: absolute; - top: 16px; - right: 100%; - height: 0; - width: 0; - border: 7px solid transparent; - border-right: 7px solid white; -} - -.cd-timeline__content h2 {} - -.cd-timeline__content p, -.cd-timeline__read-more, -.cd-timeline__date {} - -.cd-timeline__content p {} - -.cd-timeline__read-more, -.cd-timeline__date { - display: inline-block; -} - -.cd-timeline__read-more { - float: right; - padding: .8em 1em; - background: #acb7c0; - color: white; - border-radius: 0.25em; -} - -.cd-timeline__read-more:hover { - background-color: #bac4cb; -} - -.cd-timeline__date { - float: left; - padding: .8em 0; - opacity: .7; -} - -@media only screen and (min-width:768px) { - .cd-timeline__content h2 {} - .cd-timeline__content p {} - .cd-timeline__read-more, - .cd-timeline__date {} -} - -@media only screen and (min-width:1170px) { - .cd-timeline__content { - margin-left: 0; - padding: 1.6em; - width: 45%; - /* Force Hardware Acceleration */ - -webkit-transform: translateZ(0); - transform: translateZ(0); - } - .cd-timeline__content::before { - top: 24px; - left: 100%; - border-color: transparent; - border-left-color: white; - } - .cd-timeline__read-more { - float: left; - } - .cd-timeline__date { - position: absolute; - width: 100%; - left: 122%; - top: 6px; - font-size: 18px; - } - .cd-timeline__block:nth-child(even) .cd-timeline__content { - float: right; - } - .cd-timeline__block:nth-child(even) .cd-timeline__content::before { - top: 24px; - left: auto; - right: 100%; - border-color: transparent; - border-right-color: white; - } - .cd-timeline__block:nth-child(even) .cd-timeline__read-more { - float: right; - } - .cd-timeline__block:nth-child(even) .cd-timeline__date { - left: auto; - right: 122%; - text-align: right; - } - .cd-timeline__content.cd-timeline__content--bounce-in { - visibility: visible; - -webkit-animation: cd-bounce-2 0.6s; - animation: cd-bounce-2 0.6s; - } -} - -@media only screen and (min-width:1170px) { - - /* inverse bounce effect on even content blocks */ - .cd-timeline__block:nth-child(even) .cd-timeline__content.cd-timeline__content--bounce-in { - -webkit-animation: cd-bounce-2-inverse 0.6s; - animation: cd-bounce-2-inverse 0.6s; - } -} - -@-webkit-keyframes cd-bounce-2 { - 0% { - opacity: 0; - -webkit-transform: translateX(-100px); - transform: translateX(-100px); - } - 60% { - opacity: 1; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes cd-bounce-2 { - 0% { - opacity: 0; - -webkit-transform: translateX(-100px); - transform: translateX(-100px); - } - 60% { - opacity: 1; - -webkit-transform: translateX(20px); - transform: translateX(20px); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@-webkit-keyframes cd-bounce-2-inverse { - 0% { - opacity: 0; - -webkit-transform: translateX(100px); - transform: translateX(100px); - } - 60% { - opacity: 1; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - -@keyframes cd-bounce-2-inverse { - 0% { - opacity: 0; - -webkit-transform: translateX(100px); - transform: translateX(100px); - } - 60% { - opacity: 1; - -webkit-transform: translateX(-20px); - transform: translateX(-20px); - } - 100% { - -webkit-transform: translateX(0); - transform: translateX(0); - } -} - - -/*----------------------- -6.9 404 error --------------------------*/ - -.error-section { - padding: 74px 0px; -} - -.error-section-content { - padding-top: 30px; - color: #3d405c; - padding-bottom: 30px; -} - - -/*----------------------- -6.9 Calendar --------------------------*/ - -#calendar1 { - margin: 0 auto; -} - -#wrap { - /* width: 1100px; */ - margin: 0 auto; -} - -#external-events { - float: left; - width: 270px; - padding: 0 20px; - border: 1px solid #e0e4ef; - background: #f9f9ff; - text-align: left; - border-radius: 4px; -} - -#external-events h4 { - font-size: 16px; - margin-top: 0; - padding-top: 1em; -} - -#external-events .fc-event { - margin: 10px 0; - cursor: pointer; -} - -#external-events p { - margin: 1.5em 0; - font-size: 11px; - color: #666; -} - -#external-events p input { - margin: 0; - vertical-align: middle; -} - -#calendar { - float: right; - width: 1240px; -} - - -/*----------------------- -6.10 Metrics --------------------------*/ - -.metric-row { - margin-bottom: 1.25rem; - border-radius: .25rem; - -webkit-box-align: stretch; - -ms-flex-align: stretch; - align-items: stretch; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -ms-flex-wrap: wrap; - flex-wrap: wrap; - margin-right: -10px; - margin-left: -10px; -} - -.metric-value { - margin-bottom: 0; - line-height: 1; - white-space: nowrap; -} - -.metric-label { - font-size: .875rem; - font-weight: 500; - color: #686f76; - white-space: nowrap; -} - -.metric-label:last-child { - margin-top: .5rem; - margin-bottom: 0; -} - -.metric-value>sub, -.metric-value>sup { - color: #ffa76a; - font-size: .5em; -} - -.card-metric { - text-align: center; - background-color: #fff; - border: none; - border-radius: 4px; - -webkit-box-shadow: 0 0 0 1px rgba(61, 70, 79, .05), 0 1px 3px 0 rgba(61, 70, 79, .15); - box-shadow: 0 0 0 1px rgba(61, 70, 79, .05), 0 1px 3px 0 rgba(61, 70, 79, .15); -} - -.metric-row .metric { - margin: 8px 0; - min-height: 136px; -} - -.metric-bordered { - border: 1px solid #d4d5d7; -} - -.metric-value>sub { - bottom: 5px; -} - - -/*----------------------- -6.11 Media Objects --------------------------*/ - -.dashboard-media-object .card-footer { - padding: 0px; -} - -.btn-account { - position: relative; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - margin: 0; - border: 0; - -ms-flex-wrap: none; - flex-wrap: none; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background: none; - color: inherit; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - cursor: pointer; - -webkit-transition: background-color .15s; - transition: background-color .15s; - outline: 0; -} - -.btn-account .account-summary { - margin-right: 16px; - margin-left: 8px; - display: block; - text-align: left; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - overflow: hidden; - text-overflow: clip; - white-space: nowrap; -} - -.btn-account .account-description, -.btn-account .account-name { - margin: 0; - display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - font-weight: 500; - line-height: 16px; -} - -.btn-account .account-description { - font-size: 12px; - font-weight: 400; - opacity: .7; -} - -.user-avatar { - position: relative; - display: inline-block; - vertical-align: middle; - margin-bottom: 10px; -} - -.avatar-badge { - position: absolute; - right: 3px; - bottom: 4px; - display: block; - width: 8px; - height: 8px; - line-height: 1.6; - text-align: center; - font-size: 8px; - color: #fff; - background-color: #a9acb0; - border-radius: 8px; - -webkit-box-shadow: 0 0 0 2px #fff; - box-shadow: 0 0 0 2px #fff; - z-index: 2; -} - -.avatar-badge.online { - background-color: #00a28a; -} - -.avatar-badge.idle { - background-color: #ec935e; -} - -.avatar-badge.busy { - background-color: #ea6759; -} - -.avatar-badge.offline { - color: #a9acb0; - background-color: #a9acb0; -} - -.avatar-badge.has-indicator { - width: 10px; - height: 10px; -} - -.avatar-group { - display: inline-block; -} - -.avatar-group .user-avatar img { - -webkit-box-shadow: 0 0 0 2px #fff; - box-shadow: 0 0 0 2px #fff; -} - -.avatar-group .user-avatar+.user-avatar { - display: inline-block; - margin-left: -10px; -} - -.avatar-group .user-avatar:focus, -.avatar-group .user-avatar:hover { - z-index: 2; -} - -.user-avatar-floated { - margin-top: -50px; - z-index: 2; -} - -.metric { - position: relative; - padding: 16px; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-orient: vertical; - -webkit-box-direction: normal; - -ms-flex-direction: column; - flex-direction: column; - -webkit-box-pack: center; - -ms-flex-pack: center; - justify-content: center; - -webkit-box-flex: 1; - -ms-flex-positive: 1; - flex-grow: 1; - max-width: 100%; - border-radius: 4px; - cursor: default; -} - -.metric-label:last-child { - margin-top: 12px; - margin-bottom: 0; -} - -.card-footer-item { - padding: 12px 35px; - -webkit-box-flex: 1; - -ms-flex: 1; - flex: 1; - text-align: center; - display: inline-block; -} - -.card-footer-item-bordered:not(:last-child) { - border-right: 1px solid rgb(230, 230, 242); -} - - -/*-------------------- User icon sizes ---------------------*/ - -.user-avatar-xxl { - height: 128px; - width: 128px; -} - -.user-avatar-xl { - height: 90px; - width: 90px; -} - -.user-avatar-lg { - height: 48px; - width: 48px; -} - -.user-avatar-md { - height: 32px; - width: 32px; -} - -.user-avatar-sm { - height: 24px; - width: 24px; -} - -.user-avatar-xs { - height: 18px; - width: 18px; -} - - -/*----------------------- -6.12 Shortable / Nesetable --------------------------*/ - -.dashboard-short-list {} - -.drag-handle, -.drag-indicator { - cursor: move; - cursor: -webkit-grab; - cursor: grab; -} - -.card-header+.list-group .list-group-item:first-child { - border-top: 0; -} - -.list-group-bordered .list-group-item { - border-color: rgba(19, 29, 40, .125); -} - -/*.list-group-item:first-child { - border-width: 0 0 1px; -}*/ - -.drag-indicator { - display: inline-block; - margin: 0 .5em; - height: 8px; - width: 6px; - background-image: url(/images/drag-indicator.png); - -webkit-transform: translate3d(-.5em, 0, 0); - transform: translate3d(-.5em, 0, 0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.dashboard-short-list .list-group-item { - display: flex; -} - -.dd { - position: relative; - display: block; - margin: 0; - padding: 0; - max-width: 100%; - list-style: none; - font-size: 13px; - line-height: 20px; -} - -.dd-list { - display: block; - position: relative; - margin: 0; - padding: 0; - list-style: none; - width: 100%; -} - -.dd-list .dd-list { - padding-left: 30px; -} - -.dd-collapsed .dd-list { - display: none; -} - -.dd-item, -.dd-empty, -.dd-placeholder { - display: block; - position: relative; - margin: 0; - padding: 0; - min-height: 20px; - font-size: 13px; - line-height: 20px; -} - -.dd-handle { - margin-bottom: -1px; - padding: .75rem 1rem; - display: -webkit-box; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - background-color: #fff; - border-top: 1px solid rgba(19, 29, 40, .125); - border-bottom: 1px solid rgba(19, 29, 40, .125); -} - -.dd-handle:hover { - color: #5969ff; - background: #fff; -} - -.dd-item>button { - display: block; - position: relative; - cursor: pointer; - float: left; - width: 34px; - height: 20px; - margin: 18px 0; - padding: 0; - text-indent: 100%; - white-space: nowrap; - overflow: hidden; - border: 0; - background: transparent; - font-size: 12px; - line-height: 1; - text-align: center; - font-weight: bold; -} - -.dd-item>button:before { - content: '+'; - display: block; - position: absolute; - width: 100%; - text-align: center; - text-indent: 0; - font-size: 14px; -} - -.dd-item>button[data-action="collapse"]:before { - content: '-'; -} - -.dd-placeholder, -.dd-empty { - margin: 5px 0; - padding: 0; - min-height: 30px; - background: #f5f5f5; - border: 1px dashed #b6bcbf; - box-sizing: border-box; - -moz-box-sizing: border-box; -} - -.dd-empty { - border: 1px dashed #bbb; - min-height: 100px; - background-color: #f5f5f5; - background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); - background-image: -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -moz-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); - background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff); - background-size: 60px 60px; - background-position: 0 0, 30px 30px; -} - -.dd-dragel { - position: absolute; - pointer-events: none; - z-index: 9999; -} - -.dd-dragel>.dd-item .dd-handle { - margin-top: 0; -} - -.dd-dragel .dd-handle { - -webkit-box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, .1); - box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, .1); -} - - -/** -* Nestable Extras -*/ - -.nestable-lists { - display: block; - clear: both; - padding: 30px 0; - width: 100%; - border: 0; - border-top: 2px solid #ddd; - border-bottom: 2px solid #ddd; -} - -#nestable-menu { - padding: 0; - margin: 20px 0; -} - -#nestable-output, -#nestable2-output { - width: 100%; - height: 7em; - font-size: 0.75em; - line-height: 1.333333em; - font-family: Consolas, monospace; - padding: 5px; - box-sizing: border-box; - -moz-box-sizing: border-box; -} - -#nestable2 .dd-handle {} - -#nestable2 .dd-handle:hover {} - -#nestable2 .dd-item>button:before {} - -.dd-hover>.dd-handle { - background: #5969ff !important; -} - - -/** -* Nestable Draggable Handles -*/ - -.dd3-content { - display: block; - height: 30px; - margin: 5px 0; - padding: 5px 10px 5px 40px; - color: #333; - text-decoration: none; - font-weight: bold; - border: 1px solid #ccc; - background: #fafafa; - background: -webkit-linear-gradient(top, #fafafa 0%, #eee 100%); - background: -moz-linear-gradient(top, #fafafa 0%, #eee 100%); - background: linear-gradient(to top, #fafafa 0%, #eee 100%); - -webkit-border-radius: 3px; - border-radius: 3px; - box-sizing: border-box; - -moz-box-sizing: border-box; -} - -.dd3-content:hover { - color: #2ea8e5; - background: #fff; -} - -.dd-dragel>.dd3-item>.dd3-content { - margin: 0; -} - -.dd3-item>button { - margin-left: 30px; -} - -.dd3-handle { - position: absolute; - margin: 0; - left: 0; - top: 0; - cursor: pointer; - width: 30px; - text-indent: 100%; - white-space: nowrap; - overflow: hidden; - border: 1px solid #aaa; - background: #ddd; - background: -webkit-linear-gradient(top, #ddd 0%, #bbb 100%); - background: -moz-linear-gradient(top, #ddd 0%, #bbb 100%); - background: linear-gradient(to top, #ddd 0%, #bbb 100%); - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} - -.dd3-handle:before { - content: '≡'; - display: block; - position: absolute; - left: 0; - top: 3px; - width: 100%; - text-align: center; - text-indent: 0; - color: #fff; - font-size: 20px; - font-weight: normal; -} - -.dd3-handle:hover { - background: #ddd; -} - - -/** -* Socialite -*/ - -.socialite { - display: block; - float: left; - height: 35px; -} - - -/*----------------------- -6.13 404 Error --------------------------*/ - - -/*----------------------- -6.14 Comments Widget --------------------------*/ - -.comment-widgets { - position: relative; - margin-bottom: 10px; -} - -.comment-widgets .comment-row { - border-bottom: 1px solid transparent; - padding: 14px; - display: flex; - margin: 10px 0; -} - -.comment-widgets .comment-row:last-child { - border-bottom: 0px; -} - -.comment-widgets .comment-row:hover, -.comment-widgets .comment-row.active { - background: rgba(0, 0, 0, 0.05); -} - -.comment-text { - padding-left: 15px; - width: 100%; -} - -.comment-text:hover .comment-footer .action-icons, -.comment-text.active .comment-footer .action-icons { - visibility: visible; -} - -.comment-text p { - max-height: 65px; - width: 100%; - overflow: hidden; -} - -.comment-footer .action-icons { - visibility: hidden; -} - -.comment-footer .action-icons a { - padding-left: 7px; - vertical-align: middle; - color: #9e9fa7; -} - -.comment-footer .action-icons a:hover, -.comment-footer .action-icons a.active { - color: #5969ff; -} - - -/*----------------------- -6.14 mail box widget --------------------------*/ - -.mailbox .drop-title { - font-weight: 600; - padding: 11px 20px 15px; - border-radius: 2px 2px 0 0; - position: relative; -} - -.mailbox .drop-title:after { - content: ""; - position: absolute; - opacity: 0.2; - top: 0px; - left: 0px; - height: 100%; - width: 100%; - background-size: cover; -} - -.mailbox .nav-link { - border-top: 1px solid #e9ecef; - padding-top: 15px; - color: #3e5569; -} - -.mailbox .message-center { - position: relative; -} - -.mailbox .message-center .message-item { - border-bottom: 1px solid #e9ecef; - display: block; - text-decoration: none; - padding: 9px 15px; -} - -.mailbox .message-center .message-item:hover { - background: #f8f9fa; -} - -.mailbox .message-center .message-item .message-title { - color: #212529; -} - -.mailbox .message-center .message-item .user-img { - width: 40px; - position: relative; - display: inline-block; - margin: 0 0px 15px 0; -} - -.mailbox .message-center .message-item .user-img img { - width: 100%; -} - -.mailbox .message-center .message-item .user-img .profile-status { - border: 2px solid #fff; - border-radius: 50%; - display: inline-block; - height: 10px; - left: 30px; - position: absolute; - top: 1px; - width: 10px; -} - -.mailbox .message-center .message-item .user-img .online { - background: #36bea6; -} - -.mailbox .message-center .message-item .user-img .busy { - background: #f62d51; -} - -.mailbox .message-center .message-item .user-img .away { - background: #ffbc34; -} - -.mailbox .message-center .message-item .user-img .offline { - background: #ffbc34; -} - -.mailbox .message-center .message-item .mail-contnet { - display: inline-block; - width: 75%; - padding-left: 10px; - vertical-align: middle; -} - -.mailbox .message-center .message-item .mail-contnet .message-title { - margin: 5px 0px 0; -} - -.mailbox .message-center .message-item .mail-contnet .mail-desc, -.mailbox .message-center .message-item .mail-contnet .time { - font-size: 12px; - display: block; - margin: 1px 0; - text-overflow: ellipsis; - overflow: hidden; - color: #a1aab2; - white-space: nowrap; -} - - -/* ========================================================================== -7. Email Componants -========================================================================== */ - - -/*------------------------ -7.1 Inbox -----------------------------*/ - -.page-aside { - background: none repeat scroll 0 0 #ffffff; - width: 280px; - height: 100%; - position: fixed; - top: 0; - left: 265px; - border-right: 1px solid #e6e6f2; - margin-top: 61px; - padding-bottom: 61px; - color: #404040; -} - -.page-aside .aside-header { - padding: 20px 22px; - position: relative; -} - -.aside-header {} - -.aside-header .navbar-toggle { - background: 0 0; - display: none; - outline: 0; - border: 0; - padding: 0 11px 0 0; - text-align: right; - margin: 0; - width: 100%; - height: 100%; - top: 0; - left: 0; - position: absolute; -} - -.aside-header .navbar-toggle .icon { - font-size: 24px; - color: #71738d; -} - -.aside-nav .nav li .icon { - font-size: 13px; - vertical-align: middle; - text-align: center; - min-width: 19px; - margin-right: 6px; - color: #71748d; -} - -.aside-nav .nav li.active a { - color: #f12257; - background: #fff0f4; -} - -.aside-nav .nav li.active a .icon { - color: #4285f4; -} - -.aside-header .title { - display: block; - margin: 10px 0 0; - font-size: 27px; - line-height: 27px; - font-weight: 300; - color: #3d405c; -} - -.aside-header .description { - color: #71748d; - margin: 0; -} - -.aside-nav.collapse { - display: block; -} - -.aside-nav { - visibility: visible; - font-size: 14px; -} - -.aside-content .nav { - display: block; -} - -.aside-content .nav li a { - display: block; - position: relative; -} - -.aside-nav .nav li a { - color: #71748d; - padding: 10px 20px; -} - -.aside-content .nav li a:hover { - text-decoration: none; - background-color: #efeff6; -} - -.aside-nav .nav li.active a .icon { - color: #dd1151; -} - -.email-list-item .from { - display: block; - font-weight: 400; - font-size: 1rem; - margin: 0 0 1px 0; -} - -.email-list-item .msg { - margin: 0; - color: #71738d; -} - -.email-list-item .icon { - margin-right: 7px; - font-size: 1.154rem; - vertical-align: middle; - color: #3d405c; -} - -.aside-nav .nav li .badge { - float: right; - font-size: 14px; - font-weight: 300; - padding: 3px 6px; -} - -.aside-nav .title { - display: block; - color: #3d405c; - font-size: 12px; - font-weight: 700; - text-transform: uppercase; - margin: 20px 0 0; - padding: 8px 22px 4px; -} - -.aside-compose { - text-align: center; - padding: 14px 25px; -} - -.dashboard-main-wrapper .main-content { - margin-left: 266px; - width: auto; -} - -.email-inbox-header { - background-color: #fff; - padding: 25px 25px; -} - -.email-title { - display: block; - margin: 3px 0 0; - font-size: 22px; - font-weight: 300; -} - -.email-title .icon { - font-size: 22px; - color: #71738d; -} - -.email-title .new-messages { - font-size: 1rem; - color: #3d405c; - margin-left: 3px; -} - -.input-search .input-group-btn { - position: absolute; - display: block; - width: auto; - top: 1px; - right: 1px; - z-index: 3; -} - -.input-search .input-group-btn .btn { - padding: 5px 10px; - border-top-left-radius: 0px; - border-bottom-left-radius: 0px; - border-bottom-right-radius: 1px; - border-top-right-radius: 1px; -} - -.email-filters { - padding: 20px; - border-bottom: 1px solid #e6e6f2; - background-color: #fff; - display: table; - width: 100%; - border-top: 1px solid #e6e6f2; -} - - - -.email-filters .be-select-all.custom-checkbox { - display: inline-block; - vertical-align: middle; - padding: 0; - margin: 0 30px 0 0; -} - -.btn-group, -.btn-group-vertical { - position: relative; - display: -webkit-inline-box; - display: -ms-inline-flexbox; - display: inline-flex; - vertical-align: middle; -} - -.email-filters input { - margin-right: 8px; -} - -.custom-control-label { - position: static; - display: inline-block; - line-height: 2; -} - -.email-filters .email-filters-right { - text-align: right; -} - -.email-filters>div { - display: table-cell; - vertical-align: middle; -} - -.email-pagination-indicator { - display: inline-block; - vertical-align: middle; - margin-right: 13px; -} - -.email-list { - background: #eee; -} - -.email-list-item { - border-bottom: 1px solid #e6e6f2; - padding: 10px 20px; - display: table; - width: 100%; - cursor: pointer; - position: relative; - background-color: #fcfcff; - font-size: 14px; -} - -.email-list-item--unread { - background-color: #ffffff; -} - -.email-list-item--unread .from, -.email-list-item--unread .msg { - color: #3d405c; - font-weight: 800; - -webkit-font-smoothing: initial; -} - -.email-list-item--unread .msg { - color: #3d405c; -} - -.email-list-actions { - width: 40px; -} - -.email-list-actions, -.email-list-detail { - vertical-align: top; - display: table-cell; -} - -.email-list-actions .favorite { - display: block; - padding-top: 5px; - padding-left: 1px; - line-height: 15px; -} - -.email-list-actions .favorite span { - font-size: 12px; - line-height: 10px; - color: silver; -} - -.email-list-actions .favorite:hover span { - color: #8d8d8d; -} - -.email-list-actions .favorite.active span { - color: #ffc600; -} - -.email-list-item:hover { - background-color: #fff; -} - -.email-list-actions .custom-checkbox { - padding: 0; - margin-top: -2px; -} - -.email-list-actions .custom-checkbox.custom-control { - margin-bottom: 0; -} - - -/*------------------- -7.2 Email Details ---------------------*/ - -.email-head { - background-color: #fff; -} - -.email-head-subject { - padding: 25px 25px; - border-bottom: 1px solid #e6e6f2; -} - -.email-head-subject .title { - display: block; - font-size: 1.769rem; - font-weight: 300; - color: #3d405c; -} - -.email-head-subject .title>a.active .icon { - color: #ffc600; -} - -.email-head-subject .title>a .icon { - color: silver; - font-size: 14px; - margin-right: 6px; - vertical-align: middle; - line-height: 31px; - position: relative; - top: -1px; -} - -.email-head-subject .icons { - font-size: 14px; - float: right; -} - -.email-head-subject .icons .icon { - color: #71738d; - margin-left: 12px; - vertical-align: middle; -} - -.email-head-sender .avatar { - float: left; - margin-right: 10px; -} - -.email-head-sender { - padding: 13px 25px; - line-height: 40px; -} - -.email-head-sender .date { - float: right; - font-size: 12px; -} - -.email-head-sender .avatar { - float: left; - margin-right: 10px; -} - -.email-head-sender .sender { - font-size: 1.15rem; -} - -.email-head-sender .sender .actions { - display: inline-block; - position: relative; -} - -.email-head-sender .sender .icon { - font-size: 1.538rem; - line-height: 16px; - color: #5a5a5a; - margin-left: 7px; -} - -.email-body { - background-color: #fff; - border-top: 1px solid #e6e6f2; - padding: 30px 28px; -} - -.email-attachments { - background-color: #fff; - padding: 25px 28px; - border-top: 1px solid #e6e6f2; -} - -.email-attachments .title { - display: block; - font-weight: 500; -} - -.email-attachments .title span { - font-weight: 400; -} - -.email-attachments ul { - list-style: none; - margin: 15px 0 0; - padding: 0; -} - -.email-attachments ul>li { - line-height: 23px; -} - -.email-attachments ul>li a { - color: #404040; - font-weight: 500; -} - -.email-attachments ul>li .icon { - vertical-align: middle; - color: #737373; - margin-right: 2px; -} - -.email-attachments ul>li span { - font-weight: 400; -} - - -/*------------------- -7.3 Email Compose -----------------------*/ - -.email-head-title { - padding: 25px 25px; - border-bottom: 1px solid #e6e6f2; - display: block; - font-weight: 400; - color: #3d405c; - font-size: 1.769rem; -} - -.email-head-title .icon { - color: #696969; - margin-right: 12px; - vertical-align: middle; - line-height: 31px; - position: relative; - top: -1px; - float: left; - font-size: 1.538rem; -} - -.email-compose-fields { - background-color: #fff; - border-bottom: 1px solid #e6e6f2; - padding: 30px 30px 20px; -} - -.form-group.row { - margin-bottom: 0; - padding: 12px 0; -} - -.form-group.row label { - white-space: nowrap; -} - -.email-compose-fields label { - padding-top: 15px; -} - -.email.editor { - background-color: #fff; -} - -.email.action-send { - padding: 20px 0px; -} - -.btn-space { - margin-right: 5px; - margin-bottom: 5px; -} - -.breadcrumb { - margin: 0; - background-color: transparent; -} - - - - -/*------------------- -7.4 Message Chat Module -----------------------*/ - -.chat-body{overflow: hidden;} - -.chat-module { - height: 100%; - display: flex; - flex-direction: column; - flex: 1; - justify-content: space-between; - -} -.chat-module { - height: calc(100vh - 105px); -} -.dashboard-main-wrapper .content-container>.chat-module { - /*height: 100%;*/ -} - -.dashboard-main-wrapper .content-container>.chat-module { - overflow: hidden; - padding: 1.5rem; -} - -.chat-module .chat-module-body { - width: 100%; - position: absolute; - top: 55px; - height: calc(100% - 4rem); - overflow-y: scroll; - padding-right: 1.5rem; - -ms-overflow-style: none; -} - -.dashboard-main-wrapper .content-container>.chat-module .chat-module-body { - width: 100%; - padding-right: 0; -} - -.chat-module .chat-module-top { - display: flex; - flex-direction: column; - flex: 1; - max-height: calc(100% - 3.5rem); - position: relative; -} - -.avatar { - width: 2.25rem; - height: 2.25rem; - border-radius: 50%; - border: 2px solid #F7F9FA; - background: #F7F9FA; - color: #fff; -} - -.media-attachment { - padding-left: 0.75rem; - align-items: center; - border-left: 4px solid #E9EEF2; -} - -.chat-item .media-attachment { - border-color: #dedee4; -} -.chat-item-author{color: #333;} - -.media-attachment:not(:first-child) { - margin-top: 0.75rem; -} - -.media-attachment div.avatar { - border: none; -} - -.avatar.bg-primary { - display: flex; - align-items: center; - justify-content: center; -} - -.avatar.bg-primary i { - font-size: 14px; -} - -.media { - display: flex; - align-items: flex-start; -} - -.chat-item { - font-size: .875rem; - line-height: 1.3125rem; -} - -.dashboard-main-wrapper .content-container>.chat-module .chat-item { - padding-bottom: 1.5rem; -} - -.dashboard-main-wrapper .content-container>.chat-module .chat-item:not(:last-child) { - border-bottom: 1px solid #e6e6f2; -} - -.dashboard-main-wrapper .content-container>.chat-module .chat-item .media-body { - background: none; -} - -.chat-item>.media-body { - margin-left: 0.75rem; - border-radius: 0.5rem; - padding: 6px 1px; - background: transparent; -} - -.media-body { - flex: 1; -} - -.chat-item+.chat-item { - margin-top: 0.75rem; -} - -.chat-item .chat-item-title { - display: flex; - justify-content: space-between; - margin-bottom: 0.375rem; -} - -.dashboard-main-wrapper .main-container { - overflow: hidden; - flex: 1; -} - -.dashboard-main-wrapper .content-container { - display: flex; - height: calc(100vh - 3.5625rem); -} - -.dashboard-main-wrapper .content-container>.chat-module .chat-item .media-body { - padding: 0; - background: none; -} - -.media-attachment .media-body>a { - display: block; -} - -.media-attachment .media-body { - margin-left: 0.75rem; -} - -.chat-module .chat-module-bottom { - position: relative; - padding-top: 1rem; - border-top: 1px solid #E9EEF2; - background: #efeff6; - -} - -.chat-form { - position: relative; -} - -.chat-module .chat-module-bottom textarea { - max-height: 9rem; -} - -.chat-form textarea { - padding-right: 3.375rem; -} - -.chat-form-buttons { - position: absolute; - top: 6px; - right: 0.25rem; - display: flex; - align-items: center; -} - -.chat-form-buttons button { - padding: 0; -} - -.chat-form-buttons .custom-file-naked { - width: 1.5rem; - margin-left: 0.375rem; - top: 5px; -} - -.custom-file-naked { - cursor: pointer; - width: auto; - height: auto; -} - -.custom-file { - position: relative; - display: inline-block; - width: 100%; - height: calc(2.125rem + 2px); - margin-bottom: 0; -} - -.custom-file-naked .custom-file-input { - width: auto; - height: auto; - cursor: pointer; -} - -.custom-file-naked .custom-file-label { - border: none; - background: none; - padding: 0; - margin: 0; - height: auto; - cursor: pointer; -} - -.chat-form-buttons i { - color: #6c757d; - font-size: 1.25rem; - cursor: pointer; -} - -.custom-file-label::after { - display: none; -} - -.chat-sidebar { - height: 100%; - overflow: hidden; - width: 384px; - border-left: 1px solid #e6e6f2; - display: flex; - flex-direction: column; - background: #fff; -} - -.chat-sidebar-content { - max-height: 100%; - display: flex; - flex-direction: column; - flex: 1; -} - -.text-small { - font-size: .875rem; - line-height: 1.3125rem; -} - -.chat-team-sidebar { - display: flex; - flex-direction: column; - height: 100%; -} - -.chat-team-sidebar .chat-team-sidebar-top { - padding: 1.5rem; -} - -.align-items-center { - align-items: center !important; -} - -.chat-team-sidebar .nav { - margin-top: 1.5rem; -} - -.chat-team-sidebar .nav-tabs { - border-radius: 4px; - background: #EEF2F5; -} - -.chat-team-sidebar .nav-tabs .nav-item { - margin: .5rem; -} - -.chat-team-sidebar .nav-tabs .nav-link:not(.active) { - color: rgba(33, 37, 41, 0.5); -} - -.chat-team-sidebar .nav-tabs .nav-link { - font-size: 14px; - font-weight: 500; - border-radius: 4px; - padding: 10px; - transition: color .35s ease-out; -} - -.chat-team-sidebar .chat-team-sidebar-bottom, -.chat-team-sidebar .chat-team-sidebar-bottom .tab-content { - flex: 1; - height: 100%; - display: flex; - flex-direction: column; -} - -.chat-team-sidebar .chat-team-sidebar-bottom, -.chat-team-sidebar .chat-team-sidebar-bottom .tab-content { - flex: 1; - height: 100%; - display: flex; - flex-direction: column; -} - -.chat-team-sidebar .tab-pane { - overflow-y: none; - -ms-overflow-style: none; - height: 100%; -} - -.chat-team-sidebar .list .list-group-item { - width: 100%; -} - -.sidebar form.dropzone { - padding: 0 1.5rem; -} - -form.dropzone { - width: 100%; - margin-bottom: 1.5rem; -} - -.sidebar .dz-message { - background: #F7F9FA; - padding: 1rem; -} - -.dz-message { - text-align: center; - padding: 1.5rem; - display: block; - font-size: .875rem; - font-weight: 500; - opacity: 1; - cursor: pointer; - border-radius: 0.5rem; - background: #fff; - border: 1px dashed #E9EEF2; - transition: all .35s ease; - color: rgba(108, 117, 125, 0.5); -} - -.dropzone-previews { - width: 100%; -} - -.dz-file-representation img:not([src]) { - display: none; -} - -.dz-file-representation img { - position: absolute; - object-fit: cover; -} - -.dz-preview .avatars li:last-child { - transition: opacity .35s ease; - opacity: 0; -} - -.dz-loading { - opacity: 1; - transition: opacity .35s ease; - position: absolute; - left: 1.1875rem; -} - -.list-group-activity .avatars { - margin-right: 0.75rem; - display: flex; - align-items: center; -} - -.list-group-activity span { - margin-right: 0.25rem; -} - -.list-group-activity .avatars>li:first-child { - position: relative; - z-index: 2; -} - -.avatar { - width: 2.25rem; - height: 2.25rem; - border-radius: 50%; - border: 2px solid #F7F9FA; - background: #F7F9FA; - color: #fff; -} - -.avatars>li { - display: inline-block; -} - -.chat-team-sidebar .list-group-activity .avatar { - border-color: #fff; -} - -.avatars { - padding-left: 0; - list-style: none; - margin: 0; -} - -.avatar.bg-primary { - display: flex; - align-items: center; - justify-content: center; -} - -.avatars>li+li { - margin-left: -0.75rem; -} - -.btn-options { - color: #6c757d; - padding: 0; - background: none; - border: none; - cursor: pointer; - display: flex; - align-items: center; -} - - -/* ========================================================================== -9. Map -========================================================================== */ - - -/*---------------------- -9.1 Google Map ----------------------------*/ - -.gmaps { - height: 350px; - width: 100%; -} - -#map-1 { - height: 400px; -} - -#map-2 { - height: 400px; -} - -#map-3 { - height: 400px; -} - - -/*---------------------- -9.2 Vector Map ----------------------------*/ - - -/*------------------------------------------------------------------- -Media Query --------------------------------------------------------------------*/ - - -/*========== Non-Mobile First Method ==========*/ - - -/* Large Devices, Wide Screens */ - -@media only screen and (max-width:1400px) {.product-price{position: initial;}.product-slider { - background-color: #fff; - border-top-left-radius: 4px; - padding: 131px 28px;} - - .influencer-profile-data .user-social-media { - padding: 16px 56px; - text-align: center; - border-right: 1px solid #e6e6f2; -} -} -@media only screen and (max-width:1200px) {.product-price{position: initial;}.product-slider{padding: 131px 30px;} -/*--------- dashboard-influence -------- */ - .user-social-media { - padding: 16px 45px; - text-align: center; - width: 100%; - border-bottom: 1px solid #dee2e6; - border-right: transparent !important; - } - - -} - - -/* Medium Devices, Desktops */ - -@media only screen and (max-width:992px) { - -/*--------- dashboard-influence -------- */ - .user-social-media { - padding: 16px 45px; - text-align: center; - width: 100%; - border-bottom: 1px solid #dee2e6; - border-right: transparent !important; - } - -} - - -/* Small Devices, Tablets */ - -@media only screen and (max-width:768px) { - .dashboard-content { - padding: 20px 20px 60px 20px; -} - .nav-left-sidebar .navbar a { - color: #fff; - font-size: 18px; - } - .nav-left-sidebar .navbar { - padding: 14px; - } - .nav-left-sidebar { - width: 100%; - position: relative; - top: 0px; - right: 0px; - } - .dashboard-wrapper { - margin-left: 0px; - } - .dashboard-footer { - margin-left: 0px; - } - .nav-left-sidebar .navbar-toggler { - background-color: #fff; - } - - /* infulencer dahboard */ - .dashboard-influence .card-footer-item { - padding: 11px 54px; - } - .influencer-profile .tab-regular .nav.nav-tabs .nav-item .nav-link, - .influencer-profile .tab-regular .nav.nav-pills .nav-item .nav-link { - display: block; - padding: 17px 13px; - } - - /* Inbox */ - .page-aside { - background: none repeat scroll 0 0 #ffffff; - width: 280px; - height: 100%; - position: absolute; - top: 0; - left: 0; - border-right: 1px solid #e6e6f2; - margin-top: 0; - padding-bottom: 0px; - color: #404040; - } - - /*--------- dashboard-product-single -------- */ -.product-slider{padding: 131px 30px;} -.product-carousel .carousel-indicators{bottom: -30px;} - -/*--------- dashboard-influence -------- */ - .user-social-media { - padding: 16px 45px; - text-align: center; - width: 100%; - border-bottom: 1px solid #dee2e6; - border-right: transparent !important; - } - - -} - - -/* Extra Small Devices, Phones */ - -@media only screen and (max-width:480px) { - .dashboard-content { - padding: 20px 20px 60px 20px; -} - .nav-left-sidebar .navbar a { - color: #fff; - } - .nav-left-sidebar .navbar-toggler { - background-color: #fff; - } - .aside-header .navbar-toggle { - display: block; - } - .nav-left-sidebar .navbar { - padding: 14px; - } - .nav-left-sidebar { - width: 100%; - position: relative; - top: 0px; - right: 0px; - } - - .dashboard-wrapper { - margin-left: 0px; - } - .dashboard-footer { - margin-left: 0px; - } - .page-aside { - background: none repeat scroll 0 0 #fff; - width: 100%; - height: 100%; - position: relative; - top: 0; - left: 0px; - border-right: transparent; - margin-top: 0px; - padding-bottom: 0px; - color: #404040; - border-bottom: 1px solid #e6e6f2; - } - .aside-nav.collapse { - display: none; - } - .dashboard-main-wrapper .main-content { - margin-left: 0px; - width: auto; - } - .aside-nav.show { - display: block; - } - - /*--------- dashboard-influence -------- */ - .user-social-media { - padding: 16px 45px; - text-align: center; - width: 100%; - border-bottom: 1px solid #dee2e6; - border-right: transparent !important; - } - .user-social-media:last-child { - border-bottom: transparent; - border-right: transparent !important; - } - .dashboard-influence .progress { - width: 74%; - } - .footer { - margin-left: 0px; - } - .influencer-profile-data .user-avatar { - float: initial; - } - .influencer-profile-data .user-avatar-name { - float: initial; - } - .dashboard-influence .card-footer-item { - padding: 11px 48px; - } - - /*--------- dashboard-profile -------- */ - .tab-regular .nav.nav-tabs .nav-item .nav-link, - .tab-regular .nav.nav-pills .nav-item .nav-link { - display: block; - padding: 17px 38px; - } - .tab-regular .nav.nav-tabs .nav-item, - .tab-regular .nav.nav-pills .nav-item { - margin-bottom: 5px; - } - /*--------- dashboard-product-single -------- */ -.product-slider{padding: 30px 10px;} -.product-carousel .carousel-indicators{bottom: -30px;} -.simple-card .nav.nav-tabs .nav-item .nav-link { - padding: 17px 29px;} -} - - - - -/* Custom, iPhone Retina */ -@media only screen and (max-width:320px) {} \ No newline at end of file diff --git a/assets/libs/js/dashboard-ecommerce.js b/assets/libs/js/dashboard-ecommerce.js deleted file mode 100644 index c8b4ddd..0000000 --- a/assets/libs/js/dashboard-ecommerce.js +++ /dev/null @@ -1,265 +0,0 @@ - - - $(function() { - "use strict"; - // ============================================================== - // Product Sales - // ============================================================== - - new Chartist.Bar('.ct-chart-product', { - labels: ['Q1', 'Q2', 'Q3', 'Q4'], - series: [ - [800000, 1200000, 1400000, 1300000], - [200000, 400000, 500000, 300000], - [100000, 200000, 400000, 600000] - ] - }, { - stackBars: true, - axisY: { - labelInterpolationFnc: function(value) { - return (value / 1000) + 'k'; - } - } - }).on('draw', function(data) { - if (data.type === 'bar') { - data.element.attr({ - style: 'stroke-width: 40px' - }); - } - }); - }); - - - - - // ============================================================== - // Product Category - // ============================================================== - var chart = new Chartist.Pie('.ct-chart-category', { - series: [60, 30, 30], - labels: ['Bananas', 'Apples', 'Grapes'] - }, { - donut: true, - showLabel: false, - donutWidth: 40 - - }); - - - chart.on('draw', function(data) { - if (data.type === 'slice') { - // Get the total path length in order to use for dash array animation - var pathLength = data.element._node.getTotalLength(); - - // Set a dasharray that matches the path length as prerequisite to animate dashoffset - data.element.attr({ - 'stroke-dasharray': pathLength + 'px ' + pathLength + 'px' - }); - - // Create animation definition while also assigning an ID to the animation for later sync usage - var animationDefinition = { - 'stroke-dashoffset': { - id: 'anim' + data.index, - dur: 1000, - from: -pathLength + 'px', - to: '0px', - easing: Chartist.Svg.Easing.easeOutQuint, - // We need to use `fill: 'freeze'` otherwise our animation will fall back to initial (not visible) - fill: 'freeze' - } - }; - - // If this was not the first slice, we need to time the animation so that it uses the end sync event of the previous animation - if (data.index !== 0) { - animationDefinition['stroke-dashoffset'].begin = 'anim' + (data.index - 1) + '.end'; - } - - // We need to set an initial value before the animation starts as we are not in guided mode which would do that for us - data.element.attr({ - 'stroke-dashoffset': -pathLength + 'px' - }); - - // We can't use guided mode as the animations need to rely on setting begin manually - // See http://gionkunz.github.io/chartist-js/api-documentation.html#chartistsvg-function-animate - data.element.animate(animationDefinition, false); - } - }); - - // For the sake of the example we update the chart every time it's created with a delay of 8 seconds - - - - // ============================================================== - // Customer acquisition - // ============================================================== - var chart = new Chartist.Line('.ct-chart', { - labels: ['Mon', 'Tue', 'Wed'], - series: [ - [1, 5, 2, 5], - [2, 3, 4, 8] - - ] - }, { - low: 0, - showArea: true, - showPoint: false, - fullWidth: true - }); - - chart.on('draw', function(data) { - if (data.type === 'line' || data.type === 'area') { - data.element.animate({ - d: { - begin: 2000 * data.index, - dur: 2000, - from: data.path.clone().scale(1, 0).translate(0, data.chartRect.height()).stringify(), - to: data.path.clone().stringify(), - easing: Chartist.Svg.Easing.easeOutQuint - } - }); - } - }); - - - - - // ============================================================== - // Revenue Cards - // ============================================================== - $("#sparkline-revenue").sparkline([5, 5, 7, 7, 9, 5, 3, 5, 2, 4, 6, 7], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#5969ff', - fillColor: '#dbdeff', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize: true - }); - - - - $("#sparkline-revenue2").sparkline([3, 7, 6, 4, 5, 4, 3, 5, 5, 2, 3, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#ff407b', - fillColor: '#ffdbe6', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize: true - }); - - - - $("#sparkline-revenue3").sparkline([5, 3, 4, 6, 5, 7, 9, 4, 3, 5, 6, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#25d5f2', - fillColor: '#dffaff', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize: true - }); - - - - $("#sparkline-revenue4").sparkline([6, 5, 3, 4, 2, 5, 3, 8, 6, 4, 5, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#fec957', - fillColor: '#fff2d5', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize: true, - }); - - - - - - // ============================================================== - // Total Revenue - // ============================================================== - Morris.Area({ - element: 'morris_totalrevenue', - behaveLikeLine: true, - data: [ - { x: '2016 Q1', y: 0, }, - { x: '2016 Q2', y: 7500, }, - { x: '2017 Q3', y: 15000, }, - { x: '2017 Q4', y: 22500, }, - { x: '2018 Q5', y: 30000, }, - { x: '2018 Q6', y: 40000, } - ], - xkey: 'x', - ykeys: ['y'], - labels: ['Y'], - lineColors: ['#5969ff'], - resize: true - - }); - - - - - // ============================================================== - // Revenue By Categories - // ============================================================== - - var chart = c3.generate({ - bindto: "#c3chart_category", - data: { - columns: [ - ['Men', 100], - ['Women', 80], - ['Accessories', 50], - ['Children', 40], - ['Apperal', 20], - - ], - type: 'donut', - - onclick: function(d, i) { console.log("onclick", d, i); }, - onmouseover: function(d, i) { console.log("onmouseover", d, i); }, - onmouseout: function(d, i) { console.log("onmouseout", d, i); }, - - colors: { - Men: '#5969ff', - Women: '#ff407b', - Accessories: '#25d5f2', - Children: '#ffc750', - Apperal: '#2ec551', - - - - } - }, - donut: { - label: { - show: false - } - }, - - - - }); - diff --git a/assets/libs/js/dashboard-finance.js b/assets/libs/js/dashboard-finance.js deleted file mode 100644 index 038ccc4..0000000 --- a/assets/libs/js/dashboard-finance.js +++ /dev/null @@ -1,417 +0,0 @@ -/* -Template Name: Influence Admin Template -Author: jitu -Email: chauhanjitu3@gmail.com -File: js -*/ -$(function() { - "use strict"; - - // ============================================================== - // Revenue Cards - // ============================================================== - $("#sparkline-revenue").sparkline([5, 5, 7, 7, 9, 5, 3, 5, 2, 4, 6, 7], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#5969ff', - fillColor: '', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-revenue2").sparkline([3, 7, 6, 4, 5, 4, 3, 5, 5, 2, 3, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#ff407b', - fillColor: '', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-revenue3").sparkline([5, 3, 4, 6, 5, 7, 9, 4, 3, 5, 6, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#25d5f2', - fillColor: '', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-revenue4").sparkline([6, 5, 3, 4, 2, 5, 3, 8, 6, 4, 5, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#ffc750', - fillColor: '', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true, - }); - // ============================================================== - // Chart Balance Bar - // ============================================================== - var ctx = document.getElementById("chartjs_balance_bar").getContext('2d'); - var myChart = new Chart(ctx, { - type: 'bar', - - - data: { - labels: ["Current", "1-30", "31-60", "61-90", "91+"], - datasets: [{ - label: 'Aged Payables', - data: [500, 1000, 1500, 3700, 2500], - backgroundColor: "rgba(89, 105, 255,.8)", - borderColor: "rgba(89, 105, 255,1)", - borderWidth:2 - - }, { - label: 'Aged Receiables', - data: [1000, 1500, 2500, 3500, 2500], - backgroundColor: "rgba(255, 64, 123,.8)", - borderColor: "rgba(255, 64, 123,1)", - borderWidth:2 - - - }] - - }, - options: { - legend: { - display: true, - - position: 'bottom', - - labels: { - fontColor: '#71748d', - fontFamily:'Circular Std Book', - fontSize: 14, - } - }, - - scales: { - xAxes: [{ - ticks: { - fontSize: 14, - fontFamily:'Circular Std Book', - fontColor: '#71748d', - } - }], - yAxes: [{ - ticks: { - fontSize: 14, - fontFamily:'Circular Std Book', - fontColor: '#71748d', - } - }] - } - } - - - -}); - - - // ============================================================== - // Gross Profit Margin - // ============================================================== - Morris.Donut({ - element: 'morris_gross', - - data: [ - { value: 94, label: 'Budget' }, - { value: 15, label: '' } - - ], - - labelColor: '#5969ff', - - colors: [ - '#5969ff', - '#a8b0ff' - - ], - - formatter: function(x) { return x + "%" }, - resize: true - - }); - - // ============================================================== - // Net Profit Margin - // ============================================================== - Morris.Donut({ - element: 'morris_profit', - - data: [ - { value: 93, label: 'Profit' }, - { value: 15, label: '' } - - ], - - labelColor: '#ff407b', - - - colors: [ - '#ff407b', - '#ffd5e1' - - ], - - formatter: function(x) { return x + "%" }, - resize: true - - }); - - - - - // ============================================================== - //EBIT Morris - // ============================================================== - - Morris.Bar({ - element: 'ebit_morris', - data: [ - { x: '2011 Q1', y: 20000 }, - { x: '2011 Q2', y: 24000 }, - { x: '2011 Q3', y: 33000 }, - { x: '2011 Q4', y: 40000 }, - { x: '2012 Q1', y: 25000 }, - { x: '2012 Q2', y: 70000 }, - { x: '2012 Q3', y: 52000 }, - { x: '2012 Q4', y: 39000 }, - { x: '2013 Q1', y: 80000 } - ], - xkey: 'x', - ykeys: ['y'], - labels: ['Y'], - barColors: ['#ff407b'], - preUnits: ["$"] - - }); - - - - - - // ============================================================== - //EBIT Morris - // ============================================================== - var a = c3.generate({ - bindto: "#goodservice", - size: { height: 350 }, - color: { pattern: ["#5969ff", "#ff407b"] }, - data: { - columns: [ - ["Service", 20000, 25000, 30000, 80000, 10000, 50000], - ["Average", 25000, 25000, 25000, 25000, 25000, 25000] - ], - types: { Service: "bar" } - }, - bar: { - - width: 45 - - }, - legend: { - show: true -}, - axis: { - y: { - tick: { - format: d3.format("$") - } - } - - }, - - }); - - - - // ============================================================== - // Disputed vs Overdue Invoices - // ============================================================== - var data = { - labels: ['Disputed Invoice', 'Overdue Invoice'], - series: [20, 15] - }; - - var options = { - labelInterpolationFnc: function(value) { - return value[0] - } - }; - - var responsiveOptions = [ - ['screen and (min-width: 640px)', { - chartPadding: 30, - labelOffset: 100, - labelDirection: 'explode', - labelInterpolationFnc: function(value) { - return value; - } - }], - ['screen and (min-width: 1024px)', { - labelOffset: 80, - chartPadding: 20 - }] - ]; - - new Chartist.Pie('.ct-chart-invoice', data, options, responsiveOptions); - - - // ============================================================== - // Disputed vs Overdue Invoices - // ============================================================== - - new Chartist.Line('.ct-chart-line-invoice', { - labels: ['Jan 2018', 'Mar 2018', 'May 2018', 'Jul 2018', 'Sep 2018', 'Oct 2018', 'Nov 2018'], - series: [ - [12, 8, 6, 7, 3, 2.5, 7, 8], - [7, 7, 7, 7, 7, 7, 7, 7] - - ] - }, { - fullWidth: true, - chartPadding: { - right: 40 - }, - axisY: { - labelInterpolationFnc: function(value) { - return '$'+ (value / 1000); - } - }, - - - }); - - - - // ============================================================== - // Accounts Payable Age - // ============================================================== - - var chart = c3.generate({ - bindto: "#account", - color: { pattern: ["#5969ff", "#ff407b", "#25d5f2", "#ffc750"] }, - data: { - // iris data from R - columns: [ - ['30 days', 120], - ['60 days', 70], - ['90 days', 50], - ['90+ Days', 30], - - ], - type: 'pie', - - } - }); - - setTimeout(function() { - chart.load({ - - }); - }, 1500); - - setTimeout(function() { - chart.unload({ - ids: 'data1' - }); - chart.unload({ - ids: 'data2' - }); - }, - 2500 - ); - - // ============================================================== - // Working Capital - // ============================================================== - - // // Use Morris.Area instead of Morris.Line - Morris.Area({ - element: 'capital', - behaveLikeLine: true, - - - - data: [ - { x: '2010 Q1', y: 20000 }, - { x: '2010 Q2', y: 24000 }, - { x: '2010 Q3', y: 33000 }, - { x: '2010 Q4', y: 40000 }, - { x: '2011 Q1', y: 25000 }, - { x: '2011 Q2', y: 70000 }, - { x: '2011 Q3', y: 52000 }, - { x: '2012 Q1', y: 39000 }, - { x: '2012 Q2', y: 80000 } - ], - xkey: 'x', - ykeys: ['y'], - labels: ['Y'], - lineColors: ['#ff407b'], - preUnits: ["$"] - - - - }); - - // ============================================================== - // Working Capital - // ============================================================== - new Chartist.Bar('.ct-chart-inventory', { - labels: ['Q1', 'Q2', 'Q3', 'Q4'], - series: [ - [800000, 1200000, 1400000, 1300000], - [200000, 400000, 500000, 300000], - [100000, 200000, 400000, 600000] - ] - }, { - stackBars: true, - axisY: { - labelInterpolationFnc: function(value) { - return '$' + (value / 1000); - } - } - }).on('draw', function(data) { - if (data.type === 'bar') { - data.element.attr({ - style: 'stroke-width: 30px' - }); - } - }); - - - - -}); \ No newline at end of file diff --git a/assets/libs/js/dashboard-influencer.js b/assets/libs/js/dashboard-influencer.js deleted file mode 100644 index cc38886..0000000 --- a/assets/libs/js/dashboard-influencer.js +++ /dev/null @@ -1,91 +0,0 @@ -$(function() { - "use strict"; - // ============================================================== - // Gender Js - // ============================================================== - - Morris.Donut({ - element: 'gender_donut', - data: [ - { value: 60, label: 'Female' }, - { value: 40, label: 'Male' } - - ], - - labelColor: '#5969ff', - colors: [ - '#5969ff', - '#ff407b', - - ], - - - - formatter: function(x) { return x + "%" } - }); - - // ============================================================== - // chart bar horizontal - // ============================================================== - var ctx = document.getElementById("chartjs_bar_horizontal").getContext('2d'); - var myChart = new Chart(ctx, { - type: 'horizontalBar', - - data: { - labels: ["US", "Brazil", "Canada", "UK", "Australia", "India", "China"], - datasets: [{ - label: 'Country', - data: [2800, 24000, 19000, 17000, 14000, 10000, 7000], - backgroundColor: "rgba(89, 105, 255, 1)", - - }] - }, - options: { - responsive: true, - hover: false, - legend: { - display: true, - position: 'bottom', - - labels: { - fontColor: '#71748d', - fontFamily: 'Circular Std Book', - fontSize: 14, - } - }, - scales: { - - legend: { - display: false - - }, - yAxes: [{ - gridLines: { - drawOnChartArea: false - }, - ticks: { - fontSize: 14, - fontFamily: 'Circular Std Book', - fontColor: '#71748d', - } - }], - xAxes: [{ - gridLines: { - drawOnChartArea: false - }, - ticks: { - fontSize: 14, - fontFamily: 'Circular Std Book', - fontColor: '#71748d', - } - }] - - - - } - } - }); - - - -}); \ No newline at end of file diff --git a/assets/libs/js/dashboard-sales.js b/assets/libs/js/dashboard-sales.js deleted file mode 100644 index 3b2e6eb..0000000 --- a/assets/libs/js/dashboard-sales.js +++ /dev/null @@ -1,237 +0,0 @@ - -$(function() { - "use strict"; - // ============================================================== - // Revenue - // ============================================================== - var ctx = document.getElementById('revenue').getContext('2d'); - var myChart = new Chart(ctx, { - type: 'line', - - data: { - labels: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], - datasets: [{ - label: 'Current Week', - data: [12, 19, 3, 17, 6, 3, 7], - backgroundColor: "rgba(89, 105, 255,0.5)", - borderColor: "rgba(89, 105, 255,0.7)", - borderWidth: 2 - - }, { - label: 'Previous Week', - data: [2, 29, 5, 5, 2, 3, 10], - backgroundColor: "rgba(255, 64, 123,0.5)", - borderColor: "rgba(255, 64, 123,0.7)", - borderWidth: 2 - }] - }, - options: { - - legend: { - display: true, - position: 'bottom', - - labels: { - fontColor: '#71748d', - fontFamily: 'Circular Std Book', - fontSize: 14, - } - }, - scales: { - yAxes: [{ - ticks: { - // Include a dollar sign in the ticks - callback: function(value, index, values) { - return '$' + value; - } - } - }] - }, - - - scales: { - xAxes: [{ - ticks: { - fontSize: 14, - fontFamily: 'Circular Std Book', - fontColor: '#71748d', - } - }], - yAxes: [{ - ticks: { - fontSize: 14, - fontFamily: 'Circular Std Book', - fontColor: '#71748d', - } - }] - } - - } - }); - - // ============================================================== - // Total Sale - // ============================================================== - var ctx = document.getElementById("total-sale").getContext('2d'); - var myChart = new Chart(ctx, { - type: 'doughnut', - - data: { - labels: ["Direct", " Affilliate", "Sponsored", " E-mail"], - datasets: [{ - backgroundColor: [ - "#5969ff", - "#ff407b", - "#25d5f2", - "#ffc750" - ], - data: [350.56, 135.18, 48.96, 154.02] - }] - }, - options: { - legend: { - display: false - - } - } - - }); - - - // ============================================================== - // Location Map - // ============================================================== - jQuery('#locationmap').vectorMap({ - - map: 'world_mill_en', - backgroundColor: 'transparent', - borderColor: '#000', - borderOpacity: 0, - borderWidth: 0, - zoomOnScroll: false, - color: '#25d5f2', - regionStyle: { - initial: { - fill: "#e3eaef" - } - }, - markerStyle: { - initial: { - r: 9, - fill: "#25d5f2", - "fill-opacity": .9, - stroke: "#fff", - "stroke-width": 7, - "stroke-opacity": .4 - }, - hover: { - stroke: "#fff", - "fill-opacity": 1, - "stroke-width": 1.5 - } - }, - - markers: [{ - latLng: [40.71, -74], - name: "New York" - }, { - latLng: [37.77, -122.41], - name: "San Francisco" - }, { - latLng: [-33.86, 151.2], - name: "Sydney" - }, { - latLng: [1.3, 103.8], - name: "Singapore" - }], - - - hoverOpacity: null, - normalizeFunction: 'linear', - scaleColors: ['#25d5f2', '#25d5f2'], - selectedColor: '#c9dfaf', - selectedRegions: [], - showTooltip: true, - onRegionClick: function(element, code, region) { - var message = 'You clicked "' + region + '" which has the code: ' + code.toUpperCase(); - alert(message); - } - - }); - - - // ============================================================== - // Revenue Cards - // ============================================================== - $("#sparkline-1").sparkline([5, 5, 7, 7, 9, 5, 3, 5, 2, 4, 6, 7], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#5969ff', - fillColor: '#dbdeff', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-2").sparkline([3, 7, 6, 4, 5, 4, 3, 5, 5, 2, 3, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#ff407b', - fillColor: '#ffdbe6', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-3").sparkline([5, 3, 4, 6, 5, 7, 9, 4, 3, 5, 6, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#25d5f2', - fillColor: '#dffaff', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true - }); - - - - $("#sparkline-4").sparkline([6, 5, 3, 4, 2, 5, 3, 8, 6, 4, 5, 1], { - type: 'line', - width: '99.5%', - height: '100', - lineColor: '#fec957', - fillColor: '#fff2d5', - lineWidth: 2, - spotColor: undefined, - minSpotColor: undefined, - maxSpotColor: undefined, - highlightSpotColor: undefined, - highlightLineColor: undefined, - resize:true, - }); - - - - - - -}); \ No newline at end of file diff --git a/assets/libs/js/gmaps.min.js b/assets/libs/js/gmaps.min.js deleted file mode 100644 index df8940c..0000000 --- a/assets/libs/js/gmaps.min.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";!function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(["jquery","googlemaps!"],b):a.GMaps=b()}(this,function(){var a=function(a,b){var c;if(a===b)return a;for(c in b)void 0!==b[c]&&(a[c]=b[c]);return a},b=function(a,b){var c,d=Array.prototype.slice.call(arguments,2),e=[],f=a.length;if(Array.prototype.map&&a.map===Array.prototype.map)e=Array.prototype.map.call(a,function(a){var c=d.slice(0);return c.splice(0,0,a),b.apply(this,c)});else for(c=0;f>c;c++)callback_params=d,callback_params.splice(0,0,a[c]),e.push(b.apply(this,callback_params));return e},c=function(a){var b,c=[];for(b=0;b0&&"object"==typeof a[c][0]?a[c]=f(a[c],b):a[c]=d(a[c],b));return a},g=function(a,b){var c,d=a.replace(".","");return c="jQuery"in this&&b?$("."+d,b)[0]:document.getElementsByClassName(d)[0]},h=function(a,b){var c,a=a.replace("#","");return c="jQuery"in window&&b?$("#"+a,b)[0]:document.getElementById(a)},i=function(a){var b=0,c=0;if(a.offsetParent)do b+=a.offsetLeft,c+=a.offsetTop;while(a=a.offsetParent);return[b,c]},j=function(b){var c=document,d=function(b){if("object"!=typeof window.google||!window.google.maps)return"object"==typeof window.console&&window.console.error&&console.error("Google Maps API is required. Please register the following JavaScript library https://maps.googleapis.com/maps/api/js."),function(){};if(!this)return new d(b);b.zoom=b.zoom||15,b.mapType=b.mapType||"roadmap";var e,f=function(a,b){return void 0===a?b:a},j=this,k=["bounds_changed","center_changed","click","dblclick","drag","dragend","dragstart","idle","maptypeid_changed","projection_changed","resize","tilesloaded","zoom_changed"],l=["mousemove","mouseout","mouseover"],m=["el","lat","lng","mapType","width","height","markerClusterer","enableNewStyle"],n=b.el||b.div,o=b.markerClusterer,p=google.maps.MapTypeId[b.mapType.toUpperCase()],q=new google.maps.LatLng(b.lat,b.lng),r=f(b.zoomControl,!0),s=b.zoomControlOpt||{style:"DEFAULT",position:"TOP_LEFT"},t=s.style||"DEFAULT",u=s.position||"TOP_LEFT",v=f(b.panControl,!0),w=f(b.mapTypeControl,!0),x=f(b.scaleControl,!0),y=f(b.streetViewControl,!0),z=f(z,!0),A={},B={zoom:this.zoom,center:q,mapTypeId:p},C={panControl:v,zoomControl:r,zoomControlOptions:{style:google.maps.ZoomControlStyle[t],position:google.maps.ControlPosition[u]},mapTypeControl:w,scaleControl:x,streetViewControl:y,overviewMapControl:z};if("string"==typeof b.el||"string"==typeof b.div?n.indexOf("#")>-1?this.el=h(n,b.context):this.el=g.apply(this,[n,b.context]):this.el=n,"undefined"==typeof this.el||null===this.el)throw"No element defined.";for(window.context_menu=window.context_menu||{},window.context_menu[j.el.id]={},this.controls=[],this.overlays=[],this.layers=[],this.singleLayers={},this.markers=[],this.polylines=[],this.routes=[],this.polygons=[],this.infoWindow=null,this.overlay_el=null,this.zoom=b.zoom,this.registered_events={},this.el.style.width=b.width||this.el.scrollWidth||this.el.offsetWidth,this.el.style.height=b.height||this.el.scrollHeight||this.el.offsetHeight,google.maps.visualRefresh=b.enableNewStyle,e=0;e'+f.title+""}if(h("gmaps_context_menu")){var g=h("gmaps_context_menu");g.innerHTML=c;var e,k=g.getElementsByTagName("a"),l=k.length;for(e=0;l>e;e++){var m=k[e],n=function(c){c.preventDefault(),d[this.id.replace(a+"_","")].action.apply(j,[b]),j.hideContextMenu()};google.maps.event.clearListeners(m,"click"),google.maps.event.addDomListenerOnce(m,"click",n,!1)}var o=i.apply(this,[j.el]),p=o[0]+b.pixel.x-15,q=o[1]+b.pixel.y-15;g.style.left=p+"px",g.style.top=q+"px"}};this.buildContextMenu=function(a,b){if("marker"===a){b.pixel={};var c=new google.maps.OverlayView;c.setMap(j.map),c.draw=function(){var d=c.getProjection(),e=b.marker.getPosition();b.pixel=d.fromLatLngToContainerPixel(e),D(a,b)}}else D(a,b);var d=h("gmaps_context_menu");setTimeout(function(){d.style.display="block"},0)},this.setContextMenu=function(a){window.context_menu[j.el.id][a.control]={};var b,d=c.createElement("ul");for(b in a.options)if(a.options.hasOwnProperty(b)){var e=a.options[b];window.context_menu[j.el.id][a.control][e.name]={title:e.title,action:e.action}}d.id="gmaps_context_menu",d.style.display="none",d.style.position="absolute",d.style.minWidth="100px",d.style.background="white",d.style.listStyle="none",d.style.padding="8px",d.style.boxShadow="2px 2px 6px #ccc",h("gmaps_context_menu")||c.body.appendChild(d);var f=h("gmaps_context_menu");google.maps.event.addDomListener(f,"mouseout",function(a){a.relatedTarget&&this.contains(a.relatedTarget)||window.setTimeout(function(){f.style.display="none"},400)},!1)},this.hideContextMenu=function(){var a=h("gmaps_context_menu");a&&(a.style.display="none")};var E=function(a,c){google.maps.event.addListener(a,c,function(a){void 0==a&&(a=this),b[c].apply(this,[a]),j.hideContextMenu()})};google.maps.event.addListener(this.map,"zoom_changed",this.hideContextMenu);for(var F=0;Fa;a++)"boolean"==typeof this.markers[a].visible&&this.markers[a].visible&&b.push(this.markers[a].getPosition());this.fitLatLngBounds(b)},this.fitLatLngBounds=function(a){var b,c=a.length,d=new google.maps.LatLngBounds;for(b=0;c>b;b++)d.extend(a[b]);this.map.fitBounds(d)},this.setCenter=function(a,b,c){this.map.panTo(new google.maps.LatLng(a,b)),c&&c()},this.getElement=function(){return this.el},this.zoomIn=function(a){a=a||1,this.zoom=this.map.getZoom()+a,this.map.setZoom(this.zoom)},this.zoomOut=function(a){a=a||1,this.zoom=this.map.getZoom()-a,this.map.setZoom(this.zoom)};var H,I=[];for(H in this.map)"function"!=typeof this.map[H]||this[H]||I.push(H);for(e=0;e-1){var d=this.markers[e];d.setMap(null),this.markerClusterer&&this.markerClusterer.removeMarker(d),j.fire("marker_removed",d,this)}}for(var c=0;c0&&d.paths[0].length>0&&(d.paths=c(b(d.paths,f,e)));for(var g=new google.maps.Polygon(d),h=["click","dblclick","mousedown","mousemove","mouseout","mouseover","mouseup","rightclick"],i=0;i0&&d.locations[0].length>0&&(d.locations=c(b([d.locations],f,!1)));var e=d.callback;delete d.callback;var g=new google.maps.ElevationService;if(d.path){var h={path:d.locations,samples:d.samples};g.getElevationAlongPath(h,function(a,b){e&&"function"==typeof e&&e(a,b)})}else delete d.path,delete d.samples,g.getElevationForLocations(d,function(a,b){e&&"function"==typeof e&&e(a,b)})},j.prototype.cleanRoute=j.prototype.removePolylines,j.prototype.renderRoute=function(b,c){var d,e="string"==typeof c.panel?document.getElementById(c.panel.replace("#","")):c.panel;c.panel=e,c=a({map:this.map},c),d=new google.maps.DirectionsRenderer(c),this.getRoutes({origin:b.origin,destination:b.destination,travelMode:b.travelMode,waypoints:b.waypoints,unitSystem:b.unitSystem,error:b.error,avoidHighways:b.avoidHighways,avoidTolls:b.avoidTolls,optimizeWaypoints:b.optimizeWaypoints,callback:function(a,b,c){c===google.maps.DirectionsStatus.OK&&d.setDirections(b)}})},j.prototype.drawRoute=function(a){var b=this;this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,avoidHighways:a.avoidHighways,avoidTolls:a.avoidTolls,optimizeWaypoints:a.optimizeWaypoints,callback:function(c){if(c.length>0){var d={path:c[c.length-1].overview_path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(d.icons=a.icons),b.drawPolyline(d),a.callback&&a.callback(c[c.length-1])}}})},j.prototype.travelRoute=function(a){if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,unitSystem:a.unitSystem,error:a.error,callback:function(b){if(b.length>0&&a.start&&a.start(b[b.length-1]),b.length>0&&a.step){var c=b[b.length-1];if(c.legs.length>0)for(var d,e=c.legs[0].steps,f=0;d=e[f];f++)d.step_number=f,a.step(d,c.legs[0].steps.length-1)}b.length>0&&a.end&&a.end(b[b.length-1])}});else if(a.route&&a.route.legs.length>0)for(var b,c=a.route.legs[0].steps,d=0;b=c[d];d++)b.step_number=d,a.step(b)},j.prototype.drawSteppedRoute=function(a){var b=this;if(a.origin&&a.destination)this.getRoutes({origin:a.origin,destination:a.destination,travelMode:a.travelMode,waypoints:a.waypoints,error:a.error,callback:function(c){if(c.length>0&&a.start&&a.start(c[c.length-1]),c.length>0&&a.step){var d=c[c.length-1];if(d.legs.length>0)for(var e,f=d.legs[0].steps,g=0;e=f[g];g++){e.step_number=g;var h={path:e.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(h.icons=a.icons),b.drawPolyline(h),a.step(e,d.legs[0].steps.length-1)}}c.length>0&&a.end&&a.end(c[c.length-1])}});else if(a.route&&a.route.legs.length>0)for(var c,d=a.route.legs[0].steps,e=0;c=d[e];e++){c.step_number=e;var f={path:c.path,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(f.icons=a.icons),b.drawPolyline(f),a.step(c)}},j.Route=function(a){this.origin=a.origin,this.destination=a.destination,this.waypoints=a.waypoints,this.map=a.map,this.route=a.route,this.step_count=0,this.steps=this.route.legs[0].steps,this.steps_length=this.steps.length;var b={path:new google.maps.MVCArray,strokeColor:a.strokeColor,strokeOpacity:a.strokeOpacity,strokeWeight:a.strokeWeight};a.hasOwnProperty("icons")&&(b.icons=a.icons),this.polyline=this.map.drawPolyline(b).getPath()},j.Route.prototype.getRoute=function(a){var b=this;this.map.getRoutes({origin:this.origin,destination:this.destination,travelMode:a.travelMode,waypoints:this.waypoints||[],error:a.error,callback:function(){b.route=e[0],a.callback&&a.callback.call(b)}})},j.Route.prototype.back=function(){if(this.step_count>0){this.step_count--;var a=this.route.legs[0].steps[this.step_count].path;for(var b in a)a.hasOwnProperty(b)&&this.polyline.pop()}},j.Route.prototype.forward=function(){if(this.step_count0){b.markers=[];for(var c=0;c0){var d=this.polylines[0];b.polyline={},b.polyline.path=google.maps.geometry.encoding.encodePath(d.getPath()),b.polyline.strokeColor=d.strokeColor,b.polyline.strokeOpacity=d.strokeOpacity,b.polyline.strokeWeight=d.strokeWeight}return j.staticMapURL(b)},j.staticMapURL=function(a){function b(a,b){if("#"===a[0]&&(a=a.replace("#","0x"),b)){if(b=parseFloat(b),b=Math.min(1,Math.max(b,0)),0===b)return"0x00000000";b=(255*b).toString(16),1===b.length&&(b+=b),a=a.slice(0,8)+b}return a}var c,d=[],e=("file:"===location.protocol?"http:":location.protocol)+"//maps.googleapis.com/maps/api/staticmap";a.url&&(e=a.url,delete a.url),e+="?";var f=a.markers;delete a.markers,!f&&a.marker&&(f=[a.marker],delete a.marker);var g=a.styles;delete a.styles;var h=a.polyline;if(delete a.polyline,a.center)d.push("center="+a.center),delete a.center;else if(a.address)d.push("center="+a.address),delete a.address;else if(a.lat)d.push(["center=",a.lat,",",a.lng].join("")),delete a.lat,delete a.lng;else if(a.visible){var i=encodeURI(a.visible.join("|"));d.push("visible="+i)}var j=a.size;j?(j.join&&(j=j.join("x")),delete a.size):j="630x300",d.push("size="+j),a.zoom||a.zoom===!1||(a.zoom=15);var k=a.hasOwnProperty("sensor")?!!a.sensor:!0;delete a.sensor,d.push("sensor="+k);for(var l in a)a.hasOwnProperty(l)&&d.push(l+"="+a[l]);if(f)for(var m,n,o=0;c=f[o];o++){m=[],c.size&&"normal"!==c.size?(m.push("size:"+c.size),delete c.size):c.icon&&(m.push("icon:"+encodeURI(c.icon)),delete c.icon),c.color&&(m.push("color:"+c.color.replace("#","0x")),delete c.color),c.label&&(m.push("label:"+c.label[0].toUpperCase()),delete c.label),n=c.address?c.address:c.lat+","+c.lng,delete c.address,delete c.lat,delete c.lng;for(var l in c)c.hasOwnProperty(l)&&m.push(l+":"+c[l]);m.length||0===o?(m.push(n),m=m.join("|"),d.push("markers="+encodeURI(m))):(m=d.pop()+encodeURI("|"+n),d.push(m))}if(g)for(var o=0;oe;e++)for(var f=this.getPaths().getAt(e),g=f.getLength(),h=g-1,i=0;g>i;i++){var j=f.getAt(i),k=f.getAt(h);(j.lng()=a.lng()||k.lng()=a.lng())&&j.lat()+(a.lng()-j.lng())/(k.lng()-j.lng())*(k.lat()-j.lat())>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!=d?d=0:0!=d&&d!=1/0&&d!=-(1/0)&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),j}); -//# sourceMappingURL=gmaps.min.js.map \ No newline at end of file diff --git a/assets/libs/js/google_map.js b/assets/libs/js/google_map.js deleted file mode 100644 index f0072a0..0000000 --- a/assets/libs/js/google_map.js +++ /dev/null @@ -1,283 +0,0 @@ - $(function() { - //******************************************// - // Basic Map - //******************************************// - var map; - map = new GMaps({ - div: '#map', - lat: -12.043333, - lng: -77.028333 - }); - - //******************************************// - // Map Events - //******************************************// - var map_1; - map_1 = new GMaps({ - div: '#map_1', - zoom: 16, - lat: -12.043333, - lng: -77.028333, - click: function(e) { - alert('click'); - }, - dragend: function(e) { - alert('dragend'); - } - }); - - //******************************************// - // Markers - //******************************************// - var map_2; - map_2 = new GMaps({ - div: '#map_2', - lat: -12.043333, - lng: -77.028333 - }); - map_2.addMarker({ - lat: -12.043333, - lng: -77.03, - title: 'Lima', - details: { - database_id: 42, - author: 'HPNeo' - }, - click: function(e) { - if (console.log) - console.log(e); - alert('You clicked in this marker'); - } - }); - map_2.addMarker({ - lat: -12.042, - lng: -77.028333, - title: 'Marker with InfoWindow', - infoWindow: { - content: '

HTML Content

' - } - }); - - //******************************************// - // Polylines - //******************************************// - var map_3; - map_3 = new GMaps({ - div: '#map_3', - lat: -12.043333, - lng: -77.028333, - click: function(e) { - console.log(e); - } - }); - - path1 = [ - [-12.044012922866312, -77.02470665341184], - [-12.05449279282314, -77.03024273281858], - [-12.055122327623378, -77.03039293652341], - [-12.075917129727586, -77.02764635449216], - [-12.07635776902266, -77.02792530422971], - [-12.076819390363665, -77.02893381481931], - [-12.088527520066453, -77.0241058385925], - [-12.090814532191756, -77.02271108990476] - ]; - - map_3.drawPolyline({ - path: path1, - strokeColor: '#131540', - strokeOpacity: 0.6, - strokeWeight: 6 - }); - - //******************************************// - // Polygons - //******************************************// - var map_4; - map_4 = new GMaps({ - div: '#map_4', - lat: -12.043333, - lng: -77.028333 - }); - - var path2 = [ - [-12.040397656836609, -77.03373871559225], - [-12.040248585302038, -77.03993927003302], - [-12.050047116528843, -77.02448169303511], - [-12.044804866577001, -77.02154422636042] - ]; - - polygon = map_4.drawPolygon({ - paths: path2, - strokeColor: '#BBD8E9', - strokeOpacity: 1, - strokeWeight: 3, - fillColor: '#BBD8E9', - fillOpacity: 0.6 - }); - - //******************************************// - // Routes - //******************************************// - var map_5; - map_5 = new GMaps({ - div: '#map_5', - lat: -12.043333, - lng: -77.028333 - }); - map_5.drawRoute({ - origin: [-12.044012922866312, -77.02470665341184], - destination: [-12.090814532191756, -77.02271108990476], - travelMode: 'driving', - strokeColor: '#131540', - strokeOpacity: 0.6, - strokeWeight: 6 - }); - - //******************************************// - // Routes Advance - //******************************************// - var map_6; - map_6 = new GMaps({ - div: '#map_6', - lat: -12.043333, - lng: -77.028333 - }); - $('#start_travel').click(function(e) { - e.preventDefault(); - map_6.travelRoute({ - origin: [-12.044012922866312, -77.02470665341184], - destination: [-12.090814532191756, -77.02271108990476], - travelMode: 'driving', - step: function(e) { - $('#instructions').append('
  • ' + e.instructions + '
  • '); - $('#instructions li:eq(' + e.step_number + ')').delay(450 * e.step_number).fadeIn(200, function() { - map_6.setCenter(e.end_location.lat(), e.end_location.lng()); - map_6.drawPolyline({ - path: e.path, - strokeColor: '#131540', - strokeOpacity: 0.6, - strokeWeight: 6 - }); - }); - } - }); - }); - - //******************************************// - // Street View Panoramas - //******************************************// - panorama = GMaps.createPanorama({ - el: '#panorama', - lat: 42.3455, - lng: -71.0983 - }); - - //******************************************// - // Map Types - //******************************************// - var map_7; - map_7 = new GMaps({ - div: '#map_7', - lat: -12.043333, - lng: -77.028333, - mapTypeControlOptions: { - mapTypeIds: ["hybrid", "roadmap", "satellite", "terrain", "osm"] - } - }); - map_7.addMapType("osm", { - getTileUrl: function(coord, zoom) { - return "https://a.tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png"; - }, - tileSize: new google.maps.Size(256, 256), - name: "OpenStreetMap", - maxZoom: 18 - }); - map_7.setMapTypeId("osm"); - - //******************************************// - // Fusion Tables layers - //******************************************// - var map_8, infoWindow1; - infoWindow = new google.maps.InfoWindow({}); - map_8 = new GMaps({ - div: '#map_8', - zoom: 11, - lat: 41.850033, - lng: -87.6500523 - }); - map_8.loadFromFusionTables({ - query: { - select: '\'Geocodable address\'', - from: '1mZ53Z70NsChnBMm-qEYmSDOvLXgrreLTkQUvvg' - }, - suppressInfoWindows: true, - events: { - click: function(point) { - infoWindow.setContent('You clicked here!'); - infoWindow.setPosition(point.latLng); - infoWindow.open(map_8.map_8); - } - } - }); - - //******************************************// - // KML layers - //******************************************// - var map_9, infoWindow2; - infoWindow2 = new google.maps.InfoWindow({}); - map_9 = new GMaps({ - div: '#map_9', - zoom: 12, - lat: 40.65, - lng: -73.95 - }); - map_9.loadFromKML({ - url: 'http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss', - suppressInfoWindows: true, - events: { - click: function(point) { - infoWindow2.setContent(point.featureData.infoWindowHtml); - infoWindow2.setPosition(point.latLng); - infoWindow2.open(map_9.map_9); - } - } - }); - - //******************************************// - // Geofences - //******************************************// - var map_10; - map_10 = new GMaps({ - div: '#map_10', - lat: -12.043333, - lng: -77.028333 - }); - var path3 = []; - var p = [ - [-12.040397656836609, -77.03373871559225], - [-12.040248585302038, -77.03993927003302], - [-12.050047116528843, -77.02448169303511], - [-12.044804866577001, -77.02154422636042] - ]; - for (var i in p) { - latlng = new google.maps.LatLng(p[i][0], p[i][1]); - path3.push(latlng); - } - polygon = map_10.drawPolygon({ - paths: path3, - strokeColor: '#BBD8E9', - strokeOpacity: 1, - strokeWeight: 3, - fillColor: '#BBD8E9', - fillOpacity: 0.6 - }); - map_10.addMarker({ - lat: -12.043333, - lng: -77.028333, - draggable: true, - fences: [polygon], - outside: function(m, f) { - alert('This marker has been moved outside of its fence'); - } - }); - }); \ No newline at end of file diff --git a/assets/libs/js/jvectormap.custom.js b/assets/libs/js/jvectormap.custom.js deleted file mode 100644 index 432e29c..0000000 --- a/assets/libs/js/jvectormap.custom.js +++ /dev/null @@ -1,98 +0,0 @@ -$(function() { - "use strict"; - - jQuery('#world-map-markers').vectorMap({ - map: 'world_mill_en', - backgroundColor: 'transparent', - borderColor: '#818181', - borderOpacity: 0.25, - borderWidth: 1, - zoomOnScroll: false, - color: '#8b94d6', - regionStyle: { - initial: { - fill: '#8b94d6' - } - }, - markerStyle: { - initial: { - r: 9, - 'fill': '#fff', - 'fill-opacity': 1, - 'stroke': '#000', - 'stroke-width': 5, - 'stroke-opacity': 0.4 - }, - }, - enableZoom: true, - hoverColor: '#8b94d6', - markers: [{ - latLng: [21.00, 78.00], - name: 'India' - - }], - hoverOpacity: null, - normalizeFunction: 'linear', - scaleColors: ['#b6d6ff', '#005ace'], - selectedColor: '#c9dfaf', - selectedRegions: [], - showTooltip: true, - onRegionClick: function(element, code, region) { - var message = 'You clicked "' + - region + - '" which has the code: ' + - code.toUpperCase(); - - alert(message); - } - }); - - - $('#india').vectorMap({ - map: 'in_mill', - backgroundColor: 'transparent', - zoomOnScroll: false, - regionStyle: { - initial: { - fill: '#64ced3' - } - } - }); - - - $('#usa').vectorMap({ - map: 'us_aea_en', - backgroundColor: 'transparent', - zoomOnScroll: false, - regionStyle: { - initial: { - fill: '#f87ca1' - } - } - }); - - - - $('#australia').vectorMap({ - map: 'au_mill', - backgroundColor: 'transparent', - zoomOnScroll: false, - regionStyle: { - initial: { - fill: '#ffe174' - } - } - }); - - $('#uk').vectorMap({ - map: 'uk_mill_en', - backgroundColor: 'transparent', - zoomOnScroll: false, - regionStyle: { - initial: { - fill: '#ffa47f' - } - } - }); - -}); \ No newline at end of file diff --git a/assets/libs/js/main-js.js b/assets/libs/js/main-js.js deleted file mode 100644 index 0afc1cd..0000000 --- a/assets/libs/js/main-js.js +++ /dev/null @@ -1,132 +0,0 @@ - -jQuery(document).ready(function($) { - 'use strict'; - - // ============================================================== - // Notification list - // ============================================================== - if ($(".notification-list").length) { - - $('.notification-list').slimScroll({ - height: '250px' - }); - - } - - // ============================================================== - // Menu Slim Scroll List - // ============================================================== - - - if ($(".menu-list").length) { - $('.menu-list').slimScroll({ - - }); - } - - // ============================================================== - // Sidebar scrollnavigation - // ============================================================== - - if ($(".sidebar-nav-fixed a").length) { - $('.sidebar-nav-fixed a') - // Remove links that don't actually link to anything - - .click(function(event) { - // On-page links - if ( - location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && - location.hostname == this.hostname - ) { - // Figure out element to scroll to - var target = $(this.hash); - target = target.length ? target : $('[name=' + this.hash.slice(1) + ']'); - // Does a scroll target exist? - if (target.length) { - // Only prevent default if animation is actually gonna happen - event.preventDefault(); - $('html, body').animate({ - scrollTop: target.offset().top - 90 - }, 1000, function() { - // Callback after animation - // Must change focus! - var $target = $(target); - $target.focus(); - if ($target.is(":focus")) { // Checking if the target was focused - return false; - } else { - $target.attr('tabindex', '-1'); // Adding tabindex for elements not focusable - $target.focus(); // Set focus again - }; - }); - } - }; - $('.sidebar-nav-fixed a').each(function() { - $(this).removeClass('active'); - }) - $(this).addClass('active'); - }); - - } - - // ============================================================== - // tooltip - // ============================================================== - if ($('[data-toggle="tooltip"]').length) { - - $('[data-toggle="tooltip"]').tooltip() - - } - - // ============================================================== - // popover - // ============================================================== - if ($('[data-toggle="popover"]').length) { - $('[data-toggle="popover"]').popover() - - } - // ============================================================== - // Chat List Slim Scroll - // ============================================================== - - - if ($('.chat-list').length) { - $('.chat-list').slimScroll({ - color: 'false', - width: '100%' - - - }); - } - // ============================================================== - // dropzone script - // ============================================================== - - // if ($('.dz-clickable').length) { - // $(".dz-clickable").dropzone({ url: "/file/post" }); - // } - -}); // AND OF JQUERY - - -// $(function() { -// "use strict"; - - - - - // var monkeyList = new List('test-list', { - // valueNames: ['name'] - - // }); - // var monkeyList = new List('test-list-2', { - // valueNames: ['name'] - - // }); - - - - - - -// }); \ No newline at end of file diff --git a/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.css b/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.css deleted file mode 100644 index a88b3d5..0000000 --- a/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.css +++ /dev/null @@ -1,320 +0,0 @@ -.minicolors { - position: relative; -} - -.minicolors-sprite { - background-image: url(jquery.minicolors.png); -} - -.minicolors-swatch { - position: absolute; - vertical-align: middle; - background-position: -80px 0; - border: solid 1px #e6e6f2; - cursor: text; - padding: 0; - margin: 0; - display: inline-block; -} - -.minicolors-swatch-color { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} - -.minicolors input[type=hidden] + .minicolors-swatch { - width: 28px; - position: static; - cursor: pointer; -} - -.minicolors input[type=hidden][disabled] + .minicolors-swatch { - cursor: default; -} - -/* Panel */ -.minicolors-panel { - position: absolute; - width: 173px; - background: white; - border: solid 1px #CCC; - box-shadow: 0 0 20px rgba(0, 0, 0, .2); - z-index: 99999; - box-sizing: content-box; - display: none; -} - -.minicolors-panel.minicolors-visible { - display: block; -} - -/* Panel positioning */ -.minicolors-position-top .minicolors-panel { - top: -154px; -} - -.minicolors-position-right .minicolors-panel { - right: 0; -} - -.minicolors-position-bottom .minicolors-panel { - top: auto; -} - -.minicolors-position-left .minicolors-panel { - left: 0; -} - -.minicolors-with-opacity .minicolors-panel { - width: 194px; -} - -.minicolors .minicolors-grid { - position: relative; - top: 1px; - left: 1px; - width: 150px; - height: 150px; - background-position: -120px 0; - cursor: crosshair; -} - -.minicolors .minicolors-grid-inner { - position: absolute; - top: 0; - left: 0; - width: 150px; - height: 150px; -} - -.minicolors-slider-saturation .minicolors-grid { - background-position: -420px 0; -} - -.minicolors-slider-saturation .minicolors-grid-inner { - background-position: -270px 0; - background-image: inherit; -} - -.minicolors-slider-brightness .minicolors-grid { - background-position: -570px 0; -} - -.minicolors-slider-brightness .minicolors-grid-inner { - background-color: black; -} - -.minicolors-slider-wheel .minicolors-grid { - background-position: -720px 0; -} - -.minicolors-slider, -.minicolors-opacity-slider { - position: absolute; - top: 1px; - left: 152px; - width: 20px; - height: 150px; - background-color: white; - background-position: 0 0; - cursor: row-resize; -} - -.minicolors-slider-saturation .minicolors-slider { - background-position: -60px 0; -} - -.minicolors-slider-brightness .minicolors-slider { - background-position: -20px 0; -} - -.minicolors-slider-wheel .minicolors-slider { - background-position: -20px 0; -} - -.minicolors-opacity-slider { - left: 173px; - background-position: -40px 0; - display: none; -} - -.minicolors-with-opacity .minicolors-opacity-slider { - display: block; -} - -/* Pickers */ -.minicolors-grid .minicolors-picker { - position: absolute; - top: 70px; - left: 70px; - width: 12px; - height: 12px; - border: solid 1px black; - border-radius: 10px; - margin-top: -6px; - margin-left: -6px; - background: none; -} - -.minicolors-grid .minicolors-picker > div { - position: absolute; - top: 0; - left: 0; - width: 8px; - height: 8px; - border-radius: 8px; - border: solid 2px white; - box-sizing: content-box; -} - -.minicolors-picker { - position: absolute; - top: 0; - left: 0; - width: 18px; - height: 2px; - background: white; - border: solid 1px black; - margin-top: -2px; - box-sizing: content-box; -} - -/* Swatches */ -.minicolors-swatches, -.minicolors-swatches li { - margin: 5px 0 3px 5px; - padding: 0; - list-style: none; - overflow: hidden; -} - -.minicolors-swatches .minicolors-swatch { - position: relative; - float: left; - cursor: pointer; - margin:0 4px 0 0; -} - -.minicolors-with-opacity .minicolors-swatches .minicolors-swatch { - margin-right: 7px; -} - -.minicolors-swatch.selected { - border-color: #000; -} - -/* Inline controls */ -.minicolors-inline { - display: inline-block; -} - -.minicolors-inline .minicolors-input { - display: none !important; -} - -.minicolors-inline .minicolors-panel { - position: relative; - top: auto; - left: auto; - box-shadow: none; - z-index: auto; - display: inline-block; -} - -/* Default theme */ -.minicolors-theme-default .minicolors-swatch { - top: 5px; - left: 5px; - width: 18px; - height: 18px; -} -.minicolors-theme-default .minicolors-swatches .minicolors-swatch { - margin-bottom: 2px; - top: 0; - left: 0; - width: 18px; - height: 18px; -} -.minicolors-theme-default.minicolors-position-right .minicolors-swatch { - left: auto; - right: 5px; -} -.minicolors-theme-default.minicolors { - width: auto; - display: inline-block; -} -.minicolors-theme-default .minicolors-input { - height: 20px; - width: auto; - display: inline-block; - padding-left: 26px; -} -.minicolors-theme-default.minicolors-position-right .minicolors-input { - padding-right: 26px; - padding-left: inherit; -} - -/* Bootstrap theme */ -.minicolors-theme-bootstrap .minicolors-swatch { - z-index: 2; - top: 5px; - left: 5px; - width: 28px; - height: 28px; - border-radius: 3px; -} -.minicolors-theme-bootstrap .minicolors-swatches .minicolors-swatch { - margin-bottom: 2px; - top: 0; - left: 0; - width: 20px; - height: 20px; -} -.minicolors-theme-bootstrap .minicolors-swatch-color { - border-radius: inherit; -} -.minicolors-theme-bootstrap.minicolors-position-right > .minicolors-swatch { - left: auto; - right: 3px; -} -.minicolors-theme-bootstrap .minicolors-input { - float: none; - padding-left: 44px; - line-height: 1.8; -} -.minicolors-theme-bootstrap.minicolors-position-right .minicolors-input { - padding-right: 44px; - padding-left: 12px; -} -.minicolors-theme-bootstrap .minicolors-input.input-lg + .minicolors-swatch { - top: 4px; - left: 4px; - width: 37px; - height: 37px; - border-radius: 5px; -} -.minicolors-theme-bootstrap .minicolors-input.input-sm + .minicolors-swatch { - width: 24px; - height: 24px; -} -.minicolors-theme-bootstrap .minicolors-input.input-xs + .minicolors-swatch { - width: 18px; - height: 18px; -} -.input-group .minicolors-theme-bootstrap:not(:first-child) .minicolors-input { - border-top-left-radius: 0; - border-bottom-left-radius: 0; -} - -/* Semantic Ui theme */ -.minicolors-theme-semanticui .minicolors-swatch { - top: 0; - left: 0; - padding: 18px; -} -.minicolors-theme-semanticui input { - text-indent: 30px; -} diff --git a/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.min.js b/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.min.js deleted file mode 100644 index ef24e56..0000000 --- a/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.min.js +++ /dev/null @@ -1,8 +0,0 @@ -// -// jQuery MiniColors: A tiny color picker built on jQuery -// -// Developed by Cory LaViska for A Beautiful Site, LLC -// -// Licensed under the MIT license: http://opensource.org/licenses/MIT -// -!function(i){"function"==typeof define&&define.amd?define(["jquery"],i):"object"==typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";function t(t,o){var s,a,n,e,r,l=i('
    '),h=i.minicolors.defaults;if(!t.data("minicolors-initialized")){if(o=i.extend(!0,{},h,o),l.addClass("minicolors-theme-"+o.theme).toggleClass("minicolors-with-opacity",o.opacity),void 0!==o.position&&i.each(o.position.split(" "),function(){l.addClass("minicolors-position-"+this)}),s="rgb"===o.format?o.opacity?"25":"20":o.keywords?"11":"7",t.addClass("minicolors-input").data("minicolors-initialized",!1).data("minicolors-settings",o).prop("size",s).wrap(l).after('
    '),o.inline||(t.after(''),t.next(".minicolors-input-swatch").on("click",function(i){i.preventDefault(),t.focus()})),e=t.parent().find(".minicolors-panel"),e.on("selectstart",function(){return!1}).end(),o.swatches&&0!==o.swatches.length)for(e.addClass("minicolors-with-swatches"),a=i('
      ').appendTo(e),r=0;r').appendTo(a).data("swatch-color",o.swatches[r]).find(".minicolors-swatch-color").css({backgroundColor:C(n),opacity:n.a}),o.swatches[r]=n;o.inline&&t.parent().addClass("minicolors-inline"),c(t,!1),t.data("minicolors-initialized",!0)}}function o(i){var t=i.parent();i.removeData("minicolors-initialized").removeData("minicolors-settings").removeProp("size").removeClass("minicolors-input"),t.before(i).remove()}function s(i){var t=i.parent(),o=t.find(".minicolors-panel"),s=i.data("minicolors-settings");!i.data("minicolors-initialized")||i.prop("disabled")||t.hasClass("minicolors-inline")||t.hasClass("minicolors-focus")||(a(),t.addClass("minicolors-focus"),o.stop(!0,!0).fadeIn(s.showSpeed,function(){s.show&&s.show.call(i.get(0))}))}function a(){i(".minicolors-focus").each(function(){var t=i(this),o=t.find(".minicolors-input"),s=t.find(".minicolors-panel"),a=o.data("minicolors-settings");s.fadeOut(a.hideSpeed,function(){a.hide&&a.hide.call(o.get(0)),t.removeClass("minicolors-focus")})})}function n(i,t,o){var s,a,n,r,c=i.parents(".minicolors").find(".minicolors-input"),l=c.data("minicolors-settings"),h=i.find("[class$=-picker]"),d=i.offset().left,p=i.offset().top,u=Math.round(t.pageX-d),g=Math.round(t.pageY-p),m=o?l.animationSpeed:0;t.originalEvent.changedTouches&&(u=t.originalEvent.changedTouches[0].pageX-d,g=t.originalEvent.changedTouches[0].pageY-p),u<0&&(u=0),g<0&&(g=0),u>i.width()&&(u=i.width()),g>i.height()&&(g=i.height()),i.parent().is(".minicolors-slider-wheel")&&h.parent().is(".minicolors-grid")&&(s=75-u,a=75-g,n=Math.sqrt(s*s+a*a),r=Math.atan2(a,s),r<0&&(r+=2*Math.PI),n>75&&(n=75,u=75-75*Math.cos(r),g=75-75*Math.sin(r)),u=Math.round(u),g=Math.round(g)),i.is(".minicolors-grid")?h.stop(!0).animate({top:g+"px",left:u+"px"},m,l.animationEasing,function(){e(c,i)}):h.stop(!0).animate({top:g+"px"},m,l.animationEasing,function(){e(c,i)})}function e(i,t){function o(i,t){var o,s;return i.length&&t?(o=i.offset().left,s=i.offset().top,{x:o-t.offset().left+i.outerWidth()/2,y:s-t.offset().top+i.outerHeight()/2}):null}var s,a,n,e,c,h,d,p=i.val(),u=i.attr("data-opacity"),g=i.parent(),m=i.data("minicolors-settings"),v=g.find(".minicolors-input-swatch"),b=g.find(".minicolors-grid"),w=g.find(".minicolors-slider"),y=g.find(".minicolors-opacity-slider"),C=b.find("[class$=-picker]"),M=w.find("[class$=-picker]"),x=y.find("[class$=-picker]"),I=o(C,b),S=o(M,w),z=o(x,y);if(t.is(".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider")){switch(m.control){case"wheel":e=b.width()/2-I.x,c=b.height()/2-I.y,h=Math.sqrt(e*e+c*c),d=Math.atan2(c,e),d<0&&(d+=2*Math.PI),h>75&&(h=75,I.x=69-75*Math.cos(d),I.y=69-75*Math.sin(d)),a=f(h/.75,0,100),s=f(180*d/Math.PI,0,360),n=f(100-Math.floor(S.y*(100/w.height())),0,100),p=k({h:s,s:a,b:n}),w.css("backgroundColor",k({h:s,s:a,b:100}));break;case"saturation":s=f(parseInt(I.x*(360/b.width()),10),0,360),a=f(100-Math.floor(S.y*(100/w.height())),0,100),n=f(100-Math.floor(I.y*(100/b.height())),0,100),p=k({h:s,s:a,b:n}),w.css("backgroundColor",k({h:s,s:100,b:n})),g.find(".minicolors-grid-inner").css("opacity",a/100);break;case"brightness":s=f(parseInt(I.x*(360/b.width()),10),0,360),a=f(100-Math.floor(I.y*(100/b.height())),0,100),n=f(100-Math.floor(S.y*(100/w.height())),0,100),p=k({h:s,s:a,b:n}),w.css("backgroundColor",k({h:s,s:a,b:100})),g.find(".minicolors-grid-inner").css("opacity",1-n/100);break;default:s=f(360-parseInt(S.y*(360/w.height()),10),0,360),a=f(Math.floor(I.x*(100/b.width())),0,100),n=f(100-Math.floor(I.y*(100/b.height())),0,100),p=k({h:s,s:a,b:n}),b.css("backgroundColor",k({h:s,s:100,b:100}))}u=m.opacity?parseFloat(1-z.y/y.height()).toFixed(2):1,r(i,p,u)}else v.find("span").css({backgroundColor:p,opacity:u}),l(i,p,u)}function r(i,t,o){var s,a=i.parent(),n=i.data("minicolors-settings"),e=a.find(".minicolors-input-swatch");n.opacity&&i.attr("data-opacity",o),"rgb"===n.format?(s=v(t)?g(t,!0):I(u(t,!0)),o=""===i.attr("data-opacity")?1:f(parseFloat(i.attr("data-opacity")).toFixed(2),0,1),!isNaN(o)&&n.opacity||(o=1),t=i.minicolors("rgbObject").a<=1&&s&&n.opacity?"rgba("+s.r+", "+s.g+", "+s.b+", "+parseFloat(o)+")":"rgb("+s.r+", "+s.g+", "+s.b+")"):(v(t)&&(t=y(t)),t=p(t,n.letterCase)),i.val(t),e.find("span").css({backgroundColor:t,opacity:o}),l(i,t,o)}function c(t,o){var s,a,n,e,r,c,h,d,w,C,x=t.parent(),I=t.data("minicolors-settings"),S=x.find(".minicolors-input-swatch"),z=x.find(".minicolors-grid"),F=x.find(".minicolors-slider"),T=x.find(".minicolors-opacity-slider"),D=z.find("[class$=-picker]"),j=F.find("[class$=-picker]"),q=T.find("[class$=-picker]");switch(v(t.val())?(s=y(t.val()),r=f(parseFloat(b(t.val())).toFixed(2),0,1),r&&t.attr("data-opacity",r)):s=p(u(t.val(),!0),I.letterCase),s||(s=p(m(I.defaultValue,!0),I.letterCase)),a=M(s),e=I.keywords?i.map(I.keywords.split(","),function(t){return i.trim(t.toLowerCase())}):[],c=""!==t.val()&&i.inArray(t.val().toLowerCase(),e)>-1?p(t.val()):v(t.val())?g(t.val()):s,o||t.val(c),I.opacity&&(n=""===t.attr("data-opacity")?1:f(parseFloat(t.attr("data-opacity")).toFixed(2),0,1),isNaN(n)&&(n=1),t.attr("data-opacity",n),S.find("span").css("opacity",n),d=f(T.height()-T.height()*n,0,T.height()),q.css("top",d+"px")),"transparent"===t.val().toLowerCase()&&S.find("span").css("opacity",0),S.find("span").css("backgroundColor",s),I.control){case"wheel":w=f(Math.ceil(.75*a.s),0,z.height()/2),C=a.h*Math.PI/180,h=f(75-Math.cos(C)*w,0,z.width()),d=f(75-Math.sin(C)*w,0,z.height()),D.css({top:d+"px",left:h+"px"}),d=150-a.b/(100/z.height()),""===s&&(d=0),j.css("top",d+"px"),F.css("backgroundColor",k({h:a.h,s:a.s,b:100}));break;case"saturation":h=f(5*a.h/12,0,150),d=f(z.height()-Math.ceil(a.b/(100/z.height())),0,z.height()),D.css({top:d+"px",left:h+"px"}),d=f(F.height()-a.s*(F.height()/100),0,F.height()),j.css("top",d+"px"),F.css("backgroundColor",k({h:a.h,s:100,b:a.b})),x.find(".minicolors-grid-inner").css("opacity",a.s/100);break;case"brightness":h=f(5*a.h/12,0,150),d=f(z.height()-Math.ceil(a.s/(100/z.height())),0,z.height()),D.css({top:d+"px",left:h+"px"}),d=f(F.height()-a.b*(F.height()/100),0,F.height()),j.css("top",d+"px"),F.css("backgroundColor",k({h:a.h,s:a.s,b:100})),x.find(".minicolors-grid-inner").css("opacity",1-a.b/100);break;default:h=f(Math.ceil(a.s/(100/z.width())),0,z.width()),d=f(z.height()-Math.ceil(a.b/(100/z.height())),0,z.height()),D.css({top:d+"px",left:h+"px"}),d=f(F.height()-a.h/(360/F.height()),0,F.height()),j.css("top",d+"px"),z.css("backgroundColor",k({h:a.h,s:100,b:100}))}t.data("minicolors-initialized")&&l(t,c,n)}function l(i,t,o){var s,a,n,e=i.data("minicolors-settings"),r=i.data("minicolors-lastChange");if(!r||r.value!==t||r.opacity!==o){if(i.data("minicolors-lastChange",{value:t,opacity:o}),e.swatches&&0!==e.swatches.length){for(s=v(t)?g(t,!0):I(t),a=-1,n=0;no&&(i=o),i}function v(i){var t=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return!(!t||4!==t.length)}function b(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+(\.\d{1,2})?|\.\d{1,2})[\s+]?/i),i&&6===i.length?i[4]:"1"}function w(i){var t={},o=Math.round(i.h),s=Math.round(255*i.s/100),a=Math.round(255*i.b/100);if(0===s)t.r=t.g=t.b=a;else{var n=a,e=(255-s)*a/255,r=(n-e)*(o%60)/60;360===o&&(o=0),o<60?(t.r=n,t.b=e,t.g=e+r):o<120?(t.g=n,t.b=e,t.r=n-r):o<180?(t.g=n,t.r=e,t.b=e+r):o<240?(t.b=n,t.r=e,t.g=n-r):o<300?(t.b=n,t.g=e,t.r=e+r):o<360?(t.r=n,t.g=e,t.b=n-r):(t.r=0,t.g=0,t.b=0)}return{r:Math.round(t.r),g:Math.round(t.g),b:Math.round(t.b)}}function y(i){return i=i.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i),i&&4===i.length?"#"+("0"+parseInt(i[1],10).toString(16)).slice(-2)+("0"+parseInt(i[2],10).toString(16)).slice(-2)+("0"+parseInt(i[3],10).toString(16)).slice(-2):""}function C(t){var o=[t.r.toString(16),t.g.toString(16),t.b.toString(16)];return i.each(o,function(i,t){1===t.length&&(o[i]="0"+t)}),"#"+o.join("")}function k(i){return C(w(i))}function M(i){var t=x(I(i));return 0===t.s&&(t.h=360),t}function x(i){var t={h:0,s:0,b:0},o=Math.min(i.r,i.g,i.b),s=Math.max(i.r,i.g,i.b),a=s-o;return t.b=s,t.s=0!==s?255*a/s:0,0!==t.s?i.r===s?t.h=(i.g-i.b)/a:i.g===s?t.h=2+(i.b-i.r)/a:t.h=4+(i.r-i.g)/a:t.h=-1,t.h*=60,t.h<0&&(t.h+=360),t.s*=100/255,t.b*=100/255,t}function I(i){return i=parseInt(i.indexOf("#")>-1?i.substring(1):i,16),{r:i>>16,g:(65280&i)>>8,b:255&i}}i.minicolors={defaults:{animationSpeed:50,animationEasing:"swing",change:null,changeDelay:0,control:"hue",defaultValue:"",format:"hex",hide:null,hideSpeed:100,inline:!1,keywords:"",letterCase:"lowercase",opacity:!1,position:"bottom left",show:null,showSpeed:100,theme:"default",swatches:[]}},i.extend(i.fn,{minicolors:function(n,e){switch(n){case"destroy":return i(this).each(function(){o(i(this))}),i(this);case"hide":return a(),i(this);case"opacity":return void 0===e?i(this).attr("data-opacity"):(i(this).each(function(){c(i(this).attr("data-opacity",e))}),i(this));case"rgbObject":return h(i(this),"rgbaObject"===n);case"rgbString":case"rgbaString":return d(i(this),"rgbaString"===n);case"settings":return void 0===e?i(this).data("minicolors-settings"):(i(this).each(function(){var t=i(this).data("minicolors-settings")||{};o(i(this)),i(this).minicolors(i.extend(!0,t,e))}),i(this));case"show":return s(i(this).eq(0)),i(this);case"value":return void 0===e?i(this).val():(i(this).each(function(){"object"==typeof e&&"null"!==e?(e.opacity&&i(this).attr("data-opacity",f(e.opacity,0,1)),e.color&&i(this).val(e.color)):i(this).val(e),c(i(this))}),i(this));default:return"create"!==n&&(e=n),i(this).each(function(){t(i(this),e)}),i(this)}}}),i([document,top.document]).on("mousedown.minicolors touchstart.minicolors",function(t){i(t.target).parents().add(t.target).hasClass("minicolors")||a()}).on("mousedown.minicolors touchstart.minicolors",".minicolors-grid, .minicolors-slider, .minicolors-opacity-slider",function(t){var o=i(this);t.preventDefault(),i(t.delegateTarget).data("minicolors-target",o),n(o,t,!0)}).on("mousemove.minicolors touchmove.minicolors",function(t){var o=i(t.delegateTarget).data("minicolors-target");o&&n(o,t)}).on("mouseup.minicolors touchend.minicolors",function(){i(this).removeData("minicolors-target")}).on("click.minicolors",".minicolors-swatches li",function(t){t.preventDefault();var o=i(this),s=o.parents(".minicolors").find(".minicolors-input"),a=o.data("swatch-color");r(s,a,b(a)),c(s)}).on("mousedown.minicolors touchstart.minicolors",".minicolors-input-swatch",function(t){var o=i(this).parent().find(".minicolors-input");t.preventDefault(),s(o)}).on("focus.minicolors",".minicolors-input",function(){var t=i(this);t.data("minicolors-initialized")&&s(t)}).on("blur.minicolors",".minicolors-input",function(){var t,o,s,a,n,e=i(this),r=e.data("minicolors-settings");e.data("minicolors-initialized")&&(t=r.keywords?i.map(r.keywords.split(","),function(t){return i.trim(t.toLowerCase())}):[],""!==e.val()&&i.inArray(e.val().toLowerCase(),t)>-1?n=e.val():(v(e.val())?s=g(e.val(),!0):(o=u(e.val(),!0),s=o?I(o):null),n=null===s?r.defaultValue:"rgb"===r.format?g(r.opacity?"rgba("+s.r+","+s.g+","+s.b+","+e.attr("data-opacity")+")":"rgb("+s.r+","+s.g+","+s.b+")"):C(s)),a=r.opacity?e.attr("data-opacity"):1,"transparent"===n.toLowerCase()&&(a=0),e.closest(".minicolors").find(".minicolors-input-swatch > span").css("opacity",a),e.val(n),""===e.val()&&e.val(m(r.defaultValue,!0)),e.val(p(e.val(),r.letterCase)))}).on("keydown.minicolors",".minicolors-input",function(t){var o=i(this);if(o.data("minicolors-initialized"))switch(t.keyCode){case 9:a();break;case 13:case 27:a(),o.blur()}}).on("keyup.minicolors",".minicolors-input",function(){var t=i(this);t.data("minicolors-initialized")&&c(t,!0)}).on("paste.minicolors",".minicolors-input",function(){var t=i(this);t.data("minicolors-initialized")&&setTimeout(function(){c(t,!0)},1)})}); \ No newline at end of file diff --git a/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.png b/assets/vendor/bootstrap-colorpicker/@claviska/jquery-minicolors/jquery.minicolors.png deleted file mode 100644 index bccc2012af78a0358e893f004e0207cac8f9e642..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68627 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,a=6*r<1?e+(t-e)*r*6:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e,Math.round(255*a)},RGBtoHSL:function(e){var t=e.r/255,r=e.g/255,a=e.b/255,n=Math.min(t,r,a),o=Math.max(t,r,a),i=o-n,f=o+n,u=.5*f,s=void 0,l=void 0;return s=n===o?0:t===o?60*(r-a)/i+360:r===o?60*(a-t)/i+120:60*(t-r)/i+240,l=0===i?0:u<=.5?i/f:i/(2-f),{h:Math.round(s)%360,s:l,l:u}},RGBtoHEX:function(e){var t=[e.r.toString(16),e.g.toString(16),e.b.toString(16)];return s.default.each(t,function(e,r){1===r.length&&(t[e]="0"+r)}),"#"+t.join("")},HSLtoHEX:function(e){var t=this.HSLtoRGB(e);return this.RGBtoHEX(t)},HSVtoHEX:function(e){var t=this.HSVtoRGB(e);return this.RGBtoHEX(t)},RGBtoHSV:function(e){var t=e.r/255,r=e.g/255,a=e.b/255,n=Math.max(t,r,a),o=Math.min(t,r,a),i=void 0,f=void 0,u=n,s=n-o;if(f=0===n?0:s/n,n===o)i=0;else{switch(n){case t:i=(r-a)/s+(rthis.length)&&-1!==this.indexOf(e,t)});var k=function(){function e(t,a){r(this,e),"object"===(void 0===t?"undefined":l(t))&&void 0===a&&(a=t,t=void 0),"string"==typeof a&&(a={format:a}),this.options=s.default.extend(!0,{},d,a),this.value={r:0,g:0,b:0,h:0,s:0,v:0,a:1},this._format=!1,this._matchFormat="HEX",this._valid=!0,this.init(t)}return h(e,[{key:"init",value:function(e){return this.format(this.options.format),this.fromString(e),this}},{key:"isValid",value:function(){return this._valid}},{key:"val",value:function(e){return void 0===e?this.toString():(this.fromString(e),this)}},{key:"alpha",value:function(e){return void 0===e||isNaN(e)?this.value.a:((e=parseFloat(e))>1?e=1:e<0&&(e=0),this.value.a=e,this)}},{key:"matchString",value:function(t){return e.matchString(t)}},{key:"fromString",value:function(e,t){if("string"==typeof e){e=s.default.trim(e);var r=null,a=void 0;this._valid=!1;for(var n in y)if(null!==(r=y[n].match.exec(e))&&(a=y[n].parse(r))){this.set(a),"TRANSPARENT"===n&&(n="HEX"),this._matchFormat=n,!0===t&&this.format(n);break}}else"object"===(void 0===e?"undefined":l(e))&&this.set(e);return this}},{key:"format",value:function(e){return"string"==typeof e&&(e=e.toUpperCase())&&void 0!==y[e]?this._format="TRANSPARENT"!==e?e:"HEX":!1===e&&(this._format=!1),!1===this._format?this._matchFormat:this._format}},{key:"toRGBA",value:function(){return y.RGBA.to(this.value,this)}},{key:"toRGB",value:function(){return y.RGB.to(this.value,this)}},{key:"toHSLA",value:function(){return y.HSLA.to(this.value,this)}},{key:"toHSL",value:function(){return y.HSL.to(this.value,this)}},{key:"toHEX",value:function(){return y.HEX.to(this.value,this)}},{key:"toNAME",value:function(){return y.NAME.to(this.value,this)}},{key:"to",value:function(e){return"string"==typeof e&&(e=e.toUpperCase())&&void 0!==y[e]?y[e].to(this.value,this):this.toString()}},{key:"toString",value:function(){var e=this.value;if(!this._valid&&"string"==typeof(e=this.options.invalidValue))return e;if(0===e.a&&this.options.zeroAlphaAsTransparent)return y.TRANSPARENT.to(e,this);var t=void 0;if(t=!1===this._format?this._matchFormat:this._format,this.options.reduceAlpha&&1===e.a)switch(t){case"RGBA":t="RGB";break;case"HSLA":t="HSL"}return 1!==e.a&&"RGBA"!==t&&"HSLA"!==t&&this.options.alphaConvert&&("string"==typeof this.options.alphaConvert&&(t=this.options.alphaConvert),void 0!==this.options.alphaConvert[t]&&(t=this.options.alphaConvert[t])),y[t].to(e,this)}},{key:"get",value:function(){return this.value}},{key:"set",value:function(e){this._valid=!0;var t=0,r=0,a=void 0,n=void 0;for(var o in e)"hsv".includes(o)?(r++,this.value[o]=e[o]):"rgb".includes(o)?(t++,this.value[o]=e[o]):"a"===o&&(this.value.a=e.a);return t>r?(a=b.RGBtoHSV(this.value),0===this.value.r&&0===this.value.g&&0===this.value.b||(this.value.h=a.h),this.value.s=a.s,this.value.v=a.v):r>t&&(n=b.HSVtoRGB(this.value),this.value.r=n.r,this.value.g=n.g,this.value.b=n.b),this}}],[{key:"matchString",value:function(e){if("string"==typeof e){e=s.default.trim(e);var t=null;for(var r in y)if(null!==(t=y[r].match.exec(e))&&y[r].parse(t))return!0}return!1}},{key:"setDefaults",value:function(e){s.default.extend(!0,d,s.default.isPlainObject(e)&&e)}}]),e}(),R={version:"0.3.6"},S=s.default.asColor,H=function(){for(var e=arguments.length,t=Array(e),r=0;r1&&(t=1),100*t+"%"}function o(t){t.id=P,P++}var r=a(t),h=a(e),l=a(i),u=function(){function t(t,e){for(var i=0;i
      '}},data:{},init:function(t,e){var i=this;this.options=$.extend(this.defaults,e),i.direction=this.options.direction,this.api=t,this.$alpha=$(this.options.template.call(i,t.namespace)).appendTo(t.$dropdown),this.$handle=this.$alpha.find("i"),t.$element.on("asColorPicker::firstOpen",function(){"vertical"===i.direction?i.size=i.$alpha.height():i.size=i.$alpha.width(),i.step=i.size/360,i.bindEvents(),i.keyboard()}),t.$element.on("asColorPicker::update asColorPicker::setup",function(t,e,a){i.update(a)})},bindEvents:function(){var t=this;this.$alpha.on(this.api.eventName("mousedown"),function(e){if(e.which?3===e.which:2===e.button)return!1;$.proxy(t.mousedown,t)(e)})},mousedown:function(t){var e=this.$alpha.offset();return"vertical"===this.direction?(this.data.startY=t.pageY,this.data.top=t.pageY-e.top,this.move(this.data.top)):(this.data.startX=t.pageX,this.data.left=t.pageX-e.left,this.move(this.data.left)),this.mousemove=function(t){var e=void 0;return e="vertical"===this.direction?this.data.top+(t.pageY||this.data.startY)-this.data.startY:this.data.left+(t.pageX||this.data.startX)-this.data.startX,this.move(e),!1},this.mouseup=function(){return $(document).off({mousemove:this.mousemove,mouseup:this.mouseup}),"vertical"===this.direction?this.data.top=this.data.cach:this.data.left=this.data.cach,!1},$(document).on({mousemove:$.proxy(this.mousemove,this),mouseup:$.proxy(this.mouseup,this)}),!1},move:function(t,e,i){t=Math.max(0,Math.min(this.size,t)),this.data.cach=t,void 0===e&&(e=1-t/this.size),e=Math.max(0,Math.min(1,e)),"vertical"===this.direction?this.$handle.css({top:t}):this.$handle.css({left:t}),!1!==i&&this.api.set({a:Math.round(100*e)/100})},moveLeft:function(){var t=this.step,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left-t)),this.move(e.left)},moveRight:function(){var t=this.step,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left+t)),this.move(e.left)},moveUp:function(){var t=this.step,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top-t)),this.move(e.top)},moveDown:function(){var t=this.step,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top+t)),this.move(e.top)},keyboard:function(){var t=void 0,e=this;if(!this.api._keyboard)return!1;t=$.extend(!0,{},this.api._keyboard),this.$alpha.attr("tabindex","0").on("focus",function(){return"vertical"===this.direction?t.attach({up:function(){e.moveUp()},down:function(){e.moveDown()}}):t.attach({left:function(){e.moveLeft()},right:function(){e.moveRight()}}),!1}).on("blur",function(){t.detach()})},update:function(t){var e=this.size*(1-t.value.a);this.$alpha.css("backgroundColor",t.toHEX()),this.move(e,t.value.a,!1)},destroy:function(){$(document).off({mousemove:this.mousemove,mouseup:this.mouseup})}},f={init:function(t){var e='';this.$hex=$(e).appendTo(t.$dropdown),this.$hex.on("change",function(){t.set(this.value)});var i=this;t.$element.on("asColorPicker::update asColorPicker::setup",function(t,e,a){i.update(a)})},update:function(t){this.$hex.val(t.toHEX())}},v={size:150,defaults:{direction:"vertical",template:function(){var t=this.api.namespace;return'
      '}},data:{},init:function(t,e){var i=this;this.options=$.extend(this.defaults,e),this.direction=this.options.direction,this.api=t,this.$hue=$(this.options.template.call(i)).appendTo(t.$dropdown),this.$handle=this.$hue.find("i"),t.$element.on("asColorPicker::firstOpen",function(){"vertical"===i.direction?i.size=i.$hue.height():i.size=i.$hue.width(),i.step=i.size/360,i.bindEvents(t),i.keyboard(t)}),t.$element.on("asColorPicker::update asColorPicker::setup",function(t,e,a){i.update(a)})},bindEvents:function(){var t=this;this.$hue.on(this.api.eventName("mousedown"),function(e){if(e.which?3===e.which:2===e.button)return!1;$.proxy(t.mousedown,t)(e)})},mousedown:function(t){var e=this.$hue.offset();return"vertical"===this.direction?(this.data.startY=t.pageY,this.data.top=t.pageY-e.top,this.move(this.data.top)):(this.data.startX=t.pageX,this.data.left=t.pageX-e.left,this.move(this.data.left)),this.mousemove=function(t){var e=void 0;return e="vertical"===this.direction?this.data.top+(t.pageY||this.data.startY)-this.data.startY:this.data.left+(t.pageX||this.data.startX)-this.data.startX,this.move(e),!1},this.mouseup=function(){return $(document).off({mousemove:this.mousemove,mouseup:this.mouseup}),"vertical"===this.direction?this.data.top=this.data.cach:this.data.left=this.data.cach,!1},$(document).on({mousemove:$.proxy(this.mousemove,this),mouseup:$.proxy(this.mouseup,this)}),!1},move:function(t,e,i){t=Math.max(0,Math.min(this.size,t)),this.data.cach=t,void 0===e&&(e=360*(1-t/this.size)),e=Math.max(0,Math.min(360,e)),"vertical"===this.direction?this.$handle.css({top:t}):this.$handle.css({left:t}),!1!==i&&this.api.set({h:e})},moveLeft:function(){var t=this.step,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left-t)),this.move(e.left)},moveRight:function(){var t=this.step,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left+t)),this.move(e.left)},moveUp:function(){var t=this.step,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top-t)),this.move(e.top)},moveDown:function(){var t=this.step,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top+t)),this.move(e.top)},keyboard:function(){var t=void 0,e=this;if(!this.api._keyboard)return!1;t=$.extend(!0,{},this.api._keyboard),this.$hue.attr("tabindex","0").on("focus",function(){return"vertical"===this.direction?t.attach({up:function(){e.moveUp()},down:function(){e.moveDown()}}):t.attach({left:function(){e.moveLeft()},right:function(){e.moveRight()}}),!1}).on("blur",function(){t.detach()})},update:function(t){var e=0===t.value.h?0:this.size*(1-t.value.h/360);this.move(e,t.value.h,!1)},destroy:function(){$(document).off({mousemove:this.mousemove,mouseup:this.mouseup})}},m={defaults:{template:function(t){return'
      '}},width:0,height:0,size:6,data:{},init:function(t,e){var i=this;this.options=$.extend(this.defaults,e),this.api=t,this.$saturation=$(this.options.template.call(i,t.namespace)).appendTo(t.$dropdown),this.$handle=this.$saturation.find("i"),t.$element.on("asColorPicker::firstOpen",function(){i.width=i.$saturation.width(),i.height=i.$saturation.height(),i.step={left:i.width/20,top:i.height/20},i.size=i.$handle.width()/2,i.bindEvents(),i.keyboard(t)}),t.$element.on("asColorPicker::update asColorPicker::setup",function(t,e,a){i.update(a)})},bindEvents:function(){var t=this;this.$saturation.on(this.api.eventName("mousedown"),function(e){if(e.which?3===e.which:2===e.button)return!1;t.mousedown(e)})},mousedown:function(t){var e=this.$saturation.offset();return this.data.startY=t.pageY,this.data.startX=t.pageX,this.data.top=t.pageY-e.top,this.data.left=t.pageX-e.left,this.data.cach={},this.move(this.data.left,this.data.top),this.mousemove=function(t){var e=this.data.left+(t.pageX||this.data.startX)-this.data.startX,i=this.data.top+(t.pageY||this.data.startY)-this.data.startY;return this.move(e,i),!1},this.mouseup=function(){return $(document).off({mousemove:this.mousemove,mouseup:this.mouseup}),this.data.left=this.data.cach.left,this.data.top=this.data.cach.top,!1},$(document).on({mousemove:$.proxy(this.mousemove,this),mouseup:$.proxy(this.mouseup,this)}),!1},move:function(t,e,i){e=Math.max(0,Math.min(this.height,e)),t=Math.max(0,Math.min(this.width,t)),void 0===this.data.cach&&(this.data.cach={}),this.data.cach.left=t,this.data.cach.top=e,this.$handle.css({top:e-this.size,left:t-this.size}),!1!==i&&this.api.set({s:t/this.width,v:1-e/this.height})},update:function(t){void 0===t.value.h&&(t.value.h=0),this.$saturation.css("backgroundColor",h.default.HSLtoHEX({h:t.value.h,s:1,l:.5}));var e=t.value.s*this.width,i=(1-t.value.v)*this.height;this.move(e,i,!1)},moveLeft:function(){var t=this.step.left,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left-t)),this.move(e.left,e.top)},moveRight:function(){var t=this.step.left,e=this.data;e.left=Math.max(0,Math.min(this.width,e.left+t)),this.move(e.left,e.top)},moveUp:function(){var t=this.step.top,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top-t)),this.move(e.left,e.top)},moveDown:function(){var t=this.step.top,e=this.data;e.top=Math.max(0,Math.min(this.width,e.top+t)),this.move(e.left,e.top)},keyboard:function(){var t=void 0,e=this;if(!this.api._keyboard)return!1;t=$.extend(!0,{},this.api._keyboard),this.$saturation.attr("tabindex","0").on("focus",function(){return t.attach({left:function(){e.moveLeft()},right:function(){e.moveRight()},up:function(){e.moveUp()},down:function(){e.moveDown()}}),!1}).on("blur",function(){t.detach()})},destroy:function(){$(document).off({mousemove:this.mousemove,mouseup:this.mouseup})}},g={defaults:{apply:!1,cancel:!0,applyText:null,cancelText:null,template:function(t){return'
      '},applyTemplate:function(t){return'
      '+this.options.applyText+""},cancelTemplate:function(t){return''+this.options.cancelText+""}},init:function(t,e){var i=this;this.options=$.extend(this.defaults,{applyText:t.getString("applyText","apply"),cancelText:t.getString("cancelText","cancel")},e),this.$buttons=$(this.options.template.call(this,t.namespace)).appendTo(t.$dropdown),t.$element.on("asColorPicker::firstOpen",function(){i.options.apply&&(i.$apply=$(i.options.applyTemplate.call(i,t.namespace)).appendTo(i.$buttons).on("click",function(){return t.apply(),!1})),i.options.cancel&&(i.$cancel=$(i.options.cancelTemplate.call(i,t.namespace)).appendTo(i.$buttons).on("click",function(){return t.cancel(),!1}))})}},y={defaults:{template:function(t){return'
      '}},init:function(t,e){this.options=$.extend(this.defaults,e),t.$trigger=$(this.options.template.call(this,t.namespace)),this.$triggerInner=t.$trigger.children("span"),t.$trigger.insertAfter(t.$element),t.$trigger.on("click",function(){return t.opened?t.close():t.open(),!1});var i=this;t.$element.on("asColorPicker::update",function(t,e,a,n){void 0===n&&(n=!1),i.update(a,n)}),this.update(t.color)},update:function(t,e){e?this.$triggerInner.css("background",e.toString(!0)):this.$triggerInner.css("background",t.toRGBA())},destroy:function(t){t.$trigger.remove()}},w={defaults:{template:function(t){return''}},init:function(t,e){t.options.hideInput||(this.options=$.extend(this.defaults,e),this.$clear=$(this.options.template.call(this,t.namespace)).insertAfter(t.$element),this.$clear.on("click",function(){return t.clear(),!1}))}},k={color:["white","black","transparent"],init:function(t){var e='
      ';this.$info=$(e).appendTo(t.$dropdown),this.$r=this.$info.find('[data-type="r"]'),this.$g=this.$info.find('[data-type="g"]'),this.$b=this.$info.find('[data-type="b"]'),this.$a=this.$info.find('[data-type="a"]'),this.$info.on(t.eventName("keyup update change"),"input",function(e){var i=void 0,a=$(e.target).data("type");switch(a){case"r":case"g":case"b":(i=parseInt(this.value,10))>255?i=255:i<0&&(i=0);break;case"a":(i=parseFloat(this.value,10))>1?i=1:i<0&&(i=0)}isNaN(i)&&(i=0);var n={};n[a]=i,t.set(n)});var i=this;t.$element.on("asColorPicker::update asColorPicker::setup",function(t,e){i.update(e)})},update:function(t){this.$r.val(t.value.r),this.$g.val(t.value.g),this.$b.val(t.value.b),this.$a.val(t.value.a)}};window.localStorage||(window.localStorage=function(){});var b={defaults:{template:function(t){return'
        '},item:function(t,e){return'
      • '},colors:["white","black","red","blue","yellow"],max:10,localStorage:!0},init:function(t,e){var i=this,a=void 0,n=(0,h.default)();this.options=$.extend(!0,{},this.defaults,e),this.colors=[];var s=void 0;this.options.localStorage?(s=t.namespace+"_palettes_"+t.id,(a=this.getLocal(s))||(a=this.options.colors,this.setLocal(s,a))):a=this.options.colors;for(var o in a)Object.hasOwnProperty.call(a,o)&&this.colors.push(n.val(a[o]).toRGBA());var r="";$.each(this.colors,function(e,a){r+=i.options.item(t.namespace,a)}),this.$palettes=$(this.options.template.call(this,t.namespace)).html(r).appendTo(t.$dropdown),this.$palettes.on(t.eventName("click"),"li",function(e){var i=$(this).data("color");t.set(i),e.preventDefault(),e.stopPropagation()}),t.$element.on("asColorPicker::apply",function(t,e,a){"function"!=typeof a.toRGBA&&(a=a.get().color);var n=a.toRGBA();-1===$.inArray(n,i.colors)&&(i.colors.length>=i.options.max&&(i.colors.shift(),i.$palettes.find("li").eq(0).remove()),i.colors.push(n),i.$palettes.append(i.options.item(e.namespace,a)),i.options.localStorage&&i.setLocal(s,i.colors))})},setLocal:function(t,e){var i=JSON.stringify(e);localStorage[t]=i},getLocal:function(t){var e=localStorage[t];return e?JSON.parse(e):e}},x={defaults:{template:function(t){return'
        '}},init:function(t,e){var i=this;this.options=$.extend(this.defaults,e),this.$preview=$(this.options.template.call(i,t.namespace)).appendTo(t.$dropdown),this.$current=this.$preview.find("."+t.namespace+"-preview-current span"),this.$previous=this.$preview.find("."+t.namespace+"-preview-previous span"),t.$element.on("asColorPicker::firstOpen",function(){i.$previous.on("click",function(){return t.set($(this).data("color")),!1})}),t.$element.on("asColorPicker::setup",function(t,e,a){i.updateCurrent(a),i.updatePreview(a)}),t.$element.on("asColorPicker::update",function(t,e,a){i.updateCurrent(a)})},updateCurrent:function(t){this.$current.css("backgroundColor",t.toRGBA())},updatePreview:function(t){this.$previous.css("backgroundColor",t.toRGBA()),this.$previous.data("color",{r:t.value.r,g:t.value.g,b:t.value.b,a:t.value.a})}},C=function(t,e){this.api=t,this.options=e,this.classes={enable:t.namespace+"-gradient_enable",marker:t.namespace+"-gradient-marker",active:t.namespace+"-gradient-marker_active",focus:t.namespace+"-gradient_focus"},this.isEnabled=!1,this.initialized=!1,this.current=null,this.value=(0,l.default)(this.options.settings),this.$doc=$(document);var i=this;$.extend(i,{init:function(){i.$wrap=$(i.options.template.call(i)).appendTo(t.$dropdown),i.$gradient=i.$wrap.filter("."+t.namespace+"-gradient"),this.angle.init(),this.preview.init(),this.markers.init(),this.wheel.init(),this.bind(),(!1===i.options.switchable||this.value.matchString(t.element.value))&&i.enable(),this.initialized=!0},bind:function(){var e=t.namespace;i.$gradient.on("update",function(){var e=i.value.getById(i.current);e&&t._trigger("update",e.color,i.value),t.element.value!==i.value.toString()&&t._updateInput()}),i.options.switchable&&i.$wrap.on("click","."+e+"-gradient-switch",function(){return i.isEnabled?i.disable():i.enable(),!1}),i.$wrap.on("click","."+e+"-gradient-cancel",function(){return(!1===i.options.switchable||l.default.matchString(t.originValue))&&i.overrideCore(),t.cancel(),!1})},overrideCore:function(){t.set=function(e){if(t.isEmpty=""===e,"string"==typeof e)!1===i.options.switchable||l.default.matchString(e)?i.isEnabled?(i.val(e),t.color=i.value,i.$gradient.trigger("update",i.value.value)):i.enable(e):(i.disable(),t.val(e));else{var a=i.value.getById(i.current);a&&(a.color.val(e),t._trigger("update",a.color,i.value)),i.$gradient.trigger("update",{id:i.current,stop:a})}},t._setup=function(){var e=i.value.getById(i.current);t._trigger("setup",e.color)}},revertCore:function(){t.set=$.proxy(t._set,t),t._setup=function(){t._trigger("setup",t.color)}},preview:{init:function(){var e=this;i.$preview=i.$gradient.find("."+t.namespace+"-gradient-preview"),i.$gradient.on("add del update empty",function(){e.render()})},render:function(){i.$preview.css({"background-image":i.value.toStringWithAngle("to right",!0)}),i.$preview.css({"background-image":i.value.toStringWithAngle("to right")})}},markers:{width:160,init:function(){var e=this;i.$markers=i.$gradient.find("."+t.namespace+"-gradient-markers").attr("tabindex",0),i.$gradient.on("add",function(t,i){e.add(i.stop)}),i.$gradient.on("active",function(t,i){e.active(i.id)}),i.$gradient.on("del",function(t,i){e.del(i.id)}),i.$gradient.on("update",function(t,i){i.stop&&e.update(i.stop.id,i.stop.color)}),i.$gradient.on("empty",function(){e.empty()}),i.$markers.on(i.api.eventName("mousedown"),function(t){if(t.which?3===t.which:2===t.button)return!1;var e=parseFloat((t.pageX-i.$markers.offset().left)/i.markers.width,10);return i.add("#fff",e),!1});var a=this;i.$markers.on(i.api.eventName("mousedown"),"li",function(t){return(t.which?3!==t.which:2!==t.button)&&(a.mousedown(this,t),!1)}),i.$doc.on(i.api.eventName("keydown"),function(t){if(i.api.opened&&i.$markers.is("."+i.classes.focus)){var e=t.keyCode||t.which;if(46===e||8===e)return!(i.value.length<=2)&&(i.del(i.current),!1)}}),i.$markers.on(i.api.eventName("focus"),function(){i.$markers.addClass(i.classes.focus)}).on(i.api.eventName("blur"),function(){i.$markers.removeClass(i.classes.focus)}),i.$markers.on(i.api.eventName("click"),"li",function(){var t=$(this).data("id");i.active(t)})},getMarker:function(t){return i.$markers.find('[data-id="'+t+'"]')},update:function(t,e){var i=this.getMarker(t);i.find("span").css("background-color",e.toHEX()),i.find("i").css("background-color",e.toHEX())},add:function(t){$('
      • ').appendTo(i.$markers)},empty:function(){i.$markers.html("")},del:function(t){var e=this.getMarker(t),a=e.prev();0===a.length&&(a=e.next()),i.active(a.data("id")),e.remove()},active:function(t){i.$markers.children().removeClass(i.classes.active),this.getMarker(t).addClass(i.classes.active),i.$markers.focus()},mousedown:function(t,e){var a=this,n=$(t).data("id"),s=$(t).position().left,o=e.pageX,r=void 0;return this.mousemove=function(e){r=e.pageX||o;var i=(s+r-o)/this.width;return a.move(t,i,n),!1},this.mouseup=function(){return $(document).off({mousemove:this.mousemove,mouseup:this.mouseup}),!1},i.$doc.on({mousemove:$.proxy(this.mousemove,this),mouseup:$.proxy(this.mouseup,this)}),i.active(n),!1},move:function(t,e,a){i.api.isEmpty=!1,e=Math.max(0,Math.min(1,e)),$(t).css({left:s(e)}),a||(a=$(t).data("id")),i.value.getById(a).setPosition(e),i.$gradient.trigger("update",{id:$(t).data("id"),position:e})}},wheel:{init:function(){var e=this;i.$wheel=i.$gradient.find("."+t.namespace+"-gradient-wheel"),i.$pointer=i.$wheel.find("i"),i.$gradient.on("update",function(t,i){void 0!==i.angle&&e.position(i.angle)}),i.$wheel.on(i.api.eventName("mousedown"),function(t){return(t.which?3!==t.which:2!==t.button)&&(e.mousedown(t,i),!1)})},mousedown:function(t,e){var i=this,a=e.$wheel.offset(),n=e.$wheel.width()/2,s=a.left+n,o=a.top+n,r=e.$doc;this.r=n,this.wheelMove=function(t){var a=t.pageX-s,n=o-t.pageY,r=i.getPosition(a,n),h=i.calAngle(r.x,r.y);e.api.isEmpty=!1,e.setAngle(h)},this.wheelMouseup=function(){return r.off({mousemove:this.wheelMove,mouseup:this.wheelMouseup}),!1},r.on({mousemove:$.proxy(this.wheelMove,this),mouseup:$.proxy(this.wheelMouseup,this)}),this.wheelMove(t)},getPosition:function(t,e){var i=this.r;return{x:t/Math.sqrt(t*t+e*e)*i,y:e/Math.sqrt(t*t+e*e)*i}},calAngle:function(t,e){var i=Math.round(Math.atan(Math.abs(t/e))*(180/Math.PI));return t<0&&e>0?360-i:t<0&&e<=0?i+180:t>=0&&e<=0?180-i:t>=0&&e>0?i:void 0},set:function(t){i.value.angle(t),i.$gradient.trigger("update",{angle:t})},position:function(t){var e=this.r||i.$wheel.width()/2,a=this.calPointer(t,e);i.$pointer.css({left:a.x,top:a.y})},calPointer:function(t,e){return{x:e+Math.sin(t*Math.PI/180)*e,y:e-Math.cos(t*Math.PI/180)*e}}},angle:{init:function(){i.$angle=i.$gradient.find("."+t.namespace+"-gradient-angle"),i.$angle.on(i.api.eventName("blur"),function(){return i.setAngle(this.value),!1}).on(i.api.eventName("keydown"),function(t){if(13===(t.keyCode||t.which))return i.api.isEmpty=!1,$(this).blur(),!1}),i.$gradient.on("update",function(t,e){void 0!==e.angle&&i.$angle.val(e.angle)})},set:function(t){i.value.angle(t),i.$gradient.trigger("update",{angle:t})}}}),this.init()};C.prototype={constructor:C,enable:function(t){!0!==this.isEnabled&&(this.isEnabled=!0,this.overrideCore(),this.$gradient.addClass(this.classes.enable),this.markers.width=this.$markers.width(),void 0===t&&(t=this.api.element.value),this.api.isEmpty=""===t,!l.default.matchString(t)&&this._last?this.value=this._last:this.val(t),this.api.color=this.value,this.$gradient.trigger("update",this.value.value),this.api.opened&&this.api.position())},val:function(t){if(""===t||this.value.toString()!==t){if(this.empty(),this.value.val(t),this.value.reorder(),this.value.length<2){var e=t;h.default.matchString(t)||(e="rgba(0,0,0,1)"),0===this.value.length&&this.value.append(e,0),1===this.value.length&&this.value.append(e,1)}for(var i=void 0,a=0;a';return this.options.switchable&&(e+=''+this.options.switchText+""),(e+=''+this.options.cancelText+"")+'
          '}},init:function(t,e){var i=this;t.$element.on("asColorPicker::ready",function(a,n){"gradient"===n.options.mode&&(i.defaults.settings.color=t.options.color,e=$.extend(!0,i.defaults,e),t.gradient=new C(t,e))})}},T={},_={en:{cancelText:"cancel",applyText:"apply"}},P=0,z=function(){function t(e,i){n(this,t),this.element=e,this.$element=(0,r.default)(e),this.opened=!1,this.firstOpen=!0,this.disabled=!1,this.initialed=!1,this.originValue=this.element.value,this.isEmpty=!1,o(this),this.options=r.default.extend(!0,{},c,i,this.$element.data()),this.namespace=this.options.namespace,this.classes={wrap:this.namespace+"-wrap",dropdown:this.namespace+"-dropdown",input:this.namespace+"-input",skin:this.namespace+"_"+this.options.skin,open:this.namespace+"_open",mask:this.namespace+"-mask",hideInput:this.namespace+"_hideInput",disabled:this.namespace+"_disabled",mode:this.namespace+"-mode_"+this.options.mode},this.options.hideInput&&this.$element.addClass(this.classes.hideInput),this.components=d[this.options.mode],this._components=r.default.extend(!0,{},T),this._trigger("init"),this.init()}return u(t,[{key:"_trigger",value:function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),a=1;a'),this.$element.wrap('
          ').addClass(this.classes.input),this.$wrap=this.$element.parent(),this.$body=(0,r.default)("body"),this.$dropdown.data("asColorPicker",this);var e=void 0;r.default.each(this.components,function(i,a){!0===a&&(a={}),void 0!==t.options[i]&&(a=r.default.extend(!0,{},a,t.options[i])),Object.hasOwnProperty.call(t._components,i)&&(e=t._components[i]).init(t,a)}),this._trigger("create")}},{key:"_bindEvent",value:function(){var t=this;this.$element.on(this.eventName("click"),function(){return t.opened||t.open(),!1}),this.$element.on(this.eventName("keydown"),function(e){9===e.keyCode?t.close():13===e.keyCode&&(t.val(t.element.value),t.close())}),this.$element.on(this.eventName("keyup"),function(){t.color.matchString(t.element.value)&&t.val(t.element.value)})}},{key:"opacity",value:function(t){if(!t)return this.color.alpha();this.color.alpha(t)}},{key:"position",value:function(){var t=!this.$element.is(":visible"),e=t?this.$trigger.offset():this.$element.offset(),i=t?this.$trigger.outerHeight():this.$element.outerHeight(),a=t?this.$trigger.outerWidth():this.$element.outerWidth()+this.$trigger.outerWidth(),n=this.$dropdown.outerWidth(!0),s=this.$dropdown.outerHeight(!0),o=void 0,h=void 0;o=s+e.top>(0,r.default)(window).height()+(0,r.default)(window).scrollTop()?e.top-s:e.top+i,h=n+e.left>(0,r.default)(window).width()+(0,r.default)(window).scrollLeft()?e.left-n+a:e.left,this.$dropdown.css({position:"absolute",top:o,left:h})}},{key:"open",value:function(){this.disabled||(this.originValue=this.element.value,this.$dropdown[0]!==this.$body.children().last()[0]&&this.$dropdown.detach().appendTo(this.$body),this.$mask=(0,r.default)("."+this.classes.mask),0===this.$mask.length&&this.createMask(),this.$dropdown.prev()[0]!==this.$mask[0]&&this.$dropdown.before(this.$mask),(0,r.default)("#asColorPicker-dropdown").removeAttr("id"),this.$dropdown.attr("id","asColorPicker-dropdown"),this.$mask.show(),this.position(),(0,r.default)(window).on(this.eventName("resize"),r.default.proxy(this.position,this)),this.$dropdown.addClass(this.classes.open),this.opened=!0,this.firstOpen&&(this.firstOpen=!1,this._trigger("firstOpen")),this._setup(),this._trigger("open"))}},{key:"createMask",value:function(){this.$mask=(0,r.default)(document.createElement("div")),this.$mask.attr("class",this.classes.mask),this.$mask.hide(),this.$mask.appendTo(this.$body),this.$mask.on(this.eventName("mousedown touchstart click"),function(t){var e=(0,r.default)("#asColorPicker-dropdown"),i=void 0;e.length>0&&((i=e.data("asColorPicker")).opened&&(i.options.hideFireChange?i.apply():i.cancel()),t.preventDefault(),t.stopPropagation())})}},{key:"close",value:function(){this.opened=!1,this.$element.blur(),this.$mask.hide(),this.$dropdown.removeClass(this.classes.open),(0,r.default)(window).off(this.eventName("resize")),this._trigger("close")}},{key:"clear",value:function(){this.val("")}},{key:"cancel",value:function(){this.close(),this.set(this.originValue)}},{key:"apply",value:function(){this._trigger("apply",this.color),this.close()}},{key:"val",value:function(t){if(void 0===t)return this.color.toString();this.set(t)}},{key:"_update",value:function(){this._trigger("update",this.color),this._updateInput()}},{key:"_updateInput",value:function(){var t=this.color.toString();this.isEmpty&&(t=""),this._trigger("change",t),this.$element.val(t)}},{key:"set",value:function(t){return this.isEmpty=""===t,this._set(t)}},{key:"_set",value:function(t){"string"==typeof t?this.color.val(t):this.color.set(t),this._update()}},{key:"_setup",value:function(){this._trigger("setup",this.color)}},{key:"get",value:function(){return this.color}},{key:"enable",value:function(){return this.disabled=!1,this.$parent.addClass(this.classes.disabled),this._trigger("enable"),this}},{key:"disable",value:function(){return this.disabled=!0,this.$parent.removeClass(this.classes.disabled),this._trigger("disable"),this}},{key:"destroy",value:function(){return this.$element.unwrap(),this.$element.off(this.eventName()),this.$mask.remove(),this.$dropdown.remove(),this.initialized=!1,this.$element.data("asColorPicker",null),this._trigger("destroy"),this}},{key:"getString",value:function(t,e){return this.options.lang in _&&void 0!==_[this.options.lang][t]?_[this.options.lang][t]:e}}],[{key:"setLocalization",value:function(t,e){_[t]=e}},{key:"registerComponent",value:function(t,e){T[t]=e}},{key:"setDefaults",value:function(t){r.default.extend(!0,c,r.default.isPlainObject(t)&&t)}}]),t}();z.registerComponent("alpha",p),z.registerComponent("hex",f),z.registerComponent("hue",v),z.registerComponent("saturation",m),z.registerComponent("buttons",g),z.registerComponent("trigger",y),z.registerComponent("clear",w),z.registerComponent("info",k),z.registerComponent("palettes",b),z.registerComponent("preview",x),z.registerComponent("gradient",M),z.setLocalization("cn",{cancelText:"取消",applyText:"应用"}),z.setLocalization("de",{cancelText:"Abbrechen",applyText:"Wählen"}),z.setLocalization("dk",{cancelText:"annuller",applyText:"Vælg"}),z.setLocalization("es",{cancelText:"Cancelar",applyText:"Elegir"}),z.setLocalization("fi",{cancelText:"Kumoa",applyText:"Valitse"}),z.setLocalization("fr",{cancelText:"Annuler",applyText:"Valider"}),z.setLocalization("it",{cancelText:"annulla",applyText:"scegli"}),z.setLocalization("ja",{cancelText:"中止",applyText:"選択"}),z.setLocalization("ru",{cancelText:"отмена",applyText:"выбрать"}),z.setLocalization("sv",{cancelText:"Avbryt",applyText:"Välj"}),z.setLocalization("tr",{cancelText:"Avbryt",applyText:"Välj"});var E={version:"0.4.4"},A=r.default.fn.asColorPicker,S=function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),a=1;a this.length) { - return false; - } - return this.indexOf(search, start) !== -1; - }; - } - - function getPrefix() { - var ua = window.navigator.userAgent; - var prefix = ''; - if (/MSIE/g.test(ua)) { - prefix = '-ms-'; - } else if (/Firefox/g.test(ua)) { - prefix = '-moz-'; - } else if (/(WebKit)/i.test(ua)) { - prefix = '-webkit-'; - } else if (/Opera/g.test(ua)) { - prefix = '-o-'; - } - return prefix; - } - - function flip(o) { - var flipped = {}; - for (var i in o) { - if (o.hasOwnProperty(i)) { - flipped[o[i]] = i; - } - } - return flipped; - } - - function reverseDirection(direction) { - var mapping = { - top: 'bottom', - right: 'left', - bottom: 'top', - left: 'right', - 'right top': 'left bottom', - 'top right': 'bottom left', - 'bottom right': 'top left', - 'right bottom': 'left top', - 'left bottom': 'right top', - 'bottom left': 'top right', - 'top left': 'bottom right', - 'left top': 'right bottom' - }; - return mapping.hasOwnProperty(direction) ? mapping[direction] : direction; - } - - function isDirection(n) { - var reg = /^(top|left|right|bottom)$/i; - return reg.test(n); - } - - var keywordAngleMap = { - 'to top': 0, - 'to right': 90, - 'to bottom': 180, - 'to left': 270, - 'to right top': 45, - 'to top right': 45, - 'to bottom right': 135, - 'to right bottom': 135, - 'to left bottom': 225, - 'to bottom left': 225, - 'to top left': 315, - 'to left top': 315 - }; - - var angleKeywordMap = flip(keywordAngleMap); - - var RegExpStrings = (function() { - var color = /(?:rgba|rgb|hsla|hsl)\s*\([\s\d\.,%]+\)|#[a-z0-9]{3,6}|[a-z]+/i; - var position = /\d{1,3}%/i; - var angle = /(?:to ){0,1}(?:(?:top|left|right|bottom)\s*){1,2}|\d+deg/i; - var stop = new RegExp( - '(' + color.source + ')\\s*(' + position.source + '){0,1}', - 'i' - ); - var stops = new RegExp(stop.source, 'gi'); - var parameters = new RegExp( - '(?:(' + angle.source + ')){0,1}\\s*,{0,1}\\s*(.*?)\\s*', - 'i' - ); - var full = new RegExp( - '^(-webkit-|-moz-|-ms-|-o-){0,1}(linear|radial|repeating-linear)-gradient\\s*\\(\\s*(' + - parameters.source + - ')\\s*\\)$', - 'i' - ); - - return { - FULL: full, - ANGLE: angle, - COLOR: color, - POSITION: position, - STOP: stop, - STOPS: stops, - PARAMETERS: new RegExp('^' + parameters.source + '$', 'i') - }; - })(); - - var GradientString = { - matchString: function matchString(string) { - var matched = this.parseString(string); - if ( - matched && - matched.value && - matched.value.stops && - matched.value.stops.length > 1 - ) { - return true; - } - return false; - }, - - parseString: function parseString(string) { - string = _jquery2.default.trim(string); - var matched = void 0; - if ((matched = RegExpStrings.FULL.exec(string)) !== null) { - var value = this.parseParameters(matched[3]); - - return { - prefix: typeof matched[1] === 'undefined' ? null : matched[1], - type: matched[2], - value: value - }; - } else { - return false; - } - }, - - parseParameters: function parseParameters(string) { - var matched = void 0; - if ((matched = RegExpStrings.PARAMETERS.exec(string)) !== null) { - var stops = this.parseStops(matched[2]); - return { - angle: typeof matched[1] === 'undefined' ? 0 : matched[1], - stops: stops - }; - } else { - return false; - } - }, - - parseStops: function parseStops(string) { - var _this = this; - - var matched = void 0; - var result = []; - if ((matched = string.match(RegExpStrings.STOPS)) !== null) { - _jquery2.default.each(matched, function(i, item) { - var stop = _this.parseStop(item); - if (stop) { - result.push(stop); - } - }); - return result; - } else { - return false; - } - }, - - formatStops: function formatStops(stops, cleanPosition) { - var stop = void 0; - var output = []; - var positions = []; - var colors = []; - var position = void 0; - - for (var i = 0; i < stops.length; i++) { - stop = stops[i]; - if (typeof stop.position === 'undefined' || stop.position === null) { - if (i === 0) { - position = 0; - } else if (i === stops.length - 1) { - position = 1; - } else { - position = undefined; - } - } else { - position = stop.position; - } - positions.push(position); - colors.push(stop.color.toString()); - } - - positions = (function(data) { - var start = null; - var average = void 0; - for (var _i = 0; _i < data.length; _i++) { - if (isNaN(data[_i])) { - if (start === null) { - start = _i; - continue; - } - } else if (start) { - average = (data[_i] - data[start - 1]) / (_i - start + 1); - for (var j = start; j < _i; j++) { - data[j] = data[start - 1] + (j - start + 1) * average; - } - start = null; - } - } - - return data; - })(positions); - - for (var x = 0; x < stops.length; x++) { - if ( - cleanPosition && - ((x === 0 && positions[x] === 0) || - (x === stops.length - 1 && positions[x] === 1)) - ) { - position = ''; - } else { - position = ' ' + this.formatPosition(positions[x]); - } - - output.push(colors[x] + position); - } - return output.join(', '); - }, - - parseStop: function parseStop(string) { - var matched = void 0; - if ((matched = RegExpStrings.STOP.exec(string)) !== null) { - var position = this.parsePosition(matched[2]); - - return { - color: matched[1], - position: position - }; - } else { - return false; - } - }, - - parsePosition: function parsePosition(string) { - if (typeof string === 'string' && string.substr(-1) === '%') { - string = parseFloat(string.slice(0, -1) / 100); - } - - if (typeof string !== 'undefined' && string !== null) { - return parseFloat(string, 10); - } else { - return null; - } - }, - - formatPosition: function formatPosition(value) { - return parseInt(value * 100, 10) + '%'; - }, - - parseAngle: function parseAngle(string, notStandard) { - if (typeof string === 'string' && string.includes('deg')) { - string = string.replace('deg', ''); - } - if (!isNaN(string)) { - if (notStandard) { - string = this.fixOldAngle(string); - } - } - if (typeof string === 'string') { - var directions = string.split(' '); - - var filtered = []; - for (var i in directions) { - if (isDirection(directions[i])) { - filtered.push(directions[i].toLowerCase()); - } - } - var keyword = filtered.join(' '); - - if (!string.includes('to ')) { - keyword = reverseDirection(keyword); - } - keyword = 'to ' + keyword; - if (keywordAngleMap.hasOwnProperty(keyword)) { - string = keywordAngleMap[keyword]; - } - } - var value = parseFloat(string, 10); - - if (value > 360) { - value %= 360; - } else if (value < 0) { - value %= -360; - - if (value !== 0) { - value += 360; - } - } - return value; - }, - - fixOldAngle: function fixOldAngle(value) { - value = parseFloat(value); - value = Math.abs(450 - value) % 360; - value = parseFloat(value.toFixed(3)); - return value; - }, - - formatAngle: function formatAngle(value, notStandard, useKeyword) { - value = parseInt(value, 10); - if (useKeyword && angleKeywordMap.hasOwnProperty(value)) { - value = angleKeywordMap[value]; - if (notStandard) { - value = reverseDirection(value.substr(3)); - } - } else { - if (notStandard) { - value = this.fixOldAngle(value); - } - value = value + 'deg'; - } - - return value; - } - }; - - var ColorStop = (function() { - function ColorStop(color, position, gradient) { - _classCallCheck(this, ColorStop); - - this.color = (0, _jqueryAsColor2.default)(color, gradient.options.color); - this.position = GradientString.parsePosition(position); - this.id = ++gradient._stopIdCount; - this.gradient = gradient; - } - - _createClass(ColorStop, [ - { - key: 'setPosition', - value: function setPosition(string) { - var position = GradientString.parsePosition(string); - if (this.position !== position) { - this.position = position; - this.gradient.reorder(); - } - } - }, - { - key: 'setColor', - value: function setColor(string) { - this.color.fromString(string); - } - }, - { - key: 'remove', - value: function remove() { - this.gradient.removeById(this.id); - } - } - ]); - - return ColorStop; - })(); - - var GradientTypes = { - LINEAR: { - parse: function parse(result) { - return { - r: - result[1].substr(-1) === '%' - ? parseInt(result[1].slice(0, -1) * 2.55, 10) - : parseInt(result[1], 10), - g: - result[2].substr(-1) === '%' - ? parseInt(result[2].slice(0, -1) * 2.55, 10) - : parseInt(result[2], 10), - b: - result[3].substr(-1) === '%' - ? parseInt(result[3].slice(0, -1) * 2.55, 10) - : parseInt(result[3], 10), - a: 1 - }; - }, - to: function to(gradient, instance, prefix) { - if (gradient.stops.length === 0) { - return instance.options.emptyString; - } - if (gradient.stops.length === 1) { - return gradient.stops[0].color.to(instance.options.degradationFormat); - } - - var standard = instance.options.forceStandard; - var _prefix = instance._prefix; - - if (!_prefix) { - standard = true; - } - if ( - prefix && - -1 !== _jquery2.default.inArray(prefix, instance.options.prefixes) - ) { - standard = false; - _prefix = prefix; - } - - var angle = GradientString.formatAngle( - gradient.angle, - !standard, - instance.options.angleUseKeyword - ); - var stops = GradientString.formatStops( - gradient.stops, - instance.options.cleanPosition - ); - - var output = 'linear-gradient(' + angle + ', ' + stops + ')'; - if (standard) { - return output; - } else { - return _prefix + output; - } - } - } - }; - - var AsGradient = (function() { - function AsGradient(string, options) { - _classCallCheck(this, AsGradient); - - if ( - (typeof string === 'undefined' ? 'undefined' : _typeof(string)) === - 'object' && - typeof options === 'undefined' - ) { - options = string; - string = undefined; - } - this.value = { - angle: 0, - stops: [] - }; - this.options = _jquery2.default.extend(true, {}, DEFAULTS, options); - - this._type = 'LINEAR'; - this._prefix = null; - this.length = this.value.stops.length; - this.current = 0; - this._stopIdCount = 0; - - this.init(string); - } - - _createClass( - AsGradient, - [ - { - key: 'init', - value: function init(string) { - if (string) { - this.fromString(string); - } - } - }, - { - key: 'val', - value: function val(value) { - if (typeof value === 'undefined') { - return this.toString(); - } else { - this.fromString(value); - return this; - } - } - }, - { - key: 'angle', - value: function angle(value) { - if (typeof value === 'undefined') { - return this.value.angle; - } else { - this.value.angle = GradientString.parseAngle(value); - return this; - } - } - }, - { - key: 'append', - value: function append(color, position) { - return this.insert(color, position, this.length); - } - }, - { - key: 'reorder', - value: function reorder() { - if (this.length < 2) { - return; - } - - this.value.stops = this.value.stops.sort(function(a, b) { - return a.position - b.position; - }); - } - }, - { - key: 'insert', - value: function insert(color, position, index) { - if (typeof index === 'undefined') { - index = this.current; - } - - var stop = new ColorStop(color, position, this); - - this.value.stops.splice(index, 0, stop); - - this.length = this.length + 1; - this.current = index; - return stop; - } - }, - { - key: 'getById', - value: function getById(id) { - if (this.length > 0) { - for (var i in this.value.stops) { - if (id === this.value.stops[i].id) { - return this.value.stops[i]; - } - } - } - return false; - } - }, - { - key: 'removeById', - value: function removeById(id) { - var index = this.getIndexById(id); - if (index) { - this.remove(index); - } - } - }, - { - key: 'getIndexById', - value: function getIndexById(id) { - var index = 0; - for (var i in this.value.stops) { - if (id === this.value.stops[i].id) { - return index; - } - index++; - } - return false; - } - }, - { - key: 'getCurrent', - value: function getCurrent() { - return this.value.stops[this.current]; - } - }, - { - key: 'setCurrentById', - value: function setCurrentById(id) { - var index = 0; - for (var i in this.value.stops) { - if (this.value.stops[i].id !== id) { - index++; - } else { - this.current = index; - } - } - } - }, - { - key: 'get', - value: function get(index) { - if (typeof index === 'undefined') { - index = this.current; - } - if (index >= 0 && index < this.length) { - this.current = index; - return this.value.stops[index]; - } else { - return false; - } - } - }, - { - key: 'remove', - value: function remove(index) { - if (typeof index === 'undefined') { - index = this.current; - } - if (index >= 0 && index < this.length) { - this.value.stops.splice(index, 1); - this.length = this.length - 1; - this.current = index - 1; - } - } - }, - { - key: 'empty', - value: function empty() { - this.value.stops = []; - this.length = 0; - this.current = 0; - } - }, - { - key: 'reset', - value: function reset() { - this.value._angle = 0; - this.empty(); - this._prefix = null; - this._type = 'LINEAR'; - } - }, - { - key: 'type', - value: function type(_type) { - if ( - typeof _type === 'string' && - (_type = _type.toUpperCase()) && - typeof GradientTypes[_type] !== 'undefined' - ) { - this._type = _type; - return this; - } else { - return this._type; - } - } - }, - { - key: 'fromString', - value: function fromString(string) { - var _this2 = this; - - this.reset(); - - var result = GradientString.parseString(string); - - if (result) { - this._prefix = result.prefix; - this.type(result.type); - if (result.value) { - this.value.angle = GradientString.parseAngle( - result.value.angle, - this._prefix !== null - ); - - _jquery2.default.each(result.value.stops, function(i, stop) { - _this2.append(stop.color, stop.position); - }); - } - } - } - }, - { - key: 'toString', - value: function toString(prefix) { - if (prefix === true) { - prefix = getPrefix(); - } - return GradientTypes[this.type()].to(this.value, this, prefix); - } - }, - { - key: 'matchString', - value: function matchString(string) { - return GradientString.matchString(string); - } - }, - { - key: 'toStringWithAngle', - value: function toStringWithAngle(angle, prefix) { - var value = _jquery2.default.extend(true, {}, this.value); - value.angle = GradientString.parseAngle(angle); - - if (prefix === true) { - prefix = getPrefix(); - } - - return GradientTypes[this.type()].to(value, this, prefix); - } - }, - { - key: 'getPrefixedStrings', - value: function getPrefixedStrings() { - var strings = []; - for (var i in this.options.prefixes) { - if (Object.hasOwnProperty.call(this.options.prefixes, i)) { - strings.push(this.toString(this.options.prefixes[i])); - } - } - return strings; - } - } - ], - [ - { - key: 'setDefaults', - value: function setDefaults(options) { - _jquery2.default.extend( - true, - DEFAULTS, - _jquery2.default.isPlainObject(options) && options - ); - } - } - ] - ); - - return AsGradient; - })(); - - var info = { - version: '0.3.3' - }; - - var OtherAsGradient = _jquery2.default.asGradient; - - var jQueryAsGradient = function jQueryAsGradient() { - for ( - var _len = arguments.length, args = Array(_len), _key = 0; - _key < _len; - _key++ - ) { - args[_key] = arguments[_key]; - } - - return new (Function.prototype.bind.apply( - AsGradient, - [null].concat(args) - ))(); - }; - - _jquery2.default.asGradient = jQueryAsGradient; - _jquery2.default.asGradient.Constructor = AsGradient; - - _jquery2.default.extend( - _jquery2.default.asGradient, - { - setDefaults: AsGradient.setDefaults, - noConflict: function noConflict() { - _jquery2.default.asGradient = OtherAsGradient; - return jQueryAsGradient; - } - }, - GradientString, - info - ); - - var main = _jquery2.default.asGradient; - - exports.default = main; -}); diff --git a/assets/vendor/bootstrap-select/css/bootstrap-select.css b/assets/vendor/bootstrap-select/css/bootstrap-select.css deleted file mode 100644 index 4d17967..0000000 --- a/assets/vendor/bootstrap-select/css/bootstrap-select.css +++ /dev/null @@ -1,392 +0,0 @@ -/*! - * Bootstrap-select v1.13.2 (https://developer.snapappointments.com/bootstrap-select) - * - * Copyright 2012-2018 SnapAppointments, LLC - * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) - */ - -select.bs-select-hidden, -.bootstrap-select > select.bs-select-hidden, -select.selectpicker { - display: none !important; -} -.bootstrap-select { - width: 220px \0; - /*IE9 and below*/ -} -.bootstrap-select > .dropdown-toggle { - position: relative; - width: 100%; - z-index: 1; - text-align: right; - white-space: nowrap; -} -.bootstrap-select > .dropdown-toggle.bs-placeholder, -.bootstrap-select > .dropdown-toggle.bs-placeholder:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder:active { - color: #999; -} -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:hover, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:focus, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-primary:active, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-secondary:active, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-success:active, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-danger:active, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-info:active, -.bootstrap-select > .dropdown-toggle.bs-placeholder.btn-dark:active { - color: rgba(255, 255, 255, 0.5); -} -.bootstrap-select > select { - position: absolute !important; - bottom: 0; - left: 50%; - display: block !important; - width: 0.5px !important; - height: 100% !important; - padding: 0 !important; - opacity: 0 !important; - border: none; -} -.bootstrap-select > select.mobile-device { - top: 0; - left: 0; - display: block !important; - width: 100% !important; - z-index: 2; -} -.has-error .bootstrap-select .dropdown-toggle, -.error .bootstrap-select .dropdown-toggle, -.bootstrap-select.is-invalid .dropdown-toggle, -.was-validated .bootstrap-select .selectpicker:invalid + .dropdown-toggle { - border-color: #b94a48; -} -.bootstrap-select.is-valid .dropdown-toggle, -.was-validated .bootstrap-select .selectpicker:valid + .dropdown-toggle { - border-color: #28a745; -} -.bootstrap-select.fit-width { - width: auto !important; -} -.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) { - width: 220px; -} -.bootstrap-select .dropdown-toggle:focus { - outline: thin dotted #333333 !important; - outline: 5px auto -webkit-focus-ring-color !important; - outline-offset: -2px; -} -.bootstrap-select.form-control { - margin-bottom: 0; - padding: 0; - border: none; -} -:not(.input-group) > .bootstrap-select.form-control:not([class*="col-"]) { - width: 100%; -} -.bootstrap-select.form-control.input-group-btn { - z-index: auto; -} -.bootstrap-select.form-control.input-group-btn:not(:first-child):not(:last-child) > .btn { - border-radius: 0; -} -.bootstrap-select:not(.input-group-btn), -.bootstrap-select[class*="col-"] { - float: none; - display: inline-block; - margin-left: 0; -} -.bootstrap-select.dropdown-menu-right, -.bootstrap-select[class*="col-"].dropdown-menu-right, -.row .bootstrap-select[class*="col-"].dropdown-menu-right { - float: right; -} -.form-inline .bootstrap-select, -.form-horizontal .bootstrap-select, -.form-group .bootstrap-select { - margin-bottom: 0; -} -.form-group-lg .bootstrap-select.form-control, -.form-group-sm .bootstrap-select.form-control { - padding: 0; -} -.form-group-lg .bootstrap-select.form-control .dropdown-toggle, -.form-group-sm .bootstrap-select.form-control .dropdown-toggle { - height: 100%; - font-size: inherit; - line-height: inherit; - border-radius: inherit; -} -.bootstrap-select.form-control-sm .dropdown-toggle, -.bootstrap-select.form-control-lg .dropdown-toggle { - font-size: inherit; - line-height: inherit; - border-radius: inherit; -} -.bootstrap-select.form-control-sm .dropdown-toggle { - padding: 0.25rem 0.5rem; -} -.bootstrap-select.form-control-lg .dropdown-toggle { - padding: 0.5rem 1rem; -} -.form-inline .bootstrap-select .form-control { - width: 100%; -} -.bootstrap-select.disabled, -.bootstrap-select > .disabled { - cursor: not-allowed; -} -.bootstrap-select.disabled:focus, -.bootstrap-select > .disabled:focus { - outline: none !important; -} -.bootstrap-select.bs-container { - position: absolute; - top: 0; - left: 0; - height: 0 !important; - padding: 0 !important; -} -.bootstrap-select.bs-container .dropdown-menu { - z-index: 1060; -} -.bootstrap-select .dropdown-toggle:before { - content: ''; - display: inline-block; -} -.bootstrap-select .dropdown-toggle .filter-option { - position: absolute; - top: 0; - left: 0; - padding-top: inherit; - padding-right: inherit; - padding-bottom: inherit; - padding-left: inherit; - height: 100%; - width: 100%; - text-align: left; -} -.bootstrap-select .dropdown-toggle .filter-option-inner { - padding-right: inherit; -} -.bootstrap-select .dropdown-toggle .filter-option-inner-inner { - overflow: hidden; -} -.bootstrap-select .dropdown-toggle .caret { - position: absolute; - top: 50%; - right: 12px; - margin-top: -2px; - vertical-align: middle; -} -.input-group .bootstrap-select.form-control .dropdown-toggle { - border-radius: inherit; -} -.bootstrap-select[class*="col-"] .dropdown-toggle { - width: 100%; -} -.bootstrap-select .dropdown-menu { - min-width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.bootstrap-select .dropdown-menu > .inner:focus { - outline: none !important; -} -.bootstrap-select .dropdown-menu.inner { - position: static; - float: none; - border: 0; - padding: 0; - margin: 0; - border-radius: 0; - -webkit-box-shadow: none; - box-shadow: none; -} -.bootstrap-select .dropdown-menu li { - position: relative; -} -.bootstrap-select .dropdown-menu li.active small { - color: rgba(255, 255, 255, 0.5) !important; -} -.bootstrap-select .dropdown-menu li.disabled a { - cursor: not-allowed; -} -.bootstrap-select .dropdown-menu li a { - cursor: pointer; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.bootstrap-select .dropdown-menu li a.opt { - position: relative; - padding-left: 2.25em; -} -.bootstrap-select .dropdown-menu li a span.check-mark { - display: none; -} -.bootstrap-select .dropdown-menu li a span.text { - display: inline-block; -} -.bootstrap-select .dropdown-menu li small { - padding-left: 0.5em; -} -.bootstrap-select .dropdown-menu .notify { - position: absolute; - bottom: 5px; - width: 96%; - margin: 0 2%; - min-height: 26px; - padding: 3px 5px; - background: #f5f5f5; - border: 1px solid #e3e3e3; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - pointer-events: none; - opacity: 0.9; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.bootstrap-select .no-results { - padding: 3px; - background: #f5f5f5; - margin: 0 5px; - white-space: nowrap; -} -.bootstrap-select.fit-width .dropdown-toggle .filter-option { - position: static; - display: inline; - padding: 0; -} -.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner, -.bootstrap-select.fit-width .dropdown-toggle .filter-option-inner-inner { - display: inline; -} -.bootstrap-select.fit-width .dropdown-toggle .caret { - position: static; - top: auto; - margin-top: -1px; -} -.bootstrap-select.show-tick .dropdown-menu .selected span.check-mark { - position: absolute; - display: inline-block; - right: 15px; - top: 5px; -} -.bootstrap-select.show-tick .dropdown-menu li a span.text { - margin-right: 34px; -} -.bootstrap-select .bs-ok-default:after { - content: ''; - display: block; - width: 0.5em; - height: 1em; - border-style: solid; - border-width: 0 0.26em 0.26em 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); -} -.bootstrap-select.show-menu-arrow.open > .dropdown-toggle, -.bootstrap-select.show-menu-arrow.show > .dropdown-toggle { - z-index: 1061; -} -.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:before { - content: ''; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid rgba(204, 204, 204, 0.2); - position: absolute; - bottom: -4px; - left: 9px; - display: none; -} -.bootstrap-select.show-menu-arrow .dropdown-toggle .filter-option:after { - content: ''; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid white; - position: absolute; - bottom: -4px; - left: 10px; - display: none; -} -.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:before { - bottom: auto; - top: -4px; - border-top: 7px solid rgba(204, 204, 204, 0.2); - border-bottom: 0; -} -.bootstrap-select.show-menu-arrow.dropup .dropdown-toggle .filter-option:after { - bottom: auto; - top: -4px; - border-top: 6px solid white; - border-bottom: 0; -} -.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:before { - right: 12px; - left: auto; -} -.bootstrap-select.show-menu-arrow.pull-right .dropdown-toggle .filter-option:after { - right: 13px; - left: auto; -} -.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:before, -.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:before, -.bootstrap-select.show-menu-arrow.open > .dropdown-toggle .filter-option:after, -.bootstrap-select.show-menu-arrow.show > .dropdown-toggle .filter-option:after { - display: block; -} -.bs-searchbox, -.bs-actionsbox, -.bs-donebutton { - padding: 4px 8px; -} -.bs-actionsbox { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.bs-actionsbox .btn-group button { - width: 50%; -} -.bs-donebutton { - float: left; - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.bs-donebutton .btn-group button { - width: 100%; -} -.bs-searchbox + .bs-actionsbox { - padding: 0 8px 4px; -} -.bs-searchbox .form-control { - margin-bottom: 0; - width: 100%; - float: none; -} -/*# sourceMappingURL=bootstrap-select.css.map */ \ No newline at end of file diff --git a/assets/vendor/bootstrap-select/js/bootstrap-select.js b/assets/vendor/bootstrap-select/js/bootstrap-select.js deleted file mode 100644 index ec21395..0000000 --- a/assets/vendor/bootstrap-select/js/bootstrap-select.js +++ /dev/null @@ -1,2737 +0,0 @@ -/*! - * Bootstrap-select v1.13.2 (https://developer.snapappointments.com/bootstrap-select) - * - * Copyright 2012-2018 SnapAppointments, LLC - * Licensed under MIT (https://github.com/snapappointments/bootstrap-select/blob/master/LICENSE) - */ - -(function (root, factory) { - if (root === undefined && window !== undefined) root = window; - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module unless amdModuleId is set - define(["jquery"], function (a0) { - return (factory(a0)); - }); - } else if (typeof module === 'object' && module.exports) { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(require("jquery")); - } else { - factory(root["jQuery"]); - } -}(this, function (jQuery) { - -(function ($) { - 'use strict'; - - var testElement = document.createElement('_'); - - testElement.classList.toggle('c3', false); - - // Polyfill for IE 10 and Firefox <24, where classList.toggle does not - // support the second argument. - if (testElement.classList.contains('c3')) { - var _toggle = DOMTokenList.prototype.toggle; - - DOMTokenList.prototype.toggle = function(token, force) { - if (1 in arguments && !this.contains(token) === !force) { - return force; - } else { - return _toggle.call(this, token); - } - }; - } - - // shallow array comparison - function isEqual (array1, array2) { - return array1.length === array2.length && array1.every(function(element, index) { - return element === array2[index]; - }); - }; - - // - if (!String.prototype.startsWith) { - (function () { - 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` - var defineProperty = (function () { - // IE 8 only supports `Object.defineProperty` on DOM elements - try { - var object = {}; - var $defineProperty = Object.defineProperty; - var result = $defineProperty(object, object, object) && $defineProperty; - } catch (error) { - } - return result; - }()); - var toString = {}.toString; - var startsWith = function (search) { - if (this == null) { - throw new TypeError(); - } - var string = String(this); - if (search && toString.call(search) == '[object RegExp]') { - throw new TypeError(); - } - var stringLength = string.length; - var searchString = String(search); - var searchLength = searchString.length; - var position = arguments.length > 1 ? arguments[1] : undefined; - // `ToInteger` - var pos = position ? Number(position) : 0; - if (pos != pos) { // better `isNaN` - pos = 0; - } - var start = Math.min(Math.max(pos, 0), stringLength); - // Avoid the `indexOf` call if no match is possible - if (searchLength + start > stringLength) { - return false; - } - var index = -1; - while (++index < searchLength) { - if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) { - return false; - } - } - return true; - }; - if (defineProperty) { - defineProperty(String.prototype, 'startsWith', { - 'value': startsWith, - 'configurable': true, - 'writable': true - }); - } else { - String.prototype.startsWith = startsWith; - } - }()); - } - - if (!Object.keys) { - Object.keys = function ( - o, // object - k, // key - r // result array - ){ - // initialize object and result - r=[]; - // iterate over object keys - for (k in o) - // fill result array with non-prototypical keys - r.hasOwnProperty.call(o, k) && r.push(k); - // return result - return r; - }; - } - - // much faster than $.val() - function getSelectValues(select) { - var result = []; - var options = select && select.options; - var opt; - - if (select.multiple) { - for (var i = 0, len = options.length; i < len; i++) { - opt = options[i]; - - if (opt.selected) { - result.push(opt.value || opt.text); - } - } - } else { - result = select.value; - } - - return result; - } - - // set data-selected on select element if the value has been programmatically selected - // prior to initialization of bootstrap-select - // * consider removing or replacing an alternative method * - var valHooks = { - useDefault: false, - _set: $.valHooks.select.set - }; - - $.valHooks.select.set = function (elem, value) { - if (value && !valHooks.useDefault) $(elem).data('selected', true); - - return valHooks._set.apply(this, arguments); - }; - - var changed_arguments = null; - - var EventIsSupported = (function () { - try { - new Event('change'); - return true; - } catch (e) { - return false; - } - })(); - - $.fn.triggerNative = function (eventName) { - var el = this[0], - event; - - if (el.dispatchEvent) { // for modern browsers & IE9+ - if (EventIsSupported) { - // For modern browsers - event = new Event(eventName, { - bubbles: true - }); - } else { - // For IE since it doesn't support Event constructor - event = document.createEvent('Event'); - event.initEvent(eventName, true, false); - } - - el.dispatchEvent(event); - } else if (el.fireEvent) { // for IE8 - event = document.createEventObject(); - event.eventType = eventName; - el.fireEvent('on' + eventName, event); - } else { - // fall back to jQuery.trigger - this.trigger(eventName); - } - }; - // - - function stringSearch(li, searchString, method, normalize) { - var stringTypes = [ - 'content', - 'subtext', - 'tokens' - ], - searchSuccess = false; - - for (var i = 0; i < stringTypes.length; i++) { - var stringType = stringTypes[i], - string = li[stringType]; - - if (string) { - string = string.toString(); - - // Strip HTML tags. This isn't perfect, but it's much faster than any other method - if (stringType === 'content') { - string = string.replace(/<[^>]+>/g, ''); - } - - if (normalize) string = normalizeToBase(string); - string = string.toUpperCase(); - - if (method === 'contains') { - searchSuccess = string.indexOf(searchString) >= 0; - } else { - searchSuccess = string.startsWith(searchString); - } - - if (searchSuccess) break; - } - } - - return searchSuccess; - } - - function toInteger(value) { - return parseInt(value, 10) || 0; - } - - /** - * Remove all diatrics from the given text. - * @access private - * @param {String} text - * @returns {String} - */ - function normalizeToBase(text) { - var rExps = [ - {re: /[\xC0-\xC6]/g, ch: "A"}, - {re: /[\xE0-\xE6]/g, ch: "a"}, - {re: /[\xC8-\xCB]/g, ch: "E"}, - {re: /[\xE8-\xEB]/g, ch: "e"}, - {re: /[\xCC-\xCF]/g, ch: "I"}, - {re: /[\xEC-\xEF]/g, ch: "i"}, - {re: /[\xD2-\xD6]/g, ch: "O"}, - {re: /[\xF2-\xF6]/g, ch: "o"}, - {re: /[\xD9-\xDC]/g, ch: "U"}, - {re: /[\xF9-\xFC]/g, ch: "u"}, - {re: /[\xC7-\xE7]/g, ch: "c"}, - {re: /[\xD1]/g, ch: "N"}, - {re: /[\xF1]/g, ch: "n"} - ]; - $.each(rExps, function () { - text = text ? text.replace(this.re, this.ch) : ''; - }); - return text; - } - - - // List of HTML entities for escaping. - var escapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - "'": ''', - '`': '`' - }; - - var unescapeMap = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - ''': "'", - '`': '`' - }; - - // Functions for escaping and unescaping strings to/from HTML interpolation. - var createEscaper = function (map) { - var escaper = function (match) { - return map[match]; - }; - // Regexes for identifying a key that needs to be escaped. - var source = '(?:' + Object.keys(map).join('|') + ')'; - var testRegexp = RegExp(source); - var replaceRegexp = RegExp(source, 'g'); - return function (string) { - string = string == null ? '' : '' + string; - return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; - }; - }; - - var htmlEscape = createEscaper(escapeMap); - var htmlUnescape = createEscaper(unescapeMap); - - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - - var keyCodeMap = { - 32: ' ', - 48: '0', - 49: '1', - 50: '2', - 51: '3', - 52: '4', - 53: '5', - 54: '6', - 55: '7', - 56: '8', - 57: '9', - 59: ';', - 65: 'A', - 66: 'B', - 67: 'C', - 68: 'D', - 69: 'E', - 70: 'F', - 71: 'G', - 72: 'H', - 73: 'I', - 74: 'J', - 75: 'K', - 76: 'L', - 77: 'M', - 78: 'N', - 79: 'O', - 80: 'P', - 81: 'Q', - 82: 'R', - 83: 'S', - 84: 'T', - 85: 'U', - 86: 'V', - 87: 'W', - 88: 'X', - 89: 'Y', - 90: 'Z', - 96: '0', - 97: '1', - 98: '2', - 99: '3', - 100: '4', - 101: '5', - 102: '6', - 103: '7', - 104: '8', - 105: '9' - }; - - var keyCodes = { - ESCAPE: 27, // KeyboardEvent.which value for Escape (Esc) key - ENTER: 13, // KeyboardEvent.which value for Enter key - SPACE: 32, // KeyboardEvent.which value for space key - TAB: 9, // KeyboardEvent.which value for tab key - ARROW_UP: 38, // KeyboardEvent.which value for up arrow key - ARROW_DOWN: 40 // KeyboardEvent.which value for down arrow key - } - - var version = { - success: false, - major: '3' - }; - - try { - version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.'); - version.major = version.full[0]; - version.success = true; - } - catch(err) { - console.warn( - 'There was an issue retrieving Bootstrap\'s version. ' + - 'Ensure Bootstrap is being loaded before bootstrap-select and there is no namespace collision. ' + - 'If loading Bootstrap asynchronously, the version may need to be manually specified via $.fn.selectpicker.Constructor.BootstrapVersion.' - , err); - } - - var classNames = { - DISABLED: 'disabled', - DIVIDER: 'divider', - SHOW: 'open', - DROPUP: 'dropup', - MENU: 'dropdown-menu', - MENURIGHT: 'dropdown-menu-right', - MENULEFT: 'dropdown-menu-left', - // to-do: replace with more advanced template/customization options - BUTTONCLASS: 'btn-default', - POPOVERHEADER: 'popover-title' - } - - var Selector = { - MENU: '.' + classNames.MENU - } - - if (version.major === '4') { - classNames.DIVIDER = 'dropdown-divider'; - classNames.SHOW = 'show'; - classNames.BUTTONCLASS = 'btn-light'; - classNames.POPOVERHEADER = 'popover-header'; - } - - var REGEXP_ARROW = new RegExp(keyCodes.ARROW_UP + '|' + keyCodes.ARROW_DOWN); - var REGEXP_TAB_OR_ESCAPE = new RegExp('^' + keyCodes.TAB + '$|' + keyCodes.ESCAPE); - var REGEXP_ENTER_OR_SPACE = new RegExp(keyCodes.ENTER + '|' + keyCodes.SPACE); - - var Selectpicker = function (element, options) { - var that = this; - - // bootstrap-select has been initialized - revert valHooks.select.set back to its original function - if (!valHooks.useDefault) { - $.valHooks.select.set = valHooks._set; - valHooks.useDefault = true; - } - - this.$element = $(element); - this.$newElement = null; - this.$button = null; - this.$menu = null; - this.options = options; - this.selectpicker = { - main: { - // store originalIndex (key) and newIndex (value) in this.selectpicker.main.map.newIndex for fast accessibility - // allows us to do this.main.elements[this.selectpicker.main.map.newIndex[index]] to select an element based on the originalIndex - map: { - newIndex: {}, - originalIndex: {} - } - }, - current: { - map: {} - }, // current changes if a search is in progress - search: { - map: {} - }, - view: {}, - keydown: { - keyHistory: '', - resetKeyHistory: { - start: function () { - return setTimeout(function () { - that.selectpicker.keydown.keyHistory = ''; - }, 800); - } - } - } - }; - // If we have no title yet, try to pull it from the html title attribute (jQuery doesnt' pick it up as it's not a - // data-attribute) - if (this.options.title === null) { - this.options.title = this.$element.attr('title'); - } - - // Format window padding - var winPad = this.options.windowPadding; - if (typeof winPad === 'number') { - this.options.windowPadding = [winPad, winPad, winPad, winPad]; - } - - //Expose public methods - this.val = Selectpicker.prototype.val; - this.render = Selectpicker.prototype.render; - this.refresh = Selectpicker.prototype.refresh; - this.setStyle = Selectpicker.prototype.setStyle; - this.selectAll = Selectpicker.prototype.selectAll; - this.deselectAll = Selectpicker.prototype.deselectAll; - this.destroy = Selectpicker.prototype.destroy; - this.remove = Selectpicker.prototype.remove; - this.show = Selectpicker.prototype.show; - this.hide = Selectpicker.prototype.hide; - - this.init(); - }; - - Selectpicker.VERSION = '1.13.2'; - - Selectpicker.BootstrapVersion = version.major; - - // part of this is duplicated in i18n/defaults-en_US.js. Make sure to update both. - Selectpicker.DEFAULTS = { - noneSelectedText: 'Nothing selected', - noneResultsText: 'No results matched {0}', - countSelectedText: function (numSelected, numTotal) { - return (numSelected == 1) ? "{0} item selected" : "{0} items selected"; - }, - maxOptionsText: function (numAll, numGroup) { - return [ - (numAll == 1) ? 'Limit reached ({n} item max)' : 'Limit reached ({n} items max)', - (numGroup == 1) ? 'Group limit reached ({n} item max)' : 'Group limit reached ({n} items max)' - ]; - }, - selectAllText: 'Select All', - deselectAllText: 'Deselect All', - doneButton: false, - doneButtonText: 'Close', - multipleSeparator: ', ', - styleBase: 'btn', - style: classNames.BUTTONCLASS, - size: 'auto', - title: null, - selectedTextFormat: 'values', - width: false, - container: false, - hideDisabled: false, - showSubtext: false, - showIcon: true, - showContent: true, - dropupAuto: true, - header: false, - liveSearch: false, - liveSearchPlaceholder: null, - liveSearchNormalize: false, - liveSearchStyle: 'contains', - actionsBox: false, - iconBase: 'glyphicon', - tickIcon: 'glyphicon-ok', - showTick: false, - template: { - caret: '' - }, - maxOptions: false, - mobile: false, - selectOnTab: false, - dropdownAlignRight: false, - windowPadding: 0, - virtualScroll: 600, - display: false - }; - - if (version.major === '4') { - Selectpicker.DEFAULTS.style = 'btn-light'; - Selectpicker.DEFAULTS.iconBase = ''; - Selectpicker.DEFAULTS.tickIcon = 'bs-ok-default'; - } - - Selectpicker.prototype = { - - constructor: Selectpicker, - - init: function () { - var that = this, - id = this.$element.attr('id'); - - this.$element.addClass('bs-select-hidden'); - - this.multiple = this.$element.prop('multiple'); - this.autofocus = this.$element.prop('autofocus'); - this.$newElement = this.createDropdown(); - this.createLi(); - this.$element - .after(this.$newElement) - .prependTo(this.$newElement); - this.$button = this.$newElement.children('button'); - this.$menu = this.$newElement.children(Selector.MENU); - this.$menuInner = this.$menu.children('.inner'); - this.$searchbox = this.$menu.find('input'); - - this.$element.removeClass('bs-select-hidden'); - - if (this.options.dropdownAlignRight === true) this.$menu.addClass(classNames.MENURIGHT); - - if (typeof id !== 'undefined') { - this.$button.attr('data-id', id); - } - - this.checkDisabled(); - this.clickListener(); - if (this.options.liveSearch) this.liveSearchListener(); - this.render(); - this.setStyle(); - this.setWidth(); - if (this.options.container) { - this.selectPosition(); - } else { - this.$element.on('hide.bs.select', function () { - if (that.isVirtual()) { - // empty menu on close - var menuInner = that.$menuInner[0], - emptyMenu = menuInner.firstChild.cloneNode(false); - - // replace the existing UL with an empty one - this is faster than $.empty() or innerHTML = '' - menuInner.replaceChild(emptyMenu, menuInner.firstChild); - menuInner.scrollTop = 0; - } - }); - } - this.$menu.data('this', this); - this.$newElement.data('this', this); - if (this.options.mobile) this.mobile(); - - this.$newElement.on({ - 'hide.bs.dropdown': function (e) { - that.$menuInner.attr('aria-expanded', false); - that.$element.trigger('hide.bs.select', e); - }, - 'hidden.bs.dropdown': function (e) { - that.$element.trigger('hidden.bs.select', e); - }, - 'show.bs.dropdown': function (e) { - that.$menuInner.attr('aria-expanded', true); - that.$element.trigger('show.bs.select', e); - }, - 'shown.bs.dropdown': function (e) { - that.$element.trigger('shown.bs.select', e); - } - }); - - if (that.$element[0].hasAttribute('required')) { - this.$element.on('invalid', function () { - that.$button.addClass('bs-invalid'); - - that.$element.on({ - 'shown.bs.select': function () { - that.$element - .val(that.$element.val()) // set the value to hide the validation message in Chrome when menu is opened - .off('shown.bs.select'); - }, - 'rendered.bs.select': function () { - // if select is no longer invalid, remove the bs-invalid class - if (this.validity.valid) that.$button.removeClass('bs-invalid'); - that.$element.off('rendered.bs.select'); - } - }); - - that.$button.on('blur.bs.select', function () { - that.$element.focus().blur(); - that.$button.off('blur.bs.select'); - }); - }); - } - - setTimeout(function () { - that.$element.trigger('loaded.bs.select'); - }); - }, - - createDropdown: function () { - // Options - // If we are multiple or showTick option is set, then add the show-tick class - var showTick = (this.multiple || this.options.showTick) ? ' show-tick' : '', - autofocus = this.autofocus ? ' autofocus' : ''; - // Elements - var header = this.options.header ? '
          ' + this.options.header + '
          ' : ''; - var searchbox = this.options.liveSearch ? - '' - : ''; - var actionsbox = this.multiple && this.options.actionsBox ? - '
          ' + - '
          ' + - '' + - '' + - '
          ' + - '
          ' - : ''; - var donebutton = this.multiple && this.options.doneButton ? - '
          ' + - '
          ' + - '' + - '
          ' + - '
          ' - : ''; - var drop = - ''; - - return $(drop); - }, - - setPositionData: function () { - this.selectpicker.view.canHighlight = []; - - for (var i = 0; i < this.selectpicker.current.data.length; i++) { - var li = this.selectpicker.current.data[i], - canHighlight = true; - - if (li.type === 'divider') { - canHighlight = false; - li.height = this.sizeInfo.dividerHeight; - } else if (li.type === 'optgroup-label') { - canHighlight = false; - li.height = this.sizeInfo.dropdownHeaderHeight; - } else { - li.height = this.sizeInfo.liHeight; - } - - if (li.disabled) canHighlight = false; - - this.selectpicker.view.canHighlight.push(canHighlight); - - li.position = (i === 0 ? 0 : this.selectpicker.current.data[i - 1].position) + li.height; - } - }, - - isVirtual: function () { - return (this.options.virtualScroll !== false) && this.selectpicker.main.elements.length >= this.options.virtualScroll || this.options.virtualScroll === true; - }, - - createView: function (isSearching, scrollTop) { - scrollTop = scrollTop || 0; - - var that = this; - - this.selectpicker.current = isSearching ? this.selectpicker.search : this.selectpicker.main; - - var $lis; - var active = []; - var selected; - var prevActive; - var activeIndex; - var prevActiveIndex; - - this.setPositionData(); - - scroll(scrollTop, true); - - this.$menuInner.off('scroll.createView').on('scroll.createView', function (e, updateValue) { - if (!that.noScroll) scroll(this.scrollTop, updateValue); - that.noScroll = false; - }); - - function scroll(scrollTop, init) { - var size = that.selectpicker.current.elements.length, - chunks = [], - chunkSize, - chunkCount, - firstChunk, - lastChunk, - currentChunk = undefined, - prevPositions, - positionIsDifferent, - previousElements, - menuIsDifferent = true, - isVirtual = that.isVirtual(); - - that.selectpicker.view.scrollTop = scrollTop; - - if (isVirtual === true) { - // if an option that is encountered that is wider than the current menu width, update the menu width accordingly - if (that.sizeInfo.hasScrollBar && that.$menu[0].offsetWidth > that.sizeInfo.totalMenuWidth) { - that.sizeInfo.menuWidth = that.$menu[0].offsetWidth; - that.sizeInfo.totalMenuWidth = that.sizeInfo.menuWidth + that.sizeInfo.scrollBarWidth; - that.$menu.css('min-width', that.sizeInfo.menuWidth); - } - } - - chunkSize = Math.ceil(that.sizeInfo.menuInnerHeight / that.sizeInfo.liHeight * 1.5); // number of options in a chunk - chunkCount = Math.round(size / chunkSize) || 1; // number of chunks - - for (var i = 0; i < chunkCount; i++) { - var end_of_chunk = (i + 1) * chunkSize; - - if (i === chunkCount - 1) { - end_of_chunk = size; - } - - chunks[i] = [ - (i) * chunkSize + (!i ? 0 : 1), - end_of_chunk - ]; - - if (!size) break; - - if (currentChunk === undefined && scrollTop <= that.selectpicker.current.data[end_of_chunk - 1].position - that.sizeInfo.menuInnerHeight) { - currentChunk = i; - } - } - - if (currentChunk === undefined) currentChunk = 0; - - prevPositions = [that.selectpicker.view.position0, that.selectpicker.view.position1]; - - // always display previous, current, and next chunks - firstChunk = Math.max(0, currentChunk - 1); - lastChunk = Math.min(chunkCount - 1, currentChunk + 1); - - that.selectpicker.view.position0 = Math.max(0, chunks[firstChunk][0]) || 0; - that.selectpicker.view.position1 = Math.min(size, chunks[lastChunk][1]) || 0; - - positionIsDifferent = prevPositions[0] !== that.selectpicker.view.position0 || prevPositions[1] !== that.selectpicker.view.position1; - - if (that.activeIndex !== undefined) { - prevActive = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.prevActiveIndex]]; - active = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.activeIndex]]; - selected = that.selectpicker.current.elements[that.selectpicker.current.map.newIndex[that.selectedIndex]]; - - if (init) { - if (that.activeIndex !== that.selectedIndex) { - active.classList.remove('active'); - if (active.firstChild) active.firstChild.classList.remove('active'); - } - that.activeIndex = undefined; - } - - if (that.activeIndex && that.activeIndex !== that.selectedIndex && selected && selected.length) { - selected.classList.remove('active'); - if (selected.firstChild) selected.firstChild.classList.remove('active'); - } - } - - if (that.prevActiveIndex !== undefined && that.prevActiveIndex !== that.activeIndex && that.prevActiveIndex !== that.selectedIndex && prevActive && prevActive.length) { - prevActive.classList.remove('active'); - if (prevActive.firstChild) prevActive.firstChild.classList.remove('active'); - } - - if (init || positionIsDifferent) { - previousElements = that.selectpicker.view.visibleElements ? that.selectpicker.view.visibleElements.slice() : []; - - that.selectpicker.view.visibleElements = that.selectpicker.current.elements.slice(that.selectpicker.view.position0, that.selectpicker.view.position1); - - that.setOptionStatus(); - - // if searching, check to make sure the list has actually been updated before updating DOM - // this prevents unnecessary repaints - if ( isSearching || (isVirtual === false && init) ) menuIsDifferent = !isEqual(previousElements, that.selectpicker.view.visibleElements); - - // if virtual scroll is disabled and not searching, - // menu should never need to be updated more than once - if ( (init || isVirtual === true) && menuIsDifferent ) { - var menuInner = that.$menuInner[0], - menuFragment = document.createDocumentFragment(), - emptyMenu = menuInner.firstChild.cloneNode(false), - marginTop, - marginBottom, - elements = isVirtual === true ? that.selectpicker.view.visibleElements : that.selectpicker.current.elements; - - // replace the existing UL with an empty one - this is faster than $.empty() - menuInner.replaceChild(emptyMenu, menuInner.firstChild); - - for (var i = 0, visibleElementsLen = elements.length; i < visibleElementsLen; i++) { - menuFragment.appendChild(elements[i]); - } - - if (isVirtual === true) { - marginTop = (that.selectpicker.view.position0 === 0 ? 0 : that.selectpicker.current.data[that.selectpicker.view.position0 - 1].position), - marginBottom = (that.selectpicker.view.position1 > size - 1 ? 0 : that.selectpicker.current.data[size - 1].position - that.selectpicker.current.data[that.selectpicker.view.position1 - 1].position); - - menuInner.firstChild.style.marginTop = marginTop + 'px'; - menuInner.firstChild.style.marginBottom = marginBottom + 'px'; - } - - menuInner.firstChild.appendChild(menuFragment); - } - } - - that.prevActiveIndex = that.activeIndex; - - if (!that.options.liveSearch) { - that.$menuInner.focus(); - } else if (isSearching && init) { - var index = 0, - newActive; - - if (!that.selectpicker.view.canHighlight[index]) { - index = 1 + that.selectpicker.view.canHighlight.slice(1).indexOf(true); - } - - newActive = that.selectpicker.view.visibleElements[index]; - - if (that.selectpicker.view.currentActive) { - that.selectpicker.view.currentActive.classList.remove('active'); - if (that.selectpicker.view.currentActive.firstChild) that.selectpicker.view.currentActive.firstChild.classList.remove('active'); - } - - if (newActive) { - newActive.classList.add('active'); - if (newActive.firstChild) newActive.firstChild.classList.add('active'); - } - - that.activeIndex = that.selectpicker.current.map.originalIndex[index]; - } - } - - $(window).off('resize.createView').on('resize.createView', function () { - scroll(that.$menuInner[0].scrollTop); - }); - }, - - createLi: function () { - var that = this, - mainElements = [], - widestOption, - availableOptionsCount = 0, - widestOptionLength = 0, - mainData = [], - optID = 0, - headerIndex = 0, - liIndex = -1; // increment liIndex whenever a new
        • element is created to ensure newIndex is correct - - if (!this.selectpicker.view.titleOption) this.selectpicker.view.titleOption = document.createElement('option'); - - var elementTemplates = { - span: document.createElement('span'), - subtext: document.createElement('small'), - a: document.createElement('a'), - li: document.createElement('li'), - whitespace: document.createTextNode("\u00A0") - }, - checkMark = elementTemplates.span.cloneNode(false), - fragment = document.createDocumentFragment(); - - checkMark.className = that.options.iconBase + ' ' + that.options.tickIcon + ' check-mark'; - elementTemplates.a.appendChild(checkMark); - elementTemplates.a.setAttribute('role', 'option'); - - elementTemplates.subtext.className = 'text-muted'; - - elementTemplates.text = elementTemplates.span.cloneNode(false); - elementTemplates.text.className = 'text'; - - // Helper functions - /** - * @param content - * @param [index] - * @param [classes] - * @param [optgroup] - * @returns {HTMLElement} - */ - var generateLI = function (content, index, classes, optgroup) { - var li = elementTemplates.li.cloneNode(false); - - if (content) { - if (content.nodeType === 1 || content.nodeType === 11) { - li.appendChild(content); - } else { - li.innerHTML = content; - } - } - - if (typeof classes !== 'undefined' && '' !== classes) li.className = classes; - if (typeof optgroup !== 'undefined' && null !== optgroup) li.classList.add('optgroup-' + optgroup); - - return li; - }; - - /** - * @param text - * @param [classes] - * @param [inline] - * @returns {string} - */ - var generateA = function (text, classes, inline) { - var a = elementTemplates.a.cloneNode(true); - - if (text) { - if (text.nodeType === 11) { - a.appendChild(text); - } else { - a.insertAdjacentHTML('beforeend', text); - } - } - - if (typeof classes !== 'undefined' & '' !== classes) a.className = classes; - if (version.major === '4') a.classList.add('dropdown-item'); - if (inline) a.setAttribute('style', inline); - - return a; - }; - - var generateText = function (options) { - var textElement = elementTemplates.text.cloneNode(false), - optionSubtextElement, - optionIconElement; - - if (options.optionContent) { - textElement.innerHTML = options.optionContent; - } else { - textElement.textContent = options.text; - - if (options.optionIcon) { - var whitespace = elementTemplates.whitespace.cloneNode(false); - - optionIconElement = elementTemplates.span.cloneNode(false); - optionIconElement.className = that.options.iconBase + ' ' + options.optionIcon; - - fragment.appendChild(optionIconElement); - fragment.appendChild(whitespace); - } - - if (options.optionSubtext) { - optionSubtextElement = elementTemplates.subtext.cloneNode(false); - optionSubtextElement.innerHTML = options.optionSubtext; - textElement.appendChild(optionSubtextElement); - } - } - - fragment.appendChild(textElement); - - return fragment; - }; - - var generateLabel = function (options) { - var labelTextElement = elementTemplates.text.cloneNode(false), - labelSubtextElement, - labelIconElement; - - labelTextElement.innerHTML = options.labelEscaped; - - if (options.labelIcon) { - var whitespace = elementTemplates.whitespace.cloneNode(false); - - labelIconElement = elementTemplates.span.cloneNode(false); - labelIconElement.className = that.options.iconBase + ' ' + options.labelIcon; - - fragment.appendChild(labelIconElement); - fragment.appendChild(whitespace); - } - - if (options.labelSubtext) { - labelSubtextElement = elementTemplates.subtext.cloneNode(false); - labelSubtextElement.textContent = options.labelSubtext; - labelTextElement.appendChild(labelSubtextElement); - } - - fragment.appendChild(labelTextElement); - - return fragment; - } - - if (this.options.title && !this.multiple) { - // this option doesn't create a new
        • element, but does add a new option, so liIndex is decreased - // since newIndex is recalculated on every refresh, liIndex needs to be decreased even if the titleOption is already appended - liIndex--; - - var element = this.$element[0], - isSelected = false, - titleNotAppended = !this.selectpicker.view.titleOption.parentNode; - - if (titleNotAppended) { - // Use native JS to prepend option (faster) - this.selectpicker.view.titleOption.className = 'bs-title-option'; - this.selectpicker.view.titleOption.value = ''; - - // Check if selected or data-selected attribute is already set on an option. If not, select the titleOption option. - // the selected item may have been changed by user or programmatically before the bootstrap select plugin runs, - // if so, the select will have the data-selected attribute - var $opt = $(element.options[element.selectedIndex]); - isSelected = $opt.attr('selected') === undefined && this.$element.data('selected') === undefined; - } - - if (titleNotAppended || this.selectpicker.view.titleOption.index !== 0) { - element.insertBefore(this.selectpicker.view.titleOption, element.firstChild); - } - - // Set selected *after* appending to select, - // otherwise the option doesn't get selected in IE - // set using selectedIndex, as setting the selected attr to true here doesn't work in IE11 - if (isSelected) element.selectedIndex = 0; - } - - var $selectOptions = this.$element.find('option'); - - $selectOptions.each(function (index) { - var $this = $(this); - - liIndex++; - - if ($this.hasClass('bs-title-option')) return; - - var thisData = $this.data(); - - // Get the class and text for the option - var optionClass = this.className || '', - inline = htmlEscape(this.style.cssText), - optionContent = thisData.content, - text = this.textContent, - tokens = thisData.tokens, - subtext = thisData.subtext, - icon = thisData.icon, - $parent = $this.parent(), - parent = $parent[0], - isOptgroup = parent.tagName === 'OPTGROUP', - isOptgroupDisabled = isOptgroup && parent.disabled, - isDisabled = this.disabled || isOptgroupDisabled, - prevHiddenIndex, - showDivider = this.previousElementSibling && this.previousElementSibling.tagName === 'OPTGROUP', - textElement; - - var parentData = $parent.data(); - - if (thisData.hidden === true || that.options.hideDisabled && (isDisabled && !isOptgroup || isOptgroupDisabled)) { - // set prevHiddenIndex - the index of the first hidden option in a group of hidden options - // used to determine whether or not a divider should be placed after an optgroup if there are - // hidden options between the optgroup and the first visible option - prevHiddenIndex = thisData.prevHiddenIndex; - $this.next().data('prevHiddenIndex', (prevHiddenIndex !== undefined ? prevHiddenIndex : index)); - - liIndex--; - - // if previous element is not an optgroup - if (!showDivider) { - if (prevHiddenIndex !== undefined) { - // select the element **before** the first hidden element in the group - var prevHidden = $selectOptions[prevHiddenIndex].previousElementSibling; - - if (prevHidden && prevHidden.tagName === 'OPTGROUP' && !prevHidden.disabled) { - showDivider = true; - } - } - } - - if (showDivider && mainData[mainData.length - 1].type !== 'divider') { - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID - }); - } - - return; - } - - if (isOptgroup && thisData.divider !== true) { - if (that.options.hideDisabled && isDisabled) { - if (parentData.allOptionsDisabled === undefined) { - var $options = $parent.children(); - $parent.data('allOptionsDisabled', $options.filter(':disabled').length === $options.length); - } - - if ($parent.data('allOptionsDisabled')) { - liIndex--; - return; - } - } - - var optGroupClass = ' ' + parent.className || ''; - - if (!this.previousElementSibling) { // Is it the first option of the optgroup? - optID += 1; - - // Get the opt group label - var label = parent.label, - labelEscaped = htmlEscape(label), - labelSubtext = parentData.subtext, - labelIcon = parentData.icon; - - if (index !== 0 && mainElements.length > 0) { // Is it NOT the first option of the select && are there elements in the dropdown? - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID - }); - } - liIndex++; - - var labelElement = generateLabel({ - labelEscaped: labelEscaped, - labelSubtext: labelSubtext, - labelIcon: labelIcon - }); - - mainElements.push(generateLI(labelElement, null, 'dropdown-header' + optGroupClass, optID)); - mainData.push({ - content: labelEscaped, - subtext: labelSubtext, - type: 'optgroup-label', - optID: optID - }); - - headerIndex = liIndex - 1; - } - - if (that.options.hideDisabled && isDisabled || thisData.hidden === true) { - liIndex--; - return; - } - - textElement = generateText({ - text: text, - optionContent: optionContent, - optionSubtext: subtext, - optionIcon: icon - }); - - mainElements.push(generateLI(generateA(textElement, 'opt ' + optionClass + optGroupClass, inline), index, '', optID)); - mainData.push({ - content: optionContent || text, - subtext: subtext, - tokens: tokens, - type: 'option', - optID: optID, - headerIndex: headerIndex, - lastIndex: headerIndex + parent.childElementCount, - originalIndex: index, - data: thisData - }); - - availableOptionsCount++; - } else if (thisData.divider === true) { - mainElements.push(generateLI(false, index, classNames.DIVIDER)); - mainData.push({ - type: 'divider', - originalIndex: index, - data: thisData - }); - } else { - // if previous element is not an optgroup and hideDisabled is true - if (!showDivider && that.options.hideDisabled) { - prevHiddenIndex = thisData.prevHiddenIndex; - - if (prevHiddenIndex !== undefined) { - // select the element **before** the first hidden element in the group - var prevHidden = $selectOptions[prevHiddenIndex].previousElementSibling; - - if (prevHidden && prevHidden.tagName === 'OPTGROUP' && !prevHidden.disabled) { - showDivider = true; - } - } - } - - if (showDivider && mainData[mainData.length - 1].type !== 'divider') { - liIndex++; - mainElements.push( - generateLI( - false, - null, - classNames.DIVIDER, - optID + 'div' - ) - ); - mainData.push({ - type: 'divider', - optID: optID - }); - } - - textElement = generateText({ - text: text, - optionContent: optionContent, - optionSubtext: subtext, - optionIcon: icon - }); - - mainElements.push(generateLI(generateA(textElement, optionClass, inline), index)); - mainData.push({ - content: optionContent || text, - subtext: subtext, - tokens: tokens, - type: 'option', - originalIndex: index, - data: thisData - }); - - availableOptionsCount++; - } - - that.selectpicker.main.map.newIndex[index] = liIndex; - that.selectpicker.main.map.originalIndex[liIndex] = index; - - // get the most recent option info added to mainData - var _mainDataLast = mainData[mainData.length - 1]; - - _mainDataLast.disabled = isDisabled; - - var combinedLength = 0; - - // count the number of characters in the option - not perfect, but should work in most cases - if (_mainDataLast.content) combinedLength += _mainDataLast.content.length; - if (_mainDataLast.subtext) combinedLength += _mainDataLast.subtext.length; - // if there is an icon, ensure this option's width is checked - if (icon) combinedLength += 1; - - if (combinedLength > widestOptionLength) { - widestOptionLength = combinedLength; - - // guess which option is the widest - // use this when calculating menu width - // not perfect, but it's fast, and the width will be updating accordingly when scrolling - widestOption = mainElements[mainElements.length - 1]; - } - }); - - this.selectpicker.main.elements = mainElements; - this.selectpicker.main.data = mainData; - - this.selectpicker.current = this.selectpicker.main; - - this.selectpicker.view.widestOption = widestOption; - this.selectpicker.view.availableOptionsCount = availableOptionsCount; // faster way to get # of available options without filter - }, - - findLis: function () { - return this.$menuInner.find('.inner > li'); - }, - - render: function () { - var that = this, - $selectOptions = this.$element.find('option'), - selectedItems = [], - selectedItemsInTitle = []; - - this.togglePlaceholder(); - - this.tabIndex(); - - for (var i = 0, len = this.selectpicker.main.elements.length; i < len; i++) { - var index = this.selectpicker.main.map.originalIndex[i], - option = $selectOptions[index]; - - if (option && option.selected) { - selectedItems.push(option); - - if (selectedItemsInTitle.length < 100 && that.options.selectedTextFormat !== 'count' || selectedItems.length === 1) { - if (that.options.hideDisabled && (option.disabled || option.parentNode.tagName === 'OPTGROUP' && option.parentNode.disabled)) return; - - var thisData = this.selectpicker.main.data[i].data, - icon = thisData.icon && that.options.showIcon ? ' ' : '', - subtext, - titleItem; - - if (that.options.showSubtext && thisData.subtext && !that.multiple) { - subtext = ' ' + thisData.subtext + ''; - } else { - subtext = ''; - } - - if (option.title) { - titleItem = option.title; - } else if (thisData.content && that.options.showContent) { - titleItem = thisData.content.toString(); - } else { - titleItem = icon + option.innerHTML.trim() + subtext; - } - - selectedItemsInTitle.push(titleItem); - } - } - } - - //Fixes issue in IE10 occurring when no default option is selected and at least one option is disabled - //Convert all the values into a comma delimited string - var title = !this.multiple ? selectedItemsInTitle[0] : selectedItemsInTitle.join(this.options.multipleSeparator); - - // add ellipsis - if (selectedItems.length > 50) title += '...'; - - // If this is a multiselect, and selectedTextFormat is count, then show 1 of 2 selected etc.. - if (this.multiple && this.options.selectedTextFormat.indexOf('count') !== -1) { - var max = this.options.selectedTextFormat.split('>'); - - if ((max.length > 1 && selectedItems.length > max[1]) || (max.length === 1 && selectedItems.length >= 2)) { - var totalCount = this.selectpicker.view.availableOptionsCount, - tr8nText = (typeof this.options.countSelectedText === 'function') ? this.options.countSelectedText(selectedItems.length, totalCount) : this.options.countSelectedText; - - title = tr8nText.replace('{0}', selectedItems.length.toString()).replace('{1}', totalCount.toString()); - } - } - - if (this.options.title == undefined) { - // use .attr to ensure undefined is returned if title attribute is not set - this.options.title = this.$element.attr('title'); - } - - if (this.options.selectedTextFormat == 'static') { - title = this.options.title; - } - - //If we dont have a title, then use the default, or if nothing is set at all, use the not selected text - if (!title) { - title = typeof this.options.title !== 'undefined' ? this.options.title : this.options.noneSelectedText; - } - - //strip all HTML tags and trim the result, then unescape any escaped tags - this.$button[0].title = htmlUnescape(title.replace(/<[^>]*>?/g, '').trim()); - this.$button.find('.filter-option-inner-inner')[0].innerHTML = title; - - this.$element.trigger('rendered.bs.select'); - }, - - /** - * @param [style] - * @param [status] - */ - setStyle: function (style, status) { - if (this.$element.attr('class')) { - this.$newElement.addClass(this.$element.attr('class').replace(/selectpicker|mobile-device|bs-select-hidden|validate\[.*\]/gi, '')); - } - - var buttonClass = style ? style : this.options.style; - - if (status == 'add') { - this.$button.addClass(buttonClass); - } else if (status == 'remove') { - this.$button.removeClass(buttonClass); - } else { - this.$button.removeClass(this.options.style); - this.$button.addClass(buttonClass); - } - }, - - liHeight: function (refresh) { - if (!refresh && (this.options.size === false || this.sizeInfo)) return; - - if (!this.sizeInfo) this.sizeInfo = {}; - - var newElement = document.createElement('div'), - menu = document.createElement('div'), - menuInner = document.createElement('div'), - menuInnerInner = document.createElement('ul'), - divider = document.createElement('li'), - dropdownHeader = document.createElement('li'), - li = document.createElement('li'), - a = document.createElement('a'), - text = document.createElement('span'), - header = this.options.header && this.$menu.find('.' + classNames.POPOVERHEADER).length > 0 ? this.$menu.find('.' + classNames.POPOVERHEADER)[0].cloneNode(true) : null, - search = this.options.liveSearch ? document.createElement('div') : null, - actions = this.options.actionsBox && this.multiple && this.$menu.find('.bs-actionsbox').length > 0 ? this.$menu.find('.bs-actionsbox')[0].cloneNode(true) : null, - doneButton = this.options.doneButton && this.multiple && this.$menu.find('.bs-donebutton').length > 0 ? this.$menu.find('.bs-donebutton')[0].cloneNode(true) : null; - - this.sizeInfo.selectWidth = this.$newElement[0].offsetWidth; - - text.className = 'text'; - a.className = 'dropdown-item ' + this.$element.find('option')[0].className; - newElement.className = this.$menu[0].parentNode.className + ' ' + classNames.SHOW; - newElement.style.width = this.sizeInfo.selectWidth + 'px'; - if (this.options.width === 'auto') menu.style.minWidth = 0; - menu.className = classNames.MENU + ' ' + classNames.SHOW; - menuInner.className = 'inner ' + classNames.SHOW; - menuInnerInner.className = classNames.MENU + ' inner ' + (version.major === '4' ? classNames.SHOW : ''); - divider.className = classNames.DIVIDER; - dropdownHeader.className = 'dropdown-header'; - - text.appendChild(document.createTextNode('Inner text')); - a.appendChild(text); - li.appendChild(a); - dropdownHeader.appendChild(text.cloneNode(true)); - - if (this.selectpicker.view.widestOption) { - menuInnerInner.appendChild(this.selectpicker.view.widestOption.cloneNode(true)); - } - - menuInnerInner.appendChild(li); - menuInnerInner.appendChild(divider); - menuInnerInner.appendChild(dropdownHeader); - if (header) menu.appendChild(header); - if (search) { - var input = document.createElement('input'); - search.className = 'bs-searchbox'; - input.className = 'form-control'; - search.appendChild(input); - menu.appendChild(search); - } - if (actions) menu.appendChild(actions); - menuInner.appendChild(menuInnerInner); - menu.appendChild(menuInner); - if (doneButton) menu.appendChild(doneButton); - newElement.appendChild(menu); - - document.body.appendChild(newElement); - - var liHeight = a.offsetHeight, - dropdownHeaderHeight = dropdownHeader ? dropdownHeader.offsetHeight : 0, - headerHeight = header ? header.offsetHeight : 0, - searchHeight = search ? search.offsetHeight : 0, - actionsHeight = actions ? actions.offsetHeight : 0, - doneButtonHeight = doneButton ? doneButton.offsetHeight : 0, - dividerHeight = $(divider).outerHeight(true), - // fall back to jQuery if getComputedStyle is not supported - menuStyle = window.getComputedStyle ? window.getComputedStyle(menu) : false, - menuWidth = menu.offsetWidth, - $menu = menuStyle ? null : $(menu), - menuPadding = { - vert: toInteger(menuStyle ? menuStyle.paddingTop : $menu.css('paddingTop')) + - toInteger(menuStyle ? menuStyle.paddingBottom : $menu.css('paddingBottom')) + - toInteger(menuStyle ? menuStyle.borderTopWidth : $menu.css('borderTopWidth')) + - toInteger(menuStyle ? menuStyle.borderBottomWidth : $menu.css('borderBottomWidth')), - horiz: toInteger(menuStyle ? menuStyle.paddingLeft : $menu.css('paddingLeft')) + - toInteger(menuStyle ? menuStyle.paddingRight : $menu.css('paddingRight')) + - toInteger(menuStyle ? menuStyle.borderLeftWidth : $menu.css('borderLeftWidth')) + - toInteger(menuStyle ? menuStyle.borderRightWidth : $menu.css('borderRightWidth')) - }, - menuExtras = { - vert: menuPadding.vert + - toInteger(menuStyle ? menuStyle.marginTop : $menu.css('marginTop')) + - toInteger(menuStyle ? menuStyle.marginBottom : $menu.css('marginBottom')) + 2, - horiz: menuPadding.horiz + - toInteger(menuStyle ? menuStyle.marginLeft : $menu.css('marginLeft')) + - toInteger(menuStyle ? menuStyle.marginRight : $menu.css('marginRight')) + 2 - }, - scrollBarWidth; - - menuInner.style.overflowY = 'scroll'; - - scrollBarWidth = menu.offsetWidth - menuWidth; - - document.body.removeChild(newElement); - - this.sizeInfo.liHeight = liHeight; - this.sizeInfo.dropdownHeaderHeight = dropdownHeaderHeight; - this.sizeInfo.headerHeight = headerHeight; - this.sizeInfo.searchHeight = searchHeight; - this.sizeInfo.actionsHeight = actionsHeight; - this.sizeInfo.doneButtonHeight = doneButtonHeight; - this.sizeInfo.dividerHeight = dividerHeight; - this.sizeInfo.menuPadding = menuPadding; - this.sizeInfo.menuExtras = menuExtras; - this.sizeInfo.menuWidth = menuWidth; - this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth; - this.sizeInfo.scrollBarWidth = scrollBarWidth; - this.sizeInfo.selectHeight = this.$newElement[0].offsetHeight; - - this.setPositionData(); - }, - - getSelectPosition: function () { - var that = this, - $window = $(window), - pos = that.$newElement.offset(), - $container = $(that.options.container), - containerPos; - - if (that.options.container && !$container.is('body')) { - containerPos = $container.offset(); - containerPos.top += parseInt($container.css('borderTopWidth')); - containerPos.left += parseInt($container.css('borderLeftWidth')); - } else { - containerPos = { top: 0, left: 0 }; - } - - var winPad = that.options.windowPadding; - - this.sizeInfo.selectOffsetTop = pos.top - containerPos.top - $window.scrollTop(); - this.sizeInfo.selectOffsetBot = $window.height() - this.sizeInfo.selectOffsetTop - this.sizeInfo['selectHeight'] - containerPos.top - winPad[2]; - this.sizeInfo.selectOffsetLeft = pos.left - containerPos.left - $window.scrollLeft(); - this.sizeInfo.selectOffsetRight = $window.width() - this.sizeInfo.selectOffsetLeft - this.sizeInfo['selectWidth'] - containerPos.left - winPad[1]; - this.sizeInfo.selectOffsetTop -= winPad[0]; - this.sizeInfo.selectOffsetLeft -= winPad[3]; - }, - - setMenuSize: function (isAuto) { - this.getSelectPosition(); - - var selectWidth = this.sizeInfo['selectWidth'], - liHeight = this.sizeInfo['liHeight'], - headerHeight = this.sizeInfo['headerHeight'], - searchHeight = this.sizeInfo['searchHeight'], - actionsHeight = this.sizeInfo['actionsHeight'], - doneButtonHeight = this.sizeInfo['doneButtonHeight'], - divHeight = this.sizeInfo['dividerHeight'], - menuPadding = this.sizeInfo['menuPadding'], - menuInnerHeight, - menuHeight, - divLength = 0, - minHeight, - _minHeight, - maxHeight, - menuInnerMinHeight, - estimate; - - if (this.options.dropupAuto) { - // Get the estimated height of the menu without scrollbars. - // This is useful for smaller menus, where there might be plenty of room - // below the button without setting dropup, but we can't know - // the exact height of the menu until createView is called later - estimate = liHeight * this.selectpicker.current.elements.length + menuPadding.vert; - this.$newElement.toggleClass(classNames.DROPUP, this.sizeInfo.selectOffsetTop - this.sizeInfo.selectOffsetBot > this.sizeInfo.menuExtras.vert && estimate + this.sizeInfo.menuExtras.vert + 50 > this.sizeInfo.selectOffsetBot); - } - - if (this.options.size === 'auto') { - _minHeight = this.selectpicker.current.elements.length > 3 ? this.sizeInfo.liHeight * 3 + this.sizeInfo.menuExtras.vert - 2 : 0; - menuHeight = this.sizeInfo.selectOffsetBot - this.sizeInfo.menuExtras.vert; - minHeight = _minHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; - menuInnerMinHeight = Math.max(_minHeight - menuPadding.vert, 0); - - if (this.$newElement.hasClass(classNames.DROPUP)) { - menuHeight = this.sizeInfo.selectOffsetTop - this.sizeInfo.menuExtras.vert; - } - - maxHeight = menuHeight; - menuInnerHeight = menuHeight - headerHeight - searchHeight - actionsHeight - doneButtonHeight - menuPadding.vert; - } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) { - for (var i = 0; i < this.options.size; i++) { - if (this.selectpicker.current.data[i].type === 'divider') divLength++; - } - - menuHeight = liHeight * this.options.size + divLength * divHeight + menuPadding.vert; - menuInnerHeight = menuHeight - menuPadding.vert; - maxHeight = menuHeight + headerHeight + searchHeight + actionsHeight + doneButtonHeight; - minHeight = menuInnerMinHeight = ''; - } - - if (this.options.dropdownAlignRight === 'auto') { - this.$menu.toggleClass(classNames.MENURIGHT, this.sizeInfo.selectOffsetLeft > this.sizeInfo.selectOffsetRight && this.sizeInfo.selectOffsetRight < (this.$menu[0].offsetWidth - selectWidth)); - } - - this.$menu.css({ - 'max-height': maxHeight + 'px', - 'overflow': 'hidden', - 'min-height': minHeight + 'px' - }); - - this.$menuInner.css({ - 'max-height': menuInnerHeight + 'px', - 'overflow-y': 'auto', - 'min-height': menuInnerMinHeight + 'px' - }); - - this.sizeInfo['menuInnerHeight'] = menuInnerHeight; - - if (this.selectpicker.current.data.length && this.selectpicker.current.data[this.selectpicker.current.data.length - 1].position > this.sizeInfo.menuInnerHeight) { - this.sizeInfo.hasScrollBar = true; - this.sizeInfo.totalMenuWidth = this.sizeInfo.menuWidth + this.sizeInfo.scrollBarWidth; - - this.$menu.css('min-width', this.sizeInfo.totalMenuWidth); - } - - if (this.dropdown && this.dropdown._popper) this.dropdown._popper.update(); - }, - - setSize: function (refresh) { - this.liHeight(refresh); - - if (this.options.header) this.$menu.css('padding-top', 0); - if (this.options.size === false) return; - - var that = this, - $window = $(window), - selectedIndex, - offset = 0; - - this.setMenuSize(); - - if (this.options.size === 'auto') { - this.$searchbox.off('input.setMenuSize propertychange.setMenuSize').on('input.setMenuSize propertychange.setMenuSize', function() { - return that.setMenuSize(); - }); - $window.off('resize.setMenuSize scroll.setMenuSize').on('resize.setMenuSize scroll.setMenuSize', function() { - return that.setMenuSize(); - }); - } else if (this.options.size && this.options.size != 'auto' && this.selectpicker.current.elements.length > this.options.size) { - this.$searchbox.off('input.setMenuSize propertychange.setMenuSize'); - $window.off('resize.setMenuSize scroll.setMenuSize'); - } - - if (refresh) { - offset = this.$menuInner[0].scrollTop; - } else if (!that.multiple) { - selectedIndex = that.selectpicker.main.map.newIndex[that.$element[0].selectedIndex]; - - if (typeof selectedIndex === 'number' && that.options.size !== false) { - offset = that.sizeInfo.liHeight * selectedIndex; - offset = offset - (that.sizeInfo.menuInnerHeight / 2) + (that.sizeInfo.liHeight / 2); - } - } - - that.createView(false, offset); - }, - - setWidth: function () { - var that = this; - - if (this.options.width === 'auto') { - requestAnimationFrame(function() { - that.$menu.css('min-width', '0'); - that.liHeight(); - that.setMenuSize(); - - // Get correct width if element is hidden - var $selectClone = that.$newElement.clone().appendTo('body'), - btnWidth = $selectClone.css('width', 'auto').children('button').outerWidth(); - - $selectClone.remove(); - - // Set width to whatever's larger, button title or longest option - that.sizeInfo.selectWidth = Math.max(that.sizeInfo.totalMenuWidth, btnWidth); - that.$newElement.css('width', that.sizeInfo.selectWidth + 'px'); - }); - } else if (this.options.width === 'fit') { - // Remove inline min-width so width can be changed from 'auto' - this.$menu.css('min-width', ''); - this.$newElement.css('width', '').addClass('fit-width'); - } else if (this.options.width) { - // Remove inline min-width so width can be changed from 'auto' - this.$menu.css('min-width', ''); - this.$newElement.css('width', this.options.width); - } else { - // Remove inline min-width/width so width can be changed - this.$menu.css('min-width', ''); - this.$newElement.css('width', ''); - } - // Remove fit-width class if width is changed programmatically - if (this.$newElement.hasClass('fit-width') && this.options.width !== 'fit') { - this.$newElement.removeClass('fit-width'); - } - }, - - selectPosition: function () { - this.$bsContainer = $('
          '); - - var that = this, - $container = $(this.options.container), - pos, - containerPos, - actualHeight, - getPlacement = function ($element) { - var containerPosition = {}, - // fall back to dropdown's default display setting if display is not manually set - display = that.options.display || $.fn.dropdown.Constructor.Default.display; - - that.$bsContainer.addClass($element.attr('class').replace(/form-control|fit-width/gi, '')).toggleClass(classNames.DROPUP, $element.hasClass(classNames.DROPUP)); - pos = $element.offset(); - - if (!$container.is('body')) { - containerPos = $container.offset(); - containerPos.top += parseInt($container.css('borderTopWidth')) - $container.scrollTop(); - containerPos.left += parseInt($container.css('borderLeftWidth')) - $container.scrollLeft(); - } else { - containerPos = { top: 0, left: 0 }; - } - - actualHeight = $element.hasClass(classNames.DROPUP) ? 0 : $element[0].offsetHeight; - - // Bootstrap 4+ uses Popper for menu positioning - if (version.major < 4 || display === 'static') { - containerPosition['top'] = pos.top - containerPos.top + actualHeight; - containerPosition['left'] = pos.left - containerPos.left; - } - - containerPosition['width'] = $element[0].offsetWidth; - - that.$bsContainer.css(containerPosition); - }; - - this.$button.on('click.bs.dropdown.data-api', function () { - if (that.isDisabled()) { - return; - } - - getPlacement(that.$newElement); - - that.$bsContainer - .appendTo(that.options.container) - .toggleClass(classNames.SHOW, !that.$button.hasClass(classNames.SHOW)) - .append(that.$menu); - }); - - $(window).on('resize scroll', function () { - getPlacement(that.$newElement); - }); - - this.$element.on('hide.bs.select', function () { - that.$menu.data('height', that.$menu.height()); - that.$bsContainer.detach(); - }); - }, - - setOptionStatus: function () { - var that = this, - $selectOptions = this.$element.find('option'); - - that.noScroll = false; - - if (that.selectpicker.view.visibleElements && that.selectpicker.view.visibleElements.length) { - for (var i = 0; i < that.selectpicker.view.visibleElements.length; i++) { - var index = that.selectpicker.current.map.originalIndex[i + that.selectpicker.view.position0], // faster than $(li).data('originalIndex') - option = $selectOptions[index]; - - if (option) { - var liIndex = this.selectpicker.main.map.newIndex[index], - li = this.selectpicker.main.elements[liIndex]; - - that.setDisabled( - index, - option.disabled || option.parentNode.tagName === 'OPTGROUP' && option.parentNode.disabled, - liIndex, - li - ); - - that.setSelected( - index, - option.selected, - liIndex, - li - ); - } - } - } - }, - - /** - * @param {number} index - the index of the option that is being changed - * @param {boolean} selected - true if the option is being selected, false if being deselected - */ - setSelected: function (index, selected, liIndex, li) { - var activeIndexIsSet = this.activeIndex !== undefined, - thisIsActive = this.activeIndex === index, - prevActiveIndex, - prevActive, - a, - // if current option is already active - // OR - // if the current option is being selected, it's NOT multiple, and - // activeIndex is undefined: - // - when the menu is first being opened, OR - // - after a search has been performed, OR - // - when retainActive is false when selecting a new option (i.e. index of the newly selected option is not the same as the current activeIndex) - keepActive = thisIsActive || selected && !this.multiple && !activeIndexIsSet; - - if (!liIndex) liIndex = this.selectpicker.main.map.newIndex[index]; - if (!li) li = this.selectpicker.main.elements[liIndex]; - - a = li.firstChild; - - if (selected) { - this.selectedIndex = index; - } - - li.classList.toggle('selected', selected); - li.classList.toggle('active', keepActive); - - if (keepActive) { - this.selectpicker.view.currentActive = li; - this.activeIndex = index; - } - - if (a) { - a.classList.toggle('selected', selected); - a.classList.toggle('active', keepActive); - a.setAttribute('aria-selected', selected); - } - - if (!keepActive) { - if (!activeIndexIsSet && selected && this.prevActiveIndex !== undefined) { - prevActiveIndex = this.selectpicker.main.map.newIndex[this.prevActiveIndex]; - prevActive = this.selectpicker.main.elements[prevActiveIndex]; - - prevActive.classList.toggle('selected', selected); - prevActive.classList.remove('active'); - if (prevActive.firstChild) { - prevActive.firstChild.classList.toggle('selected', selected); - prevActive.firstChild.classList.remove('active'); - } - } - } - }, - - /** - * @param {number} index - the index of the option that is being disabled - * @param {boolean} disabled - true if the option is being disabled, false if being enabled - */ - setDisabled: function (index, disabled, liIndex, li) { - var a; - - if (!liIndex) liIndex = this.selectpicker.main.map.newIndex[index]; - if (!li) li = this.selectpicker.main.elements[liIndex]; - - a = li.firstChild; - - li.classList.toggle(classNames.DISABLED, disabled); - - if (a) { - if (version.major === '4') a.classList.toggle(classNames.DISABLED, disabled); - - a.setAttribute('aria-disabled', disabled); - - if (disabled) { - a.setAttribute('tabindex', -1); - } else { - a.setAttribute('tabindex', 0); - } - } - }, - - isDisabled: function () { - return this.$element[0].disabled; - }, - - checkDisabled: function () { - var that = this; - - if (this.isDisabled()) { - this.$newElement.addClass(classNames.DISABLED); - this.$button.addClass(classNames.DISABLED).attr('tabindex', -1).attr('aria-disabled', true); - } else { - if (this.$button.hasClass(classNames.DISABLED)) { - this.$newElement.removeClass(classNames.DISABLED); - this.$button.removeClass(classNames.DISABLED).attr('aria-disabled', false); - } - - if (this.$button.attr('tabindex') == -1 && !this.$element.data('tabindex')) { - this.$button.removeAttr('tabindex'); - } - } - - this.$button.click(function () { - return !that.isDisabled(); - }); - }, - - togglePlaceholder: function () { - // much faster than calling $.val() - var element = this.$element[0], - selectedIndex = element.selectedIndex, - nothingSelected = selectedIndex === -1; - - if (!nothingSelected && !element.options[selectedIndex].value) nothingSelected = true; - - this.$button.toggleClass('bs-placeholder', nothingSelected); - }, - - tabIndex: function () { - if (this.$element.data('tabindex') !== this.$element.attr('tabindex') && - (this.$element.attr('tabindex') !== -98 && this.$element.attr('tabindex') !== '-98')) { - this.$element.data('tabindex', this.$element.attr('tabindex')); - this.$button.attr('tabindex', this.$element.data('tabindex')); - } - - this.$element.attr('tabindex', -98); - }, - - clickListener: function () { - var that = this, - $document = $(document); - - $document.data('spaceSelect', false); - - this.$button.on('keyup', function (e) { - if (/(32)/.test(e.keyCode.toString(10)) && $document.data('spaceSelect')) { - e.preventDefault(); - $document.data('spaceSelect', false); - } - }); - - this.$newElement.on('show.bs.dropdown', function() { - if (version.major > 3 && !that.dropdown) { - that.dropdown = that.$button.data('bs.dropdown'); - that.dropdown._menu = that.$menu[0]; - } - }); - - this.$button.on('click.bs.dropdown.data-api', function () { - if (!that.$newElement.hasClass(classNames.SHOW)) { - that.setSize(); - } - }); - - function setFocus () { - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$menuInner.focus(); - } - } - - function checkPopperExists () { - if (that.dropdown && that.dropdown._popper && that.dropdown._popper.state.isCreated) { - setFocus(); - } else { - requestAnimationFrame(checkPopperExists); - } - } - - this.$element.on('shown.bs.select', function () { - if (that.$menuInner[0].scrollTop !== that.selectpicker.view.scrollTop) { - that.$menuInner[0].scrollTop = that.selectpicker.view.scrollTop; - } - - if (version.major > 3) { - requestAnimationFrame(checkPopperExists); - } else { - setFocus(); - } - }); - - this.$menuInner.on('click', 'li a', function (e, retainActive) { - var $this = $(this), - position0 = that.isVirtual() ? that.selectpicker.view.position0 : 0, - clickedIndex = that.selectpicker.current.map.originalIndex[$this.parent().index() + position0], - prevValue = getSelectValues(that.$element[0]), - prevIndex = that.$element.prop('selectedIndex'), - triggerChange = true; - - // Don't close on multi choice menu - if (that.multiple && that.options.maxOptions !== 1) { - e.stopPropagation(); - } - - e.preventDefault(); - - //Don't run if we have been disabled - if (!that.isDisabled() && !$this.parent().hasClass(classNames.DISABLED)) { - var $options = that.$element.find('option'), - $option = $options.eq(clickedIndex), - state = $option.prop('selected'), - $optgroup = $option.parent('optgroup'), - $optgroupOptions = $optgroup.find('option'), - maxOptions = that.options.maxOptions, - maxOptionsGrp = $optgroup.data('maxOptions') || false; - - if (clickedIndex === that.activeIndex) retainActive = true; - - if (!retainActive) { - that.prevActiveIndex = that.activeIndex; - that.activeIndex = undefined; - } - - if (!that.multiple) { // Deselect all others if not multi select box - $options.prop('selected', false); - $option.prop('selected', true); - that.setSelected(clickedIndex, true); - } else { // Toggle the one we have chosen if we are multi select. - $option.prop('selected', !state); - - that.setSelected(clickedIndex, !state); - $this.blur(); - - if (maxOptions !== false || maxOptionsGrp !== false) { - var maxReached = maxOptions < $options.filter(':selected').length, - maxReachedGrp = maxOptionsGrp < $optgroup.find('option:selected').length; - - if ((maxOptions && maxReached) || (maxOptionsGrp && maxReachedGrp)) { - if (maxOptions && maxOptions == 1) { - $options.prop('selected', false); - $option.prop('selected', true); - - for (var i = 0; i < $options.length; i++) { - that.setSelected(i, false); - } - - that.setSelected(clickedIndex, true); - } else if (maxOptionsGrp && maxOptionsGrp == 1) { - $optgroup.find('option:selected').prop('selected', false); - $option.prop('selected', true); - - for (var i = 0; i < $optgroupOptions.length; i++) { - var option = $optgroupOptions[i]; - that.setSelected($options.index(option), false); - } - - that.setSelected(clickedIndex, true); - } else { - var maxOptionsText = typeof that.options.maxOptionsText === 'string' ? [that.options.maxOptionsText, that.options.maxOptionsText] : that.options.maxOptionsText, - maxOptionsArr = typeof maxOptionsText === 'function' ? maxOptionsText(maxOptions, maxOptionsGrp) : maxOptionsText, - maxTxt = maxOptionsArr[0].replace('{n}', maxOptions), - maxTxtGrp = maxOptionsArr[1].replace('{n}', maxOptionsGrp), - $notify = $('
          '); - // If {var} is set in array, replace it - /** @deprecated */ - if (maxOptionsArr[2]) { - maxTxt = maxTxt.replace('{var}', maxOptionsArr[2][maxOptions > 1 ? 0 : 1]); - maxTxtGrp = maxTxtGrp.replace('{var}', maxOptionsArr[2][maxOptionsGrp > 1 ? 0 : 1]); - } - - $option.prop('selected', false); - - that.$menu.append($notify); - - if (maxOptions && maxReached) { - $notify.append($('
          ' + maxTxt + '
          ')); - triggerChange = false; - that.$element.trigger('maxReached.bs.select'); - } - - if (maxOptionsGrp && maxReachedGrp) { - $notify.append($('
          ' + maxTxtGrp + '
          ')); - triggerChange = false; - that.$element.trigger('maxReachedGrp.bs.select'); - } - - setTimeout(function () { - that.setSelected(clickedIndex, false); - }, 10); - - $notify.delay(750).fadeOut(300, function () { - $(this).remove(); - }); - } - } - } - } - - if (!that.multiple || (that.multiple && that.options.maxOptions === 1)) { - that.$button.focus(); - } else if (that.options.liveSearch) { - that.$searchbox.focus(); - } - - // Trigger select 'change' - if (triggerChange) { - if ((prevValue != getSelectValues(that.$element[0]) && that.multiple) || (prevIndex != that.$element.prop('selectedIndex') && !that.multiple)) { - // $option.prop('selected') is current option state (selected/unselected). prevValue is the value of the select prior to being changed. - changed_arguments = [clickedIndex, $option.prop('selected'), prevValue]; - that.$element - .triggerNative('change'); - } - } - } - }); - - this.$menu.on('click', 'li.' + classNames.DISABLED + ' a, .' + classNames.POPOVERHEADER + ', .' + classNames.POPOVERHEADER + ' :not(.close)', function (e) { - if (e.currentTarget == this) { - e.preventDefault(); - e.stopPropagation(); - if (that.options.liveSearch && !$(e.target).hasClass('close')) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - } - }); - - this.$menuInner.on('click', '.divider, .dropdown-header', function (e) { - e.preventDefault(); - e.stopPropagation(); - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - }); - - this.$menu.on('click', '.' + classNames.POPOVERHEADER + ' .close', function () { - that.$button.click(); - }); - - this.$searchbox.on('click', function (e) { - e.stopPropagation(); - }); - - this.$menu.on('click', '.actions-btn', function (e) { - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - that.$button.focus(); - } - - e.preventDefault(); - e.stopPropagation(); - - if ($(this).hasClass('bs-select-all')) { - that.selectAll(); - } else { - that.deselectAll(); - } - }); - - this.$element.on({ - 'change': function () { - that.render(); - that.$element.trigger('changed.bs.select', changed_arguments); - changed_arguments = null; - }, - 'focus': function () { - that.$button.focus(); - } - }); - }, - - liveSearchListener: function () { - var that = this, - no_results = document.createElement('li'); - - this.$button.on('click.bs.dropdown.data-api', function () { - if (!!that.$searchbox.val()) { - that.$searchbox.val(''); - } - }); - - this.$searchbox.on('click.bs.dropdown.data-api focus.bs.dropdown.data-api touchend.bs.dropdown.data-api', function (e) { - e.stopPropagation(); - }); - - this.$searchbox.on('input propertychange', function () { - var searchValue = that.$searchbox.val(); - - that.selectpicker.search.map.newIndex = {}; - that.selectpicker.search.map.originalIndex = {}; - that.selectpicker.search.elements = []; - that.selectpicker.search.data = []; - - if (searchValue) { - var i, - searchMatch = [], - q = searchValue.toUpperCase(), - cache = {}, - cacheArr = [], - searchStyle = that._searchStyle(), - normalizeSearch = that.options.liveSearchNormalize; - - that._$lisSelected = that.$menuInner.find('.selected'); - - for (var i = 0; i < that.selectpicker.main.data.length; i++) { - var li = that.selectpicker.main.data[i]; - - if (!cache[i]) { - cache[i] = stringSearch(li, q, searchStyle, normalizeSearch); - } - - if (cache[i] && li.headerIndex !== undefined && cacheArr.indexOf(li.headerIndex) === -1) { - if (li.headerIndex > 0) { - cache[li.headerIndex - 1] = true; - cacheArr.push(li.headerIndex - 1); - } - - cache[li.headerIndex] = true; - cacheArr.push(li.headerIndex); - - cache[li.lastIndex + 1] = true; - } - - if (cache[i] && li.type !== 'optgroup-label') cacheArr.push(i); - } - - for (var i = 0, cacheLen = cacheArr.length; i < cacheLen; i++) { - var index = cacheArr[i], - prevIndex = cacheArr[i - 1], - li = that.selectpicker.main.data[index], - liPrev = that.selectpicker.main.data[prevIndex]; - - if ( li.type !== 'divider' || ( li.type === 'divider' && liPrev && liPrev.type !== 'divider' && cacheLen - 1 !== i ) ) { - that.selectpicker.search.data.push(li); - searchMatch.push(that.selectpicker.main.elements[index]); - - if (li.hasOwnProperty('originalIndex')) { - that.selectpicker.search.map.newIndex[li.originalIndex] = searchMatch.length - 1; - that.selectpicker.search.map.originalIndex[searchMatch.length - 1] = li.originalIndex; - } - } - } - - that.activeIndex = undefined; - that.noScroll = true; - that.$menuInner.scrollTop(0); - that.selectpicker.search.elements = searchMatch; - that.createView(true); - - if (!searchMatch.length) { - no_results.className = 'no-results'; - no_results.innerHTML = that.options.noneResultsText.replace('{0}', '"' + htmlEscape(searchValue) + '"'); - that.$menuInner[0].firstChild.appendChild(no_results); - } - } else { - that.$menuInner.scrollTop(0); - that.createView(false); - } - }); - }, - - _searchStyle: function () { - return this.options.liveSearchStyle || 'contains'; - }, - - val: function (value) { - if (typeof value !== 'undefined') { - this.$element - .val(value) - .triggerNative('change'); - - return this.$element; - } else { - return this.$element.val(); - } - }, - - changeAll: function (status) { - if (!this.multiple) return; - if (typeof status === 'undefined') status = true; - - var $selectOptions = this.$element.find('option'), - previousSelected = 0, - currentSelected = 0, - prevValue = getSelectValues(this.$element[0]); - - this.$element.addClass('bs-select-hidden'); - - for (var i = 0; i < this.selectpicker.current.elements.length; i++) { - var liData = this.selectpicker.current.data[i], - index = this.selectpicker.current.map.originalIndex[i], // faster than $(li).data('originalIndex') - option = $selectOptions[index]; - - if (option && !option.disabled && liData.type !== 'divider') { - if (option.selected) previousSelected++; - option.selected = status; - if (option.selected) currentSelected++; - } - } - - this.$element.removeClass('bs-select-hidden'); - - if (previousSelected === currentSelected) return; - - this.setOptionStatus(); - - this.togglePlaceholder(); - - changed_arguments = [null, null, prevValue]; - - this.$element - .triggerNative('change'); - }, - - selectAll: function () { - return this.changeAll(true); - }, - - deselectAll: function () { - return this.changeAll(false); - }, - - toggle: function (e) { - e = e || window.event; - - if (e) e.stopPropagation(); - - this.$button.trigger('click.bs.dropdown.data-api'); - }, - - keydown: function (e) { - var $this = $(this), - isToggle = $this.hasClass('dropdown-toggle'), - $parent = isToggle ? $this.closest('.dropdown') : $this.closest(Selector.MENU), - that = $parent.data('this'), - $items = that.findLis(), - index, - isActive, - liActive, - activeLi, - offset, - updateScroll = false, - downOnTab = e.which === keyCodes.TAB && !isToggle && !that.options.selectOnTab, - isArrowKey = REGEXP_ARROW.test(e.which) || downOnTab, - scrollTop = that.$menuInner[0].scrollTop, - isVirtual = that.isVirtual(), - position0 = isVirtual === true ? that.selectpicker.view.position0 : 0; - - isActive = that.$newElement.hasClass(classNames.SHOW); - - if ( - !isActive && - ( - isArrowKey || - e.which >= 48 && e.which <= 57 || - e.which >= 96 && e.which <= 105 || - e.which >= 65 && e.which <= 90 - ) - ) { - that.$button.trigger('click.bs.dropdown.data-api'); - } - - if (e.which === keyCodes.ESCAPE && isActive) { - e.preventDefault(); - that.$button.trigger('click.bs.dropdown.data-api').focus(); - } - - if (isArrowKey) { // if up or down - if (!$items.length) return; - - // $items.index/.filter is too slow with a large list and no virtual scroll - index = isVirtual === true ? $items.index($items.filter('.active')) : that.selectpicker.current.map.newIndex[that.activeIndex]; - - if (index === undefined) index = -1; - - if (index !== -1) { - liActive = that.selectpicker.current.elements[index + position0]; - liActive.classList.remove('active'); - if (liActive.firstChild) liActive.firstChild.classList.remove('active'); - } - - if (e.which === keyCodes.ARROW_UP) { // up - if (index !== -1) index--; - if (index + position0 < 0) index += $items.length; - - if (!that.selectpicker.view.canHighlight[index + position0]) { - index = that.selectpicker.view.canHighlight.slice(0, index + position0).lastIndexOf(true) - position0; - if (index === -1) index = $items.length - 1; - } - } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down - index++; - if (index + position0 >= that.selectpicker.view.canHighlight.length) index = 0; - - if (!that.selectpicker.view.canHighlight[index + position0]) { - index = index + 1 + that.selectpicker.view.canHighlight.slice(index + position0 + 1).indexOf(true); - } - } - - e.preventDefault(); - - var liActiveIndex = position0 + index; - - if (e.which === keyCodes.ARROW_UP) { // up - // scroll to bottom and highlight last option - if (position0 === 0 && index === $items.length - 1) { - that.$menuInner[0].scrollTop = that.$menuInner[0].scrollHeight; - - liActiveIndex = that.selectpicker.current.elements.length - 1; - } else { - activeLi = that.selectpicker.current.data[liActiveIndex]; - offset = activeLi.position - activeLi.height; - - updateScroll = offset < scrollTop; - } - } else if (e.which === keyCodes.ARROW_DOWN || downOnTab) { // down - // scroll to top and highlight first option - if (index === 0) { - that.$menuInner[0].scrollTop = 0; - - liActiveIndex = 0; - } else { - activeLi = that.selectpicker.current.data[liActiveIndex]; - offset = activeLi.position - that.sizeInfo.menuInnerHeight; - - updateScroll = offset > scrollTop; - } - } - - liActive = that.selectpicker.current.elements[liActiveIndex]; - - if (liActive) { - liActive.classList.add('active'); - if (liActive.firstChild) liActive.firstChild.classList.add('active'); - } - - that.activeIndex = that.selectpicker.current.map.originalIndex[liActiveIndex]; - - that.selectpicker.view.currentActive = liActive; - - if (updateScroll) that.$menuInner[0].scrollTop = offset; - - if (that.options.liveSearch) { - that.$searchbox.focus(); - } else { - $this.focus(); - } - } else if ( - !$this.is('input') && - !REGEXP_TAB_OR_ESCAPE.test(e.which) || - (e.which === keyCodes.SPACE && that.selectpicker.keydown.keyHistory) - ) { - var searchMatch, - matches = [], - keyHistory; - - e.preventDefault(); - - that.selectpicker.keydown.keyHistory += keyCodeMap[e.which]; - - if (that.selectpicker.keydown.resetKeyHistory.cancel) clearTimeout(that.selectpicker.keydown.resetKeyHistory.cancel); - that.selectpicker.keydown.resetKeyHistory.cancel = that.selectpicker.keydown.resetKeyHistory.start(); - - keyHistory = that.selectpicker.keydown.keyHistory; - - // if all letters are the same, set keyHistory to just the first character when searching - if (/^(.)\1+$/.test(keyHistory)) { - keyHistory = keyHistory.charAt(0); - } - - // find matches - for (var i = 0; i < that.selectpicker.current.data.length; i++) { - var li = that.selectpicker.current.data[i], - hasMatch; - - hasMatch = stringSearch(li, keyHistory, 'startsWith', true); - - if (hasMatch && that.selectpicker.view.canHighlight[i]) { - li.index = i; - matches.push(li.originalIndex); - } - } - - if (matches.length) { - var matchIndex = 0; - - $items.removeClass('active').find('a').removeClass('active'); - - // either only one key has been pressed or they are all the same key - if (keyHistory.length === 1) { - matchIndex = matches.indexOf(that.activeIndex); - - if (matchIndex === -1 || matchIndex === matches.length - 1) { - matchIndex = 0; - } else { - matchIndex++; - } - } - - searchMatch = that.selectpicker.current.map.newIndex[matches[matchIndex]]; - - activeLi = that.selectpicker.current.data[searchMatch]; - - if (scrollTop - activeLi.position > 0) { - offset = activeLi.position - activeLi.height; - updateScroll = true; - } else { - offset = activeLi.position - that.sizeInfo.menuInnerHeight; - // if the option is already visible at the current scroll position, just keep it the same - updateScroll = activeLi.position > scrollTop + that.sizeInfo.menuInnerHeight; - } - - liActive = that.selectpicker.current.elements[searchMatch]; - liActive.classList.add('active'); - if (liActive.firstChild) liActive.firstChild.classList.add('active'); - that.activeIndex = matches[matchIndex]; - - liActive.firstChild.focus(); - - if (updateScroll) that.$menuInner[0].scrollTop = offset; - - $this.focus(); - } - } - - // Select focused option if "Enter", "Spacebar" or "Tab" (when selectOnTab is true) are pressed inside the menu. - if ( - isActive && - ( - (e.which === keyCodes.SPACE && !that.selectpicker.keydown.keyHistory) || - e.which === keyCodes.ENTER || - (e.which === keyCodes.TAB && that.options.selectOnTab) - ) - ) { - if (e.which !== keyCodes.SPACE) e.preventDefault(); - - if (!that.options.liveSearch || e.which !== keyCodes.SPACE) { - that.$menuInner.find('.active a').trigger('click', true); // retain active class - $this.focus(); - - if (!that.options.liveSearch) { - // Prevent screen from scrolling if the user hits the spacebar - e.preventDefault(); - // Fixes spacebar selection of dropdown items in FF & IE - $(document).data('spaceSelect', true); - } - } - } - }, - - mobile: function () { - this.$element.addClass('mobile-device'); - }, - - refresh: function () { - // update options if data attributes have been changed - var config = $.extend({}, this.options, this.$element.data()); - this.options = config; - - this.selectpicker.main.map.newIndex = {}; - this.selectpicker.main.map.originalIndex = {}; - this.createLi(); - this.checkDisabled(); - this.render(); - this.setStyle(); - this.setWidth(); - - this.setSize(true); - - this.$element.trigger('refreshed.bs.select'); - }, - - hide: function () { - this.$newElement.hide(); - }, - - show: function () { - this.$newElement.show(); - }, - - remove: function () { - this.$newElement.remove(); - this.$element.remove(); - }, - - destroy: function () { - this.$newElement.before(this.$element).remove(); - - if (this.$bsContainer) { - this.$bsContainer.remove(); - } else { - this.$menu.remove(); - } - - this.$element - .off('.bs.select') - .removeData('selectpicker') - .removeClass('bs-select-hidden selectpicker'); - } - }; - - // SELECTPICKER PLUGIN DEFINITION - // ============================== - function Plugin(option) { - // get the args of the outer function.. - var args = arguments; - // The arguments of the function are explicitly re-defined from the argument list, because the shift causes them - // to get lost/corrupted in android 2.3 and IE9 #715 #775 - var _option = option; - - [].shift.apply(args); - - // if the version was not set successfully - if (!version.success) { - // try to retreive it again - try { - version.full = ($.fn.dropdown.Constructor.VERSION || '').split(' ')[0].split('.'); - } - // fall back to use BootstrapVersion - catch(err) { - version.full = Selectpicker.BootstrapVersion.split(' ')[0].split('.'); - } - - version.major = version.full[0]; - version.success = true; - - if (version.major === '4') { - classNames.DIVIDER = 'dropdown-divider'; - classNames.SHOW = 'show'; - classNames.BUTTONCLASS = 'btn-light'; - Selectpicker.DEFAULTS.style = classNames.BUTTONCLASS = 'btn-light'; - classNames.POPOVERHEADER = 'popover-header'; - } - } - - var value; - var chain = this.each(function () { - var $this = $(this); - if ($this.is('select')) { - var data = $this.data('selectpicker'), - options = typeof _option == 'object' && _option; - - if (!data) { - var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options); - config.template = $.extend({}, Selectpicker.DEFAULTS.template, ($.fn.selectpicker.defaults ? $.fn.selectpicker.defaults.template : {}), $this.data().template, options.template); - $this.data('selectpicker', (data = new Selectpicker(this, config))); - } else if (options) { - for (var i in options) { - if (options.hasOwnProperty(i)) { - data.options[i] = options[i]; - } - } - } - - if (typeof _option == 'string') { - if (data[_option] instanceof Function) { - value = data[_option].apply(data, args); - } else { - value = data.options[_option]; - } - } - } - }); - - if (typeof value !== 'undefined') { - //noinspection JSUnusedAssignment - return value; - } else { - return chain; - } - } - - var old = $.fn.selectpicker; - $.fn.selectpicker = Plugin; - $.fn.selectpicker.Constructor = Selectpicker; - - // SELECTPICKER NO CONFLICT - // ======================== - $.fn.selectpicker.noConflict = function () { - $.fn.selectpicker = old; - return this; - }; - - $(document) - .off('keydown.bs.dropdown.data-api') - .on('keydown.bs.select', '.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input', Selectpicker.prototype.keydown) - .on('focusin.modal', '.bootstrap-select [data-toggle="dropdown"], .bootstrap-select [role="listbox"], .bs-searchbox input', function (e) { - e.stopPropagation(); - }); - - // SELECTPICKER DATA-API - // ===================== - $(window).on('load.bs.select.data-api', function () { - $('.selectpicker').each(function () { - var $selectpicker = $(this); - Plugin.call($selectpicker, $selectpicker.data()); - }) - }); -})(jQuery); - - -})); diff --git a/assets/vendor/bootstrap/css/bootstrap.min.css b/assets/vendor/bootstrap/css/bootstrap.min.css deleted file mode 100644 index e490fd0..0000000 --- a/assets/vendor/bootstrap/css/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.1.0 (https://getbootstrap.com/) - * Copyright 2011-2018 The Bootstrap Authors - * Copyright 2011-2018 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014 \00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label,.input-group>.custom-file:not(:first-child) .custom-file-label::after{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;pointer-events:none;content:"";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:0;display:block;width:1rem;height:1rem;content:"";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(calc(2.25rem + 2px) - 1px * 2);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E")}.carousel-control-next-icon{background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:""}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/assets/vendor/bootstrap/js/bootstrap.bundle.js b/assets/vendor/bootstrap/js/bootstrap.bundle.js deleted file mode 100644 index 9bea2ea..0000000 --- a/assets/vendor/bootstrap/js/bootstrap.bundle.js +++ /dev/null @@ -1,6433 +0,0 @@ -/*! - * Bootstrap v4.1.0 (https://getbootstrap.com/) - * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery')) : - typeof define === 'function' && define.amd ? define(['exports', 'jquery'], factory) : - (factory((global.bootstrap = {}),global.jQuery)); -}(this, (function (exports,$) { 'use strict'; - - $ = $ && $.hasOwnProperty('default') ? $['default'] : $; - - 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 _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - } - - function _objectSpread(target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); - } - - ownKeys.forEach(function (key) { - _defineProperty(target, key, source[key]); - }); - } - - return target; - } - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; - } - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): util.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Util = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Private TransitionEnd Helpers - * ------------------------------------------------------------------------ - */ - var TRANSITION_END = 'transitionend'; - var MAX_UID = 1000000; - var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - - function toType(obj) { - return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); - } - - function getSpecialTransitionEndEvent() { - return { - bindType: TRANSITION_END, - delegateType: TRANSITION_END, - handle: function handle(event) { - if ($$$1(event.target).is(this)) { - return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params - } - - return undefined; // eslint-disable-line no-undefined - } - }; - } - - function transitionEndEmulator(duration) { - var _this = this; - - var called = false; - $$$1(this).one(Util.TRANSITION_END, function () { - called = true; - }); - setTimeout(function () { - if (!called) { - Util.triggerTransitionEnd(_this); - } - }, duration); - return this; - } - - function setTransitionEndSupport() { - $$$1.fn.emulateTransitionEnd = transitionEndEmulator; - $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); - } - /** - * -------------------------------------------------------------------------- - * Public Util Api - * -------------------------------------------------------------------------- - */ - - - var Util = { - TRANSITION_END: 'bsTransitionEnd', - getUID: function getUID(prefix) { - do { - // eslint-disable-next-line no-bitwise - prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here - } while (document.getElementById(prefix)); - - return prefix; - }, - getSelectorFromElement: function getSelectorFromElement(element) { - var selector = element.getAttribute('data-target'); - - if (!selector || selector === '#') { - selector = element.getAttribute('href') || ''; - } - - try { - var $selector = $$$1(document).find(selector); - return $selector.length > 0 ? selector : null; - } catch (err) { - return null; - } - }, - getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { - if (!element) { - return 0; - } // Get transition-duration of the element - - - var transitionDuration = $$$1(element).css('transition-duration'); - var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found - - if (!floatTransitionDuration) { - return 0; - } // If multiple durations are defined, take the first - - - transitionDuration = transitionDuration.split(',')[0]; - return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER; - }, - reflow: function reflow(element) { - return element.offsetHeight; - }, - triggerTransitionEnd: function triggerTransitionEnd(element) { - $$$1(element).trigger(TRANSITION_END); - }, - // TODO: Remove in v5 - supportsTransitionEnd: function supportsTransitionEnd() { - return Boolean(TRANSITION_END); - }, - isElement: function isElement(obj) { - return (obj[0] || obj).nodeType; - }, - typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { - for (var property in configTypes) { - if (Object.prototype.hasOwnProperty.call(configTypes, property)) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && Util.isElement(value) ? 'element' : toType(value); - - if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); - } - } - } - } - }; - setTransitionEndSupport(); - return Util; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): alert.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Alert = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'alert'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.alert'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var Selector = { - DISMISS: '[data-dismiss="alert"]' - }; - var Event = { - CLOSE: "close" + EVENT_KEY, - CLOSED: "closed" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - ALERT: 'alert', - FADE: 'fade', - SHOW: 'show' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Alert = - /*#__PURE__*/ - function () { - function Alert(element) { - this._element = element; - } // Getters - - - var _proto = Alert.prototype; - - // Public - _proto.close = function close(element) { - element = element || this._element; - - var rootElement = this._getRootElement(element); - - var customEvent = this._triggerCloseEvent(rootElement); - - if (customEvent.isDefaultPrevented()) { - return; - } - - this._removeElement(rootElement); - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - this._element = null; - }; // Private - - - _proto._getRootElement = function _getRootElement(element) { - var selector = Util.getSelectorFromElement(element); - var parent = false; - - if (selector) { - parent = $$$1(selector)[0]; - } - - if (!parent) { - parent = $$$1(element).closest("." + ClassName.ALERT)[0]; - } - - return parent; - }; - - _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - var closeEvent = $$$1.Event(Event.CLOSE); - $$$1(element).trigger(closeEvent); - return closeEvent; - }; - - _proto._removeElement = function _removeElement(element) { - var _this = this; - - $$$1(element).removeClass(ClassName.SHOW); - - if (!$$$1(element).hasClass(ClassName.FADE)) { - this._destroyElement(element); - - return; - } - - var transitionDuration = Util.getTransitionDurationFromElement(element); - $$$1(element).one(Util.TRANSITION_END, function (event) { - return _this._destroyElement(element, event); - }).emulateTransitionEnd(transitionDuration); - }; - - _proto._destroyElement = function _destroyElement(element) { - $$$1(element).detach().trigger(Event.CLOSED).remove(); - }; // Static - - - Alert._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var $element = $$$1(this); - var data = $element.data(DATA_KEY); - - if (!data) { - data = new Alert(this); - $element.data(DATA_KEY, data); - } - - if (config === 'close') { - data[config](this); - } - }); - }; - - Alert._handleDismiss = function _handleDismiss(alertInstance) { - return function (event) { - if (event) { - event.preventDefault(); - } - - alertInstance.close(this); - }; - }; - - _createClass(Alert, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }]); - - return Alert; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Alert._jQueryInterface; - $$$1.fn[NAME].Constructor = Alert; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Alert._jQueryInterface; - }; - - return Alert; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): button.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Button = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'button'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.button'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var ClassName = { - ACTIVE: 'active', - BUTTON: 'btn', - FOCUS: 'focus' - }; - var Selector = { - DATA_TOGGLE_CARROT: '[data-toggle^="button"]', - DATA_TOGGLE: '[data-toggle="buttons"]', - INPUT: 'input', - ACTIVE: '.active', - BUTTON: '.btn' - }; - var Event = { - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, - FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY) - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Button = - /*#__PURE__*/ - function () { - function Button(element) { - this._element = element; - } // Getters - - - var _proto = Button.prototype; - - // Public - _proto.toggle = function toggle() { - var triggerChangeEvent = true; - var addAriaPressed = true; - var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0]; - - if (rootElement) { - var input = $$$1(this._element).find(Selector.INPUT)[0]; - - if (input) { - if (input.type === 'radio') { - if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) { - triggerChangeEvent = false; - } else { - var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0]; - - if (activeElement) { - $$$1(activeElement).removeClass(ClassName.ACTIVE); - } - } - } - - if (triggerChangeEvent) { - if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) { - return; - } - - input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE); - $$$1(input).trigger('change'); - } - - input.focus(); - addAriaPressed = false; - } - } - - if (addAriaPressed) { - this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE)); - } - - if (triggerChangeEvent) { - $$$1(this._element).toggleClass(ClassName.ACTIVE); - } - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - this._element = null; - }; // Static - - - Button._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - if (!data) { - data = new Button(this); - $$$1(this).data(DATA_KEY, data); - } - - if (config === 'toggle') { - data[config](); - } - }); - }; - - _createClass(Button, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }]); - - return Button; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { - event.preventDefault(); - var button = event.target; - - if (!$$$1(button).hasClass(ClassName.BUTTON)) { - button = $$$1(button).closest(Selector.BUTTON); - } - - Button._jQueryInterface.call($$$1(button), 'toggle'); - }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) { - var button = $$$1(event.target).closest(Selector.BUTTON)[0]; - $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)); - }); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Button._jQueryInterface; - $$$1.fn[NAME].Constructor = Button; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Button._jQueryInterface; - }; - - return Button; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): carousel.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Carousel = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'carousel'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.carousel'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key - - var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key - - var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch - - var Default = { - interval: 5000, - keyboard: true, - slide: false, - pause: 'hover', - wrap: true - }; - var DefaultType = { - interval: '(number|boolean)', - keyboard: 'boolean', - slide: '(boolean|string)', - pause: '(string|boolean)', - wrap: 'boolean' - }; - var Direction = { - NEXT: 'next', - PREV: 'prev', - LEFT: 'left', - RIGHT: 'right' - }; - var Event = { - SLIDE: "slide" + EVENT_KEY, - SLID: "slid" + EVENT_KEY, - KEYDOWN: "keydown" + EVENT_KEY, - MOUSEENTER: "mouseenter" + EVENT_KEY, - MOUSELEAVE: "mouseleave" + EVENT_KEY, - TOUCHEND: "touchend" + EVENT_KEY, - LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - CAROUSEL: 'carousel', - ACTIVE: 'active', - SLIDE: 'slide', - RIGHT: 'carousel-item-right', - LEFT: 'carousel-item-left', - NEXT: 'carousel-item-next', - PREV: 'carousel-item-prev', - ITEM: 'carousel-item' - }; - var Selector = { - ACTIVE: '.active', - ACTIVE_ITEM: '.active.carousel-item', - ITEM: '.carousel-item', - NEXT_PREV: '.carousel-item-next, .carousel-item-prev', - INDICATORS: '.carousel-indicators', - DATA_SLIDE: '[data-slide], [data-slide-to]', - DATA_RIDE: '[data-ride="carousel"]' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Carousel = - /*#__PURE__*/ - function () { - function Carousel(element, config) { - this._items = null; - this._interval = null; - this._activeElement = null; - this._isPaused = false; - this._isSliding = false; - this.touchTimeout = null; - this._config = this._getConfig(config); - this._element = $$$1(element)[0]; - this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0]; - - this._addEventListeners(); - } // Getters - - - var _proto = Carousel.prototype; - - // Public - _proto.next = function next() { - if (!this._isSliding) { - this._slide(Direction.NEXT); - } - }; - - _proto.nextWhenVisible = function nextWhenVisible() { - // Don't call next when the page isn't visible - // or the carousel or its parent isn't visible - if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') { - this.next(); - } - }; - - _proto.prev = function prev() { - if (!this._isSliding) { - this._slide(Direction.PREV); - } - }; - - _proto.pause = function pause(event) { - if (!event) { - this._isPaused = true; - } - - if ($$$1(this._element).find(Selector.NEXT_PREV)[0]) { - Util.triggerTransitionEnd(this._element); - this.cycle(true); - } - - clearInterval(this._interval); - this._interval = null; - }; - - _proto.cycle = function cycle(event) { - if (!event) { - this._isPaused = false; - } - - if (this._interval) { - clearInterval(this._interval); - this._interval = null; - } - - if (this._config.interval && !this._isPaused) { - this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); - } - }; - - _proto.to = function to(index) { - var _this = this; - - this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0]; - - var activeIndex = this._getItemIndex(this._activeElement); - - if (index > this._items.length - 1 || index < 0) { - return; - } - - if (this._isSliding) { - $$$1(this._element).one(Event.SLID, function () { - return _this.to(index); - }); - return; - } - - if (activeIndex === index) { - this.pause(); - this.cycle(); - return; - } - - var direction = index > activeIndex ? Direction.NEXT : Direction.PREV; - - this._slide(direction, this._items[index]); - }; - - _proto.dispose = function dispose() { - $$$1(this._element).off(EVENT_KEY); - $$$1.removeData(this._element, DATA_KEY); - this._items = null; - this._config = null; - this._element = null; - this._interval = null; - this._isPaused = null; - this._isSliding = null; - this._activeElement = null; - this._indicatorsElement = null; - }; // Private - - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); - Util.typeCheckConfig(NAME, config, DefaultType); - return config; - }; - - _proto._addEventListeners = function _addEventListeners() { - var _this2 = this; - - if (this._config.keyboard) { - $$$1(this._element).on(Event.KEYDOWN, function (event) { - return _this2._keydown(event); - }); - } - - if (this._config.pause === 'hover') { - $$$1(this._element).on(Event.MOUSEENTER, function (event) { - return _this2.pause(event); - }).on(Event.MOUSELEAVE, function (event) { - return _this2.cycle(event); - }); - - if ('ontouchstart' in document.documentElement) { - // If it's a touch-enabled device, mouseenter/leave are fired as - // part of the mouse compatibility events on first tap - the carousel - // would stop cycling until user tapped out of it; - // here, we listen for touchend, explicitly pause the carousel - // (as if it's the second time we tap on it, mouseenter compat event - // is NOT fired) and after a timeout (to allow for mouse compatibility - // events to fire) we explicitly restart cycling - $$$1(this._element).on(Event.TOUCHEND, function () { - _this2.pause(); - - if (_this2.touchTimeout) { - clearTimeout(_this2.touchTimeout); - } - - _this2.touchTimeout = setTimeout(function (event) { - return _this2.cycle(event); - }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval); - }); - } - } - }; - - _proto._keydown = function _keydown(event) { - if (/input|textarea/i.test(event.target.tagName)) { - return; - } - - switch (event.which) { - case ARROW_LEFT_KEYCODE: - event.preventDefault(); - this.prev(); - break; - - case ARROW_RIGHT_KEYCODE: - event.preventDefault(); - this.next(); - break; - - default: - } - }; - - _proto._getItemIndex = function _getItemIndex(element) { - this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM)); - return this._items.indexOf(element); - }; - - _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === Direction.NEXT; - var isPrevDirection = direction === Direction.PREV; - - var activeIndex = this._getItemIndex(activeElement); - - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; - - if (isGoingToWrap && !this._config.wrap) { - return activeElement; - } - - var delta = direction === Direction.PREV ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; - return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - }; - - _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { - var targetIndex = this._getItemIndex(relatedTarget); - - var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]); - - var slideEvent = $$$1.Event(Event.SLIDE, { - relatedTarget: relatedTarget, - direction: eventDirectionName, - from: fromIndex, - to: targetIndex - }); - $$$1(this._element).trigger(slideEvent); - return slideEvent; - }; - - _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); - - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; - - if (nextIndicator) { - $$$1(nextIndicator).addClass(ClassName.ACTIVE); - } - } - }; - - _proto._slide = function _slide(direction, element) { - var _this3 = this; - - var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0]; - - var activeElementIndex = this._getItemIndex(activeElement); - - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); - - var nextElementIndex = this._getItemIndex(nextElement); - - var isCycling = Boolean(this._interval); - var directionalClassName; - var orderClassName; - var eventDirectionName; - - if (direction === Direction.NEXT) { - directionalClassName = ClassName.LEFT; - orderClassName = ClassName.NEXT; - eventDirectionName = Direction.LEFT; - } else { - directionalClassName = ClassName.RIGHT; - orderClassName = ClassName.PREV; - eventDirectionName = Direction.RIGHT; - } - - if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) { - this._isSliding = false; - return; - } - - var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); - - if (slideEvent.isDefaultPrevented()) { - return; - } - - if (!activeElement || !nextElement) { - // Some weirdness is happening, so we bail - return; - } - - this._isSliding = true; - - if (isCycling) { - this.pause(); - } - - this._setActiveIndicatorElement(nextElement); - - var slidEvent = $$$1.Event(Event.SLID, { - relatedTarget: nextElement, - direction: eventDirectionName, - from: activeElementIndex, - to: nextElementIndex - }); - - if ($$$1(this._element).hasClass(ClassName.SLIDE)) { - $$$1(nextElement).addClass(orderClassName); - Util.reflow(nextElement); - $$$1(activeElement).addClass(directionalClassName); - $$$1(nextElement).addClass(directionalClassName); - var transitionDuration = Util.getTransitionDurationFromElement(activeElement); - $$$1(activeElement).one(Util.TRANSITION_END, function () { - $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE); - $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName); - _this3._isSliding = false; - setTimeout(function () { - return $$$1(_this3._element).trigger(slidEvent); - }, 0); - }).emulateTransitionEnd(transitionDuration); - } else { - $$$1(activeElement).removeClass(ClassName.ACTIVE); - $$$1(nextElement).addClass(ClassName.ACTIVE); - this._isSliding = false; - $$$1(this._element).trigger(slidEvent); - } - - if (isCycling) { - this.cycle(); - } - }; // Static - - - Carousel._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - var _config = _objectSpread({}, Default, $$$1(this).data()); - - if (typeof config === 'object') { - _config = _objectSpread({}, _config, config); - } - - var action = typeof config === 'string' ? config : _config.slide; - - if (!data) { - data = new Carousel(this, _config); - $$$1(this).data(DATA_KEY, data); - } - - if (typeof config === 'number') { - data.to(config); - } else if (typeof action === 'string') { - if (typeof data[action] === 'undefined') { - throw new TypeError("No method named \"" + action + "\""); - } - - data[action](); - } else if (_config.interval) { - data.pause(); - data.cycle(); - } - }); - }; - - Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { - var selector = Util.getSelectorFromElement(this); - - if (!selector) { - return; - } - - var target = $$$1(selector)[0]; - - if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) { - return; - } - - var config = _objectSpread({}, $$$1(target).data(), $$$1(this).data()); - - var slideIndex = this.getAttribute('data-slide-to'); - - if (slideIndex) { - config.interval = false; - } - - Carousel._jQueryInterface.call($$$1(target), config); - - if (slideIndex) { - $$$1(target).data(DATA_KEY).to(slideIndex); - } - - event.preventDefault(); - }; - - _createClass(Carousel, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }]); - - return Carousel; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler); - $$$1(window).on(Event.LOAD_DATA_API, function () { - $$$1(Selector.DATA_RIDE).each(function () { - var $carousel = $$$1(this); - - Carousel._jQueryInterface.call($carousel, $carousel.data()); - }); - }); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Carousel._jQueryInterface; - $$$1.fn[NAME].Constructor = Carousel; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Carousel._jQueryInterface; - }; - - return Carousel; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): collapse.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Collapse = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'collapse'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.collapse'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var Default = { - toggle: true, - parent: '' - }; - var DefaultType = { - toggle: 'boolean', - parent: '(string|element)' - }; - var Event = { - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - SHOW: 'show', - COLLAPSE: 'collapse', - COLLAPSING: 'collapsing', - COLLAPSED: 'collapsed' - }; - var Dimension = { - WIDTH: 'width', - HEIGHT: 'height' - }; - var Selector = { - ACTIVES: '.show, .collapsing', - DATA_TOGGLE: '[data-toggle="collapse"]' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Collapse = - /*#__PURE__*/ - function () { - function Collapse(element, config) { - this._isTransitioning = false; - this._element = element; - this._config = this._getConfig(config); - this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]"))); - var tabToggles = $$$1(Selector.DATA_TOGGLE); - - for (var i = 0; i < tabToggles.length; i++) { - var elem = tabToggles[i]; - var selector = Util.getSelectorFromElement(elem); - - if (selector !== null && $$$1(selector).filter(element).length > 0) { - this._selector = selector; - - this._triggerArray.push(elem); - } - } - - this._parent = this._config.parent ? this._getParent() : null; - - if (!this._config.parent) { - this._addAriaAndCollapsedClass(this._element, this._triggerArray); - } - - if (this._config.toggle) { - this.toggle(); - } - } // Getters - - - var _proto = Collapse.prototype; - - // Public - _proto.toggle = function toggle() { - if ($$$1(this._element).hasClass(ClassName.SHOW)) { - this.hide(); - } else { - this.show(); - } - }; - - _proto.show = function show() { - var _this = this; - - if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) { - return; - } - - var actives; - var activesData; - - if (this._parent) { - actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]")); - - if (actives.length === 0) { - actives = null; - } - } - - if (actives) { - activesData = $$$1(actives).not(this._selector).data(DATA_KEY); - - if (activesData && activesData._isTransitioning) { - return; - } - } - - var startEvent = $$$1.Event(Event.SHOW); - $$$1(this._element).trigger(startEvent); - - if (startEvent.isDefaultPrevented()) { - return; - } - - if (actives) { - Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide'); - - if (!activesData) { - $$$1(actives).data(DATA_KEY, null); - } - } - - var dimension = this._getDimension(); - - $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING); - this._element.style[dimension] = 0; - - if (this._triggerArray.length > 0) { - $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true); - } - - this.setTransitioning(true); - - var complete = function complete() { - $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW); - _this._element.style[dimension] = ''; - - _this.setTransitioning(false); - - $$$1(_this._element).trigger(Event.SHOWN); - }; - - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this2 = this; - - if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) { - return; - } - - var startEvent = $$$1.Event(Event.HIDE); - $$$1(this._element).trigger(startEvent); - - if (startEvent.isDefaultPrevented()) { - return; - } - - var dimension = this._getDimension(); - - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; - Util.reflow(this._element); - $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW); - - if (this._triggerArray.length > 0) { - for (var i = 0; i < this._triggerArray.length; i++) { - var trigger = this._triggerArray[i]; - var selector = Util.getSelectorFromElement(trigger); - - if (selector !== null) { - var $elem = $$$1(selector); - - if (!$elem.hasClass(ClassName.SHOW)) { - $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false); - } - } - } - } - - this.setTransitioning(true); - - var complete = function complete() { - _this2.setTransitioning(false); - - $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN); - }; - - this._element.style[dimension] = ''; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - }; - - _proto.setTransitioning = function setTransitioning(isTransitioning) { - this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - this._config = null; - this._parent = null; - this._element = null; - this._triggerArray = null; - this._isTransitioning = null; - }; // Private - - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); - config.toggle = Boolean(config.toggle); // Coerce string values - - Util.typeCheckConfig(NAME, config, DefaultType); - return config; - }; - - _proto._getDimension = function _getDimension() { - var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH); - return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this3 = this; - - var parent = null; - - if (Util.isElement(this._config.parent)) { - parent = this._config.parent; // It's a jQuery object - - if (typeof this._config.parent.jquery !== 'undefined') { - parent = this._config.parent[0]; - } - } else { - parent = $$$1(this._config.parent)[0]; - } - - var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; - $$$1(parent).find(selector).each(function (i, element) { - _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); - }); - return parent; - }; - - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - if (element) { - var isOpen = $$$1(element).hasClass(ClassName.SHOW); - - if (triggerArray.length > 0) { - $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen); - } - } - }; // Static - - - Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = Util.getSelectorFromElement(element); - return selector ? $$$1(selector)[0] : null; - }; - - Collapse._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var $this = $$$1(this); - var data = $this.data(DATA_KEY); - - var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config); - - if (!data && _config.toggle && /show|hide/.test(config)) { - _config.toggle = false; - } - - if (!data) { - data = new Collapse(this, _config); - $this.data(DATA_KEY, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Collapse, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }]); - - return Collapse; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - // preventDefault only for elements (which change the URL) not inside the collapsible element - if (event.currentTarget.tagName === 'A') { - event.preventDefault(); - } - - var $trigger = $$$1(this); - var selector = Util.getSelectorFromElement(this); - $$$1(selector).each(function () { - var $target = $$$1(this); - var data = $target.data(DATA_KEY); - var config = data ? 'toggle' : $trigger.data(); - - Collapse._jQueryInterface.call($target, config); - }); - }); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Collapse._jQueryInterface; - $$$1.fn[NAME].Constructor = Collapse; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Collapse._jQueryInterface; - }; - - return Collapse; - }($); - - /**! - * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.14.1 - * @license - * Copyright (c) 2016 Federico Zivolo and contributors - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; - var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; - var timeoutDuration = 0; - for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { - if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { - timeoutDuration = 1; - break; - } - } - - function microtaskDebounce(fn) { - var called = false; - return function () { - if (called) { - return; - } - called = true; - window.Promise.resolve().then(function () { - called = false; - fn(); - }); - }; - } - - function taskDebounce(fn) { - var scheduled = false; - return function () { - if (!scheduled) { - scheduled = true; - setTimeout(function () { - scheduled = false; - fn(); - }, timeoutDuration); - } - }; - } - - var supportsMicroTasks = isBrowser && window.Promise; - - /** - * Create a debounced version of a method, that's asynchronously deferred - * but called in the minimum time possible. - * - * @method - * @memberof Popper.Utils - * @argument {Function} fn - * @returns {Function} - */ - var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; - - /** - * Check if the given variable is a function - * @method - * @memberof Popper.Utils - * @argument {Any} functionToCheck - variable to check - * @returns {Boolean} answer to: is a function? - */ - function isFunction(functionToCheck) { - var getType = {}; - return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; - } - - /** - * Get CSS computed property of the given element - * @method - * @memberof Popper.Utils - * @argument {Eement} element - * @argument {String} property - */ - function getStyleComputedProperty(element, property) { - if (element.nodeType !== 1) { - return []; - } - // NOTE: 1 DOM access here - var css = getComputedStyle(element, null); - return property ? css[property] : css; - } - - /** - * Returns the parentNode or the host of the element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} parent - */ - function getParentNode(element) { - if (element.nodeName === 'HTML') { - return element; - } - return element.parentNode || element.host; - } - - /** - * Returns the scrolling parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} scroll parent - */ - function getScrollParent(element) { - // Return body, `getScroll` will take care to get the correct `scrollTop` from it - if (!element) { - return document.body; - } - - switch (element.nodeName) { - case 'HTML': - case 'BODY': - return element.ownerDocument.body; - case '#document': - return element.body; - } - - // Firefox want us to check `-x` and `-y` variations as well - - var _getStyleComputedProp = getStyleComputedProperty(element), - overflow = _getStyleComputedProp.overflow, - overflowX = _getStyleComputedProp.overflowX, - overflowY = _getStyleComputedProp.overflowY; - - if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { - return element; - } - - return getScrollParent(getParentNode(element)); - } - - /** - * Tells if you are running Internet Explorer - * @method - * @memberof Popper.Utils - * @argument {number} version to check - * @returns {Boolean} isIE - */ - var cache = {}; - - var isIE = function () { - var version = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'all'; - - version = version.toString(); - if (cache.hasOwnProperty(version)) { - return cache[version]; - } - switch (version) { - case '11': - cache[version] = navigator.userAgent.indexOf('Trident') !== -1; - break; - case '10': - cache[version] = navigator.appVersion.indexOf('MSIE 10') !== -1; - break; - case 'all': - cache[version] = navigator.userAgent.indexOf('Trident') !== -1 || navigator.userAgent.indexOf('MSIE') !== -1; - break; - } - - //Set IE - cache.all = cache.all || Object.keys(cache).some(function (key) { - return cache[key]; - }); - return cache[version]; - }; - - /** - * Returns the offset parent of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} offset parent - */ - function getOffsetParent(element) { - if (!element) { - return document.documentElement; - } - - var noOffsetParent = isIE(10) ? document.body : null; - - // NOTE: 1 DOM access here - var offsetParent = element.offsetParent; - // Skip hidden elements which don't have an offsetParent - while (offsetParent === noOffsetParent && element.nextElementSibling) { - offsetParent = (element = element.nextElementSibling).offsetParent; - } - - var nodeName = offsetParent && offsetParent.nodeName; - - if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { - return element ? element.ownerDocument.documentElement : document.documentElement; - } - - // .offsetParent will return the closest TD or TABLE in case - // no offsetParent is present, I hate this job... - if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { - return getOffsetParent(offsetParent); - } - - return offsetParent; - } - - function isOffsetContainer(element) { - var nodeName = element.nodeName; - - if (nodeName === 'BODY') { - return false; - } - return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; - } - - /** - * Finds the root node (document, shadowDOM root) of the given element - * @method - * @memberof Popper.Utils - * @argument {Element} node - * @returns {Element} root node - */ - function getRoot(node) { - if (node.parentNode !== null) { - return getRoot(node.parentNode); - } - - return node; - } - - /** - * Finds the offset parent common to the two provided nodes - * @method - * @memberof Popper.Utils - * @argument {Element} element1 - * @argument {Element} element2 - * @returns {Element} common offset parent - */ - function findCommonOffsetParent(element1, element2) { - // This check is needed to avoid errors in case one of the elements isn't defined for any reason - if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { - return document.documentElement; - } - - // Here we make sure to give as "start" the element that comes first in the DOM - var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; - var start = order ? element1 : element2; - var end = order ? element2 : element1; - - // Get common ancestor container - var range = document.createRange(); - range.setStart(start, 0); - range.setEnd(end, 0); - var commonAncestorContainer = range.commonAncestorContainer; - - // Both nodes are inside #document - - if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { - if (isOffsetContainer(commonAncestorContainer)) { - return commonAncestorContainer; - } - - return getOffsetParent(commonAncestorContainer); - } - - // one of the nodes is inside shadowDOM, find which one - var element1root = getRoot(element1); - if (element1root.host) { - return findCommonOffsetParent(element1root.host, element2); - } else { - return findCommonOffsetParent(element1, getRoot(element2).host); - } - } - - /** - * Gets the scroll value of the given element in the given side (top and left) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {String} side `top` or `left` - * @returns {number} amount of scrolled pixels - */ - function getScroll(element) { - var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; - - var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; - var nodeName = element.nodeName; - - if (nodeName === 'BODY' || nodeName === 'HTML') { - var html = element.ownerDocument.documentElement; - var scrollingElement = element.ownerDocument.scrollingElement || html; - return scrollingElement[upperSide]; - } - - return element[upperSide]; - } - - /* - * Sum or subtract the element scroll values (left and top) from a given rect object - * @method - * @memberof Popper.Utils - * @param {Object} rect - Rect object you want to change - * @param {HTMLElement} element - The element from the function reads the scroll values - * @param {Boolean} subtract - set to true if you want to subtract the scroll values - * @return {Object} rect - The modifier rect object - */ - function includeScroll(rect, element) { - var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - var modifier = subtract ? -1 : 1; - rect.top += scrollTop * modifier; - rect.bottom += scrollTop * modifier; - rect.left += scrollLeft * modifier; - rect.right += scrollLeft * modifier; - return rect; - } - - /* - * Helper to detect borders of a given element - * @method - * @memberof Popper.Utils - * @param {CSSStyleDeclaration} styles - * Result of `getStyleComputedProperty` on the given element - * @param {String} axis - `x` or `y` - * @return {number} borders - The borders size of the given axis - */ - - function getBordersSize(styles, axis) { - var sideA = axis === 'x' ? 'Left' : 'Top'; - var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - - return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); - } - - function getSize(axis, body, html, computedStyle) { - return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0); - } - - function getWindowSizes() { - var body = document.body; - var html = document.documentElement; - var computedStyle = isIE(10) && getComputedStyle(html); - - return { - height: getSize('Height', body, html, computedStyle), - width: getSize('Width', body, html, computedStyle) - }; - } - - var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - - var createClass = 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); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - - - - - var defineProperty = function (obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; - }; - - var _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; - }; - - /** - * Given element offsets, generate an output similar to getBoundingClientRect - * @method - * @memberof Popper.Utils - * @argument {Object} offsets - * @returns {Object} ClientRect like output - */ - function getClientRect(offsets) { - return _extends({}, offsets, { - right: offsets.left + offsets.width, - bottom: offsets.top + offsets.height - }); - } - - /** - * Get bounding client rect of given element - * @method - * @memberof Popper.Utils - * @param {HTMLElement} element - * @return {Object} client rect - */ - function getBoundingClientRect(element) { - var rect = {}; - - // IE10 10 FIX: Please, don't ask, the element isn't - // considered in DOM in some circumstances... - // This isn't reproducible in IE10 compatibility mode of IE11 - try { - if (isIE(10)) { - rect = element.getBoundingClientRect(); - var scrollTop = getScroll(element, 'top'); - var scrollLeft = getScroll(element, 'left'); - rect.top += scrollTop; - rect.left += scrollLeft; - rect.bottom += scrollTop; - rect.right += scrollLeft; - } else { - rect = element.getBoundingClientRect(); - } - } catch (e) {} - - var result = { - left: rect.left, - top: rect.top, - width: rect.right - rect.left, - height: rect.bottom - rect.top - }; - - // subtract scrollbar size from sizes - var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {}; - var width = sizes.width || element.clientWidth || result.right - result.left; - var height = sizes.height || element.clientHeight || result.bottom - result.top; - - var horizScrollbar = element.offsetWidth - width; - var vertScrollbar = element.offsetHeight - height; - - // if an hypothetical scrollbar is detected, we must be sure it's not a `border` - // we make this check conditional for performance reasons - if (horizScrollbar || vertScrollbar) { - var styles = getStyleComputedProperty(element); - horizScrollbar -= getBordersSize(styles, 'x'); - vertScrollbar -= getBordersSize(styles, 'y'); - - result.width -= horizScrollbar; - result.height -= vertScrollbar; - } - - return getClientRect(result); - } - - function getOffsetRectRelativeToArbitraryNode(children, parent) { - var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - var isIE10 = isIE(10); - var isHTML = parent.nodeName === 'HTML'; - var childrenRect = getBoundingClientRect(children); - var parentRect = getBoundingClientRect(parent); - var scrollParent = getScrollParent(children); - - var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth, 10); - var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); - - // In cases where the parent is fixed, we must ignore negative scroll in offset calc - if (fixedPosition && parent.nodeName === 'HTML') { - parentRect.top = Math.max(parentRect.top, 0); - parentRect.left = Math.max(parentRect.left, 0); - } - var offsets = getClientRect({ - top: childrenRect.top - parentRect.top - borderTopWidth, - left: childrenRect.left - parentRect.left - borderLeftWidth, - width: childrenRect.width, - height: childrenRect.height - }); - offsets.marginTop = 0; - offsets.marginLeft = 0; - - // Subtract margins of documentElement in case it's being used as parent - // we do this only on HTML because it's the only element that behaves - // differently when margins are applied to it. The margins are included in - // the box of the documentElement, in the other cases not. - if (!isIE10 && isHTML) { - var marginTop = parseFloat(styles.marginTop, 10); - var marginLeft = parseFloat(styles.marginLeft, 10); - - offsets.top -= borderTopWidth - marginTop; - offsets.bottom -= borderTopWidth - marginTop; - offsets.left -= borderLeftWidth - marginLeft; - offsets.right -= borderLeftWidth - marginLeft; - - // Attach marginTop and marginLeft because in some circumstances we may need them - offsets.marginTop = marginTop; - offsets.marginLeft = marginLeft; - } - - if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { - offsets = includeScroll(offsets, parent); - } - - return offsets; - } - - function getViewportOffsetRectRelativeToArtbitraryNode(element) { - var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var html = element.ownerDocument.documentElement; - var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); - var width = Math.max(html.clientWidth, window.innerWidth || 0); - var height = Math.max(html.clientHeight, window.innerHeight || 0); - - var scrollTop = !excludeScroll ? getScroll(html) : 0; - var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; - - var offset = { - top: scrollTop - relativeOffset.top + relativeOffset.marginTop, - left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, - width: width, - height: height - }; - - return getClientRect(offset); - } - - /** - * Check if the given element is fixed or is inside a fixed parent - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @argument {Element} customContainer - * @returns {Boolean} answer to "isFixed?" - */ - function isFixed(element) { - var nodeName = element.nodeName; - if (nodeName === 'BODY' || nodeName === 'HTML') { - return false; - } - if (getStyleComputedProperty(element, 'position') === 'fixed') { - return true; - } - return isFixed(getParentNode(element)); - } - - /** - * Finds the first parent of an element that has a transformed property defined - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Element} first transformed parent or documentElement - */ - - function getFixedPositionOffsetParent(element) { - // This check is needed to avoid errors in case one of the elements isn't defined for any reason - if (!element || !element.parentElement || isIE()) { - return document.documentElement; - } - var el = element.parentElement; - while (el && getStyleComputedProperty(el, 'transform') === 'none') { - el = el.parentElement; - } - return el || document.documentElement; - } - - /** - * Computed the boundaries limits and return them - * @method - * @memberof Popper.Utils - * @param {HTMLElement} popper - * @param {HTMLElement} reference - * @param {number} padding - * @param {HTMLElement} boundariesElement - Element used to define the boundaries - * @param {Boolean} fixedPosition - Is in fixed position mode - * @returns {Object} Coordinates of the boundaries - */ - function getBoundaries(popper, reference, padding, boundariesElement) { - var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; - - // NOTE: 1 DOM access here - - var boundaries = { top: 0, left: 0 }; - var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); - - // Handle viewport case - if (boundariesElement === 'viewport') { - boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); - } else { - // Handle other cases based on DOM element used as boundaries - var boundariesNode = void 0; - if (boundariesElement === 'scrollParent') { - boundariesNode = getScrollParent(getParentNode(reference)); - if (boundariesNode.nodeName === 'BODY') { - boundariesNode = popper.ownerDocument.documentElement; - } - } else if (boundariesElement === 'window') { - boundariesNode = popper.ownerDocument.documentElement; - } else { - boundariesNode = boundariesElement; - } - - var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); - - // In case of HTML, we need a different computation - if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { - var _getWindowSizes = getWindowSizes(), - height = _getWindowSizes.height, - width = _getWindowSizes.width; - - boundaries.top += offsets.top - offsets.marginTop; - boundaries.bottom = height + offsets.top; - boundaries.left += offsets.left - offsets.marginLeft; - boundaries.right = width + offsets.left; - } else { - // for all the other DOM elements, this one is good - boundaries = offsets; - } - } - - // Add paddings - boundaries.left += padding; - boundaries.top += padding; - boundaries.right -= padding; - boundaries.bottom -= padding; - - return boundaries; - } - - function getArea(_ref) { - var width = _ref.width, - height = _ref.height; - - return width * height; - } - - /** - * Utility used to transform the `auto` placement to the placement with more - * available space. - * @method - * @memberof Popper.Utils - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { - var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; - - if (placement.indexOf('auto') === -1) { - return placement; - } - - var boundaries = getBoundaries(popper, reference, padding, boundariesElement); - - var rects = { - top: { - width: boundaries.width, - height: refRect.top - boundaries.top - }, - right: { - width: boundaries.right - refRect.right, - height: boundaries.height - }, - bottom: { - width: boundaries.width, - height: boundaries.bottom - refRect.bottom - }, - left: { - width: refRect.left - boundaries.left, - height: boundaries.height - } - }; - - var sortedAreas = Object.keys(rects).map(function (key) { - return _extends({ - key: key - }, rects[key], { - area: getArea(rects[key]) - }); - }).sort(function (a, b) { - return b.area - a.area; - }); - - var filteredAreas = sortedAreas.filter(function (_ref2) { - var width = _ref2.width, - height = _ref2.height; - return width >= popper.clientWidth && height >= popper.clientHeight; - }); - - var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; - - var variation = placement.split('-')[1]; - - return computedPlacement + (variation ? '-' + variation : ''); - } - - /** - * Get offsets to the reference element - * @method - * @memberof Popper.Utils - * @param {Object} state - * @param {Element} popper - the popper element - * @param {Element} reference - the reference element (the popper will be relative to this) - * @param {Element} fixedPosition - is in fixed position mode - * @returns {Object} An object containing the offsets which will be applied to the popper - */ - function getReferenceOffsets(state, popper, reference) { - var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); - return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); - } - - /** - * Get the outer sizes of the given element (offset size + margins) - * @method - * @memberof Popper.Utils - * @argument {Element} element - * @returns {Object} object containing width and height properties - */ - function getOuterSizes(element) { - var styles = getComputedStyle(element); - var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom); - var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight); - var result = { - width: element.offsetWidth + y, - height: element.offsetHeight + x - }; - return result; - } - - /** - * Get the opposite placement of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement - * @returns {String} flipped placement - */ - function getOppositePlacement(placement) { - var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' }; - return placement.replace(/left|right|bottom|top/g, function (matched) { - return hash[matched]; - }); - } - - /** - * Get offsets to the popper - * @method - * @memberof Popper.Utils - * @param {Object} position - CSS position the Popper will get applied - * @param {HTMLElement} popper - the popper element - * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) - * @param {String} placement - one of the valid placement options - * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper - */ - function getPopperOffsets(popper, referenceOffsets, placement) { - placement = placement.split('-')[0]; - - // Get popper node sizes - var popperRect = getOuterSizes(popper); - - // Add position, width and height to our offsets object - var popperOffsets = { - width: popperRect.width, - height: popperRect.height - }; - - // depending by the popper placement we have to compute its offsets slightly differently - var isHoriz = ['right', 'left'].indexOf(placement) !== -1; - var mainSide = isHoriz ? 'top' : 'left'; - var secondarySide = isHoriz ? 'left' : 'top'; - var measurement = isHoriz ? 'height' : 'width'; - var secondaryMeasurement = !isHoriz ? 'height' : 'width'; - - popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; - if (placement === secondarySide) { - popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; - } else { - popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; - } - - return popperOffsets; - } - - /** - * Mimics the `find` method of Array - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ - function find(arr, check) { - // use native find if supported - if (Array.prototype.find) { - return arr.find(check); - } - - // use `filter` to obtain the same behavior of `find` - return arr.filter(check)[0]; - } - - /** - * Return the index of the matching object - * @method - * @memberof Popper.Utils - * @argument {Array} arr - * @argument prop - * @argument value - * @returns index or -1 - */ - function findIndex(arr, prop, value) { - // use native findIndex if supported - if (Array.prototype.findIndex) { - return arr.findIndex(function (cur) { - return cur[prop] === value; - }); - } - - // use `find` + `indexOf` if `findIndex` isn't supported - var match = find(arr, function (obj) { - return obj[prop] === value; - }); - return arr.indexOf(match); - } - - /** - * Loop trough the list of modifiers and run them in order, - * each of them will then edit the data object. - * @method - * @memberof Popper.Utils - * @param {dataObject} data - * @param {Array} modifiers - * @param {String} ends - Optional modifier name used as stopper - * @returns {dataObject} - */ - function runModifiers(modifiers, data, ends) { - var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); - - modifiersToRun.forEach(function (modifier) { - if (modifier['function']) { - // eslint-disable-line dot-notation - console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); - } - var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation - if (modifier.enabled && isFunction(fn)) { - // Add properties to offsets to make them a complete clientRect object - // we do this before each modifier to make sure the previous one doesn't - // mess with these values - data.offsets.popper = getClientRect(data.offsets.popper); - data.offsets.reference = getClientRect(data.offsets.reference); - - data = fn(data, modifier); - } - }); - - return data; - } - - /** - * Updates the position of the popper, computing the new offsets and applying - * the new style.
          - * Prefer `scheduleUpdate` over `update` because of performance reasons. - * @method - * @memberof Popper - */ - function update() { - // if popper is destroyed, don't perform any further update - if (this.state.isDestroyed) { - return; - } - - var data = { - instance: this, - styles: {}, - arrowStyles: {}, - attributes: {}, - flipped: false, - offsets: {} - }; - - // compute reference element offsets - data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); - - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); - - // store the computed placement inside `originalPlacement` - data.originalPlacement = data.placement; - - data.positionFixed = this.options.positionFixed; - - // compute the popper offsets - data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); - data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; - - // run the modifiers - data = runModifiers(this.modifiers, data); - - // the first `update` will call `onCreate` callback - // the other ones will call `onUpdate` callback - if (!this.state.isCreated) { - this.state.isCreated = true; - this.options.onCreate(data); - } else { - this.options.onUpdate(data); - } - } - - /** - * Helper used to know if the given modifier is enabled. - * @method - * @memberof Popper.Utils - * @returns {Boolean} - */ - function isModifierEnabled(modifiers, modifierName) { - return modifiers.some(function (_ref) { - var name = _ref.name, - enabled = _ref.enabled; - return enabled && name === modifierName; - }); - } - - /** - * Get the prefixed supported property name - * @method - * @memberof Popper.Utils - * @argument {String} property (camelCase) - * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) - */ - function getSupportedPropertyName(property) { - var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; - var upperProp = property.charAt(0).toUpperCase() + property.slice(1); - - for (var i = 0; i < prefixes.length; i++) { - var prefix = prefixes[i]; - var toCheck = prefix ? '' + prefix + upperProp : property; - if (typeof document.body.style[toCheck] !== 'undefined') { - return toCheck; - } - } - return null; - } - - /** - * Destroy the popper - * @method - * @memberof Popper - */ - function destroy() { - this.state.isDestroyed = true; - - // touch DOM only if `applyStyle` modifier is enabled - if (isModifierEnabled(this.modifiers, 'applyStyle')) { - this.popper.removeAttribute('x-placement'); - this.popper.style.position = ''; - this.popper.style.top = ''; - this.popper.style.left = ''; - this.popper.style.right = ''; - this.popper.style.bottom = ''; - this.popper.style.willChange = ''; - this.popper.style[getSupportedPropertyName('transform')] = ''; - } - - this.disableEventListeners(); - - // remove the popper if user explicity asked for the deletion on destroy - // do not use `remove` because IE11 doesn't support it - if (this.options.removeOnDestroy) { - this.popper.parentNode.removeChild(this.popper); - } - return this; - } - - /** - * Get the window associated with the element - * @argument {Element} element - * @returns {Window} - */ - function getWindow(element) { - var ownerDocument = element.ownerDocument; - return ownerDocument ? ownerDocument.defaultView : window; - } - - function attachToScrollParents(scrollParent, event, callback, scrollParents) { - var isBody = scrollParent.nodeName === 'BODY'; - var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; - target.addEventListener(event, callback, { passive: true }); - - if (!isBody) { - attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); - } - scrollParents.push(target); - } - - /** - * Setup needed event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ - function setupEventListeners(reference, options, state, updateBound) { - // Resize event listener on window - state.updateBound = updateBound; - getWindow(reference).addEventListener('resize', state.updateBound, { passive: true }); - - // Scroll event listener on scroll parents - var scrollElement = getScrollParent(reference); - attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); - state.scrollElement = scrollElement; - state.eventsEnabled = true; - - return state; - } - - /** - * It will add resize/scroll events and start recalculating - * position of the popper element when they are triggered. - * @method - * @memberof Popper - */ - function enableEventListeners() { - if (!this.state.eventsEnabled) { - this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); - } - } - - /** - * Remove event listeners used to update the popper position - * @method - * @memberof Popper.Utils - * @private - */ - function removeEventListeners(reference, state) { - // Remove resize event listener on window - getWindow(reference).removeEventListener('resize', state.updateBound); - - // Remove scroll event listener on scroll parents - state.scrollParents.forEach(function (target) { - target.removeEventListener('scroll', state.updateBound); - }); - - // Reset state - state.updateBound = null; - state.scrollParents = []; - state.scrollElement = null; - state.eventsEnabled = false; - return state; - } - - /** - * It will remove resize/scroll events and won't recalculate popper position - * when they are triggered. It also won't trigger onUpdate callback anymore, - * unless you call `update` method manually. - * @method - * @memberof Popper - */ - function disableEventListeners() { - if (this.state.eventsEnabled) { - cancelAnimationFrame(this.scheduleUpdate); - this.state = removeEventListeners(this.reference, this.state); - } - } - - /** - * Tells if a given input is a number - * @method - * @memberof Popper.Utils - * @param {*} input to check - * @return {Boolean} - */ - function isNumeric(n) { - return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); - } - - /** - * Set the style to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the style to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ - function setStyles(element, styles) { - Object.keys(styles).forEach(function (prop) { - var unit = ''; - // add unit if the value is numeric and is one of the following - if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { - unit = 'px'; - } - element.style[prop] = styles[prop] + unit; - }); - } - - /** - * Set the attributes to the given popper - * @method - * @memberof Popper.Utils - * @argument {Element} element - Element to apply the attributes to - * @argument {Object} styles - * Object with a list of properties and values which will be applied to the element - */ - function setAttributes(element, attributes) { - Object.keys(attributes).forEach(function (prop) { - var value = attributes[prop]; - if (value !== false) { - element.setAttribute(prop, attributes[prop]); - } else { - element.removeAttribute(prop); - } - }); - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} data.styles - List of style properties - values to apply to popper element - * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The same data object - */ - function applyStyle(data) { - // any property present in `data.styles` will be applied to the popper, - // in this way we can make the 3rd party modifiers add custom styles to it - // Be aware, modifiers could override the properties defined in the previous - // lines of this modifier! - setStyles(data.instance.popper, data.styles); - - // any property present in `data.attributes` will be applied to the popper, - // they will be set as HTML attributes of the element - setAttributes(data.instance.popper, data.attributes); - - // if arrowElement is defined and arrowStyles has some properties - if (data.arrowElement && Object.keys(data.arrowStyles).length) { - setStyles(data.arrowElement, data.arrowStyles); - } - - return data; - } - - /** - * Set the x-placement attribute before everything else because it could be used - * to add margins to the popper margins needs to be calculated to get the - * correct popper offsets. - * @method - * @memberof Popper.modifiers - * @param {HTMLElement} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as popper - * @param {Object} options - Popper.js options - */ - function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { - // compute reference element offsets - var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); - - // compute auto placement, store placement inside the data object, - // modifiers will be able to edit `placement` if needed - // and refer to originalPlacement to know the original value - var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); - - popper.setAttribute('x-placement', placement); - - // Apply `position` to popper before anything else because - // without the position applied we can't guarantee correct computations - setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' }); - - return options; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function computeStyle(data, options) { - var x = options.x, - y = options.y; - var popper = data.offsets.popper; - - // Remove this legacy support in Popper.js v2 - - var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'applyStyle'; - }).gpuAcceleration; - if (legacyGpuAccelerationOption !== undefined) { - console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); - } - var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; - - var offsetParent = getOffsetParent(data.instance.popper); - var offsetParentRect = getBoundingClientRect(offsetParent); - - // Styles - var styles = { - position: popper.position - }; - - // floor sides to avoid blurry text - var offsets = { - left: Math.floor(popper.left), - top: Math.floor(popper.top), - bottom: Math.floor(popper.bottom), - right: Math.floor(popper.right) - }; - - var sideA = x === 'bottom' ? 'top' : 'bottom'; - var sideB = y === 'right' ? 'left' : 'right'; - - // if gpuAcceleration is set to `true` and transform is supported, - // we use `translate3d` to apply the position to the popper we - // automatically use the supported prefixed version if needed - var prefixedProperty = getSupportedPropertyName('transform'); - - // now, let's make a step back and look at this code closely (wtf?) - // If the content of the popper grows once it's been positioned, it - // may happen that the popper gets misplaced because of the new content - // overflowing its reference element - // To avoid this problem, we provide two options (x and y), which allow - // the consumer to define the offset origin. - // If we position a popper on top of a reference element, we can set - // `x` to `top` to make the popper grow towards its top instead of - // its bottom. - var left = void 0, - top = void 0; - if (sideA === 'bottom') { - top = -offsetParentRect.height + offsets.bottom; - } else { - top = offsets.top; - } - if (sideB === 'right') { - left = -offsetParentRect.width + offsets.right; - } else { - left = offsets.left; - } - if (gpuAcceleration && prefixedProperty) { - styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; - styles[sideA] = 0; - styles[sideB] = 0; - styles.willChange = 'transform'; - } else { - // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties - var invertTop = sideA === 'bottom' ? -1 : 1; - var invertLeft = sideB === 'right' ? -1 : 1; - styles[sideA] = top * invertTop; - styles[sideB] = left * invertLeft; - styles.willChange = sideA + ', ' + sideB; - } - - // Attributes - var attributes = { - 'x-placement': data.placement - }; - - // Update `data` attributes, styles and arrowStyles - data.attributes = _extends({}, attributes, data.attributes); - data.styles = _extends({}, styles, data.styles); - data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); - - return data; - } - - /** - * Helper used to know if the given modifier depends from another one.
          - * It checks if the needed modifier is listed and enabled. - * @method - * @memberof Popper.Utils - * @param {Array} modifiers - list of modifiers - * @param {String} requestingName - name of requesting modifier - * @param {String} requestedName - name of requested modifier - * @returns {Boolean} - */ - function isModifierRequired(modifiers, requestingName, requestedName) { - var requesting = find(modifiers, function (_ref) { - var name = _ref.name; - return name === requestingName; - }); - - var isRequired = !!requesting && modifiers.some(function (modifier) { - return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; - }); - - if (!isRequired) { - var _requesting = '`' + requestingName + '`'; - var requested = '`' + requestedName + '`'; - console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); - } - return isRequired; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function arrow(data, options) { - var _data$offsets$arrow; - - // arrow depends on keepTogether in order to work - if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { - return data; - } - - var arrowElement = options.element; - - // if arrowElement is a string, suppose it's a CSS selector - if (typeof arrowElement === 'string') { - arrowElement = data.instance.popper.querySelector(arrowElement); - - // if arrowElement is not found, don't run the modifier - if (!arrowElement) { - return data; - } - } else { - // if the arrowElement isn't a query selector we must check that the - // provided DOM node is child of its popper node - if (!data.instance.popper.contains(arrowElement)) { - console.warn('WARNING: `arrow.element` must be child of its popper element!'); - return data; - } - } - - var placement = data.placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var isVertical = ['left', 'right'].indexOf(placement) !== -1; - - var len = isVertical ? 'height' : 'width'; - var sideCapitalized = isVertical ? 'Top' : 'Left'; - var side = sideCapitalized.toLowerCase(); - var altSide = isVertical ? 'left' : 'top'; - var opSide = isVertical ? 'bottom' : 'right'; - var arrowElementSize = getOuterSizes(arrowElement)[len]; - - // - // extends keepTogether behavior making sure the popper and its - // reference have enough pixels in conjuction - // - - // top/left side - if (reference[opSide] - arrowElementSize < popper[side]) { - data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); - } - // bottom/right side - if (reference[side] + arrowElementSize > popper[opSide]) { - data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; - } - data.offsets.popper = getClientRect(data.offsets.popper); - - // compute center of the popper - var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; - - // Compute the sideValue using the updated popper offsets - // take popper margin in account because we don't have this info available - var css = getStyleComputedProperty(data.instance.popper); - var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); - var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; - - // prevent arrowElement from being placed not contiguously to its popper - sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); - - data.arrowElement = arrowElement; - data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); - - return data; - } - - /** - * Get the opposite placement variation of the given one - * @method - * @memberof Popper.Utils - * @argument {String} placement variation - * @returns {String} flipped placement variation - */ - function getOppositeVariation(variation) { - if (variation === 'end') { - return 'start'; - } else if (variation === 'start') { - return 'end'; - } - return variation; - } - - /** - * List of accepted placements to use as values of the `placement` option.
          - * Valid placements are: - * - `auto` - * - `top` - * - `right` - * - `bottom` - * - `left` - * - * Each placement can have a variation from this list: - * - `-start` - * - `-end` - * - * Variations are interpreted easily if you think of them as the left to right - * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` - * is right.
          - * Vertically (`left` and `right`), `start` is top and `end` is bottom. - * - * Some valid examples are: - * - `top-end` (on top of reference, right aligned) - * - `right-start` (on right of reference, top aligned) - * - `bottom` (on bottom, centered) - * - `auto-right` (on the side with more space available, alignment depends by placement) - * - * @static - * @type {Array} - * @enum {String} - * @readonly - * @method placements - * @memberof Popper - */ - var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; - - // Get rid of `auto` `auto-start` and `auto-end` - var validPlacements = placements.slice(3); - - /** - * Given an initial placement, returns all the subsequent placements - * clockwise (or counter-clockwise). - * - * @method - * @memberof Popper.Utils - * @argument {String} placement - A valid placement (it accepts variations) - * @argument {Boolean} counter - Set to true to walk the placements counterclockwise - * @returns {Array} placements including their variations - */ - function clockwise(placement) { - var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - var index = validPlacements.indexOf(placement); - var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); - return counter ? arr.reverse() : arr; - } - - var BEHAVIORS = { - FLIP: 'flip', - CLOCKWISE: 'clockwise', - COUNTERCLOCKWISE: 'counterclockwise' - }; - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function flip(data, options) { - // if `inner` modifier is enabled, we can't use the `flip` modifier - if (isModifierEnabled(data.instance.modifiers, 'inner')) { - return data; - } - - if (data.flipped && data.placement === data.originalPlacement) { - // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides - return data; - } - - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); - - var placement = data.placement.split('-')[0]; - var placementOpposite = getOppositePlacement(placement); - var variation = data.placement.split('-')[1] || ''; - - var flipOrder = []; - - switch (options.behavior) { - case BEHAVIORS.FLIP: - flipOrder = [placement, placementOpposite]; - break; - case BEHAVIORS.CLOCKWISE: - flipOrder = clockwise(placement); - break; - case BEHAVIORS.COUNTERCLOCKWISE: - flipOrder = clockwise(placement, true); - break; - default: - flipOrder = options.behavior; - } - - flipOrder.forEach(function (step, index) { - if (placement !== step || flipOrder.length === index + 1) { - return data; - } - - placement = data.placement.split('-')[0]; - placementOpposite = getOppositePlacement(placement); - - var popperOffsets = data.offsets.popper; - var refOffsets = data.offsets.reference; - - // using floor because the reference offsets may contain decimals we are not going to consider here - var floor = Math.floor; - var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); - - var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); - var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); - var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); - var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); - - var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; - - // flip the variation if required - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); - - if (overlapsRef || overflowsBoundaries || flippedVariation) { - // this boolean to detect any flip loop - data.flipped = true; - - if (overlapsRef || overflowsBoundaries) { - placement = flipOrder[index + 1]; - } - - if (flippedVariation) { - variation = getOppositeVariation(variation); - } - - data.placement = placement + (variation ? '-' + variation : ''); - - // this object contains `position`, we want to preserve it along with - // any additional property we may add in the future - data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); - - data = runModifiers(data.instance.modifiers, data, 'flip'); - } - }); - return data; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function keepTogether(data) { - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var placement = data.placement.split('-')[0]; - var floor = Math.floor; - var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; - var side = isVertical ? 'right' : 'bottom'; - var opSide = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - - if (popper[side] < floor(reference[opSide])) { - data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; - } - if (popper[opSide] > floor(reference[side])) { - data.offsets.popper[opSide] = floor(reference[side]); - } - - return data; - } - - /** - * Converts a string containing value + unit into a px value number - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} str - Value + unit string - * @argument {String} measurement - `height` or `width` - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @returns {Number|String} - * Value in pixels, or original string if no values were extracted - */ - function toValue(str, measurement, popperOffsets, referenceOffsets) { - // separate value from unit - var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); - var value = +split[1]; - var unit = split[2]; - - // If it's not a number it's an operator, I guess - if (!value) { - return str; - } - - if (unit.indexOf('%') === 0) { - var element = void 0; - switch (unit) { - case '%p': - element = popperOffsets; - break; - case '%': - case '%r': - default: - element = referenceOffsets; - } - - var rect = getClientRect(element); - return rect[measurement] / 100 * value; - } else if (unit === 'vh' || unit === 'vw') { - // if is a vh or vw, we calculate the size based on the viewport - var size = void 0; - if (unit === 'vh') { - size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); - } else { - size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); - } - return size / 100 * value; - } else { - // if is an explicit pixel unit, we get rid of the unit and keep the value - // if is an implicit unit, it's px, and we return just the value - return value; - } - } - - /** - * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. - * @function - * @memberof {modifiers~offset} - * @private - * @argument {String} offset - * @argument {Object} popperOffsets - * @argument {Object} referenceOffsets - * @argument {String} basePlacement - * @returns {Array} a two cells array with x and y offsets in numbers - */ - function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { - var offsets = [0, 0]; - - // Use height if placement is left or right and index is 0 otherwise use width - // in this way the first offset will use an axis and the second one - // will use the other one - var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; - - // Split the offset string to obtain a list of values and operands - // The regex addresses values with the plus or minus sign in front (+10, -20, etc) - var fragments = offset.split(/(\+|\-)/).map(function (frag) { - return frag.trim(); - }); - - // Detect if the offset string contains a pair of values or a single one - // they could be separated by comma or space - var divider = fragments.indexOf(find(fragments, function (frag) { - return frag.search(/,|\s/) !== -1; - })); - - if (fragments[divider] && fragments[divider].indexOf(',') === -1) { - console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); - } - - // If divider is found, we divide the list of values and operands to divide - // them by ofset X and Y. - var splitRegex = /\s*,\s*|\s+/; - var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; - - // Convert the values with units to absolute pixels to allow our computations - ops = ops.map(function (op, index) { - // Most of the units rely on the orientation of the popper - var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; - var mergeWithPrevious = false; - return op - // This aggregates any `+` or `-` sign that aren't considered operators - // e.g.: 10 + +5 => [10, +, +5] - .reduce(function (a, b) { - if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { - a[a.length - 1] = b; - mergeWithPrevious = true; - return a; - } else if (mergeWithPrevious) { - a[a.length - 1] += b; - mergeWithPrevious = false; - return a; - } else { - return a.concat(b); - } - }, []) - // Here we convert the string values into number values (in px) - .map(function (str) { - return toValue(str, measurement, popperOffsets, referenceOffsets); - }); - }); - - // Loop trough the offsets arrays and execute the operations - ops.forEach(function (op, index) { - op.forEach(function (frag, index2) { - if (isNumeric(frag)) { - offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); - } - }); - }); - return offsets; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @argument {Number|String} options.offset=0 - * The offset value as described in the modifier description - * @returns {Object} The data object, properly modified - */ - function offset(data, _ref) { - var offset = _ref.offset; - var placement = data.placement, - _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var basePlacement = placement.split('-')[0]; - - var offsets = void 0; - if (isNumeric(+offset)) { - offsets = [+offset, 0]; - } else { - offsets = parseOffset(offset, popper, reference, basePlacement); - } - - if (basePlacement === 'left') { - popper.top += offsets[0]; - popper.left -= offsets[1]; - } else if (basePlacement === 'right') { - popper.top += offsets[0]; - popper.left += offsets[1]; - } else if (basePlacement === 'top') { - popper.left += offsets[0]; - popper.top -= offsets[1]; - } else if (basePlacement === 'bottom') { - popper.left += offsets[0]; - popper.top += offsets[1]; - } - - data.popper = popper; - return data; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function preventOverflow(data, options) { - var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); - - // If offsetParent is the reference element, we really want to - // go one step up and use the next offsetParent as reference to - // avoid to make this modifier completely useless and look like broken - if (data.instance.reference === boundariesElement) { - boundariesElement = getOffsetParent(boundariesElement); - } - - var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); - options.boundaries = boundaries; - - var order = options.priority; - var popper = data.offsets.popper; - - var check = { - primary: function primary(placement) { - var value = popper[placement]; - if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { - value = Math.max(popper[placement], boundaries[placement]); - } - return defineProperty({}, placement, value); - }, - secondary: function secondary(placement) { - var mainSide = placement === 'right' ? 'left' : 'top'; - var value = popper[mainSide]; - if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { - value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); - } - return defineProperty({}, mainSide, value); - } - }; - - order.forEach(function (placement) { - var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; - popper = _extends({}, popper, check[side](placement)); - }); - - data.offsets.popper = popper; - - return data; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function shift(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var shiftvariation = placement.split('-')[1]; - - // if shift shiftvariation is specified, run the modifier - if (shiftvariation) { - var _data$offsets = data.offsets, - reference = _data$offsets.reference, - popper = _data$offsets.popper; - - var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; - var side = isVertical ? 'left' : 'top'; - var measurement = isVertical ? 'width' : 'height'; - - var shiftOffsets = { - start: defineProperty({}, side, reference[side]), - end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) - }; - - data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); - } - - return data; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by update method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function hide(data) { - if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { - return data; - } - - var refRect = data.offsets.reference; - var bound = find(data.instance.modifiers, function (modifier) { - return modifier.name === 'preventOverflow'; - }).boundaries; - - if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === true) { - return data; - } - - data.hide = true; - data.attributes['x-out-of-boundaries'] = ''; - } else { - // Avoid unnecessary DOM access if visibility hasn't changed - if (data.hide === false) { - return data; - } - - data.hide = false; - data.attributes['x-out-of-boundaries'] = false; - } - - return data; - } - - /** - * @function - * @memberof Modifiers - * @argument {Object} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {Object} The data object, properly modified - */ - function inner(data) { - var placement = data.placement; - var basePlacement = placement.split('-')[0]; - var _data$offsets = data.offsets, - popper = _data$offsets.popper, - reference = _data$offsets.reference; - - var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; - - var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; - - popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); - - data.placement = getOppositePlacement(placement); - data.offsets.popper = getClientRect(popper); - - return data; - } - - /** - * Modifier function, each modifier can have a function of this type assigned - * to its `fn` property.
          - * These functions will be called on each update, this means that you must - * make sure they are performant enough to avoid performance bottlenecks. - * - * @function ModifierFn - * @argument {dataObject} data - The data object generated by `update` method - * @argument {Object} options - Modifiers configuration and options - * @returns {dataObject} The data object, properly modified - */ - - /** - * Modifiers are plugins used to alter the behavior of your poppers.
          - * Popper.js uses a set of 9 modifiers to provide all the basic functionalities - * needed by the library. - * - * Usually you don't want to override the `order`, `fn` and `onLoad` props. - * All the other properties are configurations that could be tweaked. - * @namespace modifiers - */ - var modifiers = { - /** - * Modifier used to shift the popper on the start or end of its reference - * element.
          - * It will read the variation of the `placement` property.
          - * It can be one either `-end` or `-start`. - * @memberof modifiers - * @inner - */ - shift: { - /** @prop {number} order=100 - Index used to define the order of execution */ - order: 100, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: shift - }, - - /** - * The `offset` modifier can shift your popper on both its axis. - * - * It accepts the following units: - * - `px` or unitless, interpreted as pixels - * - `%` or `%r`, percentage relative to the length of the reference element - * - `%p`, percentage relative to the length of the popper element - * - `vw`, CSS viewport width unit - * - `vh`, CSS viewport height unit - * - * For length is intended the main axis relative to the placement of the popper.
          - * This means that if the placement is `top` or `bottom`, the length will be the - * `width`. In case of `left` or `right`, it will be the height. - * - * You can provide a single value (as `Number` or `String`), or a pair of values - * as `String` divided by a comma or one (or more) white spaces.
          - * The latter is a deprecated method because it leads to confusion and will be - * removed in v2.
          - * Additionally, it accepts additions and subtractions between different units. - * Note that multiplications and divisions aren't supported. - * - * Valid examples are: - * ``` - * 10 - * '10%' - * '10, 10' - * '10%, 10' - * '10 + 10%' - * '10 - 5vh + 3%' - * '-10px + 5vh, 5px - 6%' - * ``` - * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap - * > with their reference element, unfortunately, you will have to disable the `flip` modifier. - * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373) - * - * @memberof modifiers - * @inner - */ - offset: { - /** @prop {number} order=200 - Index used to define the order of execution */ - order: 200, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: offset, - /** @prop {Number|String} offset=0 - * The offset value as described in the modifier description - */ - offset: 0 - }, - - /** - * Modifier used to prevent the popper from being positioned outside the boundary. - * - * An scenario exists where the reference itself is not within the boundaries.
          - * We can say it has "escaped the boundaries" — or just "escaped".
          - * In this case we need to decide whether the popper should either: - * - * - detach from the reference and remain "trapped" in the boundaries, or - * - if it should ignore the boundary and "escape with its reference" - * - * When `escapeWithReference` is set to`true` and reference is completely - * outside its boundaries, the popper will overflow (or completely leave) - * the boundaries in order to remain attached to the edge of the reference. - * - * @memberof modifiers - * @inner - */ - preventOverflow: { - /** @prop {number} order=300 - Index used to define the order of execution */ - order: 300, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: preventOverflow, - /** - * @prop {Array} [priority=['left','right','top','bottom']] - * Popper will try to prevent overflow following these priorities by default, - * then, it could overflow on the left and on top of the `boundariesElement` - */ - priority: ['left', 'right', 'top', 'bottom'], - /** - * @prop {number} padding=5 - * Amount of pixel used to define a minimum distance between the boundaries - * and the popper this makes sure the popper has always a little padding - * between the edges of its container - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='scrollParent' - * Boundaries used by the modifier, can be `scrollParent`, `window`, - * `viewport` or any DOM element. - */ - boundariesElement: 'scrollParent' - }, - - /** - * Modifier used to make sure the reference and its popper stay near eachothers - * without leaving any gap between the two. Expecially useful when the arrow is - * enabled and you want to assure it to point to its reference element. - * It cares only about the first axis, you can still have poppers with margin - * between the popper and its reference element. - * @memberof modifiers - * @inner - */ - keepTogether: { - /** @prop {number} order=400 - Index used to define the order of execution */ - order: 400, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: keepTogether - }, - - /** - * This modifier is used to move the `arrowElement` of the popper to make - * sure it is positioned between the reference element and its popper element. - * It will read the outer size of the `arrowElement` node to detect how many - * pixels of conjuction are needed. - * - * It has no effect if no `arrowElement` is provided. - * @memberof modifiers - * @inner - */ - arrow: { - /** @prop {number} order=500 - Index used to define the order of execution */ - order: 500, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: arrow, - /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ - element: '[x-arrow]' - }, - - /** - * Modifier used to flip the popper's placement when it starts to overlap its - * reference element. - * - * Requires the `preventOverflow` modifier before it in order to work. - * - * **NOTE:** this modifier will interrupt the current update cycle and will - * restart it if it detects the need to flip the placement. - * @memberof modifiers - * @inner - */ - flip: { - /** @prop {number} order=600 - Index used to define the order of execution */ - order: 600, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: flip, - /** - * @prop {String|Array} behavior='flip' - * The behavior used to change the popper's placement. It can be one of - * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid - * placements (with optional variations). - */ - behavior: 'flip', - /** - * @prop {number} padding=5 - * The popper will flip if it hits the edges of the `boundariesElement` - */ - padding: 5, - /** - * @prop {String|HTMLElement} boundariesElement='viewport' - * The element which will define the boundaries of the popper position, - * the popper will never be placed outside of the defined boundaries - * (except if keepTogether is enabled) - */ - boundariesElement: 'viewport' - }, - - /** - * Modifier used to make the popper flow toward the inner of the reference element. - * By default, when this modifier is disabled, the popper will be placed outside - * the reference element. - * @memberof modifiers - * @inner - */ - inner: { - /** @prop {number} order=700 - Index used to define the order of execution */ - order: 700, - /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ - enabled: false, - /** @prop {ModifierFn} */ - fn: inner - }, - - /** - * Modifier used to hide the popper when its reference element is outside of the - * popper boundaries. It will set a `x-out-of-boundaries` attribute which can - * be used to hide with a CSS selector the popper when its reference is - * out of boundaries. - * - * Requires the `preventOverflow` modifier before it in order to work. - * @memberof modifiers - * @inner - */ - hide: { - /** @prop {number} order=800 - Index used to define the order of execution */ - order: 800, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: hide - }, - - /** - * Computes the style that will be applied to the popper element to gets - * properly positioned. - * - * Note that this modifier will not touch the DOM, it just prepares the styles - * so that `applyStyle` modifier can apply it. This separation is useful - * in case you need to replace `applyStyle` with a custom implementation. - * - * This modifier has `850` as `order` value to maintain backward compatibility - * with previous versions of Popper.js. Expect the modifiers ordering method - * to change in future major versions of the library. - * - * @memberof modifiers - * @inner - */ - computeStyle: { - /** @prop {number} order=850 - Index used to define the order of execution */ - order: 850, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: computeStyle, - /** - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3d transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties. - */ - gpuAcceleration: true, - /** - * @prop {string} [x='bottom'] - * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. - * Change this if your popper should grow in a direction different from `bottom` - */ - x: 'bottom', - /** - * @prop {string} [x='left'] - * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. - * Change this if your popper should grow in a direction different from `right` - */ - y: 'right' - }, - - /** - * Applies the computed styles to the popper element. - * - * All the DOM manipulations are limited to this modifier. This is useful in case - * you want to integrate Popper.js inside a framework or view library and you - * want to delegate all the DOM manipulations to it. - * - * Note that if you disable this modifier, you must make sure the popper element - * has its position set to `absolute` before Popper.js can do its work! - * - * Just disable this modifier and define you own to achieve the desired effect. - * - * @memberof modifiers - * @inner - */ - applyStyle: { - /** @prop {number} order=900 - Index used to define the order of execution */ - order: 900, - /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ - enabled: true, - /** @prop {ModifierFn} */ - fn: applyStyle, - /** @prop {Function} */ - onLoad: applyStyleOnLoad, - /** - * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier - * @prop {Boolean} gpuAcceleration=true - * If true, it uses the CSS 3d transformation to position the popper. - * Otherwise, it will use the `top` and `left` properties. - */ - gpuAcceleration: undefined - } - }; - - /** - * The `dataObject` is an object containing all the informations used by Popper.js - * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks. - * @name dataObject - * @property {Object} data.instance The Popper.js instance - * @property {String} data.placement Placement applied to popper - * @property {String} data.originalPlacement Placement originally defined on init - * @property {Boolean} data.flipped True if popper has been flipped by flip modifier - * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper. - * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier - * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`) - * @property {Object} data.boundaries Offsets of the popper boundaries - * @property {Object} data.offsets The measurements of popper, reference and arrow elements. - * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values - * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 - */ - - /** - * Default options provided to Popper.js constructor.
          - * These can be overriden using the `options` argument of Popper.js.
          - * To override an option, simply pass as 3rd argument an object with the same - * structure of this object, example: - * ``` - * new Popper(ref, pop, { - * modifiers: { - * preventOverflow: { enabled: false } - * } - * }) - * ``` - * @type {Object} - * @static - * @memberof Popper - */ - var Defaults = { - /** - * Popper's placement - * @prop {Popper.placements} placement='bottom' - */ - placement: 'bottom', - - /** - * Set this to true if you want popper to position it self in 'fixed' mode - * @prop {Boolean} positionFixed=false - */ - positionFixed: false, - - /** - * Whether events (resize, scroll) are initially enabled - * @prop {Boolean} eventsEnabled=true - */ - eventsEnabled: true, - - /** - * Set to true if you want to automatically remove the popper when - * you call the `destroy` method. - * @prop {Boolean} removeOnDestroy=false - */ - removeOnDestroy: false, - - /** - * Callback called when the popper is created.
          - * By default, is set to no-op.
          - * Access Popper.js instance with `data.instance`. - * @prop {onCreate} - */ - onCreate: function onCreate() {}, - - /** - * Callback called when the popper is updated, this callback is not called - * on the initialization/creation of the popper, but only on subsequent - * updates.
          - * By default, is set to no-op.
          - * Access Popper.js instance with `data.instance`. - * @prop {onUpdate} - */ - onUpdate: function onUpdate() {}, - - /** - * List of modifiers used to modify the offsets before they are applied to the popper. - * They provide most of the functionalities of Popper.js - * @prop {modifiers} - */ - modifiers: modifiers - }; - - /** - * @callback onCreate - * @param {dataObject} data - */ - - /** - * @callback onUpdate - * @param {dataObject} data - */ - - // Utils - // Methods - var Popper = function () { - /** - * Create a new Popper.js instance - * @class Popper - * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper - * @param {HTMLElement} popper - The HTML element used as popper. - * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) - * @return {Object} instance - The generated Popper.js instance - */ - function Popper(reference, popper) { - var _this = this; - - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; - classCallCheck(this, Popper); - - this.scheduleUpdate = function () { - return requestAnimationFrame(_this.update); - }; - - // make update() debounced, so that it only runs at most once-per-tick - this.update = debounce(this.update.bind(this)); - - // with {} we create a new object with the options inside it - this.options = _extends({}, Popper.Defaults, options); - - // init state - this.state = { - isDestroyed: false, - isCreated: false, - scrollParents: [] - }; - - // get reference and popper elements (allow jQuery wrappers) - this.reference = reference && reference.jquery ? reference[0] : reference; - this.popper = popper && popper.jquery ? popper[0] : popper; - - // Deep merge modifiers options - this.options.modifiers = {}; - Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { - _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); - }); - - // Refactoring modifiers' list (Object => Array) - this.modifiers = Object.keys(this.options.modifiers).map(function (name) { - return _extends({ - name: name - }, _this.options.modifiers[name]); - }) - // sort the modifiers by order - .sort(function (a, b) { - return a.order - b.order; - }); - - // modifiers have the ability to execute arbitrary code when Popper.js get inited - // such code is executed in the same order of its modifier - // they could add new properties to their options configuration - // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! - this.modifiers.forEach(function (modifierOptions) { - if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { - modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); - } - }); - - // fire the first update to position the popper in the right place - this.update(); - - var eventsEnabled = this.options.eventsEnabled; - if (eventsEnabled) { - // setup event listeners, they will take care of update the position in specific situations - this.enableEventListeners(); - } - - this.state.eventsEnabled = eventsEnabled; - } - - // We can't use class properties because they don't get listed in the - // class prototype and break stuff like Sinon stubs - - - createClass(Popper, [{ - key: 'update', - value: function update$$1() { - return update.call(this); - } - }, { - key: 'destroy', - value: function destroy$$1() { - return destroy.call(this); - } - }, { - key: 'enableEventListeners', - value: function enableEventListeners$$1() { - return enableEventListeners.call(this); - } - }, { - key: 'disableEventListeners', - value: function disableEventListeners$$1() { - return disableEventListeners.call(this); - } - - /** - * Schedule an update, it will run on the next UI update available - * @method scheduleUpdate - * @memberof Popper - */ - - - /** - * Collection of utilities useful when writing custom modifiers. - * Starting from version 1.7, this method is available only if you - * include `popper-utils.js` before `popper.js`. - * - * **DEPRECATION**: This way to access PopperUtils is deprecated - * and will be removed in v2! Use the PopperUtils module directly instead. - * Due to the high instability of the methods contained in Utils, we can't - * guarantee them to follow semver. Use them at your own risk! - * @static - * @private - * @type {Object} - * @deprecated since version 1.8 - * @member Utils - * @memberof Popper - */ - - }]); - return Popper; - }(); - - /** - * The `referenceObject` is an object that provides an interface compatible with Popper.js - * and lets you use it as replacement of a real DOM node.
          - * You can use this method to position a popper relatively to a set of coordinates - * in case you don't have a DOM node to use as reference. - * - * ``` - * new Popper(referenceObject, popperNode); - * ``` - * - * NB: This feature isn't supported in Internet Explorer 10 - * @name referenceObject - * @property {Function} data.getBoundingClientRect - * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. - * @property {number} data.clientWidth - * An ES6 getter that will return the width of the virtual reference element. - * @property {number} data.clientHeight - * An ES6 getter that will return the height of the virtual reference element. - */ - - - Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; - Popper.placements = placements; - Popper.Defaults = Defaults; - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): dropdown.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Dropdown = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'dropdown'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.dropdown'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key - - var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key - - var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key - - var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key - - var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key - - var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) - - var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE); - var Event = { - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - CLICK: "click" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY, - KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY, - KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - DISABLED: 'disabled', - SHOW: 'show', - DROPUP: 'dropup', - DROPRIGHT: 'dropright', - DROPLEFT: 'dropleft', - MENURIGHT: 'dropdown-menu-right', - MENULEFT: 'dropdown-menu-left', - POSITION_STATIC: 'position-static' - }; - var Selector = { - DATA_TOGGLE: '[data-toggle="dropdown"]', - FORM_CHILD: '.dropdown form', - MENU: '.dropdown-menu', - NAVBAR_NAV: '.navbar-nav', - VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)' - }; - var AttachmentMap = { - TOP: 'top-start', - TOPEND: 'top-end', - BOTTOM: 'bottom-start', - BOTTOMEND: 'bottom-end', - RIGHT: 'right-start', - RIGHTEND: 'right-end', - LEFT: 'left-start', - LEFTEND: 'left-end' - }; - var Default = { - offset: 0, - flip: true, - boundary: 'scrollParent', - reference: 'toggle', - display: 'dynamic' - }; - var DefaultType = { - offset: '(number|string|function)', - flip: 'boolean', - boundary: '(string|element)', - reference: '(string|element)', - display: 'string' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Dropdown = - /*#__PURE__*/ - function () { - function Dropdown(element, config) { - this._element = element; - this._popper = null; - this._config = this._getConfig(config); - this._menu = this._getMenuElement(); - this._inNavbar = this._detectNavbar(); - - this._addEventListeners(); - } // Getters - - - var _proto = Dropdown.prototype; - - // Public - _proto.toggle = function toggle() { - if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) { - return; - } - - var parent = Dropdown._getParentFromElement(this._element); - - var isActive = $$$1(this._menu).hasClass(ClassName.SHOW); - - Dropdown._clearMenus(); - - if (isActive) { - return; - } - - var relatedTarget = { - relatedTarget: this._element - }; - var showEvent = $$$1.Event(Event.SHOW, relatedTarget); - $$$1(parent).trigger(showEvent); - - if (showEvent.isDefaultPrevented()) { - return; - } // Disable totally Popper.js for Dropdown in Navbar - - - if (!this._inNavbar) { - /** - * Check for Popper dependency - * Popper - https://popper.js.org - */ - if (typeof Popper === 'undefined') { - throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)'); - } - - var referenceElement = this._element; - - if (this._config.reference === 'parent') { - referenceElement = parent; - } else if (Util.isElement(this._config.reference)) { - referenceElement = this._config.reference; // Check if it's jQuery element - - if (typeof this._config.reference.jquery !== 'undefined') { - referenceElement = this._config.reference[0]; - } - } // If boundary is not `scrollParent`, then set position to `static` - // to allow the menu to "escape" the scroll parent's boundaries - // https://github.com/twbs/bootstrap/issues/24251 - - - if (this._config.boundary !== 'scrollParent') { - $$$1(parent).addClass(ClassName.POSITION_STATIC); - } - - this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig()); - } // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - - - if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) { - $$$1(document.body).children().on('mouseover', null, $$$1.noop); - } - - this._element.focus(); - - this._element.setAttribute('aria-expanded', true); - - $$$1(this._menu).toggleClass(ClassName.SHOW); - $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget)); - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - $$$1(this._element).off(EVENT_KEY); - this._element = null; - this._menu = null; - - if (this._popper !== null) { - this._popper.destroy(); - - this._popper = null; - } - }; - - _proto.update = function update() { - this._inNavbar = this._detectNavbar(); - - if (this._popper !== null) { - this._popper.scheduleUpdate(); - } - }; // Private - - - _proto._addEventListeners = function _addEventListeners() { - var _this = this; - - $$$1(this._element).on(Event.CLICK, function (event) { - event.preventDefault(); - event.stopPropagation(); - - _this.toggle(); - }); - }; - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config); - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); - return config; - }; - - _proto._getMenuElement = function _getMenuElement() { - if (!this._menu) { - var parent = Dropdown._getParentFromElement(this._element); - - this._menu = $$$1(parent).find(Selector.MENU)[0]; - } - - return this._menu; - }; - - _proto._getPlacement = function _getPlacement() { - var $parentDropdown = $$$1(this._element).parent(); - var placement = AttachmentMap.BOTTOM; // Handle dropup - - if ($parentDropdown.hasClass(ClassName.DROPUP)) { - placement = AttachmentMap.TOP; - - if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) { - placement = AttachmentMap.TOPEND; - } - } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) { - placement = AttachmentMap.RIGHT; - } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) { - placement = AttachmentMap.LEFT; - } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) { - placement = AttachmentMap.BOTTOMEND; - } - - return placement; - }; - - _proto._detectNavbar = function _detectNavbar() { - return $$$1(this._element).closest('.navbar').length > 0; - }; - - _proto._getPopperConfig = function _getPopperConfig() { - var _this2 = this; - - var offsetConf = {}; - - if (typeof this._config.offset === 'function') { - offsetConf.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {}); - return data; - }; - } else { - offsetConf.offset = this._config.offset; - } - - var popperConfig = { - placement: this._getPlacement(), - modifiers: { - offset: offsetConf, - flip: { - enabled: this._config.flip - }, - preventOverflow: { - boundariesElement: this._config.boundary - } - } // Disable Popper.js if we have a static display - - }; - - if (this._config.display === 'static') { - popperConfig.modifiers.applyStyle = { - enabled: false - }; - } - - return popperConfig; - }; // Static - - - Dropdown._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - var _config = typeof config === 'object' ? config : null; - - if (!data) { - data = new Dropdown(this, _config); - $$$1(this).data(DATA_KEY, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - Dropdown._clearMenus = function _clearMenus(event) { - if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { - return; - } - - var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE)); - - for (var i = 0; i < toggles.length; i++) { - var parent = Dropdown._getParentFromElement(toggles[i]); - - var context = $$$1(toggles[i]).data(DATA_KEY); - var relatedTarget = { - relatedTarget: toggles[i] - }; - - if (!context) { - continue; - } - - var dropdownMenu = context._menu; - - if (!$$$1(parent).hasClass(ClassName.SHOW)) { - continue; - } - - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) { - continue; - } - - var hideEvent = $$$1.Event(Event.HIDE, relatedTarget); - $$$1(parent).trigger(hideEvent); - - if (hideEvent.isDefaultPrevented()) { - continue; - } // If this is a touch-enabled device we remove the extra - // empty mouseover listeners we added for iOS support - - - if ('ontouchstart' in document.documentElement) { - $$$1(document.body).children().off('mouseover', null, $$$1.noop); - } - - toggles[i].setAttribute('aria-expanded', 'false'); - $$$1(dropdownMenu).removeClass(ClassName.SHOW); - $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget)); - } - }; - - Dropdown._getParentFromElement = function _getParentFromElement(element) { - var parent; - var selector = Util.getSelectorFromElement(element); - - if (selector) { - parent = $$$1(selector)[0]; - } - - return parent || element.parentNode; - }; // eslint-disable-next-line complexity - - - Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { - // If not input/textarea: - // - And not a key in REGEXP_KEYDOWN => not a dropdown command - // If input/textarea: - // - If space key => not a dropdown command - // - If key is other than escape - // - If key is not up or down => not a dropdown command - // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { - return; - } - - event.preventDefault(); - event.stopPropagation(); - - if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) { - return; - } - - var parent = Dropdown._getParentFromElement(this); - - var isActive = $$$1(parent).hasClass(ClassName.SHOW); - - if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) { - if (event.which === ESCAPE_KEYCODE) { - var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0]; - $$$1(toggle).trigger('focus'); - } - - $$$1(this).trigger('click'); - return; - } - - var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get(); - - if (items.length === 0) { - return; - } - - var index = items.indexOf(event.target); - - if (event.which === ARROW_UP_KEYCODE && index > 0) { - // Up - index--; - } - - if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { - // Down - index++; - } - - if (index < 0) { - index = 0; - } - - items[index].focus(); - }; - - _createClass(Dropdown, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType; - } - }]); - - return Dropdown; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - event.preventDefault(); - event.stopPropagation(); - - Dropdown._jQueryInterface.call($$$1(this), 'toggle'); - }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) { - e.stopPropagation(); - }); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Dropdown._jQueryInterface; - $$$1.fn[NAME].Constructor = Dropdown; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Dropdown._jQueryInterface; - }; - - return Dropdown; - }($, Popper); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): modal.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Modal = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'modal'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.modal'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key - - var Default = { - backdrop: true, - keyboard: true, - focus: true, - show: true - }; - var DefaultType = { - backdrop: '(boolean|string)', - keyboard: 'boolean', - focus: 'boolean', - show: 'boolean' - }; - var Event = { - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - FOCUSIN: "focusin" + EVENT_KEY, - RESIZE: "resize" + EVENT_KEY, - CLICK_DISMISS: "click.dismiss" + EVENT_KEY, - KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY, - MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY, - MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY, - CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - SCROLLBAR_MEASURER: 'modal-scrollbar-measure', - BACKDROP: 'modal-backdrop', - OPEN: 'modal-open', - FADE: 'fade', - SHOW: 'show' - }; - var Selector = { - DIALOG: '.modal-dialog', - DATA_TOGGLE: '[data-toggle="modal"]', - DATA_DISMISS: '[data-dismiss="modal"]', - FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', - STICKY_CONTENT: '.sticky-top', - NAVBAR_TOGGLER: '.navbar-toggler' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Modal = - /*#__PURE__*/ - function () { - function Modal(element, config) { - this._config = this._getConfig(config); - this._element = element; - this._dialog = $$$1(element).find(Selector.DIALOG)[0]; - this._backdrop = null; - this._isShown = false; - this._isBodyOverflowing = false; - this._ignoreBackdropClick = false; - this._scrollbarWidth = 0; - } // Getters - - - var _proto = Modal.prototype; - - // Public - _proto.toggle = function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - }; - - _proto.show = function show(relatedTarget) { - var _this = this; - - if (this._isTransitioning || this._isShown) { - return; - } - - if ($$$1(this._element).hasClass(ClassName.FADE)) { - this._isTransitioning = true; - } - - var showEvent = $$$1.Event(Event.SHOW, { - relatedTarget: relatedTarget - }); - $$$1(this._element).trigger(showEvent); - - if (this._isShown || showEvent.isDefaultPrevented()) { - return; - } - - this._isShown = true; - - this._checkScrollbar(); - - this._setScrollbar(); - - this._adjustDialog(); - - $$$1(document.body).addClass(ClassName.OPEN); - - this._setEscapeEvent(); - - this._setResizeEvent(); - - $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) { - return _this.hide(event); - }); - $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () { - $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function (event) { - if ($$$1(event.target).is(_this._element)) { - _this._ignoreBackdropClick = true; - } - }); - }); - - this._showBackdrop(function () { - return _this._showElement(relatedTarget); - }); - }; - - _proto.hide = function hide(event) { - var _this2 = this; - - if (event) { - event.preventDefault(); - } - - if (this._isTransitioning || !this._isShown) { - return; - } - - var hideEvent = $$$1.Event(Event.HIDE); - $$$1(this._element).trigger(hideEvent); - - if (!this._isShown || hideEvent.isDefaultPrevented()) { - return; - } - - this._isShown = false; - var transition = $$$1(this._element).hasClass(ClassName.FADE); - - if (transition) { - this._isTransitioning = true; - } - - this._setEscapeEvent(); - - this._setResizeEvent(); - - $$$1(document).off(Event.FOCUSIN); - $$$1(this._element).removeClass(ClassName.SHOW); - $$$1(this._element).off(Event.CLICK_DISMISS); - $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS); - - if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $$$1(this._element).one(Util.TRANSITION_END, function (event) { - return _this2._hideModal(event); - }).emulateTransitionEnd(transitionDuration); - } else { - this._hideModal(); - } - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY); - this._config = null; - this._element = null; - this._dialog = null; - this._backdrop = null; - this._isShown = null; - this._isBodyOverflowing = null; - this._ignoreBackdropClick = null; - this._scrollbarWidth = null; - }; - - _proto.handleUpdate = function handleUpdate() { - this._adjustDialog(); - }; // Private - - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); - Util.typeCheckConfig(NAME, config, DefaultType); - return config; - }; - - _proto._showElement = function _showElement(relatedTarget) { - var _this3 = this; - - var transition = $$$1(this._element).hasClass(ClassName.FADE); - - if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { - // Don't move modal's DOM position - document.body.appendChild(this._element); - } - - this._element.style.display = 'block'; - - this._element.removeAttribute('aria-hidden'); - - this._element.scrollTop = 0; - - if (transition) { - Util.reflow(this._element); - } - - $$$1(this._element).addClass(ClassName.SHOW); - - if (this._config.focus) { - this._enforceFocus(); - } - - var shownEvent = $$$1.Event(Event.SHOWN, { - relatedTarget: relatedTarget - }); - - var transitionComplete = function transitionComplete() { - if (_this3._config.focus) { - _this3._element.focus(); - } - - _this3._isTransitioning = false; - $$$1(_this3._element).trigger(shownEvent); - }; - - if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); - } else { - transitionComplete(); - } - }; - - _proto._enforceFocus = function _enforceFocus() { - var _this4 = this; - - $$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop - .on(Event.FOCUSIN, function (event) { - if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) { - _this4._element.focus(); - } - }); - }; - - _proto._setEscapeEvent = function _setEscapeEvent() { - var _this5 = this; - - if (this._isShown && this._config.keyboard) { - $$$1(this._element).on(Event.KEYDOWN_DISMISS, function (event) { - if (event.which === ESCAPE_KEYCODE) { - event.preventDefault(); - - _this5.hide(); - } - }); - } else if (!this._isShown) { - $$$1(this._element).off(Event.KEYDOWN_DISMISS); - } - }; - - _proto._setResizeEvent = function _setResizeEvent() { - var _this6 = this; - - if (this._isShown) { - $$$1(window).on(Event.RESIZE, function (event) { - return _this6.handleUpdate(event); - }); - } else { - $$$1(window).off(Event.RESIZE); - } - }; - - _proto._hideModal = function _hideModal() { - var _this7 = this; - - this._element.style.display = 'none'; - - this._element.setAttribute('aria-hidden', true); - - this._isTransitioning = false; - - this._showBackdrop(function () { - $$$1(document.body).removeClass(ClassName.OPEN); - - _this7._resetAdjustments(); - - _this7._resetScrollbar(); - - $$$1(_this7._element).trigger(Event.HIDDEN); - }); - }; - - _proto._removeBackdrop = function _removeBackdrop() { - if (this._backdrop) { - $$$1(this._backdrop).remove(); - this._backdrop = null; - } - }; - - _proto._showBackdrop = function _showBackdrop(callback) { - var _this8 = this; - - var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : ''; - - if (this._isShown && this._config.backdrop) { - this._backdrop = document.createElement('div'); - this._backdrop.className = ClassName.BACKDROP; - - if (animate) { - $$$1(this._backdrop).addClass(animate); - } - - $$$1(this._backdrop).appendTo(document.body); - $$$1(this._element).on(Event.CLICK_DISMISS, function (event) { - if (_this8._ignoreBackdropClick) { - _this8._ignoreBackdropClick = false; - return; - } - - if (event.target !== event.currentTarget) { - return; - } - - if (_this8._config.backdrop === 'static') { - _this8._element.focus(); - } else { - _this8.hide(); - } - }); - - if (animate) { - Util.reflow(this._backdrop); - } - - $$$1(this._backdrop).addClass(ClassName.SHOW); - - if (!callback) { - return; - } - - if (!animate) { - callback(); - return; - } - - var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); - } else if (!this._isShown && this._backdrop) { - $$$1(this._backdrop).removeClass(ClassName.SHOW); - - var callbackRemove = function callbackRemove() { - _this8._removeBackdrop(); - - if (callback) { - callback(); - } - }; - - if ($$$1(this._element).hasClass(ClassName.FADE)) { - var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - - $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); - } else { - callbackRemove(); - } - } else if (callback) { - callback(); - } - }; // ---------------------------------------------------------------------- - // the following methods are used to handle overflowing modals - // todo (fat): these should probably be refactored out of modal.js - // ---------------------------------------------------------------------- - - - _proto._adjustDialog = function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - - if (!this._isBodyOverflowing && isModalOverflowing) { - this._element.style.paddingLeft = this._scrollbarWidth + "px"; - } - - if (this._isBodyOverflowing && !isModalOverflowing) { - this._element.style.paddingRight = this._scrollbarWidth + "px"; - } - }; - - _proto._resetAdjustments = function _resetAdjustments() { - this._element.style.paddingLeft = ''; - this._element.style.paddingRight = ''; - }; - - _proto._checkScrollbar = function _checkScrollbar() { - var rect = document.body.getBoundingClientRect(); - this._isBodyOverflowing = rect.left + rect.right < window.innerWidth; - this._scrollbarWidth = this._getScrollbarWidth(); - }; - - _proto._setScrollbar = function _setScrollbar() { - var _this9 = this; - - if (this._isBodyOverflowing) { - // Note: DOMNode.style.paddingRight returns the actual value or '' if not set - // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set - // Adjust fixed content padding - $$$1(Selector.FIXED_CONTENT).each(function (index, element) { - var actualPadding = $$$1(element)[0].style.paddingRight; - var calculatedPadding = $$$1(element).css('padding-right'); - $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px"); - }); // Adjust sticky content margin - - $$$1(Selector.STICKY_CONTENT).each(function (index, element) { - var actualMargin = $$$1(element)[0].style.marginRight; - var calculatedMargin = $$$1(element).css('margin-right'); - $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px"); - }); // Adjust navbar-toggler margin - - $$$1(Selector.NAVBAR_TOGGLER).each(function (index, element) { - var actualMargin = $$$1(element)[0].style.marginRight; - var calculatedMargin = $$$1(element).css('margin-right'); - $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px"); - }); // Adjust body padding - - var actualPadding = document.body.style.paddingRight; - var calculatedPadding = $$$1(document.body).css('padding-right'); - $$$1(document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); - } - }; - - _proto._resetScrollbar = function _resetScrollbar() { - // Restore fixed content padding - $$$1(Selector.FIXED_CONTENT).each(function (index, element) { - var padding = $$$1(element).data('padding-right'); - - if (typeof padding !== 'undefined') { - $$$1(element).css('padding-right', padding).removeData('padding-right'); - } - }); // Restore sticky content and navbar-toggler margin - - $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) { - var margin = $$$1(element).data('margin-right'); - - if (typeof margin !== 'undefined') { - $$$1(element).css('margin-right', margin).removeData('margin-right'); - } - }); // Restore body padding - - var padding = $$$1(document.body).data('padding-right'); - - if (typeof padding !== 'undefined') { - $$$1(document.body).css('padding-right', padding).removeData('padding-right'); - } - }; - - _proto._getScrollbarWidth = function _getScrollbarWidth() { - // thx d.walsh - var scrollDiv = document.createElement('div'); - scrollDiv.className = ClassName.SCROLLBAR_MEASURER; - document.body.appendChild(scrollDiv); - var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - return scrollbarWidth; - }; // Static - - - Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - var _config = _objectSpread({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config); - - if (!data) { - data = new Modal(this, _config); - $$$1(this).data(DATA_KEY, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](relatedTarget); - } else if (_config.show) { - data.show(relatedTarget); - } - }); - }; - - _createClass(Modal, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }]); - - return Modal; - }(); - /** - * ------------------------------------------------------------------------ - * Data Api implementation - * ------------------------------------------------------------------------ - */ - - - $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) { - var _this10 = this; - - var target; - var selector = Util.getSelectorFromElement(this); - - if (selector) { - target = $$$1(selector)[0]; - } - - var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _objectSpread({}, $$$1(target).data(), $$$1(this).data()); - - if (this.tagName === 'A' || this.tagName === 'AREA') { - event.preventDefault(); - } - - var $target = $$$1(target).one(Event.SHOW, function (showEvent) { - if (showEvent.isDefaultPrevented()) { - // Only register focus restorer if modal will actually get shown - return; - } - - $target.one(Event.HIDDEN, function () { - if ($$$1(_this10).is(':visible')) { - _this10.focus(); - } - }); - }); - - Modal._jQueryInterface.call($$$1(target), config, this); - }); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - $$$1.fn[NAME] = Modal._jQueryInterface; - $$$1.fn[NAME].Constructor = Modal; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Modal._jQueryInterface; - }; - - return Modal; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): tooltip.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Tooltip = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'tooltip'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.tooltip'; - var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var CLASS_PREFIX = 'bs-tooltip'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var DefaultType = { - animation: 'boolean', - template: 'string', - title: '(string|element|function)', - trigger: 'string', - delay: '(number|object)', - html: 'boolean', - selector: '(string|boolean)', - placement: '(string|function)', - offset: '(number|string)', - container: '(string|element|boolean)', - fallbackPlacement: '(string|array)', - boundary: '(string|element)' - }; - var AttachmentMap = { - AUTO: 'auto', - TOP: 'top', - RIGHT: 'right', - BOTTOM: 'bottom', - LEFT: 'left' - }; - var Default = { - animation: true, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - selector: false, - placement: 'top', - offset: 0, - container: false, - fallbackPlacement: 'flip', - boundary: 'scrollParent' - }; - var HoverState = { - SHOW: 'show', - OUT: 'out' - }; - var Event = { - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - INSERTED: "inserted" + EVENT_KEY, - CLICK: "click" + EVENT_KEY, - FOCUSIN: "focusin" + EVENT_KEY, - FOCUSOUT: "focusout" + EVENT_KEY, - MOUSEENTER: "mouseenter" + EVENT_KEY, - MOUSELEAVE: "mouseleave" + EVENT_KEY - }; - var ClassName = { - FADE: 'fade', - SHOW: 'show' - }; - var Selector = { - TOOLTIP: '.tooltip', - TOOLTIP_INNER: '.tooltip-inner', - ARROW: '.arrow' - }; - var Trigger = { - HOVER: 'hover', - FOCUS: 'focus', - CLICK: 'click', - MANUAL: 'manual' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Tooltip = - /*#__PURE__*/ - function () { - function Tooltip(element, config) { - /** - * Check for Popper dependency - * Popper - https://popper.js.org - */ - if (typeof Popper === 'undefined') { - throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)'); - } // private - - - this._isEnabled = true; - this._timeout = 0; - this._hoverState = ''; - this._activeTrigger = {}; - this._popper = null; // Protected - - this.element = element; - this.config = this._getConfig(config); - this.tip = null; - - this._setListeners(); - } // Getters - - - var _proto = Tooltip.prototype; - - // Public - _proto.enable = function enable() { - this._isEnabled = true; - }; - - _proto.disable = function disable() { - this._isEnabled = false; - }; - - _proto.toggleEnabled = function toggleEnabled() { - this._isEnabled = !this._isEnabled; - }; - - _proto.toggle = function toggle(event) { - if (!this._isEnabled) { - return; - } - - if (event) { - var dataKey = this.constructor.DATA_KEY; - var context = $$$1(event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $$$1(event.currentTarget).data(dataKey, context); - } - - context._activeTrigger.click = !context._activeTrigger.click; - - if (context._isWithActiveTrigger()) { - context._enter(null, context); - } else { - context._leave(null, context); - } - } else { - if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) { - this._leave(null, this); - - return; - } - - this._enter(null, this); - } - }; - - _proto.dispose = function dispose() { - clearTimeout(this._timeout); - $$$1.removeData(this.element, this.constructor.DATA_KEY); - $$$1(this.element).off(this.constructor.EVENT_KEY); - $$$1(this.element).closest('.modal').off('hide.bs.modal'); - - if (this.tip) { - $$$1(this.tip).remove(); - } - - this._isEnabled = null; - this._timeout = null; - this._hoverState = null; - this._activeTrigger = null; - - if (this._popper !== null) { - this._popper.destroy(); - } - - this._popper = null; - this.element = null; - this.config = null; - this.tip = null; - }; - - _proto.show = function show() { - var _this = this; - - if ($$$1(this.element).css('display') === 'none') { - throw new Error('Please use show on visible elements'); - } - - var showEvent = $$$1.Event(this.constructor.Event.SHOW); - - if (this.isWithContent() && this._isEnabled) { - $$$1(this.element).trigger(showEvent); - var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element); - - if (showEvent.isDefaultPrevented() || !isInTheDom) { - return; - } - - var tip = this.getTipElement(); - var tipId = Util.getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); - this.element.setAttribute('aria-describedby', tipId); - this.setContent(); - - if (this.config.animation) { - $$$1(tip).addClass(ClassName.FADE); - } - - var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; - - var attachment = this._getAttachment(placement); - - this.addAttachmentClass(attachment); - var container = this.config.container === false ? document.body : $$$1(this.config.container); - $$$1(tip).data(this.constructor.DATA_KEY, this); - - if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) { - $$$1(tip).appendTo(container); - } - - $$$1(this.element).trigger(this.constructor.Event.INSERTED); - this._popper = new Popper(this.element, tip, { - placement: attachment, - modifiers: { - offset: { - offset: this.config.offset - }, - flip: { - behavior: this.config.fallbackPlacement - }, - arrow: { - element: Selector.ARROW - }, - preventOverflow: { - boundariesElement: this.config.boundary - } - }, - onCreate: function onCreate(data) { - if (data.originalPlacement !== data.placement) { - _this._handlePopperPlacementChange(data); - } - }, - onUpdate: function onUpdate(data) { - _this._handlePopperPlacementChange(data); - } - }); - $$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - - if ('ontouchstart' in document.documentElement) { - $$$1(document.body).children().on('mouseover', null, $$$1.noop); - } - - var complete = function complete() { - if (_this.config.animation) { - _this._fixTransition(); - } - - var prevHoverState = _this._hoverState; - _this._hoverState = null; - $$$1(_this.element).trigger(_this.constructor.Event.SHOWN); - - if (prevHoverState === HoverState.OUT) { - _this._leave(null, _this); - } - }; - - if ($$$1(this.tip).hasClass(ClassName.FADE)) { - var transitionDuration = Util.getTransitionDurationFromElement(this.tip); - $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - } else { - complete(); - } - } - }; - - _proto.hide = function hide(callback) { - var _this2 = this; - - var tip = this.getTipElement(); - var hideEvent = $$$1.Event(this.constructor.Event.HIDE); - - var complete = function complete() { - if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) { - tip.parentNode.removeChild(tip); - } - - _this2._cleanTipClass(); - - _this2.element.removeAttribute('aria-describedby'); - - $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN); - - if (_this2._popper !== null) { - _this2._popper.destroy(); - } - - if (callback) { - callback(); - } - }; - - $$$1(this.element).trigger(hideEvent); - - if (hideEvent.isDefaultPrevented()) { - return; - } - - $$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra - // empty mouseover listeners we added for iOS support - - if ('ontouchstart' in document.documentElement) { - $$$1(document.body).children().off('mouseover', null, $$$1.noop); - } - - this._activeTrigger[Trigger.CLICK] = false; - this._activeTrigger[Trigger.FOCUS] = false; - this._activeTrigger[Trigger.HOVER] = false; - - if ($$$1(this.tip).hasClass(ClassName.FADE)) { - var transitionDuration = Util.getTransitionDurationFromElement(tip); - $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - } else { - complete(); - } - - this._hoverState = ''; - }; - - _proto.update = function update() { - if (this._popper !== null) { - this._popper.scheduleUpdate(); - } - }; // Protected - - - _proto.isWithContent = function isWithContent() { - return Boolean(this.getTitle()); - }; - - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); - }; - - _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $$$1(this.config.template)[0]; - return this.tip; - }; - - _proto.setContent = function setContent() { - var $tip = $$$1(this.getTipElement()); - this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); - $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); - }; - - _proto.setElementContent = function setElementContent($element, content) { - var html = this.config.html; - - if (typeof content === 'object' && (content.nodeType || content.jquery)) { - // Content is a DOM node or a jQuery - if (html) { - if (!$$$1(content).parent().is($element)) { - $element.empty().append(content); - } - } else { - $element.text($$$1(content).text()); - } - } else { - $element[html ? 'html' : 'text'](content); - } - }; - - _proto.getTitle = function getTitle() { - var title = this.element.getAttribute('data-original-title'); - - if (!title) { - title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; - } - - return title; - }; // Private - - - _proto._getAttachment = function _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; - }; - - _proto._setListeners = function _setListeners() { - var _this3 = this; - - var triggers = this.config.trigger.split(' '); - triggers.forEach(function (trigger) { - if (trigger === 'click') { - $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { - return _this3.toggle(event); - }); - } else if (trigger !== Trigger.MANUAL) { - var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; - var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; - $$$1(_this3.element).on(eventIn, _this3.config.selector, function (event) { - return _this3._enter(event); - }).on(eventOut, _this3.config.selector, function (event) { - return _this3._leave(event); - }); - } - - $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function () { - return _this3.hide(); - }); - }); - - if (this.config.selector) { - this.config = _objectSpread({}, this.config, { - trigger: 'manual', - selector: '' - }); - } else { - this._fixTitle(); - } - }; - - _proto._fixTitle = function _fixTitle() { - var titleType = typeof this.element.getAttribute('data-original-title'); - - if (this.element.getAttribute('title') || titleType !== 'string') { - this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); - this.element.setAttribute('title', ''); - } - }; - - _proto._enter = function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || $$$1(event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $$$1(event.currentTarget).data(dataKey, context); - } - - if (event) { - context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; - } - - if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) { - context._hoverState = HoverState.SHOW; - return; - } - - clearTimeout(context._timeout); - context._hoverState = HoverState.SHOW; - - if (!context.config.delay || !context.config.delay.show) { - context.show(); - return; - } - - context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.SHOW) { - context.show(); - } - }, context.config.delay.show); - }; - - _proto._leave = function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || $$$1(event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $$$1(event.currentTarget).data(dataKey, context); - } - - if (event) { - context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; - } - - if (context._isWithActiveTrigger()) { - return; - } - - clearTimeout(context._timeout); - context._hoverState = HoverState.OUT; - - if (!context.config.delay || !context.config.delay.hide) { - context.hide(); - return; - } - - context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.OUT) { - context.hide(); - } - }, context.config.delay.hide); - }; - - _proto._isWithActiveTrigger = function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } - } - - return false; - }; - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, this.constructor.Default, $$$1(this.element).data(), config); - - if (typeof config.delay === 'number') { - config.delay = { - show: config.delay, - hide: config.delay - }; - } - - if (typeof config.title === 'number') { - config.title = config.title.toString(); - } - - if (typeof config.content === 'number') { - config.content = config.content.toString(); - } - - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); - return config; - }; - - _proto._getDelegateConfig = function _getDelegateConfig() { - var config = {}; - - if (this.config) { - for (var key in this.config) { - if (this.constructor.Default[key] !== this.config[key]) { - config[key] = this.config[key]; - } - } - } - - return config; - }; - - _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $$$1(this.getTipElement()); - var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); - - if (tabClass !== null && tabClass.length > 0) { - $tip.removeClass(tabClass.join('')); - } - }; - - _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) { - this._cleanTipClass(); - - this.addAttachmentClass(this._getAttachment(data.placement)); - }; - - _proto._fixTransition = function _fixTransition() { - var tip = this.getTipElement(); - var initConfigAnimation = this.config.animation; - - if (tip.getAttribute('x-placement') !== null) { - return; - } - - $$$1(tip).removeClass(ClassName.FADE); - this.config.animation = false; - this.hide(); - this.show(); - this.config.animation = initConfigAnimation; - }; // Static - - - Tooltip._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - var _config = typeof config === 'object' && config; - - if (!data && /dispose|hide/.test(config)) { - return; - } - - if (!data) { - data = new Tooltip(this, _config); - $$$1(this).data(DATA_KEY, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Tooltip, null, [{ - key: "VERSION", - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }, { - key: "NAME", - get: function get() { - return NAME; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - }, { - key: "Event", - get: function get() { - return Event; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType; - } - }]); - - return Tooltip; - }(); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - - $$$1.fn[NAME] = Tooltip._jQueryInterface; - $$$1.fn[NAME].Constructor = Tooltip; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Tooltip._jQueryInterface; - }; - - return Tooltip; - }($, Popper); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): popover.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var Popover = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'popover'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.popover'; - var EVENT_KEY = "." + DATA_KEY; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var CLASS_PREFIX = 'bs-popover'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - - var Default = _objectSpread({}, Tooltip.Default, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }); - - var DefaultType = _objectSpread({}, Tooltip.DefaultType, { - content: '(string|element|function)' - }); - - var ClassName = { - FADE: 'fade', - SHOW: 'show' - }; - var Selector = { - TITLE: '.popover-header', - CONTENT: '.popover-body' - }; - var Event = { - HIDE: "hide" + EVENT_KEY, - HIDDEN: "hidden" + EVENT_KEY, - SHOW: "show" + EVENT_KEY, - SHOWN: "shown" + EVENT_KEY, - INSERTED: "inserted" + EVENT_KEY, - CLICK: "click" + EVENT_KEY, - FOCUSIN: "focusin" + EVENT_KEY, - FOCUSOUT: "focusout" + EVENT_KEY, - MOUSEENTER: "mouseenter" + EVENT_KEY, - MOUSELEAVE: "mouseleave" + EVENT_KEY - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var Popover = - /*#__PURE__*/ - function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); - - function Popover() { - return _Tooltip.apply(this, arguments) || this; - } - - var _proto = Popover.prototype; - - // Overrides - _proto.isWithContent = function isWithContent() { - return this.getTitle() || this._getContent(); - }; - - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); - }; - - _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $$$1(this.config.template)[0]; - return this.tip; - }; - - _proto.setContent = function setContent() { - var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events - - this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); - - var content = this._getContent(); - - if (typeof content === 'function') { - content = content.call(this.element); - } - - this.setElementContent($tip.find(Selector.CONTENT), content); - $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW); - }; // Private - - - _proto._getContent = function _getContent() { - return this.element.getAttribute('data-content') || this.config.content; - }; - - _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $$$1(this.getTipElement()); - var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); - - if (tabClass !== null && tabClass.length > 0) { - $tip.removeClass(tabClass.join('')); - } - }; // Static - - - Popover._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $$$1(this).data(DATA_KEY); - - var _config = typeof config === 'object' ? config : null; - - if (!data && /destroy|hide/.test(config)) { - return; - } - - if (!data) { - data = new Popover(this, _config); - $$$1(this).data(DATA_KEY, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Popover, null, [{ - key: "VERSION", - // Getters - get: function get() { - return VERSION; - } - }, { - key: "Default", - get: function get() { - return Default; - } - }, { - key: "NAME", - get: function get() { - return NAME; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY; - } - }, { - key: "Event", - get: function get() { - return Event; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType; - } - }]); - - return Popover; - }(Tooltip); - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ - - - $$$1.fn[NAME] = Popover._jQueryInterface; - $$$1.fn[NAME].Constructor = Popover; - - $$$1.fn[NAME].noConflict = function () { - $$$1.fn[NAME] = JQUERY_NO_CONFLICT; - return Popover._jQueryInterface; - }; - - return Popover; - }($); - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.1.0): scrollspy.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - - var ScrollSpy = function ($$$1) { - /** - * ------------------------------------------------------------------------ - * Constants - * ------------------------------------------------------------------------ - */ - var NAME = 'scrollspy'; - var VERSION = '4.1.0'; - var DATA_KEY = 'bs.scrollspy'; - var EVENT_KEY = "." + DATA_KEY; - var DATA_API_KEY = '.data-api'; - var JQUERY_NO_CONFLICT = $$$1.fn[NAME]; - var Default = { - offset: 10, - method: 'auto', - target: '' - }; - var DefaultType = { - offset: 'number', - method: 'string', - target: '(string|element)' - }; - var Event = { - ACTIVATE: "activate" + EVENT_KEY, - SCROLL: "scroll" + EVENT_KEY, - LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY - }; - var ClassName = { - DROPDOWN_ITEM: 'dropdown-item', - DROPDOWN_MENU: 'dropdown-menu', - ACTIVE: 'active' - }; - var Selector = { - DATA_SPY: '[data-spy="scroll"]', - ACTIVE: '.active', - NAV_LIST_GROUP: '.nav, .list-group', - NAV_LINKS: '.nav-link', - NAV_ITEMS: '.nav-item', - LIST_ITEMS: '.list-group-item', - DROPDOWN: '.dropdown', - DROPDOWN_ITEMS: '.dropdown-item', - DROPDOWN_TOGGLE: '.dropdown-toggle' - }; - var OffsetMethod = { - OFFSET: 'offset', - POSITION: 'position' - /** - * ------------------------------------------------------------------------ - * Class Definition - * ------------------------------------------------------------------------ - */ - - }; - - var ScrollSpy = - /*#__PURE__*/ - function () { - function ScrollSpy(element, config) { - var _this = this; - - this._element = element; - this._scrollElement = element.tagName === 'BODY' ? window : element; - this._config = this._getConfig(config); - this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS); - this._offsets = []; - this._targets = []; - this._activeTarget = null; - this._scrollHeight = 0; - $$$1(this._scrollElement).on(Event.SCROLL, function (event) { - return _this._process(event); - }); - this.refresh(); - - this._process(); - } // Getters - - - var _proto = ScrollSpy.prototype; - - // Public - _proto.refresh = function refresh() { - var _this2 = this; - - var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION; - var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0; - this._offsets = []; - this._targets = []; - this._scrollHeight = this._getScrollHeight(); - var targets = $$$1.makeArray($$$1(this._selector)); - targets.map(function (element) { - var target; - var targetSelector = Util.getSelectorFromElement(element); - - if (targetSelector) { - target = $$$1(targetSelector)[0]; - } - - if (target) { - var targetBCR = target.getBoundingClientRect(); - - if (targetBCR.width || targetBCR.height) { - // TODO (fat): remove sketch reliance on jQuery position/offset - return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]; - } - } - - return null; - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this2._offsets.push(item[0]); - - _this2._targets.push(item[1]); - }); - }; - - _proto.dispose = function dispose() { - $$$1.removeData(this._element, DATA_KEY); - $$$1(this._scrollElement).off(EVENT_KEY); - this._element = null; - this._scrollElement = null; - this._config = null; - this._selector = null; - this._offsets = null; - this._targets = null; - this._activeTarget = null; - this._scrollHeight = null; - }; // Private - - - _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); - - if (typeof config.target !== 'string') { - var id = $$$1(config.target).attr('id'); - - if (!id) { - id = Util.getUID(NAME); - $$$1(config.target).attr('id', id); - } - - config.target = "#" + id; - } - - Util.typeCheckConfig(NAME, config, DefaultType); - return config; - }; - - _proto._getScrollTop = function _getScrollTop() { - return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }; - - _proto._getScrollHeight = function _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }; - - _proto._getOffsetHeight = function _getOffsetHeight() { - return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - }; - - _proto._process = function _process() { - var scrollTop = this._getScrollTop() + this._config.offset; - - var scrollHeight = this._getScrollHeight(); - - var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); - - if (this._scrollHeight !== scrollHeight) { - this.refresh(); - } - - if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1]; - - if (this._activeTarget !== target) { - this._activate(target); - } - - return; - } - - if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { - this._activeTarget = null; - - this._clear(); - - return; - } - - for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); - - if (isActiveTarget) { - this._activate(this._targets[i]); - } - } - }; - - _proto._activate = function _activate(target) { - this._activeTarget = target; - - this._clear(); - - var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style - - - queries = queries.map(function (selector) { - return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]"); - }); - var $link = $$$1(queries.join(',')); - - if ($link.hasClass(ClassName.DROPDOWN_ITEM)) { - $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE); - $link.addClass(ClassName.ACTIVE); - } else { - // Set triggered link as active - $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active - // With both