diff --git a/app/User.php b/app/User.php index 759c810..1ad679d 100644 --- a/app/User.php +++ b/app/User.php @@ -83,14 +83,14 @@ public function adopt(Elephpant $elephpant, int $quantity) public function avatar(): string { if ($this->twitter) { - return 'https://twitter-avatar.now.sh/' . $this->twitter; + return sprintf('https://twitter-avatar.now.sh/%s', $this->twitter); } if (Gravatar::exists($this->email)) { return Gravatar::get($this->email); } - return 'https://ui-avatars.com/api/?name=' . urlencode($this->name); + return sprintf('https://ui-avatars.com/api/?name=%s&size=150', urlencode($this->name)); } public static function generateUsername(User $user): string diff --git a/public/css/app.css b/public/css/app.css index e81b1ba..8ca99d2 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -34,7 +34,7 @@ --breakpoint-md: 768px; --breakpoint-lg: 992px; --breakpoint-xl: 1200px; - --font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } @@ -66,7 +66,7 @@ section { body { margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 0.8125rem; font-weight: 400; line-height: 1.6; @@ -2155,6 +2155,11 @@ pre code { box-shadow: 0 0 0 0.2rem rgba(52, 144, 220, 0.25); } +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + .form-control::-moz-placeholder { color: #6c757d; opacity: 1; @@ -2165,6 +2170,11 @@ pre code { opacity: 1; } +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + .form-control::placeholder { color: #6c757d; opacity: 1; @@ -4262,7 +4272,6 @@ input[type=button].btn-block { background-color: #3490dc; border: 0; border-radius: 1rem; - -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -webkit-appearance: none; appearance: none; @@ -4270,7 +4279,6 @@ input[type=button].btn-block { @media (prefers-reduced-motion: reduce) { .custom-range::-webkit-slider-thumb { - -webkit-transition: none; transition: none; } } @@ -4295,7 +4303,6 @@ input[type=button].btn-block { background-color: #3490dc; border: 0; border-radius: 1rem; - -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -moz-appearance: none; appearance: none; @@ -4303,7 +4310,6 @@ input[type=button].btn-block { @media (prefers-reduced-motion: reduce) { .custom-range::-moz-range-thumb { - -moz-transition: none; transition: none; } } @@ -4331,14 +4337,12 @@ input[type=button].btn-block { background-color: #3490dc; border: 0; border-radius: 1rem; - -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; appearance: none; } @media (prefers-reduced-motion: reduce) { .custom-range::-ms-thumb { - -ms-transition: none; transition: none; } } @@ -5271,21 +5275,18 @@ input[type=button].btn-block { border-color: #dee2e6; } -.pagination-lg .page-link, -.custom-pagination ul .page-link { +.pagination-lg .page-link { padding: 0.75rem 1.5rem; font-size: 1.015625rem; line-height: 1.5; } -.pagination-lg .page-item:first-child .page-link, -.custom-pagination ul .page-item:first-child .page-link { +.pagination-lg .page-item:first-child .page-link { border-top-left-radius: 0.3rem; border-bottom-left-radius: 0.3rem; } -.pagination-lg .page-item:last-child .page-link, -.custom-pagination ul .page-item:last-child .page-link { +.pagination-lg .page-item:last-child .page-link { border-top-right-radius: 0.3rem; border-bottom-right-radius: 0.3rem; } @@ -6377,7 +6378,7 @@ a.close.disabled { z-index: 1070; display: block; margin: 0; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-style: normal; font-weight: 400; line-height: 1.6; @@ -6502,7 +6503,7 @@ a.close.disabled { z-index: 1060; display: block; max-width: 276px; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-style: normal; font-weight: 400; line-height: 1.6; @@ -10953,7 +10954,7 @@ a.text-dark:focus { } .flag-icon-ag { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ag.svg?cce32c739dde31fdbee1e421de18aeac); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ag.svg?5c33e55d155844898cddc1b33b3fb7eb); } .flag-icon-ag.flag-icon-squared { @@ -10961,11 +10962,11 @@ a.text-dark:focus { } .flag-icon-ai { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ai.svg?c2f29c4d57cfcba3c9b2374b2c7e461f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ai.svg?6e2a2d86e52474899ebbecfa29e112c0); } .flag-icon-ai.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/ai.svg?9fe4d6b75d40228a802475e855522ad0); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/ai.svg?c1f95de379bf9c46835de6356c88987b); } .flag-icon-al { @@ -10993,11 +10994,11 @@ a.text-dark:focus { } .flag-icon-aq { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/aq.svg?65afe1f1ffb9d9a23d25d2327ba2c3d3); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/aq.svg?aeef847414331284d772e09804b1aad6); } .flag-icon-aq.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/aq.svg?65448909a82325121a92bb71012091d7); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/aq.svg?54628a07b11d252bd12c5f1f4d481727); } .flag-icon-ar { @@ -11009,7 +11010,7 @@ a.text-dark:focus { } .flag-icon-as { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/as.svg?16f433a627bc83a007bba2cbaa686aee); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/as.svg?c4acda79244e1856c7afa7c0a2a8c126); } .flag-icon-as.flag-icon-squared { @@ -11025,15 +11026,15 @@ a.text-dark:focus { } .flag-icon-au { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/au.svg?503a3a980ccbc651a8acc57b6f6d2dab); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/au.svg?37a544275a1a5fbbe0662dc634d7abd7); } .flag-icon-au.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/au.svg?9b18ee0449e1b5cd1c783fda310eed4f); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/au.svg?da96b2e8d07bf4acc3176d10417219d0); } .flag-icon-aw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/aw.svg?47ea7038c8fea471afdd906694068310); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/aw.svg?29aeb3f91f4da71e6766492ca2de716d); } .flag-icon-aw.flag-icon-squared { @@ -11041,7 +11042,7 @@ a.text-dark:focus { } .flag-icon-ax { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ax.svg?c26f83744d3df6899632e575d390681a); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ax.svg?1aaab70377fb8b75181cdf72b459e716); } .flag-icon-ax.flag-icon-squared { @@ -11057,7 +11058,7 @@ a.text-dark:focus { } .flag-icon-ba { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ba.svg?3223166179b08490c6c2291ace1894f0); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ba.svg?71010dff44cc2c8dfb46906c7add051f); } .flag-icon-ba.flag-icon-squared { @@ -11105,15 +11106,15 @@ a.text-dark:focus { } .flag-icon-bh { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bh.svg?ef135f3ca77838cbb6e329d57d250c9a); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bh.svg?392927ca04d16448d14ec44908cc41c5); } .flag-icon-bh.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/bh.svg?90ad3cbd95a2834f0a787db075cdb4fc); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/bh.svg?290519a3ed05bbfa54c4d8bd7490706a); } .flag-icon-bi { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bi.svg?06f36479b44476f25fc935175ac8a596); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bi.svg?d1b41a2c98e33b94ef20059083ad28f4); } .flag-icon-bi.flag-icon-squared { @@ -11121,7 +11122,7 @@ a.text-dark:focus { } .flag-icon-bj { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bj.svg?c81e891543509717b02a594b40afa14a); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bj.svg?148de921897066d0f2146606bb7d97ee); } .flag-icon-bj.flag-icon-squared { @@ -11153,11 +11154,11 @@ a.text-dark:focus { } .flag-icon-bo { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bo.svg?4128202a176b10fa597f1221f8e7e4cd); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bo.svg?86549d404f4087292be166e1c10c2300); } .flag-icon-bo.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/bo.svg?eab17936c2d9dd56edd3f134c8e6f29c); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/bo.svg?19e80b18deed40a81d260bba667bf2be); } .flag-icon-bq { @@ -11177,7 +11178,7 @@ a.text-dark:focus { } .flag-icon-bs { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bs.svg?9f8a4eae81ab5bc495dd7fa4f7b26d87); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bs.svg?910d4bd079b869f493912f6959dc0d77); } .flag-icon-bs.flag-icon-squared { @@ -11193,7 +11194,7 @@ a.text-dark:focus { } .flag-icon-bv { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/bv.svg?78bef9106e11eade7698e39f6ed831c7); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/bv.svg?07434a841ad80dc5ab4512c03a6bf947); } .flag-icon-bv.flag-icon-squared { @@ -11209,7 +11210,7 @@ a.text-dark:focus { } .flag-icon-by { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/by.svg?f4cbd761094b27fc253729dfbacfceeb); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/by.svg?26a195de8eed70c1be4afe687905189f); } .flag-icon-by.flag-icon-squared { @@ -11249,7 +11250,7 @@ a.text-dark:focus { } .flag-icon-cf { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cf.svg?2171101e459db58cc9311ec6a0926648); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cf.svg?667c7a422ea1e92f971848ef8bb347ce); } .flag-icon-cf.flag-icon-squared { @@ -11257,7 +11258,7 @@ a.text-dark:focus { } .flag-icon-cg { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cg.svg?4396b867b33acac643e6d978fb99f1ac); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cg.svg?c8c05bfe0d270cc8c717e7622fe46185); } .flag-icon-cg.flag-icon-squared { @@ -11281,15 +11282,15 @@ a.text-dark:focus { } .flag-icon-ck { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ck.svg?960a7b5a2c2322b898007c4611cecfd0); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ck.svg?bd3a061cfdfb9a0c9e100e5d487b2477); } .flag-icon-ck.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/ck.svg?22bf8119f315420569c9699f027cfd03); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/ck.svg?d66de29cda9f7872d1a346194e41643c); } .flag-icon-cl { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cl.svg?8949f9e6d4f88c4f5bc1fe5f3b4e44c4); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cl.svg?7709f09f2086cc6f774c6a90fc56936a); } .flag-icon-cl.flag-icon-squared { @@ -11329,7 +11330,7 @@ a.text-dark:focus { } .flag-icon-cu { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cu.svg?750c91b200d29892cf10f9887253105f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cu.svg?ff754a33d53402c4661515c94370dec7); } .flag-icon-cu.flag-icon-squared { @@ -11337,7 +11338,7 @@ a.text-dark:focus { } .flag-icon-cv { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cv.svg?f9922e019e929da267a67ee784bdde66); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cv.svg?b50df3fb841396412190948312d54900); } .flag-icon-cv.flag-icon-squared { @@ -11345,7 +11346,7 @@ a.text-dark:focus { } .flag-icon-cw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cw.svg?f1b3043c88d52ecf9222b5987791bbac); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cw.svg?8ae67d02e58530e20364fc04a825c436); } .flag-icon-cw.flag-icon-squared { @@ -11369,11 +11370,11 @@ a.text-dark:focus { } .flag-icon-cz { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/cz.svg?2339f3df385beb6667b8fd621e6a53dd); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/cz.svg?052ec527b4bb18cd4e482c2c6a6ad4f6); } .flag-icon-cz.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/cz.svg?80879b0e86919c6859d875da48efd0e0); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/cz.svg?490443104ecbfc24e2580b16a4d811b7); } .flag-icon-de { @@ -11385,7 +11386,7 @@ a.text-dark:focus { } .flag-icon-dj { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/dj.svg?423c41561146de8c3017bbe35919e0bd); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/dj.svg?3cf620d9f1db1057948ca29c96d0221c); } .flag-icon-dj.flag-icon-squared { @@ -11401,7 +11402,7 @@ a.text-dark:focus { } .flag-icon-dm { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/dm.svg?46f58d408f6a338114dbd063b87f97f7); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/dm.svg?ebd1283544c0efa12c0a426c532551da); } .flag-icon-dm.flag-icon-squared { @@ -11409,7 +11410,7 @@ a.text-dark:focus { } .flag-icon-do { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/do.svg?79f8bf8c1a68481e09267f5215ef80ca); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/do.svg?3959cf404daf52df4e7ee4e51a53b677); } .flag-icon-do.flag-icon-squared { @@ -11449,7 +11450,7 @@ a.text-dark:focus { } .flag-icon-eh { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/eh.svg?3b662831ee7dd98f8995817929c38fe5); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/eh.svg?1782a8e9e23454d86e7281495011f832); } .flag-icon-eh.flag-icon-squared { @@ -11465,15 +11466,15 @@ a.text-dark:focus { } .flag-icon-es { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/es.svg?50623e6a761b392b5381ce35e8a77f99); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/es.svg?edcb7b23c49d5108b82d84d61581b5df); } .flag-icon-es.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/es.svg?afff247381e7ebe7d31b609f33eca644); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/es.svg?fe6e4f64e6169435c3fb99149ce23f2d); } .flag-icon-et { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/et.svg?2ebb0d3d6e63baf78a33bca7e1ae9326); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/et.svg?6260d578e994d987ac91d64ed810884a); } .flag-icon-et.flag-icon-squared { @@ -11489,23 +11490,23 @@ a.text-dark:focus { } .flag-icon-fj { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/fj.svg?60620e850f30b0da0d89bc25f3d69958); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/fj.svg?9cf8e9b1b522ca0a4cb6b745b0254b43); } .flag-icon-fj.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/fj.svg?76a7a39e11d32487b82b58046c23e708); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/fj.svg?288993718da65bf5d87b55fdbe21fa65); } .flag-icon-fk { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/fk.svg?519e3de544b46b3524a5a2bbbc383625); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/fk.svg?2c84e61444d4c791e31053ec23471c30); } .flag-icon-fk.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/fk.svg?aeb2d58832c6dc501253d235d5467fe3); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/fk.svg?a8bdd9549d8b659679f0df6f49f2b113); } .flag-icon-fm { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/fm.svg?59c5190c55c637cc6786bcab140eb22c); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/fm.svg?2b14fecb01ff1af11129008a123f4713); } .flag-icon-fm.flag-icon-squared { @@ -11513,7 +11514,7 @@ a.text-dark:focus { } .flag-icon-fo { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/fo.svg?037e466d03f81cd46e76b58aa73fe492); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/fo.svg?b08620b37d2f4e306b5f687e63b0a8ab); } .flag-icon-fo.flag-icon-squared { @@ -11541,7 +11542,7 @@ a.text-dark:focus { } .flag-icon-gb.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/gb.svg?5db9fea0ec9e05cfb98e7387be5d0aa7); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/gb.svg?50f7fd14ca63b8b05bdbf0554a5092d8); } .flag-icon-gd { @@ -11553,11 +11554,11 @@ a.text-dark:focus { } .flag-icon-ge { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ge.svg?16f859b527e54ef4c757aba84595516f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ge.svg?292fa4585c8ab314c207c401fac8996f); } .flag-icon-ge.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/ge.svg?d3665bf12d34ff71ab308c6f4e32fd25); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/ge.svg?5f68e7f370e90338682ffa228db024a2); } .flag-icon-gf { @@ -11601,7 +11602,7 @@ a.text-dark:focus { } .flag-icon-gm { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/gm.svg?50fe2799b099599b89f80b4d25376134); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/gm.svg?f06a98cd5c0b07d6c3d0d7cc2f6a40b8); } .flag-icon-gm.flag-icon-squared { @@ -11649,11 +11650,11 @@ a.text-dark:focus { } .flag-icon-gt { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/gt.svg?656c9899d22b166292448de76509d46c); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/gt.svg?c622f79a26908f88644f7fe10ddb2a7a); } .flag-icon-gt.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/gt.svg?d6b5b664755ae293fefaab4511db8b9b); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/gt.svg?4e031e0aad2c5ea6da34ffd4ee7452cb); } .flag-icon-gu { @@ -11681,7 +11682,7 @@ a.text-dark:focus { } .flag-icon-hk { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/hk.svg?7428ec1c480645e3654a2729c9f6e07f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/hk.svg?06803e0e3ce471931e80d326aa5ae7bc); } .flag-icon-hk.flag-icon-squared { @@ -11745,7 +11746,7 @@ a.text-dark:focus { } .flag-icon-il { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/il.svg?874270d66e9553b21e76dc1d433ba4a9); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/il.svg?f62b32f0be82b0a6d6942467ca871fa8); } .flag-icon-il.flag-icon-squared { @@ -11753,7 +11754,7 @@ a.text-dark:focus { } .flag-icon-im { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/im.svg?8c10222d11a27a76e0bb29224c6f743c); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/im.svg?d1bb9c3844782af65b7c2d777c96f8da); } .flag-icon-im.flag-icon-squared { @@ -11769,7 +11770,7 @@ a.text-dark:focus { } .flag-icon-io { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/io.svg?3ddd1280f6e320712021a1f68ee5ae11); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/io.svg?d38b034a29af70f5925b0a1a89d67897); } .flag-icon-io.flag-icon-squared { @@ -11785,7 +11786,7 @@ a.text-dark:focus { } .flag-icon-ir { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ir.svg?23e0f96c3fa45df393a3c1d184b2df34); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ir.svg?798b81700d17131777ce8bd4e5b29ed4); } .flag-icon-ir.flag-icon-squared { @@ -11793,7 +11794,7 @@ a.text-dark:focus { } .flag-icon-is { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/is.svg?2ce20c50765b6cccf87ee4b269d8c507); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/is.svg?cff140f41d09ba1961eb5e6fd9f36331); } .flag-icon-is.flag-icon-squared { @@ -11809,11 +11810,11 @@ a.text-dark:focus { } .flag-icon-je { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/je.svg?e0932aed817435f70cf058dd3261ae1c); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/je.svg?0d480b9959fab5f8d5d502c518f5ac4e); } .flag-icon-je.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/je.svg?ab89781e75ca3440dcb86aa8dbd620f3); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/je.svg?e170f442844c82e4837c021430cc7f68); } .flag-icon-jm { @@ -11825,7 +11826,7 @@ a.text-dark:focus { } .flag-icon-jo { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/jo.svg?9e2f2b3ac5784152799cde822b9ebc29); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/jo.svg?118c5546136b7d67daa584332e9c15ed); } .flag-icon-jo.flag-icon-squared { @@ -11833,7 +11834,7 @@ a.text-dark:focus { } .flag-icon-jp { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/jp.svg?3e72015c537875435192c3b2d832042e); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/jp.svg?99bcc1d7d64452384621f3713ef9c7e5); } .flag-icon-jp.flag-icon-squared { @@ -11849,7 +11850,7 @@ a.text-dark:focus { } .flag-icon-kg { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/kg.svg?1cfa1c79dd521076fb17f8d024e3d19f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/kg.svg?f33d1ced159db7a12d7d08d8ef8da6f7); } .flag-icon-kg.flag-icon-squared { @@ -11865,7 +11866,7 @@ a.text-dark:focus { } .flag-icon-ki { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ki.svg?db7e40f60e21ad4b6b6465409ce745b3); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ki.svg?fb01f774c61dfb4cd7c3a6457bf5d016); } .flag-icon-ki.flag-icon-squared { @@ -11873,7 +11874,7 @@ a.text-dark:focus { } .flag-icon-km { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/km.svg?9b06043d7f9a227bc63532af67999125); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/km.svg?0f12d30cd1bc75d3d38768f1aa7d4d90); } .flag-icon-km.flag-icon-squared { @@ -11881,7 +11882,7 @@ a.text-dark:focus { } .flag-icon-kn { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/kn.svg?bde74c6da4f2cff6fe3ae84b510b1857); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/kn.svg?b0fd5e10c0f172cd3cb36b93dda2d585); } .flag-icon-kn.flag-icon-squared { @@ -11889,7 +11890,7 @@ a.text-dark:focus { } .flag-icon-kp { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/kp.svg?9c53429167b92e260e1ec30e1686b93b); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/kp.svg?07ebeb5c6be5c8f85ba2bff84abda65d); } .flag-icon-kp.flag-icon-squared { @@ -11897,7 +11898,7 @@ a.text-dark:focus { } .flag-icon-kr { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/kr.svg?60fde7fc2f6005c1131b87ce63370ffd); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/kr.svg?eb55e63b162077da0af3eb62f0525a44); } .flag-icon-kr.flag-icon-squared { @@ -11905,7 +11906,7 @@ a.text-dark:focus { } .flag-icon-kw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/kw.svg?496fa4662f48d2d7e3bd946177905dc4); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/kw.svg?0d0ac54c4acaab7536baee3de6fbee11); } .flag-icon-kw.flag-icon-squared { @@ -11929,7 +11930,7 @@ a.text-dark:focus { } .flag-icon-la { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/la.svg?0f124ae33af5a9291262592979c90f55); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/la.svg?dba082d3eedbed8b99f32c841b35d951); } .flag-icon-la.flag-icon-squared { @@ -11937,7 +11938,7 @@ a.text-dark:focus { } .flag-icon-lb { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/lb.svg?e33a49a9a071a76dd393f2928ce0f808); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/lb.svg?148d815d8a9bc815acbf0f9fb28fb016); } .flag-icon-lb.flag-icon-squared { @@ -11969,7 +11970,7 @@ a.text-dark:focus { } .flag-icon-lr { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/lr.svg?309ccbd814f8f4ab23dd5a3116f9f2ac); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/lr.svg?039251e3b986c21ad72336c16b0cf940); } .flag-icon-lr.flag-icon-squared { @@ -12009,7 +12010,7 @@ a.text-dark:focus { } .flag-icon-ly { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ly.svg?d089645e2ba9f431431b479cc902bf43); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ly.svg?6732f3d4057493716a13e86992b31eec); } .flag-icon-ly.flag-icon-squared { @@ -12105,15 +12106,15 @@ a.text-dark:focus { } .flag-icon-mo { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/mo.svg?b6d4d1f6c34ca7e148035b1aea886080); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/mo.svg?e1178856d7fef5a8dcd53af9f9836ab7); } .flag-icon-mo.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/mo.svg?67acac75dc2e1cb667560972d6996ea6); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/mo.svg?de26729cbe5d3e54824a22abcfea0e7a); } .flag-icon-mp { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/mp.svg?c5eb7f233b097ecfc5f78b3959907dcc); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/mp.svg?c6f932b7e90d48f998af1b21d5255e72); } .flag-icon-mp.flag-icon-squared { @@ -12137,11 +12138,11 @@ a.text-dark:focus { } .flag-icon-ms { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ms.svg?e147bd2bb2aa7f31e3804673c8564340); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ms.svg?ea6166d85b5b046758d7d92d640c12a1); } .flag-icon-ms.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/ms.svg?ad88044d48d7c401d3bec290c5048a0b); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/ms.svg?7ba58086a9a064b8acc53cf756d7b7e1); } .flag-icon-mt { @@ -12193,7 +12194,7 @@ a.text-dark:focus { } .flag-icon-mz { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/mz.svg?ef4657da4e39ea91de728d93ce59d7c9); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/mz.svg?e56398c58fab3cc5bf44acf78d637369); } .flag-icon-mz.flag-icon-squared { @@ -12201,7 +12202,7 @@ a.text-dark:focus { } .flag-icon-na { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/na.svg?bb49a4035c384be9926bac6004bea21f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/na.svg?825237ef833e080c14a36648149bab24); } .flag-icon-na.flag-icon-squared { @@ -12209,11 +12210,11 @@ a.text-dark:focus { } .flag-icon-nc { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/nc.svg?b8c9f5e4fa65dc17c5f07773616fa3cb); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/nc.svg?382945f6a6d6cd32a3748e0b29bbd26e); } .flag-icon-nc.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/nc.svg?d393b8faea4e68b19f4d3d920480dbcd); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/nc.svg?a52b92cdd01aaaf3641e1914c08a9017); } .flag-icon-ne { @@ -12241,11 +12242,11 @@ a.text-dark:focus { } .flag-icon-ni { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ni.svg?7b131ab3ceaf55696b688d2617f21f54); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ni.svg?0ed6adbb66eaabe2369a75ef8954c252); } .flag-icon-ni.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/ni.svg?baafd7d7fc1b69642270c1c1fee58bed); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/ni.svg?f615a271594bba2c2542119c8c9c9ab0); } .flag-icon-nl { @@ -12265,15 +12266,15 @@ a.text-dark:focus { } .flag-icon-np { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/np.svg?b66578a5c732da35e2c8af86e46ff93b); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/np.svg?bb46230f55cc3dd4b18ef490d0edfd0c); } .flag-icon-np.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/np.svg?27f0f4e72e359732d04452c336db37fb); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/np.svg?972c9ba084965f426e6ba8fa9a4ef3d1); } .flag-icon-nr { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/nr.svg?d16edc69065bf2bd0b0ba47650201d6b); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/nr.svg?34ed2f24b50edf07808df2d0917363a7); } .flag-icon-nr.flag-icon-squared { @@ -12281,7 +12282,7 @@ a.text-dark:focus { } .flag-icon-nu { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/nu.svg?433deb3d047d08459797f7a9da38685f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/nu.svg?c90cf0544d4b2dfc89febebf2c4dffbc); } .flag-icon-nu.flag-icon-squared { @@ -12289,15 +12290,15 @@ a.text-dark:focus { } .flag-icon-nz { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/nz.svg?3241e92770d44bbe8518b3ed7cabab9a); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/nz.svg?45e4fa75b5af60ca530a14977396b6c5); } .flag-icon-nz.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/nz.svg?7dab6e5e9d9e0d4f95e588ae563d5d77); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/nz.svg?d4d4946364f30dbcc11cf513adcdfaf8); } .flag-icon-om { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/om.svg?1798270ba5e7dc130458959dccc26b22); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/om.svg?eeba5214a195c15f9afb7f48460d1c07); } .flag-icon-om.flag-icon-squared { @@ -12305,7 +12306,7 @@ a.text-dark:focus { } .flag-icon-pa { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pa.svg?d0787677f0d7c9cdaa8f6acca3f19245); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pa.svg?0d16b0e8d8769ea32bc60c91491a6759); } .flag-icon-pa.flag-icon-squared { @@ -12321,11 +12322,11 @@ a.text-dark:focus { } .flag-icon-pf { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pf.svg?bab3b7a56aa5cd5f44235c47ea55f5e9); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pf.svg?06579c69763efcdf46e7f4b0da7bbd41); } .flag-icon-pf.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/pf.svg?2a69c581854033f017ef92651bf103ad); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/pf.svg?dc50aec245ad295943a90a64377084e0); } .flag-icon-pg { @@ -12345,7 +12346,7 @@ a.text-dark:focus { } .flag-icon-pk { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pk.svg?c2e1a15939a23c5894eb4af1f20e3e73); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pk.svg?6f3a3f18e1a255c0f56531173faa2c99); } .flag-icon-pk.flag-icon-squared { @@ -12369,7 +12370,7 @@ a.text-dark:focus { } .flag-icon-pn { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pn.svg?c4a2e49ffb6e0dc37c7e4f372b634eb8); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pn.svg?1fdeed04cbaa0c72116fb7867af2f6b1); } .flag-icon-pn.flag-icon-squared { @@ -12377,7 +12378,7 @@ a.text-dark:focus { } .flag-icon-pr { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pr.svg?0811a0517cf38bb44f513ab15b7532de); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pr.svg?b55721a59f693ffb8690234d56c218cf); } .flag-icon-pr.flag-icon-squared { @@ -12385,7 +12386,7 @@ a.text-dark:focus { } .flag-icon-ps { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ps.svg?42f2391e39ad07037687596ba3fbab75); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ps.svg?07005a7fd06016e6ceadc545e3296f7a); } .flag-icon-ps.flag-icon-squared { @@ -12401,7 +12402,7 @@ a.text-dark:focus { } .flag-icon-pw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/pw.svg?20a1d020151e19375915c509633d5018); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/pw.svg?da816eabe5524958f2f67651bacd4dab); } .flag-icon-pw.flag-icon-squared { @@ -12441,7 +12442,7 @@ a.text-dark:focus { } .flag-icon-rs { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/rs.svg?291d0fb654f2738012dabe35f370a1cd); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/rs.svg?572302a3f389d3e70623f268bf123f1b); } .flag-icon-rs.flag-icon-squared { @@ -12465,7 +12466,7 @@ a.text-dark:focus { } .flag-icon-sa { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sa.svg?c36d1991b52ce043a0ae18b32a4da5da); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sa.svg?c066c8fcea7b98ce7322b199302c98a0); } .flag-icon-sa.flag-icon-squared { @@ -12473,7 +12474,7 @@ a.text-dark:focus { } .flag-icon-sb { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sb.svg?aa819297c44f0a9d29fa4aaf18a1bf32); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sb.svg?c23eab6d60cb87d15c513db36b08fe63); } .flag-icon-sb.flag-icon-squared { @@ -12481,7 +12482,7 @@ a.text-dark:focus { } .flag-icon-sc { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sc.svg?e6584421fdc8b72dfd9e2a139b71e82a); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sc.svg?30759b7aada6d9489543086f1e388fbe); } .flag-icon-sc.flag-icon-squared { @@ -12489,7 +12490,7 @@ a.text-dark:focus { } .flag-icon-sd { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sd.svg?c466d90ea717a1f99f0ca61fd244b0f3); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sd.svg?9b0974f16dc3e254519c26f9414d9a41); } .flag-icon-sd.flag-icon-squared { @@ -12497,15 +12498,15 @@ a.text-dark:focus { } .flag-icon-se { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/se.svg?fd663a70a1a92a395078c36bc5d122ad); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/se.svg?fe725901338e5651e1429ef0b241538a); } .flag-icon-se.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/se.svg?92c66d8396d5604a9b8fc05153e9163e); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/se.svg?b039bdb8e50c968b6c50c8110676061f); } .flag-icon-sg { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sg.svg?5e6ed3f10d1de224079d77fe6f59ce97); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sg.svg?199f925bed6a1213784006ed59757d15); } .flag-icon-sg.flag-icon-squared { @@ -12521,7 +12522,7 @@ a.text-dark:focus { } .flag-icon-si { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/si.svg?31fbdc5b5842cfa094afed00d9baf083); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/si.svg?ffe9e7a4c866d11a8a3aada98520c568); } .flag-icon-si.flag-icon-squared { @@ -12569,7 +12570,7 @@ a.text-dark:focus { } .flag-icon-so { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/so.svg?f91fb92c0ca6934e1e008f8f97e58c63); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/so.svg?28889c60642fd3d81b003fb3d308d2f1); } .flag-icon-so.flag-icon-squared { @@ -12601,15 +12602,15 @@ a.text-dark:focus { } .flag-icon-sv { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sv.svg?1176ea281282d6b053af86809e32d6f9); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sv.svg?a5d4dc6e8546958be7765a22d41bee09); } .flag-icon-sv.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/sv.svg?26ee887282519008e13d35bd2ad362a8); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/sv.svg?5ae29e80e0a8ebe1a3da5d6e0d6d9223); } .flag-icon-sx { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sx.svg?522d898c19396a45caa51ed0f0f2543e); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sx.svg?3651501c074cfb2a3d825f001a84da4f); } .flag-icon-sx.flag-icon-squared { @@ -12625,7 +12626,7 @@ a.text-dark:focus { } .flag-icon-sz { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/sz.svg?cfb8269f38d55f7f388bca2ae6d18fb4); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/sz.svg?5419df5b7775575728a3bd911d55a03a); } .flag-icon-sz.flag-icon-squared { @@ -12657,7 +12658,7 @@ a.text-dark:focus { } .flag-icon-tg { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tg.svg?025deae88a72695eb60991ab1247714f); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tg.svg?e602a907e1228d0fc75e6278e916e13d); } .flag-icon-tg.flag-icon-squared { @@ -12689,7 +12690,7 @@ a.text-dark:focus { } .flag-icon-tl { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tl.svg?3c1ccf1158d75af368e003eeac4716c7); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tl.svg?7942bccbe6f775c88769deca528b85ab); } .flag-icon-tl.flag-icon-squared { @@ -12697,7 +12698,7 @@ a.text-dark:focus { } .flag-icon-tm { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tm.svg?b13d1440e1d8f4c55361656fd3191952); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tm.svg?0e07900d29cd01ea6403f184bc73eff4); } .flag-icon-tm.flag-icon-squared { @@ -12705,7 +12706,7 @@ a.text-dark:focus { } .flag-icon-tn { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tn.svg?50cd91018d742d2f5c31a158d417ea87); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tn.svg?00f9c4f5b934fcfa29fab40b7b417d6b); } .flag-icon-tn.flag-icon-squared { @@ -12733,19 +12734,19 @@ a.text-dark:focus { } .flag-icon-tt.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/tt.svg?4705d420d21a5ba8a26959ac48f8f647); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/tt.svg?27c618af43e3f072906916a4fafc98d1); } .flag-icon-tv { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tv.svg?829fb9d89912457f171d40d33805a83e); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tv.svg?d78bd31e5a11723db4d4ca9a01075817); } .flag-icon-tv.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/tv.svg?a595f49d6d5586b06f4be66d5a8f7a15); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/tv.svg?f4b7afec4d58a73acc185cdcd045c4eb); } .flag-icon-tw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tw.svg?8a194685378977299ae31f5e940b2d58); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tw.svg?556e491501defd220fe6d3a85a016219); } .flag-icon-tw.flag-icon-squared { @@ -12753,7 +12754,7 @@ a.text-dark:focus { } .flag-icon-tz { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/tz.svg?88c89454adfe247406b430a46c965da8); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/tz.svg?d3df42da90c6a077c532fad041b2246e); } .flag-icon-tz.flag-icon-squared { @@ -12769,7 +12770,7 @@ a.text-dark:focus { } .flag-icon-ug { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/ug.svg?be11ef3932f4010356d708d10c60f1e9); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/ug.svg?6e9366a623ce966ed6788b3414b69af1); } .flag-icon-ug.flag-icon-squared { @@ -12777,7 +12778,7 @@ a.text-dark:focus { } .flag-icon-um { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/um.svg?8754eddfe66cfeebda8977e08505dfdb); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/um.svg?05615112706e0396ff8c91eb9b6c05f2); } .flag-icon-um.flag-icon-squared { @@ -12833,11 +12834,11 @@ a.text-dark:focus { } .flag-icon-vg { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/vg.svg?b37358a1a76ab385e4ea28f3732b7f57); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/vg.svg?adc18938a1c42ae02b48832e7ac424b4); } .flag-icon-vg.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/vg.svg?a796b16d8f1c42862953487aed9bd660); + background-image: url(/images/vendor/flag-icon-css/flags/1x1/vg.svg?279584ca9a234a17707ad8e2cb463c58); } .flag-icon-vi { @@ -12849,7 +12850,7 @@ a.text-dark:focus { } .flag-icon-vn { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/vn.svg?6b3aef51e8b58cf029a85087e87591b5); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/vn.svg?a62ad62f354af546c5d9df10b183f995); } .flag-icon-vn.flag-icon-squared { @@ -12857,7 +12858,7 @@ a.text-dark:focus { } .flag-icon-vu { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/vu.svg?859836e7f7e23c3e620dc34e4bf47c79); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/vu.svg?bb3b53136b400aeed6d4d070d2869c37); } .flag-icon-vu.flag-icon-squared { @@ -12897,7 +12898,7 @@ a.text-dark:focus { } .flag-icon-za { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/za.svg?14e7052257d9914b613fc992186d2e90); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/za.svg?70a290afe3dffa54924e7ddffd767687); } .flag-icon-za.flag-icon-squared { @@ -12905,7 +12906,7 @@ a.text-dark:focus { } .flag-icon-zm { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/zm.svg?a9ff495dd331a2364facd4ad5d6891a3); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/zm.svg?4087a827d225cc9fde6140006c4bbf7d); } .flag-icon-zm.flag-icon-squared { @@ -12913,27 +12914,19 @@ a.text-dark:focus { } .flag-icon-zw { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/zw.svg?6ac3949a90f1620a287b06e2b4cb3bc2); + background-image: url(/images/vendor/flag-icon-css/flags/4x3/zw.svg?8250d10eadc1342e2195433f0d61d83a); } .flag-icon-zw.flag-icon-squared { background-image: url(/images/vendor/flag-icon-css/flags/1x1/zw.svg?8b8854659c43952e254a914dfca52018); } -.flag-icon-es-ca { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/es-ca.svg?e9062265c973b4ab42aa70eb66ea8957); -} - -.flag-icon-es-ca.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/es-ca.svg?a35e6a4a92e9aa04f11de348ac82f284); +.flag-icon-es-ct { + background-image: url(/images/vendor/flag-icon-css/flags/4x3/es-ct.svg?46e9ce9e95b5b9c125e2a707cc5fcce9); } -.flag-icon-es-ga { - background-image: url(/images/vendor/flag-icon-css/flags/4x3/es-ga.svg?2618e21f1cd5dcbd95d7b119f7b4e33a); -} - -.flag-icon-es-ga.flag-icon-squared { - background-image: url(/images/vendor/flag-icon-css/flags/1x1/es-ga.svg?151714df0fea994ff25db833a9e9fea1); +.flag-icon-es-ct.flag-icon-squared { + background-image: url(/images/vendor/flag-icon-css/flags/1x1/es-ct.svg?9429ea9cc9f9eae02e83fa174a4b9021); } .flag-icon-eu { @@ -12992,8 +12985,446 @@ a.text-dark:focus { background-image: url(/images/vendor/flag-icon-css/flags/1x1/xk.svg?bd62029ec779b30b2ac80989dc285ae9); } -body { - background-color: #fcfcfc; +.layout .container { + padding: 0; +} + +.layout .container .row { + margin: 0; +} + +.layout .main { + background-color: #fff; + padding: 30px 0 50px 0; +} + +.layout .main h1 { + text-align: center; + font-weight: 600; + font-size: 35px; + margin-bottom: 0; +} + +.layout .main p { + margin: 25px 0; + font-size: 18px; + text-align: center; +} + +.layout .main p a { + font-weight: 600; +} + +.layout .main img.avatar { + display: flex; + margin-left: auto; + margin-right: auto; + margin-bottom: 25px; + width: 150px; +} + +.layout .main .actions { + display: flex; + justify-content: center; +} + +.layout .content { + padding: 50px 0; +} + +.layout .content-title { + text-align: center; + font-size: 15px; + margin-bottom: 50px; +} + +.layout .separator { + border-color: #b7b7b7; +} + +.layout .alert { + font-size: 15px; + font-weight: 600; +} + +@media (max-width: 768px) { + .btn { + width: 100%; + } +} + +.btn-primary { + background-color: #000; + color: #fff; + border: 2px solid #000; + border-radius: 50px; + font-weight: 600; + padding: 10px 80px; + font-size: 15px; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active { + background-color: #fff !important; + color: #000 !important; + box-shadow: none !important; + border: 2px solid #000 !important; +} + +.btn-link { + color: #000; + font-weight: 600; + font-size: 15px; + padding: 10px 30px; +} + +.btn-link:hover, +.btn-link:focus { + color: #000; +} + +.btn-link:hover:focus, +.btn-link:focus:focus { + box-shadow: none !important; +} + +.card { + border: none; + border-radius: 30px; +} + +.card img { + border-radius: 30px 30px 0 0; +} + +.card-title { + font-size: 17px; + font-weight: 600; + text-align: center; +} + +.card-text { + font-size: 13px; + text-align: center; +} + +footer { + font-size: 14px; +} + +footer a { + font-weight: 600; +} + +form { + width: 100%; +} + +form .form-group { + margin-bottom: 20px; +} + +form .form-group label { + font-weight: 600; + font-size: 15px; + margin-bottom: 5px; +} + +form .form-group input[type=text], +form .form-group input[type=email], +form .form-group input[type=password] { + border: none; + background-color: #fff; + border-radius: 10px; + color: #000; + padding: 20px 15px; + font-size: 15px; +} + +form .form-group input[type=text]:focus, +form .form-group input[type=email]:focus, +form .form-group input[type=password]:focus { + outline: none; + box-shadow: none; +} + +form .form-group.checkbox-container label { + display: flex; + align-items: center; + margin-bottom: 0; + padding-left: 40px; + height: 30px; +} + +form .form-group.checkbox-container label input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} + +form .form-group.checkbox-container label input:checked ~ .checkmark { + background-color: #3490dc; +} + +form .form-group.checkbox-container label input:checked ~ .checkmark:after { + display: block; +} + +form .form-group.checkbox-container label .checkmark { + position: absolute; + top: 0; + left: 15px; + height: 30px; + width: 30px; + background-color: #fff; + border-radius: 10px; +} + +form .form-group.checkbox-container label .checkmark:after { + content: ""; + position: absolute; + display: none; + left: 11px; + top: 6px; + width: 8px; + height: 15px; + border: solid #fff; + border-width: 0 3px 3px 0; + transform: rotate(45deg); +} + +form .form-group .input-group-text { + background-color: #dadada; + border: none; + font-weight: 600; + color: #000; +} + +form .form-group select { + border: none; + border-radius: 10px; + height: 40px; + color: #000; + font-size: 15px; + -webkit-appearance: none; + -moz-appearance: none; + background-image: linear-gradient(45deg, transparent 50%, #000 50%), linear-gradient(135deg, #000 50%, transparent 50%), linear-gradient(to right, transparent, transparent); + background-position: calc(100% - 20px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), 100% 0; + background-size: 5px 5px, 5px 5px, 2.5em 2.5em; + background-repeat: no-repeat; +} + +form .form-group select:focus { + box-shadow: none; +} + +form .actions { + display: flex; + justify-content: center; + align-items: center; +} + +@media (max-width: 768px) { + form .actions { + flex-direction: column; + } +} + +.navbar { + padding: 20px 1rem; + background-color: #fff; +} + +.navbar-brand { + display: flex; + align-items: center; + padding: 0; +} + +.navbar-brand .logo { + width: 70px; + margin-right: 20px; +} + +@media (max-width: 992px) { + .navbar-brand .logo { + width: 60px; + margin-right: 10px; + } +} + +.navbar-brand .navbar-title { + font-size: 30px; + font-weight: 600; + color: #000; +} + +@media (max-width: 992px) { + .navbar-brand .navbar-title { + font-size: 23px; + } +} + +.navbar-toggler .btn-menu { + width: 25px; +} + +.navbar li { + padding: 10px 0; +} + +.navbar li:not(:last-child) { + margin-right: 20px; +} + +.navbar li.active { + font-weight: 600; + text-decoration: underline; +} + +.navbar li.dropdown .nav-link:hover { + text-decoration: none; +} + +.navbar li .nav-link { + color: #000; + font-size: 20px; + padding: 0 !important; +} + +@media (max-width: 992px) { + .navbar li .nav-link { + font-size: 15px; + } +} + +.navbar li .nav-link:hover { + text-decoration: underline; +} + +.navbar li .dropdown-menu { + border: none; + min-width: auto; +} + +@media (min-width: 768px) { + .navbar li .dropdown-menu { + padding: 0; + } +} + +.navbar li .dropdown-item { + font-size: 18px; +} + +@media (min-width: 768px) { + .navbar li .dropdown-item { + text-align: right; + } +} + +@media (max-width: 992px) { + .navbar li .dropdown-item { + font-size: 15px; + } +} + +.navbar li .dropdown-item:hover, +.navbar li .dropdown-item:focus { + background-color: transparent; + text-decoration: underline; +} + +.pagination .page-item.active .page-link { + background-color: #000; + border-color: #000; + color: #fff; +} + +.pagination .page-item .page-link { + color: #000; +} + +.pagination .page-item .page-link:focus { + box-shadow: none; +} + +.table { + margin-bottom: 0; +} + +.table-title { + margin-bottom: 20px; + font-size: 15px; + text-align: center; +} + +.table-footer { + background-color: #fff; + text-align: center; + font-size: 15px; +} + +.table thead { + background-color: #fff; + font-size: 15px; +} + +.table thead th { + border-bottom: none; +} + +.table thead th:first-child { + border-top-left-radius: 10px; +} + +.table thead th:last-child { + border-top-right-radius: 10px; +} + +.table tbody { + background-color: rgba(0, 0, 0, 0.03); +} + +.table tbody tr td { + font-size: 14px; +} + +.table tbody tr td:first-child { + font-weight: 600; +} + +.table tbody tr:last-child td:first-child { + border-bottom-left-radius: 10px; +} + +.table tbody tr:last-child td:last-child { + border-bottom-right-radius: 10px; +} + +.table td, +.table th { + border: none; +} + +.herd .alert { + font-weight: normal; + text-align: center; + margin-bottom: 0; +} + +.herd .stat { + background-color: #dadada; + border-radius: 10px; + text-align: center; + padding: 10px 0; +} + +.herd-card .card-header { + border-radius: 10px 10px 0 0; } .herd-card .list-group-item { @@ -13005,36 +13436,76 @@ body { border-color: #38c172; } -.navbar-brand { - padding-top: 0; - padding-bottom: 0; +.herd-list .list-group-item { + border-bottom: 1px solid #efefef !important; } -.navbar-brand .logo { - width: 30px; +.herd-list .list-group-item:first-child { + border-radius: 10px 10px 0 0; } -.jumbotron .lead { - margin-bottom: 0; +.herd-list .list-group-item:last-child { + border-radius: 0 0 10px 10px; } -.avatar-circle { - width: 128px; - height: 128px; - background-color: #e9ecef; - text-align: center; - border-radius: 50%; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; +.ranking form .form-group { + display: flex; + flex-wrap: wrap; + justify-content: center; } -.avatar-circle .initials { - position: relative; - top: 36px; - font-size: 62.5px; - line-height: 62.5px; - color: #212529; - font-family: "Courier New", monospace; - font-weight: bold; +.ranking form .form-group select { + width: auto; +} + +.ranking form .form-group button { + padding: 5px 50px; + width: 200px; +} + +@media (max-width: 767px) { + .ranking form .form-group button { + margin-top: 10px; + } +} + +.trade .card-header { + background: none; + border-bottom: 1px solid #efefef; +} + +.trade .card-body .card { + border: 1px solid #dadada; + background-color: #dadada; + border-radius: 10px; +} + +.trade .card-body .card-header { + font-weight: 600; +} + +.trade .card-body .card .list-group-item:not(:last-child) { + border-bottom: 1px solid #dadada !important; +} + +.trade .card-body .card .list-group-item:last-child { + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; +} + +.trade .card-body .form-box textarea { + border-radius: 10px; +} + +.trade .card-body .form-box button { + display: block; + margin-left: auto; + margin-right: auto; +} + +body { + font-family: "Quicksand", sans-serif; + background-color: #efefef; + margin: 0; } diff --git a/public/img/elephpant.svg b/public/img/elephpant.svg index a83614f..fe63302 100644 --- a/public/img/elephpant.svg +++ b/public/img/elephpant.svg @@ -1 +1 @@ -Asset 3 \ No newline at end of file +Asset 3 diff --git a/public/img/menu.svg b/public/img/menu.svg new file mode 100644 index 0000000..09052a0 --- /dev/null +++ b/public/img/menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/js/app.js b/public/js/app.js index e35ccf8..94f1b5c 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -2280,7 +2280,6 @@ module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/li var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); var settle = __webpack_require__(/*! ./../core/settle */ "./node_modules/axios/lib/core/settle.js"); var buildURL = __webpack_require__(/*! ./../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js"); -var buildFullPath = __webpack_require__(/*! ../core/buildFullPath */ "./node_modules/axios/lib/core/buildFullPath.js"); var parseHeaders = __webpack_require__(/*! ./../helpers/parseHeaders */ "./node_modules/axios/lib/helpers/parseHeaders.js"); var isURLSameOrigin = __webpack_require__(/*! ./../helpers/isURLSameOrigin */ "./node_modules/axios/lib/helpers/isURLSameOrigin.js"); var createError = __webpack_require__(/*! ../core/createError */ "./node_modules/axios/lib/core/createError.js"); @@ -2303,8 +2302,7 @@ module.exports = function xhrAdapter(config) { requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); } - var fullPath = buildFullPath(config.baseURL, config.url); - request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true); // Set the request timeout in MS request.timeout = config.timeout; @@ -2365,11 +2363,7 @@ module.exports = function xhrAdapter(config) { // Handle timeout request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED', request)); // Clean up request @@ -2383,7 +2377,7 @@ module.exports = function xhrAdapter(config) { var cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.js"); // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined; @@ -2406,8 +2400,8 @@ module.exports = function xhrAdapter(config) { } // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; + if (config.withCredentials) { + request.withCredentials = true; } // Add responseType to request if needed @@ -2686,15 +2680,7 @@ Axios.prototype.request = function request(config) { } config = mergeConfig(this.defaults, config); - - // Set config.method - if (config.method) { - config.method = config.method.toLowerCase(); - } else if (this.defaults.method) { - config.method = this.defaults.method.toLowerCase(); - } else { - config.method = 'get'; - } + config.method = config.method ? config.method.toLowerCase() : 'get'; // Hook up interceptors middleware var chain = [dispatchRequest, undefined]; @@ -2809,38 +2795,6 @@ InterceptorManager.prototype.forEach = function forEach(fn) { module.exports = InterceptorManager; -/***/ }), - -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var isAbsoluteURL = __webpack_require__(/*! ../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); -var combineURLs = __webpack_require__(/*! ../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js"); - -/** - * Creates a new URL by combining the baseURL with the requestedURL, - * only when the requestedURL is not already an absolute URL. - * If the requestURL is absolute, this function returns the requestedURL untouched. - * - * @param {string} baseURL The base URL - * @param {string} requestedURL Absolute or relative URL to combine - * @returns {string} The combined full path - */ -module.exports = function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; -}; - - /***/ }), /***/ "./node_modules/axios/lib/core/createError.js": @@ -2887,6 +2841,8 @@ var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/util var transformData = __webpack_require__(/*! ./transformData */ "./node_modules/axios/lib/core/transformData.js"); var isCancel = __webpack_require__(/*! ../cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js"); var defaults = __webpack_require__(/*! ../defaults */ "./node_modules/axios/lib/defaults.js"); +var isAbsoluteURL = __webpack_require__(/*! ./../helpers/isAbsoluteURL */ "./node_modules/axios/lib/helpers/isAbsoluteURL.js"); +var combineURLs = __webpack_require__(/*! ./../helpers/combineURLs */ "./node_modules/axios/lib/helpers/combineURLs.js"); /** * Throws a `Cancel` if cancellation has been requested. @@ -2906,6 +2862,11 @@ function throwIfCancellationRequested(config) { module.exports = function dispatchRequest(config) { throwIfCancellationRequested(config); + // Support baseURL config + if (config.baseURL && !isAbsoluteURL(config.url)) { + config.url = combineURLs(config.baseURL, config.url); + } + // Ensure headers exist config.headers = config.headers || {}; @@ -2920,7 +2881,7 @@ module.exports = function dispatchRequest(config) { config.headers = utils.merge( config.headers.common || {}, config.headers[config.method] || {}, - config.headers + config.headers || {} ); utils.forEach( @@ -3043,23 +3004,13 @@ module.exports = function mergeConfig(config1, config2) { config2 = config2 || {}; var config = {}; - var valueFromConfig2Keys = ['url', 'method', 'params', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy']; - var defaultToConfig2Keys = [ - 'baseURL', 'url', 'transformRequest', 'transformResponse', 'paramsSerializer', - 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', - 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', - 'maxContentLength', 'validateStatus', 'maxRedirects', 'httpAgent', - 'httpsAgent', 'cancelToken', 'socketPath' - ]; - - utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + utils.forEach(['url', 'method', 'params', 'data'], function valueFromConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } }); - utils.forEach(mergeDeepPropertiesKeys, function mergeDeepProperties(prop) { + utils.forEach(['headers', 'auth', 'proxy'], function mergeDeepProperties(prop) { if (utils.isObject(config2[prop])) { config[prop] = utils.deepMerge(config1[prop], config2[prop]); } else if (typeof config2[prop] !== 'undefined') { @@ -3071,25 +3022,13 @@ module.exports = function mergeConfig(config1, config2) { } }); - utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { - if (typeof config2[prop] !== 'undefined') { - config[prop] = config2[prop]; - } else if (typeof config1[prop] !== 'undefined') { - config[prop] = config1[prop]; - } - }); - - var axiosKeys = valueFromConfig2Keys - .concat(mergeDeepPropertiesKeys) - .concat(defaultToConfig2Keys); - - var otherKeys = Object - .keys(config2) - .filter(function filterAxiosKeys(key) { - return axiosKeys.indexOf(key) === -1; - }); - - utils.forEach(otherKeys, function otherKeysDefaultToConfig2(prop) { + utils.forEach([ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'maxContentLength', + 'validateStatus', 'maxRedirects', 'httpAgent', 'httpsAgent', 'cancelToken', + 'socketPath' + ], function defaultToConfig2(prop) { if (typeof config2[prop] !== 'undefined') { config[prop] = config2[prop]; } else if (typeof config1[prop] !== 'undefined') { @@ -3197,12 +3136,13 @@ function setContentTypeIfUnset(headers, value) { function getDefaultAdapter() { var adapter; - if (typeof XMLHttpRequest !== 'undefined') { - // For browsers use XHR adapter - adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js"); - } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // Only Node.JS has a process variable that is of [[Class]] process + if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { // For node use HTTP adapter adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js"); + } else if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = __webpack_require__(/*! ./adapters/xhr */ "./node_modules/axios/lib/adapters/xhr.js"); } return adapter; } @@ -3724,6 +3664,7 @@ module.exports = function spread(callback) { var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); +var isBuffer = __webpack_require__(/*! is-buffer */ "./node_modules/axios/node_modules/is-buffer/index.js"); /*global toString:true*/ @@ -3741,27 +3682,6 @@ function isArray(val) { return toString.call(val) === '[object Array]'; } -/** - * Determine if a value is undefined - * - * @param {Object} val The value to test - * @returns {boolean} True if the value is undefined, otherwise false - */ -function isUndefined(val) { - return typeof val === 'undefined'; -} - -/** - * Determine if a value is a Buffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Buffer, otherwise false - */ -function isBuffer(val) { - return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) - && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); -} - /** * Determine if a value is an ArrayBuffer * @@ -3818,6 +3738,16 @@ function isNumber(val) { return typeof val === 'number'; } +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + /** * Determine if a value is an Object * @@ -4067,6 +3997,28 @@ module.exports = { }; +/***/ }), + +/***/ "./node_modules/axios/node_modules/is-buffer/index.js": +/*!************************************************************!*\ + !*** ./node_modules/axios/node_modules/is-buffer/index.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ + +module.exports = function isBuffer (obj) { + return obj != null && obj.constructor != null && + typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) +} + + /***/ }), /***/ "./node_modules/bootstrap/dist/js/bootstrap.js": @@ -8505,7 +8457,7 @@ module.exports = { /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.4.1 * https://jquery.com/ * * Includes Sizzle.js @@ -8515,7 +8467,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2019-05-01T21:04Z */ ( function( global, factory ) { @@ -8553,16 +8505,13 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! var arr = []; +var document = window.document; + var getProto = Object.getPrototypeOf; var slice = arr.slice; -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - +var concat = arr.concat; var push = arr.push; @@ -8595,8 +8544,6 @@ var isWindow = function isWindow( obj ) { }; -var document = window.document; - var preservedScriptAttributes = { @@ -8653,7 +8600,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.4.1", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -8661,7 +8608,11 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }; + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; jQuery.fn = jQuery.prototype = { @@ -8727,18 +8678,6 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -8872,10 +8811,9 @@ jQuery.extend( { return true; }, - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); + // Evaluates a script in a global context + globalEval: function( code, options ) { + DOMEval( code, { nonce: options && options.nonce } ); }, each: function( obj, callback ) { @@ -8899,6 +8837,13 @@ jQuery.extend( { return obj; }, + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -8985,7 +8930,7 @@ jQuery.extend( { } // Flatten any nested arrays - return flat( ret ); + return concat.apply( [], ret ); }, // A global GUID counter for objects @@ -9002,7 +8947,7 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { +function( i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); @@ -9024,16 +8969,17 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.4 * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://js.foundation/ * - * Date: 2020-03-14 + * Date: 2019-04-08 */ -( function( window ) { +(function( window ) { + var i, support, Expr, @@ -9073,70 +9019,59 @@ var i, }, // Instance methods - hasOwn = ( {} ).hasOwnProperty, + hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, - pushNative = arr.push, + push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { + if ( list[i] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), rdescend = new RegExp( whitespace + "|>" ), rpseudo = new RegExp( pseudos ), @@ -9148,16 +9083,14 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, rhtml = /HTML$/i, @@ -9173,21 +9106,18 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : high < 0 ? + // BMP codepoint String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -9203,8 +9133,7 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -9229,20 +9158,18 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), + (arr = slice.call( preferredDoc.childNodes )), preferredDoc.childNodes ); - // Support: Android<4.0 // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - pushNative.apply( target, slice.call( els ) ); + push_native.apply( target, slice.call(els) ); } : // Support: IE<9 @@ -9250,9 +9177,8 @@ try { function( target, els ) { var j = target.length, i = 0; - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} + while ( (target[j++] = els[i++]) ) {} target.length = j - 1; } }; @@ -9276,21 +9202,24 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - setDocument( context ); + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // ID selector - if ( ( m = match[ 1 ] ) ) { + if ( (m = match[1]) ) { // Document context if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { + if ( (elem = context.getElementById( m )) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -9309,7 +9238,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && + if ( newContext && (elem = newContext.getElementById( m )) && contains( context, elem ) && elem.id === m ) { @@ -9319,12 +9248,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[ 2 ] ) { + } else if ( match[2] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -9335,11 +9264,11 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + (!rbuggyQSA || !rbuggyQSA.test( selector )) && // Support: IE 8 only // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { newSelector = selector; newContext = context; @@ -9348,36 +9277,27 @@ function Sizzle( selector, context, results, seed ) { // descendant combinators, which is not what we want. // In such cases, we work around the behavior by prefixing every selector in the // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; + if ( nodeType === 1 && rdescend.test( selector ) ) { - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); + groups[i] = "#" + nid + " " + toSelector( groups[i] ); } newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; } try { @@ -9410,14 +9330,12 @@ function createCache() { var keys = []; function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries delete cache[ keys.shift() ]; } - return ( cache[ key + " " ] = value ); + return (cache[ key + " " ] = value); } return cache; } @@ -9436,19 +9354,17 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement( "fieldset" ); + var el = document.createElement("fieldset"); try { return !!fn( el ); - } catch ( e ) { + } catch (e) { return false; } finally { - // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } - // release memory in IE el = null; } @@ -9460,11 +9376,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), + var arr = attrs.split("|"), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; + Expr.attrHandle[ arr[i] ] = handler; } } @@ -9486,7 +9402,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { + while ( (cur = cur.nextSibling) ) { if ( cur === b ) { return -1; } @@ -9514,7 +9430,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; + return (name === "input" || name === "button") && elem.type === type; }; } @@ -9557,7 +9473,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + inDisabledFieldset( elem ) === disabled; } return elem.disabled === disabled; @@ -9579,21 +9495,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { + return markFunction(function( argument ) { argument = +argument; - return markFunction( function( seed, matches ) { + return markFunction(function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); } } - } ); - } ); + }); + }); } /** @@ -9615,7 +9531,7 @@ support = Sizzle.support = {}; */ isXML = Sizzle.isXML = function( elem ) { var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; + docElem = (elem.ownerDocument || elem).documentElement; // Support: IE <=8 // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes @@ -9633,11 +9549,7 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -9646,14 +9558,10 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9 - 11+, Edge 12 - 18+ + // Support: IE 9-11, Edge // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -9665,36 +9573,25 @@ setDocument = Sizzle.setDocument = function( node ) { } } - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert( function( el ) { + support.attributes = assert(function( el ) { el.className = "i"; - return !el.getAttribute( "className" ); - } ); + return !el.getAttribute("className"); + }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -9703,38 +9600,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { + support.getById = assert(function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); + }); // ID filter and find if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute( "id" ) === attrId; + return elem.getAttribute("id") === attrId; }; }; - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); + elem.getAttributeNode("id"); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -9742,7 +9639,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode( "id" ); + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -9750,8 +9647,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -9764,7 +9661,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? + Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -9779,13 +9676,12 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -9797,7 +9693,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -9818,14 +9714,10 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { // Build QSA regex // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - + assert(function( el ) { // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -9839,98 +9731,78 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + if ( el.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { + if ( !el.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); + rbuggyQSA.push("~="); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); + rbuggyQSA.push(".#.+[+~]"); } + }); - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { + assert(function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); + var input = document.createElement("input"); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { + if ( el.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + if ( el.querySelectorAll(":enabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + if ( el.querySelectorAll(":disabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } - // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); } - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { + docElem.msMatchesSelector) )) ) { + assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -9939,11 +9811,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - } ); + }); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); /* Contains ---------------------------------------------------------------------- */ @@ -9960,11 +9832,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); + )); } : function( a, b ) { if ( b ) { - while ( ( b = b.parentNode ) ) { + while ( (b = b.parentNode) ) { if ( b === a ) { return true; } @@ -9993,11 +9865,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -10005,24 +9873,13 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } @@ -10035,7 +9892,6 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { - // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -10051,14 +9907,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ + return a === document ? -1 : + b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? @@ -10072,32 +9922,26 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { ap.unshift( cur ); } cur = b; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { + while ( ap[i] === bp[i] ) { i++; } return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : + siblingCheck( ap[i], bp[i] ) : // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : 0; }; @@ -10109,7 +9953,10 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } if ( support.matchesSelector && documentIsHTML && !nonnativeSelectorCache[ expr + " " ] && @@ -10121,13 +9968,12 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch ( e ) { + } catch (e) { nonnativeSelectorCache( expr, true ); } } @@ -10136,31 +9982,20 @@ Sizzle.matchesSelector = function( elem, expr ) { }; Sizzle.contains = function( context, elem ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { + if ( ( context.ownerDocument || context ) !== document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { + if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -10170,13 +10005,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); + return (sel + "").replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -10199,7 +10034,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -10227,21 +10062,17 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - + while ( (node = elem[i++]) ) { // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { - // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -10250,7 +10081,6 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } - // Do not include comment or processing instruction nodes return ret; @@ -10278,21 +10108,19 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + match[1] = match[1].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -10303,25 +10131,22 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + match[1] = match[1].toLowerCase(); + if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + if ( !match[3] ) { + Sizzle.error( match[0] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); } return match; @@ -10329,28 +10154,26 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[ 6 ] && match[ 2 ]; + unquoted = !match[6] && match[2]; - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - + (excess = tokenize( unquoted, true )) && // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -10363,9 +10186,7 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { - return true; - } : + function() { return true; } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -10375,16 +10196,10 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); }, "ATTR": function( name, operator, check ) { @@ -10400,8 +10215,6 @@ Expr = Sizzle.selectors = { result += ""; - /* eslint-disable max-len */ - return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -10410,12 +10223,10 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; - /* eslint-enable max-len */ - }; }, - "CHILD": function( type, what, _argument, first, last ) { + "CHILD": function( type, what, argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -10427,7 +10238,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, _context, xml ) { + function( elem, context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -10441,7 +10252,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( ( node = node[ dir ] ) ) { + while ( (node = node[ dir ]) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -10449,7 +10260,6 @@ Expr = Sizzle.selectors = { return false; } } - // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -10465,22 +10275,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( ( node = ++nodeIndex && node && node[ dir ] || + while ( (node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + (diff = nodeIndex = 0) || start.pop()) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -10490,18 +10300,16 @@ Expr = Sizzle.selectors = { } } else { - // Use previously-cached element index if available if ( useCache ) { - // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -10511,10 +10319,9 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -10523,13 +10330,12 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -10550,7 +10356,6 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -10570,15 +10375,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { + markFunction(function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); } - } ) : + }) : function( elem ) { return fn( elem, 0, args ); }; @@ -10589,10 +10394,8 @@ Expr = Sizzle.selectors = { }, pseudos: { - // Potentially complex pseudos - "not": markFunction( function( selector ) { - + "not": markFunction(function( selector ) { // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -10601,40 +10404,39 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { + markFunction(function( seed, matches, context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); } } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; + }) : + function( elem, context, xml ) { + input[0] = elem; matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[ 0 ] = null; + input[0] = null; return !results.pop(); }; - } ), + }), - "has": markFunction( function( selector ) { + "has": markFunction(function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - } ), + }), - "contains": markFunction( function( text ) { + "contains": markFunction(function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; }; - } ), + }), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -10644,26 +10446,25 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { + if ( !ridentifier.test(lang || "") ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( ( elemLang = documentIsHTML ? + if ( (elemLang = documentIsHTML ? elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); return false; }; - } ), + }), // Miscellaneous "target": function( elem ) { @@ -10676,9 +10477,7 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, // Boolean properties @@ -10686,20 +10485,16 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); }, "selected": function( elem ) { - // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -10708,7 +10503,6 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -10722,7 +10516,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); + return !Expr.pseudos["empty"]( elem ); }, // Element/input types @@ -10746,40 +10540,39 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo( function() { + "first": createPositionalPseudo(function() { return [ 0 ]; - } ), + }), - "last": createPositionalPseudo( function( _matchIndexes, length ) { + "last": createPositionalPseudo(function( matchIndexes, length ) { return [ length - 1 ]; - } ), + }), - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - } ), + }), - "even": createPositionalPseudo( function( matchIndexes, length ) { + "even": createPositionalPseudo(function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "odd": createPositionalPseudo( function( matchIndexes, length ) { + "odd": createPositionalPseudo(function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument > length ? @@ -10789,19 +10582,19 @@ Expr = Sizzle.selectors = { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - } ) + }) } }; -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; +Expr.pseudos["nth"] = Expr.pseudos["eq"]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -10832,39 +10625,37 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( !matched || (match = rcomma.exec( soFar )) ) { if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; + soFar = soFar.slice( match[0].length ) || soFar; } - groups.push( ( tokens = [] ) ); + groups.push( (tokens = []) ); } matched = false; // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { + if ( (match = rcombinators.exec( soFar )) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); + type: match[0].replace( rtrim, " " ) + }); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, type: type, matches: match - } ); + }); soFar = soFar.slice( matched.length ); } } @@ -10881,7 +10672,6 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : - // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -10891,7 +10681,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[ i ].value; + selector += tokens[i].value; } return selector; } @@ -10904,10 +10694,9 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? - // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -10922,7 +10711,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -10930,29 +10719,27 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + outerCache = elem[ expando ] || (elem[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && + } else if ( (oldCache = uniqueCache[ key ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); + return (newCache[ 2 ] = oldCache[ 2 ]); } else { - // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { return true; } } @@ -10968,20 +10755,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { + if ( !matchers[i]( elem, context, xml ) ) { return false; } } return true; } : - matchers[ 0 ]; + matchers[0]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); + Sizzle( selector, contexts[i], results ); } return results; } @@ -10994,7 +10781,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { + if ( (elem = unmatched[i]) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -11014,18 +10801,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction( function( seed, results, context, xml ) { + return markFunction(function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -11033,7 +10816,6 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -11057,8 +10839,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); } } } @@ -11066,27 +10848,25 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - + if ( (elem = matcherOut[i]) ) { // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); + temp.push( (matcherIn[i] = elem) ); } } - postFinder( null, ( matcherOut = [] ), temp, xml ); + postFinder( null, (matcherOut = []), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - seed[ temp ] = !( results[ temp ] = elem ); + seed[temp] = !(results[temp] = elem); } } } @@ -11104,14 +10884,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - } ); + }); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -11123,43 +10903,38 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? + (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { + if ( Expr.relative[ tokens[j].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), j < len && toSelector( tokens ) ); } @@ -11180,40 +10955,28 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), len = elems.length; if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; + outermostContext = context === document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { if ( byElement && elem ) { j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { + if ( !context && elem.ownerDocument !== document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { results.push( elem ); break; } @@ -11225,9 +10988,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { + if ( (elem = !matcher && elem) ) { matchedCount--; } @@ -11251,17 +11013,16 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { + while ( (matcher = setMatchers[j++]) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); } } } @@ -11302,14 +11063,13 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); + cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -11318,10 +11078,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; @@ -11341,7 +11098,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + match = !seed && tokenize( (selector = compiled.selector || selector) ); results = results || []; @@ -11350,12 +11107,11 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; @@ -11368,22 +11124,20 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[ i ]; + token = tokens[i]; // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { + if ( Expr.relative[ (type = token.type) ] ) { break; } - if ( ( find = Expr.find[ type ] ) ) { - + if ( (find = Expr.find[ type ]) ) { // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -11414,7 +11168,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -11425,59 +11179,58 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - +support.sortDetached = assert(function( el ) { // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { +if ( !assert(function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { + return el.firstChild.getAttribute("href") === "#" ; +}) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - } ); + }); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { +if ( !support.attributes || !assert(function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { +}) ) { + addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - } ); + }); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode( name )) && val.specified ? val.value : - null; + null; } - } ); + }); } return Sizzle; -} )( window ); +})( window ); @@ -11846,7 +11599,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, _i, until ) { + parentsUntil: function( elem, i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -11861,10 +11614,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, _i, until ) { + nextUntil: function( elem, i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, _i, until ) { + prevUntil: function( elem, i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -11874,13 +11627,7 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - + if ( typeof elem.contentDocument !== "undefined" ) { return elem.contentDocument; } @@ -12223,7 +11970,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { + jQuery.each( tuples, function( i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -12676,7 +12423,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, _key, value ) { + fn = function( elem, key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -12711,7 +12458,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { +function fcamelCase( all, letter ) { return letter.toUpperCase(); } @@ -13239,6 +12986,27 @@ var isHiddenWithinTree = function( elem, el ) { jQuery.css( elem, "display" ) === "none"; }; +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + function adjustCSS( elem, prop, valueParts, tween ) { @@ -13409,41 +13177,12 @@ var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - // We have to close these tags to support XHTML (#13200) var wrapMap = { + // Support: IE <=9 only + option: [ 1, "" ], + // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. @@ -13455,14 +13194,12 @@ var wrapMap = { _default: [ 0, "", "" ] }; +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - function getAll( context, tag ) { @@ -13595,6 +13332,32 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); + + var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, @@ -13703,8 +13466,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { return; } @@ -13728,7 +13491,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); + events = elemData.events = {}; } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -13886,15 +13649,12 @@ jQuery.event = { dispatch: function( nativeEvent ) { + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -14469,6 +14229,13 @@ jQuery.fn.extend( { var + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -14505,7 +14272,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -14513,11 +14280,13 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); events = pdataOld.events; if ( events ) { - dataPriv.remove( dest, "handle events" ); + delete pdataCur.handle; + pdataCur.events = {}; for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -14553,7 +14322,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = flat( args ); + args = concat.apply( [], args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -14628,7 +14397,7 @@ function domManip( collection, args, callback, ignored ) { if ( jQuery._evalUrl && !node.noModule ) { jQuery._evalUrl( node.src, { nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); + } ); } } else { DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); @@ -14665,7 +14434,7 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html; + return html.replace( rxhtmlTag, "<$1>" ); }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { @@ -14927,27 +14696,6 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -15005,7 +14753,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, + reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -15040,35 +14788,6 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; } } ); } )(); @@ -15193,7 +14912,7 @@ var fontWeight: "400" }; -function setPositiveNumber( _elem, value, subtract ) { +function setPositiveNumber( elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -15298,26 +15017,17 @@ function getWidthOrHeight( elem, dimension, extra ) { } - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + // Support: IE 9-11 only + // Also use offsetWidth/offsetHeight for when box sizing is unreliable + // We use getClientRects() to check for hidden/disconnected. + // In those cases, the computed value can be trusted to be border-box if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected elem.getClientRects().length ) { isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; @@ -15512,7 +15222,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( _i, dimension ) { +jQuery.each( [ "height", "width" ], function( i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -16285,7 +15995,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue ) { + if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } @@ -16368,7 +16078,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -16589,7 +16299,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -17213,9 +16923,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -17326,10 +17034,7 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -17338,7 +17043,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -17354,7 +17059,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = { guid: Date.now() }; +var nonce = Date.now(); var rquery = ( /\?/ ); @@ -17486,7 +17191,7 @@ jQuery.fn.extend( { rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) - .map( function( _i, elem ) { + .map( function( i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -18099,8 +17804,7 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -18233,11 +17937,6 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -18328,7 +18027,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( _i, method ) { +jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -18349,17 +18048,8 @@ jQuery.each( [ "get", "post" ], function( _i, method ) { }; } ); -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - -jQuery._evalUrl = function( url, options, doc ) { +jQuery._evalUrl = function( url, options ) { return jQuery.ajax( { url: url, @@ -18377,7 +18067,7 @@ jQuery._evalUrl = function( url, options, doc ) { "text script": function() {} }, dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); + jQuery.globalEval( response, options ); } } ); }; @@ -18699,7 +18389,7 @@ var oldCallbacks = [], jQuery.ajaxSetup( { jsonp: "callback", jsonpCallback: function() { - var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce.guid++ ) ); + var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); this[ callback ] = true; return callback; } @@ -18916,6 +18606,23 @@ jQuery.fn.load = function( url, params, callback ) { +// Attach a bunch of functions for handling common AJAX events +jQuery.each( [ + "ajaxStart", + "ajaxStop", + "ajaxComplete", + "ajaxError", + "ajaxSuccess", + "ajaxSend" +], function( i, type ) { + jQuery.fn[ type ] = function( fn ) { + return this.on( type, fn ); + }; +} ); + + + + jQuery.expr.pseudos.animated = function( elem ) { return jQuery.grep( jQuery.timers, function( fn ) { return elem === fn.elem; @@ -18972,12 +18679,6 @@ jQuery.offset = { options.using.call( elem, props ); } else { - if ( typeof props.top === "number" ) { - props.top += "px"; - } - if ( typeof props.left === "number" ) { - props.left += "px"; - } curElem.css( props ); } } @@ -19128,7 +18829,7 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 // getComputedStyle returns percent when specified for top/left/bottom/right; // rather than make the css module depend on the offset module, just check for it here -jQuery.each( [ "top", "left" ], function( _i, prop ) { +jQuery.each( [ "top", "left" ], function( i, prop ) { jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, function( elem, computed ) { if ( computed ) { @@ -19191,19 +18892,25 @@ jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { } ); -jQuery.each( [ - "ajaxStart", - "ajaxStop", - "ajaxComplete", - "ajaxError", - "ajaxSuccess", - "ajaxSend" -], function( _i, type ) { - jQuery.fn[ type ] = function( fn ) { - return this.on( type, fn ); +jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + + "change select submit keydown keypress keyup contextmenu" ).split( " " ), + function( i, name ) { + + // Handle event binding + jQuery.fn[ name ] = function( data, fn ) { + return arguments.length > 0 ? + this.on( name, null, data, fn ) : + this.trigger( name ); }; } ); +jQuery.fn.extend( { + hover: function( fnOver, fnOut ) { + return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); + } +} ); + @@ -19225,33 +18932,9 @@ jQuery.fn.extend( { return arguments.length === 1 ? this.off( selector, "**" ) : this.off( types, selector || "**", fn ); - }, - - hover: function( fnOver, fnOut ) { - return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); } } ); -jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + - "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + - "change select submit keydown keypress keyup contextmenu" ).split( " " ), - function( _i, name ) { - - // Handle event binding - jQuery.fn[ name ] = function( data, fn ) { - return arguments.length > 0 ? - this.on( name, null, data, fn ) : - this.trigger( name ); - }; - } ); - - - - -// Support: Android <=4.0 only -// Make sure we trim BOM and NBSP -var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - // Bind a function to a context, optionally partially applying any // arguments. // jQuery.proxy is deprecated to promote standards (specifically Function#bind) @@ -19314,11 +18997,6 @@ jQuery.isNumeric = function( obj ) { !isNaN( obj - parseFloat( obj ) ); }; -jQuery.trim = function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); -}; @@ -19368,7 +19046,7 @@ jQuery.noConflict = function( deep ) { // Expose jQuery and $ identifiers, even in AMD // (#7102#comment:10, https://github.com/jquery/jquery/pull/557) // and CommonJS for browser emulators (#13566) -if ( typeof noGlobal === "undefined" ) { +if ( !noGlobal ) { window.jQuery = window.$ = jQuery; } @@ -19402,7 +19080,7 @@ return jQuery; var undefined; /** Used as the semantic version number. */ - var VERSION = '4.17.20'; + var VERSION = '4.17.19'; /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; @@ -34978,7 +34656,7 @@ return jQuery; * // => [{ 'a': 4, 'b': 5, 'c': 6 }] * * // Checking for several possible values - * _.filter(objects, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); + * _.filter(users, _.overSome([_.matches({ 'a': 1 }), _.matches({ 'a': 4 })])); * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matches(source) { @@ -35015,7 +34693,7 @@ return jQuery; * // => { 'a': 4, 'b': 5, 'c': 6 } * * // Checking for several possible values - * _.filter(objects, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); + * _.filter(users, _.overSome([_.matchesProperty('a', 1), _.matchesProperty('a', 4)])); * // => [{ 'a': 1, 'b': 2, 'c': 3 }, { 'a': 4, 'b': 5, 'c': 6 }] */ function matchesProperty(path, srcValue) { @@ -36557,7 +36235,7 @@ return jQuery; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/**! * @fileOverview Kickass library to create and place poppers near their reference elements. - * @version 1.16.1 + * @version 1.15.0 * @license * Copyright (c) 2016 Federico Zivolo and contributors * @@ -36579,17 +36257,16 @@ __webpack_require__.r(__webpack_exports__); * 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' && typeof navigator !== 'undefined'; - -var timeoutDuration = function () { - var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; - for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { - if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { - return 1; - } +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; } - return 0; -}(); +} function microtaskDebounce(fn) { var called = false; @@ -36709,17 +36386,6 @@ function getScrollParent(element) { return getScrollParent(getParentNode(element)); } -/** - * Returns the reference node of the reference object, or the reference object itself. - * @method - * @memberof Popper.Utils - * @param {Element|Object} reference - the reference element (the popper will be relative to this) - * @returns {Element} parent - */ -function getReferenceNode(reference) { - return reference && reference.referenceNode ? reference.referenceNode : reference; -} - var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); @@ -36903,7 +36569,7 @@ function getBordersSize(styles, axis) { var sideA = axis === 'x' ? 'Left' : 'Top'; var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; - return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']); + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); } function getSize(axis, body, html, computedStyle) { @@ -37028,8 +36694,8 @@ function getBoundingClientRect(element) { // subtract scrollbar size from sizes var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; - var width = sizes.width || element.clientWidth || result.width; - var height = sizes.height || element.clientHeight || result.height; + 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; @@ -37058,8 +36724,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { var scrollParent = getScrollParent(children); var styles = getStyleComputedProperty(parent); - var borderTopWidth = parseFloat(styles.borderTopWidth); - var borderLeftWidth = parseFloat(styles.borderLeftWidth); + 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 && isHTML) { @@ -37080,8 +36746,8 @@ function getOffsetRectRelativeToArbitraryNode(children, parent) { // 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); - var marginLeft = parseFloat(styles.marginLeft); + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); offsets.top -= borderTopWidth - marginTop; offsets.bottom -= borderTopWidth - marginTop; @@ -37181,7 +36847,7 @@ function getBoundaries(popper, reference, padding, boundariesElement) { // NOTE: 1 DOM access here var boundaries = { top: 0, left: 0 }; - var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); // Handle viewport case if (boundariesElement === 'viewport') { @@ -37309,7 +36975,7 @@ function computeAutoPlacement(placement, refRect, popper, reference, boundariesE function getReferenceOffsets(state, popper, reference) { var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); } @@ -37571,7 +37237,7 @@ function destroy() { this.disableEventListeners(); - // remove the popper if user explicitly asked for the deletion on destroy + // 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); @@ -38020,8 +37686,8 @@ function arrow(data, options) { // 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]); - var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']); + 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 @@ -39657,7 +39323,7 @@ webpackContext.id = "./resources/js/controllers sync recursive \\.js$"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _default; }); /* harmony import */ var stimulus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stimulus */ "./node_modules/stimulus/index.js"); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -39665,31 +39331,27 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } - function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var _default = /*#__PURE__*/function (_Controller) { - _inherits(_default, _Controller); - var _super = _createSuper(_default); + +var _default = +/*#__PURE__*/ +function (_Controller) { + _inherits(_default, _Controller); function _default() { _classCallCheck(this, _default); - return _super.apply(this, arguments); + return _possibleConstructorReturn(this, _getPrototypeOf(_default).apply(this, arguments)); } _createClass(_default, [{ @@ -39761,7 +39423,7 @@ _default.targets = ["quantity"]; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return _default; }); /* harmony import */ var stimulus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! stimulus */ "./node_modules/stimulus/index.js"); -function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -39769,31 +39431,27 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } - function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -var _default = /*#__PURE__*/function (_Controller) { - _inherits(_default, _Controller); - var _super = _createSuper(_default); +var _default = +/*#__PURE__*/ +function (_Controller) { + _inherits(_default, _Controller); function _default() { _classCallCheck(this, _default); - return _super.apply(this, arguments); + return _possibleConstructorReturn(this, _getPrototypeOf(_default).apply(this, arguments)); } _createClass(_default, [{ @@ -39849,8 +39507,8 @@ _default.targets = ["message"]; /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -__webpack_require__(/*! /home/omarkdev/Projects/omarkdev/elephpant.me/resources/js/app.js */"./resources/js/app.js"); -module.exports = __webpack_require__(/*! /home/omarkdev/Projects/omarkdev/elephpant.me/resources/sass/app.scss */"./resources/sass/app.scss"); +__webpack_require__(/*! /Users/victor/Sites/elephpant.me/resources/js/app.js */"./resources/js/app.js"); +module.exports = __webpack_require__(/*! /Users/victor/Sites/elephpant.me/resources/sass/app.scss */"./resources/sass/app.scss"); /***/ }) diff --git a/public/mix-manifest.json b/public/mix-manifest.json index d90198e..54302e6 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -1,4 +1,4 @@ { - "/js/app.js": "/js/app.js?id=155230fdf6e1cc97cea6", - "/css/app.css": "/css/app.css?id=f5b55f0d77f938ac71c8" + "/js/app.js": "/js/app.js?id=e7f173e15059fb274179", + "/css/app.css": "/css/app.css?id=5ebdaf072b4e9c8a8c6a" } diff --git a/resources/sass/_layout.scss b/resources/sass/_layout.scss new file mode 100644 index 0000000..bf64000 --- /dev/null +++ b/resources/sass/_layout.scss @@ -0,0 +1,63 @@ +.layout { + .container { + padding: 0; + + .row { + margin: 0; + } + } + + .main { + background-color: $white; + padding: 30px 0 50px 0; + + h1 { + text-align: center; + font-weight: 600; + font-size: 35px; + margin-bottom: 0; + } + + p { + margin: 25px 0; + font-size: 18px; + text-align: center; + + a { + font-weight: 600; + } + } + + img.avatar { + display: flex; + margin-left: auto; + margin-right: auto; + margin-bottom: 25px; + width: 150px; + } + + .actions { + display: flex; + justify-content: center; + } + } + + .content { + padding: 50px 0; + + &-title { + text-align: center; + font-size: 15px; + margin-bottom: 50px; + } + } + + .separator { + border-color: $separator; + } + + .alert { + font-size: 15px; + font-weight: 600; + } +} diff --git a/resources/sass/_variables.scss b/resources/sass/_variables.scss index 7824795..76c4977 100644 --- a/resources/sass/_variables.scss +++ b/resources/sass/_variables.scss @@ -2,7 +2,6 @@ //$body-bg: #f8fafc; // Typography -$font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif; $font-size-base: 0.8125rem; $line-height-base: 1.6; @@ -17,3 +16,8 @@ $yellow: #ffed4a; $green: #38c172; $teal: #4dc0b5; $cyan: #6cb2eb; +$black: #000; +$white: #fff; +$grey: #dadada; +$grey-background: #efefef; +$separator: #b7b7b7; diff --git a/resources/sass/app.scss b/resources/sass/app.scss index aa4d343..8eea895 100644 --- a/resources/sass/app.scss +++ b/resources/sass/app.scss @@ -1,6 +1,3 @@ -// Fonts -//@import url('https://fonts.googleapis.com/css?family=Open+Sans'); - // Variables @import 'variables'; @@ -10,55 +7,23 @@ // Icons @import '~flag-icon-css/sass/flag-icon.scss'; -body { - background-color: #fcfcfc; -} - -.herd-card { - .list-group-item { - border: 3px solid transparent; - border-width: 0 0 0 3px; - &.has-elephpants { - border-color: $green; - } - } -} - -.navbar-brand { - padding-top: 0; - padding-bottom: 0; - .logo { - width: 30px; - } -} +// Components +@import 'layout.scss'; +@import 'components/button.scss'; +@import 'components/card.scss'; +@import 'components/footer.scss'; +@import 'components/form.scss'; +@import 'components/navbar.scss'; +@import 'components/pagination.scss'; +@import 'components/table.scss'; + +// Pages +@import 'pages/herd.scss'; +@import 'pages/ranking.scss'; +@import 'pages/trade.scss'; -.custom-pagination ul { - @extend .pagination-lg; -} - -.jumbotron { - //@extend .py-5; - .lead { - margin-bottom: 0; - } -} - -.avatar-circle { - width: 128px; - height: 128px; - background-color: #e9ecef; - text-align: center; - border-radius: 50%; - -webkit-border-radius: 50%; - -moz-border-radius: 50%; - - .initials { - position: relative; - top: 36px; - font-size: 62.5px; - line-height: 62.5px; - color: #212529; - font-family: "Courier New", monospace; - font-weight: bold; - } +body { + font-family: 'Quicksand', sans-serif; + background-color: $grey-background; + margin: 0; } diff --git a/resources/sass/components/_button.scss b/resources/sass/components/_button.scss new file mode 100644 index 0000000..cad275b --- /dev/null +++ b/resources/sass/components/_button.scss @@ -0,0 +1,37 @@ +.btn { + @media (max-width: 768px) { + width: 100%; + } + + &-primary { + background-color: $black; + color: $white; + border: 2px solid $black; + border-radius: 50px; + font-weight: 600; + padding: 10px 80px; + font-size: 15px; + + &:hover, &:focus, &:active { + background-color: $white !important; + color: $black !important; + box-shadow: none !important; + border: 2px solid $black !important; + } + } + + &-link { + color: $black; + font-weight: 600; + font-size: 15px; + padding: 10px 30px; + + &:hover, &:focus { + color: $black; + + &:focus { + box-shadow: none !important; + } + } + } +} diff --git a/resources/sass/components/_card.scss b/resources/sass/components/_card.scss new file mode 100644 index 0000000..f8f419f --- /dev/null +++ b/resources/sass/components/_card.scss @@ -0,0 +1,19 @@ +.card { + border: none; + border-radius: 30px; + + img { + border-radius: 30px 30px 0 0; + } + + &-title { + font-size: 17px; + font-weight: 600; + text-align: center; + } + + &-text { + font-size: 13px; + text-align: center; + } +} diff --git a/resources/sass/components/_footer.scss b/resources/sass/components/_footer.scss new file mode 100644 index 0000000..5377f8d --- /dev/null +++ b/resources/sass/components/_footer.scss @@ -0,0 +1,7 @@ +footer { + font-size: 14px; + + a { + font-weight: 600; + } +} diff --git a/resources/sass/components/_form.scss b/resources/sass/components/_form.scss new file mode 100644 index 0000000..f7dfc0a --- /dev/null +++ b/resources/sass/components/_form.scss @@ -0,0 +1,116 @@ +form { + width: 100%; + + .form-group { + margin-bottom: 20px; + + label { + font-weight: 600; + font-size: 15px; + margin-bottom: 5px; + } + + input[type='text'], input[type='email'], input[type='password'] { + border: none; + background-color: $white; + border-radius: 10px; + color: $black; + padding: 20px 15px; + font-size: 15px; + + &:focus { + outline: none; + box-shadow: none; + } + } + + &.checkbox-container { + label { + display: flex; + align-items: center; + margin-bottom: 0; + padding-left: 40px; + height: 30px; + + + input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; + + &:checked ~ .checkmark { + background-color: $blue; + } + + &:checked ~ .checkmark:after { + display: block; + } + } + + .checkmark { + position: absolute; + top: 0; + left: 15px; + height: 30px; + width: 30px; + background-color: $white; + border-radius: 10px; + + &:after { + content: ""; + position: absolute; + display: none; + left: 11px; + top: 6px; + width: 8px; + height: 15px; + border: solid $white; + border-width: 0 3px 3px 0; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + } + } + } + + .input-group { + &-text { + background-color: $grey; + border: none; + font-weight: 600; + color: $black; + } + } + + select { + border: none; + border-radius: 10px; + height: 40px; + color: $black; + font-size: 15px; + -webkit-appearance: none; + -moz-appearance: none; + background-image: linear-gradient(45deg, transparent 50%, $black 50%), linear-gradient(135deg, $black 50%, transparent 50%), linear-gradient(to right, transparent, transparent); + background-position: calc(100% - 20px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), 100% 0; + background-size: 5px 5px, 5px 5px, 2.5em 2.5em; + background-repeat: no-repeat; + + &:focus { + box-shadow: none; + } + } + } + + .actions { + display: flex; + justify-content: center; + align-items: center; + + @media (max-width: 768px) { + flex-direction: column; + } + } +} diff --git a/resources/sass/components/_navbar.scss b/resources/sass/components/_navbar.scss new file mode 100644 index 0000000..cb953af --- /dev/null +++ b/resources/sass/components/_navbar.scss @@ -0,0 +1,97 @@ +.navbar { + padding: 20px 1rem; + background-color: $white; + + &-brand { + display: flex; + align-items: center; + padding: 0; + + .logo { + width: 70px; + margin-right: 20px; + + @media (max-width: 992px) { + width: 60px; + margin-right: 10px; + } + } + + .navbar-title { + font-size: 30px; + font-weight: 600; + color: $black; + + @media (max-width: 992px) { + font-size: 23px; + } + } + } + + &-toggler { + .btn-menu { + width: 25px; + } + } + + li { + padding: 10px 0; + + &:not(:last-child) { + margin-right: 20px; + } + + &.active { + font-weight: 600; + text-decoration: underline; + } + + &.dropdown { + .nav-link:hover { + text-decoration: none; + } + } + + .nav-link { + color: $black; + font-size: 20px; + padding: 0 !important; + + @media (max-width: 992px) { + font-size: 15px; + } + + &:hover { + text-decoration: underline; + } + } + + .dropdown { + &-menu { + border: none; + min-width: auto; + + @media (min-width: 768px) { + padding: 0; + } + } + + &-item { + font-size: 18px; + + @media (min-width: 768px) { + text-align: right; + } + + @media (max-width: 992px) { + font-size: 15px; + } + + &:hover, &:focus { + background-color: transparent; + text-decoration: underline; + } + } + } + } +} diff --git a/resources/sass/components/_pagination.scss b/resources/sass/components/_pagination.scss new file mode 100644 index 0000000..3d65d32 --- /dev/null +++ b/resources/sass/components/_pagination.scss @@ -0,0 +1,19 @@ +.pagination { + .page-item { + &.active { + .page-link { + background-color: $black; + border-color: $black; + color: $white; + } + } + + .page-link { + color: $black; + + &:focus { + box-shadow: none; + } + } + } +} diff --git a/resources/sass/components/_table.scss b/resources/sass/components/_table.scss new file mode 100644 index 0000000..30b7ede --- /dev/null +++ b/resources/sass/components/_table.scss @@ -0,0 +1,62 @@ +.table { + margin-bottom: 0; + + &-title { + margin-bottom: 20px; + font-size: 15px; + text-align: center; + } + + &-footer { + background-color: $white; + text-align: center; + font-size: 15px; + } + + thead { + background-color: $white; + font-size: 15px; + + th { + border-bottom: none; + + &:first-child { + border-top-left-radius: 10px; + } + + &:last-child { + border-top-right-radius: 10px; + } + } + } + + tbody { + background-color: rgba(0, 0, 0, 0.03); + + tr { + td { + font-size: 14px; + + &:first-child { + font-weight: 600; + } + } + + &:last-child { + td { + &:first-child { + border-bottom-left-radius: 10px; + } + + &:last-child { + border-bottom-right-radius: 10px; + } + } + } + } + } + + td, th { + border: none; + } +} diff --git a/resources/sass/pages/_herd.scss b/resources/sass/pages/_herd.scss new file mode 100644 index 0000000..e060937 --- /dev/null +++ b/resources/sass/pages/_herd.scss @@ -0,0 +1,43 @@ +.herd { + .alert { + font-weight: normal; + text-align: center; + margin-bottom: 0; + } + + .stat { + background-color: $grey; + border-radius: 10px; + text-align: center; + padding: 10px 0; + } + + &-card { + .card-header { + border-radius: 10px 10px 0 0; + } + + .list-group-item { + border: 3px solid transparent; + border-width: 0 0 0 3px; + + &.has-elephpants { + border-color: $green; + } + } + } + + &-list { + .list-group-item { + border-bottom: 1px solid $grey-background !important; + + &:first-child { + border-radius: 10px 10px 0 0; + } + + &:last-child { + border-radius: 0 0 10px 10px; + } + } + } +} diff --git a/resources/sass/pages/_ranking.scss b/resources/sass/pages/_ranking.scss new file mode 100644 index 0000000..bd97e62 --- /dev/null +++ b/resources/sass/pages/_ranking.scss @@ -0,0 +1,22 @@ +.ranking { + form { + .form-group { + display: flex; + flex-wrap: wrap; + justify-content: center; + + select { + width: auto; + } + + button { + padding: 5px 50px; + width: 200px; + + @media (max-width: 767px) { + margin-top: 10px; + } + } + } + } +} diff --git a/resources/sass/pages/_trade.scss b/resources/sass/pages/_trade.scss new file mode 100644 index 0000000..9c8d897 --- /dev/null +++ b/resources/sass/pages/_trade.scss @@ -0,0 +1,44 @@ +.trade { + .card { + &-header { + background: none; + border-bottom: 1px solid $grey-background; + } + + &-body { + .card { + border: 1px solid $grey; + background-color: $grey; + border-radius: 10px; + + &-header { + border-bottom: none; + font-weight: 600; + } + + .list-group-item { + &:not(:last-child) { + border-bottom: 1px solid $grey !important; + } + + &:last-child { + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + } + } + } + + .form-box { + textarea { + border-radius: 10px; + } + + button { + display: block; + margin-left: auto; + margin-right: auto; + } + } + } + } +} diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 5035d3a..5fe7aaa 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -1,73 +1,89 @@ @extends('layouts.app') @section('content') -
-
-
-
-
{{ __('Login') }}
- -
-
- @csrf +
+
+
+
+

{{ __('Login') }}

+
+
+
+
-
- +
+ + @csrf -
- +
+
+
+
+ + - @error('email') - - {{ $message }} - - @enderror -
+ @error('email') + {{ $message }} + @enderror
+
-
- - -
- +
+
+ + - @error('password') - - {{ $message }} - - @enderror -
+ @error('password') + {{ $message }} + @enderror
+
-
-
-
- - - -
-
+
+
+
+
-
-
- +
+
+ - @if (Route::has('password.request')) - - {{ __('Forgot Your Password?') }} - - @endif -
+ @if (Route::has('password.request')) + + {{ __('Forgot Your Password?') }} + + @endif
- +
-
+
-
@endsection diff --git a/resources/views/auth/passwords/email.blade.php b/resources/views/auth/passwords/email.blade.php index 0ed6ee9..a8450fc 100644 --- a/resources/views/auth/passwords/email.blade.php +++ b/resources/views/auth/passwords/email.blade.php @@ -1,47 +1,60 @@ @extends('layouts.app') @section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
- @if (session('status')) - - @endif - -
- @csrf +
+
+
+
+

{{ __('Reset Password') }}

+
+
+
+
-
- +
+ + @csrf -
- +
+
+
+ @if (session('status')) + + @endif +
+
+
+
+
+ + - @error('email') - - {{ $message }} - - @enderror -
+ @error('email') + {{ $message }} + @enderror
+
+
-
-
- -
+
+
+
+
- +
-
+
-
@endsection diff --git a/resources/views/auth/passwords/reset.blade.php b/resources/views/auth/passwords/reset.blade.php index 3131969..338481c 100644 --- a/resources/views/auth/passwords/reset.blade.php +++ b/resources/views/auth/passwords/reset.blade.php @@ -1,65 +1,85 @@ @extends('layouts.app') @section('content') -
-
-
-
-
{{ __('Reset Password') }}
- -
-
- @csrf +
+
+
+
+

{{ __('Reset Password') }}

+
+
+
+
- +
+ + @csrf -
- + -
- +
+
+
+
+ + - @error('email') - - {{ $message }} - - @enderror -
+ @error('email') + {{ $message }} + @enderror
+
-
- - -
- +
+
+ + - @error('password') - - {{ $message }} - - @enderror -
+ @error('password') + {{ $message }} + @enderror
+
-
- - -
- -
+
+
+ +
+
-
-
- -
+
+
+
- +
-
+
-
@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 0625efe..142e6da 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -1,107 +1,162 @@ @extends('layouts.app') @section('content') -
-
-
-
-
{{ __('Register') }}
+
+
+
+
+

{{ __('Register') }}

+
+
+
+
-
-
- @csrf -
- -
- - @error('name') - - {{ $message }} - - @enderror -
-
+
+ + @csrf -
- -
- - @error('email') - - {{ $message }} - - @enderror -
+
+
+
+
+ + + + @error('name') + {{ $message }} + @enderror
+
+
+
+ + -
- -
- - @error('country_code') - - {{ $message }} - - @enderror -
+ @error('email') + {{ $message }} + @enderror
+
+
+
+
+
+ + -
- -
-
-
- @ -
- - @error('twitter') - - {{ $message }} - - @enderror + @error('country_code') + {{ $message }} + @enderror +
+
+
+
+ +
+
+ @
+ + + @error('twitter') + {{ $message }} + @enderror
+
+
+ +
+
+
+
+
-
+
+
+
+ + -
- -
- @error('password') - - {{ $message }} - + {{ $message }} @enderror -
+
+
-
- -
- -
+
+
+
+ +
+
+
-
-
- -
+
+
+
+
- +
-
+
-
@endsection diff --git a/resources/views/elephpant/_full_name.blade.php b/resources/views/elephpant/_full_name.blade.php deleted file mode 100644 index 3b4e1cb..0000000 --- a/resources/views/elephpant/_full_name.blade.php +++ /dev/null @@ -1 +0,0 @@ -{{ $elephpant->name }} ({{ $elephpant->popular_name }}) diff --git a/resources/views/elephpant/_single_box.blade.php b/resources/views/elephpant/_single_box.blade.php index ff7df17..ff79fe6 100644 --- a/resources/views/elephpant/_single_box.blade.php +++ b/resources/views/elephpant/_single_box.blade.php @@ -1,5 +1,5 @@ -
-
+
+
{{ $elephpant->name }}
diff --git a/resources/views/elephpant/index.blade.php b/resources/views/elephpant/index.blade.php index 47fc690..7d196b2 100644 --- a/resources/views/elephpant/index.blade.php +++ b/resources/views/elephpant/index.blade.php @@ -1,20 +1,27 @@ @extends('layouts.app') @section('content') -
-

Species

-

- Here you can find all existent species. There are a total of {{ count($elephpants) }} species collected.
- - Go to "My Herd" page - -

-
-
-
- @foreach($elephpants as $key => $elephpant) - @include('elephpant._single_box', compact('elephpant')) - @endforeach +
+
+
+
+

Species

+

Here you can find all existent species. There are a total of {{ count($elephpants) }} species collected.

+ +
+
+
+
+ +
+
+
+ @foreach($elephpants as $key => $elephpant) + @include('elephpant._single_box', compact('elephpant')) + @endforeach +
+
-
@endsection diff --git a/resources/views/herd/_stats.blade.php b/resources/views/herd/_stats.blade.php index 0394a89..d08b2dc 100644 --- a/resources/views/herd/_stats.blade.php +++ b/resources/views/herd/_stats.blade.php @@ -1,26 +1,20 @@ -
-
-
-
-

Unique

-

{{ $stats['unique'] }}

-
+
+
+
+

Unique

+

{{ $stats['unique'] }}

-
-
-
-

Double

-

{{ $stats['double'] }}

-
+
+
+

Double

+

{{ $stats['double'] }}

-
-
-
-

Total

-

{{ $stats['total'] }}

-
+
+
+

Total

+

{{ $stats['total'] }}

diff --git a/resources/views/herd/edit.blade.php b/resources/views/herd/edit.blade.php index f1233ee..6d218e8 100644 --- a/resources/views/herd/edit.blade.php +++ b/resources/views/herd/edit.blade.php @@ -1,14 +1,21 @@ @extends('layouts.app') @section('content') -
-

My Herd

-

Which (and how many) elePHPants do you have?

+
+
+
+
+

My Herd

+

Which (and how many) elePHPants do you have?

+
+
+
-
-
-
-
+ +
+
+
+
Your public herd URL: @@ -17,53 +24,77 @@
-
- @include('herd._stats') -
- @foreach($elephpants as $year => $group) -
-
{{ $year }}
-
    - @foreach($group as $key => $elephpant) -
  • -
    -
    -
    -
    - - - -
    -

    {{ $elephpant->name }} - {{ $elephpant->description }}

    -

    - Sponsor: {{ $elephpant->sponsor }} -

    +
    + +
    + @include('herd._stats') +
    + +
    +
    + @foreach($elephpants as $year => $group) +
    +
    {{ $year }}
    +
      + @foreach($group as $key => $elephpant) +
    • +
      +
      +
      +
      + + + +
      +

      {{ $elephpant->name }} + - {{ $elephpant->description }}

      +

      + Sponsor: {{ $elephpant->sponsor }} +

      +
      -
      -
      -
      -
      -
      - -
      - -
      - +
      +
      +
      +
      + +
      + +
      + +
      -
      -
    • - @endforeach -
    -
    - @endforeach +
  • + @endforeach +
+
+ @endforeach +
diff --git a/resources/views/herd/show.blade.php b/resources/views/herd/show.blade.php index 13be87f..9e2373b 100644 --- a/resources/views/herd/show.blade.php +++ b/resources/views/herd/show.blade.php @@ -1,53 +1,53 @@ @extends('layouts.app') @section('content') -
-
-
-
-
- {{ $user->name }} twitter avatar -
-

- {{ $user->name }} -

-
- {{ ($country = $countries->get($user->country_code))->get('name') }} - @if ($flag = $country->get('flag')) - {!! $flag !!} - @endif -
-
- @if($user->twitter) - {{ '@' . $user->twitter }} - @endif -
-
-
-
-
-
- @include('herd._stats') -
+
+
+
+
+ {{ $user->name }} twitter avatar +

{{ $user->name }}

+

+ {{ ($country = $countries->get($user->country_code))->get('name') }} + @if ($flag = $country->get('flag')) + {!! $flag !!} + @endif + +
+ + @if($user->twitter) + {{ '@' . $user->twitter }} + @endif +

-
-
    - @foreach($elephpants as $key => $elephpant) +
+
+
+ +
+
+ @include('herd._stats') + +
+
+
-
- @yield('content') +
+
+ @yield('content') +
-