diff --git a/public/css/app.css b/public/css/app.css deleted file mode 100644 index 2fb1b80..0000000 --- a/public/css/app.css +++ /dev/null @@ -1,10941 +0,0 @@ -@import url(https://fonts.googleapis.com/css?family=Nunito); -@charset "UTF-8"; -:root{ - --blue:#3490dc; - --indigo:#6574cd; - --purple:#9561e2; - --pink:#f66d9b; - --red:#e3342f; - --orange:#f6993f; - --yellow:#ffed4a; - --green:#38c172; - --teal:#4dc0b5; - --cyan:#6cb2eb; - --white:#fff; - --gray:#6c757d; - --gray-dark:#343a40; - --primary:#3490dc; - --secondary:#6c757d; - --success:#38c172; - --info:#6cb2eb; - --warning:#ffed4a; - --danger:#e3342f; - --light:#f8f9fa; - --dark:#343a40; - --breakpoint-xs:0; - --breakpoint-sm:576px; - --breakpoint-md:768px; - --breakpoint-lg:992px; - --breakpoint-xl:1200px; - --font-family-sans-serif:"Nunito", sans-serif; - --font-family-monospace:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; -} - -*, -*::before, -*::after{ - box-sizing:border-box; -} - -html{ - font-family:sans-serif; - line-height:1.15; - -webkit-text-size-adjust:100%; - -webkit-tap-highlight-color:rgba(0, 0, 0, 0); -} - -article, aside, figcaption, figure, footer, header, hgroup, main, nav, section{ - display:block; -} - -body{ - margin:0; - font-family:"Nunito", sans-serif; - font-size:0.9rem; - font-weight:400; - line-height:1.6; - color:#212529; - text-align:left; - background-color:#f8fafc; -} - -[tabindex="-1"]:focus:not(:focus-visible){ - outline:0 !important; -} - -hr{ - box-sizing:content-box; - height:0; - overflow:visible; -} - -h1, h2, h3, h4, h5, h6{ - margin-top:0; - margin-bottom:0.5rem; -} - -p{ - margin-top:0; - margin-bottom:1rem; -} - -abbr[title], -abbr[data-original-title]{ - text-decoration:underline; - -webkit-text-decoration:underline dotted; - text-decoration:underline dotted; - cursor:help; - border-bottom:0; - -webkit-text-decoration-skip-ink:none; - text-decoration-skip-ink:none; -} - -address{ - margin-bottom:1rem; - font-style:normal; - line-height:inherit; -} - -ol, -ul, -dl{ - margin-top:0; - margin-bottom:1rem; -} - -ol ol, -ul ul, -ol ul, -ul ol{ - margin-bottom:0; -} - -dt{ - font-weight:700; -} - -dd{ - margin-bottom:0.5rem; - margin-left:0; -} - -blockquote{ - margin:0 0 1rem; -} - -b, -strong{ - font-weight:bolder; -} - -small{ - font-size:80%; -} - -sub, -sup{ - position:relative; - font-size:75%; - line-height:0; - vertical-align:baseline; -} - -sub{ - bottom:-0.25em; -} - -sup{ - top:-0.5em; -} - -a{ - color:#3490dc; - text-decoration:none; - background-color:transparent; -} -a:hover{ - color:#1d68a7; - text-decoration:underline; -} - -a:not([href]):not([class]){ - color:inherit; - text-decoration:none; -} -a:not([href]):not([class]):hover{ - color:inherit; - text-decoration:none; -} - -pre, -code, -kbd, -samp{ - font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; - font-size:1em; -} - -pre{ - margin-top:0; - margin-bottom:1rem; - overflow:auto; - -ms-overflow-style:scrollbar; -} - -figure{ - margin:0 0 1rem; -} - -img{ - vertical-align:middle; - border-style:none; -} - -svg{ - overflow:hidden; - vertical-align:middle; -} - -table{ - border-collapse:collapse; -} - -caption{ - padding-top:0.75rem; - padding-bottom:0.75rem; - color:#6c757d; - text-align:left; - caption-side:bottom; -} - -th{ - text-align:inherit; - text-align:-webkit-match-parent; -} - -label{ - display:inline-block; - margin-bottom:0.5rem; -} - -button{ - border-radius:0; -} - -button:focus:not(:focus-visible){ - outline:0; -} - -input, -button, -select, -optgroup, -textarea{ - margin:0; - font-family:inherit; - font-size:inherit; - line-height:inherit; -} - -button, -input{ - overflow:visible; -} - -button, -select{ - text-transform:none; -} - -[role=button]{ - cursor:pointer; -} - -select{ - word-wrap:normal; -} - -button, -[type=button], -[type=reset], -[type=submit]{ - -webkit-appearance:button; -} - -button:not(:disabled), -[type=button]:not(:disabled), -[type=reset]:not(:disabled), -[type=submit]:not(:disabled){ - cursor:pointer; -} - -button::-moz-focus-inner, -[type=button]::-moz-focus-inner, -[type=reset]::-moz-focus-inner, -[type=submit]::-moz-focus-inner{ - padding:0; - border-style:none; -} - -input[type=radio], -input[type=checkbox]{ - box-sizing:border-box; - padding:0; -} - -textarea{ - overflow:auto; - resize:vertical; -} - -fieldset{ - min-width:0; - padding:0; - margin:0; - border:0; -} - -legend{ - display:block; - width:100%; - max-width:100%; - padding:0; - margin-bottom:0.5rem; - font-size:1.5rem; - line-height:inherit; - color:inherit; - white-space:normal; -} - -progress{ - vertical-align:baseline; -} - -[type=number]::-webkit-inner-spin-button, -[type=number]::-webkit-outer-spin-button{ - height:auto; -} - -[type=search]{ - outline-offset:-2px; - -webkit-appearance:none; -} - -[type=search]::-webkit-search-decoration{ - -webkit-appearance:none; -} - -::-webkit-file-upload-button{ - font:inherit; - -webkit-appearance:button; -} - -output{ - display:inline-block; -} - -summary{ - display:list-item; - cursor:pointer; -} - -template{ - display:none; -} - -[hidden]{ - display:none !important; -} - -h1, h2, h3, h4, h5, h6, -.h1, .h2, .h3, .h4, .h5, .h6{ - margin-bottom:0.5rem; - font-weight:500; - line-height:1.2; -} - -h1, .h1{ - font-size:2.25rem; -} - -h2, .h2{ - font-size:1.8rem; -} - -h3, .h3{ - font-size:1.575rem; -} - -h4, .h4{ - font-size:1.35rem; -} - -h5, .h5{ - font-size:1.125rem; -} - -h6, .h6{ - font-size:0.9rem; -} - -.lead{ - font-size:1.125rem; - font-weight:300; -} - -.display-1{ - font-size:6rem; - font-weight:300; - line-height:1.2; -} - -.display-2{ - font-size:5.5rem; - font-weight:300; - line-height:1.2; -} - -.display-3{ - font-size:4.5rem; - font-weight:300; - line-height:1.2; -} - -.display-4{ - font-size:3.5rem; - font-weight:300; - line-height:1.2; -} - -hr{ - margin-top:1rem; - margin-bottom:1rem; - border:0; - border-top:1px solid rgba(0, 0, 0, 0.1); -} - -small, -.small{ - font-size:80%; - font-weight:400; -} - -mark, -.mark{ - padding:0.2em; - background-color:#fcf8e3; -} - -.list-unstyled{ - padding-left:0; - list-style:none; -} - -.list-inline{ - padding-left:0; - list-style:none; -} - -.list-inline-item{ - display:inline-block; -} -.list-inline-item:not(:last-child){ - margin-right:0.5rem; -} - -.initialism{ - font-size:90%; - text-transform:uppercase; -} - -.blockquote{ - margin-bottom:1rem; - font-size:1.125rem; -} - -.blockquote-footer{ - display:block; - font-size:80%; - color:#6c757d; -} -.blockquote-footer::before{ - content:"— "; -} - -.img-fluid{ - max-width:100%; - height:auto; -} - -.img-thumbnail{ - padding:0.25rem; - background-color:#f8fafc; - border:1px solid #dee2e6; - border-radius:0.25rem; - max-width:100%; - height:auto; -} - -.figure{ - display:inline-block; -} - -.figure-img{ - margin-bottom:0.5rem; - line-height:1; -} - -.figure-caption{ - font-size:90%; - color:#6c757d; -} - -code{ - font-size:87.5%; - color:#f66d9b; - word-wrap:break-word; -} -a > code{ - color:inherit; -} - -kbd{ - padding:0.2rem 0.4rem; - font-size:87.5%; - color:#fff; - background-color:#212529; - border-radius:0.2rem; -} -kbd kbd{ - padding:0; - font-size:100%; - font-weight:700; -} - -pre{ - display:block; - font-size:87.5%; - color:#212529; -} -pre code{ - font-size:inherit; - color:inherit; - word-break:normal; -} - -.pre-scrollable{ - max-height:340px; - overflow-y:scroll; -} - -.container, -.container-fluid, -.container-xl, -.container-lg, -.container-md, -.container-sm{ - width:100%; - padding-right:15px; - padding-left:15px; - margin-right:auto; - margin-left:auto; -} - -@media (min-width: 576px){ - .container-sm, .container{ - max-width:540px; - } -} -@media (min-width: 768px){ - .container-md, .container-sm, .container{ - max-width:720px; - } -} -@media (min-width: 992px){ - .container-lg, .container-md, .container-sm, .container{ - max-width:960px; - } -} -@media (min-width: 1200px){ - .container-xl, .container-lg, .container-md, .container-sm, .container{ - max-width:1140px; - } -} -.row{ - display:flex; - flex-wrap:wrap; - margin-right:-15px; - margin-left:-15px; -} - -.no-gutters{ - margin-right:0; - margin-left:0; -} -.no-gutters > .col, -.no-gutters > [class*=col-]{ - padding-right:0; - padding-left:0; -} - -.col-xl, -.col-xl-auto, .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-lg, -.col-lg-auto, .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-md, -.col-md-auto, .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-sm, -.col-sm-auto, .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col, -.col-auto, .col-12, .col-11, .col-10, .col-9, .col-8, .col-7, .col-6, .col-5, .col-4, .col-3, .col-2, .col-1{ - position:relative; - width:100%; - padding-right:15px; - padding-left:15px; -} - -.col{ - flex-basis:0; - flex-grow:1; - max-width:100%; -} - -.row-cols-1 > *{ - flex:0 0 100%; - max-width:100%; -} - -.row-cols-2 > *{ - flex:0 0 50%; - max-width:50%; -} - -.row-cols-3 > *{ - flex:0 0 33.3333333333%; - max-width:33.3333333333%; -} - -.row-cols-4 > *{ - flex:0 0 25%; - max-width:25%; -} - -.row-cols-5 > *{ - flex:0 0 20%; - max-width:20%; -} - -.row-cols-6 > *{ - flex:0 0 16.6666666667%; - max-width:16.6666666667%; -} - -.col-auto{ - flex:0 0 auto; - width:auto; - max-width:100%; -} - -.col-1{ - flex:0 0 8.33333333%; - max-width:8.33333333%; -} - -.col-2{ - flex:0 0 16.66666667%; - max-width:16.66666667%; -} - -.col-3{ - flex:0 0 25%; - max-width:25%; -} - -.col-4{ - flex:0 0 33.33333333%; - max-width:33.33333333%; -} - -.col-5{ - flex:0 0 41.66666667%; - max-width:41.66666667%; -} - -.col-6{ - flex:0 0 50%; - max-width:50%; -} - -.col-7{ - flex:0 0 58.33333333%; - max-width:58.33333333%; -} - -.col-8{ - flex:0 0 66.66666667%; - max-width:66.66666667%; -} - -.col-9{ - flex:0 0 75%; - max-width:75%; -} - -.col-10{ - flex:0 0 83.33333333%; - max-width:83.33333333%; -} - -.col-11{ - flex:0 0 91.66666667%; - max-width:91.66666667%; -} - -.col-12{ - flex:0 0 100%; - max-width:100%; -} - -.order-first{ - order:-1; -} - -.order-last{ - order:13; -} - -.order-0{ - order:0; -} - -.order-1{ - order:1; -} - -.order-2{ - order:2; -} - -.order-3{ - order:3; -} - -.order-4{ - order:4; -} - -.order-5{ - order:5; -} - -.order-6{ - order:6; -} - -.order-7{ - order:7; -} - -.order-8{ - order:8; -} - -.order-9{ - order:9; -} - -.order-10{ - order:10; -} - -.order-11{ - order:11; -} - -.order-12{ - order:12; -} - -.offset-1{ - margin-left:8.33333333%; -} - -.offset-2{ - margin-left:16.66666667%; -} - -.offset-3{ - margin-left:25%; -} - -.offset-4{ - margin-left:33.33333333%; -} - -.offset-5{ - margin-left:41.66666667%; -} - -.offset-6{ - margin-left:50%; -} - -.offset-7{ - margin-left:58.33333333%; -} - -.offset-8{ - margin-left:66.66666667%; -} - -.offset-9{ - margin-left:75%; -} - -.offset-10{ - margin-left:83.33333333%; -} - -.offset-11{ - margin-left:91.66666667%; -} - -@media (min-width: 576px){ - .col-sm{ - flex-basis:0; - flex-grow:1; - max-width:100%; - } - - .row-cols-sm-1 > *{ - flex:0 0 100%; - max-width:100%; - } - - .row-cols-sm-2 > *{ - flex:0 0 50%; - max-width:50%; - } - - .row-cols-sm-3 > *{ - flex:0 0 33.3333333333%; - max-width:33.3333333333%; - } - - .row-cols-sm-4 > *{ - flex:0 0 25%; - max-width:25%; - } - - .row-cols-sm-5 > *{ - flex:0 0 20%; - max-width:20%; - } - - .row-cols-sm-6 > *{ - flex:0 0 16.6666666667%; - max-width:16.6666666667%; - } - - .col-sm-auto{ - flex:0 0 auto; - width:auto; - max-width:100%; - } - - .col-sm-1{ - flex:0 0 8.33333333%; - max-width:8.33333333%; - } - - .col-sm-2{ - flex:0 0 16.66666667%; - max-width:16.66666667%; - } - - .col-sm-3{ - flex:0 0 25%; - max-width:25%; - } - - .col-sm-4{ - flex:0 0 33.33333333%; - max-width:33.33333333%; - } - - .col-sm-5{ - flex:0 0 41.66666667%; - max-width:41.66666667%; - } - - .col-sm-6{ - flex:0 0 50%; - max-width:50%; - } - - .col-sm-7{ - flex:0 0 58.33333333%; - max-width:58.33333333%; - } - - .col-sm-8{ - flex:0 0 66.66666667%; - max-width:66.66666667%; - } - - .col-sm-9{ - flex:0 0 75%; - max-width:75%; - } - - .col-sm-10{ - flex:0 0 83.33333333%; - max-width:83.33333333%; - } - - .col-sm-11{ - flex:0 0 91.66666667%; - max-width:91.66666667%; - } - - .col-sm-12{ - flex:0 0 100%; - max-width:100%; - } - - .order-sm-first{ - order:-1; - } - - .order-sm-last{ - order:13; - } - - .order-sm-0{ - order:0; - } - - .order-sm-1{ - order:1; - } - - .order-sm-2{ - order:2; - } - - .order-sm-3{ - order:3; - } - - .order-sm-4{ - order:4; - } - - .order-sm-5{ - order:5; - } - - .order-sm-6{ - order:6; - } - - .order-sm-7{ - order:7; - } - - .order-sm-8{ - order:8; - } - - .order-sm-9{ - order:9; - } - - .order-sm-10{ - order:10; - } - - .order-sm-11{ - order:11; - } - - .order-sm-12{ - order:12; - } - - .offset-sm-0{ - margin-left:0; - } - - .offset-sm-1{ - margin-left:8.33333333%; - } - - .offset-sm-2{ - margin-left:16.66666667%; - } - - .offset-sm-3{ - margin-left:25%; - } - - .offset-sm-4{ - margin-left:33.33333333%; - } - - .offset-sm-5{ - margin-left:41.66666667%; - } - - .offset-sm-6{ - margin-left:50%; - } - - .offset-sm-7{ - margin-left:58.33333333%; - } - - .offset-sm-8{ - margin-left:66.66666667%; - } - - .offset-sm-9{ - margin-left:75%; - } - - .offset-sm-10{ - margin-left:83.33333333%; - } - - .offset-sm-11{ - margin-left:91.66666667%; - } -} -@media (min-width: 768px){ - .col-md{ - flex-basis:0; - flex-grow:1; - max-width:100%; - } - - .row-cols-md-1 > *{ - flex:0 0 100%; - max-width:100%; - } - - .row-cols-md-2 > *{ - flex:0 0 50%; - max-width:50%; - } - - .row-cols-md-3 > *{ - flex:0 0 33.3333333333%; - max-width:33.3333333333%; - } - - .row-cols-md-4 > *{ - flex:0 0 25%; - max-width:25%; - } - - .row-cols-md-5 > *{ - flex:0 0 20%; - max-width:20%; - } - - .row-cols-md-6 > *{ - flex:0 0 16.6666666667%; - max-width:16.6666666667%; - } - - .col-md-auto{ - flex:0 0 auto; - width:auto; - max-width:100%; - } - - .col-md-1{ - flex:0 0 8.33333333%; - max-width:8.33333333%; - } - - .col-md-2{ - flex:0 0 16.66666667%; - max-width:16.66666667%; - } - - .col-md-3{ - flex:0 0 25%; - max-width:25%; - } - - .col-md-4{ - flex:0 0 33.33333333%; - max-width:33.33333333%; - } - - .col-md-5{ - flex:0 0 41.66666667%; - max-width:41.66666667%; - } - - .col-md-6{ - flex:0 0 50%; - max-width:50%; - } - - .col-md-7{ - flex:0 0 58.33333333%; - max-width:58.33333333%; - } - - .col-md-8{ - flex:0 0 66.66666667%; - max-width:66.66666667%; - } - - .col-md-9{ - flex:0 0 75%; - max-width:75%; - } - - .col-md-10{ - flex:0 0 83.33333333%; - max-width:83.33333333%; - } - - .col-md-11{ - flex:0 0 91.66666667%; - max-width:91.66666667%; - } - - .col-md-12{ - flex:0 0 100%; - max-width:100%; - } - - .order-md-first{ - order:-1; - } - - .order-md-last{ - order:13; - } - - .order-md-0{ - order:0; - } - - .order-md-1{ - order:1; - } - - .order-md-2{ - order:2; - } - - .order-md-3{ - order:3; - } - - .order-md-4{ - order:4; - } - - .order-md-5{ - order:5; - } - - .order-md-6{ - order:6; - } - - .order-md-7{ - order:7; - } - - .order-md-8{ - order:8; - } - - .order-md-9{ - order:9; - } - - .order-md-10{ - order:10; - } - - .order-md-11{ - order:11; - } - - .order-md-12{ - order:12; - } - - .offset-md-0{ - margin-left:0; - } - - .offset-md-1{ - margin-left:8.33333333%; - } - - .offset-md-2{ - margin-left:16.66666667%; - } - - .offset-md-3{ - margin-left:25%; - } - - .offset-md-4{ - margin-left:33.33333333%; - } - - .offset-md-5{ - margin-left:41.66666667%; - } - - .offset-md-6{ - margin-left:50%; - } - - .offset-md-7{ - margin-left:58.33333333%; - } - - .offset-md-8{ - margin-left:66.66666667%; - } - - .offset-md-9{ - margin-left:75%; - } - - .offset-md-10{ - margin-left:83.33333333%; - } - - .offset-md-11{ - margin-left:91.66666667%; - } -} -@media (min-width: 992px){ - .col-lg{ - flex-basis:0; - flex-grow:1; - max-width:100%; - } - - .row-cols-lg-1 > *{ - flex:0 0 100%; - max-width:100%; - } - - .row-cols-lg-2 > *{ - flex:0 0 50%; - max-width:50%; - } - - .row-cols-lg-3 > *{ - flex:0 0 33.3333333333%; - max-width:33.3333333333%; - } - - .row-cols-lg-4 > *{ - flex:0 0 25%; - max-width:25%; - } - - .row-cols-lg-5 > *{ - flex:0 0 20%; - max-width:20%; - } - - .row-cols-lg-6 > *{ - flex:0 0 16.6666666667%; - max-width:16.6666666667%; - } - - .col-lg-auto{ - flex:0 0 auto; - width:auto; - max-width:100%; - } - - .col-lg-1{ - flex:0 0 8.33333333%; - max-width:8.33333333%; - } - - .col-lg-2{ - flex:0 0 16.66666667%; - max-width:16.66666667%; - } - - .col-lg-3{ - flex:0 0 25%; - max-width:25%; - } - - .col-lg-4{ - flex:0 0 33.33333333%; - max-width:33.33333333%; - } - - .col-lg-5{ - flex:0 0 41.66666667%; - max-width:41.66666667%; - } - - .col-lg-6{ - flex:0 0 50%; - max-width:50%; - } - - .col-lg-7{ - flex:0 0 58.33333333%; - max-width:58.33333333%; - } - - .col-lg-8{ - flex:0 0 66.66666667%; - max-width:66.66666667%; - } - - .col-lg-9{ - flex:0 0 75%; - max-width:75%; - } - - .col-lg-10{ - flex:0 0 83.33333333%; - max-width:83.33333333%; - } - - .col-lg-11{ - flex:0 0 91.66666667%; - max-width:91.66666667%; - } - - .col-lg-12{ - flex:0 0 100%; - max-width:100%; - } - - .order-lg-first{ - order:-1; - } - - .order-lg-last{ - order:13; - } - - .order-lg-0{ - order:0; - } - - .order-lg-1{ - order:1; - } - - .order-lg-2{ - order:2; - } - - .order-lg-3{ - order:3; - } - - .order-lg-4{ - order:4; - } - - .order-lg-5{ - order:5; - } - - .order-lg-6{ - order:6; - } - - .order-lg-7{ - order:7; - } - - .order-lg-8{ - order:8; - } - - .order-lg-9{ - order:9; - } - - .order-lg-10{ - order:10; - } - - .order-lg-11{ - order:11; - } - - .order-lg-12{ - order:12; - } - - .offset-lg-0{ - margin-left:0; - } - - .offset-lg-1{ - margin-left:8.33333333%; - } - - .offset-lg-2{ - margin-left:16.66666667%; - } - - .offset-lg-3{ - margin-left:25%; - } - - .offset-lg-4{ - margin-left:33.33333333%; - } - - .offset-lg-5{ - margin-left:41.66666667%; - } - - .offset-lg-6{ - margin-left:50%; - } - - .offset-lg-7{ - margin-left:58.33333333%; - } - - .offset-lg-8{ - margin-left:66.66666667%; - } - - .offset-lg-9{ - margin-left:75%; - } - - .offset-lg-10{ - margin-left:83.33333333%; - } - - .offset-lg-11{ - margin-left:91.66666667%; - } -} -@media (min-width: 1200px){ - .col-xl{ - flex-basis:0; - flex-grow:1; - max-width:100%; - } - - .row-cols-xl-1 > *{ - flex:0 0 100%; - max-width:100%; - } - - .row-cols-xl-2 > *{ - flex:0 0 50%; - max-width:50%; - } - - .row-cols-xl-3 > *{ - flex:0 0 33.3333333333%; - max-width:33.3333333333%; - } - - .row-cols-xl-4 > *{ - flex:0 0 25%; - max-width:25%; - } - - .row-cols-xl-5 > *{ - flex:0 0 20%; - max-width:20%; - } - - .row-cols-xl-6 > *{ - flex:0 0 16.6666666667%; - max-width:16.6666666667%; - } - - .col-xl-auto{ - flex:0 0 auto; - width:auto; - max-width:100%; - } - - .col-xl-1{ - flex:0 0 8.33333333%; - max-width:8.33333333%; - } - - .col-xl-2{ - flex:0 0 16.66666667%; - max-width:16.66666667%; - } - - .col-xl-3{ - flex:0 0 25%; - max-width:25%; - } - - .col-xl-4{ - flex:0 0 33.33333333%; - max-width:33.33333333%; - } - - .col-xl-5{ - flex:0 0 41.66666667%; - max-width:41.66666667%; - } - - .col-xl-6{ - flex:0 0 50%; - max-width:50%; - } - - .col-xl-7{ - flex:0 0 58.33333333%; - max-width:58.33333333%; - } - - .col-xl-8{ - flex:0 0 66.66666667%; - max-width:66.66666667%; - } - - .col-xl-9{ - flex:0 0 75%; - max-width:75%; - } - - .col-xl-10{ - flex:0 0 83.33333333%; - max-width:83.33333333%; - } - - .col-xl-11{ - flex:0 0 91.66666667%; - max-width:91.66666667%; - } - - .col-xl-12{ - flex:0 0 100%; - max-width:100%; - } - - .order-xl-first{ - order:-1; - } - - .order-xl-last{ - order:13; - } - - .order-xl-0{ - order:0; - } - - .order-xl-1{ - order:1; - } - - .order-xl-2{ - order:2; - } - - .order-xl-3{ - order:3; - } - - .order-xl-4{ - order:4; - } - - .order-xl-5{ - order:5; - } - - .order-xl-6{ - order:6; - } - - .order-xl-7{ - order:7; - } - - .order-xl-8{ - order:8; - } - - .order-xl-9{ - order:9; - } - - .order-xl-10{ - order:10; - } - - .order-xl-11{ - order:11; - } - - .order-xl-12{ - order:12; - } - - .offset-xl-0{ - margin-left:0; - } - - .offset-xl-1{ - margin-left:8.33333333%; - } - - .offset-xl-2{ - margin-left:16.66666667%; - } - - .offset-xl-3{ - margin-left:25%; - } - - .offset-xl-4{ - margin-left:33.33333333%; - } - - .offset-xl-5{ - margin-left:41.66666667%; - } - - .offset-xl-6{ - margin-left:50%; - } - - .offset-xl-7{ - margin-left:58.33333333%; - } - - .offset-xl-8{ - margin-left:66.66666667%; - } - - .offset-xl-9{ - margin-left:75%; - } - - .offset-xl-10{ - margin-left:83.33333333%; - } - - .offset-xl-11{ - margin-left:91.66666667%; - } -} -.table{ - width:100%; - margin-bottom:1rem; - color:#212529; -} -.table th, -.table td{ - padding:0.75rem; - vertical-align:top; - border-top:1px solid #dee2e6; -} -.table thead th{ - vertical-align:bottom; - border-bottom:2px solid #dee2e6; -} -.table tbody + tbody{ - border-top:2px solid #dee2e6; -} - -.table-sm th, -.table-sm td{ - padding:0.3rem; -} - -.table-bordered{ - border:1px solid #dee2e6; -} -.table-bordered th, -.table-bordered td{ - border:1px solid #dee2e6; -} -.table-bordered thead th, -.table-bordered thead td{ - border-bottom-width:2px; -} - -.table-borderless th, -.table-borderless td, -.table-borderless thead th, -.table-borderless tbody + tbody{ - border:0; -} - -.table-striped tbody tr:nth-of-type(odd){ - background-color:rgba(0, 0, 0, 0.05); -} - -.table-hover tbody tr:hover{ - color:#212529; - background-color:rgba(0, 0, 0, 0.075); -} - -.table-primary, -.table-primary > th, -.table-primary > td{ - background-color:#c6e0f5; -} -.table-primary th, -.table-primary td, -.table-primary thead th, -.table-primary tbody + tbody{ - border-color:#95c5ed; -} - -.table-hover .table-primary:hover{ - background-color:#b0d4f1; -} -.table-hover .table-primary:hover > td, -.table-hover .table-primary:hover > th{ - background-color:#b0d4f1; -} - -.table-secondary, -.table-secondary > th, -.table-secondary > td{ - background-color:#d6d8db; -} -.table-secondary th, -.table-secondary td, -.table-secondary thead th, -.table-secondary tbody + tbody{ - border-color:#b3b7bb; -} - -.table-hover .table-secondary:hover{ - background-color:#c8cbcf; -} -.table-hover .table-secondary:hover > td, -.table-hover .table-secondary:hover > th{ - background-color:#c8cbcf; -} - -.table-success, -.table-success > th, -.table-success > td{ - background-color:#c7eed8; -} -.table-success th, -.table-success td, -.table-success thead th, -.table-success tbody + tbody{ - border-color:#98dfb6; -} - -.table-hover .table-success:hover{ - background-color:#b3e8ca; -} -.table-hover .table-success:hover > td, -.table-hover .table-success:hover > th{ - background-color:#b3e8ca; -} - -.table-info, -.table-info > th, -.table-info > td{ - background-color:#d6e9f9; -} -.table-info th, -.table-info td, -.table-info thead th, -.table-info tbody + tbody{ - border-color:#b3d7f5; -} - -.table-hover .table-info:hover{ - background-color:#c0ddf6; -} -.table-hover .table-info:hover > td, -.table-hover .table-info:hover > th{ - background-color:#c0ddf6; -} - -.table-warning, -.table-warning > th, -.table-warning > td{ - background-color:#fffacc; -} -.table-warning th, -.table-warning td, -.table-warning thead th, -.table-warning tbody + tbody{ - border-color:#fff6a1; -} - -.table-hover .table-warning:hover{ - background-color:#fff8b3; -} -.table-hover .table-warning:hover > td, -.table-hover .table-warning:hover > th{ - background-color:#fff8b3; -} - -.table-danger, -.table-danger > th, -.table-danger > td{ - background-color:#f7c6c5; -} -.table-danger th, -.table-danger td, -.table-danger thead th, -.table-danger tbody + tbody{ - border-color:#f09593; -} - -.table-hover .table-danger:hover{ - background-color:#f4b0af; -} -.table-hover .table-danger:hover > td, -.table-hover .table-danger:hover > th{ - background-color:#f4b0af; -} - -.table-light, -.table-light > th, -.table-light > td{ - background-color:#fdfdfe; -} -.table-light th, -.table-light td, -.table-light thead th, -.table-light tbody + tbody{ - border-color:#fbfcfc; -} - -.table-hover .table-light:hover{ - background-color:#ececf6; -} -.table-hover .table-light:hover > td, -.table-hover .table-light:hover > th{ - background-color:#ececf6; -} - -.table-dark, -.table-dark > th, -.table-dark > td{ - background-color:#c6c8ca; -} -.table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody{ - border-color:#95999c; -} - -.table-hover .table-dark:hover{ - background-color:#b9bbbe; -} -.table-hover .table-dark:hover > td, -.table-hover .table-dark:hover > th{ - background-color:#b9bbbe; -} - -.table-active, -.table-active > th, -.table-active > td{ - background-color:rgba(0, 0, 0, 0.075); -} - -.table-hover .table-active:hover{ - background-color:rgba(0, 0, 0, 0.075); -} -.table-hover .table-active:hover > td, -.table-hover .table-active:hover > th{ - background-color:rgba(0, 0, 0, 0.075); -} - -.table .thead-dark th{ - color:#fff; - background-color:#343a40; - border-color:#454d55; -} -.table .thead-light th{ - color:#495057; - background-color:#e9ecef; - border-color:#dee2e6; -} - -.table-dark{ - color:#fff; - background-color:#343a40; -} -.table-dark th, -.table-dark td, -.table-dark thead th{ - border-color:#454d55; -} -.table-dark.table-bordered{ - border:0; -} -.table-dark.table-striped tbody tr:nth-of-type(odd){ - background-color:rgba(255, 255, 255, 0.05); -} -.table-dark.table-hover tbody tr:hover{ - color:#fff; - background-color:rgba(255, 255, 255, 0.075); -} - -@media (max-width: 575.98px){ - .table-responsive-sm{ - display:block; - width:100%; - overflow-x:auto; - -webkit-overflow-scrolling:touch; - } - .table-responsive-sm > .table-bordered{ - border:0; - } -} -@media (max-width: 767.98px){ - .table-responsive-md{ - display:block; - width:100%; - overflow-x:auto; - -webkit-overflow-scrolling:touch; - } - .table-responsive-md > .table-bordered{ - border:0; - } -} -@media (max-width: 991.98px){ - .table-responsive-lg{ - display:block; - width:100%; - overflow-x:auto; - -webkit-overflow-scrolling:touch; - } - .table-responsive-lg > .table-bordered{ - border:0; - } -} -@media (max-width: 1199.98px){ - .table-responsive-xl{ - display:block; - width:100%; - overflow-x:auto; - -webkit-overflow-scrolling:touch; - } - .table-responsive-xl > .table-bordered{ - border:0; - } -} -.table-responsive{ - display:block; - width:100%; - overflow-x:auto; - -webkit-overflow-scrolling:touch; -} -.table-responsive > .table-bordered{ - border:0; -} - -.form-control{ - display:block; - width:100%; - height:calc(1.6em + 0.75rem + 2px); - padding:0.375rem 0.75rem; - font-size:0.9rem; - font-weight:400; - line-height:1.6; - color:#495057; - background-color:#fff; - background-clip:padding-box; - border:1px solid #ced4da; - border-radius:0.25rem; - transition:border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .form-control{ - transition:none; - } -} -.form-control::-ms-expand{ - background-color:transparent; - border:0; -} -.form-control:focus{ - color:#495057; - background-color:#fff; - border-color:#a1cbef; - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.form-control::-moz-placeholder{ - color:#6c757d; - opacity:1; -} -.form-control:-ms-input-placeholder{ - color:#6c757d; - opacity:1; -} -.form-control::placeholder{ - color:#6c757d; - opacity:1; -} -.form-control:disabled, .form-control[readonly]{ - background-color:#e9ecef; - opacity:1; -} - -input[type=date].form-control, -input[type=time].form-control, -input[type=datetime-local].form-control, -input[type=month].form-control{ - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; -} - -select.form-control:-moz-focusring{ - color:transparent; - text-shadow:0 0 0 #495057; -} -select.form-control:focus::-ms-value{ - color:#495057; - background-color:#fff; -} - -.form-control-file, -.form-control-range{ - display:block; - width:100%; -} - -.col-form-label{ - padding-top:calc(0.375rem + 1px); - padding-bottom:calc(0.375rem + 1px); - margin-bottom:0; - font-size:inherit; - line-height:1.6; -} - -.col-form-label-lg{ - padding-top:calc(0.5rem + 1px); - padding-bottom:calc(0.5rem + 1px); - font-size:1.125rem; - line-height:1.5; -} - -.col-form-label-sm{ - padding-top:calc(0.25rem + 1px); - padding-bottom:calc(0.25rem + 1px); - font-size:0.7875rem; - line-height:1.5; -} - -.form-control-plaintext{ - display:block; - width:100%; - padding:0.375rem 0; - margin-bottom:0; - font-size:0.9rem; - line-height:1.6; - color:#212529; - background-color:transparent; - border:solid transparent; - border-width:1px 0; -} -.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg{ - padding-right:0; - padding-left:0; -} - -.form-control-sm{ - height:calc(1.5em + 0.5rem + 2px); - padding:0.25rem 0.5rem; - font-size:0.7875rem; - line-height:1.5; - border-radius:0.2rem; -} - -.form-control-lg{ - height:calc(1.5em + 1rem + 2px); - padding:0.5rem 1rem; - font-size:1.125rem; - line-height:1.5; - border-radius:0.3rem; -} - -select.form-control[size], select.form-control[multiple]{ - height:auto; -} - -textarea.form-control{ - height:auto; -} - -.form-group{ - margin-bottom:1rem; -} - -.form-text{ - display:block; - margin-top:0.25rem; -} - -.form-row{ - display:flex; - flex-wrap:wrap; - margin-right:-5px; - margin-left:-5px; -} -.form-row > .col, -.form-row > [class*=col-]{ - padding-right:5px; - padding-left:5px; -} - -.form-check{ - position:relative; - display:block; - padding-left:1.25rem; -} - -.form-check-input{ - position:absolute; - margin-top:0.3rem; - margin-left:-1.25rem; -} -.form-check-input[disabled] ~ .form-check-label, .form-check-input:disabled ~ .form-check-label{ - color:#6c757d; -} - -.form-check-label{ - margin-bottom:0; -} - -.form-check-inline{ - display:inline-flex; - align-items:center; - padding-left:0; - margin-right:0.75rem; -} -.form-check-inline .form-check-input{ - position:static; - margin-top:0; - margin-right:0.3125rem; - margin-left:0; -} - -.valid-feedback{ - display:none; - width:100%; - margin-top:0.25rem; - font-size:80%; - color:#38c172; -} - -.valid-tooltip{ - position:absolute; - top:100%; - left:0; - z-index:5; - display:none; - max-width:100%; - padding:0.25rem 0.5rem; - margin-top:0.1rem; - font-size:0.7875rem; - line-height:1.6; - color:#fff; - background-color:rgba(56, 193, 114, 0.9); - border-radius:0.25rem; -} -.form-row > .col > .valid-tooltip, .form-row > [class*=col-] > .valid-tooltip{ - left:5px; -} - -.was-validated :valid ~ .valid-feedback, -.was-validated :valid ~ .valid-tooltip, -.is-valid ~ .valid-feedback, -.is-valid ~ .valid-tooltip{ - display:block; -} - -.was-validated .form-control:valid, .form-control.is-valid{ - border-color:#38c172; - padding-right:calc(1.6em + 0.75rem) !important; - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2338c172' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"); - background-repeat:no-repeat; - background-position:right calc(0.4em + 0.1875rem) center; - background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem); -} -.was-validated .form-control:valid:focus, .form-control.is-valid:focus{ - border-color:#38c172; - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.25); -} - -.was-validated select.form-control:valid, select.form-control.is-valid{ - padding-right:3rem !important; - background-position:right 1.5rem center; -} - -.was-validated textarea.form-control:valid, textarea.form-control.is-valid{ - padding-right:calc(1.6em + 0.75rem); - background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem); -} - -.was-validated .custom-select:valid, .custom-select.is-valid{ - border-color:#38c172; - padding-right:calc(0.75em + 2.3125rem) !important; - background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2338c172' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(0.8em + 0.375rem) calc(0.8em + 0.375rem) no-repeat; -} -.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus{ - border-color:#38c172; - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.25); -} - -.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label{ - color:#38c172; -} -.was-validated .form-check-input:valid ~ .valid-feedback, -.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, -.form-check-input.is-valid ~ .valid-tooltip{ - display:block; -} - -.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label{ - color:#38c172; -} -.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before{ - border-color:#38c172; -} -.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before{ - border-color:#5cd08d; - background-color:#5cd08d; -} -.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before{ - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.25); -} -.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before{ - border-color:#38c172; -} - -.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label{ - border-color:#38c172; -} -.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label{ - border-color:#38c172; - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.25); -} - -.invalid-feedback{ - display:none; - width:100%; - margin-top:0.25rem; - font-size:80%; - color:#e3342f; -} - -.invalid-tooltip{ - position:absolute; - top:100%; - left:0; - z-index:5; - display:none; - max-width:100%; - padding:0.25rem 0.5rem; - margin-top:0.1rem; - font-size:0.7875rem; - line-height:1.6; - color:#fff; - background-color:rgba(227, 52, 47, 0.9); - border-radius:0.25rem; -} -.form-row > .col > .invalid-tooltip, .form-row > [class*=col-] > .invalid-tooltip{ - left:5px; -} - -.was-validated :invalid ~ .invalid-feedback, -.was-validated :invalid ~ .invalid-tooltip, -.is-invalid ~ .invalid-feedback, -.is-invalid ~ .invalid-tooltip{ - display:block; -} - -.was-validated .form-control:invalid, .form-control.is-invalid{ - border-color:#e3342f; - padding-right:calc(1.6em + 0.75rem) !important; - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23e3342f' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e3342f' stroke='none'/%3e%3c/svg%3e"); - background-repeat:no-repeat; - background-position:right calc(0.4em + 0.1875rem) center; - background-size:calc(0.8em + 0.375rem) calc(0.8em + 0.375rem); -} -.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus{ - border-color:#e3342f; - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.25); -} - -.was-validated select.form-control:invalid, select.form-control.is-invalid{ - padding-right:3rem !important; - background-position:right 1.5rem center; -} - -.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid{ - padding-right:calc(1.6em + 0.75rem); - background-position:top calc(0.4em + 0.1875rem) right calc(0.4em + 0.1875rem); -} - -.was-validated .custom-select:invalid, .custom-select.is-invalid{ - border-color:#e3342f; - padding-right:calc(0.75em + 2.3125rem) !important; - background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat, #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23e3342f' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23e3342f' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(0.8em + 0.375rem) calc(0.8em + 0.375rem) no-repeat; -} -.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus{ - border-color:#e3342f; - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.25); -} - -.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label{ - color:#e3342f; -} -.was-validated .form-check-input:invalid ~ .invalid-feedback, -.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, -.form-check-input.is-invalid ~ .invalid-tooltip{ - display:block; -} - -.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label{ - color:#e3342f; -} -.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before{ - border-color:#e3342f; -} -.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before{ - border-color:#e9605c; - background-color:#e9605c; -} -.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before{ - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.25); -} -.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before{ - border-color:#e3342f; -} - -.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label{ - border-color:#e3342f; -} -.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label{ - border-color:#e3342f; - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.25); -} - -.form-inline{ - display:flex; - flex-flow:row wrap; - align-items:center; -} -.form-inline .form-check{ - width:100%; -} -@media (min-width: 576px){ - .form-inline label{ - display:flex; - align-items:center; - justify-content:center; - margin-bottom:0; - } - .form-inline .form-group{ - display:flex; - flex:0 0 auto; - flex-flow:row wrap; - align-items:center; - margin-bottom:0; - } - .form-inline .form-control{ - display:inline-block; - width:auto; - vertical-align:middle; - } - .form-inline .form-control-plaintext{ - display:inline-block; - } - .form-inline .input-group, -.form-inline .custom-select{ - width:auto; - } - .form-inline .form-check{ - display:flex; - align-items:center; - justify-content:center; - width:auto; - padding-left:0; - } - .form-inline .form-check-input{ - position:relative; - flex-shrink:0; - margin-top:0; - margin-right:0.25rem; - margin-left:0; - } - .form-inline .custom-control{ - align-items:center; - justify-content:center; - } - .form-inline .custom-control-label{ - margin-bottom:0; - } -} - -.btn{ - display:inline-block; - font-weight:400; - color:#212529; - text-align:center; - vertical-align:middle; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - user-select:none; - background-color:transparent; - border:1px solid transparent; - padding:0.375rem 0.75rem; - font-size:0.9rem; - line-height:1.6; - border-radius:0.25rem; - transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .btn{ - transition:none; - } -} -.btn:hover{ - color:#212529; - text-decoration:none; -} -.btn:focus, .btn.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.btn.disabled, .btn:disabled{ - opacity:0.65; -} -.btn:not(:disabled):not(.disabled){ - cursor:pointer; -} -a.btn.disabled, -fieldset:disabled a.btn{ - pointer-events:none; -} - -.btn-primary{ - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.btn-primary:hover{ - color:#fff; - background-color:#227dc7; - border-color:#2176bd; -} -.btn-primary:focus, .btn-primary.focus{ - color:#fff; - background-color:#227dc7; - border-color:#2176bd; - box-shadow:0 0 0 0.2rem rgba(82, 161, 225, 0.5); -} -.btn-primary.disabled, .btn-primary:disabled{ - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, .show > .btn-primary.dropdown-toggle{ - color:#fff; - background-color:#2176bd; - border-color:#1f6fb2; -} -.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-primary.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(82, 161, 225, 0.5); -} - -.btn-secondary{ - color:#fff; - background-color:#6c757d; - border-color:#6c757d; -} -.btn-secondary:hover{ - color:#fff; - background-color:#5a6268; - border-color:#545b62; -} -.btn-secondary:focus, .btn-secondary.focus{ - color:#fff; - background-color:#5a6268; - border-color:#545b62; - box-shadow:0 0 0 0.2rem rgba(130, 138, 145, 0.5); -} -.btn-secondary.disabled, .btn-secondary:disabled{ - color:#fff; - background-color:#6c757d; - border-color:#6c757d; -} -.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, .show > .btn-secondary.dropdown-toggle{ - color:#fff; - background-color:#545b62; - border-color:#4e555b; -} -.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-secondary.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(130, 138, 145, 0.5); -} - -.btn-success{ - color:#fff; - background-color:#38c172; - border-color:#38c172; -} -.btn-success:hover{ - color:#fff; - background-color:#2fa360; - border-color:#2d995b; -} -.btn-success:focus, .btn-success.focus{ - color:#fff; - background-color:#2fa360; - border-color:#2d995b; - box-shadow:0 0 0 0.2rem rgba(86, 202, 135, 0.5); -} -.btn-success.disabled, .btn-success:disabled{ - color:#fff; - background-color:#38c172; - border-color:#38c172; -} -.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, .show > .btn-success.dropdown-toggle{ - color:#fff; - background-color:#2d995b; - border-color:#2a9055; -} -.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, .show > .btn-success.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(86, 202, 135, 0.5); -} - -.btn-info{ - color:#212529; - background-color:#6cb2eb; - border-color:#6cb2eb; -} -.btn-info:hover{ - color:#fff; - background-color:#4aa0e6; - border-color:#3f9ae5; -} -.btn-info:focus, .btn-info.focus{ - color:#fff; - background-color:#4aa0e6; - border-color:#3f9ae5; - box-shadow:0 0 0 0.2rem rgba(97, 157, 206, 0.5); -} -.btn-info.disabled, .btn-info:disabled{ - color:#212529; - background-color:#6cb2eb; - border-color:#6cb2eb; -} -.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, .show > .btn-info.dropdown-toggle{ - color:#fff; - background-color:#3f9ae5; - border-color:#3495e3; -} -.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, .show > .btn-info.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(97, 157, 206, 0.5); -} - -.btn-warning{ - color:#212529; - background-color:#ffed4a; - border-color:#ffed4a; -} -.btn-warning:hover{ - color:#212529; - background-color:#ffe924; - border-color:#ffe817; -} -.btn-warning:focus, .btn-warning.focus{ - color:#212529; - background-color:#ffe924; - border-color:#ffe817; - box-shadow:0 0 0 0.2rem rgba(222, 207, 69, 0.5); -} -.btn-warning.disabled, .btn-warning:disabled{ - color:#212529; - background-color:#ffed4a; - border-color:#ffed4a; -} -.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, .show > .btn-warning.dropdown-toggle{ - color:#212529; - background-color:#ffe817; - border-color:#ffe70a; -} -.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-warning.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(222, 207, 69, 0.5); -} - -.btn-danger{ - color:#fff; - background-color:#e3342f; - border-color:#e3342f; -} -.btn-danger:hover{ - color:#fff; - background-color:#d0211c; - border-color:#c51f1a; -} -.btn-danger:focus, .btn-danger.focus{ - color:#fff; - background-color:#d0211c; - border-color:#c51f1a; - box-shadow:0 0 0 0.2rem rgba(231, 82, 78, 0.5); -} -.btn-danger.disabled, .btn-danger:disabled{ - color:#fff; - background-color:#e3342f; - border-color:#e3342f; -} -.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, .show > .btn-danger.dropdown-toggle{ - color:#fff; - background-color:#c51f1a; - border-color:#b91d19; -} -.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-danger.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(231, 82, 78, 0.5); -} - -.btn-light{ - color:#212529; - background-color:#f8f9fa; - border-color:#f8f9fa; -} -.btn-light:hover{ - color:#212529; - background-color:#e2e6ea; - border-color:#dae0e5; -} -.btn-light:focus, .btn-light.focus{ - color:#212529; - background-color:#e2e6ea; - border-color:#dae0e5; - box-shadow:0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} -.btn-light.disabled, .btn-light:disabled{ - color:#212529; - background-color:#f8f9fa; - border-color:#f8f9fa; -} -.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, .show > .btn-light.dropdown-toggle{ - color:#212529; - background-color:#dae0e5; - border-color:#d3d9df; -} -.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, .show > .btn-light.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(216, 217, 219, 0.5); -} - -.btn-dark{ - color:#fff; - background-color:#343a40; - border-color:#343a40; -} -.btn-dark:hover{ - color:#fff; - background-color:#23272b; - border-color:#1d2124; -} -.btn-dark:focus, .btn-dark.focus{ - color:#fff; - background-color:#23272b; - border-color:#1d2124; - box-shadow:0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} -.btn-dark.disabled, .btn-dark:disabled{ - color:#fff; - background-color:#343a40; - border-color:#343a40; -} -.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, .show > .btn-dark.dropdown-toggle{ - color:#fff; - background-color:#1d2124; - border-color:#171a1d; -} -.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-dark.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(82, 88, 93, 0.5); -} - -.btn-outline-primary{ - color:#3490dc; - border-color:#3490dc; -} -.btn-outline-primary:hover{ - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.btn-outline-primary:focus, .btn-outline-primary.focus{ - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.5); -} -.btn-outline-primary.disabled, .btn-outline-primary:disabled{ - color:#3490dc; - background-color:transparent; -} -.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, .show > .btn-outline-primary.dropdown-toggle{ - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-primary.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.5); -} - -.btn-outline-secondary{ - color:#6c757d; - border-color:#6c757d; -} -.btn-outline-secondary:hover{ - color:#fff; - background-color:#6c757d; - border-color:#6c757d; -} -.btn-outline-secondary:focus, .btn-outline-secondary.focus{ - box-shadow:0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} -.btn-outline-secondary.disabled, .btn-outline-secondary:disabled{ - color:#6c757d; - background-color:transparent; -} -.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, .show > .btn-outline-secondary.dropdown-toggle{ - color:#fff; - background-color:#6c757d; - border-color:#6c757d; -} -.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-secondary.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.btn-outline-success{ - color:#38c172; - border-color:#38c172; -} -.btn-outline-success:hover{ - color:#fff; - background-color:#38c172; - border-color:#38c172; -} -.btn-outline-success:focus, .btn-outline-success.focus{ - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.5); -} -.btn-outline-success.disabled, .btn-outline-success:disabled{ - color:#38c172; - background-color:transparent; -} -.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, .show > .btn-outline-success.dropdown-toggle{ - color:#fff; - background-color:#38c172; - border-color:#38c172; -} -.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-success.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.5); -} - -.btn-outline-info{ - color:#6cb2eb; - border-color:#6cb2eb; -} -.btn-outline-info:hover{ - color:#212529; - background-color:#6cb2eb; - border-color:#6cb2eb; -} -.btn-outline-info:focus, .btn-outline-info.focus{ - box-shadow:0 0 0 0.2rem rgba(108, 178, 235, 0.5); -} -.btn-outline-info.disabled, .btn-outline-info:disabled{ - color:#6cb2eb; - background-color:transparent; -} -.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, .show > .btn-outline-info.dropdown-toggle{ - color:#212529; - background-color:#6cb2eb; - border-color:#6cb2eb; -} -.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-info.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(108, 178, 235, 0.5); -} - -.btn-outline-warning{ - color:#ffed4a; - border-color:#ffed4a; -} -.btn-outline-warning:hover{ - color:#212529; - background-color:#ffed4a; - border-color:#ffed4a; -} -.btn-outline-warning:focus, .btn-outline-warning.focus{ - box-shadow:0 0 0 0.2rem rgba(255, 237, 74, 0.5); -} -.btn-outline-warning.disabled, .btn-outline-warning:disabled{ - color:#ffed4a; - background-color:transparent; -} -.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, .show > .btn-outline-warning.dropdown-toggle{ - color:#212529; - background-color:#ffed4a; - border-color:#ffed4a; -} -.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-warning.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(255, 237, 74, 0.5); -} - -.btn-outline-danger{ - color:#e3342f; - border-color:#e3342f; -} -.btn-outline-danger:hover{ - color:#fff; - background-color:#e3342f; - border-color:#e3342f; -} -.btn-outline-danger:focus, .btn-outline-danger.focus{ - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.5); -} -.btn-outline-danger.disabled, .btn-outline-danger:disabled{ - color:#e3342f; - background-color:transparent; -} -.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, .show > .btn-outline-danger.dropdown-toggle{ - color:#fff; - background-color:#e3342f; - border-color:#e3342f; -} -.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-danger.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.5); -} - -.btn-outline-light{ - color:#f8f9fa; - border-color:#f8f9fa; -} -.btn-outline-light:hover{ - color:#212529; - background-color:#f8f9fa; - border-color:#f8f9fa; -} -.btn-outline-light:focus, .btn-outline-light.focus{ - box-shadow:0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} -.btn-outline-light.disabled, .btn-outline-light:disabled{ - color:#f8f9fa; - background-color:transparent; -} -.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, .show > .btn-outline-light.dropdown-toggle{ - color:#212529; - background-color:#f8f9fa; - border-color:#f8f9fa; -} -.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-light.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.btn-outline-dark{ - color:#343a40; - border-color:#343a40; -} -.btn-outline-dark:hover{ - color:#fff; - background-color:#343a40; - border-color:#343a40; -} -.btn-outline-dark:focus, .btn-outline-dark.focus{ - box-shadow:0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} -.btn-outline-dark.disabled, .btn-outline-dark:disabled{ - color:#343a40; - background-color:transparent; -} -.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, .show > .btn-outline-dark.dropdown-toggle{ - color:#fff; - background-color:#343a40; - border-color:#343a40; -} -.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, .show > .btn-outline-dark.dropdown-toggle:focus{ - box-shadow:0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.btn-link{ - font-weight:400; - color:#3490dc; - text-decoration:none; -} -.btn-link:hover{ - color:#1d68a7; - text-decoration:underline; -} -.btn-link:focus, .btn-link.focus{ - text-decoration:underline; -} -.btn-link:disabled, .btn-link.disabled{ - color:#6c757d; - pointer-events:none; -} - -.btn-lg, .btn-group-lg > .btn{ - padding:0.5rem 1rem; - font-size:1.125rem; - line-height:1.5; - border-radius:0.3rem; -} - -.btn-sm, .btn-group-sm > .btn{ - padding:0.25rem 0.5rem; - font-size:0.7875rem; - line-height:1.5; - border-radius:0.2rem; -} - -.btn-block{ - display:block; - width:100%; -} -.btn-block + .btn-block{ - margin-top:0.5rem; -} - -input[type=submit].btn-block, -input[type=reset].btn-block, -input[type=button].btn-block{ - width:100%; -} - -.fade{ - transition:opacity 0.15s linear; -} -@media (prefers-reduced-motion: reduce){ - .fade{ - transition:none; - } -} -.fade:not(.show){ - opacity:0; -} - -.collapse:not(.show){ - display:none; -} - -.collapsing{ - position:relative; - height:0; - overflow:hidden; - transition:height 0.35s ease; -} -@media (prefers-reduced-motion: reduce){ - .collapsing{ - transition:none; - } -} - -.dropup, -.dropright, -.dropdown, -.dropleft{ - position:relative; -} - -.dropdown-toggle{ - white-space:nowrap; -} -.dropdown-toggle::after{ - display:inline-block; - margin-left:0.255em; - vertical-align:0.255em; - content:""; - border-top:0.3em solid; - border-right:0.3em solid transparent; - border-bottom:0; - border-left:0.3em solid transparent; -} -.dropdown-toggle:empty::after{ - margin-left:0; -} - -.dropdown-menu{ - position:absolute; - top:100%; - left:0; - z-index:1000; - display:none; - float:left; - min-width:10rem; - padding:0.5rem 0; - margin:0.125rem 0 0; - font-size:0.9rem; - color:#212529; - text-align:left; - list-style:none; - background-color:#fff; - background-clip:padding-box; - border:1px solid rgba(0, 0, 0, 0.15); - border-radius:0.25rem; -} - -.dropdown-menu-left{ - right:auto; - left:0; -} - -.dropdown-menu-right{ - right:0; - left:auto; -} - -@media (min-width: 576px){ - .dropdown-menu-sm-left{ - right:auto; - left:0; - } - - .dropdown-menu-sm-right{ - right:0; - left:auto; - } -} -@media (min-width: 768px){ - .dropdown-menu-md-left{ - right:auto; - left:0; - } - - .dropdown-menu-md-right{ - right:0; - left:auto; - } -} -@media (min-width: 992px){ - .dropdown-menu-lg-left{ - right:auto; - left:0; - } - - .dropdown-menu-lg-right{ - right:0; - left:auto; - } -} -@media (min-width: 1200px){ - .dropdown-menu-xl-left{ - right:auto; - left:0; - } - - .dropdown-menu-xl-right{ - right:0; - left:auto; - } -} -.dropup .dropdown-menu{ - top:auto; - bottom:100%; - margin-top:0; - margin-bottom:0.125rem; -} -.dropup .dropdown-toggle::after{ - display:inline-block; - margin-left:0.255em; - vertical-align:0.255em; - content:""; - border-top:0; - border-right:0.3em solid transparent; - border-bottom:0.3em solid; - border-left:0.3em solid transparent; -} -.dropup .dropdown-toggle:empty::after{ - margin-left:0; -} - -.dropright .dropdown-menu{ - top:0; - right:auto; - left:100%; - margin-top:0; - margin-left:0.125rem; -} -.dropright .dropdown-toggle::after{ - display:inline-block; - margin-left:0.255em; - vertical-align:0.255em; - content:""; - border-top:0.3em solid transparent; - border-right:0; - border-bottom:0.3em solid transparent; - border-left:0.3em solid; -} -.dropright .dropdown-toggle:empty::after{ - margin-left:0; -} -.dropright .dropdown-toggle::after{ - vertical-align:0; -} - -.dropleft .dropdown-menu{ - top:0; - right:100%; - left:auto; - margin-top:0; - margin-right:0.125rem; -} -.dropleft .dropdown-toggle::after{ - display:inline-block; - margin-left:0.255em; - vertical-align:0.255em; - content:""; -} -.dropleft .dropdown-toggle::after{ - display:none; -} -.dropleft .dropdown-toggle::before{ - display:inline-block; - margin-right:0.255em; - vertical-align:0.255em; - content:""; - border-top:0.3em solid transparent; - border-right:0.3em solid; - border-bottom:0.3em solid transparent; -} -.dropleft .dropdown-toggle:empty::after{ - margin-left:0; -} -.dropleft .dropdown-toggle::before{ - vertical-align:0; -} - -.dropdown-menu[x-placement^=top], .dropdown-menu[x-placement^=right], .dropdown-menu[x-placement^=bottom], .dropdown-menu[x-placement^=left]{ - right:auto; - bottom:auto; -} - -.dropdown-divider{ - height:0; - margin:0.5rem 0; - overflow:hidden; - border-top:1px solid #e9ecef; -} - -.dropdown-item{ - display:block; - width:100%; - padding:0.25rem 1.5rem; - clear:both; - font-weight:400; - color:#212529; - text-align:inherit; - white-space:nowrap; - background-color:transparent; - border:0; -} -.dropdown-item:hover, .dropdown-item:focus{ - color:#16181b; - text-decoration:none; - background-color:#e9ecef; -} -.dropdown-item.active, .dropdown-item:active{ - color:#fff; - text-decoration:none; - background-color:#3490dc; -} -.dropdown-item.disabled, .dropdown-item:disabled{ - color:#adb5bd; - pointer-events:none; - background-color:transparent; -} - -.dropdown-menu.show{ - display:block; -} - -.dropdown-header{ - display:block; - padding:0.5rem 1.5rem; - margin-bottom:0; - font-size:0.7875rem; - color:#6c757d; - white-space:nowrap; -} - -.dropdown-item-text{ - display:block; - padding:0.25rem 1.5rem; - color:#212529; -} - -.btn-group, -.btn-group-vertical{ - position:relative; - display:inline-flex; - vertical-align:middle; -} -.btn-group > .btn, -.btn-group-vertical > .btn{ - position:relative; - flex:1 1 auto; -} -.btn-group > .btn:hover, -.btn-group-vertical > .btn:hover{ - z-index:1; -} -.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, -.btn-group-vertical > .btn:focus, -.btn-group-vertical > .btn:active, -.btn-group-vertical > .btn.active{ - z-index:1; -} - -.btn-toolbar{ - display:flex; - flex-wrap:wrap; - justify-content:flex-start; -} -.btn-toolbar .input-group{ - width:auto; -} - -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child){ - margin-left:-1px; -} -.btn-group > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group > .btn-group:not(:last-child) > .btn{ - border-top-right-radius:0; - border-bottom-right-radius:0; -} -.btn-group > .btn:not(:first-child), -.btn-group > .btn-group:not(:first-child) > .btn{ - border-top-left-radius:0; - border-bottom-left-radius:0; -} - -.dropdown-toggle-split{ - padding-right:0.5625rem; - padding-left:0.5625rem; -} -.dropdown-toggle-split::after, .dropup .dropdown-toggle-split::after, .dropright .dropdown-toggle-split::after{ - margin-left:0; -} -.dropleft .dropdown-toggle-split::before{ - margin-right:0; -} - -.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split{ - padding-right:0.375rem; - padding-left:0.375rem; -} - -.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split{ - padding-right:0.75rem; - padding-left:0.75rem; -} - -.btn-group-vertical{ - flex-direction:column; - align-items:flex-start; - justify-content:center; -} -.btn-group-vertical > .btn, -.btn-group-vertical > .btn-group{ - width:100%; -} -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child){ - margin-top:-1px; -} -.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), -.btn-group-vertical > .btn-group:not(:last-child) > .btn{ - border-bottom-right-radius:0; - border-bottom-left-radius:0; -} -.btn-group-vertical > .btn:not(:first-child), -.btn-group-vertical > .btn-group:not(:first-child) > .btn{ - border-top-left-radius:0; - border-top-right-radius:0; -} - -.btn-group-toggle > .btn, -.btn-group-toggle > .btn-group > .btn{ - margin-bottom:0; -} -.btn-group-toggle > .btn input[type=radio], -.btn-group-toggle > .btn input[type=checkbox], -.btn-group-toggle > .btn-group > .btn input[type=radio], -.btn-group-toggle > .btn-group > .btn input[type=checkbox]{ - position:absolute; - clip:rect(0, 0, 0, 0); - pointer-events:none; -} - -.input-group{ - position:relative; - display:flex; - flex-wrap:wrap; - align-items:stretch; - width:100%; -} -.input-group > .form-control, -.input-group > .form-control-plaintext, -.input-group > .custom-select, -.input-group > .custom-file{ - position:relative; - flex:1 1 auto; - width:1%; - min-width:0; - margin-bottom:0; -} -.input-group > .form-control + .form-control, -.input-group > .form-control + .custom-select, -.input-group > .form-control + .custom-file, -.input-group > .form-control-plaintext + .form-control, -.input-group > .form-control-plaintext + .custom-select, -.input-group > .form-control-plaintext + .custom-file, -.input-group > .custom-select + .form-control, -.input-group > .custom-select + .custom-select, -.input-group > .custom-select + .custom-file, -.input-group > .custom-file + .form-control, -.input-group > .custom-file + .custom-select, -.input-group > .custom-file + .custom-file{ - margin-left:-1px; -} -.input-group > .form-control:focus, -.input-group > .custom-select:focus, -.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label{ - z-index:3; -} -.input-group > .custom-file .custom-file-input:focus{ - z-index:4; -} -.input-group > .form-control:not(:first-child), -.input-group > .custom-select:not(:first-child){ - border-top-left-radius:0; - border-bottom-left-radius:0; -} -.input-group > .custom-file{ - display:flex; - align-items:center; -} -.input-group > .custom-file:not(:last-child) .custom-file-label, .input-group > .custom-file:not(:last-child) .custom-file-label::after{ - border-top-right-radius:0; - border-bottom-right-radius:0; -} -.input-group > .custom-file:not(:first-child) .custom-file-label{ - border-top-left-radius:0; - border-bottom-left-radius:0; -} -.input-group:not(.has-validation) > .form-control:not(:last-child), -.input-group:not(.has-validation) > .custom-select:not(:last-child), -.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label, -.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after{ - border-top-right-radius:0; - border-bottom-right-radius:0; -} -.input-group.has-validation > .form-control:nth-last-child(n+3), -.input-group.has-validation > .custom-select:nth-last-child(n+3), -.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label, -.input-group.has-validation > .custom-file:nth-last-child(n+3) .custom-file-label::after{ - border-top-right-radius:0; - border-bottom-right-radius:0; -} - -.input-group-prepend, -.input-group-append{ - display:flex; -} -.input-group-prepend .btn, -.input-group-append .btn{ - position:relative; - z-index:2; -} -.input-group-prepend .btn:focus, -.input-group-append .btn:focus{ - z-index:3; -} -.input-group-prepend .btn + .btn, -.input-group-prepend .btn + .input-group-text, -.input-group-prepend .input-group-text + .input-group-text, -.input-group-prepend .input-group-text + .btn, -.input-group-append .btn + .btn, -.input-group-append .btn + .input-group-text, -.input-group-append .input-group-text + .input-group-text, -.input-group-append .input-group-text + .btn{ - margin-left:-1px; -} - -.input-group-prepend{ - margin-right:-1px; -} - -.input-group-append{ - margin-left:-1px; -} - -.input-group-text{ - display:flex; - align-items:center; - padding:0.375rem 0.75rem; - margin-bottom:0; - font-size:0.9rem; - font-weight:400; - line-height:1.6; - color:#495057; - text-align:center; - white-space:nowrap; - background-color:#e9ecef; - border:1px solid #ced4da; - border-radius:0.25rem; -} -.input-group-text input[type=radio], -.input-group-text input[type=checkbox]{ - margin-top:0; -} - -.input-group-lg > .form-control:not(textarea), -.input-group-lg > .custom-select{ - height:calc(1.5em + 1rem + 2px); -} - -.input-group-lg > .form-control, -.input-group-lg > .custom-select, -.input-group-lg > .input-group-prepend > .input-group-text, -.input-group-lg > .input-group-append > .input-group-text, -.input-group-lg > .input-group-prepend > .btn, -.input-group-lg > .input-group-append > .btn{ - padding:0.5rem 1rem; - font-size:1.125rem; - line-height:1.5; - border-radius:0.3rem; -} - -.input-group-sm > .form-control:not(textarea), -.input-group-sm > .custom-select{ - height:calc(1.5em + 0.5rem + 2px); -} - -.input-group-sm > .form-control, -.input-group-sm > .custom-select, -.input-group-sm > .input-group-prepend > .input-group-text, -.input-group-sm > .input-group-append > .input-group-text, -.input-group-sm > .input-group-prepend > .btn, -.input-group-sm > .input-group-append > .btn{ - padding:0.25rem 0.5rem; - font-size:0.7875rem; - line-height:1.5; - border-radius:0.2rem; -} - -.input-group-lg > .custom-select, -.input-group-sm > .custom-select{ - padding-right:1.75rem; -} - -.input-group > .input-group-prepend > .btn, -.input-group > .input-group-prepend > .input-group-text, -.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn, -.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text, -.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .btn, -.input-group.has-validation > .input-group-append:nth-last-child(n+3) > .input-group-text, -.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), -.input-group > .input-group-append:last-child > .input-group-text:not(:last-child){ - border-top-right-radius:0; - border-bottom-right-radius:0; -} - -.input-group > .input-group-append > .btn, -.input-group > .input-group-append > .input-group-text, -.input-group > .input-group-prepend:not(:first-child) > .btn, -.input-group > .input-group-prepend:not(:first-child) > .input-group-text, -.input-group > .input-group-prepend:first-child > .btn:not(:first-child), -.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child){ - border-top-left-radius:0; - border-bottom-left-radius:0; -} - -.custom-control{ - position:relative; - z-index:1; - display:block; - min-height:1.44rem; - padding-left:1.5rem; - -webkit-print-color-adjust:exact; - color-adjust:exact; -} - -.custom-control-inline{ - display:inline-flex; - margin-right:1rem; -} - -.custom-control-input{ - position:absolute; - left:0; - z-index:-1; - width:1rem; - height:1.22rem; - opacity:0; -} -.custom-control-input:checked ~ .custom-control-label::before{ - color:#fff; - border-color:#3490dc; - background-color:#3490dc; -} -.custom-control-input:focus ~ .custom-control-label::before{ - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-control-input:focus:not(:checked) ~ .custom-control-label::before{ - border-color:#a1cbef; -} -.custom-control-input:not(:disabled):active ~ .custom-control-label::before{ - color:#fff; - background-color:#cce3f6; - border-color:#cce3f6; -} -.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label{ - color:#6c757d; -} -.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before{ - background-color:#e9ecef; -} - -.custom-control-label{ - position:relative; - margin-bottom:0; - vertical-align:top; -} -.custom-control-label::before{ - position:absolute; - top:0.22rem; - left:-1.5rem; - display:block; - width:1rem; - height:1rem; - pointer-events:none; - content:""; - background-color:#fff; - border:#adb5bd solid 1px; -} -.custom-control-label::after{ - position:absolute; - top:0.22rem; - left:-1.5rem; - display:block; - width:1rem; - height:1rem; - content:""; - background:50%/50% 50% no-repeat; -} - -.custom-checkbox .custom-control-label::before{ - border-radius:0.25rem; -} -.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); -} -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before{ - border-color:#3490dc; - background-color:#3490dc; -} -.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); -} -.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before{ - background-color:rgba(52, 144, 220, 0.5); -} -.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before{ - background-color:rgba(52, 144, 220, 0.5); -} - -.custom-radio .custom-control-label::before{ - border-radius:50%; -} -.custom-radio .custom-control-input:checked ~ .custom-control-label::after{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); -} -.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before{ - background-color:rgba(52, 144, 220, 0.5); -} - -.custom-switch{ - padding-left:2.25rem; -} -.custom-switch .custom-control-label::before{ - left:-2.25rem; - width:1.75rem; - pointer-events:all; - border-radius:0.5rem; -} -.custom-switch .custom-control-label::after{ - top:calc(0.22rem + 2px); - left:calc(-2.25rem + 2px); - width:calc(1rem - 4px); - height:calc(1rem - 4px); - background-color:#adb5bd; - border-radius:0.5rem; - transition:transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .custom-switch .custom-control-label::after{ - transition:none; - } -} -.custom-switch .custom-control-input:checked ~ .custom-control-label::after{ - background-color:#fff; - transform:translateX(0.75rem); -} -.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before{ - background-color:rgba(52, 144, 220, 0.5); -} - -.custom-select{ - display:inline-block; - width:100%; - height:calc(1.6em + 0.75rem + 2px); - padding:0.375rem 1.75rem 0.375rem 0.75rem; - font-size:0.9rem; - font-weight:400; - line-height:1.6; - color:#495057; - vertical-align:middle; - background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right 0.75rem center/8px 10px no-repeat; - border:1px solid #ced4da; - border-radius:0.25rem; - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; -} -.custom-select:focus{ - border-color:#a1cbef; - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-select:focus::-ms-value{ - color:#495057; - background-color:#fff; -} -.custom-select[multiple], .custom-select[size]:not([size="1"]){ - height:auto; - padding-right:0.75rem; - background-image:none; -} -.custom-select:disabled{ - color:#6c757d; - background-color:#e9ecef; -} -.custom-select::-ms-expand{ - display:none; -} -.custom-select:-moz-focusring{ - color:transparent; - text-shadow:0 0 0 #495057; -} - -.custom-select-sm{ - height:calc(1.5em + 0.5rem + 2px); - padding-top:0.25rem; - padding-bottom:0.25rem; - padding-left:0.5rem; - font-size:0.7875rem; -} - -.custom-select-lg{ - height:calc(1.5em + 1rem + 2px); - padding-top:0.5rem; - padding-bottom:0.5rem; - padding-left:1rem; - font-size:1.125rem; -} - -.custom-file{ - position:relative; - display:inline-block; - width:100%; - height:calc(1.6em + 0.75rem + 2px); - margin-bottom:0; -} - -.custom-file-input{ - position:relative; - z-index:2; - width:100%; - height:calc(1.6em + 0.75rem + 2px); - margin:0; - overflow:hidden; - opacity:0; -} -.custom-file-input:focus ~ .custom-file-label{ - border-color:#a1cbef; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-file-input[disabled] ~ .custom-file-label, .custom-file-input:disabled ~ .custom-file-label{ - background-color:#e9ecef; -} -.custom-file-input:lang(en) ~ .custom-file-label::after{ - content:"Browse"; -} -.custom-file-input ~ .custom-file-label[data-browse]::after{ - content:attr(data-browse); -} - -.custom-file-label{ - position:absolute; - top:0; - right:0; - left:0; - z-index:1; - height:calc(1.6em + 0.75rem + 2px); - padding:0.375rem 0.75rem; - overflow:hidden; - font-weight:400; - line-height:1.6; - color:#495057; - background-color:#fff; - border:1px solid #ced4da; - border-radius:0.25rem; -} -.custom-file-label::after{ - position:absolute; - top:0; - right:0; - bottom:0; - z-index:3; - display:block; - height:calc(1.6em + 0.75rem); - padding:0.375rem 0.75rem; - line-height:1.6; - color:#495057; - content:"Browse"; - background-color:#e9ecef; - border-left:inherit; - border-radius:0 0.25rem 0.25rem 0; -} - -.custom-range{ - width:100%; - height:1.4rem; - padding:0; - background-color:transparent; - -webkit-appearance:none; - -moz-appearance:none; - appearance:none; -} -.custom-range:focus{ - outline:0; -} -.custom-range:focus::-webkit-slider-thumb{ - box-shadow:0 0 0 1px #f8fafc, 0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-range:focus::-moz-range-thumb{ - box-shadow:0 0 0 1px #f8fafc, 0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-range:focus::-ms-thumb{ - box-shadow:0 0 0 1px #f8fafc, 0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} -.custom-range::-moz-focus-outer{ - border:0; -} -.custom-range::-webkit-slider-thumb{ - width:1rem; - height:1rem; - margin-top:-0.25rem; - 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; -} -@media (prefers-reduced-motion: reduce){ - .custom-range::-webkit-slider-thumb{ - -webkit-transition:none; - transition:none; - } -} -.custom-range::-webkit-slider-thumb:active{ - background-color:#cce3f6; -} -.custom-range::-webkit-slider-runnable-track{ - width:100%; - height:0.5rem; - color:transparent; - cursor:pointer; - background-color:#dee2e6; - border-color:transparent; - border-radius:1rem; -} -.custom-range::-moz-range-thumb{ - width:1rem; - height:1rem; - background-color:#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; -} -@media (prefers-reduced-motion: reduce){ - .custom-range::-moz-range-thumb{ - -moz-transition:none; - transition:none; - } -} -.custom-range::-moz-range-thumb:active{ - background-color:#cce3f6; -} -.custom-range::-moz-range-track{ - width:100%; - height:0.5rem; - color:transparent; - cursor:pointer; - background-color:#dee2e6; - border-color:transparent; - border-radius:1rem; -} -.custom-range::-ms-thumb{ - width:1rem; - height:1rem; - margin-top:0; - margin-right:0.2rem; - margin-left:0.2rem; - 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; - } -} -.custom-range::-ms-thumb:active{ - background-color:#cce3f6; -} -.custom-range::-ms-track{ - width:100%; - height:0.5rem; - color:transparent; - cursor:pointer; - background-color:transparent; - border-color:transparent; - border-width:0.5rem; -} -.custom-range::-ms-fill-lower{ - background-color:#dee2e6; - border-radius:1rem; -} -.custom-range::-ms-fill-upper{ - margin-right:15px; - background-color:#dee2e6; - border-radius:1rem; -} -.custom-range:disabled::-webkit-slider-thumb{ - background-color:#adb5bd; -} -.custom-range:disabled::-webkit-slider-runnable-track{ - cursor:default; -} -.custom-range:disabled::-moz-range-thumb{ - background-color:#adb5bd; -} -.custom-range:disabled::-moz-range-track{ - cursor:default; -} -.custom-range:disabled::-ms-thumb{ - background-color:#adb5bd; -} - -.custom-control-label::before, -.custom-file-label, -.custom-select{ - transition:background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .custom-control-label::before, -.custom-file-label, -.custom-select{ - transition:none; - } -} - -.nav{ - display:flex; - flex-wrap:wrap; - padding-left:0; - margin-bottom:0; - list-style:none; -} - -.nav-link{ - display:block; - padding:0.5rem 1rem; -} -.nav-link:hover, .nav-link:focus{ - text-decoration:none; -} -.nav-link.disabled{ - color:#6c757d; - pointer-events:none; - cursor:default; -} - -.nav-tabs{ - border-bottom:1px solid #dee2e6; -} -.nav-tabs .nav-link{ - margin-bottom:-1px; - border:1px solid transparent; - border-top-left-radius:0.25rem; - border-top-right-radius:0.25rem; -} -.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus{ - border-color:#e9ecef #e9ecef #dee2e6; -} -.nav-tabs .nav-link.disabled{ - color:#6c757d; - background-color:transparent; - border-color:transparent; -} -.nav-tabs .nav-link.active, -.nav-tabs .nav-item.show .nav-link{ - color:#495057; - background-color:#f8fafc; - border-color:#dee2e6 #dee2e6 #f8fafc; -} -.nav-tabs .dropdown-menu{ - margin-top:-1px; - border-top-left-radius:0; - border-top-right-radius:0; -} - -.nav-pills .nav-link{ - border-radius:0.25rem; -} -.nav-pills .nav-link.active, -.nav-pills .show > .nav-link{ - color:#fff; - background-color:#3490dc; -} - -.nav-fill > .nav-link, -.nav-fill .nav-item{ - flex:1 1 auto; - text-align:center; -} - -.nav-justified > .nav-link, -.nav-justified .nav-item{ - flex-basis:0; - flex-grow:1; - text-align:center; -} - -.tab-content > .tab-pane{ - display:none; -} -.tab-content > .active{ - display:block; -} - -.navbar{ - position:relative; - display:flex; - flex-wrap:wrap; - align-items:center; - justify-content:space-between; - padding:0.5rem 1rem; -} -.navbar .container, -.navbar .container-fluid, -.navbar .container-sm, -.navbar .container-md, -.navbar .container-lg, -.navbar .container-xl{ - display:flex; - flex-wrap:wrap; - align-items:center; - justify-content:space-between; -} -.navbar-brand{ - display:inline-block; - padding-top:0.32rem; - padding-bottom:0.32rem; - margin-right:1rem; - font-size:1.125rem; - line-height:inherit; - white-space:nowrap; -} -.navbar-brand:hover, .navbar-brand:focus{ - text-decoration:none; -} - -.navbar-nav{ - display:flex; - flex-direction:column; - padding-left:0; - margin-bottom:0; - list-style:none; -} -.navbar-nav .nav-link{ - padding-right:0; - padding-left:0; -} -.navbar-nav .dropdown-menu{ - position:static; - float:none; -} - -.navbar-text{ - display:inline-block; - padding-top:0.5rem; - padding-bottom:0.5rem; -} - -.navbar-collapse{ - flex-basis:100%; - flex-grow:1; - align-items:center; -} - -.navbar-toggler{ - padding:0.25rem 0.75rem; - font-size:1.125rem; - line-height:1; - background-color:transparent; - border:1px solid transparent; - border-radius:0.25rem; -} -.navbar-toggler:hover, .navbar-toggler:focus{ - text-decoration:none; -} - -.navbar-toggler-icon{ - display:inline-block; - width:1.5em; - height:1.5em; - vertical-align:middle; - content:""; - background:50%/100% 100% no-repeat; -} - -.navbar-nav-scroll{ - max-height:75vh; - overflow-y:auto; -} - -@media (max-width: 575.98px){ - .navbar-expand-sm > .container, -.navbar-expand-sm > .container-fluid, -.navbar-expand-sm > .container-sm, -.navbar-expand-sm > .container-md, -.navbar-expand-sm > .container-lg, -.navbar-expand-sm > .container-xl{ - padding-right:0; - padding-left:0; - } -} -@media (min-width: 576px){ - .navbar-expand-sm{ - flex-flow:row nowrap; - justify-content:flex-start; - } - .navbar-expand-sm .navbar-nav{ - flex-direction:row; - } - .navbar-expand-sm .navbar-nav .dropdown-menu{ - position:absolute; - } - .navbar-expand-sm .navbar-nav .nav-link{ - padding-right:0.5rem; - padding-left:0.5rem; - } - .navbar-expand-sm > .container, -.navbar-expand-sm > .container-fluid, -.navbar-expand-sm > .container-sm, -.navbar-expand-sm > .container-md, -.navbar-expand-sm > .container-lg, -.navbar-expand-sm > .container-xl{ - flex-wrap:nowrap; - } - .navbar-expand-sm .navbar-nav-scroll{ - overflow:visible; - } - .navbar-expand-sm .navbar-collapse{ - display:flex !important; - flex-basis:auto; - } - .navbar-expand-sm .navbar-toggler{ - display:none; - } -} -@media (max-width: 767.98px){ - .navbar-expand-md > .container, -.navbar-expand-md > .container-fluid, -.navbar-expand-md > .container-sm, -.navbar-expand-md > .container-md, -.navbar-expand-md > .container-lg, -.navbar-expand-md > .container-xl{ - padding-right:0; - padding-left:0; - } -} -@media (min-width: 768px){ - .navbar-expand-md{ - flex-flow:row nowrap; - justify-content:flex-start; - } - .navbar-expand-md .navbar-nav{ - flex-direction:row; - } - .navbar-expand-md .navbar-nav .dropdown-menu{ - position:absolute; - } - .navbar-expand-md .navbar-nav .nav-link{ - padding-right:0.5rem; - padding-left:0.5rem; - } - .navbar-expand-md > .container, -.navbar-expand-md > .container-fluid, -.navbar-expand-md > .container-sm, -.navbar-expand-md > .container-md, -.navbar-expand-md > .container-lg, -.navbar-expand-md > .container-xl{ - flex-wrap:nowrap; - } - .navbar-expand-md .navbar-nav-scroll{ - overflow:visible; - } - .navbar-expand-md .navbar-collapse{ - display:flex !important; - flex-basis:auto; - } - .navbar-expand-md .navbar-toggler{ - display:none; - } -} -@media (max-width: 991.98px){ - .navbar-expand-lg > .container, -.navbar-expand-lg > .container-fluid, -.navbar-expand-lg > .container-sm, -.navbar-expand-lg > .container-md, -.navbar-expand-lg > .container-lg, -.navbar-expand-lg > .container-xl{ - padding-right:0; - padding-left:0; - } -} -@media (min-width: 992px){ - .navbar-expand-lg{ - flex-flow:row nowrap; - justify-content:flex-start; - } - .navbar-expand-lg .navbar-nav{ - flex-direction:row; - } - .navbar-expand-lg .navbar-nav .dropdown-menu{ - position:absolute; - } - .navbar-expand-lg .navbar-nav .nav-link{ - padding-right:0.5rem; - padding-left:0.5rem; - } - .navbar-expand-lg > .container, -.navbar-expand-lg > .container-fluid, -.navbar-expand-lg > .container-sm, -.navbar-expand-lg > .container-md, -.navbar-expand-lg > .container-lg, -.navbar-expand-lg > .container-xl{ - flex-wrap:nowrap; - } - .navbar-expand-lg .navbar-nav-scroll{ - overflow:visible; - } - .navbar-expand-lg .navbar-collapse{ - display:flex !important; - flex-basis:auto; - } - .navbar-expand-lg .navbar-toggler{ - display:none; - } -} -@media (max-width: 1199.98px){ - .navbar-expand-xl > .container, -.navbar-expand-xl > .container-fluid, -.navbar-expand-xl > .container-sm, -.navbar-expand-xl > .container-md, -.navbar-expand-xl > .container-lg, -.navbar-expand-xl > .container-xl{ - padding-right:0; - padding-left:0; - } -} -@media (min-width: 1200px){ - .navbar-expand-xl{ - flex-flow:row nowrap; - justify-content:flex-start; - } - .navbar-expand-xl .navbar-nav{ - flex-direction:row; - } - .navbar-expand-xl .navbar-nav .dropdown-menu{ - position:absolute; - } - .navbar-expand-xl .navbar-nav .nav-link{ - padding-right:0.5rem; - padding-left:0.5rem; - } - .navbar-expand-xl > .container, -.navbar-expand-xl > .container-fluid, -.navbar-expand-xl > .container-sm, -.navbar-expand-xl > .container-md, -.navbar-expand-xl > .container-lg, -.navbar-expand-xl > .container-xl{ - flex-wrap:nowrap; - } - .navbar-expand-xl .navbar-nav-scroll{ - overflow:visible; - } - .navbar-expand-xl .navbar-collapse{ - display:flex !important; - flex-basis:auto; - } - .navbar-expand-xl .navbar-toggler{ - display:none; - } -} -.navbar-expand{ - flex-flow:row nowrap; - justify-content:flex-start; -} -.navbar-expand > .container, -.navbar-expand > .container-fluid, -.navbar-expand > .container-sm, -.navbar-expand > .container-md, -.navbar-expand > .container-lg, -.navbar-expand > .container-xl{ - padding-right:0; - padding-left:0; -} -.navbar-expand .navbar-nav{ - flex-direction:row; -} -.navbar-expand .navbar-nav .dropdown-menu{ - position:absolute; -} -.navbar-expand .navbar-nav .nav-link{ - padding-right:0.5rem; - padding-left:0.5rem; -} -.navbar-expand > .container, -.navbar-expand > .container-fluid, -.navbar-expand > .container-sm, -.navbar-expand > .container-md, -.navbar-expand > .container-lg, -.navbar-expand > .container-xl{ - flex-wrap:nowrap; -} -.navbar-expand .navbar-nav-scroll{ - overflow:visible; -} -.navbar-expand .navbar-collapse{ - display:flex !important; - flex-basis:auto; -} -.navbar-expand .navbar-toggler{ - display:none; -} - -.navbar-light .navbar-brand{ - color:rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus{ - color:rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-nav .nav-link{ - color:rgba(0, 0, 0, 0.5); -} -.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus{ - color:rgba(0, 0, 0, 0.7); -} -.navbar-light .navbar-nav .nav-link.disabled{ - color:rgba(0, 0, 0, 0.3); -} -.navbar-light .navbar-nav .show > .nav-link, -.navbar-light .navbar-nav .active > .nav-link, -.navbar-light .navbar-nav .nav-link.show, -.navbar-light .navbar-nav .nav-link.active{ - color:rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-toggler{ - color:rgba(0, 0, 0, 0.5); - border-color:rgba(0, 0, 0, 0.1); -} -.navbar-light .navbar-toggler-icon{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-light .navbar-text{ - color:rgba(0, 0, 0, 0.5); -} -.navbar-light .navbar-text a{ - color:rgba(0, 0, 0, 0.9); -} -.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus{ - color:rgba(0, 0, 0, 0.9); -} - -.navbar-dark .navbar-brand{ - color:#fff; -} -.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus{ - color:#fff; -} -.navbar-dark .navbar-nav .nav-link{ - color:rgba(255, 255, 255, 0.5); -} -.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus{ - color:rgba(255, 255, 255, 0.75); -} -.navbar-dark .navbar-nav .nav-link.disabled{ - color:rgba(255, 255, 255, 0.25); -} -.navbar-dark .navbar-nav .show > .nav-link, -.navbar-dark .navbar-nav .active > .nav-link, -.navbar-dark .navbar-nav .nav-link.show, -.navbar-dark .navbar-nav .nav-link.active{ - color:#fff; -} -.navbar-dark .navbar-toggler{ - color:rgba(255, 255, 255, 0.5); - border-color:rgba(255, 255, 255, 0.1); -} -.navbar-dark .navbar-toggler-icon{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); -} -.navbar-dark .navbar-text{ - color:rgba(255, 255, 255, 0.5); -} -.navbar-dark .navbar-text a{ - color:#fff; -} -.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus{ - color:#fff; -} - -.card{ - position:relative; - display:flex; - flex-direction:column; - min-width:0; - word-wrap:break-word; - background-color:#fff; - background-clip:border-box; - border:1px solid rgba(0, 0, 0, 0.125); - border-radius:0.25rem; -} -.card > hr{ - margin-right:0; - margin-left:0; -} -.card > .list-group{ - border-top:inherit; - border-bottom:inherit; -} -.card > .list-group:first-child{ - border-top-width:0; - border-top-left-radius:calc(0.25rem - 1px); - border-top-right-radius:calc(0.25rem - 1px); -} -.card > .list-group:last-child{ - border-bottom-width:0; - border-bottom-right-radius:calc(0.25rem - 1px); - border-bottom-left-radius:calc(0.25rem - 1px); -} -.card > .card-header + .list-group, -.card > .list-group + .card-footer{ - border-top:0; -} - -.card-body{ - flex:1 1 auto; - min-height:1px; - padding:1.25rem; -} - -.card-title{ - margin-bottom:0.75rem; -} - -.card-subtitle{ - margin-top:-0.375rem; - margin-bottom:0; -} - -.card-text:last-child{ - margin-bottom:0; -} - -.card-link:hover{ - text-decoration:none; -} -.card-link + .card-link{ - margin-left:1.25rem; -} - -.card-header{ - padding:0.75rem 1.25rem; - margin-bottom:0; - background-color:rgba(0, 0, 0, 0.03); - border-bottom:1px solid rgba(0, 0, 0, 0.125); -} -.card-header:first-child{ - border-radius:calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; -} - -.card-footer{ - padding:0.75rem 1.25rem; - background-color:rgba(0, 0, 0, 0.03); - border-top:1px solid rgba(0, 0, 0, 0.125); -} -.card-footer:last-child{ - border-radius:0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); -} - -.card-header-tabs{ - margin-right:-0.625rem; - margin-bottom:-0.75rem; - margin-left:-0.625rem; - border-bottom:0; -} - -.card-header-pills{ - margin-right:-0.625rem; - margin-left:-0.625rem; -} - -.card-img-overlay{ - position:absolute; - top:0; - right:0; - bottom:0; - left:0; - padding:1.25rem; - border-radius:calc(0.25rem - 1px); -} - -.card-img, -.card-img-top, -.card-img-bottom{ - flex-shrink:0; - width:100%; -} - -.card-img, -.card-img-top{ - border-top-left-radius:calc(0.25rem - 1px); - border-top-right-radius:calc(0.25rem - 1px); -} - -.card-img, -.card-img-bottom{ - border-bottom-right-radius:calc(0.25rem - 1px); - border-bottom-left-radius:calc(0.25rem - 1px); -} - -.card-deck .card{ - margin-bottom:15px; -} -@media (min-width: 576px){ - .card-deck{ - display:flex; - flex-flow:row wrap; - margin-right:-15px; - margin-left:-15px; - } - .card-deck .card{ - flex:1 0 0%; - margin-right:15px; - margin-bottom:0; - margin-left:15px; - } -} - -.card-group > .card{ - margin-bottom:15px; -} -@media (min-width: 576px){ - .card-group{ - display:flex; - flex-flow:row wrap; - } - .card-group > .card{ - flex:1 0 0%; - margin-bottom:0; - } - .card-group > .card + .card{ - margin-left:0; - border-left:0; - } - .card-group > .card:not(:last-child){ - border-top-right-radius:0; - border-bottom-right-radius:0; - } - .card-group > .card:not(:last-child) .card-img-top, -.card-group > .card:not(:last-child) .card-header{ - border-top-right-radius:0; - } - .card-group > .card:not(:last-child) .card-img-bottom, -.card-group > .card:not(:last-child) .card-footer{ - border-bottom-right-radius:0; - } - .card-group > .card:not(:first-child){ - border-top-left-radius:0; - border-bottom-left-radius:0; - } - .card-group > .card:not(:first-child) .card-img-top, -.card-group > .card:not(:first-child) .card-header{ - border-top-left-radius:0; - } - .card-group > .card:not(:first-child) .card-img-bottom, -.card-group > .card:not(:first-child) .card-footer{ - border-bottom-left-radius:0; - } -} - -.card-columns .card{ - margin-bottom:0.75rem; -} -@media (min-width: 576px){ - .card-columns{ - -moz-column-count:3; - column-count:3; - -moz-column-gap:1.25rem; - column-gap:1.25rem; - orphans:1; - widows:1; - } - .card-columns .card{ - display:inline-block; - width:100%; - } -} - -.accordion{ - overflow-anchor:none; -} -.accordion > .card{ - overflow:hidden; -} -.accordion > .card:not(:last-of-type){ - border-bottom:0; - border-bottom-right-radius:0; - border-bottom-left-radius:0; -} -.accordion > .card:not(:first-of-type){ - border-top-left-radius:0; - border-top-right-radius:0; -} -.accordion > .card > .card-header{ - border-radius:0; - margin-bottom:-1px; -} - -.breadcrumb{ - display:flex; - flex-wrap:wrap; - padding:0.75rem 1rem; - margin-bottom:1rem; - list-style:none; - background-color:#e9ecef; - border-radius:0.25rem; -} - -.breadcrumb-item + .breadcrumb-item{ - padding-left:0.5rem; -} -.breadcrumb-item + .breadcrumb-item::before{ - float:left; - padding-right:0.5rem; - color:#6c757d; - content:"/"; -} -.breadcrumb-item + .breadcrumb-item:hover::before{ - text-decoration:underline; -} -.breadcrumb-item + .breadcrumb-item:hover::before{ - text-decoration:none; -} -.breadcrumb-item.active{ - color:#6c757d; -} - -.pagination{ - display:flex; - padding-left:0; - list-style:none; - border-radius:0.25rem; -} - -.page-link{ - position:relative; - display:block; - padding:0.5rem 0.75rem; - margin-left:-1px; - line-height:1.25; - color:#3490dc; - background-color:#fff; - border:1px solid #dee2e6; -} -.page-link:hover{ - z-index:2; - color:#1d68a7; - text-decoration:none; - background-color:#e9ecef; - border-color:#dee2e6; -} -.page-link:focus{ - z-index:3; - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.25); -} - -.page-item:first-child .page-link{ - margin-left:0; - border-top-left-radius:0.25rem; - border-bottom-left-radius:0.25rem; -} -.page-item:last-child .page-link{ - border-top-right-radius:0.25rem; - border-bottom-right-radius:0.25rem; -} -.page-item.active .page-link{ - z-index:3; - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.page-item.disabled .page-link{ - color:#6c757d; - pointer-events:none; - cursor:auto; - background-color:#fff; - border-color:#dee2e6; -} - -.pagination-lg .page-link{ - padding:0.75rem 1.5rem; - font-size:1.125rem; - line-height:1.5; -} -.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{ - border-top-right-radius:0.3rem; - border-bottom-right-radius:0.3rem; -} - -.pagination-sm .page-link{ - padding:0.25rem 0.5rem; - font-size:0.7875rem; - line-height:1.5; -} -.pagination-sm .page-item:first-child .page-link{ - border-top-left-radius:0.2rem; - border-bottom-left-radius:0.2rem; -} -.pagination-sm .page-item:last-child .page-link{ - border-top-right-radius:0.2rem; - border-bottom-right-radius:0.2rem; -} - -.badge{ - display:inline-block; - padding:0.25em 0.4em; - font-size:75%; - font-weight:700; - line-height:1; - text-align:center; - white-space:nowrap; - vertical-align:baseline; - border-radius:0.25rem; - transition:color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .badge{ - transition:none; - } -} -a.badge:hover, a.badge:focus{ - text-decoration:none; -} - -.badge:empty{ - display:none; -} - -.btn .badge{ - position:relative; - top:-1px; -} - -.badge-pill{ - padding-right:0.6em; - padding-left:0.6em; - border-radius:10rem; -} - -.badge-primary{ - color:#fff; - background-color:#3490dc; -} -a.badge-primary:hover, a.badge-primary:focus{ - color:#fff; - background-color:#2176bd; -} -a.badge-primary:focus, a.badge-primary.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 144, 220, 0.5); -} - -.badge-secondary{ - color:#fff; - background-color:#6c757d; -} -a.badge-secondary:hover, a.badge-secondary:focus{ - color:#fff; - background-color:#545b62; -} -a.badge-secondary:focus, a.badge-secondary.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(108, 117, 125, 0.5); -} - -.badge-success{ - color:#fff; - background-color:#38c172; -} -a.badge-success:hover, a.badge-success:focus{ - color:#fff; - background-color:#2d995b; -} -a.badge-success:focus, a.badge-success.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(56, 193, 114, 0.5); -} - -.badge-info{ - color:#212529; - background-color:#6cb2eb; -} -a.badge-info:hover, a.badge-info:focus{ - color:#212529; - background-color:#3f9ae5; -} -a.badge-info:focus, a.badge-info.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(108, 178, 235, 0.5); -} - -.badge-warning{ - color:#212529; - background-color:#ffed4a; -} -a.badge-warning:hover, a.badge-warning:focus{ - color:#212529; - background-color:#ffe817; -} -a.badge-warning:focus, a.badge-warning.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(255, 237, 74, 0.5); -} - -.badge-danger{ - color:#fff; - background-color:#e3342f; -} -a.badge-danger:hover, a.badge-danger:focus{ - color:#fff; - background-color:#c51f1a; -} -a.badge-danger:focus, a.badge-danger.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(227, 52, 47, 0.5); -} - -.badge-light{ - color:#212529; - background-color:#f8f9fa; -} -a.badge-light:hover, a.badge-light:focus{ - color:#212529; - background-color:#dae0e5; -} -a.badge-light:focus, a.badge-light.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(248, 249, 250, 0.5); -} - -.badge-dark{ - color:#fff; - background-color:#343a40; -} -a.badge-dark:hover, a.badge-dark:focus{ - color:#fff; - background-color:#1d2124; -} -a.badge-dark:focus, a.badge-dark.focus{ - outline:0; - box-shadow:0 0 0 0.2rem rgba(52, 58, 64, 0.5); -} - -.jumbotron{ - padding:2rem 1rem; - margin-bottom:2rem; - background-color:#e9ecef; - border-radius:0.3rem; -} -@media (min-width: 576px){ - .jumbotron{ - padding:4rem 2rem; - } -} - -.jumbotron-fluid{ - padding-right:0; - padding-left:0; - border-radius:0; -} - -.alert{ - position:relative; - padding:0.75rem 1.25rem; - margin-bottom:1rem; - border:1px solid transparent; - border-radius:0.25rem; -} - -.alert-heading{ - color:inherit; -} - -.alert-link{ - font-weight:700; -} - -.alert-dismissible{ - padding-right:3.85rem; -} -.alert-dismissible .close{ - position:absolute; - top:0; - right:0; - z-index:2; - padding:0.75rem 1.25rem; - color:inherit; -} - -.alert-primary{ - color:#1b4b72; - background-color:#d6e9f8; - border-color:#c6e0f5; -} -.alert-primary hr{ - border-top-color:#b0d4f1; -} -.alert-primary .alert-link{ - color:#113049; -} - -.alert-secondary{ - color:#383d41; - background-color:#e2e3e5; - border-color:#d6d8db; -} -.alert-secondary hr{ - border-top-color:#c8cbcf; -} -.alert-secondary .alert-link{ - color:#202326; -} - -.alert-success{ - color:#1d643b; - background-color:#d7f3e3; - border-color:#c7eed8; -} -.alert-success hr{ - border-top-color:#b3e8ca; -} -.alert-success .alert-link{ - color:#123c24; -} - -.alert-info{ - color:#385d7a; - background-color:#e2f0fb; - border-color:#d6e9f9; -} -.alert-info hr{ - border-top-color:#c0ddf6; -} -.alert-info .alert-link{ - color:#284257; -} - -.alert-warning{ - color:#857b26; - background-color:#fffbdb; - border-color:#fffacc; -} -.alert-warning hr{ - border-top-color:#fff8b3; -} -.alert-warning .alert-link{ - color:#5d561b; -} - -.alert-danger{ - color:#761b18; - background-color:#f9d6d5; - border-color:#f7c6c5; -} -.alert-danger hr{ - border-top-color:#f4b0af; -} -.alert-danger .alert-link{ - color:#4c110f; -} - -.alert-light{ - color:#818182; - background-color:#fefefe; - border-color:#fdfdfe; -} -.alert-light hr{ - border-top-color:#ececf6; -} -.alert-light .alert-link{ - color:#686868; -} - -.alert-dark{ - color:#1b1e21; - background-color:#d6d8d9; - border-color:#c6c8ca; -} -.alert-dark hr{ - border-top-color:#b9bbbe; -} -.alert-dark .alert-link{ - color:#040505; -} - -@-webkit-keyframes progress-bar-stripes{ - from{ - background-position:1rem 0; - } - to{ - background-position:0 0; - } -} - -@keyframes progress-bar-stripes{ - from{ - background-position:1rem 0; - } - to{ - background-position:0 0; - } -} -.progress{ - display:flex; - height:1rem; - overflow:hidden; - line-height:0; - font-size:0.675rem; - background-color:#e9ecef; - border-radius:0.25rem; -} - -.progress-bar{ - display:flex; - flex-direction:column; - justify-content:center; - overflow:hidden; - color:#fff; - text-align:center; - white-space:nowrap; - background-color:#3490dc; - transition:width 0.6s ease; -} -@media (prefers-reduced-motion: reduce){ - .progress-bar{ - transition:none; - } -} - -.progress-bar-striped{ - background-image:linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-size:1rem 1rem; -} - -.progress-bar-animated{ - -webkit-animation:1s linear infinite progress-bar-stripes; - animation:1s linear infinite progress-bar-stripes; -} -@media (prefers-reduced-motion: reduce){ - .progress-bar-animated{ - -webkit-animation:none; - animation:none; - } -} - -.media{ - display:flex; - align-items:flex-start; -} - -.media-body{ - flex:1; -} - -.list-group{ - display:flex; - flex-direction:column; - padding-left:0; - margin-bottom:0; - border-radius:0.25rem; -} - -.list-group-item-action{ - width:100%; - color:#495057; - text-align:inherit; -} -.list-group-item-action:hover, .list-group-item-action:focus{ - z-index:1; - color:#495057; - text-decoration:none; - background-color:#f8f9fa; -} -.list-group-item-action:active{ - color:#212529; - background-color:#e9ecef; -} - -.list-group-item{ - position:relative; - display:block; - padding:0.75rem 1.25rem; - background-color:#fff; - border:1px solid rgba(0, 0, 0, 0.125); -} -.list-group-item:first-child{ - border-top-left-radius:inherit; - border-top-right-radius:inherit; -} -.list-group-item:last-child{ - border-bottom-right-radius:inherit; - border-bottom-left-radius:inherit; -} -.list-group-item.disabled, .list-group-item:disabled{ - color:#6c757d; - pointer-events:none; - background-color:#fff; -} -.list-group-item.active{ - z-index:2; - color:#fff; - background-color:#3490dc; - border-color:#3490dc; -} -.list-group-item + .list-group-item{ - border-top-width:0; -} -.list-group-item + .list-group-item.active{ - margin-top:-1px; - border-top-width:1px; -} - -.list-group-horizontal{ - flex-direction:row; -} -.list-group-horizontal > .list-group-item:first-child{ - border-bottom-left-radius:0.25rem; - border-top-right-radius:0; -} -.list-group-horizontal > .list-group-item:last-child{ - border-top-right-radius:0.25rem; - border-bottom-left-radius:0; -} -.list-group-horizontal > .list-group-item.active{ - margin-top:0; -} -.list-group-horizontal > .list-group-item + .list-group-item{ - border-top-width:1px; - border-left-width:0; -} -.list-group-horizontal > .list-group-item + .list-group-item.active{ - margin-left:-1px; - border-left-width:1px; -} - -@media (min-width: 576px){ - .list-group-horizontal-sm{ - flex-direction:row; - } - .list-group-horizontal-sm > .list-group-item:first-child{ - border-bottom-left-radius:0.25rem; - border-top-right-radius:0; - } - .list-group-horizontal-sm > .list-group-item:last-child{ - border-top-right-radius:0.25rem; - border-bottom-left-radius:0; - } - .list-group-horizontal-sm > .list-group-item.active{ - margin-top:0; - } - .list-group-horizontal-sm > .list-group-item + .list-group-item{ - border-top-width:1px; - border-left-width:0; - } - .list-group-horizontal-sm > .list-group-item + .list-group-item.active{ - margin-left:-1px; - border-left-width:1px; - } -} -@media (min-width: 768px){ - .list-group-horizontal-md{ - flex-direction:row; - } - .list-group-horizontal-md > .list-group-item:first-child{ - border-bottom-left-radius:0.25rem; - border-top-right-radius:0; - } - .list-group-horizontal-md > .list-group-item:last-child{ - border-top-right-radius:0.25rem; - border-bottom-left-radius:0; - } - .list-group-horizontal-md > .list-group-item.active{ - margin-top:0; - } - .list-group-horizontal-md > .list-group-item + .list-group-item{ - border-top-width:1px; - border-left-width:0; - } - .list-group-horizontal-md > .list-group-item + .list-group-item.active{ - margin-left:-1px; - border-left-width:1px; - } -} -@media (min-width: 992px){ - .list-group-horizontal-lg{ - flex-direction:row; - } - .list-group-horizontal-lg > .list-group-item:first-child{ - border-bottom-left-radius:0.25rem; - border-top-right-radius:0; - } - .list-group-horizontal-lg > .list-group-item:last-child{ - border-top-right-radius:0.25rem; - border-bottom-left-radius:0; - } - .list-group-horizontal-lg > .list-group-item.active{ - margin-top:0; - } - .list-group-horizontal-lg > .list-group-item + .list-group-item{ - border-top-width:1px; - border-left-width:0; - } - .list-group-horizontal-lg > .list-group-item + .list-group-item.active{ - margin-left:-1px; - border-left-width:1px; - } -} -@media (min-width: 1200px){ - .list-group-horizontal-xl{ - flex-direction:row; - } - .list-group-horizontal-xl > .list-group-item:first-child{ - border-bottom-left-radius:0.25rem; - border-top-right-radius:0; - } - .list-group-horizontal-xl > .list-group-item:last-child{ - border-top-right-radius:0.25rem; - border-bottom-left-radius:0; - } - .list-group-horizontal-xl > .list-group-item.active{ - margin-top:0; - } - .list-group-horizontal-xl > .list-group-item + .list-group-item{ - border-top-width:1px; - border-left-width:0; - } - .list-group-horizontal-xl > .list-group-item + .list-group-item.active{ - margin-left:-1px; - border-left-width:1px; - } -} -.list-group-flush{ - border-radius:0; -} -.list-group-flush > .list-group-item{ - border-width:0 0 1px; -} -.list-group-flush > .list-group-item:last-child{ - border-bottom-width:0; -} - -.list-group-item-primary{ - color:#1b4b72; - background-color:#c6e0f5; -} -.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus{ - color:#1b4b72; - background-color:#b0d4f1; -} -.list-group-item-primary.list-group-item-action.active{ - color:#fff; - background-color:#1b4b72; - border-color:#1b4b72; -} - -.list-group-item-secondary{ - color:#383d41; - background-color:#d6d8db; -} -.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus{ - color:#383d41; - background-color:#c8cbcf; -} -.list-group-item-secondary.list-group-item-action.active{ - color:#fff; - background-color:#383d41; - border-color:#383d41; -} - -.list-group-item-success{ - color:#1d643b; - background-color:#c7eed8; -} -.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus{ - color:#1d643b; - background-color:#b3e8ca; -} -.list-group-item-success.list-group-item-action.active{ - color:#fff; - background-color:#1d643b; - border-color:#1d643b; -} - -.list-group-item-info{ - color:#385d7a; - background-color:#d6e9f9; -} -.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus{ - color:#385d7a; - background-color:#c0ddf6; -} -.list-group-item-info.list-group-item-action.active{ - color:#fff; - background-color:#385d7a; - border-color:#385d7a; -} - -.list-group-item-warning{ - color:#857b26; - background-color:#fffacc; -} -.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus{ - color:#857b26; - background-color:#fff8b3; -} -.list-group-item-warning.list-group-item-action.active{ - color:#fff; - background-color:#857b26; - border-color:#857b26; -} - -.list-group-item-danger{ - color:#761b18; - background-color:#f7c6c5; -} -.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus{ - color:#761b18; - background-color:#f4b0af; -} -.list-group-item-danger.list-group-item-action.active{ - color:#fff; - background-color:#761b18; - border-color:#761b18; -} - -.list-group-item-light{ - color:#818182; - background-color:#fdfdfe; -} -.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus{ - color:#818182; - background-color:#ececf6; -} -.list-group-item-light.list-group-item-action.active{ - color:#fff; - background-color:#818182; - border-color:#818182; -} - -.list-group-item-dark{ - color:#1b1e21; - background-color:#c6c8ca; -} -.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus{ - color:#1b1e21; - background-color:#b9bbbe; -} -.list-group-item-dark.list-group-item-action.active{ - color:#fff; - background-color:#1b1e21; - border-color:#1b1e21; -} - -.close{ - float:right; - font-size:1.35rem; - font-weight:700; - line-height:1; - color:#000; - text-shadow:0 1px 0 #fff; - opacity:0.5; -} -.close:hover{ - color:#000; - text-decoration:none; -} -.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus{ - opacity:0.75; -} - -button.close{ - padding:0; - background-color:transparent; - border:0; -} - -a.close.disabled{ - pointer-events:none; -} - -.toast{ - flex-basis:350px; - max-width:350px; - font-size:0.875rem; - background-color:rgba(255, 255, 255, 0.85); - background-clip:padding-box; - border:1px solid rgba(0, 0, 0, 0.1); - box-shadow:0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); - opacity:0; - border-radius:0.25rem; -} -.toast:not(:last-child){ - margin-bottom:0.75rem; -} -.toast.showing{ - opacity:1; -} -.toast.show{ - display:block; - opacity:1; -} -.toast.hide{ - display:none; -} - -.toast-header{ - display:flex; - align-items:center; - padding:0.25rem 0.75rem; - color:#6c757d; - background-color:rgba(255, 255, 255, 0.85); - background-clip:padding-box; - border-bottom:1px solid rgba(0, 0, 0, 0.05); - border-top-left-radius:calc(0.25rem - 1px); - border-top-right-radius:calc(0.25rem - 1px); -} - -.toast-body{ - padding:0.75rem; -} - -.modal-open{ - overflow:hidden; -} -.modal-open .modal{ - overflow-x:hidden; - overflow-y:auto; -} - -.modal{ - position:fixed; - top:0; - left:0; - z-index:1050; - display:none; - width:100%; - height:100%; - overflow:hidden; - outline:0; -} - -.modal-dialog{ - position:relative; - width:auto; - margin:0.5rem; - pointer-events:none; -} -.modal.fade .modal-dialog{ - transition:transform 0.3s ease-out; - transform:translate(0, -50px); -} -@media (prefers-reduced-motion: reduce){ - .modal.fade .modal-dialog{ - transition:none; - } -} -.modal.show .modal-dialog{ - transform:none; -} -.modal.modal-static .modal-dialog{ - transform:scale(1.02); -} - -.modal-dialog-scrollable{ - display:flex; - max-height:calc(100% - 1rem); -} -.modal-dialog-scrollable .modal-content{ - max-height:calc(100vh - 1rem); - overflow:hidden; -} -.modal-dialog-scrollable .modal-header, -.modal-dialog-scrollable .modal-footer{ - flex-shrink:0; -} -.modal-dialog-scrollable .modal-body{ - overflow-y:auto; -} - -.modal-dialog-centered{ - display:flex; - align-items:center; - min-height:calc(100% - 1rem); -} -.modal-dialog-centered::before{ - display:block; - height:calc(100vh - 1rem); - height:-webkit-min-content; - height:-moz-min-content; - height:min-content; - content:""; -} -.modal-dialog-centered.modal-dialog-scrollable{ - flex-direction:column; - justify-content:center; - height:100%; -} -.modal-dialog-centered.modal-dialog-scrollable .modal-content{ - max-height:none; -} -.modal-dialog-centered.modal-dialog-scrollable::before{ - content:none; -} - -.modal-content{ - position:relative; - display:flex; - flex-direction:column; - width:100%; - pointer-events:auto; - background-color:#fff; - background-clip:padding-box; - border:1px solid rgba(0, 0, 0, 0.2); - border-radius:0.3rem; - outline:0; -} - -.modal-backdrop{ - position:fixed; - top:0; - left:0; - z-index:1040; - width:100vw; - height:100vh; - background-color:#000; -} -.modal-backdrop.fade{ - opacity:0; -} -.modal-backdrop.show{ - opacity:0.5; -} - -.modal-header{ - display:flex; - align-items:flex-start; - justify-content:space-between; - padding:1rem 1rem; - border-bottom:1px solid #dee2e6; - border-top-left-radius:calc(0.3rem - 1px); - border-top-right-radius:calc(0.3rem - 1px); -} -.modal-header .close{ - padding:1rem 1rem; - margin:-1rem -1rem -1rem auto; -} - -.modal-title{ - margin-bottom:0; - line-height:1.6; -} - -.modal-body{ - position:relative; - flex:1 1 auto; - padding:1rem; -} - -.modal-footer{ - display:flex; - flex-wrap:wrap; - align-items:center; - justify-content:flex-end; - padding:0.75rem; - border-top:1px solid #dee2e6; - border-bottom-right-radius:calc(0.3rem - 1px); - border-bottom-left-radius:calc(0.3rem - 1px); -} -.modal-footer > *{ - margin:0.25rem; -} - -.modal-scrollbar-measure{ - position:absolute; - top:-9999px; - width:50px; - height:50px; - overflow:scroll; -} - -@media (min-width: 576px){ - .modal-dialog{ - max-width:500px; - margin:1.75rem auto; - } - - .modal-dialog-scrollable{ - max-height:calc(100% - 3.5rem); - } - .modal-dialog-scrollable .modal-content{ - max-height:calc(100vh - 3.5rem); - } - - .modal-dialog-centered{ - min-height:calc(100% - 3.5rem); - } - .modal-dialog-centered::before{ - height:calc(100vh - 3.5rem); - height:-webkit-min-content; - height:-moz-min-content; - height:min-content; - } - - .modal-sm{ - max-width:300px; - } -} -@media (min-width: 992px){ - .modal-lg, -.modal-xl{ - max-width:800px; - } -} -@media (min-width: 1200px){ - .modal-xl{ - max-width:1140px; - } -} -.tooltip{ - position:absolute; - z-index:1070; - display:block; - margin:0; - font-family:"Nunito", sans-serif; - font-style:normal; - font-weight:400; - line-height:1.6; - text-align:left; - text-align:start; - text-decoration:none; - text-shadow:none; - text-transform:none; - letter-spacing:normal; - word-break:normal; - word-spacing:normal; - white-space:normal; - line-break:auto; - font-size:0.7875rem; - word-wrap:break-word; - opacity:0; -} -.tooltip.show{ - opacity:0.9; -} -.tooltip .arrow{ - position:absolute; - display:block; - width:0.8rem; - height:0.4rem; -} -.tooltip .arrow::before{ - position:absolute; - content:""; - border-color:transparent; - border-style:solid; -} - -.bs-tooltip-top, .bs-tooltip-auto[x-placement^=top]{ - padding:0.4rem 0; -} -.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=top] .arrow{ - bottom:0; -} -.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=top] .arrow::before{ - top:0; - border-width:0.4rem 0.4rem 0; - border-top-color:#000; -} - -.bs-tooltip-right, .bs-tooltip-auto[x-placement^=right]{ - padding:0 0.4rem; -} -.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=right] .arrow{ - left:0; - width:0.4rem; - height:0.8rem; -} -.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=right] .arrow::before{ - right:0; - border-width:0.4rem 0.4rem 0.4rem 0; - border-right-color:#000; -} - -.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=bottom]{ - padding:0.4rem 0; -} -.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=bottom] .arrow{ - top:0; -} -.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=bottom] .arrow::before{ - bottom:0; - border-width:0 0.4rem 0.4rem; - border-bottom-color:#000; -} - -.bs-tooltip-left, .bs-tooltip-auto[x-placement^=left]{ - padding:0 0.4rem; -} -.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=left] .arrow{ - right:0; - width:0.4rem; - height:0.8rem; -} -.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=left] .arrow::before{ - left:0; - border-width:0.4rem 0 0.4rem 0.4rem; - border-left-color:#000; -} - -.tooltip-inner{ - max-width:200px; - padding:0.25rem 0.5rem; - color:#fff; - text-align:center; - background-color:#000; - border-radius:0.25rem; -} - -.popover{ - position:absolute; - top:0; - left:0; - z-index:1060; - display:block; - max-width:276px; - font-family:"Nunito", sans-serif; - font-style:normal; - font-weight:400; - line-height:1.6; - text-align:left; - text-align:start; - text-decoration:none; - text-shadow:none; - text-transform:none; - letter-spacing:normal; - word-break:normal; - word-spacing:normal; - white-space:normal; - line-break:auto; - font-size:0.7875rem; - word-wrap:break-word; - background-color:#fff; - background-clip:padding-box; - border:1px solid rgba(0, 0, 0, 0.2); - border-radius:0.3rem; -} -.popover .arrow{ - position:absolute; - display:block; - width:1rem; - height:0.5rem; - margin:0 0.3rem; -} -.popover .arrow::before, .popover .arrow::after{ - position:absolute; - display:block; - content:""; - border-color:transparent; - border-style:solid; -} - -.bs-popover-top, .bs-popover-auto[x-placement^=top]{ - margin-bottom:0.5rem; -} -.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=top] > .arrow{ - bottom:calc(-0.5rem - 1px); -} -.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=top] > .arrow::before{ - bottom:0; - border-width:0.5rem 0.5rem 0; - border-top-color:rgba(0, 0, 0, 0.25); -} -.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=top] > .arrow::after{ - bottom:1px; - border-width:0.5rem 0.5rem 0; - border-top-color:#fff; -} - -.bs-popover-right, .bs-popover-auto[x-placement^=right]{ - margin-left:0.5rem; -} -.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=right] > .arrow{ - left:calc(-0.5rem - 1px); - width:0.5rem; - height:1rem; - margin:0.3rem 0; -} -.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=right] > .arrow::before{ - left:0; - border-width:0.5rem 0.5rem 0.5rem 0; - border-right-color:rgba(0, 0, 0, 0.25); -} -.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=right] > .arrow::after{ - left:1px; - border-width:0.5rem 0.5rem 0.5rem 0; - border-right-color:#fff; -} - -.bs-popover-bottom, .bs-popover-auto[x-placement^=bottom]{ - margin-top:0.5rem; -} -.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=bottom] > .arrow{ - top:calc(-0.5rem - 1px); -} -.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=bottom] > .arrow::before{ - top:0; - border-width:0 0.5rem 0.5rem 0.5rem; - border-bottom-color:rgba(0, 0, 0, 0.25); -} -.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=bottom] > .arrow::after{ - top:1px; - border-width:0 0.5rem 0.5rem 0.5rem; - border-bottom-color:#fff; -} -.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=bottom] .popover-header::before{ - position:absolute; - top:0; - left:50%; - display:block; - width:1rem; - margin-left:-0.5rem; - content:""; - border-bottom:1px solid #f7f7f7; -} - -.bs-popover-left, .bs-popover-auto[x-placement^=left]{ - margin-right:0.5rem; -} -.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=left] > .arrow{ - right:calc(-0.5rem - 1px); - width:0.5rem; - height:1rem; - margin:0.3rem 0; -} -.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=left] > .arrow::before{ - right:0; - border-width:0.5rem 0 0.5rem 0.5rem; - border-left-color:rgba(0, 0, 0, 0.25); -} -.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=left] > .arrow::after{ - right:1px; - border-width:0.5rem 0 0.5rem 0.5rem; - border-left-color:#fff; -} - -.popover-header{ - padding:0.5rem 0.75rem; - margin-bottom:0; - font-size:0.9rem; - background-color:#f7f7f7; - border-bottom:1px solid #ebebeb; - border-top-left-radius:calc(0.3rem - 1px); - border-top-right-radius:calc(0.3rem - 1px); -} -.popover-header:empty{ - display:none; -} - -.popover-body{ - padding:0.5rem 0.75rem; - color:#212529; -} - -.carousel{ - position:relative; -} - -.carousel.pointer-event{ - touch-action:pan-y; -} - -.carousel-inner{ - position:relative; - width:100%; - overflow:hidden; -} -.carousel-inner::after{ - display:block; - clear:both; - content:""; -} - -.carousel-item{ - position:relative; - display:none; - float:left; - width:100%; - margin-right:-100%; - -webkit-backface-visibility:hidden; - backface-visibility:hidden; - transition:transform 0.6s ease-in-out; -} -@media (prefers-reduced-motion: reduce){ - .carousel-item{ - transition:none; - } -} - -.carousel-item.active, -.carousel-item-next, -.carousel-item-prev{ - display:block; -} - -.carousel-item-next:not(.carousel-item-left), -.active.carousel-item-right{ - transform:translateX(100%); -} - -.carousel-item-prev:not(.carousel-item-right), -.active.carousel-item-left{ - transform:translateX(-100%); -} - -.carousel-fade .carousel-item{ - opacity:0; - transition-property:opacity; - transform:none; -} -.carousel-fade .carousel-item.active, -.carousel-fade .carousel-item-next.carousel-item-left, -.carousel-fade .carousel-item-prev.carousel-item-right{ - z-index:1; - opacity:1; -} -.carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right{ - z-index:0; - opacity:0; - transition:opacity 0s 0.6s; -} -@media (prefers-reduced-motion: reduce){ - .carousel-fade .active.carousel-item-left, -.carousel-fade .active.carousel-item-right{ - transition:none; - } -} - -.carousel-control-prev, -.carousel-control-next{ - position:absolute; - top:0; - bottom:0; - z-index:1; - display:flex; - align-items:center; - justify-content:center; - width:15%; - padding:0; - color:#fff; - text-align:center; - background:none; - border:0; - opacity:0.5; - transition:opacity 0.15s ease; -} -@media (prefers-reduced-motion: reduce){ - .carousel-control-prev, -.carousel-control-next{ - transition:none; - } -} -.carousel-control-prev:hover, .carousel-control-prev:focus, -.carousel-control-next:hover, -.carousel-control-next:focus{ - color:#fff; - text-decoration:none; - outline:0; - opacity:0.9; -} - -.carousel-control-prev{ - left:0; -} - -.carousel-control-next{ - right:0; -} - -.carousel-control-prev-icon, -.carousel-control-next-icon{ - display:inline-block; - width:20px; - height:20px; - background:50%/100% 100% no-repeat; -} - -.carousel-control-prev-icon{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); -} - -.carousel-control-next-icon{ - background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); -} - -.carousel-indicators{ - position:absolute; - right:0; - bottom:0; - left:0; - z-index:15; - display:flex; - justify-content:center; - padding-left:0; - margin-right:15%; - margin-left:15%; - list-style:none; -} -.carousel-indicators li{ - box-sizing:content-box; - flex:0 1 auto; - width:30px; - height:3px; - margin-right:3px; - margin-left:3px; - text-indent:-999px; - cursor:pointer; - background-color:#fff; - background-clip:padding-box; - border-top:10px solid transparent; - border-bottom:10px solid transparent; - opacity:0.5; - transition:opacity 0.6s ease; -} -@media (prefers-reduced-motion: reduce){ - .carousel-indicators li{ - transition:none; - } -} -.carousel-indicators .active{ - opacity:1; -} - -.carousel-caption{ - position:absolute; - right:15%; - bottom:20px; - left:15%; - z-index:10; - padding-top:20px; - padding-bottom:20px; - color:#fff; - text-align:center; -} - -@-webkit-keyframes spinner-border{ - to{ - transform:rotate(360deg); - } -} - -@keyframes spinner-border{ - to{ - transform:rotate(360deg); - } -} -.spinner-border{ - display:inline-block; - width:2rem; - height:2rem; - vertical-align:-0.125em; - border:0.25em solid currentColor; - border-right-color:transparent; - border-radius:50%; - -webkit-animation:0.75s linear infinite spinner-border; - animation:0.75s linear infinite spinner-border; -} - -.spinner-border-sm{ - width:1rem; - height:1rem; - border-width:0.2em; -} - -@-webkit-keyframes spinner-grow{ - 0%{ - transform:scale(0); - } - 50%{ - opacity:1; - transform:none; - } -} - -@keyframes spinner-grow{ - 0%{ - transform:scale(0); - } - 50%{ - opacity:1; - transform:none; - } -} -.spinner-grow{ - display:inline-block; - width:2rem; - height:2rem; - vertical-align:-0.125em; - background-color:currentColor; - border-radius:50%; - opacity:0; - -webkit-animation:0.75s linear infinite spinner-grow; - animation:0.75s linear infinite spinner-grow; -} - -.spinner-grow-sm{ - width:1rem; - height:1rem; -} - -@media (prefers-reduced-motion: reduce){ - .spinner-border, -.spinner-grow{ - -webkit-animation-duration:1.5s; - animation-duration:1.5s; - } -} -.align-baseline{ - vertical-align:baseline !important; -} - -.align-top{ - vertical-align:top !important; -} - -.align-middle{ - vertical-align:middle !important; -} - -.align-bottom{ - vertical-align:bottom !important; -} - -.align-text-bottom{ - vertical-align:text-bottom !important; -} - -.align-text-top{ - vertical-align:text-top !important; -} - -.bg-primary{ - background-color:#3490dc !important; -} - -a.bg-primary:hover, a.bg-primary:focus, -button.bg-primary:hover, -button.bg-primary:focus{ - background-color:#2176bd !important; -} - -.bg-secondary{ - background-color:#6c757d !important; -} - -a.bg-secondary:hover, a.bg-secondary:focus, -button.bg-secondary:hover, -button.bg-secondary:focus{ - background-color:#545b62 !important; -} - -.bg-success{ - background-color:#38c172 !important; -} - -a.bg-success:hover, a.bg-success:focus, -button.bg-success:hover, -button.bg-success:focus{ - background-color:#2d995b !important; -} - -.bg-info{ - background-color:#6cb2eb !important; -} - -a.bg-info:hover, a.bg-info:focus, -button.bg-info:hover, -button.bg-info:focus{ - background-color:#3f9ae5 !important; -} - -.bg-warning{ - background-color:#ffed4a !important; -} - -a.bg-warning:hover, a.bg-warning:focus, -button.bg-warning:hover, -button.bg-warning:focus{ - background-color:#ffe817 !important; -} - -.bg-danger{ - background-color:#e3342f !important; -} - -a.bg-danger:hover, a.bg-danger:focus, -button.bg-danger:hover, -button.bg-danger:focus{ - background-color:#c51f1a !important; -} - -.bg-light{ - background-color:#f8f9fa !important; -} - -a.bg-light:hover, a.bg-light:focus, -button.bg-light:hover, -button.bg-light:focus{ - background-color:#dae0e5 !important; -} - -.bg-dark{ - background-color:#343a40 !important; -} - -a.bg-dark:hover, a.bg-dark:focus, -button.bg-dark:hover, -button.bg-dark:focus{ - background-color:#1d2124 !important; -} - -.bg-white{ - background-color:#fff !important; -} - -.bg-transparent{ - background-color:transparent !important; -} - -.border{ - border:1px solid #dee2e6 !important; -} - -.border-top{ - border-top:1px solid #dee2e6 !important; -} - -.border-right{ - border-right:1px solid #dee2e6 !important; -} - -.border-bottom{ - border-bottom:1px solid #dee2e6 !important; -} - -.border-left{ - border-left:1px solid #dee2e6 !important; -} - -.border-0{ - border:0 !important; -} - -.border-top-0{ - border-top:0 !important; -} - -.border-right-0{ - border-right:0 !important; -} - -.border-bottom-0{ - border-bottom:0 !important; -} - -.border-left-0{ - border-left:0 !important; -} - -.border-primary{ - border-color:#3490dc !important; -} - -.border-secondary{ - border-color:#6c757d !important; -} - -.border-success{ - border-color:#38c172 !important; -} - -.border-info{ - border-color:#6cb2eb !important; -} - -.border-warning{ - border-color:#ffed4a !important; -} - -.border-danger{ - border-color:#e3342f !important; -} - -.border-light{ - border-color:#f8f9fa !important; -} - -.border-dark{ - border-color:#343a40 !important; -} - -.border-white{ - border-color:#fff !important; -} - -.rounded-sm{ - border-radius:0.2rem !important; -} - -.rounded{ - border-radius:0.25rem !important; -} - -.rounded-top{ - border-top-left-radius:0.25rem !important; - border-top-right-radius:0.25rem !important; -} - -.rounded-right{ - border-top-right-radius:0.25rem !important; - border-bottom-right-radius:0.25rem !important; -} - -.rounded-bottom{ - border-bottom-right-radius:0.25rem !important; - border-bottom-left-radius:0.25rem !important; -} - -.rounded-left{ - border-top-left-radius:0.25rem !important; - border-bottom-left-radius:0.25rem !important; -} - -.rounded-lg{ - border-radius:0.3rem !important; -} - -.rounded-circle{ - border-radius:50% !important; -} - -.rounded-pill{ - border-radius:50rem !important; -} - -.rounded-0{ - border-radius:0 !important; -} - -.clearfix::after{ - display:block; - clear:both; - content:""; -} - -.d-none{ - display:none !important; -} - -.d-inline{ - display:inline !important; -} - -.d-inline-block{ - display:inline-block !important; -} - -.d-block{ - display:block !important; -} - -.d-table{ - display:table !important; -} - -.d-table-row{ - display:table-row !important; -} - -.d-table-cell{ - display:table-cell !important; -} - -.d-flex{ - display:flex !important; -} - -.d-inline-flex{ - display:inline-flex !important; -} - -@media (min-width: 576px){ - .d-sm-none{ - display:none !important; - } - - .d-sm-inline{ - display:inline !important; - } - - .d-sm-inline-block{ - display:inline-block !important; - } - - .d-sm-block{ - display:block !important; - } - - .d-sm-table{ - display:table !important; - } - - .d-sm-table-row{ - display:table-row !important; - } - - .d-sm-table-cell{ - display:table-cell !important; - } - - .d-sm-flex{ - display:flex !important; - } - - .d-sm-inline-flex{ - display:inline-flex !important; - } -} -@media (min-width: 768px){ - .d-md-none{ - display:none !important; - } - - .d-md-inline{ - display:inline !important; - } - - .d-md-inline-block{ - display:inline-block !important; - } - - .d-md-block{ - display:block !important; - } - - .d-md-table{ - display:table !important; - } - - .d-md-table-row{ - display:table-row !important; - } - - .d-md-table-cell{ - display:table-cell !important; - } - - .d-md-flex{ - display:flex !important; - } - - .d-md-inline-flex{ - display:inline-flex !important; - } -} -@media (min-width: 992px){ - .d-lg-none{ - display:none !important; - } - - .d-lg-inline{ - display:inline !important; - } - - .d-lg-inline-block{ - display:inline-block !important; - } - - .d-lg-block{ - display:block !important; - } - - .d-lg-table{ - display:table !important; - } - - .d-lg-table-row{ - display:table-row !important; - } - - .d-lg-table-cell{ - display:table-cell !important; - } - - .d-lg-flex{ - display:flex !important; - } - - .d-lg-inline-flex{ - display:inline-flex !important; - } -} -@media (min-width: 1200px){ - .d-xl-none{ - display:none !important; - } - - .d-xl-inline{ - display:inline !important; - } - - .d-xl-inline-block{ - display:inline-block !important; - } - - .d-xl-block{ - display:block !important; - } - - .d-xl-table{ - display:table !important; - } - - .d-xl-table-row{ - display:table-row !important; - } - - .d-xl-table-cell{ - display:table-cell !important; - } - - .d-xl-flex{ - display:flex !important; - } - - .d-xl-inline-flex{ - display:inline-flex !important; - } -} -@media print{ - .d-print-none{ - display:none !important; - } - - .d-print-inline{ - display:inline !important; - } - - .d-print-inline-block{ - display:inline-block !important; - } - - .d-print-block{ - display:block !important; - } - - .d-print-table{ - display:table !important; - } - - .d-print-table-row{ - display:table-row !important; - } - - .d-print-table-cell{ - display:table-cell !important; - } - - .d-print-flex{ - display:flex !important; - } - - .d-print-inline-flex{ - display:inline-flex !important; - } -} -.embed-responsive{ - position:relative; - display:block; - width:100%; - padding:0; - overflow:hidden; -} -.embed-responsive::before{ - display:block; - content:""; -} -.embed-responsive .embed-responsive-item, -.embed-responsive iframe, -.embed-responsive embed, -.embed-responsive object, -.embed-responsive video{ - position:absolute; - top:0; - bottom:0; - left:0; - width:100%; - height:100%; - border:0; -} - -.embed-responsive-21by9::before{ - padding-top:42.85714286%; -} - -.embed-responsive-16by9::before{ - padding-top:56.25%; -} - -.embed-responsive-4by3::before{ - padding-top:75%; -} - -.embed-responsive-1by1::before{ - padding-top:100%; -} - -.flex-row{ - flex-direction:row !important; -} - -.flex-column{ - flex-direction:column !important; -} - -.flex-row-reverse{ - flex-direction:row-reverse !important; -} - -.flex-column-reverse{ - flex-direction:column-reverse !important; -} - -.flex-wrap{ - flex-wrap:wrap !important; -} - -.flex-nowrap{ - flex-wrap:nowrap !important; -} - -.flex-wrap-reverse{ - flex-wrap:wrap-reverse !important; -} - -.flex-fill{ - flex:1 1 auto !important; -} - -.flex-grow-0{ - flex-grow:0 !important; -} - -.flex-grow-1{ - flex-grow:1 !important; -} - -.flex-shrink-0{ - flex-shrink:0 !important; -} - -.flex-shrink-1{ - flex-shrink:1 !important; -} - -.justify-content-start{ - justify-content:flex-start !important; -} - -.justify-content-end{ - justify-content:flex-end !important; -} - -.justify-content-center{ - justify-content:center !important; -} - -.justify-content-between{ - justify-content:space-between !important; -} - -.justify-content-around{ - justify-content:space-around !important; -} - -.align-items-start{ - align-items:flex-start !important; -} - -.align-items-end{ - align-items:flex-end !important; -} - -.align-items-center{ - align-items:center !important; -} - -.align-items-baseline{ - align-items:baseline !important; -} - -.align-items-stretch{ - align-items:stretch !important; -} - -.align-content-start{ - align-content:flex-start !important; -} - -.align-content-end{ - align-content:flex-end !important; -} - -.align-content-center{ - align-content:center !important; -} - -.align-content-between{ - align-content:space-between !important; -} - -.align-content-around{ - align-content:space-around !important; -} - -.align-content-stretch{ - align-content:stretch !important; -} - -.align-self-auto{ - align-self:auto !important; -} - -.align-self-start{ - align-self:flex-start !important; -} - -.align-self-end{ - align-self:flex-end !important; -} - -.align-self-center{ - align-self:center !important; -} - -.align-self-baseline{ - align-self:baseline !important; -} - -.align-self-stretch{ - align-self:stretch !important; -} - -@media (min-width: 576px){ - .flex-sm-row{ - flex-direction:row !important; - } - - .flex-sm-column{ - flex-direction:column !important; - } - - .flex-sm-row-reverse{ - flex-direction:row-reverse !important; - } - - .flex-sm-column-reverse{ - flex-direction:column-reverse !important; - } - - .flex-sm-wrap{ - flex-wrap:wrap !important; - } - - .flex-sm-nowrap{ - flex-wrap:nowrap !important; - } - - .flex-sm-wrap-reverse{ - flex-wrap:wrap-reverse !important; - } - - .flex-sm-fill{ - flex:1 1 auto !important; - } - - .flex-sm-grow-0{ - flex-grow:0 !important; - } - - .flex-sm-grow-1{ - flex-grow:1 !important; - } - - .flex-sm-shrink-0{ - flex-shrink:0 !important; - } - - .flex-sm-shrink-1{ - flex-shrink:1 !important; - } - - .justify-content-sm-start{ - justify-content:flex-start !important; - } - - .justify-content-sm-end{ - justify-content:flex-end !important; - } - - .justify-content-sm-center{ - justify-content:center !important; - } - - .justify-content-sm-between{ - justify-content:space-between !important; - } - - .justify-content-sm-around{ - justify-content:space-around !important; - } - - .align-items-sm-start{ - align-items:flex-start !important; - } - - .align-items-sm-end{ - align-items:flex-end !important; - } - - .align-items-sm-center{ - align-items:center !important; - } - - .align-items-sm-baseline{ - align-items:baseline !important; - } - - .align-items-sm-stretch{ - align-items:stretch !important; - } - - .align-content-sm-start{ - align-content:flex-start !important; - } - - .align-content-sm-end{ - align-content:flex-end !important; - } - - .align-content-sm-center{ - align-content:center !important; - } - - .align-content-sm-between{ - align-content:space-between !important; - } - - .align-content-sm-around{ - align-content:space-around !important; - } - - .align-content-sm-stretch{ - align-content:stretch !important; - } - - .align-self-sm-auto{ - align-self:auto !important; - } - - .align-self-sm-start{ - align-self:flex-start !important; - } - - .align-self-sm-end{ - align-self:flex-end !important; - } - - .align-self-sm-center{ - align-self:center !important; - } - - .align-self-sm-baseline{ - align-self:baseline !important; - } - - .align-self-sm-stretch{ - align-self:stretch !important; - } -} -@media (min-width: 768px){ - .flex-md-row{ - flex-direction:row !important; - } - - .flex-md-column{ - flex-direction:column !important; - } - - .flex-md-row-reverse{ - flex-direction:row-reverse !important; - } - - .flex-md-column-reverse{ - flex-direction:column-reverse !important; - } - - .flex-md-wrap{ - flex-wrap:wrap !important; - } - - .flex-md-nowrap{ - flex-wrap:nowrap !important; - } - - .flex-md-wrap-reverse{ - flex-wrap:wrap-reverse !important; - } - - .flex-md-fill{ - flex:1 1 auto !important; - } - - .flex-md-grow-0{ - flex-grow:0 !important; - } - - .flex-md-grow-1{ - flex-grow:1 !important; - } - - .flex-md-shrink-0{ - flex-shrink:0 !important; - } - - .flex-md-shrink-1{ - flex-shrink:1 !important; - } - - .justify-content-md-start{ - justify-content:flex-start !important; - } - - .justify-content-md-end{ - justify-content:flex-end !important; - } - - .justify-content-md-center{ - justify-content:center !important; - } - - .justify-content-md-between{ - justify-content:space-between !important; - } - - .justify-content-md-around{ - justify-content:space-around !important; - } - - .align-items-md-start{ - align-items:flex-start !important; - } - - .align-items-md-end{ - align-items:flex-end !important; - } - - .align-items-md-center{ - align-items:center !important; - } - - .align-items-md-baseline{ - align-items:baseline !important; - } - - .align-items-md-stretch{ - align-items:stretch !important; - } - - .align-content-md-start{ - align-content:flex-start !important; - } - - .align-content-md-end{ - align-content:flex-end !important; - } - - .align-content-md-center{ - align-content:center !important; - } - - .align-content-md-between{ - align-content:space-between !important; - } - - .align-content-md-around{ - align-content:space-around !important; - } - - .align-content-md-stretch{ - align-content:stretch !important; - } - - .align-self-md-auto{ - align-self:auto !important; - } - - .align-self-md-start{ - align-self:flex-start !important; - } - - .align-self-md-end{ - align-self:flex-end !important; - } - - .align-self-md-center{ - align-self:center !important; - } - - .align-self-md-baseline{ - align-self:baseline !important; - } - - .align-self-md-stretch{ - align-self:stretch !important; - } -} -@media (min-width: 992px){ - .flex-lg-row{ - flex-direction:row !important; - } - - .flex-lg-column{ - flex-direction:column !important; - } - - .flex-lg-row-reverse{ - flex-direction:row-reverse !important; - } - - .flex-lg-column-reverse{ - flex-direction:column-reverse !important; - } - - .flex-lg-wrap{ - flex-wrap:wrap !important; - } - - .flex-lg-nowrap{ - flex-wrap:nowrap !important; - } - - .flex-lg-wrap-reverse{ - flex-wrap:wrap-reverse !important; - } - - .flex-lg-fill{ - flex:1 1 auto !important; - } - - .flex-lg-grow-0{ - flex-grow:0 !important; - } - - .flex-lg-grow-1{ - flex-grow:1 !important; - } - - .flex-lg-shrink-0{ - flex-shrink:0 !important; - } - - .flex-lg-shrink-1{ - flex-shrink:1 !important; - } - - .justify-content-lg-start{ - justify-content:flex-start !important; - } - - .justify-content-lg-end{ - justify-content:flex-end !important; - } - - .justify-content-lg-center{ - justify-content:center !important; - } - - .justify-content-lg-between{ - justify-content:space-between !important; - } - - .justify-content-lg-around{ - justify-content:space-around !important; - } - - .align-items-lg-start{ - align-items:flex-start !important; - } - - .align-items-lg-end{ - align-items:flex-end !important; - } - - .align-items-lg-center{ - align-items:center !important; - } - - .align-items-lg-baseline{ - align-items:baseline !important; - } - - .align-items-lg-stretch{ - align-items:stretch !important; - } - - .align-content-lg-start{ - align-content:flex-start !important; - } - - .align-content-lg-end{ - align-content:flex-end !important; - } - - .align-content-lg-center{ - align-content:center !important; - } - - .align-content-lg-between{ - align-content:space-between !important; - } - - .align-content-lg-around{ - align-content:space-around !important; - } - - .align-content-lg-stretch{ - align-content:stretch !important; - } - - .align-self-lg-auto{ - align-self:auto !important; - } - - .align-self-lg-start{ - align-self:flex-start !important; - } - - .align-self-lg-end{ - align-self:flex-end !important; - } - - .align-self-lg-center{ - align-self:center !important; - } - - .align-self-lg-baseline{ - align-self:baseline !important; - } - - .align-self-lg-stretch{ - align-self:stretch !important; - } -} -@media (min-width: 1200px){ - .flex-xl-row{ - flex-direction:row !important; - } - - .flex-xl-column{ - flex-direction:column !important; - } - - .flex-xl-row-reverse{ - flex-direction:row-reverse !important; - } - - .flex-xl-column-reverse{ - flex-direction:column-reverse !important; - } - - .flex-xl-wrap{ - flex-wrap:wrap !important; - } - - .flex-xl-nowrap{ - flex-wrap:nowrap !important; - } - - .flex-xl-wrap-reverse{ - flex-wrap:wrap-reverse !important; - } - - .flex-xl-fill{ - flex:1 1 auto !important; - } - - .flex-xl-grow-0{ - flex-grow:0 !important; - } - - .flex-xl-grow-1{ - flex-grow:1 !important; - } - - .flex-xl-shrink-0{ - flex-shrink:0 !important; - } - - .flex-xl-shrink-1{ - flex-shrink:1 !important; - } - - .justify-content-xl-start{ - justify-content:flex-start !important; - } - - .justify-content-xl-end{ - justify-content:flex-end !important; - } - - .justify-content-xl-center{ - justify-content:center !important; - } - - .justify-content-xl-between{ - justify-content:space-between !important; - } - - .justify-content-xl-around{ - justify-content:space-around !important; - } - - .align-items-xl-start{ - align-items:flex-start !important; - } - - .align-items-xl-end{ - align-items:flex-end !important; - } - - .align-items-xl-center{ - align-items:center !important; - } - - .align-items-xl-baseline{ - align-items:baseline !important; - } - - .align-items-xl-stretch{ - align-items:stretch !important; - } - - .align-content-xl-start{ - align-content:flex-start !important; - } - - .align-content-xl-end{ - align-content:flex-end !important; - } - - .align-content-xl-center{ - align-content:center !important; - } - - .align-content-xl-between{ - align-content:space-between !important; - } - - .align-content-xl-around{ - align-content:space-around !important; - } - - .align-content-xl-stretch{ - align-content:stretch !important; - } - - .align-self-xl-auto{ - align-self:auto !important; - } - - .align-self-xl-start{ - align-self:flex-start !important; - } - - .align-self-xl-end{ - align-self:flex-end !important; - } - - .align-self-xl-center{ - align-self:center !important; - } - - .align-self-xl-baseline{ - align-self:baseline !important; - } - - .align-self-xl-stretch{ - align-self:stretch !important; - } -} -.float-left{ - float:left !important; -} - -.float-right{ - float:right !important; -} - -.float-none{ - float:none !important; -} - -@media (min-width: 576px){ - .float-sm-left{ - float:left !important; - } - - .float-sm-right{ - float:right !important; - } - - .float-sm-none{ - float:none !important; - } -} -@media (min-width: 768px){ - .float-md-left{ - float:left !important; - } - - .float-md-right{ - float:right !important; - } - - .float-md-none{ - float:none !important; - } -} -@media (min-width: 992px){ - .float-lg-left{ - float:left !important; - } - - .float-lg-right{ - float:right !important; - } - - .float-lg-none{ - float:none !important; - } -} -@media (min-width: 1200px){ - .float-xl-left{ - float:left !important; - } - - .float-xl-right{ - float:right !important; - } - - .float-xl-none{ - float:none !important; - } -} -.user-select-all{ - -webkit-user-select:all !important; - -moz-user-select:all !important; - user-select:all !important; -} - -.user-select-auto{ - -webkit-user-select:auto !important; - -moz-user-select:auto !important; - -ms-user-select:auto !important; - user-select:auto !important; -} - -.user-select-none{ - -webkit-user-select:none !important; - -moz-user-select:none !important; - -ms-user-select:none !important; - user-select:none !important; -} - -.overflow-auto{ - overflow:auto !important; -} - -.overflow-hidden{ - overflow:hidden !important; -} - -.position-static{ - position:static !important; -} - -.position-relative{ - position:relative !important; -} - -.position-absolute{ - position:absolute !important; -} - -.position-fixed{ - position:fixed !important; -} - -.position-sticky{ - position:-webkit-sticky !important; - position:sticky !important; -} - -.fixed-top{ - position:fixed; - top:0; - right:0; - left:0; - z-index:1030; -} - -.fixed-bottom{ - position:fixed; - right:0; - bottom:0; - left:0; - z-index:1030; -} - -@supports ((position: -webkit-sticky) or (position: sticky)){ - .sticky-top{ - position:-webkit-sticky; - position:sticky; - top:0; - z-index:1020; - } -} - -.sr-only{ - position:absolute; - width:1px; - height:1px; - padding:0; - margin:-1px; - overflow:hidden; - clip:rect(0, 0, 0, 0); - white-space:nowrap; - border:0; -} - -.sr-only-focusable:active, .sr-only-focusable:focus{ - position:static; - width:auto; - height:auto; - overflow:visible; - clip:auto; - white-space:normal; -} - -.shadow-sm{ - box-shadow:0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; -} - -.shadow{ - box-shadow:0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; -} - -.shadow-lg{ - box-shadow:0 1rem 3rem rgba(0, 0, 0, 0.175) !important; -} - -.shadow-none{ - box-shadow:none !important; -} - -.w-25{ - width:25% !important; -} - -.w-50{ - width:50% !important; -} - -.w-75{ - width:75% !important; -} - -.w-100{ - width:100% !important; -} - -.w-auto{ - width:auto !important; -} - -.h-25{ - height:25% !important; -} - -.h-50{ - height:50% !important; -} - -.h-75{ - height:75% !important; -} - -.h-100{ - height:100% !important; -} - -.h-auto{ - height:auto !important; -} - -.mw-100{ - max-width:100% !important; -} - -.mh-100{ - max-height:100% !important; -} - -.min-vw-100{ - min-width:100vw !important; -} - -.min-vh-100{ - min-height:100vh !important; -} - -.vw-100{ - width:100vw !important; -} - -.vh-100{ - height:100vh !important; -} - -.m-0{ - margin:0 !important; -} - -.mt-0, -.my-0{ - margin-top:0 !important; -} - -.mr-0, -.mx-0{ - margin-right:0 !important; -} - -.mb-0, -.my-0{ - margin-bottom:0 !important; -} - -.ml-0, -.mx-0{ - margin-left:0 !important; -} - -.m-1{ - margin:0.25rem !important; -} - -.mt-1, -.my-1{ - margin-top:0.25rem !important; -} - -.mr-1, -.mx-1{ - margin-right:0.25rem !important; -} - -.mb-1, -.my-1{ - margin-bottom:0.25rem !important; -} - -.ml-1, -.mx-1{ - margin-left:0.25rem !important; -} - -.m-2{ - margin:0.5rem !important; -} - -.mt-2, -.my-2{ - margin-top:0.5rem !important; -} - -.mr-2, -.mx-2{ - margin-right:0.5rem !important; -} - -.mb-2, -.my-2{ - margin-bottom:0.5rem !important; -} - -.ml-2, -.mx-2{ - margin-left:0.5rem !important; -} - -.m-3{ - margin:1rem !important; -} - -.mt-3, -.my-3{ - margin-top:1rem !important; -} - -.mr-3, -.mx-3{ - margin-right:1rem !important; -} - -.mb-3, -.my-3{ - margin-bottom:1rem !important; -} - -.ml-3, -.mx-3{ - margin-left:1rem !important; -} - -.m-4{ - margin:1.5rem !important; -} - -.mt-4, -.my-4{ - margin-top:1.5rem !important; -} - -.mr-4, -.mx-4{ - margin-right:1.5rem !important; -} - -.mb-4, -.my-4{ - margin-bottom:1.5rem !important; -} - -.ml-4, -.mx-4{ - margin-left:1.5rem !important; -} - -.m-5{ - margin:3rem !important; -} - -.mt-5, -.my-5{ - margin-top:3rem !important; -} - -.mr-5, -.mx-5{ - margin-right:3rem !important; -} - -.mb-5, -.my-5{ - margin-bottom:3rem !important; -} - -.ml-5, -.mx-5{ - margin-left:3rem !important; -} - -.p-0{ - padding:0 !important; -} - -.pt-0, -.py-0{ - padding-top:0 !important; -} - -.pr-0, -.px-0{ - padding-right:0 !important; -} - -.pb-0, -.py-0{ - padding-bottom:0 !important; -} - -.pl-0, -.px-0{ - padding-left:0 !important; -} - -.p-1{ - padding:0.25rem !important; -} - -.pt-1, -.py-1{ - padding-top:0.25rem !important; -} - -.pr-1, -.px-1{ - padding-right:0.25rem !important; -} - -.pb-1, -.py-1{ - padding-bottom:0.25rem !important; -} - -.pl-1, -.px-1{ - padding-left:0.25rem !important; -} - -.p-2{ - padding:0.5rem !important; -} - -.pt-2, -.py-2{ - padding-top:0.5rem !important; -} - -.pr-2, -.px-2{ - padding-right:0.5rem !important; -} - -.pb-2, -.py-2{ - padding-bottom:0.5rem !important; -} - -.pl-2, -.px-2{ - padding-left:0.5rem !important; -} - -.p-3{ - padding:1rem !important; -} - -.pt-3, -.py-3{ - padding-top:1rem !important; -} - -.pr-3, -.px-3{ - padding-right:1rem !important; -} - -.pb-3, -.py-3{ - padding-bottom:1rem !important; -} - -.pl-3, -.px-3{ - padding-left:1rem !important; -} - -.p-4{ - padding:1.5rem !important; -} - -.pt-4, -.py-4{ - padding-top:1.5rem !important; -} - -.pr-4, -.px-4{ - padding-right:1.5rem !important; -} - -.pb-4, -.py-4{ - padding-bottom:1.5rem !important; -} - -.pl-4, -.px-4{ - padding-left:1.5rem !important; -} - -.p-5{ - padding:3rem !important; -} - -.pt-5, -.py-5{ - padding-top:3rem !important; -} - -.pr-5, -.px-5{ - padding-right:3rem !important; -} - -.pb-5, -.py-5{ - padding-bottom:3rem !important; -} - -.pl-5, -.px-5{ - padding-left:3rem !important; -} - -.m-n1{ - margin:-0.25rem !important; -} - -.mt-n1, -.my-n1{ - margin-top:-0.25rem !important; -} - -.mr-n1, -.mx-n1{ - margin-right:-0.25rem !important; -} - -.mb-n1, -.my-n1{ - margin-bottom:-0.25rem !important; -} - -.ml-n1, -.mx-n1{ - margin-left:-0.25rem !important; -} - -.m-n2{ - margin:-0.5rem !important; -} - -.mt-n2, -.my-n2{ - margin-top:-0.5rem !important; -} - -.mr-n2, -.mx-n2{ - margin-right:-0.5rem !important; -} - -.mb-n2, -.my-n2{ - margin-bottom:-0.5rem !important; -} - -.ml-n2, -.mx-n2{ - margin-left:-0.5rem !important; -} - -.m-n3{ - margin:-1rem !important; -} - -.mt-n3, -.my-n3{ - margin-top:-1rem !important; -} - -.mr-n3, -.mx-n3{ - margin-right:-1rem !important; -} - -.mb-n3, -.my-n3{ - margin-bottom:-1rem !important; -} - -.ml-n3, -.mx-n3{ - margin-left:-1rem !important; -} - -.m-n4{ - margin:-1.5rem !important; -} - -.mt-n4, -.my-n4{ - margin-top:-1.5rem !important; -} - -.mr-n4, -.mx-n4{ - margin-right:-1.5rem !important; -} - -.mb-n4, -.my-n4{ - margin-bottom:-1.5rem !important; -} - -.ml-n4, -.mx-n4{ - margin-left:-1.5rem !important; -} - -.m-n5{ - margin:-3rem !important; -} - -.mt-n5, -.my-n5{ - margin-top:-3rem !important; -} - -.mr-n5, -.mx-n5{ - margin-right:-3rem !important; -} - -.mb-n5, -.my-n5{ - margin-bottom:-3rem !important; -} - -.ml-n5, -.mx-n5{ - margin-left:-3rem !important; -} - -.m-auto{ - margin:auto !important; -} - -.mt-auto, -.my-auto{ - margin-top:auto !important; -} - -.mr-auto, -.mx-auto{ - margin-right:auto !important; -} - -.mb-auto, -.my-auto{ - margin-bottom:auto !important; -} - -.ml-auto, -.mx-auto{ - margin-left:auto !important; -} - -@media (min-width: 576px){ - .m-sm-0{ - margin:0 !important; - } - - .mt-sm-0, -.my-sm-0{ - margin-top:0 !important; - } - - .mr-sm-0, -.mx-sm-0{ - margin-right:0 !important; - } - - .mb-sm-0, -.my-sm-0{ - margin-bottom:0 !important; - } - - .ml-sm-0, -.mx-sm-0{ - margin-left:0 !important; - } - - .m-sm-1{ - margin:0.25rem !important; - } - - .mt-sm-1, -.my-sm-1{ - margin-top:0.25rem !important; - } - - .mr-sm-1, -.mx-sm-1{ - margin-right:0.25rem !important; - } - - .mb-sm-1, -.my-sm-1{ - margin-bottom:0.25rem !important; - } - - .ml-sm-1, -.mx-sm-1{ - margin-left:0.25rem !important; - } - - .m-sm-2{ - margin:0.5rem !important; - } - - .mt-sm-2, -.my-sm-2{ - margin-top:0.5rem !important; - } - - .mr-sm-2, -.mx-sm-2{ - margin-right:0.5rem !important; - } - - .mb-sm-2, -.my-sm-2{ - margin-bottom:0.5rem !important; - } - - .ml-sm-2, -.mx-sm-2{ - margin-left:0.5rem !important; - } - - .m-sm-3{ - margin:1rem !important; - } - - .mt-sm-3, -.my-sm-3{ - margin-top:1rem !important; - } - - .mr-sm-3, -.mx-sm-3{ - margin-right:1rem !important; - } - - .mb-sm-3, -.my-sm-3{ - margin-bottom:1rem !important; - } - - .ml-sm-3, -.mx-sm-3{ - margin-left:1rem !important; - } - - .m-sm-4{ - margin:1.5rem !important; - } - - .mt-sm-4, -.my-sm-4{ - margin-top:1.5rem !important; - } - - .mr-sm-4, -.mx-sm-4{ - margin-right:1.5rem !important; - } - - .mb-sm-4, -.my-sm-4{ - margin-bottom:1.5rem !important; - } - - .ml-sm-4, -.mx-sm-4{ - margin-left:1.5rem !important; - } - - .m-sm-5{ - margin:3rem !important; - } - - .mt-sm-5, -.my-sm-5{ - margin-top:3rem !important; - } - - .mr-sm-5, -.mx-sm-5{ - margin-right:3rem !important; - } - - .mb-sm-5, -.my-sm-5{ - margin-bottom:3rem !important; - } - - .ml-sm-5, -.mx-sm-5{ - margin-left:3rem !important; - } - - .p-sm-0{ - padding:0 !important; - } - - .pt-sm-0, -.py-sm-0{ - padding-top:0 !important; - } - - .pr-sm-0, -.px-sm-0{ - padding-right:0 !important; - } - - .pb-sm-0, -.py-sm-0{ - padding-bottom:0 !important; - } - - .pl-sm-0, -.px-sm-0{ - padding-left:0 !important; - } - - .p-sm-1{ - padding:0.25rem !important; - } - - .pt-sm-1, -.py-sm-1{ - padding-top:0.25rem !important; - } - - .pr-sm-1, -.px-sm-1{ - padding-right:0.25rem !important; - } - - .pb-sm-1, -.py-sm-1{ - padding-bottom:0.25rem !important; - } - - .pl-sm-1, -.px-sm-1{ - padding-left:0.25rem !important; - } - - .p-sm-2{ - padding:0.5rem !important; - } - - .pt-sm-2, -.py-sm-2{ - padding-top:0.5rem !important; - } - - .pr-sm-2, -.px-sm-2{ - padding-right:0.5rem !important; - } - - .pb-sm-2, -.py-sm-2{ - padding-bottom:0.5rem !important; - } - - .pl-sm-2, -.px-sm-2{ - padding-left:0.5rem !important; - } - - .p-sm-3{ - padding:1rem !important; - } - - .pt-sm-3, -.py-sm-3{ - padding-top:1rem !important; - } - - .pr-sm-3, -.px-sm-3{ - padding-right:1rem !important; - } - - .pb-sm-3, -.py-sm-3{ - padding-bottom:1rem !important; - } - - .pl-sm-3, -.px-sm-3{ - padding-left:1rem !important; - } - - .p-sm-4{ - padding:1.5rem !important; - } - - .pt-sm-4, -.py-sm-4{ - padding-top:1.5rem !important; - } - - .pr-sm-4, -.px-sm-4{ - padding-right:1.5rem !important; - } - - .pb-sm-4, -.py-sm-4{ - padding-bottom:1.5rem !important; - } - - .pl-sm-4, -.px-sm-4{ - padding-left:1.5rem !important; - } - - .p-sm-5{ - padding:3rem !important; - } - - .pt-sm-5, -.py-sm-5{ - padding-top:3rem !important; - } - - .pr-sm-5, -.px-sm-5{ - padding-right:3rem !important; - } - - .pb-sm-5, -.py-sm-5{ - padding-bottom:3rem !important; - } - - .pl-sm-5, -.px-sm-5{ - padding-left:3rem !important; - } - - .m-sm-n1{ - margin:-0.25rem !important; - } - - .mt-sm-n1, -.my-sm-n1{ - margin-top:-0.25rem !important; - } - - .mr-sm-n1, -.mx-sm-n1{ - margin-right:-0.25rem !important; - } - - .mb-sm-n1, -.my-sm-n1{ - margin-bottom:-0.25rem !important; - } - - .ml-sm-n1, -.mx-sm-n1{ - margin-left:-0.25rem !important; - } - - .m-sm-n2{ - margin:-0.5rem !important; - } - - .mt-sm-n2, -.my-sm-n2{ - margin-top:-0.5rem !important; - } - - .mr-sm-n2, -.mx-sm-n2{ - margin-right:-0.5rem !important; - } - - .mb-sm-n2, -.my-sm-n2{ - margin-bottom:-0.5rem !important; - } - - .ml-sm-n2, -.mx-sm-n2{ - margin-left:-0.5rem !important; - } - - .m-sm-n3{ - margin:-1rem !important; - } - - .mt-sm-n3, -.my-sm-n3{ - margin-top:-1rem !important; - } - - .mr-sm-n3, -.mx-sm-n3{ - margin-right:-1rem !important; - } - - .mb-sm-n3, -.my-sm-n3{ - margin-bottom:-1rem !important; - } - - .ml-sm-n3, -.mx-sm-n3{ - margin-left:-1rem !important; - } - - .m-sm-n4{ - margin:-1.5rem !important; - } - - .mt-sm-n4, -.my-sm-n4{ - margin-top:-1.5rem !important; - } - - .mr-sm-n4, -.mx-sm-n4{ - margin-right:-1.5rem !important; - } - - .mb-sm-n4, -.my-sm-n4{ - margin-bottom:-1.5rem !important; - } - - .ml-sm-n4, -.mx-sm-n4{ - margin-left:-1.5rem !important; - } - - .m-sm-n5{ - margin:-3rem !important; - } - - .mt-sm-n5, -.my-sm-n5{ - margin-top:-3rem !important; - } - - .mr-sm-n5, -.mx-sm-n5{ - margin-right:-3rem !important; - } - - .mb-sm-n5, -.my-sm-n5{ - margin-bottom:-3rem !important; - } - - .ml-sm-n5, -.mx-sm-n5{ - margin-left:-3rem !important; - } - - .m-sm-auto{ - margin:auto !important; - } - - .mt-sm-auto, -.my-sm-auto{ - margin-top:auto !important; - } - - .mr-sm-auto, -.mx-sm-auto{ - margin-right:auto !important; - } - - .mb-sm-auto, -.my-sm-auto{ - margin-bottom:auto !important; - } - - .ml-sm-auto, -.mx-sm-auto{ - margin-left:auto !important; - } -} -@media (min-width: 768px){ - .m-md-0{ - margin:0 !important; - } - - .mt-md-0, -.my-md-0{ - margin-top:0 !important; - } - - .mr-md-0, -.mx-md-0{ - margin-right:0 !important; - } - - .mb-md-0, -.my-md-0{ - margin-bottom:0 !important; - } - - .ml-md-0, -.mx-md-0{ - margin-left:0 !important; - } - - .m-md-1{ - margin:0.25rem !important; - } - - .mt-md-1, -.my-md-1{ - margin-top:0.25rem !important; - } - - .mr-md-1, -.mx-md-1{ - margin-right:0.25rem !important; - } - - .mb-md-1, -.my-md-1{ - margin-bottom:0.25rem !important; - } - - .ml-md-1, -.mx-md-1{ - margin-left:0.25rem !important; - } - - .m-md-2{ - margin:0.5rem !important; - } - - .mt-md-2, -.my-md-2{ - margin-top:0.5rem !important; - } - - .mr-md-2, -.mx-md-2{ - margin-right:0.5rem !important; - } - - .mb-md-2, -.my-md-2{ - margin-bottom:0.5rem !important; - } - - .ml-md-2, -.mx-md-2{ - margin-left:0.5rem !important; - } - - .m-md-3{ - margin:1rem !important; - } - - .mt-md-3, -.my-md-3{ - margin-top:1rem !important; - } - - .mr-md-3, -.mx-md-3{ - margin-right:1rem !important; - } - - .mb-md-3, -.my-md-3{ - margin-bottom:1rem !important; - } - - .ml-md-3, -.mx-md-3{ - margin-left:1rem !important; - } - - .m-md-4{ - margin:1.5rem !important; - } - - .mt-md-4, -.my-md-4{ - margin-top:1.5rem !important; - } - - .mr-md-4, -.mx-md-4{ - margin-right:1.5rem !important; - } - - .mb-md-4, -.my-md-4{ - margin-bottom:1.5rem !important; - } - - .ml-md-4, -.mx-md-4{ - margin-left:1.5rem !important; - } - - .m-md-5{ - margin:3rem !important; - } - - .mt-md-5, -.my-md-5{ - margin-top:3rem !important; - } - - .mr-md-5, -.mx-md-5{ - margin-right:3rem !important; - } - - .mb-md-5, -.my-md-5{ - margin-bottom:3rem !important; - } - - .ml-md-5, -.mx-md-5{ - margin-left:3rem !important; - } - - .p-md-0{ - padding:0 !important; - } - - .pt-md-0, -.py-md-0{ - padding-top:0 !important; - } - - .pr-md-0, -.px-md-0{ - padding-right:0 !important; - } - - .pb-md-0, -.py-md-0{ - padding-bottom:0 !important; - } - - .pl-md-0, -.px-md-0{ - padding-left:0 !important; - } - - .p-md-1{ - padding:0.25rem !important; - } - - .pt-md-1, -.py-md-1{ - padding-top:0.25rem !important; - } - - .pr-md-1, -.px-md-1{ - padding-right:0.25rem !important; - } - - .pb-md-1, -.py-md-1{ - padding-bottom:0.25rem !important; - } - - .pl-md-1, -.px-md-1{ - padding-left:0.25rem !important; - } - - .p-md-2{ - padding:0.5rem !important; - } - - .pt-md-2, -.py-md-2{ - padding-top:0.5rem !important; - } - - .pr-md-2, -.px-md-2{ - padding-right:0.5rem !important; - } - - .pb-md-2, -.py-md-2{ - padding-bottom:0.5rem !important; - } - - .pl-md-2, -.px-md-2{ - padding-left:0.5rem !important; - } - - .p-md-3{ - padding:1rem !important; - } - - .pt-md-3, -.py-md-3{ - padding-top:1rem !important; - } - - .pr-md-3, -.px-md-3{ - padding-right:1rem !important; - } - - .pb-md-3, -.py-md-3{ - padding-bottom:1rem !important; - } - - .pl-md-3, -.px-md-3{ - padding-left:1rem !important; - } - - .p-md-4{ - padding:1.5rem !important; - } - - .pt-md-4, -.py-md-4{ - padding-top:1.5rem !important; - } - - .pr-md-4, -.px-md-4{ - padding-right:1.5rem !important; - } - - .pb-md-4, -.py-md-4{ - padding-bottom:1.5rem !important; - } - - .pl-md-4, -.px-md-4{ - padding-left:1.5rem !important; - } - - .p-md-5{ - padding:3rem !important; - } - - .pt-md-5, -.py-md-5{ - padding-top:3rem !important; - } - - .pr-md-5, -.px-md-5{ - padding-right:3rem !important; - } - - .pb-md-5, -.py-md-5{ - padding-bottom:3rem !important; - } - - .pl-md-5, -.px-md-5{ - padding-left:3rem !important; - } - - .m-md-n1{ - margin:-0.25rem !important; - } - - .mt-md-n1, -.my-md-n1{ - margin-top:-0.25rem !important; - } - - .mr-md-n1, -.mx-md-n1{ - margin-right:-0.25rem !important; - } - - .mb-md-n1, -.my-md-n1{ - margin-bottom:-0.25rem !important; - } - - .ml-md-n1, -.mx-md-n1{ - margin-left:-0.25rem !important; - } - - .m-md-n2{ - margin:-0.5rem !important; - } - - .mt-md-n2, -.my-md-n2{ - margin-top:-0.5rem !important; - } - - .mr-md-n2, -.mx-md-n2{ - margin-right:-0.5rem !important; - } - - .mb-md-n2, -.my-md-n2{ - margin-bottom:-0.5rem !important; - } - - .ml-md-n2, -.mx-md-n2{ - margin-left:-0.5rem !important; - } - - .m-md-n3{ - margin:-1rem !important; - } - - .mt-md-n3, -.my-md-n3{ - margin-top:-1rem !important; - } - - .mr-md-n3, -.mx-md-n3{ - margin-right:-1rem !important; - } - - .mb-md-n3, -.my-md-n3{ - margin-bottom:-1rem !important; - } - - .ml-md-n3, -.mx-md-n3{ - margin-left:-1rem !important; - } - - .m-md-n4{ - margin:-1.5rem !important; - } - - .mt-md-n4, -.my-md-n4{ - margin-top:-1.5rem !important; - } - - .mr-md-n4, -.mx-md-n4{ - margin-right:-1.5rem !important; - } - - .mb-md-n4, -.my-md-n4{ - margin-bottom:-1.5rem !important; - } - - .ml-md-n4, -.mx-md-n4{ - margin-left:-1.5rem !important; - } - - .m-md-n5{ - margin:-3rem !important; - } - - .mt-md-n5, -.my-md-n5{ - margin-top:-3rem !important; - } - - .mr-md-n5, -.mx-md-n5{ - margin-right:-3rem !important; - } - - .mb-md-n5, -.my-md-n5{ - margin-bottom:-3rem !important; - } - - .ml-md-n5, -.mx-md-n5{ - margin-left:-3rem !important; - } - - .m-md-auto{ - margin:auto !important; - } - - .mt-md-auto, -.my-md-auto{ - margin-top:auto !important; - } - - .mr-md-auto, -.mx-md-auto{ - margin-right:auto !important; - } - - .mb-md-auto, -.my-md-auto{ - margin-bottom:auto !important; - } - - .ml-md-auto, -.mx-md-auto{ - margin-left:auto !important; - } -} -@media (min-width: 992px){ - .m-lg-0{ - margin:0 !important; - } - - .mt-lg-0, -.my-lg-0{ - margin-top:0 !important; - } - - .mr-lg-0, -.mx-lg-0{ - margin-right:0 !important; - } - - .mb-lg-0, -.my-lg-0{ - margin-bottom:0 !important; - } - - .ml-lg-0, -.mx-lg-0{ - margin-left:0 !important; - } - - .m-lg-1{ - margin:0.25rem !important; - } - - .mt-lg-1, -.my-lg-1{ - margin-top:0.25rem !important; - } - - .mr-lg-1, -.mx-lg-1{ - margin-right:0.25rem !important; - } - - .mb-lg-1, -.my-lg-1{ - margin-bottom:0.25rem !important; - } - - .ml-lg-1, -.mx-lg-1{ - margin-left:0.25rem !important; - } - - .m-lg-2{ - margin:0.5rem !important; - } - - .mt-lg-2, -.my-lg-2{ - margin-top:0.5rem !important; - } - - .mr-lg-2, -.mx-lg-2{ - margin-right:0.5rem !important; - } - - .mb-lg-2, -.my-lg-2{ - margin-bottom:0.5rem !important; - } - - .ml-lg-2, -.mx-lg-2{ - margin-left:0.5rem !important; - } - - .m-lg-3{ - margin:1rem !important; - } - - .mt-lg-3, -.my-lg-3{ - margin-top:1rem !important; - } - - .mr-lg-3, -.mx-lg-3{ - margin-right:1rem !important; - } - - .mb-lg-3, -.my-lg-3{ - margin-bottom:1rem !important; - } - - .ml-lg-3, -.mx-lg-3{ - margin-left:1rem !important; - } - - .m-lg-4{ - margin:1.5rem !important; - } - - .mt-lg-4, -.my-lg-4{ - margin-top:1.5rem !important; - } - - .mr-lg-4, -.mx-lg-4{ - margin-right:1.5rem !important; - } - - .mb-lg-4, -.my-lg-4{ - margin-bottom:1.5rem !important; - } - - .ml-lg-4, -.mx-lg-4{ - margin-left:1.5rem !important; - } - - .m-lg-5{ - margin:3rem !important; - } - - .mt-lg-5, -.my-lg-5{ - margin-top:3rem !important; - } - - .mr-lg-5, -.mx-lg-5{ - margin-right:3rem !important; - } - - .mb-lg-5, -.my-lg-5{ - margin-bottom:3rem !important; - } - - .ml-lg-5, -.mx-lg-5{ - margin-left:3rem !important; - } - - .p-lg-0{ - padding:0 !important; - } - - .pt-lg-0, -.py-lg-0{ - padding-top:0 !important; - } - - .pr-lg-0, -.px-lg-0{ - padding-right:0 !important; - } - - .pb-lg-0, -.py-lg-0{ - padding-bottom:0 !important; - } - - .pl-lg-0, -.px-lg-0{ - padding-left:0 !important; - } - - .p-lg-1{ - padding:0.25rem !important; - } - - .pt-lg-1, -.py-lg-1{ - padding-top:0.25rem !important; - } - - .pr-lg-1, -.px-lg-1{ - padding-right:0.25rem !important; - } - - .pb-lg-1, -.py-lg-1{ - padding-bottom:0.25rem !important; - } - - .pl-lg-1, -.px-lg-1{ - padding-left:0.25rem !important; - } - - .p-lg-2{ - padding:0.5rem !important; - } - - .pt-lg-2, -.py-lg-2{ - padding-top:0.5rem !important; - } - - .pr-lg-2, -.px-lg-2{ - padding-right:0.5rem !important; - } - - .pb-lg-2, -.py-lg-2{ - padding-bottom:0.5rem !important; - } - - .pl-lg-2, -.px-lg-2{ - padding-left:0.5rem !important; - } - - .p-lg-3{ - padding:1rem !important; - } - - .pt-lg-3, -.py-lg-3{ - padding-top:1rem !important; - } - - .pr-lg-3, -.px-lg-3{ - padding-right:1rem !important; - } - - .pb-lg-3, -.py-lg-3{ - padding-bottom:1rem !important; - } - - .pl-lg-3, -.px-lg-3{ - padding-left:1rem !important; - } - - .p-lg-4{ - padding:1.5rem !important; - } - - .pt-lg-4, -.py-lg-4{ - padding-top:1.5rem !important; - } - - .pr-lg-4, -.px-lg-4{ - padding-right:1.5rem !important; - } - - .pb-lg-4, -.py-lg-4{ - padding-bottom:1.5rem !important; - } - - .pl-lg-4, -.px-lg-4{ - padding-left:1.5rem !important; - } - - .p-lg-5{ - padding:3rem !important; - } - - .pt-lg-5, -.py-lg-5{ - padding-top:3rem !important; - } - - .pr-lg-5, -.px-lg-5{ - padding-right:3rem !important; - } - - .pb-lg-5, -.py-lg-5{ - padding-bottom:3rem !important; - } - - .pl-lg-5, -.px-lg-5{ - padding-left:3rem !important; - } - - .m-lg-n1{ - margin:-0.25rem !important; - } - - .mt-lg-n1, -.my-lg-n1{ - margin-top:-0.25rem !important; - } - - .mr-lg-n1, -.mx-lg-n1{ - margin-right:-0.25rem !important; - } - - .mb-lg-n1, -.my-lg-n1{ - margin-bottom:-0.25rem !important; - } - - .ml-lg-n1, -.mx-lg-n1{ - margin-left:-0.25rem !important; - } - - .m-lg-n2{ - margin:-0.5rem !important; - } - - .mt-lg-n2, -.my-lg-n2{ - margin-top:-0.5rem !important; - } - - .mr-lg-n2, -.mx-lg-n2{ - margin-right:-0.5rem !important; - } - - .mb-lg-n2, -.my-lg-n2{ - margin-bottom:-0.5rem !important; - } - - .ml-lg-n2, -.mx-lg-n2{ - margin-left:-0.5rem !important; - } - - .m-lg-n3{ - margin:-1rem !important; - } - - .mt-lg-n3, -.my-lg-n3{ - margin-top:-1rem !important; - } - - .mr-lg-n3, -.mx-lg-n3{ - margin-right:-1rem !important; - } - - .mb-lg-n3, -.my-lg-n3{ - margin-bottom:-1rem !important; - } - - .ml-lg-n3, -.mx-lg-n3{ - margin-left:-1rem !important; - } - - .m-lg-n4{ - margin:-1.5rem !important; - } - - .mt-lg-n4, -.my-lg-n4{ - margin-top:-1.5rem !important; - } - - .mr-lg-n4, -.mx-lg-n4{ - margin-right:-1.5rem !important; - } - - .mb-lg-n4, -.my-lg-n4{ - margin-bottom:-1.5rem !important; - } - - .ml-lg-n4, -.mx-lg-n4{ - margin-left:-1.5rem !important; - } - - .m-lg-n5{ - margin:-3rem !important; - } - - .mt-lg-n5, -.my-lg-n5{ - margin-top:-3rem !important; - } - - .mr-lg-n5, -.mx-lg-n5{ - margin-right:-3rem !important; - } - - .mb-lg-n5, -.my-lg-n5{ - margin-bottom:-3rem !important; - } - - .ml-lg-n5, -.mx-lg-n5{ - margin-left:-3rem !important; - } - - .m-lg-auto{ - margin:auto !important; - } - - .mt-lg-auto, -.my-lg-auto{ - margin-top:auto !important; - } - - .mr-lg-auto, -.mx-lg-auto{ - margin-right:auto !important; - } - - .mb-lg-auto, -.my-lg-auto{ - margin-bottom:auto !important; - } - - .ml-lg-auto, -.mx-lg-auto{ - margin-left:auto !important; - } -} -@media (min-width: 1200px){ - .m-xl-0{ - margin:0 !important; - } - - .mt-xl-0, -.my-xl-0{ - margin-top:0 !important; - } - - .mr-xl-0, -.mx-xl-0{ - margin-right:0 !important; - } - - .mb-xl-0, -.my-xl-0{ - margin-bottom:0 !important; - } - - .ml-xl-0, -.mx-xl-0{ - margin-left:0 !important; - } - - .m-xl-1{ - margin:0.25rem !important; - } - - .mt-xl-1, -.my-xl-1{ - margin-top:0.25rem !important; - } - - .mr-xl-1, -.mx-xl-1{ - margin-right:0.25rem !important; - } - - .mb-xl-1, -.my-xl-1{ - margin-bottom:0.25rem !important; - } - - .ml-xl-1, -.mx-xl-1{ - margin-left:0.25rem !important; - } - - .m-xl-2{ - margin:0.5rem !important; - } - - .mt-xl-2, -.my-xl-2{ - margin-top:0.5rem !important; - } - - .mr-xl-2, -.mx-xl-2{ - margin-right:0.5rem !important; - } - - .mb-xl-2, -.my-xl-2{ - margin-bottom:0.5rem !important; - } - - .ml-xl-2, -.mx-xl-2{ - margin-left:0.5rem !important; - } - - .m-xl-3{ - margin:1rem !important; - } - - .mt-xl-3, -.my-xl-3{ - margin-top:1rem !important; - } - - .mr-xl-3, -.mx-xl-3{ - margin-right:1rem !important; - } - - .mb-xl-3, -.my-xl-3{ - margin-bottom:1rem !important; - } - - .ml-xl-3, -.mx-xl-3{ - margin-left:1rem !important; - } - - .m-xl-4{ - margin:1.5rem !important; - } - - .mt-xl-4, -.my-xl-4{ - margin-top:1.5rem !important; - } - - .mr-xl-4, -.mx-xl-4{ - margin-right:1.5rem !important; - } - - .mb-xl-4, -.my-xl-4{ - margin-bottom:1.5rem !important; - } - - .ml-xl-4, -.mx-xl-4{ - margin-left:1.5rem !important; - } - - .m-xl-5{ - margin:3rem !important; - } - - .mt-xl-5, -.my-xl-5{ - margin-top:3rem !important; - } - - .mr-xl-5, -.mx-xl-5{ - margin-right:3rem !important; - } - - .mb-xl-5, -.my-xl-5{ - margin-bottom:3rem !important; - } - - .ml-xl-5, -.mx-xl-5{ - margin-left:3rem !important; - } - - .p-xl-0{ - padding:0 !important; - } - - .pt-xl-0, -.py-xl-0{ - padding-top:0 !important; - } - - .pr-xl-0, -.px-xl-0{ - padding-right:0 !important; - } - - .pb-xl-0, -.py-xl-0{ - padding-bottom:0 !important; - } - - .pl-xl-0, -.px-xl-0{ - padding-left:0 !important; - } - - .p-xl-1{ - padding:0.25rem !important; - } - - .pt-xl-1, -.py-xl-1{ - padding-top:0.25rem !important; - } - - .pr-xl-1, -.px-xl-1{ - padding-right:0.25rem !important; - } - - .pb-xl-1, -.py-xl-1{ - padding-bottom:0.25rem !important; - } - - .pl-xl-1, -.px-xl-1{ - padding-left:0.25rem !important; - } - - .p-xl-2{ - padding:0.5rem !important; - } - - .pt-xl-2, -.py-xl-2{ - padding-top:0.5rem !important; - } - - .pr-xl-2, -.px-xl-2{ - padding-right:0.5rem !important; - } - - .pb-xl-2, -.py-xl-2{ - padding-bottom:0.5rem !important; - } - - .pl-xl-2, -.px-xl-2{ - padding-left:0.5rem !important; - } - - .p-xl-3{ - padding:1rem !important; - } - - .pt-xl-3, -.py-xl-3{ - padding-top:1rem !important; - } - - .pr-xl-3, -.px-xl-3{ - padding-right:1rem !important; - } - - .pb-xl-3, -.py-xl-3{ - padding-bottom:1rem !important; - } - - .pl-xl-3, -.px-xl-3{ - padding-left:1rem !important; - } - - .p-xl-4{ - padding:1.5rem !important; - } - - .pt-xl-4, -.py-xl-4{ - padding-top:1.5rem !important; - } - - .pr-xl-4, -.px-xl-4{ - padding-right:1.5rem !important; - } - - .pb-xl-4, -.py-xl-4{ - padding-bottom:1.5rem !important; - } - - .pl-xl-4, -.px-xl-4{ - padding-left:1.5rem !important; - } - - .p-xl-5{ - padding:3rem !important; - } - - .pt-xl-5, -.py-xl-5{ - padding-top:3rem !important; - } - - .pr-xl-5, -.px-xl-5{ - padding-right:3rem !important; - } - - .pb-xl-5, -.py-xl-5{ - padding-bottom:3rem !important; - } - - .pl-xl-5, -.px-xl-5{ - padding-left:3rem !important; - } - - .m-xl-n1{ - margin:-0.25rem !important; - } - - .mt-xl-n1, -.my-xl-n1{ - margin-top:-0.25rem !important; - } - - .mr-xl-n1, -.mx-xl-n1{ - margin-right:-0.25rem !important; - } - - .mb-xl-n1, -.my-xl-n1{ - margin-bottom:-0.25rem !important; - } - - .ml-xl-n1, -.mx-xl-n1{ - margin-left:-0.25rem !important; - } - - .m-xl-n2{ - margin:-0.5rem !important; - } - - .mt-xl-n2, -.my-xl-n2{ - margin-top:-0.5rem !important; - } - - .mr-xl-n2, -.mx-xl-n2{ - margin-right:-0.5rem !important; - } - - .mb-xl-n2, -.my-xl-n2{ - margin-bottom:-0.5rem !important; - } - - .ml-xl-n2, -.mx-xl-n2{ - margin-left:-0.5rem !important; - } - - .m-xl-n3{ - margin:-1rem !important; - } - - .mt-xl-n3, -.my-xl-n3{ - margin-top:-1rem !important; - } - - .mr-xl-n3, -.mx-xl-n3{ - margin-right:-1rem !important; - } - - .mb-xl-n3, -.my-xl-n3{ - margin-bottom:-1rem !important; - } - - .ml-xl-n3, -.mx-xl-n3{ - margin-left:-1rem !important; - } - - .m-xl-n4{ - margin:-1.5rem !important; - } - - .mt-xl-n4, -.my-xl-n4{ - margin-top:-1.5rem !important; - } - - .mr-xl-n4, -.mx-xl-n4{ - margin-right:-1.5rem !important; - } - - .mb-xl-n4, -.my-xl-n4{ - margin-bottom:-1.5rem !important; - } - - .ml-xl-n4, -.mx-xl-n4{ - margin-left:-1.5rem !important; - } - - .m-xl-n5{ - margin:-3rem !important; - } - - .mt-xl-n5, -.my-xl-n5{ - margin-top:-3rem !important; - } - - .mr-xl-n5, -.mx-xl-n5{ - margin-right:-3rem !important; - } - - .mb-xl-n5, -.my-xl-n5{ - margin-bottom:-3rem !important; - } - - .ml-xl-n5, -.mx-xl-n5{ - margin-left:-3rem !important; - } - - .m-xl-auto{ - margin:auto !important; - } - - .mt-xl-auto, -.my-xl-auto{ - margin-top:auto !important; - } - - .mr-xl-auto, -.mx-xl-auto{ - margin-right:auto !important; - } - - .mb-xl-auto, -.my-xl-auto{ - margin-bottom:auto !important; - } - - .ml-xl-auto, -.mx-xl-auto{ - margin-left:auto !important; - } -} -.stretched-link::after{ - position:absolute; - top:0; - right:0; - bottom:0; - left:0; - z-index:1; - pointer-events:auto; - content:""; - background-color:rgba(0, 0, 0, 0); -} - -.text-monospace{ - font-family:SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; -} - -.text-justify{ - text-align:justify !important; -} - -.text-wrap{ - white-space:normal !important; -} - -.text-nowrap{ - white-space:nowrap !important; -} - -.text-truncate{ - overflow:hidden; - text-overflow:ellipsis; - white-space:nowrap; -} - -.text-left{ - text-align:left !important; -} - -.text-right{ - text-align:right !important; -} - -.text-center{ - text-align:center !important; -} - -@media (min-width: 576px){ - .text-sm-left{ - text-align:left !important; - } - - .text-sm-right{ - text-align:right !important; - } - - .text-sm-center{ - text-align:center !important; - } -} -@media (min-width: 768px){ - .text-md-left{ - text-align:left !important; - } - - .text-md-right{ - text-align:right !important; - } - - .text-md-center{ - text-align:center !important; - } -} -@media (min-width: 992px){ - .text-lg-left{ - text-align:left !important; - } - - .text-lg-right{ - text-align:right !important; - } - - .text-lg-center{ - text-align:center !important; - } -} -@media (min-width: 1200px){ - .text-xl-left{ - text-align:left !important; - } - - .text-xl-right{ - text-align:right !important; - } - - .text-xl-center{ - text-align:center !important; - } -} -.text-lowercase{ - text-transform:lowercase !important; -} - -.text-uppercase{ - text-transform:uppercase !important; -} - -.text-capitalize{ - text-transform:capitalize !important; -} - -.font-weight-light{ - font-weight:300 !important; -} - -.font-weight-lighter{ - font-weight:lighter !important; -} - -.font-weight-normal{ - font-weight:400 !important; -} - -.font-weight-bold{ - font-weight:700 !important; -} - -.font-weight-bolder{ - font-weight:bolder !important; -} - -.font-italic{ - font-style:italic !important; -} - -.text-white{ - color:#fff !important; -} - -.text-primary{ - color:#3490dc !important; -} - -a.text-primary:hover, a.text-primary:focus{ - color:#1d68a7 !important; -} - -.text-secondary{ - color:#6c757d !important; -} - -a.text-secondary:hover, a.text-secondary:focus{ - color:#494f54 !important; -} - -.text-success{ - color:#38c172 !important; -} - -a.text-success:hover, a.text-success:focus{ - color:#27864f !important; -} - -.text-info{ - color:#6cb2eb !important; -} - -a.text-info:hover, a.text-info:focus{ - color:#298fe2 !important; -} - -.text-warning{ - color:#ffed4a !important; -} - -a.text-warning:hover, a.text-warning:focus{ - color:#fde300 !important; -} - -.text-danger{ - color:#e3342f !important; -} - -a.text-danger:hover, a.text-danger:focus{ - color:#ae1c17 !important; -} - -.text-light{ - color:#f8f9fa !important; -} - -a.text-light:hover, a.text-light:focus{ - color:#cbd3da !important; -} - -.text-dark{ - color:#343a40 !important; -} - -a.text-dark:hover, a.text-dark:focus{ - color:#121416 !important; -} - -.text-body{ - color:#212529 !important; -} - -.text-muted{ - color:#6c757d !important; -} - -.text-black-50{ - color:rgba(0, 0, 0, 0.5) !important; -} - -.text-white-50{ - color:rgba(255, 255, 255, 0.5) !important; -} - -.text-hide{ - font:0/0 a; - color:transparent; - text-shadow:none; - background-color:transparent; - border:0; -} - -.text-decoration-none{ - text-decoration:none !important; -} - -.text-break{ - word-break:break-word !important; - word-wrap:break-word !important; -} - -.text-reset{ - color:inherit !important; -} - -.visible{ - visibility:visible !important; -} - -.invisible{ - visibility:hidden !important; -} - -@media print{ - *, -*::before, -*::after{ - text-shadow:none !important; - box-shadow:none !important; - } - - a:not(.btn){ - text-decoration:underline; - } - - abbr[title]::after{ - content:" (" attr(title) ")"; - } - - pre{ - white-space:pre-wrap !important; - } - - pre, -blockquote{ - border:1px solid #adb5bd; - page-break-inside:avoid; - } - - tr, -img{ - page-break-inside:avoid; - } - - p, -h2, -h3{ - orphans:3; - widows:3; - } - - h2, -h3{ - page-break-after:avoid; - } - - @page{ - size:a3; - } - body{ - min-width:992px !important; - } - - .container{ - min-width:992px !important; - } - - .navbar{ - display:none; - } - - .badge{ - border:1px solid #000; - } - - .table{ - border-collapse:collapse !important; - } - .table td, -.table th{ - background-color:#fff !important; - } - - .table-bordered th, -.table-bordered td{ - border:1px solid #dee2e6 !important; - } - - .table-dark{ - color:inherit; - } - .table-dark th, -.table-dark td, -.table-dark thead th, -.table-dark tbody + tbody{ - border-color:#dee2e6; - } - - .table .thead-dark th{ - color:inherit; - border-color:#dee2e6; - } -} -body.compensate-for-scrollbar{ - overflow:hidden; -} - -.fancybox-active{ - height:auto; -} - -.fancybox-is-hidden{ - left:-9999px; - margin:0; - position:absolute !important; - top:-9999px; - visibility:hidden; -} - -.fancybox-container{ - -webkit-backface-visibility:hidden; - height:100%; - left:0; - outline:none; - position:fixed; - -webkit-tap-highlight-color:transparent; - top:0; - touch-action:manipulation; - transform:translateZ(0); - width:100%; - z-index:99992; -} - -.fancybox-container *{ - box-sizing:border-box; -} - -.fancybox-outer, -.fancybox-inner, -.fancybox-bg, -.fancybox-stage{ - bottom:0; - left:0; - position:absolute; - right:0; - top:0; -} - -.fancybox-outer{ - -webkit-overflow-scrolling:touch; - overflow-y:auto; -} - -.fancybox-bg{ - background:rgb(30, 30, 30); - opacity:0; - transition-duration:inherit; - transition-property:opacity; - transition-timing-function:cubic-bezier(0.47, 0, 0.74, 0.71); -} - -.fancybox-is-open .fancybox-bg{ - opacity:0.9; - transition-timing-function:cubic-bezier(0.22, 0.61, 0.36, 1); -} - -.fancybox-infobar, -.fancybox-toolbar, -.fancybox-caption, -.fancybox-navigation .fancybox-button{ - direction:ltr; - opacity:0; - position:absolute; - transition:opacity 0.25s ease, visibility 0s ease 0.25s; - visibility:hidden; - z-index:99997; -} - -.fancybox-show-infobar .fancybox-infobar, -.fancybox-show-toolbar .fancybox-toolbar, -.fancybox-show-caption .fancybox-caption, -.fancybox-show-nav .fancybox-navigation .fancybox-button{ - opacity:1; - transition:opacity 0.25s ease 0s, visibility 0s ease 0s; - visibility:visible; -} - -.fancybox-infobar{ - color:#ccc; - font-size:13px; - -webkit-font-smoothing:subpixel-antialiased; - height:44px; - left:0; - line-height:44px; - min-width:44px; - mix-blend-mode:difference; - padding:0 10px; - pointer-events:none; - top:0; - -webkit-touch-callout:none; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - user-select:none; -} - -.fancybox-toolbar{ - right:0; - top:0; -} - -.fancybox-stage{ - direction:ltr; - overflow:visible; - transform:translateZ(0); - z-index:99994; -} - -.fancybox-is-open .fancybox-stage{ - overflow:hidden; -} - -.fancybox-slide{ - -webkit-backface-visibility:hidden; - display:none; - height:100%; - left:0; - outline:none; - overflow:auto; - -webkit-overflow-scrolling:touch; - padding:44px; - position:absolute; - text-align:center; - top:0; - transition-property:transform, opacity; - white-space:normal; - width:100%; - z-index:99994; -} - -.fancybox-slide::before{ - content:""; - display:inline-block; - font-size:0; - height:100%; - vertical-align:middle; - width:0; -} - -.fancybox-is-sliding .fancybox-slide, -.fancybox-slide--previous, -.fancybox-slide--current, -.fancybox-slide--next{ - display:block; -} - -.fancybox-slide--image{ - overflow:hidden; - padding:44px 0; -} - -.fancybox-slide--image::before{ - display:none; -} - -.fancybox-slide--html{ - padding:6px; -} - -.fancybox-content{ - background:#fff; - display:inline-block; - margin:0; - max-width:100%; - overflow:auto; - -webkit-overflow-scrolling:touch; - padding:44px; - position:relative; - text-align:left; - vertical-align:middle; -} - -.fancybox-slide--image .fancybox-content{ - -webkit-animation-timing-function:cubic-bezier(0.5, 0, 0.14, 1); - animation-timing-function:cubic-bezier(0.5, 0, 0.14, 1); - -webkit-backface-visibility:hidden; - background:transparent; - background-repeat:no-repeat; - background-size:100% 100%; - left:0; - max-width:none; - overflow:visible; - padding:0; - position:absolute; - top:0; - transform-origin:top left; - transition-property:transform, opacity; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - user-select:none; - z-index:99995; -} - -.fancybox-can-zoomOut .fancybox-content{ - cursor:zoom-out; -} - -.fancybox-can-zoomIn .fancybox-content{ - cursor:zoom-in; -} - -.fancybox-can-swipe .fancybox-content, -.fancybox-can-pan .fancybox-content{ - cursor:-webkit-grab; - cursor:grab; -} - -.fancybox-is-grabbing .fancybox-content{ - cursor:-webkit-grabbing; - cursor:grabbing; -} - -.fancybox-container [data-selectable=true]{ - cursor:text; -} - -.fancybox-image, -.fancybox-spaceball{ - background:transparent; - border:0; - height:100%; - left:0; - margin:0; - max-height:none; - max-width:none; - padding:0; - position:absolute; - top:0; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - user-select:none; - width:100%; -} - -.fancybox-spaceball{ - z-index:1; -} - -.fancybox-slide--video .fancybox-content, -.fancybox-slide--map .fancybox-content, -.fancybox-slide--pdf .fancybox-content, -.fancybox-slide--iframe .fancybox-content{ - height:100%; - overflow:visible; - padding:0; - width:100%; -} - -.fancybox-slide--video .fancybox-content{ - background:#000; -} - -.fancybox-slide--map .fancybox-content{ - background:#e5e3df; -} - -.fancybox-slide--iframe .fancybox-content{ - background:#fff; -} - -.fancybox-video, -.fancybox-iframe{ - background:transparent; - border:0; - display:block; - height:100%; - margin:0; - overflow:hidden; - padding:0; - width:100%; -} -.fancybox-iframe{ - left:0; - position:absolute; - top:0; -} - -.fancybox-error{ - background:#fff; - cursor:default; - max-width:400px; - padding:40px; - width:100%; -} - -.fancybox-error p{ - color:#444; - font-size:16px; - line-height:20px; - margin:0; - padding:0; -} -.fancybox-button{ - background:rgba(30, 30, 30, 0.6); - border:0; - border-radius:0; - box-shadow:none; - cursor:pointer; - display:inline-block; - height:44px; - margin:0; - padding:10px; - position:relative; - transition:color 0.2s; - vertical-align:top; - visibility:inherit; - width:44px; -} - -.fancybox-button, -.fancybox-button:visited, -.fancybox-button:link{ - color:#ccc; -} - -.fancybox-button:hover{ - color:#fff; -} - -.fancybox-button:focus{ - outline:none; -} - -.fancybox-button.fancybox-focus{ - outline:1px dotted; -} - -.fancybox-button[disabled], -.fancybox-button[disabled]:hover{ - color:#888; - cursor:default; - outline:none; -} -.fancybox-button div{ - height:100%; -} - -.fancybox-button svg{ - display:block; - height:100%; - overflow:visible; - position:relative; - width:100%; -} - -.fancybox-button svg path{ - fill:currentColor; - stroke-width:0; -} - -.fancybox-button--play svg:nth-child(2), -.fancybox-button--fsenter svg:nth-child(2){ - display:none; -} - -.fancybox-button--pause svg:nth-child(1), -.fancybox-button--fsexit svg:nth-child(1){ - display:none; -} - -.fancybox-progress{ - background:#ff5268; - height:2px; - left:0; - position:absolute; - right:0; - top:0; - transform:scaleX(0); - transform-origin:0; - transition-property:transform; - transition-timing-function:linear; - z-index:99998; -} -.fancybox-close-small{ - background:transparent; - border:0; - border-radius:0; - color:#ccc; - cursor:pointer; - opacity:0.8; - padding:8px; - position:absolute; - right:-12px; - top:-44px; - z-index:401; -} - -.fancybox-close-small:hover{ - color:#fff; - opacity:1; -} - -.fancybox-slide--html .fancybox-close-small{ - color:currentColor; - padding:10px; - right:0; - top:0; -} - -.fancybox-slide--image.fancybox-is-scaling .fancybox-content{ - overflow:hidden; -} - -.fancybox-is-scaling .fancybox-close-small, -.fancybox-is-zoomable.fancybox-can-pan .fancybox-close-small{ - display:none; -} -.fancybox-navigation .fancybox-button{ - background-clip:content-box; - height:100px; - opacity:0; - position:absolute; - top:calc(50% - 50px); - width:70px; -} - -.fancybox-navigation .fancybox-button div{ - padding:7px; -} - -.fancybox-navigation .fancybox-button--arrow_left{ - left:0; - left:env(safe-area-inset-left); - padding:31px 26px 31px 6px; -} - -.fancybox-navigation .fancybox-button--arrow_right{ - padding:31px 6px 31px 26px; - right:0; - right:env(safe-area-inset-right); -} -.fancybox-caption{ - background:linear-gradient(to top, rgba(0, 0, 0, 0.85) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0.15) 65%, rgba(0, 0, 0, 0.075) 75.5%, rgba(0, 0, 0, 0.037) 82.85%, rgba(0, 0, 0, 0.019) 88%, rgba(0, 0, 0, 0) 100%); - bottom:0; - color:#eee; - font-size:14px; - font-weight:400; - left:0; - line-height:1.5; - padding:75px 44px 25px 44px; - pointer-events:none; - right:0; - text-align:center; - z-index:99996; -} - -@supports (padding: 0px){ - .fancybox-caption{ - padding:75px max(44px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(44px, env(safe-area-inset-left)); - } -} -.fancybox-caption--separate{ - margin-top:-50px; -} - -.fancybox-caption__body{ - max-height:50vh; - overflow:auto; - pointer-events:all; -} - -.fancybox-caption a, -.fancybox-caption a:link, -.fancybox-caption a:visited{ - color:#ccc; - text-decoration:none; -} - -.fancybox-caption a:hover{ - color:#fff; - text-decoration:underline; -} -.fancybox-loading{ - -webkit-animation:fancybox-rotate 1s linear infinite; - animation:fancybox-rotate 1s linear infinite; - background:transparent; - border:4px solid #888; - border-bottom-color:#fff; - border-radius:50%; - height:50px; - left:50%; - margin:-25px 0 0 -25px; - opacity:0.7; - padding:0; - position:absolute; - top:50%; - width:50px; - z-index:99999; -} - -@-webkit-keyframes fancybox-rotate{ - 100%{ - transform:rotate(360deg); - } -} - -@keyframes fancybox-rotate{ - 100%{ - transform:rotate(360deg); - } -} -.fancybox-animated{ - transition-timing-function:cubic-bezier(0, 0, 0.25, 1); -} -.fancybox-fx-slide.fancybox-slide--previous{ - opacity:0; - transform:translate3d(-100%, 0, 0); -} - -.fancybox-fx-slide.fancybox-slide--next{ - opacity:0; - transform:translate3d(100%, 0, 0); -} - -.fancybox-fx-slide.fancybox-slide--current{ - opacity:1; - transform:translate3d(0, 0, 0); -} -.fancybox-fx-fade.fancybox-slide--previous, -.fancybox-fx-fade.fancybox-slide--next{ - opacity:0; - transition-timing-function:cubic-bezier(0.19, 1, 0.22, 1); -} - -.fancybox-fx-fade.fancybox-slide--current{ - opacity:1; -} -.fancybox-fx-zoom-in-out.fancybox-slide--previous{ - opacity:0; - transform:scale3d(1.5, 1.5, 1.5); -} - -.fancybox-fx-zoom-in-out.fancybox-slide--next{ - opacity:0; - transform:scale3d(0.5, 0.5, 0.5); -} - -.fancybox-fx-zoom-in-out.fancybox-slide--current{ - opacity:1; - transform:scale3d(1, 1, 1); -} -.fancybox-fx-rotate.fancybox-slide--previous{ - opacity:0; - transform:rotate(-360deg); -} - -.fancybox-fx-rotate.fancybox-slide--next{ - opacity:0; - transform:rotate(360deg); -} - -.fancybox-fx-rotate.fancybox-slide--current{ - opacity:1; - transform:rotate(0deg); -} -.fancybox-fx-circular.fancybox-slide--previous{ - opacity:0; - transform:scale3d(0, 0, 0) translate3d(-100%, 0, 0); -} - -.fancybox-fx-circular.fancybox-slide--next{ - opacity:0; - transform:scale3d(0, 0, 0) translate3d(100%, 0, 0); -} - -.fancybox-fx-circular.fancybox-slide--current{ - opacity:1; - transform:scale3d(1, 1, 1) translate3d(0, 0, 0); -} -.fancybox-fx-tube.fancybox-slide--previous{ - transform:translate3d(-100%, 0, 0) scale(0.1) skew(-10deg); -} - -.fancybox-fx-tube.fancybox-slide--next{ - transform:translate3d(100%, 0, 0) scale(0.1) skew(10deg); -} - -.fancybox-fx-tube.fancybox-slide--current{ - transform:translate3d(0, 0, 0) scale(1); -} -@media all and (max-height: 576px){ - .fancybox-slide{ - padding-left:6px; - padding-right:6px; - } - - .fancybox-slide--image{ - padding:6px 0; - } - - .fancybox-close-small{ - right:-6px; - } - - .fancybox-slide--image .fancybox-close-small{ - background:#4e4e4e; - color:#f2f4f6; - height:36px; - opacity:1; - padding:6px; - right:0; - top:0; - width:36px; - } - - .fancybox-caption{ - padding-left:12px; - padding-right:12px; - } - - @supports (padding: 0px){ - .fancybox-caption{ - padding-left:max(12px, env(safe-area-inset-left)); - padding-right:max(12px, env(safe-area-inset-right)); - } - } -} -.fancybox-share{ - background:#f4f4f4; - border-radius:3px; - max-width:90%; - padding:30px; - text-align:center; -} - -.fancybox-share h1{ - color:#222; - font-size:35px; - font-weight:700; - margin:0 0 20px 0; -} - -.fancybox-share p{ - margin:0; - padding:0; -} - -.fancybox-share__button{ - border:0; - border-radius:3px; - display:inline-block; - font-size:14px; - font-weight:700; - line-height:40px; - margin:0 5px 10px 5px; - min-width:130px; - padding:0 15px; - text-decoration:none; - transition:all 0.2s; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; - user-select:none; - white-space:nowrap; -} - -.fancybox-share__button:visited, -.fancybox-share__button:link{ - color:#fff; -} - -.fancybox-share__button:hover{ - text-decoration:none; -} - -.fancybox-share__button--fb{ - background:#3b5998; -} - -.fancybox-share__button--fb:hover{ - background:#344e86; -} - -.fancybox-share__button--pt{ - background:#bd081d; -} - -.fancybox-share__button--pt:hover{ - background:#aa0719; -} - -.fancybox-share__button--tw{ - background:#1da1f2; -} - -.fancybox-share__button--tw:hover{ - background:#0d95e8; -} - -.fancybox-share__button svg{ - height:25px; - margin-right:7px; - position:relative; - top:-1px; - vertical-align:middle; - width:25px; -} - -.fancybox-share__button svg path{ - fill:#fff; -} - -.fancybox-share__input{ - background:transparent; - border:0; - border-bottom:1px solid #d7d7d7; - border-radius:0; - color:#5d5b5b; - font-size:14px; - margin:10px 0 0 0; - outline:none; - padding:10px 15px; - width:100%; -} -.fancybox-thumbs{ - background:#ddd; - bottom:0; - display:none; - margin:0; - -webkit-overflow-scrolling:touch; - -ms-overflow-style:-ms-autohiding-scrollbar; - padding:2px 2px 4px 2px; - position:absolute; - right:0; - -webkit-tap-highlight-color:rgba(0, 0, 0, 0); - top:0; - width:212px; - z-index:99995; -} - -.fancybox-thumbs-x{ - overflow-x:auto; - overflow-y:hidden; -} - -.fancybox-show-thumbs .fancybox-thumbs{ - display:block; -} - -.fancybox-show-thumbs .fancybox-inner{ - right:212px; -} - -.fancybox-thumbs__list{ - font-size:0; - height:100%; - list-style:none; - margin:0; - overflow-x:hidden; - overflow-y:auto; - padding:0; - position:absolute; - position:relative; - white-space:nowrap; - width:100%; -} - -.fancybox-thumbs-x .fancybox-thumbs__list{ - overflow:hidden; -} - -.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar{ - width:7px; -} - -.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-track{ - background:#fff; - border-radius:10px; - box-shadow:inset 0 0 6px rgba(0, 0, 0, 0.3); -} - -.fancybox-thumbs-y .fancybox-thumbs__list::-webkit-scrollbar-thumb{ - background:#2a2a2a; - border-radius:10px; -} - -.fancybox-thumbs__list a{ - -webkit-backface-visibility:hidden; - backface-visibility:hidden; - background-color:rgba(0, 0, 0, 0.1); - background-position:center center; - background-repeat:no-repeat; - background-size:cover; - cursor:pointer; - float:left; - height:75px; - margin:2px; - max-height:calc(100% - 8px); - max-width:calc(50% - 4px); - outline:none; - overflow:hidden; - padding:0; - position:relative; - -webkit-tap-highlight-color:transparent; - width:100px; -} - -.fancybox-thumbs__list a::before{ - border:6px solid #ff5268; - bottom:0; - content:""; - left:0; - opacity:0; - position:absolute; - right:0; - top:0; - transition:all 0.2s cubic-bezier(0.25, 0.46, 0.45, 0.94); - z-index:99991; -} - -.fancybox-thumbs__list a:focus::before{ - opacity:0.5; -} - -.fancybox-thumbs__list a.fancybox-thumbs-active::before{ - opacity:1; -} -@media all and (max-width: 576px){ - .fancybox-thumbs{ - width:110px; - } - - .fancybox-show-thumbs .fancybox-inner{ - right:110px; - } - - .fancybox-thumbs__list a{ - max-width:calc(100% - 10px); - } -} -.onoffswitch{ - position:relative; - width:80px; - -webkit-user-select:none; - -moz-user-select:none; - -ms-user-select:none; -} - -.onoffswitch-checkbox{ - position:absolute; - opacity:0; - pointer-events:none; -} - -.onoffswitch-label{ - display:block; - overflow:hidden; - cursor:pointer; - border:2px solid #999999; - border-radius:8px; -} - -.onoffswitch-inner{ - display:block; - width:200%; - margin-left:-100%; - transition:margin 0.3s ease-in 0s; -} - -.onoffswitch-inner:before, .onoffswitch-inner:after{ - display:block; - float:left; - width:50%; - height:35px; - padding:0; - line-height:35px; - font-size:15px; - color:white; - font-family:Trebuchet, Arial, sans-serif; - font-weight:bold; - box-sizing:border-box; -} - -.onoffswitch-inner:before{ - content:"Oui"; - padding-left:10px; - background-color:#2196F3; - color:#FFFFFF; -} - -.onoffswitch-inner:after{ - content:"Non"; - padding-right:10px; - background-color:#CCCCCC; - color:#999999; - text-align:right; -} - -.onoffswitch-switch{ - display:block; - width:22px; - margin:6.5px; - background:#FFFFFF; - position:absolute; - top:0; - bottom:0; - right:41px; - border:2px solid #999999; - border-radius:8px; - transition:all 0.3s ease-in 0s; -} - -.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner{ - margin-left:0; -} - -.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch{ - right:0px; -} -.required-asterisk{ - color:red; -} - -.game-name{ - text-align:center; - font-size:large; -} diff --git a/public/js/app.js b/public/js/app.js deleted file mode 100644 index 1248bad..0000000 --- a/public/js/app.js +++ /dev/null @@ -1,101133 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ var __webpack_modules__ = ({ - -/***/ "./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js": -/*!******************************************************************!*\ - !*** ./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js ***! - \******************************************************************/ -/***/ (() => { - -// ================================================== -// fancyBox v3.5.7 -// -// Licensed GPLv3 for open source use -// or fancyBox Commercial License for commercial use -// -// http://fancyapps.com/fancybox/ -// Copyright 2019 fancyApps -// -// ================================================== -(function (window, document, $, undefined) { - "use strict"; - - window.console = window.console || { - info: function (stuff) {} - }; - - // If there's no jQuery, fancyBox can't work - // ========================================= - - if (!$) { - return; - } - - // Check if fancyBox is already initialized - // ======================================== - - if ($.fn.fancybox) { - console.info("fancyBox already initialized"); - - return; - } - - // Private default settings - // ======================== - - var defaults = { - // Close existing modals - // Set this to false if you do not need to stack multiple instances - closeExisting: false, - - // Enable infinite gallery navigation - loop: false, - - // Horizontal space between slides - gutter: 50, - - // Enable keyboard navigation - keyboard: true, - - // Should allow caption to overlap the content - preventCaptionOverlap: true, - - // Should display navigation arrows at the screen edges - arrows: true, - - // Should display counter at the top left corner - infobar: true, - - // Should display close button (using `btnTpl.smallBtn` template) over the content - // Can be true, false, "auto" - // If "auto" - will be automatically enabled for "html", "inline" or "ajax" items - smallBtn: "auto", - - // Should display toolbar (buttons at the top) - // Can be true, false, "auto" - // If "auto" - will be automatically hidden if "smallBtn" is enabled - toolbar: "auto", - - // What buttons should appear in the top right corner. - // Buttons will be created using templates from `btnTpl` option - // and they will be placed into toolbar (class="fancybox-toolbar"` element) - buttons: [ - "zoom", - //"share", - "slideShow", - //"fullScreen", - //"download", - "thumbs", - "close" - ], - - // Detect "idle" time in seconds - idleTime: 3, - - // Disable right-click and use simple image protection for images - protect: false, - - // Shortcut to make content "modal" - disable keyboard navigtion, hide buttons, etc - modal: false, - - image: { - // Wait for images to load before displaying - // true - wait for image to load and then display; - // false - display thumbnail and load the full-sized image over top, - // requires predefined image dimensions (`data-width` and `data-height` attributes) - preload: false - }, - - ajax: { - // Object containing settings for ajax request - settings: { - // This helps to indicate that request comes from the modal - // Feel free to change naming - data: { - fancybox: true - } - } - }, - - iframe: { - // Iframe template - tpl: '', - - // Preload iframe before displaying it - // This allows to calculate iframe content width and height - // (note: Due to "Same Origin Policy", you can't get cross domain data). - preload: true, - - // Custom CSS styling for iframe wrapping element - // You can use this to set custom iframe dimensions - css: {}, - - // Iframe tag attributes - attr: { - scrolling: "auto" - } - }, - - // For HTML5 video only - video: { - tpl: '", - format: "", // custom video format - autoStart: true - }, - - // Default content type if cannot be detected automatically - defaultType: "image", - - // Open/close animation type - // Possible values: - // false - disable - // "zoom" - zoom images from/to thumbnail - // "fade" - // "zoom-in-out" - // - animationEffect: "zoom", - - // Duration in ms for open/close animation - animationDuration: 366, - - // Should image change opacity while zooming - // If opacity is "auto", then opacity will be changed if image and thumbnail have different aspect ratios - zoomOpacity: "auto", - - // Transition effect between slides - // - // Possible values: - // false - disable - // "fade' - // "slide' - // "circular' - // "tube' - // "zoom-in-out' - // "rotate' - // - transitionEffect: "fade", - - // Duration in ms for transition animation - transitionDuration: 366, - - // Custom CSS class for slide element - slideClass: "", - - // Custom CSS class for layout - baseClass: "", - - // Base template for layout - baseTpl: '", - - // Loading indicator template - spinnerTpl: '
', - - // Error message template - errorTpl: '

{{ERROR}}

', - - btnTpl: { - download: '' + - '' + - "", - - zoom: '", - - close: '", - - // Arrows - arrowLeft: '", - - arrowRight: '", - - // This small close button will be appended to your html/inline/ajax content by default, - // if "smallBtn" option is not set to false - smallBtn: '" - }, - - // Container is injected into this element - parentEl: "body", - - // Hide browser vertical scrollbars; use at your own risk - hideScrollbar: true, - - // Focus handling - // ============== - - // Try to focus on the first focusable element after opening - autoFocus: true, - - // Put focus back to active element after closing - backFocus: true, - - // Do not let user to focus on element outside modal content - trapFocus: true, - - // Module specific options - // ======================= - - fullScreen: { - autoStart: false - }, - - // Set `touch: false` to disable panning/swiping - touch: { - vertical: true, // Allow to drag content vertically - momentum: true // Continue movement after releasing mouse/touch when panning - }, - - // Hash value when initializing manually, - // set `false` to disable hash change - hash: null, - - // Customize or add new media types - // Example: - /* - media : { - youtube : { - params : { - autoplay : 0 - } - } - } - */ - media: {}, - - slideShow: { - autoStart: false, - speed: 3000 - }, - - thumbs: { - autoStart: false, // Display thumbnails on opening - hideOnClose: true, // Hide thumbnail grid when closing animation starts - parentEl: ".fancybox-container", // Container is injected into this element - axis: "y" // Vertical (y) or horizontal (x) scrolling - }, - - // Use mousewheel to navigate gallery - // If 'auto' - enabled for images only - wheel: "auto", - - // Callbacks - //========== - - // See Documentation/API/Events for more information - // Example: - /* - afterShow: function( instance, current ) { - console.info( 'Clicked element:' ); - console.info( current.opts.$orig ); - } - */ - - onInit: $.noop, // When instance has been initialized - - beforeLoad: $.noop, // Before the content of a slide is being loaded - afterLoad: $.noop, // When the content of a slide is done loading - - beforeShow: $.noop, // Before open animation starts - afterShow: $.noop, // When content is done loading and animating - - beforeClose: $.noop, // Before the instance attempts to close. Return false to cancel the close. - afterClose: $.noop, // After instance has been closed - - onActivate: $.noop, // When instance is brought to front - onDeactivate: $.noop, // When other instance has been activated - - // Interaction - // =========== - - // Use options below to customize taken action when user clicks or double clicks on the fancyBox area, - // each option can be string or method that returns value. - // - // Possible values: - // "close" - close instance - // "next" - move to next gallery item - // "nextOrClose" - move to next gallery item or close if gallery has only one item - // "toggleControls" - show/hide controls - // "zoom" - zoom image (if loaded) - // false - do nothing - - // Clicked on the content - clickContent: function (current, event) { - return current.type === "image" ? "zoom" : false; - }, - - // Clicked on the slide - clickSlide: "close", - - // Clicked on the background (backdrop) element; - // if you have not changed the layout, then most likely you need to use `clickSlide` option - clickOutside: "close", - - // Same as previous two, but for double click - dblclickContent: false, - dblclickSlide: false, - dblclickOutside: false, - - // Custom options when mobile device is detected - // ============================================= - - mobile: { - preventCaptionOverlap: false, - idleTime: false, - clickContent: function (current, event) { - return current.type === "image" ? "toggleControls" : false; - }, - clickSlide: function (current, event) { - return current.type === "image" ? "toggleControls" : "close"; - }, - dblclickContent: function (current, event) { - return current.type === "image" ? "zoom" : false; - }, - dblclickSlide: function (current, event) { - return current.type === "image" ? "zoom" : false; - } - }, - - // Internationalization - // ==================== - - lang: "en", - i18n: { - en: { - CLOSE: "Close", - NEXT: "Next", - PREV: "Previous", - ERROR: "The requested content cannot be loaded.
Please try again later.", - PLAY_START: "Start slideshow", - PLAY_STOP: "Pause slideshow", - FULL_SCREEN: "Full screen", - THUMBS: "Thumbnails", - DOWNLOAD: "Download", - SHARE: "Share", - ZOOM: "Zoom" - }, - de: { - CLOSE: "Schließen", - NEXT: "Weiter", - PREV: "Zurück", - ERROR: "Die angeforderten Daten konnten nicht geladen werden.
Bitte versuchen Sie es später nochmal.", - PLAY_START: "Diaschau starten", - PLAY_STOP: "Diaschau beenden", - FULL_SCREEN: "Vollbild", - THUMBS: "Vorschaubilder", - DOWNLOAD: "Herunterladen", - SHARE: "Teilen", - ZOOM: "Vergrößern" - } - } - }; - - // Few useful variables and methods - // ================================ - - var $W = $(window); - var $D = $(document); - - var called = 0; - - // Check if an object is a jQuery object and not a native JavaScript object - // ======================================================================== - var isQuery = function (obj) { - return obj && obj.hasOwnProperty && obj instanceof $; - }; - - // Handle multiple browsers for "requestAnimationFrame" and "cancelAnimationFrame" - // =============================================================================== - var requestAFrame = (function () { - return ( - window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - // if all else fails, use setTimeout - function (callback) { - return window.setTimeout(callback, 1000 / 60); - } - ); - })(); - - var cancelAFrame = (function () { - return ( - window.cancelAnimationFrame || - window.webkitCancelAnimationFrame || - window.mozCancelAnimationFrame || - window.oCancelAnimationFrame || - function (id) { - window.clearTimeout(id); - } - ); - })(); - - // Detect the supported transition-end event property name - // ======================================================= - var transitionEnd = (function () { - var el = document.createElement("fakeelement"), - t; - - var transitions = { - transition: "transitionend", - OTransition: "oTransitionEnd", - MozTransition: "transitionend", - WebkitTransition: "webkitTransitionEnd" - }; - - for (t in transitions) { - if (el.style[t] !== undefined) { - return transitions[t]; - } - } - - return "transitionend"; - })(); - - // Force redraw on an element. - // This helps in cases where the browser doesn't redraw an updated element properly - // ================================================================================ - var forceRedraw = function ($el) { - return $el && $el.length && $el[0].offsetHeight; - }; - - // Exclude array (`buttons`) options from deep merging - // =================================================== - var mergeOpts = function (opts1, opts2) { - var rez = $.extend(true, {}, opts1, opts2); - - $.each(opts2, function (key, value) { - if ($.isArray(value)) { - rez[key] = value; - } - }); - - return rez; - }; - - // How much of an element is visible in viewport - // ============================================= - - var inViewport = function (elem) { - var elemCenter, rez; - - if (!elem || elem.ownerDocument !== document) { - return false; - } - - $(".fancybox-container").css("pointer-events", "none"); - - elemCenter = { - x: elem.getBoundingClientRect().left + elem.offsetWidth / 2, - y: elem.getBoundingClientRect().top + elem.offsetHeight / 2 - }; - - rez = document.elementFromPoint(elemCenter.x, elemCenter.y) === elem; - - $(".fancybox-container").css("pointer-events", ""); - - return rez; - }; - - // Class definition - // ================ - - var FancyBox = function (content, opts, index) { - var self = this; - - self.opts = mergeOpts({ - index: index - }, $.fancybox.defaults); - - if ($.isPlainObject(opts)) { - self.opts = mergeOpts(self.opts, opts); - } - - if ($.fancybox.isMobile) { - self.opts = mergeOpts(self.opts, self.opts.mobile); - } - - self.id = self.opts.id || ++called; - - self.currIndex = parseInt(self.opts.index, 10) || 0; - self.prevIndex = null; - - self.prevPos = null; - self.currPos = 0; - - self.firstRun = true; - - // All group items - self.group = []; - - // Existing slides (for current, next and previous gallery items) - self.slides = {}; - - // Create group elements - self.addContent(content); - - if (!self.group.length) { - return; - } - - self.init(); - }; - - $.extend(FancyBox.prototype, { - // Create DOM structure - // ==================== - - init: function () { - var self = this, - firstItem = self.group[self.currIndex], - firstItemOpts = firstItem.opts, - $container, - buttonStr; - - if (firstItemOpts.closeExisting) { - $.fancybox.close(true); - } - - // Hide scrollbars - // =============== - - $("body").addClass("fancybox-active"); - - if ( - !$.fancybox.getInstance() && - firstItemOpts.hideScrollbar !== false && - !$.fancybox.isMobile && - document.body.scrollHeight > window.innerHeight - ) { - $("head").append( - '" - ); - - $("body").addClass("compensate-for-scrollbar"); - } - - // Build html markup and set references - // ==================================== - - // Build html code for buttons and insert into main template - buttonStr = ""; - - $.each(firstItemOpts.buttons, function (index, value) { - buttonStr += firstItemOpts.btnTpl[value] || ""; - }); - - // Create markup from base template, it will be initially hidden to - // avoid unnecessary work like painting while initializing is not complete - $container = $( - self.translate( - self, - firstItemOpts.baseTpl - .replace("{{buttons}}", buttonStr) - .replace("{{arrows}}", firstItemOpts.btnTpl.arrowLeft + firstItemOpts.btnTpl.arrowRight) - ) - ) - .attr("id", "fancybox-container-" + self.id) - .addClass(firstItemOpts.baseClass) - .data("FancyBox", self) - .appendTo(firstItemOpts.parentEl); - - // Create object holding references to jQuery wrapped nodes - self.$refs = { - container: $container - }; - - ["bg", "inner", "infobar", "toolbar", "stage", "caption", "navigation"].forEach(function (item) { - self.$refs[item] = $container.find(".fancybox-" + item); - }); - - self.trigger("onInit"); - - // Enable events, deactive previous instances - self.activate(); - - // Build slides, load and reveal content - self.jumpTo(self.currIndex); - }, - - // Simple i18n support - replaces object keys found in template - // with corresponding values - // ============================================================ - - translate: function (obj, str) { - var arr = obj.opts.i18n[obj.opts.lang] || obj.opts.i18n.en; - - return str.replace(/\{\{(\w+)\}\}/g, function (match, n) { - return arr[n] === undefined ? match : arr[n]; - }); - }, - - // Populate current group with fresh content - // Check if each object has valid type and content - // =============================================== - - addContent: function (content) { - var self = this, - items = $.makeArray(content), - thumbs; - - $.each(items, function (i, item) { - var obj = {}, - opts = {}, - $item, - type, - found, - src, - srcParts; - - // Step 1 - Make sure we have an object - // ==================================== - - if ($.isPlainObject(item)) { - // We probably have manual usage here, something like - // $.fancybox.open( [ { src : "image.jpg", type : "image" } ] ) - - obj = item; - opts = item.opts || item; - } else if ($.type(item) === "object" && $(item).length) { - // Here we probably have jQuery collection returned by some selector - $item = $(item); - - // Support attributes like `data-options='{"touch" : false}'` and `data-touch='false'` - opts = $item.data() || {}; - opts = $.extend(true, {}, opts, opts.options); - - // Here we store clicked element - opts.$orig = $item; - - obj.src = self.opts.src || opts.src || $item.attr("href"); - - // Assume that simple syntax is used, for example: - // `$.fancybox.open( $("#test"), {} );` - if (!obj.type && !obj.src) { - obj.type = "inline"; - obj.src = item; - } - } else { - // Assume we have a simple html code, for example: - // $.fancybox.open( '

Hi!

' ); - obj = { - type: "html", - src: item + "" - }; - } - - // Each gallery object has full collection of options - obj.opts = $.extend(true, {}, self.opts, opts); - - // Do not merge buttons array - if ($.isArray(opts.buttons)) { - obj.opts.buttons = opts.buttons; - } - - if ($.fancybox.isMobile && obj.opts.mobile) { - obj.opts = mergeOpts(obj.opts, obj.opts.mobile); - } - - // Step 2 - Make sure we have content type, if not - try to guess - // ============================================================== - - type = obj.type || obj.opts.type; - src = obj.src || ""; - - if (!type && src) { - if ((found = src.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))) { - type = "video"; - - if (!obj.opts.video.format) { - obj.opts.video.format = "video/" + (found[1] === "ogv" ? "ogg" : found[1]); - } - } else if (src.match(/(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i)) { - type = "image"; - } else if (src.match(/\.(pdf)((\?|#).*)?$/i)) { - type = "iframe"; - obj = $.extend(true, obj, { - contentType: "pdf", - opts: { - iframe: { - preload: false - } - } - }); - } else if (src.charAt(0) === "#") { - type = "inline"; - } - } - - if (type) { - obj.type = type; - } else { - self.trigger("objectNeedsType", obj); - } - - if (!obj.contentType) { - obj.contentType = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1 ? "html" : obj.type; - } - - // Step 3 - Some adjustments - // ========================= - - obj.index = self.group.length; - - if (obj.opts.smallBtn == "auto") { - obj.opts.smallBtn = $.inArray(obj.type, ["html", "inline", "ajax"]) > -1; - } - - if (obj.opts.toolbar === "auto") { - obj.opts.toolbar = !obj.opts.smallBtn; - } - - // Find thumbnail image, check if exists and if is in the viewport - obj.$thumb = obj.opts.$thumb || null; - - if (obj.opts.$trigger && obj.index === self.opts.index) { - obj.$thumb = obj.opts.$trigger.find("img:first"); - - if (obj.$thumb.length) { - obj.opts.$orig = obj.opts.$trigger; - } - } - - if (!(obj.$thumb && obj.$thumb.length) && obj.opts.$orig) { - obj.$thumb = obj.opts.$orig.find("img:first"); - } - - if (obj.$thumb && !obj.$thumb.length) { - obj.$thumb = null; - } - - obj.thumb = obj.opts.thumb || (obj.$thumb ? obj.$thumb[0].src : null); - - // "caption" is a "special" option, it can be used to customize caption per gallery item - if ($.type(obj.opts.caption) === "function") { - obj.opts.caption = obj.opts.caption.apply(item, [self, obj]); - } - - if ($.type(self.opts.caption) === "function") { - obj.opts.caption = self.opts.caption.apply(item, [self, obj]); - } - - // Make sure we have caption as a string or jQuery object - if (!(obj.opts.caption instanceof $)) { - obj.opts.caption = obj.opts.caption === undefined ? "" : obj.opts.caption + ""; - } - - // Check if url contains "filter" used to filter the content - // Example: "ajax.html #something" - if (obj.type === "ajax") { - srcParts = src.split(/\s+/, 2); - - if (srcParts.length > 1) { - obj.src = srcParts.shift(); - - obj.opts.filter = srcParts.shift(); - } - } - - // Hide all buttons and disable interactivity for modal items - if (obj.opts.modal) { - obj.opts = $.extend(true, obj.opts, { - trapFocus: true, - // Remove buttons - infobar: 0, - toolbar: 0, - - smallBtn: 0, - - // Disable keyboard navigation - keyboard: 0, - - // Disable some modules - slideShow: 0, - fullScreen: 0, - thumbs: 0, - touch: 0, - - // Disable click event handlers - clickContent: false, - clickSlide: false, - clickOutside: false, - dblclickContent: false, - dblclickSlide: false, - dblclickOutside: false - }); - } - - // Step 4 - Add processed object to group - // ====================================== - - self.group.push(obj); - }); - - // Update controls if gallery is already opened - if (Object.keys(self.slides).length) { - self.updateControls(); - - // Update thumbnails, if needed - thumbs = self.Thumbs; - - if (thumbs && thumbs.isActive) { - thumbs.create(); - - thumbs.focus(); - } - } - }, - - // Attach an event handler functions for: - // - navigation buttons - // - browser scrolling, resizing; - // - focusing - // - keyboard - // - detecting inactivity - // ====================================== - - addEvents: function () { - var self = this; - - self.removeEvents(); - - // Make navigation elements clickable - // ================================== - - self.$refs.container - .on("click.fb-close", "[data-fancybox-close]", function (e) { - e.stopPropagation(); - e.preventDefault(); - - self.close(e); - }) - .on("touchstart.fb-prev click.fb-prev", "[data-fancybox-prev]", function (e) { - e.stopPropagation(); - e.preventDefault(); - - self.previous(); - }) - .on("touchstart.fb-next click.fb-next", "[data-fancybox-next]", function (e) { - e.stopPropagation(); - e.preventDefault(); - - self.next(); - }) - .on("click.fb", "[data-fancybox-zoom]", function (e) { - // Click handler for zoom button - self[self.isScaledDown() ? "scaleToActual" : "scaleToFit"](); - }); - - // Handle page scrolling and browser resizing - // ========================================== - - $W.on("orientationchange.fb resize.fb", function (e) { - if (e && e.originalEvent && e.originalEvent.type === "resize") { - if (self.requestId) { - cancelAFrame(self.requestId); - } - - self.requestId = requestAFrame(function () { - self.update(e); - }); - } else { - if (self.current && self.current.type === "iframe") { - self.$refs.stage.hide(); - } - - setTimeout( - function () { - self.$refs.stage.show(); - - self.update(e); - }, - $.fancybox.isMobile ? 600 : 250 - ); - } - }); - - $D.on("keydown.fb", function (e) { - var instance = $.fancybox ? $.fancybox.getInstance() : null, - current = instance.current, - keycode = e.keyCode || e.which; - - // Trap keyboard focus inside of the modal - // ======================================= - - if (keycode == 9) { - if (current.opts.trapFocus) { - self.focus(e); - } - - return; - } - - // Enable keyboard navigation - // ========================== - - if (!current.opts.keyboard || e.ctrlKey || e.altKey || e.shiftKey || $(e.target).is("input,textarea,video,audio,select")) { - return; - } - - // Backspace and Esc keys - if (keycode === 8 || keycode === 27) { - e.preventDefault(); - - self.close(e); - - return; - } - - // Left arrow and Up arrow - if (keycode === 37 || keycode === 38) { - e.preventDefault(); - - self.previous(); - - return; - } - - // Righ arrow and Down arrow - if (keycode === 39 || keycode === 40) { - e.preventDefault(); - - self.next(); - - return; - } - - self.trigger("afterKeydown", e, keycode); - }); - - // Hide controls after some inactivity period - if (self.group[self.currIndex].opts.idleTime) { - self.idleSecondsCounter = 0; - - $D.on( - "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle", - function (e) { - self.idleSecondsCounter = 0; - - if (self.isIdle) { - self.showControls(); - } - - self.isIdle = false; - } - ); - - self.idleInterval = window.setInterval(function () { - self.idleSecondsCounter++; - - if (self.idleSecondsCounter >= self.group[self.currIndex].opts.idleTime && !self.isDragging) { - self.isIdle = true; - self.idleSecondsCounter = 0; - - self.hideControls(); - } - }, 1000); - } - }, - - // Remove events added by the core - // =============================== - - removeEvents: function () { - var self = this; - - $W.off("orientationchange.fb resize.fb"); - $D.off("keydown.fb .fb-idle"); - - this.$refs.container.off(".fb-close .fb-prev .fb-next"); - - if (self.idleInterval) { - window.clearInterval(self.idleInterval); - - self.idleInterval = null; - } - }, - - // Change to previous gallery item - // =============================== - - previous: function (duration) { - return this.jumpTo(this.currPos - 1, duration); - }, - - // Change to next gallery item - // =========================== - - next: function (duration) { - return this.jumpTo(this.currPos + 1, duration); - }, - - // Switch to selected gallery item - // =============================== - - jumpTo: function (pos, duration) { - var self = this, - groupLen = self.group.length, - firstRun, - isMoved, - loop, - current, - previous, - slidePos, - stagePos, - prop, - diff; - - if (self.isDragging || self.isClosing || (self.isAnimating && self.firstRun)) { - return; - } - - // Should loop? - pos = parseInt(pos, 10); - loop = self.current ? self.current.opts.loop : self.opts.loop; - - if (!loop && (pos < 0 || pos >= groupLen)) { - return false; - } - - // Check if opening for the first time; this helps to speed things up - firstRun = self.firstRun = !Object.keys(self.slides).length; - - // Create slides - previous = self.current; - - self.prevIndex = self.currIndex; - self.prevPos = self.currPos; - - current = self.createSlide(pos); - - if (groupLen > 1) { - if (loop || current.index < groupLen - 1) { - self.createSlide(pos + 1); - } - - if (loop || current.index > 0) { - self.createSlide(pos - 1); - } - } - - self.current = current; - self.currIndex = current.index; - self.currPos = current.pos; - - self.trigger("beforeShow", firstRun); - - self.updateControls(); - - // Validate duration length - current.forcedDuration = undefined; - - if ($.isNumeric(duration)) { - current.forcedDuration = duration; - } else { - duration = current.opts[firstRun ? "animationDuration" : "transitionDuration"]; - } - - duration = parseInt(duration, 10); - - // Check if user has swiped the slides or if still animating - isMoved = self.isMoved(current); - - // Make sure current slide is visible - current.$slide.addClass("fancybox-slide--current"); - - // Fresh start - reveal container, current slide and start loading content - if (firstRun) { - if (current.opts.animationEffect && duration) { - self.$refs.container.css("transition-duration", duration + "ms"); - } - - self.$refs.container.addClass("fancybox-is-open").trigger("focus"); - - // Attempt to load content into slide - // This will later call `afterLoad` -> `revealContent` - self.loadSlide(current); - - self.preload("image"); - - return; - } - - // Get actual slide/stage positions (before cleaning up) - slidePos = $.fancybox.getTranslate(previous.$slide); - stagePos = $.fancybox.getTranslate(self.$refs.stage); - - // Clean up all slides - $.each(self.slides, function (index, slide) { - $.fancybox.stop(slide.$slide, true); - }); - - if (previous.pos !== current.pos) { - previous.isComplete = false; - } - - previous.$slide.removeClass("fancybox-slide--complete fancybox-slide--current"); - - // If slides are out of place, then animate them to correct position - if (isMoved) { - // Calculate horizontal swipe distance - diff = slidePos.left - (previous.pos * slidePos.width + previous.pos * previous.opts.gutter); - - $.each(self.slides, function (index, slide) { - slide.$slide.removeClass("fancybox-animated").removeClass(function (index, className) { - return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); - }); - - // Make sure that each slide is in equal distance - // This is mostly needed for freshly added slides, because they are not yet positioned - var leftPos = slide.pos * slidePos.width + slide.pos * slide.opts.gutter; - - $.fancybox.setTranslate(slide.$slide, { - top: 0, - left: leftPos - stagePos.left + diff - }); - - if (slide.pos !== current.pos) { - slide.$slide.addClass("fancybox-slide--" + (slide.pos > current.pos ? "next" : "previous")); - } - - // Redraw to make sure that transition will start - forceRedraw(slide.$slide); - - // Animate the slide - $.fancybox.animate( - slide.$slide, { - top: 0, - left: (slide.pos - current.pos) * slidePos.width + (slide.pos - current.pos) * slide.opts.gutter - }, - duration, - function () { - slide.$slide - .css({ - transform: "", - opacity: "" - }) - .removeClass("fancybox-slide--next fancybox-slide--previous"); - - if (slide.pos === self.currPos) { - self.complete(); - } - } - ); - }); - } else if (duration && current.opts.transitionEffect) { - // Set transition effect for previously active slide - prop = "fancybox-animated fancybox-fx-" + current.opts.transitionEffect; - - previous.$slide.addClass("fancybox-slide--" + (previous.pos > current.pos ? "next" : "previous")); - - $.fancybox.animate( - previous.$slide, - prop, - duration, - function () { - previous.$slide.removeClass(prop).removeClass("fancybox-slide--next fancybox-slide--previous"); - }, - false - ); - } - - if (current.isLoaded) { - self.revealContent(current); - } else { - self.loadSlide(current); - } - - self.preload("image"); - }, - - // Create new "slide" element - // These are gallery items that are actually added to DOM - // ======================================================= - - createSlide: function (pos) { - var self = this, - $slide, - index; - - index = pos % self.group.length; - index = index < 0 ? self.group.length + index : index; - - if (!self.slides[pos] && self.group[index]) { - $slide = $('
').appendTo(self.$refs.stage); - - self.slides[pos] = $.extend(true, {}, self.group[index], { - pos: pos, - $slide: $slide, - isLoaded: false - }); - - self.updateSlide(self.slides[pos]); - } - - return self.slides[pos]; - }, - - // Scale image to the actual size of the image; - // x and y values should be relative to the slide - // ============================================== - - scaleToActual: function (x, y, duration) { - var self = this, - current = self.current, - $content = current.$content, - canvasWidth = $.fancybox.getTranslate(current.$slide).width, - canvasHeight = $.fancybox.getTranslate(current.$slide).height, - newImgWidth = current.width, - newImgHeight = current.height, - imgPos, - posX, - posY, - scaleX, - scaleY; - - if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) { - return; - } - - self.isAnimating = true; - - $.fancybox.stop($content); - - x = x === undefined ? canvasWidth * 0.5 : x; - y = y === undefined ? canvasHeight * 0.5 : y; - - imgPos = $.fancybox.getTranslate($content); - - imgPos.top -= $.fancybox.getTranslate(current.$slide).top; - imgPos.left -= $.fancybox.getTranslate(current.$slide).left; - - scaleX = newImgWidth / imgPos.width; - scaleY = newImgHeight / imgPos.height; - - // Get center position for original image - posX = canvasWidth * 0.5 - newImgWidth * 0.5; - posY = canvasHeight * 0.5 - newImgHeight * 0.5; - - // Make sure image does not move away from edges - if (newImgWidth > canvasWidth) { - posX = imgPos.left * scaleX - (x * scaleX - x); - - if (posX > 0) { - posX = 0; - } - - if (posX < canvasWidth - newImgWidth) { - posX = canvasWidth - newImgWidth; - } - } - - if (newImgHeight > canvasHeight) { - posY = imgPos.top * scaleY - (y * scaleY - y); - - if (posY > 0) { - posY = 0; - } - - if (posY < canvasHeight - newImgHeight) { - posY = canvasHeight - newImgHeight; - } - } - - self.updateCursor(newImgWidth, newImgHeight); - - $.fancybox.animate( - $content, { - top: posY, - left: posX, - scaleX: scaleX, - scaleY: scaleY - }, - duration || 366, - function () { - self.isAnimating = false; - } - ); - - // Stop slideshow - if (self.SlideShow && self.SlideShow.isActive) { - self.SlideShow.stop(); - } - }, - - // Scale image to fit inside parent element - // ======================================== - - scaleToFit: function (duration) { - var self = this, - current = self.current, - $content = current.$content, - end; - - if (self.isAnimating || self.isMoved() || !$content || !(current.type == "image" && current.isLoaded && !current.hasError)) { - return; - } - - self.isAnimating = true; - - $.fancybox.stop($content); - - end = self.getFitPos(current); - - self.updateCursor(end.width, end.height); - - $.fancybox.animate( - $content, { - top: end.top, - left: end.left, - scaleX: end.width / $content.width(), - scaleY: end.height / $content.height() - }, - duration || 366, - function () { - self.isAnimating = false; - } - ); - }, - - // Calculate image size to fit inside viewport - // =========================================== - - getFitPos: function (slide) { - var self = this, - $content = slide.$content, - $slide = slide.$slide, - width = slide.width || slide.opts.width, - height = slide.height || slide.opts.height, - maxWidth, - maxHeight, - minRatio, - aspectRatio, - rez = {}; - - if (!slide.isLoaded || !$content || !$content.length) { - return false; - } - - maxWidth = $.fancybox.getTranslate(self.$refs.stage).width; - maxHeight = $.fancybox.getTranslate(self.$refs.stage).height; - - maxWidth -= - parseFloat($slide.css("paddingLeft")) + - parseFloat($slide.css("paddingRight")) + - parseFloat($content.css("marginLeft")) + - parseFloat($content.css("marginRight")); - - maxHeight -= - parseFloat($slide.css("paddingTop")) + - parseFloat($slide.css("paddingBottom")) + - parseFloat($content.css("marginTop")) + - parseFloat($content.css("marginBottom")); - - if (!width || !height) { - width = maxWidth; - height = maxHeight; - } - - minRatio = Math.min(1, maxWidth / width, maxHeight / height); - - width = minRatio * width; - height = minRatio * height; - - // Adjust width/height to precisely fit into container - if (width > maxWidth - 0.5) { - width = maxWidth; - } - - if (height > maxHeight - 0.5) { - height = maxHeight; - } - - if (slide.type === "image") { - rez.top = Math.floor((maxHeight - height) * 0.5) + parseFloat($slide.css("paddingTop")); - rez.left = Math.floor((maxWidth - width) * 0.5) + parseFloat($slide.css("paddingLeft")); - } else if (slide.contentType === "video") { - // Force aspect ratio for the video - // "I say the whole world must learn of our peaceful ways… by force!" - aspectRatio = slide.opts.width && slide.opts.height ? width / height : slide.opts.ratio || 16 / 9; - - if (height > width / aspectRatio) { - height = width / aspectRatio; - } else if (width > height * aspectRatio) { - width = height * aspectRatio; - } - } - - rez.width = width; - rez.height = height; - - return rez; - }, - - // Update content size and position for all slides - // ============================================== - - update: function (e) { - var self = this; - - $.each(self.slides, function (key, slide) { - self.updateSlide(slide, e); - }); - }, - - // Update slide content position and size - // ====================================== - - updateSlide: function (slide, e) { - var self = this, - $content = slide && slide.$content, - width = slide.width || slide.opts.width, - height = slide.height || slide.opts.height, - $slide = slide.$slide; - - // First, prevent caption overlap, if needed - self.adjustCaption(slide); - - // Then resize content to fit inside the slide - if ($content && (width || height || slide.contentType === "video") && !slide.hasError) { - $.fancybox.stop($content); - - $.fancybox.setTranslate($content, self.getFitPos(slide)); - - if (slide.pos === self.currPos) { - self.isAnimating = false; - - self.updateCursor(); - } - } - - // Then some adjustments - self.adjustLayout(slide); - - if ($slide.length) { - $slide.trigger("refresh"); - - if (slide.pos === self.currPos) { - self.$refs.toolbar - .add(self.$refs.navigation.find(".fancybox-button--arrow_right")) - .toggleClass("compensate-for-scrollbar", $slide.get(0).scrollHeight > $slide.get(0).clientHeight); - } - } - - self.trigger("onUpdate", slide, e); - }, - - // Horizontally center slide - // ========================= - - centerSlide: function (duration) { - var self = this, - current = self.current, - $slide = current.$slide; - - if (self.isClosing || !current) { - return; - } - - $slide.siblings().css({ - transform: "", - opacity: "" - }); - - $slide - .parent() - .children() - .removeClass("fancybox-slide--previous fancybox-slide--next"); - - $.fancybox.animate( - $slide, { - top: 0, - left: 0, - opacity: 1 - }, - duration === undefined ? 0 : duration, - function () { - // Clean up - $slide.css({ - transform: "", - opacity: "" - }); - - if (!current.isComplete) { - self.complete(); - } - }, - false - ); - }, - - // Check if current slide is moved (swiped) - // ======================================== - - isMoved: function (slide) { - var current = slide || this.current, - slidePos, - stagePos; - - if (!current) { - return false; - } - - stagePos = $.fancybox.getTranslate(this.$refs.stage); - slidePos = $.fancybox.getTranslate(current.$slide); - - return ( - !current.$slide.hasClass("fancybox-animated") && - (Math.abs(slidePos.top - stagePos.top) > 0.5 || Math.abs(slidePos.left - stagePos.left) > 0.5) - ); - }, - - // Update cursor style depending if content can be zoomed - // ====================================================== - - updateCursor: function (nextWidth, nextHeight) { - var self = this, - current = self.current, - $container = self.$refs.container, - canPan, - isZoomable; - - if (!current || self.isClosing || !self.Guestures) { - return; - } - - $container.removeClass("fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"); - - canPan = self.canPan(nextWidth, nextHeight); - - isZoomable = canPan ? true : self.isZoomable(); - - $container.toggleClass("fancybox-is-zoomable", isZoomable); - - $("[data-fancybox-zoom]").prop("disabled", !isZoomable); - - if (canPan) { - $container.addClass("fancybox-can-pan"); - } else if ( - isZoomable && - (current.opts.clickContent === "zoom" || ($.isFunction(current.opts.clickContent) && current.opts.clickContent(current) == "zoom")) - ) { - $container.addClass("fancybox-can-zoomIn"); - } else if (current.opts.touch && (current.opts.touch.vertical || self.group.length > 1) && current.contentType !== "video") { - $container.addClass("fancybox-can-swipe"); - } - }, - - // Check if current slide is zoomable - // ================================== - - isZoomable: function () { - var self = this, - current = self.current, - fitPos; - - // Assume that slide is zoomable if: - // - image is still loading - // - actual size of the image is smaller than available area - if (current && !self.isClosing && current.type === "image" && !current.hasError) { - if (!current.isLoaded) { - return true; - } - - fitPos = self.getFitPos(current); - - if (fitPos && (current.width > fitPos.width || current.height > fitPos.height)) { - return true; - } - } - - return false; - }, - - // Check if current image dimensions are smaller than actual - // ========================================================= - - isScaledDown: function (nextWidth, nextHeight) { - var self = this, - rez = false, - current = self.current, - $content = current.$content; - - if (nextWidth !== undefined && nextHeight !== undefined) { - rez = nextWidth < current.width && nextHeight < current.height; - } else if ($content) { - rez = $.fancybox.getTranslate($content); - rez = rez.width < current.width && rez.height < current.height; - } - - return rez; - }, - - // Check if image dimensions exceed parent element - // =============================================== - - canPan: function (nextWidth, nextHeight) { - var self = this, - current = self.current, - pos = null, - rez = false; - - if (current.type === "image" && (current.isComplete || (nextWidth && nextHeight)) && !current.hasError) { - rez = self.getFitPos(current); - - if (nextWidth !== undefined && nextHeight !== undefined) { - pos = { - width: nextWidth, - height: nextHeight - }; - } else if (current.isComplete) { - pos = $.fancybox.getTranslate(current.$content); - } - - if (pos && rez) { - rez = Math.abs(pos.width - rez.width) > 1.5 || Math.abs(pos.height - rez.height) > 1.5; - } - } - - return rez; - }, - - // Load content into the slide - // =========================== - - loadSlide: function (slide) { - var self = this, - type, - $slide, - ajaxLoad; - - if (slide.isLoading || slide.isLoaded) { - return; - } - - slide.isLoading = true; - - if (self.trigger("beforeLoad", slide) === false) { - slide.isLoading = false; - - return false; - } - - type = slide.type; - $slide = slide.$slide; - - $slide - .off("refresh") - .trigger("onReset") - .addClass(slide.opts.slideClass); - - // Create content depending on the type - switch (type) { - case "image": - self.setImage(slide); - - break; - - case "iframe": - self.setIframe(slide); - - break; - - case "html": - self.setContent(slide, slide.src || slide.content); - - break; - - case "video": - self.setContent( - slide, - slide.opts.video.tpl - .replace(/\{\{src\}\}/gi, slide.src) - .replace("{{format}}", slide.opts.videoFormat || slide.opts.video.format || "") - .replace("{{poster}}", slide.thumb || "") - ); - - break; - - case "inline": - if ($(slide.src).length) { - self.setContent(slide, $(slide.src)); - } else { - self.setError(slide); - } - - break; - - case "ajax": - self.showLoading(slide); - - ajaxLoad = $.ajax( - $.extend({}, slide.opts.ajax.settings, { - url: slide.src, - success: function (data, textStatus) { - if (textStatus === "success") { - self.setContent(slide, data); - } - }, - error: function (jqXHR, textStatus) { - if (jqXHR && textStatus !== "abort") { - self.setError(slide); - } - } - }) - ); - - $slide.one("onReset", function () { - ajaxLoad.abort(); - }); - - break; - - default: - self.setError(slide); - - break; - } - - return true; - }, - - // Use thumbnail image, if possible - // ================================ - - setImage: function (slide) { - var self = this, - ghost; - - // Check if need to show loading icon - setTimeout(function () { - var $img = slide.$image; - - if (!self.isClosing && slide.isLoading && (!$img || !$img.length || !$img[0].complete) && !slide.hasError) { - self.showLoading(slide); - } - }, 50); - - //Check if image has srcset - self.checkSrcset(slide); - - // This will be wrapper containing both ghost and actual image - slide.$content = $('
') - .addClass("fancybox-is-hidden") - .appendTo(slide.$slide.addClass("fancybox-slide--image")); - - // If we have a thumbnail, we can display it while actual image is loading - // Users will not stare at black screen and actual image will appear gradually - if (slide.opts.preload !== false && slide.opts.width && slide.opts.height && slide.thumb) { - slide.width = slide.opts.width; - slide.height = slide.opts.height; - - ghost = document.createElement("img"); - - ghost.onerror = function () { - $(this).remove(); - - slide.$ghost = null; - }; - - ghost.onload = function () { - self.afterLoad(slide); - }; - - slide.$ghost = $(ghost) - .addClass("fancybox-image") - .appendTo(slide.$content) - .attr("src", slide.thumb); - } - - // Start loading actual image - self.setBigImage(slide); - }, - - // Check if image has srcset and get the source - // ============================================ - checkSrcset: function (slide) { - var srcset = slide.opts.srcset || slide.opts.image.srcset, - found, - temp, - pxRatio, - windowWidth; - - // If we have "srcset", then we need to find first matching "src" value. - // This is necessary, because when you set an src attribute, the browser will preload the image - // before any javascript or even CSS is applied. - if (srcset) { - pxRatio = window.devicePixelRatio || 1; - windowWidth = window.innerWidth * pxRatio; - - temp = srcset.split(",").map(function (el) { - var ret = {}; - - el.trim() - .split(/\s+/) - .forEach(function (el, i) { - var value = parseInt(el.substring(0, el.length - 1), 10); - - if (i === 0) { - return (ret.url = el); - } - - if (value) { - ret.value = value; - ret.postfix = el[el.length - 1]; - } - }); - - return ret; - }); - - // Sort by value - temp.sort(function (a, b) { - return a.value - b.value; - }); - - // Ok, now we have an array of all srcset values - for (var j = 0; j < temp.length; j++) { - var el = temp[j]; - - if ((el.postfix === "w" && el.value >= windowWidth) || (el.postfix === "x" && el.value >= pxRatio)) { - found = el; - break; - } - } - - // If not found, take the last one - if (!found && temp.length) { - found = temp[temp.length - 1]; - } - - if (found) { - slide.src = found.url; - - // If we have default width/height values, we can calculate height for matching source - if (slide.width && slide.height && found.postfix == "w") { - slide.height = (slide.width / slide.height) * found.value; - slide.width = found.value; - } - - slide.opts.srcset = srcset; - } - } - }, - - // Create full-size image - // ====================== - - setBigImage: function (slide) { - var self = this, - img = document.createElement("img"), - $img = $(img); - - slide.$image = $img - .one("error", function () { - self.setError(slide); - }) - .one("load", function () { - var sizes; - - if (!slide.$ghost) { - self.resolveImageSlideSize(slide, this.naturalWidth, this.naturalHeight); - - self.afterLoad(slide); - } - - if (self.isClosing) { - return; - } - - if (slide.opts.srcset) { - sizes = slide.opts.sizes; - - if (!sizes || sizes === "auto") { - sizes = - (slide.width / slide.height > 1 && $W.width() / $W.height() > 1 ? "100" : Math.round((slide.width / slide.height) * 100)) + - "vw"; - } - - $img.attr("sizes", sizes).attr("srcset", slide.opts.srcset); - } - - // Hide temporary image after some delay - if (slide.$ghost) { - setTimeout(function () { - if (slide.$ghost && !self.isClosing) { - slide.$ghost.hide(); - } - }, Math.min(300, Math.max(1000, slide.height / 1600))); - } - - self.hideLoading(slide); - }) - .addClass("fancybox-image") - .attr("src", slide.src) - .appendTo(slide.$content); - - if ((img.complete || img.readyState == "complete") && $img.naturalWidth && $img.naturalHeight) { - $img.trigger("load"); - } else if (img.error) { - $img.trigger("error"); - } - }, - - // Computes the slide size from image size and maxWidth/maxHeight - // ============================================================== - - resolveImageSlideSize: function (slide, imgWidth, imgHeight) { - var maxWidth = parseInt(slide.opts.width, 10), - maxHeight = parseInt(slide.opts.height, 10); - - // Sets the default values from the image - slide.width = imgWidth; - slide.height = imgHeight; - - if (maxWidth > 0) { - slide.width = maxWidth; - slide.height = Math.floor((maxWidth * imgHeight) / imgWidth); - } - - if (maxHeight > 0) { - slide.width = Math.floor((maxHeight * imgWidth) / imgHeight); - slide.height = maxHeight; - } - }, - - // Create iframe wrapper, iframe and bindings - // ========================================== - - setIframe: function (slide) { - var self = this, - opts = slide.opts.iframe, - $slide = slide.$slide, - $iframe; - - slide.$content = $('
') - .css(opts.css) - .appendTo($slide); - - $slide.addClass("fancybox-slide--" + slide.contentType); - - slide.$iframe = $iframe = $(opts.tpl.replace(/\{rnd\}/g, new Date().getTime())) - .attr(opts.attr) - .appendTo(slide.$content); - - if (opts.preload) { - self.showLoading(slide); - - // Unfortunately, it is not always possible to determine if iframe is successfully loaded - // (due to browser security policy) - - $iframe.on("load.fb error.fb", function (e) { - this.isReady = 1; - - slide.$slide.trigger("refresh"); - - self.afterLoad(slide); - }); - - // Recalculate iframe content size - // =============================== - - $slide.on("refresh.fb", function () { - var $content = slide.$content, - frameWidth = opts.css.width, - frameHeight = opts.css.height, - $contents, - $body; - - if ($iframe[0].isReady !== 1) { - return; - } - - try { - $contents = $iframe.contents(); - $body = $contents.find("body"); - } catch (ignore) {} - - // Calculate content dimensions, if it is accessible - if ($body && $body.length && $body.children().length) { - // Avoid scrolling to top (if multiple instances) - $slide.css("overflow", "visible"); - - $content.css({ - width: "100%", - "max-width": "100%", - height: "9999px" - }); - - if (frameWidth === undefined) { - frameWidth = Math.ceil(Math.max($body[0].clientWidth, $body.outerWidth(true))); - } - - $content.css("width", frameWidth ? frameWidth : "").css("max-width", ""); - - if (frameHeight === undefined) { - frameHeight = Math.ceil(Math.max($body[0].clientHeight, $body.outerHeight(true))); - } - - $content.css("height", frameHeight ? frameHeight : ""); - - $slide.css("overflow", "auto"); - } - - $content.removeClass("fancybox-is-hidden"); - }); - } else { - self.afterLoad(slide); - } - - $iframe.attr("src", slide.src); - - // Remove iframe if closing or changing gallery item - $slide.one("onReset", function () { - // This helps IE not to throw errors when closing - try { - $(this) - .find("iframe") - .hide() - .unbind() - .attr("src", "//about:blank"); - } catch (ignore) {} - - $(this) - .off("refresh.fb") - .empty(); - - slide.isLoaded = false; - slide.isRevealed = false; - }); - }, - - // Wrap and append content to the slide - // ====================================== - - setContent: function (slide, content) { - var self = this; - - if (self.isClosing) { - return; - } - - self.hideLoading(slide); - - if (slide.$content) { - $.fancybox.stop(slide.$content); - } - - slide.$slide.empty(); - - // If content is a jQuery object, then it will be moved to the slide. - // The placeholder is created so we will know where to put it back. - if (isQuery(content) && content.parent().length) { - // Make sure content is not already moved to fancyBox - if (content.hasClass("fancybox-content") || content.parent().hasClass("fancybox-content")) { - content.parents(".fancybox-slide").trigger("onReset"); - } - - // Create temporary element marking original place of the content - slide.$placeholder = $("
") - .hide() - .insertAfter(content); - - // Make sure content is visible - content.css("display", "inline-block"); - } else if (!slide.hasError) { - // If content is just a plain text, try to convert it to html - if ($.type(content) === "string") { - content = $("
") - .append($.trim(content)) - .contents(); - } - - // If "filter" option is provided, then filter content - if (slide.opts.filter) { - content = $("
") - .html(content) - .find(slide.opts.filter); - } - } - - slide.$slide.one("onReset", function () { - // Pause all html5 video/audio - $(this) - .find("video,audio") - .trigger("pause"); - - // Put content back - if (slide.$placeholder) { - slide.$placeholder.after(content.removeClass("fancybox-content").hide()).remove(); - - slide.$placeholder = null; - } - - // Remove custom close button - if (slide.$smallBtn) { - slide.$smallBtn.remove(); - - slide.$smallBtn = null; - } - - // Remove content and mark slide as not loaded - if (!slide.hasError) { - $(this).empty(); - - slide.isLoaded = false; - slide.isRevealed = false; - } - }); - - $(content).appendTo(slide.$slide); - - if ($(content).is("video,audio")) { - $(content).addClass("fancybox-video"); - - $(content).wrap("
"); - - slide.contentType = "video"; - - slide.opts.width = slide.opts.width || $(content).attr("width"); - slide.opts.height = slide.opts.height || $(content).attr("height"); - } - - slide.$content = slide.$slide - .children() - .filter("div,form,main,video,audio,article,.fancybox-content") - .first(); - - slide.$content.siblings().hide(); - - // Re-check if there is a valid content - // (in some cases, ajax response can contain various elements or plain text) - if (!slide.$content.length) { - slide.$content = slide.$slide - .wrapInner("
") - .children() - .first(); - } - - slide.$content.addClass("fancybox-content"); - - slide.$slide.addClass("fancybox-slide--" + slide.contentType); - - self.afterLoad(slide); - }, - - // Display error message - // ===================== - - setError: function (slide) { - slide.hasError = true; - - slide.$slide - .trigger("onReset") - .removeClass("fancybox-slide--" + slide.contentType) - .addClass("fancybox-slide--error"); - - slide.contentType = "html"; - - this.setContent(slide, this.translate(slide, slide.opts.errorTpl)); - - if (slide.pos === this.currPos) { - this.isAnimating = false; - } - }, - - // Show loading icon inside the slide - // ================================== - - showLoading: function (slide) { - var self = this; - - slide = slide || self.current; - - if (slide && !slide.$spinner) { - slide.$spinner = $(self.translate(self, self.opts.spinnerTpl)) - .appendTo(slide.$slide) - .hide() - .fadeIn("fast"); - } - }, - - // Remove loading icon from the slide - // ================================== - - hideLoading: function (slide) { - var self = this; - - slide = slide || self.current; - - if (slide && slide.$spinner) { - slide.$spinner.stop().remove(); - - delete slide.$spinner; - } - }, - - // Adjustments after slide content has been loaded - // =============================================== - - afterLoad: function (slide) { - var self = this; - - if (self.isClosing) { - return; - } - - slide.isLoading = false; - slide.isLoaded = true; - - self.trigger("afterLoad", slide); - - self.hideLoading(slide); - - // Add small close button - if (slide.opts.smallBtn && (!slide.$smallBtn || !slide.$smallBtn.length)) { - slide.$smallBtn = $(self.translate(slide, slide.opts.btnTpl.smallBtn)).appendTo(slide.$content); - } - - // Disable right click - if (slide.opts.protect && slide.$content && !slide.hasError) { - slide.$content.on("contextmenu.fb", function (e) { - if (e.button == 2) { - e.preventDefault(); - } - - return true; - }); - - // Add fake element on top of the image - // This makes a bit harder for user to select image - if (slide.type === "image") { - $('
').appendTo(slide.$content); - } - } - - self.adjustCaption(slide); - - self.adjustLayout(slide); - - if (slide.pos === self.currPos) { - self.updateCursor(); - } - - self.revealContent(slide); - }, - - // Prevent caption overlap, - // fix css inconsistency across browsers - // ===================================== - - adjustCaption: function (slide) { - var self = this, - current = slide || self.current, - caption = current.opts.caption, - preventOverlap = current.opts.preventCaptionOverlap, - $caption = self.$refs.caption, - $clone, - captionH = false; - - $caption.toggleClass("fancybox-caption--separate", preventOverlap); - - if (preventOverlap && caption && caption.length) { - if (current.pos !== self.currPos) { - $clone = $caption.clone().appendTo($caption.parent()); - - $clone - .children() - .eq(0) - .empty() - .html(caption); - - captionH = $clone.outerHeight(true); - - $clone.empty().remove(); - } else if (self.$caption) { - captionH = self.$caption.outerHeight(true); - } - - current.$slide.css("padding-bottom", captionH || ""); - } - }, - - // Simple hack to fix inconsistency across browsers, described here (affects Edge, too): - // https://bugzilla.mozilla.org/show_bug.cgi?id=748518 - // ==================================================================================== - - adjustLayout: function (slide) { - var self = this, - current = slide || self.current, - scrollHeight, - marginBottom, - inlinePadding, - actualPadding; - - if (current.isLoaded && current.opts.disableLayoutFix !== true) { - current.$content.css("margin-bottom", ""); - - // If we would always set margin-bottom for the content, - // then it would potentially break vertical align - if (current.$content.outerHeight() > current.$slide.height() + 0.5) { - inlinePadding = current.$slide[0].style["padding-bottom"]; - actualPadding = current.$slide.css("padding-bottom"); - - if (parseFloat(actualPadding) > 0) { - scrollHeight = current.$slide[0].scrollHeight; - - current.$slide.css("padding-bottom", 0); - - if (Math.abs(scrollHeight - current.$slide[0].scrollHeight) < 1) { - marginBottom = actualPadding; - } - - current.$slide.css("padding-bottom", inlinePadding); - } - } - - current.$content.css("margin-bottom", marginBottom); - } - }, - - // Make content visible - // This method is called right after content has been loaded or - // user navigates gallery and transition should start - // ============================================================ - - revealContent: function (slide) { - var self = this, - $slide = slide.$slide, - end = false, - start = false, - isMoved = self.isMoved(slide), - isRevealed = slide.isRevealed, - effect, - effectClassName, - duration, - opacity; - - slide.isRevealed = true; - - effect = slide.opts[self.firstRun ? "animationEffect" : "transitionEffect"]; - duration = slide.opts[self.firstRun ? "animationDuration" : "transitionDuration"]; - - duration = parseInt(slide.forcedDuration === undefined ? duration : slide.forcedDuration, 10); - - if (isMoved || slide.pos !== self.currPos || !duration) { - effect = false; - } - - // Check if can zoom - if (effect === "zoom") { - if (slide.pos === self.currPos && duration && slide.type === "image" && !slide.hasError && (start = self.getThumbPos(slide))) { - end = self.getFitPos(slide); - } else { - effect = "fade"; - } - } - - // Zoom animation - // ============== - if (effect === "zoom") { - self.isAnimating = true; - - end.scaleX = end.width / start.width; - end.scaleY = end.height / start.height; - - // Check if we need to animate opacity - opacity = slide.opts.zoomOpacity; - - if (opacity == "auto") { - opacity = Math.abs(slide.width / slide.height - start.width / start.height) > 0.1; - } - - if (opacity) { - start.opacity = 0.1; - end.opacity = 1; - } - - // Draw image at start position - $.fancybox.setTranslate(slide.$content.removeClass("fancybox-is-hidden"), start); - - forceRedraw(slide.$content); - - // Start animation - $.fancybox.animate(slide.$content, end, duration, function () { - self.isAnimating = false; - - self.complete(); - }); - - return; - } - - self.updateSlide(slide); - - // Simply show content if no effect - // ================================ - if (!effect) { - slide.$content.removeClass("fancybox-is-hidden"); - - if (!isRevealed && isMoved && slide.type === "image" && !slide.hasError) { - slide.$content.hide().fadeIn("fast"); - } - - if (slide.pos === self.currPos) { - self.complete(); - } - - return; - } - - // Prepare for CSS transiton - // ========================= - $.fancybox.stop($slide); - - //effectClassName = "fancybox-animated fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-fx-" + effect; - effectClassName = "fancybox-slide--" + (slide.pos >= self.prevPos ? "next" : "previous") + " fancybox-animated fancybox-fx-" + effect; - - $slide.addClass(effectClassName).removeClass("fancybox-slide--current"); //.addClass(effectClassName); - - slide.$content.removeClass("fancybox-is-hidden"); - - // Force reflow - forceRedraw($slide); - - if (slide.type !== "image") { - slide.$content.hide().show(0); - } - - $.fancybox.animate( - $slide, - "fancybox-slide--current", - duration, - function () { - $slide.removeClass(effectClassName).css({ - transform: "", - opacity: "" - }); - - if (slide.pos === self.currPos) { - self.complete(); - } - }, - true - ); - }, - - // Check if we can and have to zoom from thumbnail - //================================================ - - getThumbPos: function (slide) { - var rez = false, - $thumb = slide.$thumb, - thumbPos, - btw, - brw, - bbw, - blw; - - if (!$thumb || !inViewport($thumb[0])) { - return false; - } - - thumbPos = $.fancybox.getTranslate($thumb); - - btw = parseFloat($thumb.css("border-top-width") || 0); - brw = parseFloat($thumb.css("border-right-width") || 0); - bbw = parseFloat($thumb.css("border-bottom-width") || 0); - blw = parseFloat($thumb.css("border-left-width") || 0); - - rez = { - top: thumbPos.top + btw, - left: thumbPos.left + blw, - width: thumbPos.width - brw - blw, - height: thumbPos.height - btw - bbw, - scaleX: 1, - scaleY: 1 - }; - - return thumbPos.width > 0 && thumbPos.height > 0 ? rez : false; - }, - - // Final adjustments after current gallery item is moved to position - // and it`s content is loaded - // ================================================================== - - complete: function () { - var self = this, - current = self.current, - slides = {}, - $el; - - if (self.isMoved() || !current.isLoaded) { - return; - } - - if (!current.isComplete) { - current.isComplete = true; - - current.$slide.siblings().trigger("onReset"); - - self.preload("inline"); - - // Trigger any CSS transiton inside the slide - forceRedraw(current.$slide); - - current.$slide.addClass("fancybox-slide--complete"); - - // Remove unnecessary slides - $.each(self.slides, function (key, slide) { - if (slide.pos >= self.currPos - 1 && slide.pos <= self.currPos + 1) { - slides[slide.pos] = slide; - } else if (slide) { - $.fancybox.stop(slide.$slide); - - slide.$slide.off().remove(); - } - }); - - self.slides = slides; - } - - self.isAnimating = false; - - self.updateCursor(); - - self.trigger("afterShow"); - - // Autoplay first html5 video/audio - if (!!current.opts.video.autoStart) { - current.$slide - .find("video,audio") - .filter(":visible:first") - .trigger("play") - .one("ended", function () { - if (Document.exitFullscreen) { - Document.exitFullscreen(); - } else if (this.webkitExitFullscreen) { - this.webkitExitFullscreen(); - } - - self.next(); - }); - } - - // Try to focus on the first focusable element - if (current.opts.autoFocus && current.contentType === "html") { - // Look for the first input with autofocus attribute - $el = current.$content.find("input[autofocus]:enabled:visible:first"); - - if ($el.length) { - $el.trigger("focus"); - } else { - self.focus(null, true); - } - } - - // Avoid jumping - current.$slide.scrollTop(0).scrollLeft(0); - }, - - // Preload next and previous slides - // ================================ - - preload: function (type) { - var self = this, - prev, - next; - - if (self.group.length < 2) { - return; - } - - next = self.slides[self.currPos + 1]; - prev = self.slides[self.currPos - 1]; - - if (prev && prev.type === type) { - self.loadSlide(prev); - } - - if (next && next.type === type) { - self.loadSlide(next); - } - }, - - // Try to find and focus on the first focusable element - // ==================================================== - - focus: function (e, firstRun) { - var self = this, - focusableStr = [ - "a[href]", - "area[href]", - 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', - "select:not([disabled]):not([aria-hidden])", - "textarea:not([disabled]):not([aria-hidden])", - "button:not([disabled]):not([aria-hidden])", - "iframe", - "object", - "embed", - "video", - "audio", - "[contenteditable]", - '[tabindex]:not([tabindex^="-"])' - ].join(","), - focusableItems, - focusedItemIndex; - - if (self.isClosing) { - return; - } - - if (e || !self.current || !self.current.isComplete) { - // Focus on any element inside fancybox - focusableItems = self.$refs.container.find("*:visible"); - } else { - // Focus inside current slide - focusableItems = self.current.$slide.find("*:visible" + (firstRun ? ":not(.fancybox-close-small)" : "")); - } - - focusableItems = focusableItems.filter(focusableStr).filter(function () { - return $(this).css("visibility") !== "hidden" && !$(this).hasClass("disabled"); - }); - - if (focusableItems.length) { - focusedItemIndex = focusableItems.index(document.activeElement); - - if (e && e.shiftKey) { - // Back tab - if (focusedItemIndex < 0 || focusedItemIndex == 0) { - e.preventDefault(); - - focusableItems.eq(focusableItems.length - 1).trigger("focus"); - } - } else { - // Outside or Forward tab - if (focusedItemIndex < 0 || focusedItemIndex == focusableItems.length - 1) { - if (e) { - e.preventDefault(); - } - - focusableItems.eq(0).trigger("focus"); - } - } - } else { - self.$refs.container.trigger("focus"); - } - }, - - // Activates current instance - brings container to the front and enables keyboard, - // notifies other instances about deactivating - // ================================================================================= - - activate: function () { - var self = this; - - // Deactivate all instances - $(".fancybox-container").each(function () { - var instance = $(this).data("FancyBox"); - - // Skip self and closing instances - if (instance && instance.id !== self.id && !instance.isClosing) { - instance.trigger("onDeactivate"); - - instance.removeEvents(); - - instance.isVisible = false; - } - }); - - self.isVisible = true; - - if (self.current || self.isIdle) { - self.update(); - - self.updateControls(); - } - - self.trigger("onActivate"); - - self.addEvents(); - }, - - // Start closing procedure - // This will start "zoom-out" animation if needed and clean everything up afterwards - // ================================================================================= - - close: function (e, d) { - var self = this, - current = self.current, - effect, - duration, - $content, - domRect, - opacity, - start, - end; - - var done = function () { - self.cleanUp(e); - }; - - if (self.isClosing) { - return false; - } - - self.isClosing = true; - - // If beforeClose callback prevents closing, make sure content is centered - if (self.trigger("beforeClose", e) === false) { - self.isClosing = false; - - requestAFrame(function () { - self.update(); - }); - - return false; - } - - // Remove all events - // If there are multiple instances, they will be set again by "activate" method - self.removeEvents(); - - $content = current.$content; - effect = current.opts.animationEffect; - duration = $.isNumeric(d) ? d : effect ? current.opts.animationDuration : 0; - - current.$slide.removeClass("fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"); - - if (e !== true) { - $.fancybox.stop(current.$slide); - } else { - effect = false; - } - - // Remove other slides - current.$slide - .siblings() - .trigger("onReset") - .remove(); - - // Trigger animations - if (duration) { - self.$refs.container - .removeClass("fancybox-is-open") - .addClass("fancybox-is-closing") - .css("transition-duration", duration + "ms"); - } - - // Clean up - self.hideLoading(current); - - self.hideControls(true); - - self.updateCursor(); - - // Check if possible to zoom-out - if ( - effect === "zoom" && - !($content && duration && current.type === "image" && !self.isMoved() && !current.hasError && (end = self.getThumbPos(current))) - ) { - effect = "fade"; - } - - if (effect === "zoom") { - $.fancybox.stop($content); - - domRect = $.fancybox.getTranslate($content); - - start = { - top: domRect.top, - left: domRect.left, - scaleX: domRect.width / end.width, - scaleY: domRect.height / end.height, - width: end.width, - height: end.height - }; - - // Check if we need to animate opacity - opacity = current.opts.zoomOpacity; - - if (opacity == "auto") { - opacity = Math.abs(current.width / current.height - end.width / end.height) > 0.1; - } - - if (opacity) { - end.opacity = 0; - } - - $.fancybox.setTranslate($content, start); - - forceRedraw($content); - - $.fancybox.animate($content, end, duration, done); - - return true; - } - - if (effect && duration) { - $.fancybox.animate( - current.$slide.addClass("fancybox-slide--previous").removeClass("fancybox-slide--current"), - "fancybox-animated fancybox-fx-" + effect, - duration, - done - ); - } else { - // If skip animation - if (e === true) { - setTimeout(done, duration); - } else { - done(); - } - } - - return true; - }, - - // Final adjustments after removing the instance - // ============================================= - - cleanUp: function (e) { - var self = this, - instance, - $focus = self.current.opts.$orig, - x, - y; - - self.current.$slide.trigger("onReset"); - - self.$refs.container.empty().remove(); - - self.trigger("afterClose", e); - - // Place back focus - if (!!self.current.opts.backFocus) { - if (!$focus || !$focus.length || !$focus.is(":visible")) { - $focus = self.$trigger; - } - - if ($focus && $focus.length) { - x = window.scrollX; - y = window.scrollY; - - $focus.trigger("focus"); - - $("html, body") - .scrollTop(y) - .scrollLeft(x); - } - } - - self.current = null; - - // Check if there are other instances - instance = $.fancybox.getInstance(); - - if (instance) { - instance.activate(); - } else { - $("body").removeClass("fancybox-active compensate-for-scrollbar"); - - $("#fancybox-style-noscroll").remove(); - } - }, - - // Call callback and trigger an event - // ================================== - - trigger: function (name, slide) { - var args = Array.prototype.slice.call(arguments, 1), - self = this, - obj = slide && slide.opts ? slide : self.current, - rez; - - if (obj) { - args.unshift(obj); - } else { - obj = self; - } - - args.unshift(self); - - if ($.isFunction(obj.opts[name])) { - rez = obj.opts[name].apply(obj, args); - } - - if (rez === false) { - return rez; - } - - if (name === "afterClose" || !self.$refs) { - $D.trigger(name + ".fb", args); - } else { - self.$refs.container.trigger(name + ".fb", args); - } - }, - - // Update infobar values, navigation button states and reveal caption - // ================================================================== - - updateControls: function () { - var self = this, - current = self.current, - index = current.index, - $container = self.$refs.container, - $caption = self.$refs.caption, - caption = current.opts.caption; - - // Recalculate content dimensions - current.$slide.trigger("refresh"); - - // Set caption - if (caption && caption.length) { - self.$caption = $caption; - - $caption - .children() - .eq(0) - .html(caption); - } else { - self.$caption = null; - } - - if (!self.hasHiddenControls && !self.isIdle) { - self.showControls(); - } - - // Update info and navigation elements - $container.find("[data-fancybox-count]").html(self.group.length); - $container.find("[data-fancybox-index]").html(index + 1); - - $container.find("[data-fancybox-prev]").prop("disabled", !current.opts.loop && index <= 0); - $container.find("[data-fancybox-next]").prop("disabled", !current.opts.loop && index >= self.group.length - 1); - - if (current.type === "image") { - // Re-enable buttons; update download button source - $container - .find("[data-fancybox-zoom]") - .show() - .end() - .find("[data-fancybox-download]") - .attr("href", current.opts.image.src || current.src) - .show(); - } else if (current.opts.toolbar) { - $container.find("[data-fancybox-download],[data-fancybox-zoom]").hide(); - } - - // Make sure focus is not on disabled button/element - if ($(document.activeElement).is(":hidden,[disabled]")) { - self.$refs.container.trigger("focus"); - } - }, - - // Hide toolbar and caption - // ======================== - - hideControls: function (andCaption) { - var self = this, - arr = ["infobar", "toolbar", "nav"]; - - if (andCaption || !self.current.opts.preventCaptionOverlap) { - arr.push("caption"); - } - - this.$refs.container.removeClass( - arr - .map(function (i) { - return "fancybox-show-" + i; - }) - .join(" ") - ); - - this.hasHiddenControls = true; - }, - - showControls: function () { - var self = this, - opts = self.current ? self.current.opts : self.opts, - $container = self.$refs.container; - - self.hasHiddenControls = false; - self.idleSecondsCounter = 0; - - $container - .toggleClass("fancybox-show-toolbar", !!(opts.toolbar && opts.buttons)) - .toggleClass("fancybox-show-infobar", !!(opts.infobar && self.group.length > 1)) - .toggleClass("fancybox-show-caption", !!self.$caption) - .toggleClass("fancybox-show-nav", !!(opts.arrows && self.group.length > 1)) - .toggleClass("fancybox-is-modal", !!opts.modal); - }, - - // Toggle toolbar and caption - // ========================== - - toggleControls: function () { - if (this.hasHiddenControls) { - this.showControls(); - } else { - this.hideControls(); - } - } - }); - - $.fancybox = { - version: "3.5.7", - defaults: defaults, - - // Get current instance and execute a command. - // - // Examples of usage: - // - // $instance = $.fancybox.getInstance(); - // $.fancybox.getInstance().jumpTo( 1 ); - // $.fancybox.getInstance( 'jumpTo', 1 ); - // $.fancybox.getInstance( function() { - // console.info( this.currIndex ); - // }); - // ====================================================== - - getInstance: function (command) { - var instance = $('.fancybox-container:not(".fancybox-is-closing"):last').data("FancyBox"), - args = Array.prototype.slice.call(arguments, 1); - - if (instance instanceof FancyBox) { - if ($.type(command) === "string") { - instance[command].apply(instance, args); - } else if ($.type(command) === "function") { - command.apply(instance, args); - } - - return instance; - } - - return false; - }, - - // Create new instance - // =================== - - open: function (items, opts, index) { - return new FancyBox(items, opts, index); - }, - - // Close current or all instances - // ============================== - - close: function (all) { - var instance = this.getInstance(); - - if (instance) { - instance.close(); - - // Try to find and close next instance - if (all === true) { - this.close(all); - } - } - }, - - // Close all instances and unbind all events - // ========================================= - - destroy: function () { - this.close(true); - - $D.add("body").off("click.fb-start", "**"); - }, - - // Try to detect mobile devices - // ============================ - - isMobile: /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent), - - // Detect if 'translate3d' support is available - // ============================================ - - use3d: (function () { - var div = document.createElement("div"); - - return ( - window.getComputedStyle && - window.getComputedStyle(div) && - window.getComputedStyle(div).getPropertyValue("transform") && - !(document.documentMode && document.documentMode < 11) - ); - })(), - - // Helper function to get current visual state of an element - // returns array[ top, left, horizontal-scale, vertical-scale, opacity ] - // ===================================================================== - - getTranslate: function ($el) { - var domRect; - - if (!$el || !$el.length) { - return false; - } - - domRect = $el[0].getBoundingClientRect(); - - return { - top: domRect.top || 0, - left: domRect.left || 0, - width: domRect.width, - height: domRect.height, - opacity: parseFloat($el.css("opacity")) - }; - }, - - // Shortcut for setting "translate3d" properties for element - // Can set be used to set opacity, too - // ======================================================== - - setTranslate: function ($el, props) { - var str = "", - css = {}; - - if (!$el || !props) { - return; - } - - if (props.left !== undefined || props.top !== undefined) { - str = - (props.left === undefined ? $el.position().left : props.left) + - "px, " + - (props.top === undefined ? $el.position().top : props.top) + - "px"; - - if (this.use3d) { - str = "translate3d(" + str + ", 0px)"; - } else { - str = "translate(" + str + ")"; - } - } - - if (props.scaleX !== undefined && props.scaleY !== undefined) { - str += " scale(" + props.scaleX + ", " + props.scaleY + ")"; - } else if (props.scaleX !== undefined) { - str += " scaleX(" + props.scaleX + ")"; - } - - if (str.length) { - css.transform = str; - } - - if (props.opacity !== undefined) { - css.opacity = props.opacity; - } - - if (props.width !== undefined) { - css.width = props.width; - } - - if (props.height !== undefined) { - css.height = props.height; - } - - return $el.css(css); - }, - - // Simple CSS transition handler - // ============================= - - animate: function ($el, to, duration, callback, leaveAnimationName) { - var self = this, - from; - - if ($.isFunction(duration)) { - callback = duration; - duration = null; - } - - self.stop($el); - - from = self.getTranslate($el); - - $el.on(transitionEnd, function (e) { - // Skip events from child elements and z-index change - if (e && e.originalEvent && (!$el.is(e.originalEvent.target) || e.originalEvent.propertyName == "z-index")) { - return; - } - - self.stop($el); - - if ($.isNumeric(duration)) { - $el.css("transition-duration", ""); - } - - if ($.isPlainObject(to)) { - if (to.scaleX !== undefined && to.scaleY !== undefined) { - self.setTranslate($el, { - top: to.top, - left: to.left, - width: from.width * to.scaleX, - height: from.height * to.scaleY, - scaleX: 1, - scaleY: 1 - }); - } - } else if (leaveAnimationName !== true) { - $el.removeClass(to); - } - - if ($.isFunction(callback)) { - callback(e); - } - }); - - if ($.isNumeric(duration)) { - $el.css("transition-duration", duration + "ms"); - } - - // Start animation by changing CSS properties or class name - if ($.isPlainObject(to)) { - if (to.scaleX !== undefined && to.scaleY !== undefined) { - delete to.width; - delete to.height; - - if ($el.parent().hasClass("fancybox-slide--image")) { - $el.parent().addClass("fancybox-is-scaling"); - } - } - - $.fancybox.setTranslate($el, to); - } else { - $el.addClass(to); - } - - // Make sure that `transitionend` callback gets fired - $el.data( - "timer", - setTimeout(function () { - $el.trigger(transitionEnd); - }, duration + 33) - ); - }, - - stop: function ($el, callCallback) { - if ($el && $el.length) { - clearTimeout($el.data("timer")); - - if (callCallback) { - $el.trigger(transitionEnd); - } - - $el.off(transitionEnd).css("transition-duration", ""); - - $el.parent().removeClass("fancybox-is-scaling"); - } - } - }; - - // Default click handler for "fancyboxed" links - // ============================================ - - function _run(e, opts) { - var items = [], - index = 0, - $target, - value, - instance; - - // Avoid opening multiple times - if (e && e.isDefaultPrevented()) { - return; - } - - e.preventDefault(); - - opts = opts || {}; - - if (e && e.data) { - opts = mergeOpts(e.data.options, opts); - } - - $target = opts.$target || $(e.currentTarget).trigger("blur"); - instance = $.fancybox.getInstance(); - - if (instance && instance.$trigger && instance.$trigger.is($target)) { - return; - } - - if (opts.selector) { - items = $(opts.selector); - } else { - // Get all related items and find index for clicked one - value = $target.attr("data-fancybox") || ""; - - if (value) { - items = e.data ? e.data.items : []; - items = items.length ? items.filter('[data-fancybox="' + value + '"]') : $('[data-fancybox="' + value + '"]'); - } else { - items = [$target]; - } - } - - index = $(items).index($target); - - // Sometimes current item can not be found - if (index < 0) { - index = 0; - } - - instance = $.fancybox.open(items, opts, index); - - // Save last active element - instance.$trigger = $target; - } - - // Create a jQuery plugin - // ====================== - - $.fn.fancybox = function (options) { - var selector; - - options = options || {}; - selector = options.selector || false; - - if (selector) { - // Use body element instead of document so it executes first - $("body") - .off("click.fb-start", selector) - .on("click.fb-start", selector, { - options: options - }, _run); - } else { - this.off("click.fb-start").on( - "click.fb-start", { - items: this, - options: options - }, - _run - ); - } - - return this; - }; - - // Self initializing plugin for all elements having `data-fancybox` attribute - // ========================================================================== - - $D.on("click.fb-start", "[data-fancybox]", _run); - - // Enable "trigger elements" - // ========================= - - $D.on("click.fb-start", "[data-fancybox-trigger]", function (e) { - $('[data-fancybox="' + $(this).attr("data-fancybox-trigger") + '"]') - .eq($(this).attr("data-fancybox-index") || 0) - .trigger("click.fb-start", { - $trigger: $(this) - }); - }); - - // Track focus event for better accessibility styling - // ================================================== - (function () { - var buttonStr = ".fancybox-button", - focusStr = "fancybox-focus", - $pressed = null; - - $D.on("mousedown mouseup focus blur", buttonStr, function (e) { - switch (e.type) { - case "mousedown": - $pressed = $(this); - break; - case "mouseup": - $pressed = null; - break; - case "focusin": - $(buttonStr).removeClass(focusStr); - - if (!$(this).is($pressed) && !$(this).is("[disabled]")) { - $(this).addClass(focusStr); - } - break; - case "focusout": - $(buttonStr).removeClass(focusStr); - break; - } - }); - })(); -})(window, document, jQuery); -// ========================================================================== -// -// Media -// Adds additional media type support -// -// ========================================================================== -(function ($) { - "use strict"; - - // Object containing properties for each media type - var defaults = { - youtube: { - matcher: /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i, - params: { - autoplay: 1, - autohide: 1, - fs: 1, - rel: 0, - hd: 1, - wmode: "transparent", - enablejsapi: 1, - html5: 1 - }, - paramPlace: 8, - type: "iframe", - url: "https://www.youtube-nocookie.com/embed/$4", - thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg" - }, - - vimeo: { - matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/, - params: { - autoplay: 1, - hd: 1, - show_title: 1, - show_byline: 1, - show_portrait: 0, - fullscreen: 1 - }, - paramPlace: 3, - type: "iframe", - url: "//player.vimeo.com/video/$2" - }, - - instagram: { - matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i, - type: "image", - url: "//$1/p/$2/media/?size=l" - }, - - // Examples: - // http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16 - // https://www.google.com/maps/@37.7852006,-122.4146355,14.65z - // https://www.google.com/maps/@52.2111123,2.9237542,6.61z?hl=en - // https://www.google.com/maps/place/Googleplex/@37.4220041,-122.0833494,17z/data=!4m5!3m4!1s0x0:0x6c296c66619367e0!8m2!3d37.4219998!4d-122.0840572 - gmap_place: { - matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i, - type: "iframe", - url: function (rez) { - return ( - "//maps.google." + - rez[2] + - "/?ll=" + - (rez[9] ? rez[9] + "&z=" + Math.floor(rez[10]) + (rez[12] ? rez[12].replace(/^\//, "&") : "") : rez[12] + "").replace(/\?/, "&") + - "&output=" + - (rez[12] && rez[12].indexOf("layer=c") > 0 ? "svembed" : "embed") - ); - } - }, - - // Examples: - // https://www.google.com/maps/search/Empire+State+Building/ - // https://www.google.com/maps/search/?api=1&query=centurylink+field - // https://www.google.com/maps/search/?api=1&query=47.5951518,-122.3316393 - gmap_search: { - matcher: /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i, - type: "iframe", - url: function (rez) { - return "//maps.google." + rez[2] + "/maps?q=" + rez[5].replace("query=", "q=").replace("api=1", "") + "&output=embed"; - } - } - }; - - // Formats matching url to final form - var format = function (url, rez, params) { - if (!url) { - return; - } - - params = params || ""; - - if ($.type(params) === "object") { - params = $.param(params, true); - } - - $.each(rez, function (key, value) { - url = url.replace("$" + key, value || ""); - }); - - if (params.length) { - url += (url.indexOf("?") > 0 ? "&" : "?") + params; - } - - return url; - }; - - $(document).on("objectNeedsType.fb", function (e, instance, item) { - var url = item.src || "", - type = false, - media, - thumb, - rez, - params, - urlParams, - paramObj, - provider; - - media = $.extend(true, {}, defaults, item.opts.media); - - // Look for any matching media type - $.each(media, function (providerName, providerOpts) { - rez = url.match(providerOpts.matcher); - - if (!rez) { - return; - } - - type = providerOpts.type; - provider = providerName; - paramObj = {}; - - if (providerOpts.paramPlace && rez[providerOpts.paramPlace]) { - urlParams = rez[providerOpts.paramPlace]; - - if (urlParams[0] == "?") { - urlParams = urlParams.substring(1); - } - - urlParams = urlParams.split("&"); - - for (var m = 0; m < urlParams.length; ++m) { - var p = urlParams[m].split("=", 2); - - if (p.length == 2) { - paramObj[p[0]] = decodeURIComponent(p[1].replace(/\+/g, " ")); - } - } - } - - params = $.extend(true, {}, providerOpts.params, item.opts[providerName], paramObj); - - url = - $.type(providerOpts.url) === "function" ? providerOpts.url.call(this, rez, params, item) : format(providerOpts.url, rez, params); - - thumb = - $.type(providerOpts.thumb) === "function" ? providerOpts.thumb.call(this, rez, params, item) : format(providerOpts.thumb, rez); - - if (providerName === "youtube") { - url = url.replace(/&t=((\d+)m)?(\d+)s/, function (match, p1, m, s) { - return "&start=" + ((m ? parseInt(m, 10) * 60 : 0) + parseInt(s, 10)); - }); - } else if (providerName === "vimeo") { - url = url.replace("&%23", "#"); - } - - return false; - }); - - // If it is found, then change content type and update the url - - if (type) { - if (!item.opts.thumb && !(item.opts.$thumb && item.opts.$thumb.length)) { - item.opts.thumb = thumb; - } - - if (type === "iframe") { - item.opts = $.extend(true, item.opts, { - iframe: { - preload: false, - attr: { - scrolling: "no" - } - } - }); - } - - $.extend(item, { - type: type, - src: url, - origSrc: item.src, - contentSource: provider, - contentType: type === "image" ? "image" : provider == "gmap_place" || provider == "gmap_search" ? "map" : "video" - }); - } else if (url) { - item.type = item.opts.defaultType; - } - }); - - // Load YouTube/Video API on request to detect when video finished playing - var VideoAPILoader = { - youtube: { - src: "https://www.youtube.com/iframe_api", - class: "YT", - loading: false, - loaded: false - }, - - vimeo: { - src: "https://player.vimeo.com/api/player.js", - class: "Vimeo", - loading: false, - loaded: false - }, - - load: function (vendor) { - var _this = this, - script; - - if (this[vendor].loaded) { - setTimeout(function () { - _this.done(vendor); - }); - return; - } - - if (this[vendor].loading) { - return; - } - - this[vendor].loading = true; - - script = document.createElement("script"); - script.type = "text/javascript"; - script.src = this[vendor].src; - - if (vendor === "youtube") { - window.onYouTubeIframeAPIReady = function () { - _this[vendor].loaded = true; - _this.done(vendor); - }; - } else { - script.onload = function () { - _this[vendor].loaded = true; - _this.done(vendor); - }; - } - - document.body.appendChild(script); - }, - done: function (vendor) { - var instance, $el, player; - - if (vendor === "youtube") { - delete window.onYouTubeIframeAPIReady; - } - - instance = $.fancybox.getInstance(); - - if (instance) { - $el = instance.current.$content.find("iframe"); - - if (vendor === "youtube" && YT !== undefined && YT) { - player = new YT.Player($el.attr("id"), { - events: { - onStateChange: function (e) { - if (e.data == 0) { - instance.next(); - } - } - } - }); - } else if (vendor === "vimeo" && Vimeo !== undefined && Vimeo) { - player = new Vimeo.Player($el); - - player.on("ended", function () { - instance.next(); - }); - } - } - } - }; - - $(document).on({ - "afterShow.fb": function (e, instance, current) { - if (instance.group.length > 1 && (current.contentSource === "youtube" || current.contentSource === "vimeo")) { - VideoAPILoader.load(current.contentSource); - } - } - }); -})(jQuery); -// ========================================================================== -// -// Guestures -// Adds touch guestures, handles click and tap events -// -// ========================================================================== -(function (window, document, $) { - "use strict"; - - var requestAFrame = (function () { - return ( - window.requestAnimationFrame || - window.webkitRequestAnimationFrame || - window.mozRequestAnimationFrame || - window.oRequestAnimationFrame || - // if all else fails, use setTimeout - function (callback) { - return window.setTimeout(callback, 1000 / 60); - } - ); - })(); - - var cancelAFrame = (function () { - return ( - window.cancelAnimationFrame || - window.webkitCancelAnimationFrame || - window.mozCancelAnimationFrame || - window.oCancelAnimationFrame || - function (id) { - window.clearTimeout(id); - } - ); - })(); - - var getPointerXY = function (e) { - var result = []; - - e = e.originalEvent || e || window.e; - e = e.touches && e.touches.length ? e.touches : e.changedTouches && e.changedTouches.length ? e.changedTouches : [e]; - - for (var key in e) { - if (e[key].pageX) { - result.push({ - x: e[key].pageX, - y: e[key].pageY - }); - } else if (e[key].clientX) { - result.push({ - x: e[key].clientX, - y: e[key].clientY - }); - } - } - - return result; - }; - - var distance = function (point2, point1, what) { - if (!point1 || !point2) { - return 0; - } - - if (what === "x") { - return point2.x - point1.x; - } else if (what === "y") { - return point2.y - point1.y; - } - - return Math.sqrt(Math.pow(point2.x - point1.x, 2) + Math.pow(point2.y - point1.y, 2)); - }; - - var isClickable = function ($el) { - if ( - $el.is('a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe') || - $.isFunction($el.get(0).onclick) || - $el.data("selectable") - ) { - return true; - } - - // Check for attributes like data-fancybox-next or data-fancybox-close - for (var i = 0, atts = $el[0].attributes, n = atts.length; i < n; i++) { - if (atts[i].nodeName.substr(0, 14) === "data-fancybox-") { - return true; - } - } - - return false; - }; - - var hasScrollbars = function (el) { - var overflowY = window.getComputedStyle(el)["overflow-y"], - overflowX = window.getComputedStyle(el)["overflow-x"], - vertical = (overflowY === "scroll" || overflowY === "auto") && el.scrollHeight > el.clientHeight, - horizontal = (overflowX === "scroll" || overflowX === "auto") && el.scrollWidth > el.clientWidth; - - return vertical || horizontal; - }; - - var isScrollable = function ($el) { - var rez = false; - - while (true) { - rez = hasScrollbars($el.get(0)); - - if (rez) { - break; - } - - $el = $el.parent(); - - if (!$el.length || $el.hasClass("fancybox-stage") || $el.is("body")) { - break; - } - } - - return rez; - }; - - var Guestures = function (instance) { - var self = this; - - self.instance = instance; - - self.$bg = instance.$refs.bg; - self.$stage = instance.$refs.stage; - self.$container = instance.$refs.container; - - self.destroy(); - - self.$container.on("touchstart.fb.touch mousedown.fb.touch", $.proxy(self, "ontouchstart")); - }; - - Guestures.prototype.destroy = function () { - var self = this; - - self.$container.off(".fb.touch"); - - $(document).off(".fb.touch"); - - if (self.requestId) { - cancelAFrame(self.requestId); - self.requestId = null; - } - - if (self.tapped) { - clearTimeout(self.tapped); - self.tapped = null; - } - }; - - Guestures.prototype.ontouchstart = function (e) { - var self = this, - $target = $(e.target), - instance = self.instance, - current = instance.current, - $slide = current.$slide, - $content = current.$content, - isTouchDevice = e.type == "touchstart"; - - // Do not respond to both (touch and mouse) events - if (isTouchDevice) { - self.$container.off("mousedown.fb.touch"); - } - - // Ignore right click - if (e.originalEvent && e.originalEvent.button == 2) { - return; - } - - // Ignore taping on links, buttons, input elements - if (!$slide.length || !$target.length || isClickable($target) || isClickable($target.parent())) { - return; - } - // Ignore clicks on the scrollbar - if (!$target.is("img") && e.originalEvent.clientX > $target[0].clientWidth + $target.offset().left) { - return; - } - - // Ignore clicks while zooming or closing - if (!current || instance.isAnimating || current.$slide.hasClass("fancybox-animated")) { - e.stopPropagation(); - e.preventDefault(); - - return; - } - - self.realPoints = self.startPoints = getPointerXY(e); - - if (!self.startPoints.length) { - return; - } - - // Allow other scripts to catch touch event if "touch" is set to false - if (current.touch) { - e.stopPropagation(); - } - - self.startEvent = e; - - self.canTap = true; - self.$target = $target; - self.$content = $content; - self.opts = current.opts.touch; - - self.isPanning = false; - self.isSwiping = false; - self.isZooming = false; - self.isScrolling = false; - self.canPan = instance.canPan(); - - self.startTime = new Date().getTime(); - self.distanceX = self.distanceY = self.distance = 0; - - self.canvasWidth = Math.round($slide[0].clientWidth); - self.canvasHeight = Math.round($slide[0].clientHeight); - - self.contentLastPos = null; - self.contentStartPos = $.fancybox.getTranslate(self.$content) || { - top: 0, - left: 0 - }; - self.sliderStartPos = $.fancybox.getTranslate($slide); - - // Since position will be absolute, but we need to make it relative to the stage - self.stagePos = $.fancybox.getTranslate(instance.$refs.stage); - - self.sliderStartPos.top -= self.stagePos.top; - self.sliderStartPos.left -= self.stagePos.left; - - self.contentStartPos.top -= self.stagePos.top; - self.contentStartPos.left -= self.stagePos.left; - - $(document) - .off(".fb.touch") - .on(isTouchDevice ? "touchend.fb.touch touchcancel.fb.touch" : "mouseup.fb.touch mouseleave.fb.touch", $.proxy(self, "ontouchend")) - .on(isTouchDevice ? "touchmove.fb.touch" : "mousemove.fb.touch", $.proxy(self, "ontouchmove")); - - if ($.fancybox.isMobile) { - document.addEventListener("scroll", self.onscroll, true); - } - - // Skip if clicked outside the sliding area - if (!(self.opts || self.canPan) || !($target.is(self.$stage) || self.$stage.find($target).length)) { - if ($target.is(".fancybox-image")) { - e.preventDefault(); - } - - if (!($.fancybox.isMobile && $target.parents(".fancybox-caption").length)) { - return; - } - } - - self.isScrollable = isScrollable($target) || isScrollable($target.parent()); - - // Check if element is scrollable and try to prevent default behavior (scrolling) - if (!($.fancybox.isMobile && self.isScrollable)) { - e.preventDefault(); - } - - // One finger or mouse click - swipe or pan an image - if (self.startPoints.length === 1 || current.hasError) { - if (self.canPan) { - $.fancybox.stop(self.$content); - - self.isPanning = true; - } else { - self.isSwiping = true; - } - - self.$container.addClass("fancybox-is-grabbing"); - } - - // Two fingers - zoom image - if (self.startPoints.length === 2 && current.type === "image" && (current.isLoaded || current.$ghost)) { - self.canTap = false; - self.isSwiping = false; - self.isPanning = false; - - self.isZooming = true; - - $.fancybox.stop(self.$content); - - self.centerPointStartX = (self.startPoints[0].x + self.startPoints[1].x) * 0.5 - $(window).scrollLeft(); - self.centerPointStartY = (self.startPoints[0].y + self.startPoints[1].y) * 0.5 - $(window).scrollTop(); - - self.percentageOfImageAtPinchPointX = (self.centerPointStartX - self.contentStartPos.left) / self.contentStartPos.width; - self.percentageOfImageAtPinchPointY = (self.centerPointStartY - self.contentStartPos.top) / self.contentStartPos.height; - - self.startDistanceBetweenFingers = distance(self.startPoints[0], self.startPoints[1]); - } - }; - - Guestures.prototype.onscroll = function (e) { - var self = this; - - self.isScrolling = true; - - document.removeEventListener("scroll", self.onscroll, true); - }; - - Guestures.prototype.ontouchmove = function (e) { - var self = this; - - // Make sure user has not released over iframe or disabled element - if (e.originalEvent.buttons !== undefined && e.originalEvent.buttons === 0) { - self.ontouchend(e); - return; - } - - if (self.isScrolling) { - self.canTap = false; - return; - } - - self.newPoints = getPointerXY(e); - - if (!(self.opts || self.canPan) || !self.newPoints.length || !self.newPoints.length) { - return; - } - - if (!(self.isSwiping && self.isSwiping === true)) { - e.preventDefault(); - } - - self.distanceX = distance(self.newPoints[0], self.startPoints[0], "x"); - self.distanceY = distance(self.newPoints[0], self.startPoints[0], "y"); - - self.distance = distance(self.newPoints[0], self.startPoints[0]); - - // Skip false ontouchmove events (Chrome) - if (self.distance > 0) { - if (self.isSwiping) { - self.onSwipe(e); - } else if (self.isPanning) { - self.onPan(); - } else if (self.isZooming) { - self.onZoom(); - } - } - }; - - Guestures.prototype.onSwipe = function (e) { - var self = this, - instance = self.instance, - swiping = self.isSwiping, - left = self.sliderStartPos.left || 0, - angle; - - // If direction is not yet determined - if (swiping === true) { - // We need at least 10px distance to correctly calculate an angle - if (Math.abs(self.distance) > 10) { - self.canTap = false; - - if (instance.group.length < 2 && self.opts.vertical) { - self.isSwiping = "y"; - } else if (instance.isDragging || self.opts.vertical === false || (self.opts.vertical === "auto" && $(window).width() > 800)) { - self.isSwiping = "x"; - } else { - angle = Math.abs((Math.atan2(self.distanceY, self.distanceX) * 180) / Math.PI); - - self.isSwiping = angle > 45 && angle < 135 ? "y" : "x"; - } - - if (self.isSwiping === "y" && $.fancybox.isMobile && self.isScrollable) { - self.isScrolling = true; - - return; - } - - instance.isDragging = self.isSwiping; - - // Reset points to avoid jumping, because we dropped first swipes to calculate the angle - self.startPoints = self.newPoints; - - $.each(instance.slides, function (index, slide) { - var slidePos, stagePos; - - $.fancybox.stop(slide.$slide); - - slidePos = $.fancybox.getTranslate(slide.$slide); - stagePos = $.fancybox.getTranslate(instance.$refs.stage); - - slide.$slide - .css({ - transform: "", - opacity: "", - "transition-duration": "" - }) - .removeClass("fancybox-animated") - .removeClass(function (index, className) { - return (className.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" "); - }); - - if (slide.pos === instance.current.pos) { - self.sliderStartPos.top = slidePos.top - stagePos.top; - self.sliderStartPos.left = slidePos.left - stagePos.left; - } - - $.fancybox.setTranslate(slide.$slide, { - top: slidePos.top - stagePos.top, - left: slidePos.left - stagePos.left - }); - }); - - // Stop slideshow - if (instance.SlideShow && instance.SlideShow.isActive) { - instance.SlideShow.stop(); - } - } - - return; - } - - // Sticky edges - if (swiping == "x") { - if ( - self.distanceX > 0 && - (self.instance.group.length < 2 || (self.instance.current.index === 0 && !self.instance.current.opts.loop)) - ) { - left = left + Math.pow(self.distanceX, 0.8); - } else if ( - self.distanceX < 0 && - (self.instance.group.length < 2 || - (self.instance.current.index === self.instance.group.length - 1 && !self.instance.current.opts.loop)) - ) { - left = left - Math.pow(-self.distanceX, 0.8); - } else { - left = left + self.distanceX; - } - } - - self.sliderLastPos = { - top: swiping == "x" ? 0 : self.sliderStartPos.top + self.distanceY, - left: left - }; - - if (self.requestId) { - cancelAFrame(self.requestId); - - self.requestId = null; - } - - self.requestId = requestAFrame(function () { - if (self.sliderLastPos) { - $.each(self.instance.slides, function (index, slide) { - var pos = slide.pos - self.instance.currPos; - - $.fancybox.setTranslate(slide.$slide, { - top: self.sliderLastPos.top, - left: self.sliderLastPos.left + pos * self.canvasWidth + pos * slide.opts.gutter - }); - }); - - self.$container.addClass("fancybox-is-sliding"); - } - }); - }; - - Guestures.prototype.onPan = function () { - var self = this; - - // Prevent accidental movement (sometimes, when tapping casually, finger can move a bit) - if (distance(self.newPoints[0], self.realPoints[0]) < ($.fancybox.isMobile ? 10 : 5)) { - self.startPoints = self.newPoints; - return; - } - - self.canTap = false; - - self.contentLastPos = self.limitMovement(); - - if (self.requestId) { - cancelAFrame(self.requestId); - } - - self.requestId = requestAFrame(function () { - $.fancybox.setTranslate(self.$content, self.contentLastPos); - }); - }; - - // Make panning sticky to the edges - Guestures.prototype.limitMovement = function () { - var self = this; - - var canvasWidth = self.canvasWidth; - var canvasHeight = self.canvasHeight; - - var distanceX = self.distanceX; - var distanceY = self.distanceY; - - var contentStartPos = self.contentStartPos; - - var currentOffsetX = contentStartPos.left; - var currentOffsetY = contentStartPos.top; - - var currentWidth = contentStartPos.width; - var currentHeight = contentStartPos.height; - - var minTranslateX, minTranslateY, maxTranslateX, maxTranslateY, newOffsetX, newOffsetY; - - if (currentWidth > canvasWidth) { - newOffsetX = currentOffsetX + distanceX; - } else { - newOffsetX = currentOffsetX; - } - - newOffsetY = currentOffsetY + distanceY; - - // Slow down proportionally to traveled distance - minTranslateX = Math.max(0, canvasWidth * 0.5 - currentWidth * 0.5); - minTranslateY = Math.max(0, canvasHeight * 0.5 - currentHeight * 0.5); - - maxTranslateX = Math.min(canvasWidth - currentWidth, canvasWidth * 0.5 - currentWidth * 0.5); - maxTranslateY = Math.min(canvasHeight - currentHeight, canvasHeight * 0.5 - currentHeight * 0.5); - - // -> - if (distanceX > 0 && newOffsetX > minTranslateX) { - newOffsetX = minTranslateX - 1 + Math.pow(-minTranslateX + currentOffsetX + distanceX, 0.8) || 0; - } - - // <- - if (distanceX < 0 && newOffsetX < maxTranslateX) { - newOffsetX = maxTranslateX + 1 - Math.pow(maxTranslateX - currentOffsetX - distanceX, 0.8) || 0; - } - - // \/ - if (distanceY > 0 && newOffsetY > minTranslateY) { - newOffsetY = minTranslateY - 1 + Math.pow(-minTranslateY + currentOffsetY + distanceY, 0.8) || 0; - } - - // /\ - if (distanceY < 0 && newOffsetY < maxTranslateY) { - newOffsetY = maxTranslateY + 1 - Math.pow(maxTranslateY - currentOffsetY - distanceY, 0.8) || 0; - } - - return { - top: newOffsetY, - left: newOffsetX - }; - }; - - Guestures.prototype.limitPosition = function (newOffsetX, newOffsetY, newWidth, newHeight) { - var self = this; - - var canvasWidth = self.canvasWidth; - var canvasHeight = self.canvasHeight; - - if (newWidth > canvasWidth) { - newOffsetX = newOffsetX > 0 ? 0 : newOffsetX; - newOffsetX = newOffsetX < canvasWidth - newWidth ? canvasWidth - newWidth : newOffsetX; - } else { - // Center horizontally - newOffsetX = Math.max(0, canvasWidth / 2 - newWidth / 2); - } - - if (newHeight > canvasHeight) { - newOffsetY = newOffsetY > 0 ? 0 : newOffsetY; - newOffsetY = newOffsetY < canvasHeight - newHeight ? canvasHeight - newHeight : newOffsetY; - } else { - // Center vertically - newOffsetY = Math.max(0, canvasHeight / 2 - newHeight / 2); - } - - return { - top: newOffsetY, - left: newOffsetX - }; - }; - - Guestures.prototype.onZoom = function () { - var self = this; - - // Calculate current distance between points to get pinch ratio and new width and height - var contentStartPos = self.contentStartPos; - - var currentWidth = contentStartPos.width; - var currentHeight = contentStartPos.height; - - var currentOffsetX = contentStartPos.left; - var currentOffsetY = contentStartPos.top; - - var endDistanceBetweenFingers = distance(self.newPoints[0], self.newPoints[1]); - - var pinchRatio = endDistanceBetweenFingers / self.startDistanceBetweenFingers; - - var newWidth = Math.floor(currentWidth * pinchRatio); - var newHeight = Math.floor(currentHeight * pinchRatio); - - // This is the translation due to pinch-zooming - var translateFromZoomingX = (currentWidth - newWidth) * self.percentageOfImageAtPinchPointX; - var translateFromZoomingY = (currentHeight - newHeight) * self.percentageOfImageAtPinchPointY; - - // Point between the two touches - var centerPointEndX = (self.newPoints[0].x + self.newPoints[1].x) / 2 - $(window).scrollLeft(); - var centerPointEndY = (self.newPoints[0].y + self.newPoints[1].y) / 2 - $(window).scrollTop(); - - // And this is the translation due to translation of the centerpoint - // between the two fingers - var translateFromTranslatingX = centerPointEndX - self.centerPointStartX; - var translateFromTranslatingY = centerPointEndY - self.centerPointStartY; - - // The new offset is the old/current one plus the total translation - var newOffsetX = currentOffsetX + (translateFromZoomingX + translateFromTranslatingX); - var newOffsetY = currentOffsetY + (translateFromZoomingY + translateFromTranslatingY); - - var newPos = { - top: newOffsetY, - left: newOffsetX, - scaleX: pinchRatio, - scaleY: pinchRatio - }; - - self.canTap = false; - - self.newWidth = newWidth; - self.newHeight = newHeight; - - self.contentLastPos = newPos; - - if (self.requestId) { - cancelAFrame(self.requestId); - } - - self.requestId = requestAFrame(function () { - $.fancybox.setTranslate(self.$content, self.contentLastPos); - }); - }; - - Guestures.prototype.ontouchend = function (e) { - var self = this; - - var swiping = self.isSwiping; - var panning = self.isPanning; - var zooming = self.isZooming; - var scrolling = self.isScrolling; - - self.endPoints = getPointerXY(e); - self.dMs = Math.max(new Date().getTime() - self.startTime, 1); - - self.$container.removeClass("fancybox-is-grabbing"); - - $(document).off(".fb.touch"); - - document.removeEventListener("scroll", self.onscroll, true); - - if (self.requestId) { - cancelAFrame(self.requestId); - - self.requestId = null; - } - - self.isSwiping = false; - self.isPanning = false; - self.isZooming = false; - self.isScrolling = false; - - self.instance.isDragging = false; - - if (self.canTap) { - return self.onTap(e); - } - - self.speed = 100; - - // Speed in px/ms - self.velocityX = (self.distanceX / self.dMs) * 0.5; - self.velocityY = (self.distanceY / self.dMs) * 0.5; - - if (panning) { - self.endPanning(); - } else if (zooming) { - self.endZooming(); - } else { - self.endSwiping(swiping, scrolling); - } - - return; - }; - - Guestures.prototype.endSwiping = function (swiping, scrolling) { - var self = this, - ret = false, - len = self.instance.group.length, - distanceX = Math.abs(self.distanceX), - canAdvance = swiping == "x" && len > 1 && ((self.dMs > 130 && distanceX > 10) || distanceX > 50), - speedX = 300; - - self.sliderLastPos = null; - - // Close if swiped vertically / navigate if horizontally - if (swiping == "y" && !scrolling && Math.abs(self.distanceY) > 50) { - // Continue vertical movement - $.fancybox.animate( - self.instance.current.$slide, { - top: self.sliderStartPos.top + self.distanceY + self.velocityY * 150, - opacity: 0 - }, - 200 - ); - ret = self.instance.close(true, 250); - } else if (canAdvance && self.distanceX > 0) { - ret = self.instance.previous(speedX); - } else if (canAdvance && self.distanceX < 0) { - ret = self.instance.next(speedX); - } - - if (ret === false && (swiping == "x" || swiping == "y")) { - self.instance.centerSlide(200); - } - - self.$container.removeClass("fancybox-is-sliding"); - }; - - // Limit panning from edges - // ======================== - Guestures.prototype.endPanning = function () { - var self = this, - newOffsetX, - newOffsetY, - newPos; - - if (!self.contentLastPos) { - return; - } - - if (self.opts.momentum === false || self.dMs > 350) { - newOffsetX = self.contentLastPos.left; - newOffsetY = self.contentLastPos.top; - } else { - // Continue movement - newOffsetX = self.contentLastPos.left + self.velocityX * 500; - newOffsetY = self.contentLastPos.top + self.velocityY * 500; - } - - newPos = self.limitPosition(newOffsetX, newOffsetY, self.contentStartPos.width, self.contentStartPos.height); - - newPos.width = self.contentStartPos.width; - newPos.height = self.contentStartPos.height; - - $.fancybox.animate(self.$content, newPos, 366); - }; - - Guestures.prototype.endZooming = function () { - var self = this; - - var current = self.instance.current; - - var newOffsetX, newOffsetY, newPos, reset; - - var newWidth = self.newWidth; - var newHeight = self.newHeight; - - if (!self.contentLastPos) { - return; - } - - newOffsetX = self.contentLastPos.left; - newOffsetY = self.contentLastPos.top; - - reset = { - top: newOffsetY, - left: newOffsetX, - width: newWidth, - height: newHeight, - scaleX: 1, - scaleY: 1 - }; - - // Reset scalex/scaleY values; this helps for perfomance and does not break animation - $.fancybox.setTranslate(self.$content, reset); - - if (newWidth < self.canvasWidth && newHeight < self.canvasHeight) { - self.instance.scaleToFit(150); - } else if (newWidth > current.width || newHeight > current.height) { - self.instance.scaleToActual(self.centerPointStartX, self.centerPointStartY, 150); - } else { - newPos = self.limitPosition(newOffsetX, newOffsetY, newWidth, newHeight); - - $.fancybox.animate(self.$content, newPos, 150); - } - }; - - Guestures.prototype.onTap = function (e) { - var self = this; - var $target = $(e.target); - - var instance = self.instance; - var current = instance.current; - - var endPoints = (e && getPointerXY(e)) || self.startPoints; - - var tapX = endPoints[0] ? endPoints[0].x - $(window).scrollLeft() - self.stagePos.left : 0; - var tapY = endPoints[0] ? endPoints[0].y - $(window).scrollTop() - self.stagePos.top : 0; - - var where; - - var process = function (prefix) { - var action = current.opts[prefix]; - - if ($.isFunction(action)) { - action = action.apply(instance, [current, e]); - } - - if (!action) { - return; - } - - switch (action) { - case "close": - instance.close(self.startEvent); - - break; - - case "toggleControls": - instance.toggleControls(); - - break; - - case "next": - instance.next(); - - break; - - case "nextOrClose": - if (instance.group.length > 1) { - instance.next(); - } else { - instance.close(self.startEvent); - } - - break; - - case "zoom": - if (current.type == "image" && (current.isLoaded || current.$ghost)) { - if (instance.canPan()) { - instance.scaleToFit(); - } else if (instance.isScaledDown()) { - instance.scaleToActual(tapX, tapY); - } else if (instance.group.length < 2) { - instance.close(self.startEvent); - } - } - - break; - } - }; - - // Ignore right click - if (e.originalEvent && e.originalEvent.button == 2) { - return; - } - - // Skip if clicked on the scrollbar - if (!$target.is("img") && tapX > $target[0].clientWidth + $target.offset().left) { - return; - } - - // Check where is clicked - if ($target.is(".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container")) { - where = "Outside"; - } else if ($target.is(".fancybox-slide")) { - where = "Slide"; - } else if ( - instance.current.$content && - instance.current.$content - .find($target) - .addBack() - .filter($target).length - ) { - where = "Content"; - } else { - return; - } - - // Check if this is a double tap - if (self.tapped) { - // Stop previously created single tap - clearTimeout(self.tapped); - self.tapped = null; - - // Skip if distance between taps is too big - if (Math.abs(tapX - self.tapX) > 50 || Math.abs(tapY - self.tapY) > 50) { - return this; - } - - // OK, now we assume that this is a double-tap - process("dblclick" + where); - } else { - // Single tap will be processed if user has not clicked second time within 300ms - // or there is no need to wait for double-tap - self.tapX = tapX; - self.tapY = tapY; - - if (current.opts["dblclick" + where] && current.opts["dblclick" + where] !== current.opts["click" + where]) { - self.tapped = setTimeout(function () { - self.tapped = null; - - if (!instance.isAnimating) { - process("click" + where); - } - }, 500); - } else { - process("click" + where); - } - } - - return this; - }; - - $(document) - .on("onActivate.fb", function (e, instance) { - if (instance && !instance.Guestures) { - instance.Guestures = new Guestures(instance); - } - }) - .on("beforeClose.fb", function (e, instance) { - if (instance && instance.Guestures) { - instance.Guestures.destroy(); - } - }); -})(window, document, jQuery); -// ========================================================================== -// -// SlideShow -// Enables slideshow functionality -// -// Example of usage: -// $.fancybox.getInstance().SlideShow.start() -// -// ========================================================================== -(function (document, $) { - "use strict"; - - $.extend(true, $.fancybox.defaults, { - btnTpl: { - slideShow: '" - }, - slideShow: { - autoStart: false, - speed: 3000, - progress: true - } - }); - - var SlideShow = function (instance) { - this.instance = instance; - this.init(); - }; - - $.extend(SlideShow.prototype, { - timer: null, - isActive: false, - $button: null, - - init: function () { - var self = this, - instance = self.instance, - opts = instance.group[instance.currIndex].opts.slideShow; - - self.$button = instance.$refs.toolbar.find("[data-fancybox-play]").on("click", function () { - self.toggle(); - }); - - if (instance.group.length < 2 || !opts) { - self.$button.hide(); - } else if (opts.progress) { - self.$progress = $('
').appendTo(instance.$refs.inner); - } - }, - - set: function (force) { - var self = this, - instance = self.instance, - current = instance.current; - - // Check if reached last element - if (current && (force === true || current.opts.loop || instance.currIndex < instance.group.length - 1)) { - if (self.isActive && current.contentType !== "video") { - if (self.$progress) { - $.fancybox.animate(self.$progress.show(), { - scaleX: 1 - }, current.opts.slideShow.speed); - } - - self.timer = setTimeout(function () { - if (!instance.current.opts.loop && instance.current.index == instance.group.length - 1) { - instance.jumpTo(0); - } else { - instance.next(); - } - }, current.opts.slideShow.speed); - } - } else { - self.stop(); - instance.idleSecondsCounter = 0; - instance.showControls(); - } - }, - - clear: function () { - var self = this; - - clearTimeout(self.timer); - - self.timer = null; - - if (self.$progress) { - self.$progress.removeAttr("style").hide(); - } - }, - - start: function () { - var self = this, - current = self.instance.current; - - if (current) { - self.$button - .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_STOP) - .removeClass("fancybox-button--play") - .addClass("fancybox-button--pause"); - - self.isActive = true; - - if (current.isComplete) { - self.set(true); - } - - self.instance.trigger("onSlideShowChange", true); - } - }, - - stop: function () { - var self = this, - current = self.instance.current; - - self.clear(); - - self.$button - .attr("title", (current.opts.i18n[current.opts.lang] || current.opts.i18n.en).PLAY_START) - .removeClass("fancybox-button--pause") - .addClass("fancybox-button--play"); - - self.isActive = false; - - self.instance.trigger("onSlideShowChange", false); - - if (self.$progress) { - self.$progress.removeAttr("style").hide(); - } - }, - - toggle: function () { - var self = this; - - if (self.isActive) { - self.stop(); - } else { - self.start(); - } - } - }); - - $(document).on({ - "onInit.fb": function (e, instance) { - if (instance && !instance.SlideShow) { - instance.SlideShow = new SlideShow(instance); - } - }, - - "beforeShow.fb": function (e, instance, current, firstRun) { - var SlideShow = instance && instance.SlideShow; - - if (firstRun) { - if (SlideShow && current.opts.slideShow.autoStart) { - SlideShow.start(); - } - } else if (SlideShow && SlideShow.isActive) { - SlideShow.clear(); - } - }, - - "afterShow.fb": function (e, instance, current) { - var SlideShow = instance && instance.SlideShow; - - if (SlideShow && SlideShow.isActive) { - SlideShow.set(); - } - }, - - "afterKeydown.fb": function (e, instance, current, keypress, keycode) { - var SlideShow = instance && instance.SlideShow; - - // "P" or Spacebar - if (SlideShow && current.opts.slideShow && (keycode === 80 || keycode === 32) && !$(document.activeElement).is("button,a,input")) { - keypress.preventDefault(); - - SlideShow.toggle(); - } - }, - - "beforeClose.fb onDeactivate.fb": function (e, instance) { - var SlideShow = instance && instance.SlideShow; - - if (SlideShow) { - SlideShow.stop(); - } - } - }); - - // Page Visibility API to pause slideshow when window is not active - $(document).on("visibilitychange", function () { - var instance = $.fancybox.getInstance(), - SlideShow = instance && instance.SlideShow; - - if (SlideShow && SlideShow.isActive) { - if (document.hidden) { - SlideShow.clear(); - } else { - SlideShow.set(); - } - } - }); -})(document, jQuery); -// ========================================================================== -// -// FullScreen -// Adds fullscreen functionality -// -// ========================================================================== -(function (document, $) { - "use strict"; - - // Collection of methods supported by user browser - var fn = (function () { - var fnMap = [ - ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], - // new WebKit - [ - "webkitRequestFullscreen", - "webkitExitFullscreen", - "webkitFullscreenElement", - "webkitFullscreenEnabled", - "webkitfullscreenchange", - "webkitfullscreenerror" - ], - // old WebKit (Safari 5.1) - [ - "webkitRequestFullScreen", - "webkitCancelFullScreen", - "webkitCurrentFullScreenElement", - "webkitCancelFullScreen", - "webkitfullscreenchange", - "webkitfullscreenerror" - ], - [ - "mozRequestFullScreen", - "mozCancelFullScreen", - "mozFullScreenElement", - "mozFullScreenEnabled", - "mozfullscreenchange", - "mozfullscreenerror" - ], - ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"] - ]; - - var ret = {}; - - for (var i = 0; i < fnMap.length; i++) { - var val = fnMap[i]; - - if (val && val[1] in document) { - for (var j = 0; j < val.length; j++) { - ret[fnMap[0][j]] = val[j]; - } - - return ret; - } - } - - return false; - })(); - - if (fn) { - var FullScreen = { - request: function (elem) { - elem = elem || document.documentElement; - - elem[fn.requestFullscreen](elem.ALLOW_KEYBOARD_INPUT); - }, - exit: function () { - document[fn.exitFullscreen](); - }, - toggle: function (elem) { - elem = elem || document.documentElement; - - if (this.isFullscreen()) { - this.exit(); - } else { - this.request(elem); - } - }, - isFullscreen: function () { - return Boolean(document[fn.fullscreenElement]); - }, - enabled: function () { - return Boolean(document[fn.fullscreenEnabled]); - } - }; - - $.extend(true, $.fancybox.defaults, { - btnTpl: { - fullScreen: '" - }, - fullScreen: { - autoStart: false - } - }); - - $(document).on(fn.fullscreenchange, function () { - var isFullscreen = FullScreen.isFullscreen(), - instance = $.fancybox.getInstance(); - - if (instance) { - // If image is zooming, then force to stop and reposition properly - if (instance.current && instance.current.type === "image" && instance.isAnimating) { - instance.isAnimating = false; - - instance.update(true, true, 0); - - if (!instance.isComplete) { - instance.complete(); - } - } - - instance.trigger("onFullscreenChange", isFullscreen); - - instance.$refs.container.toggleClass("fancybox-is-fullscreen", isFullscreen); - - instance.$refs.toolbar - .find("[data-fancybox-fullscreen]") - .toggleClass("fancybox-button--fsenter", !isFullscreen) - .toggleClass("fancybox-button--fsexit", isFullscreen); - } - }); - } - - $(document).on({ - "onInit.fb": function (e, instance) { - var $container; - - if (!fn) { - instance.$refs.toolbar.find("[data-fancybox-fullscreen]").remove(); - - return; - } - - if (instance && instance.group[instance.currIndex].opts.fullScreen) { - $container = instance.$refs.container; - - $container.on("click.fb-fullscreen", "[data-fancybox-fullscreen]", function (e) { - e.stopPropagation(); - e.preventDefault(); - - FullScreen.toggle(); - }); - - if (instance.opts.fullScreen && instance.opts.fullScreen.autoStart === true) { - FullScreen.request(); - } - - // Expose API - instance.FullScreen = FullScreen; - } else if (instance) { - instance.$refs.toolbar.find("[data-fancybox-fullscreen]").hide(); - } - }, - - "afterKeydown.fb": function (e, instance, current, keypress, keycode) { - // "F" - if (instance && instance.FullScreen && keycode === 70) { - keypress.preventDefault(); - - instance.FullScreen.toggle(); - } - }, - - "beforeClose.fb": function (e, instance) { - if (instance && instance.FullScreen && instance.$refs.container.hasClass("fancybox-is-fullscreen")) { - FullScreen.exit(); - } - } - }); -})(document, jQuery); -// ========================================================================== -// -// Thumbs -// Displays thumbnails in a grid -// -// ========================================================================== -(function (document, $) { - "use strict"; - - var CLASS = "fancybox-thumbs", - CLASS_ACTIVE = CLASS + "-active"; - - // Make sure there are default values - $.fancybox.defaults = $.extend( - true, { - btnTpl: { - thumbs: '" - }, - thumbs: { - autoStart: false, // Display thumbnails on opening - hideOnClose: true, // Hide thumbnail grid when closing animation starts - parentEl: ".fancybox-container", // Container is injected into this element - axis: "y" // Vertical (y) or horizontal (x) scrolling - } - }, - $.fancybox.defaults - ); - - var FancyThumbs = function (instance) { - this.init(instance); - }; - - $.extend(FancyThumbs.prototype, { - $button: null, - $grid: null, - $list: null, - isVisible: false, - isActive: false, - - init: function (instance) { - var self = this, - group = instance.group, - enabled = 0; - - self.instance = instance; - self.opts = group[instance.currIndex].opts.thumbs; - - instance.Thumbs = self; - - self.$button = instance.$refs.toolbar.find("[data-fancybox-thumbs]"); - - // Enable thumbs if at least two group items have thumbnails - for (var i = 0, len = group.length; i < len; i++) { - if (group[i].thumb) { - enabled++; - } - - if (enabled > 1) { - break; - } - } - - if (enabled > 1 && !!self.opts) { - self.$button.removeAttr("style").on("click", function () { - self.toggle(); - }); - - self.isActive = true; - } else { - self.$button.hide(); - } - }, - - create: function () { - var self = this, - instance = self.instance, - parentEl = self.opts.parentEl, - list = [], - src; - - if (!self.$grid) { - // Create main element - self.$grid = $('
').appendTo( - instance.$refs.container - .find(parentEl) - .addBack() - .filter(parentEl) - ); - - // Add "click" event that performs gallery navigation - self.$grid.on("click", "a", function () { - instance.jumpTo($(this).attr("data-index")); - }); - } - - // Build the list - if (!self.$list) { - self.$list = $('
').appendTo(self.$grid); - } - - $.each(instance.group, function (i, item) { - src = item.thumb; - - if (!src && item.type === "image") { - src = item.src; - } - - list.push( - '" - ); - }); - - self.$list[0].innerHTML = list.join(""); - - if (self.opts.axis === "x") { - // Set fixed width for list element to enable horizontal scrolling - self.$list.width( - parseInt(self.$grid.css("padding-right"), 10) + - instance.group.length * - self.$list - .children() - .eq(0) - .outerWidth(true) - ); - } - }, - - focus: function (duration) { - var self = this, - $list = self.$list, - $grid = self.$grid, - thumb, - thumbPos; - - if (!self.instance.current) { - return; - } - - thumb = $list - .children() - .removeClass(CLASS_ACTIVE) - .filter('[data-index="' + self.instance.current.index + '"]') - .addClass(CLASS_ACTIVE); - - thumbPos = thumb.position(); - - // Check if need to scroll to make current thumb visible - if (self.opts.axis === "y" && (thumbPos.top < 0 || thumbPos.top > $list.height() - thumb.outerHeight())) { - $list.stop().animate({ - scrollTop: $list.scrollTop() + thumbPos.top - }, - duration - ); - } else if ( - self.opts.axis === "x" && - (thumbPos.left < $grid.scrollLeft() || thumbPos.left > $grid.scrollLeft() + ($grid.width() - thumb.outerWidth())) - ) { - $list - .parent() - .stop() - .animate({ - scrollLeft: thumbPos.left - }, - duration - ); - } - }, - - update: function () { - var that = this; - that.instance.$refs.container.toggleClass("fancybox-show-thumbs", this.isVisible); - - if (that.isVisible) { - if (!that.$grid) { - that.create(); - } - - that.instance.trigger("onThumbsShow"); - - that.focus(0); - } else if (that.$grid) { - that.instance.trigger("onThumbsHide"); - } - - // Update content position - that.instance.update(); - }, - - hide: function () { - this.isVisible = false; - this.update(); - }, - - show: function () { - this.isVisible = true; - this.update(); - }, - - toggle: function () { - this.isVisible = !this.isVisible; - this.update(); - } - }); - - $(document).on({ - "onInit.fb": function (e, instance) { - var Thumbs; - - if (instance && !instance.Thumbs) { - Thumbs = new FancyThumbs(instance); - - if (Thumbs.isActive && Thumbs.opts.autoStart === true) { - Thumbs.show(); - } - } - }, - - "beforeShow.fb": function (e, instance, item, firstRun) { - var Thumbs = instance && instance.Thumbs; - - if (Thumbs && Thumbs.isVisible) { - Thumbs.focus(firstRun ? 0 : 250); - } - }, - - "afterKeydown.fb": function (e, instance, current, keypress, keycode) { - var Thumbs = instance && instance.Thumbs; - - // "G" - if (Thumbs && Thumbs.isActive && keycode === 71) { - keypress.preventDefault(); - - Thumbs.toggle(); - } - }, - - "beforeClose.fb": function (e, instance) { - var Thumbs = instance && instance.Thumbs; - - if (Thumbs && Thumbs.isVisible && Thumbs.opts.hideOnClose !== false) { - Thumbs.$grid.hide(); - } - } - }); -})(document, jQuery); -//// ========================================================================== -// -// Share -// Displays simple form for sharing current url -// -// ========================================================================== -(function (document, $) { - "use strict"; - - $.extend(true, $.fancybox.defaults, { - btnTpl: { - share: '" - }, - share: { - url: function (instance, item) { - return ( - (!instance.currentHash && !(item.type === "inline" || item.type === "html") ? item.origSrc || item.src : false) || window.location - ); - }, - tpl: '
' + - "

{{SHARE}}

" + - "

" + - '' + - '' + - "Facebook" + - "" + - '' + - '' + - "Twitter" + - "" + - '' + - '' + - "Pinterest" + - "" + - "

" + - '

' + - "
" - } - }); - - function escapeHtml(string) { - var entityMap = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "/": "/", - "`": "`", - "=": "=" - }; - - return String(string).replace(/[&<>"'`=\/]/g, function (s) { - return entityMap[s]; - }); - } - - $(document).on("click", "[data-fancybox-share]", function () { - var instance = $.fancybox.getInstance(), - current = instance.current || null, - url, - tpl; - - if (!current) { - return; - } - - if ($.type(current.opts.share.url) === "function") { - url = current.opts.share.url.apply(current, [instance, current]); - } - - tpl = current.opts.share.tpl - .replace(/\{\{media\}\}/g, current.type === "image" ? encodeURIComponent(current.src) : "") - .replace(/\{\{url\}\}/g, encodeURIComponent(url)) - .replace(/\{\{url_raw\}\}/g, escapeHtml(url)) - .replace(/\{\{descr\}\}/g, instance.$caption ? encodeURIComponent(instance.$caption.text()) : ""); - - $.fancybox.open({ - src: instance.translate(instance, tpl), - type: "html", - opts: { - touch: false, - animationEffect: false, - afterLoad: function (shareInstance, shareCurrent) { - // Close self if parent instance is closing - instance.$refs.container.one("beforeClose.fb", function () { - shareInstance.close(null, 0); - }); - - // Opening links in a popup window - shareCurrent.$content.find(".fancybox-share__button").click(function () { - window.open(this.href, "Share", "width=550, height=450"); - return false; - }); - }, - mobile: { - autoFocus: false - } - } - }); - }); -})(document, jQuery); -// ========================================================================== -// -// Hash -// Enables linking to each modal -// -// ========================================================================== -(function (window, document, $) { - "use strict"; - - // Simple $.escapeSelector polyfill (for jQuery prior v3) - if (!$.escapeSelector) { - $.escapeSelector = function (sel) { - var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; - var fcssescape = function (ch, asCodePoint) { - if (asCodePoint) { - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if (ch === "\0") { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }; - - return (sel + "").replace(rcssescape, fcssescape); - }; - } - - // Get info about gallery name and current index from url - function parseUrl() { - var hash = window.location.hash.substr(1), - rez = hash.split("-"), - index = rez.length > 1 && /^\+?\d+$/.test(rez[rez.length - 1]) ? parseInt(rez.pop(-1), 10) || 1 : 1, - gallery = rez.join("-"); - - return { - hash: hash, - /* Index is starting from 1 */ - index: index < 1 ? 1 : index, - gallery: gallery - }; - } - - // Trigger click evnt on links to open new fancyBox instance - function triggerFromUrl(url) { - if (url.gallery !== "") { - // If we can find element matching 'data-fancybox' atribute, - // then triggering click event should start fancyBox - $("[data-fancybox='" + $.escapeSelector(url.gallery) + "']") - .eq(url.index - 1) - .focus() - .trigger("click.fb-start"); - } - } - - // Get gallery name from current instance - function getGalleryID(instance) { - var opts, ret; - - if (!instance) { - return false; - } - - opts = instance.current ? instance.current.opts : instance.opts; - ret = opts.hash || (opts.$orig ? opts.$orig.data("fancybox") || opts.$orig.data("fancybox-trigger") : ""); - - return ret === "" ? false : ret; - } - - // Start when DOM becomes ready - $(function () { - // Check if user has disabled this module - if ($.fancybox.defaults.hash === false) { - return; - } - - // Update hash when opening/closing fancyBox - $(document).on({ - "onInit.fb": function (e, instance) { - var url, gallery; - - if (instance.group[instance.currIndex].opts.hash === false) { - return; - } - - url = parseUrl(); - gallery = getGalleryID(instance); - - // Make sure gallery start index matches index from hash - if (gallery && url.gallery && gallery == url.gallery) { - instance.currIndex = url.index - 1; - } - }, - - "beforeShow.fb": function (e, instance, current, firstRun) { - var gallery; - - if (!current || current.opts.hash === false) { - return; - } - - // Check if need to update window hash - gallery = getGalleryID(instance); - - if (!gallery) { - return; - } - - // Variable containing last hash value set by fancyBox - // It will be used to determine if fancyBox needs to close after hash change is detected - instance.currentHash = gallery + (instance.group.length > 1 ? "-" + (current.index + 1) : ""); - - // If current hash is the same (this instance most likely is opened by hashchange), then do nothing - if (window.location.hash === "#" + instance.currentHash) { - return; - } - - if (firstRun && !instance.origHash) { - instance.origHash = window.location.hash; - } - - if (instance.hashTimer) { - clearTimeout(instance.hashTimer); - } - - // Update hash - instance.hashTimer = setTimeout(function () { - if ("replaceState" in window.history) { - window.history[firstRun ? "pushState" : "replaceState"]({}, - document.title, - window.location.pathname + window.location.search + "#" + instance.currentHash - ); - - if (firstRun) { - instance.hasCreatedHistory = true; - } - } else { - window.location.hash = instance.currentHash; - } - - instance.hashTimer = null; - }, 300); - }, - - "beforeClose.fb": function (e, instance, current) { - if (!current || current.opts.hash === false) { - return; - } - - clearTimeout(instance.hashTimer); - - // Goto previous history entry - if (instance.currentHash && instance.hasCreatedHistory) { - window.history.back(); - } else if (instance.currentHash) { - if ("replaceState" in window.history) { - window.history.replaceState({}, document.title, window.location.pathname + window.location.search + (instance.origHash || "")); - } else { - window.location.hash = instance.origHash; - } - } - - instance.currentHash = null; - } - }); - - // Check if need to start/close after url has changed - $(window).on("hashchange.fb", function () { - var url = parseUrl(), - fb = null; - - // Find last fancyBox instance that has "hash" - $.each( - $(".fancybox-container") - .get() - .reverse(), - function (index, value) { - var tmp = $(value).data("FancyBox"); - - if (tmp && tmp.currentHash) { - fb = tmp; - return false; - } - } - ); - - if (fb) { - // Now, compare hash values - if (fb.currentHash !== url.gallery + "-" + url.index && !(url.index === 1 && fb.currentHash == url.gallery)) { - fb.currentHash = null; - - fb.close(); - } - } else if (url.gallery !== "") { - triggerFromUrl(url); - } - }); - - // Check current hash and trigger click event on matching element to start fancyBox, if needed - setTimeout(function () { - if (!$.fancybox.getInstance()) { - triggerFromUrl(parseUrl()); - } - }, 50); - }); -})(window, document, jQuery); -// ========================================================================== -// -// Wheel -// Basic mouse weheel support for gallery navigation -// -// ========================================================================== -(function (document, $) { - "use strict"; - - var prevTime = new Date().getTime(); - - $(document).on({ - "onInit.fb": function (e, instance, current) { - instance.$refs.stage.on("mousewheel DOMMouseScroll wheel MozMousePixelScroll", function (e) { - var current = instance.current, - currTime = new Date().getTime(); - - if (instance.group.length < 2 || current.opts.wheel === false || (current.opts.wheel === "auto" && current.type !== "image")) { - return; - } - - e.preventDefault(); - e.stopPropagation(); - - if (current.$slide.hasClass("fancybox-animated")) { - return; - } - - e = e.originalEvent || e; - - if (currTime - prevTime < 250) { - return; - } - - prevTime = currTime; - - instance[(-e.deltaY || -e.deltaX || e.wheelDelta || -e.detail) < 0 ? "next" : "previous"](); - }); - } - }); -})(document, jQuery); - -/***/ }), - -/***/ "./node_modules/axios/index.js": -/*!*************************************!*\ - !*** ./node_modules/axios/index.js ***! - \*************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports = __webpack_require__(/*! ./lib/axios */ "./node_modules/axios/lib/axios.js"); - -/***/ }), - -/***/ "./node_modules/axios/lib/adapters/xhr.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/adapters/xhr.js ***! - \************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -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 cookies = __webpack_require__(/*! ./../helpers/cookies */ "./node_modules/axios/lib/helpers/cookies.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"); - -module.exports = function xhrAdapter(config) { - return new Promise(function dispatchXhrRequest(resolve, reject) { - var requestData = config.data; - var requestHeaders = config.headers; - var responseType = config.responseType; - - if (utils.isFormData(requestData)) { - delete requestHeaders['Content-Type']; // Let the browser set it - } - - var request = new XMLHttpRequest(); - - // HTTP basic authentication - if (config.auth) { - var username = config.auth.username || ''; - var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; - 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); - - // Set the request timeout in MS - request.timeout = config.timeout; - - function onloadend() { - if (!request) { - return; - } - // Prepare the response - var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; - var responseData = !responseType || responseType === 'text' || responseType === 'json' ? - request.responseText : request.response; - var response = { - data: responseData, - status: request.status, - statusText: request.statusText, - headers: responseHeaders, - config: config, - request: request - }; - - settle(resolve, reject, response); - - // Clean up request - request = null; - } - - if ('onloadend' in request) { - // Use onloadend if available - request.onloadend = onloadend; - } else { - // Listen for ready state to emulate onloadend - request.onreadystatechange = function handleLoad() { - if (!request || request.readyState !== 4) { - return; - } - - // The request errored out and we didn't get a response, this will be - // handled by onerror instead - // With one exception: request that using file: protocol, most browsers - // will return status as 0 even though it's a successful request - if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { - return; - } - // readystate handler is calling before onerror or ontimeout handlers, - // so we should call onloadend on the next 'tick' - setTimeout(onloadend); - }; - } - - // Handle browser request cancellation (as opposed to a manual cancellation) - request.onabort = function handleAbort() { - if (!request) { - return; - } - - reject(createError('Request aborted', config, 'ECONNABORTED', request)); - - // Clean up request - request = null; - }; - - // Handle low level network errors - request.onerror = function handleError() { - // Real errors are hidden from us by the browser - // onerror should only fire if it's a network error - reject(createError('Network Error', config, null, request)); - - // Clean up request - request = null; - }; - - // Handle timeout - request.ontimeout = function handleTimeout() { - var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; - if (config.timeoutErrorMessage) { - timeoutErrorMessage = config.timeoutErrorMessage; - } - reject(createError( - timeoutErrorMessage, - config, - config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', - request)); - - // Clean up request - request = null; - }; - - // Add xsrf header - // This is only done if running in a standard browser environment. - // Specifically not if we're in a web worker, or react-native. - if (utils.isStandardBrowserEnv()) { - // Add xsrf header - var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? - cookies.read(config.xsrfCookieName) : - undefined; - - if (xsrfValue) { - requestHeaders[config.xsrfHeaderName] = xsrfValue; - } - } - - // Add headers to the request - if ('setRequestHeader' in request) { - utils.forEach(requestHeaders, function setRequestHeader(val, key) { - if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { - // Remove Content-Type if data is undefined - delete requestHeaders[key]; - } else { - // Otherwise add header to the request - request.setRequestHeader(key, val); - } - }); - } - - // Add withCredentials to request if needed - if (!utils.isUndefined(config.withCredentials)) { - request.withCredentials = !!config.withCredentials; - } - - // Add responseType to request if needed - if (responseType && responseType !== 'json') { - request.responseType = config.responseType; - } - - // Handle progress if needed - if (typeof config.onDownloadProgress === 'function') { - request.addEventListener('progress', config.onDownloadProgress); - } - - // Not all browsers support upload events - if (typeof config.onUploadProgress === 'function' && request.upload) { - request.upload.addEventListener('progress', config.onUploadProgress); - } - - if (config.cancelToken) { - // Handle cancellation - config.cancelToken.promise.then(function onCanceled(cancel) { - if (!request) { - return; - } - - request.abort(); - reject(cancel); - // Clean up request - request = null; - }); - } - - if (!requestData) { - requestData = null; - } - - // Send the request - request.send(requestData); - }); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/axios.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/axios.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js"); -var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); -var Axios = __webpack_require__(/*! ./core/Axios */ "./node_modules/axios/lib/core/Axios.js"); -var mergeConfig = __webpack_require__(/*! ./core/mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js"); -var defaults = __webpack_require__(/*! ./defaults */ "./node_modules/axios/lib/defaults.js"); - -/** - * Create an instance of Axios - * - * @param {Object} defaultConfig The default config for the instance - * @return {Axios} A new instance of Axios - */ -function createInstance(defaultConfig) { - var context = new Axios(defaultConfig); - var instance = bind(Axios.prototype.request, context); - - // Copy axios.prototype to instance - utils.extend(instance, Axios.prototype, context); - - // Copy context to instance - utils.extend(instance, context); - - return instance; -} - -// Create the default instance to be exported -var axios = createInstance(defaults); - -// Expose Axios class to allow class inheritance -axios.Axios = Axios; - -// Factory for creating new instances -axios.create = function create(instanceConfig) { - return createInstance(mergeConfig(axios.defaults, instanceConfig)); -}; - -// Expose Cancel & CancelToken -axios.Cancel = __webpack_require__(/*! ./cancel/Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); -axios.CancelToken = __webpack_require__(/*! ./cancel/CancelToken */ "./node_modules/axios/lib/cancel/CancelToken.js"); -axios.isCancel = __webpack_require__(/*! ./cancel/isCancel */ "./node_modules/axios/lib/cancel/isCancel.js"); - -// Expose all/spread -axios.all = function all(promises) { - return Promise.all(promises); -}; -axios.spread = __webpack_require__(/*! ./helpers/spread */ "./node_modules/axios/lib/helpers/spread.js"); - -// Expose isAxiosError -axios.isAxiosError = __webpack_require__(/*! ./helpers/isAxiosError */ "./node_modules/axios/lib/helpers/isAxiosError.js"); - -module.exports = axios; - -// Allow use of default import syntax in TypeScript -module.exports["default"] = axios; - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/Cancel.js": -/*!*************************************************!*\ - !*** ./node_modules/axios/lib/cancel/Cancel.js ***! - \*************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * A `Cancel` is an object that is thrown when an operation is canceled. - * - * @class - * @param {string=} message The message. - */ -function Cancel(message) { - this.message = message; -} - -Cancel.prototype.toString = function toString() { - return 'Cancel' + (this.message ? ': ' + this.message : ''); -}; - -Cancel.prototype.__CANCEL__ = true; - -module.exports = Cancel; - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/CancelToken.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/cancel/CancelToken.js ***! - \******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var Cancel = __webpack_require__(/*! ./Cancel */ "./node_modules/axios/lib/cancel/Cancel.js"); - -/** - * A `CancelToken` is an object that can be used to request cancellation of an operation. - * - * @class - * @param {Function} executor The executor function. - */ -function CancelToken(executor) { - if (typeof executor !== 'function') { - throw new TypeError('executor must be a function.'); - } - - var resolvePromise; - this.promise = new Promise(function promiseExecutor(resolve) { - resolvePromise = resolve; - }); - - var token = this; - executor(function cancel(message) { - if (token.reason) { - // Cancellation has already been requested - return; - } - - token.reason = new Cancel(message); - resolvePromise(token.reason); - }); -} - -/** - * Throws a `Cancel` if cancellation has been requested. - */ -CancelToken.prototype.throwIfRequested = function throwIfRequested() { - if (this.reason) { - throw this.reason; - } -}; - -/** - * Returns an object that contains a new `CancelToken` and a function that, when called, - * cancels the `CancelToken`. - */ -CancelToken.source = function source() { - var cancel; - var token = new CancelToken(function executor(c) { - cancel = c; - }); - return { - token: token, - cancel: cancel - }; -}; - -module.exports = CancelToken; - - -/***/ }), - -/***/ "./node_modules/axios/lib/cancel/isCancel.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/cancel/isCancel.js ***! - \***************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = function isCancel(value) { - return !!(value && value.__CANCEL__); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/Axios.js": -/*!**********************************************!*\ - !*** ./node_modules/axios/lib/core/Axios.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); -var buildURL = __webpack_require__(/*! ../helpers/buildURL */ "./node_modules/axios/lib/helpers/buildURL.js"); -var InterceptorManager = __webpack_require__(/*! ./InterceptorManager */ "./node_modules/axios/lib/core/InterceptorManager.js"); -var dispatchRequest = __webpack_require__(/*! ./dispatchRequest */ "./node_modules/axios/lib/core/dispatchRequest.js"); -var mergeConfig = __webpack_require__(/*! ./mergeConfig */ "./node_modules/axios/lib/core/mergeConfig.js"); -var validator = __webpack_require__(/*! ../helpers/validator */ "./node_modules/axios/lib/helpers/validator.js"); - -var validators = validator.validators; -/** - * Create a new instance of Axios - * - * @param {Object} instanceConfig The default config for the instance - */ -function Axios(instanceConfig) { - this.defaults = instanceConfig; - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; -} - -/** - * Dispatch a request - * - * @param {Object} config The config specific for this request (merged with this.defaults) - */ -Axios.prototype.request = function request(config) { - /*eslint no-param-reassign:0*/ - // Allow for axios('example/url'[, config]) a la fetch API - if (typeof config === 'string') { - config = arguments[1] || {}; - config.url = arguments[0]; - } else { - config = 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'; - } - - var transitional = config.transitional; - - if (transitional !== undefined) { - validator.assertOptions(transitional, { - silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'), - forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'), - clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0') - }, false); - } - - // filter out skipped interceptors - var requestInterceptorChain = []; - var synchronousRequestInterceptors = true; - this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { - if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { - return; - } - - synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; - - requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - - var responseInterceptorChain = []; - this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { - responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); - }); - - var promise; - - if (!synchronousRequestInterceptors) { - var chain = [dispatchRequest, undefined]; - - Array.prototype.unshift.apply(chain, requestInterceptorChain); - chain = chain.concat(responseInterceptorChain); - - promise = Promise.resolve(config); - while (chain.length) { - promise = promise.then(chain.shift(), chain.shift()); - } - - return promise; - } - - - var newConfig = config; - while (requestInterceptorChain.length) { - var onFulfilled = requestInterceptorChain.shift(); - var onRejected = requestInterceptorChain.shift(); - try { - newConfig = onFulfilled(newConfig); - } catch (error) { - onRejected(error); - break; - } - } - - try { - promise = dispatchRequest(newConfig); - } catch (error) { - return Promise.reject(error); - } - - while (responseInterceptorChain.length) { - promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift()); - } - - return promise; -}; - -Axios.prototype.getUri = function getUri(config) { - config = mergeConfig(this.defaults, config); - return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); -}; - -// Provide aliases for supported request methods -utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: (config || {}).data - })); - }; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - /*eslint func-names:0*/ - Axios.prototype[method] = function(url, data, config) { - return this.request(mergeConfig(config || {}, { - method: method, - url: url, - data: data - })); - }; -}); - -module.exports = Axios; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/InterceptorManager.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/core/InterceptorManager.js ***! - \***********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); - -function InterceptorManager() { - this.handlers = []; -} - -/** - * Add a new interceptor to the stack - * - * @param {Function} fulfilled The function to handle `then` for a `Promise` - * @param {Function} rejected The function to handle `reject` for a `Promise` - * - * @return {Number} An ID used to remove interceptor later - */ -InterceptorManager.prototype.use = function use(fulfilled, rejected, options) { - this.handlers.push({ - fulfilled: fulfilled, - rejected: rejected, - synchronous: options ? options.synchronous : false, - runWhen: options ? options.runWhen : null - }); - return this.handlers.length - 1; -}; - -/** - * Remove an interceptor from the stack - * - * @param {Number} id The ID that was returned by `use` - */ -InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } -}; - -/** - * Iterate over all the registered interceptors - * - * This method is particularly useful for skipping over any - * interceptors that may have become `null` calling `eject`. - * - * @param {Function} fn The function to call for each interceptor - */ -InterceptorManager.prototype.forEach = function forEach(fn) { - utils.forEach(this.handlers, function forEachHandler(h) { - if (h !== null) { - fn(h); - } - }); -}; - -module.exports = InterceptorManager; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/buildFullPath.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/buildFullPath.js ***! - \******************************************************/ -/***/ ((module, __unused_webpack_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": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/createError.js ***! - \****************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var enhanceError = __webpack_require__(/*! ./enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); - -/** - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The created error. - */ -module.exports = function createError(message, config, code, request, response) { - var error = new Error(message); - return enhanceError(error, config, code, request, response); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/dispatchRequest.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/core/dispatchRequest.js ***! - \********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); -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"); - -/** - * Throws a `Cancel` if cancellation has been requested. - */ -function throwIfCancellationRequested(config) { - if (config.cancelToken) { - config.cancelToken.throwIfRequested(); - } -} - -/** - * Dispatch a request to the server using the configured adapter. - * - * @param {object} config The config that is to be used for the request - * @returns {Promise} The Promise to be fulfilled - */ -module.exports = function dispatchRequest(config) { - throwIfCancellationRequested(config); - - // Ensure headers exist - config.headers = config.headers || {}; - - // Transform request data - config.data = transformData.call( - config, - config.data, - config.headers, - config.transformRequest - ); - - // Flatten headers - config.headers = utils.merge( - config.headers.common || {}, - config.headers[config.method] || {}, - config.headers - ); - - utils.forEach( - ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], - function cleanHeaderConfig(method) { - delete config.headers[method]; - } - ); - - var adapter = config.adapter || defaults.adapter; - - return adapter(config).then(function onAdapterResolution(response) { - throwIfCancellationRequested(config); - - // Transform response data - response.data = transformData.call( - config, - response.data, - response.headers, - config.transformResponse - ); - - return response; - }, function onAdapterRejection(reason) { - if (!isCancel(reason)) { - throwIfCancellationRequested(config); - - // Transform response data - if (reason && reason.response) { - reason.response.data = transformData.call( - config, - reason.response.data, - reason.response.headers, - config.transformResponse - ); - } - } - - return Promise.reject(reason); - }); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/enhanceError.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/core/enhanceError.js ***! - \*****************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * Update an Error with the specified config, error code, and response. - * - * @param {Error} error The error to update. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The error. - */ -module.exports = function enhanceError(error, config, code, request, response) { - error.config = config; - if (code) { - error.code = code; - } - - error.request = request; - error.response = response; - error.isAxiosError = true; - - error.toJSON = function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: this.config, - code: this.code - }; - }; - return error; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/mergeConfig.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/core/mergeConfig.js ***! - \****************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); - -/** - * Config-specific merge-function which creates a new config-object - * by merging two configuration objects together. - * - * @param {Object} config1 - * @param {Object} config2 - * @returns {Object} New object resulting from merging config2 to config1 - */ -module.exports = function mergeConfig(config1, config2) { - // eslint-disable-next-line no-param-reassign - config2 = config2 || {}; - var config = {}; - - var valueFromConfig2Keys = ['url', 'method', 'data']; - var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; - var defaultToConfig2Keys = [ - 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', - 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', - 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', - 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', - 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' - ]; - var directMergeKeys = ['validateStatus']; - - function getMergedValue(target, source) { - if (utils.isPlainObject(target) && utils.isPlainObject(source)) { - return utils.merge(target, source); - } else if (utils.isPlainObject(source)) { - return utils.merge({}, source); - } else if (utils.isArray(source)) { - return source.slice(); - } - return source; - } - - function mergeDeepProperties(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - } - - utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); - } - }); - - utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); - - utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { - if (!utils.isUndefined(config2[prop])) { - config[prop] = getMergedValue(undefined, config2[prop]); - } else if (!utils.isUndefined(config1[prop])) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - }); - - utils.forEach(directMergeKeys, function merge(prop) { - if (prop in config2) { - config[prop] = getMergedValue(config1[prop], config2[prop]); - } else if (prop in config1) { - config[prop] = getMergedValue(undefined, config1[prop]); - } - }); - - var axiosKeys = valueFromConfig2Keys - .concat(mergeDeepPropertiesKeys) - .concat(defaultToConfig2Keys) - .concat(directMergeKeys); - - var otherKeys = Object - .keys(config1) - .concat(Object.keys(config2)) - .filter(function filterAxiosKeys(key) { - return axiosKeys.indexOf(key) === -1; - }); - - utils.forEach(otherKeys, mergeDeepProperties); - - return config; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/settle.js": -/*!***********************************************!*\ - !*** ./node_modules/axios/lib/core/settle.js ***! - \***********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var createError = __webpack_require__(/*! ./createError */ "./node_modules/axios/lib/core/createError.js"); - -/** - * Resolve or reject a Promise based on response status. - * - * @param {Function} resolve A function that resolves the promise. - * @param {Function} reject A function that rejects the promise. - * @param {object} response The response. - */ -module.exports = function settle(resolve, reject, response) { - var validateStatus = response.config.validateStatus; - if (!response.status || !validateStatus || validateStatus(response.status)) { - resolve(response); - } else { - reject(createError( - 'Request failed with status code ' + response.status, - response.config, - null, - response.request, - response - )); - } -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/core/transformData.js": -/*!******************************************************!*\ - !*** ./node_modules/axios/lib/core/transformData.js ***! - \******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); -var defaults = __webpack_require__(/*! ./../defaults */ "./node_modules/axios/lib/defaults.js"); - -/** - * Transform the data for a request or a response - * - * @param {Object|String} data The data to be transformed - * @param {Array} headers The headers for the request or response - * @param {Array|Function} fns A single function or Array of functions - * @returns {*} The resulting transformed data - */ -module.exports = function transformData(data, headers, fns) { - var context = this || defaults; - /*eslint no-param-reassign:0*/ - utils.forEach(fns, function transform(fn) { - data = fn.call(context, data, headers); - }); - - return data; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/defaults.js": -/*!********************************************!*\ - !*** ./node_modules/axios/lib/defaults.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/* provided dependency */ var process = __webpack_require__(/*! process/browser.js */ "./node_modules/process/browser.js"); - - -var utils = __webpack_require__(/*! ./utils */ "./node_modules/axios/lib/utils.js"); -var normalizeHeaderName = __webpack_require__(/*! ./helpers/normalizeHeaderName */ "./node_modules/axios/lib/helpers/normalizeHeaderName.js"); -var enhanceError = __webpack_require__(/*! ./core/enhanceError */ "./node_modules/axios/lib/core/enhanceError.js"); - -var DEFAULT_CONTENT_TYPE = { - 'Content-Type': 'application/x-www-form-urlencoded' -}; - -function setContentTypeIfUnset(headers, value) { - if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { - headers['Content-Type'] = 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]') { - // For node use HTTP adapter - adapter = __webpack_require__(/*! ./adapters/http */ "./node_modules/axios/lib/adapters/xhr.js"); - } - return adapter; -} - -function stringifySafely(rawValue, parser, encoder) { - if (utils.isString(rawValue)) { - try { - (parser || JSON.parse)(rawValue); - return utils.trim(rawValue); - } catch (e) { - if (e.name !== 'SyntaxError') { - throw e; - } - } - } - - return (encoder || JSON.stringify)(rawValue); -} - -var defaults = { - - transitional: { - silentJSONParsing: true, - forcedJSONParsing: true, - clarifyTimeoutError: false - }, - - adapter: getDefaultAdapter(), - - transformRequest: [function transformRequest(data, headers) { - normalizeHeaderName(headers, 'Accept'); - normalizeHeaderName(headers, 'Content-Type'); - - if (utils.isFormData(data) || - utils.isArrayBuffer(data) || - utils.isBuffer(data) || - utils.isStream(data) || - utils.isFile(data) || - utils.isBlob(data) - ) { - return data; - } - if (utils.isArrayBufferView(data)) { - return data.buffer; - } - if (utils.isURLSearchParams(data)) { - setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); - return data.toString(); - } - if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) { - setContentTypeIfUnset(headers, 'application/json'); - return stringifySafely(data); - } - return data; - }], - - transformResponse: [function transformResponse(data) { - var transitional = this.transitional; - var silentJSONParsing = transitional && transitional.silentJSONParsing; - var forcedJSONParsing = transitional && transitional.forcedJSONParsing; - var strictJSONParsing = !silentJSONParsing && this.responseType === 'json'; - - if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) { - try { - return JSON.parse(data); - } catch (e) { - if (strictJSONParsing) { - if (e.name === 'SyntaxError') { - throw enhanceError(e, this, 'E_JSON_PARSE'); - } - throw e; - } - } - } - - return data; - }], - - /** - * A timeout in milliseconds to abort a request. If set to 0 (default) a - * timeout is not created. - */ - timeout: 0, - - xsrfCookieName: 'XSRF-TOKEN', - xsrfHeaderName: 'X-XSRF-TOKEN', - - maxContentLength: -1, - maxBodyLength: -1, - - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - } -}; - -defaults.headers = { - common: { - 'Accept': 'application/json, text/plain, */*' - } -}; - -utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { - defaults.headers[method] = {}; -}); - -utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { - defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); -}); - -module.exports = defaults; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/bind.js": -/*!************************************************!*\ - !*** ./node_modules/axios/lib/helpers/bind.js ***! - \************************************************/ -/***/ ((module) => { - -"use strict"; - - -module.exports = function bind(fn, thisArg) { - return function wrap() { - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } - return fn.apply(thisArg, args); - }; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/buildURL.js": -/*!****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/buildURL.js ***! - \****************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); - -function encode(val) { - return encodeURIComponent(val). - replace(/%3A/gi, ':'). - replace(/%24/g, '$'). - replace(/%2C/gi, ','). - replace(/%20/g, '+'). - replace(/%5B/gi, '['). - replace(/%5D/gi, ']'); -} - -/** - * Build a URL by appending params to the end - * - * @param {string} url The base of the url (e.g., http://www.google.com) - * @param {object} [params] The params to be appended - * @returns {string} The formatted url - */ -module.exports = function buildURL(url, params, paramsSerializer) { - /*eslint no-param-reassign:0*/ - if (!params) { - return url; - } - - var serializedParams; - if (paramsSerializer) { - serializedParams = paramsSerializer(params); - } else if (utils.isURLSearchParams(params)) { - serializedParams = params.toString(); - } else { - var parts = []; - - utils.forEach(params, function serialize(val, key) { - if (val === null || typeof val === 'undefined') { - return; - } - - if (utils.isArray(val)) { - key = key + '[]'; - } else { - val = [val]; - } - - utils.forEach(val, function parseValue(v) { - if (utils.isDate(v)) { - v = v.toISOString(); - } else if (utils.isObject(v)) { - v = JSON.stringify(v); - } - parts.push(encode(key) + '=' + encode(v)); - }); - }); - - serializedParams = parts.join('&'); - } - - if (serializedParams) { - var hashmarkIndex = url.indexOf('#'); - if (hashmarkIndex !== -1) { - url = url.slice(0, hashmarkIndex); - } - - url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; - } - - return url; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/combineURLs.js": -/*!*******************************************************!*\ - !*** ./node_modules/axios/lib/helpers/combineURLs.js ***! - \*******************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * Creates a new URL by combining the specified URLs - * - * @param {string} baseURL The base URL - * @param {string} relativeURL The relative URL - * @returns {string} The combined URL - */ -module.exports = function combineURLs(baseURL, relativeURL) { - return relativeURL - ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') - : baseURL; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/cookies.js": -/*!***************************************************!*\ - !*** ./node_modules/axios/lib/helpers/cookies.js ***! - \***************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); - -module.exports = ( - utils.isStandardBrowserEnv() ? - - // Standard browser envs support document.cookie - (function standardBrowserEnv() { - return { - write: function write(name, value, expires, path, domain, secure) { - var cookie = []; - cookie.push(name + '=' + encodeURIComponent(value)); - - if (utils.isNumber(expires)) { - cookie.push('expires=' + new Date(expires).toGMTString()); - } - - if (utils.isString(path)) { - cookie.push('path=' + path); - } - - if (utils.isString(domain)) { - cookie.push('domain=' + domain); - } - - if (secure === true) { - cookie.push('secure'); - } - - document.cookie = cookie.join('; '); - }, - - read: function read(name) { - var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); - return (match ? decodeURIComponent(match[3]) : null); - }, - - remove: function remove(name) { - this.write(name, '', Date.now() - 86400000); - } - }; - })() : - - // Non standard browser env (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return { - write: function write() {}, - read: function read() { return null; }, - remove: function remove() {} - }; - })() -); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isAbsoluteURL.js": -/*!*********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAbsoluteURL.js ***! - \*********************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * Determines whether the specified URL is absolute - * - * @param {string} url The URL to test - * @returns {boolean} True if the specified URL is absolute, otherwise false - */ -module.exports = function isAbsoluteURL(url) { - // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). - // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed - // by any combination of letters, digits, plus, period, or hyphen. - return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isAxiosError.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isAxiosError.js ***! - \********************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * Determines whether the payload is an error thrown by Axios - * - * @param {*} payload The value to test - * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false - */ -module.exports = function isAxiosError(payload) { - return (typeof payload === 'object') && (payload.isAxiosError === true); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/isURLSameOrigin.js": -/*!***********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/isURLSameOrigin.js ***! - \***********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); - -module.exports = ( - utils.isStandardBrowserEnv() ? - - // Standard browser envs have full support of the APIs needed to test - // whether the request URL is of the same origin as current location. - (function standardBrowserEnv() { - var msie = /(msie|trident)/i.test(navigator.userAgent); - var urlParsingNode = document.createElement('a'); - var originURL; - - /** - * Parse a URL to discover it's components - * - * @param {String} url The URL to be parsed - * @returns {Object} - */ - function resolveURL(url) { - var href = url; - - if (msie) { - // IE needs attribute set twice to normalize properties - urlParsingNode.setAttribute('href', href); - href = urlParsingNode.href; - } - - urlParsingNode.setAttribute('href', href); - - // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils - return { - href: urlParsingNode.href, - protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', - host: urlParsingNode.host, - search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', - hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', - hostname: urlParsingNode.hostname, - port: urlParsingNode.port, - pathname: (urlParsingNode.pathname.charAt(0) === '/') ? - urlParsingNode.pathname : - '/' + urlParsingNode.pathname - }; - } - - originURL = resolveURL(window.location.href); - - /** - * Determine if a URL shares the same origin as the current location - * - * @param {String} requestURL The URL to test - * @returns {boolean} True if URL shares the same origin, otherwise false - */ - return function isURLSameOrigin(requestURL) { - var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; - return (parsed.protocol === originURL.protocol && - parsed.host === originURL.host); - }; - })() : - - // Non standard browser envs (web workers, react-native) lack needed support. - (function nonStandardBrowserEnv() { - return function isURLSameOrigin() { - return true; - }; - })() -); - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/normalizeHeaderName.js": -/*!***************************************************************!*\ - !*** ./node_modules/axios/lib/helpers/normalizeHeaderName.js ***! - \***************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ../utils */ "./node_modules/axios/lib/utils.js"); - -module.exports = function normalizeHeaderName(headers, normalizedName) { - utils.forEach(headers, function processHeader(value, name) { - if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { - headers[normalizedName] = value; - delete headers[name]; - } - }); -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/parseHeaders.js": -/*!********************************************************!*\ - !*** ./node_modules/axios/lib/helpers/parseHeaders.js ***! - \********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var utils = __webpack_require__(/*! ./../utils */ "./node_modules/axios/lib/utils.js"); - -// Headers whose duplicates are ignored by node -// c.f. https://nodejs.org/api/http.html#http_message_headers -var ignoreDuplicateOf = [ - 'age', 'authorization', 'content-length', 'content-type', 'etag', - 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', - 'last-modified', 'location', 'max-forwards', 'proxy-authorization', - 'referer', 'retry-after', 'user-agent' -]; - -/** - * Parse headers into an object - * - * ``` - * Date: Wed, 27 Aug 2014 08:58:49 GMT - * Content-Type: application/json - * Connection: keep-alive - * Transfer-Encoding: chunked - * ``` - * - * @param {String} headers Headers needing to be parsed - * @returns {Object} Headers parsed into an object - */ -module.exports = function parseHeaders(headers) { - var parsed = {}; - var key; - var val; - var i; - - if (!headers) { return parsed; } - - utils.forEach(headers.split('\n'), function parser(line) { - i = line.indexOf(':'); - key = utils.trim(line.substr(0, i)).toLowerCase(); - val = utils.trim(line.substr(i + 1)); - - if (key) { - if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { - return; - } - if (key === 'set-cookie') { - parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); - } else { - parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; - } - } - }); - - return parsed; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/spread.js": -/*!**************************************************!*\ - !*** ./node_modules/axios/lib/helpers/spread.js ***! - \**************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * Syntactic sugar for invoking a function and expanding an array for arguments. - * - * Common use case would be to use `Function.prototype.apply`. - * - * ```js - * function f(x, y, z) {} - * var args = [1, 2, 3]; - * f.apply(null, args); - * ``` - * - * With `spread` this example can be re-written. - * - * ```js - * spread(function(x, y, z) {})([1, 2, 3]); - * ``` - * - * @param {Function} callback - * @returns {Function} - */ -module.exports = function spread(callback) { - return function wrap(arr) { - return callback.apply(null, arr); - }; -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/helpers/validator.js": -/*!*****************************************************!*\ - !*** ./node_modules/axios/lib/helpers/validator.js ***! - \*****************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var pkg = __webpack_require__(/*! ./../../package.json */ "./node_modules/axios/package.json"); - -var validators = {}; - -// eslint-disable-next-line func-names -['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) { - validators[type] = function validator(thing) { - return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; - }; -}); - -var deprecatedWarnings = {}; -var currentVerArr = pkg.version.split('.'); - -/** - * Compare package versions - * @param {string} version - * @param {string?} thanVersion - * @returns {boolean} - */ -function isOlderVersion(version, thanVersion) { - var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr; - var destVer = version.split('.'); - for (var i = 0; i < 3; i++) { - if (pkgVersionArr[i] > destVer[i]) { - return true; - } else if (pkgVersionArr[i] < destVer[i]) { - return false; - } - } - return false; -} - -/** - * Transitional option validator - * @param {function|boolean?} validator - * @param {string?} version - * @param {string} message - * @returns {function} - */ -validators.transitional = function transitional(validator, version, message) { - var isDeprecated = version && isOlderVersion(version); - - function formatMessage(opt, desc) { - return '[Axios v' + pkg.version + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); - } - - // eslint-disable-next-line func-names - return function(value, opt, opts) { - if (validator === false) { - throw new Error(formatMessage(opt, ' has been removed in ' + version)); - } - - if (isDeprecated && !deprecatedWarnings[opt]) { - deprecatedWarnings[opt] = true; - // eslint-disable-next-line no-console - console.warn( - formatMessage( - opt, - ' has been deprecated since v' + version + ' and will be removed in the near future' - ) - ); - } - - return validator ? validator(value, opt, opts) : true; - }; -}; - -/** - * Assert object's properties type - * @param {object} options - * @param {object} schema - * @param {boolean?} allowUnknown - */ - -function assertOptions(options, schema, allowUnknown) { - if (typeof options !== 'object') { - throw new TypeError('options must be an object'); - } - var keys = Object.keys(options); - var i = keys.length; - while (i-- > 0) { - var opt = keys[i]; - var validator = schema[opt]; - if (validator) { - var value = options[opt]; - var result = value === undefined || validator(value, opt, options); - if (result !== true) { - throw new TypeError('option ' + opt + ' must be ' + result); - } - continue; - } - if (allowUnknown !== true) { - throw Error('Unknown option ' + opt); - } - } -} - -module.exports = { - isOlderVersion: isOlderVersion, - assertOptions: assertOptions, - validators: validators -}; - - -/***/ }), - -/***/ "./node_modules/axios/lib/utils.js": -/*!*****************************************!*\ - !*** ./node_modules/axios/lib/utils.js ***! - \*****************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var bind = __webpack_require__(/*! ./helpers/bind */ "./node_modules/axios/lib/helpers/bind.js"); - -// utils is a library of generic helper functions non-specific to axios - -var toString = Object.prototype.toString; - -/** - * Determine if a value is an Array - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Array, otherwise false - */ -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 - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an ArrayBuffer, otherwise false - */ -function isArrayBuffer(val) { - return toString.call(val) === '[object ArrayBuffer]'; -} - -/** - * Determine if a value is a FormData - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an FormData, otherwise false - */ -function isFormData(val) { - return (typeof FormData !== 'undefined') && (val instanceof FormData); -} - -/** - * Determine if a value is a view on an ArrayBuffer - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false - */ -function isArrayBufferView(val) { - var result; - if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { - result = ArrayBuffer.isView(val); - } else { - result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); - } - return result; -} - -/** - * Determine if a value is a String - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a String, otherwise false - */ -function isString(val) { - return typeof val === 'string'; -} - -/** - * Determine if a value is a Number - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Number, otherwise false - */ -function isNumber(val) { - return typeof val === 'number'; -} - -/** - * Determine if a value is an Object - * - * @param {Object} val The value to test - * @returns {boolean} True if value is an Object, otherwise false - */ -function isObject(val) { - return val !== null && typeof val === 'object'; -} - -/** - * Determine if a value is a plain Object - * - * @param {Object} val The value to test - * @return {boolean} True if value is a plain Object, otherwise false - */ -function isPlainObject(val) { - if (toString.call(val) !== '[object Object]') { - return false; - } - - var prototype = Object.getPrototypeOf(val); - return prototype === null || prototype === Object.prototype; -} - -/** - * Determine if a value is a Date - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Date, otherwise false - */ -function isDate(val) { - return toString.call(val) === '[object Date]'; -} - -/** - * Determine if a value is a File - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a File, otherwise false - */ -function isFile(val) { - return toString.call(val) === '[object File]'; -} - -/** - * Determine if a value is a Blob - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Blob, otherwise false - */ -function isBlob(val) { - return toString.call(val) === '[object Blob]'; -} - -/** - * Determine if a value is a Function - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Function, otherwise false - */ -function isFunction(val) { - return toString.call(val) === '[object Function]'; -} - -/** - * Determine if a value is a Stream - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a Stream, otherwise false - */ -function isStream(val) { - return isObject(val) && isFunction(val.pipe); -} - -/** - * Determine if a value is a URLSearchParams object - * - * @param {Object} val The value to test - * @returns {boolean} True if value is a URLSearchParams object, otherwise false - */ -function isURLSearchParams(val) { - return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; -} - -/** - * Trim excess whitespace off the beginning and end of a string - * - * @param {String} str The String to trim - * @returns {String} The String freed of excess whitespace - */ -function trim(str) { - return str.trim ? str.trim() : str.replace(/^\s+|\s+$/g, ''); -} - -/** - * Determine if we're running in a standard browser environment - * - * This allows axios to run in a web worker, and react-native. - * Both environments support XMLHttpRequest, but not fully standard globals. - * - * web workers: - * typeof window -> undefined - * typeof document -> undefined - * - * react-native: - * navigator.product -> 'ReactNative' - * nativescript - * navigator.product -> 'NativeScript' or 'NS' - */ -function isStandardBrowserEnv() { - if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || - navigator.product === 'NativeScript' || - navigator.product === 'NS')) { - return false; - } - return ( - typeof window !== 'undefined' && - typeof document !== 'undefined' - ); -} - -/** - * Iterate over an Array or an Object invoking a function for each item. - * - * If `obj` is an Array callback will be called passing - * the value, index, and complete array for each item. - * - * If 'obj' is an Object callback will be called passing - * the value, key, and complete object for each property. - * - * @param {Object|Array} obj The object to iterate - * @param {Function} fn The callback to invoke for each item - */ -function forEach(obj, fn) { - // Don't bother if no value provided - if (obj === null || typeof obj === 'undefined') { - return; - } - - // Force an array if not already something iterable - if (typeof obj !== 'object') { - /*eslint no-param-reassign:0*/ - obj = [obj]; - } - - if (isArray(obj)) { - // Iterate over array values - for (var i = 0, l = obj.length; i < l; i++) { - fn.call(null, obj[i], i, obj); - } - } else { - // Iterate over object keys - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj); - } - } - } -} - -/** - * Accepts varargs expecting each argument to be an object, then - * immutably merges the properties of each object and returns result. - * - * When multiple objects contain the same key the later object in - * the arguments list will take precedence. - * - * Example: - * - * ```js - * var result = merge({foo: 123}, {foo: 456}); - * console.log(result.foo); // outputs 456 - * ``` - * - * @param {Object} obj1 Object to merge - * @returns {Object} Result of all merge properties - */ -function merge(/* obj1, obj2, obj3, ... */) { - var result = {}; - function assignValue(val, key) { - if (isPlainObject(result[key]) && isPlainObject(val)) { - result[key] = merge(result[key], val); - } else if (isPlainObject(val)) { - result[key] = merge({}, val); - } else if (isArray(val)) { - result[key] = val.slice(); - } else { - result[key] = val; - } - } - - for (var i = 0, l = arguments.length; i < l; i++) { - forEach(arguments[i], assignValue); - } - return result; -} - -/** - * Extends object a by mutably adding to it the properties of object b. - * - * @param {Object} a The object to be extended - * @param {Object} b The object to copy properties from - * @param {Object} thisArg The object to bind function to - * @return {Object} The resulting value of object a - */ -function extend(a, b, thisArg) { - forEach(b, function assignValue(val, key) { - if (thisArg && typeof val === 'function') { - a[key] = bind(val, thisArg); - } else { - a[key] = val; - } - }); - return a; -} - -/** - * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) - * - * @param {string} content with BOM - * @return {string} content value without BOM - */ -function stripBOM(content) { - if (content.charCodeAt(0) === 0xFEFF) { - content = content.slice(1); - } - return content; -} - -module.exports = { - isArray: isArray, - isArrayBuffer: isArrayBuffer, - isBuffer: isBuffer, - isFormData: isFormData, - isArrayBufferView: isArrayBufferView, - isString: isString, - isNumber: isNumber, - isObject: isObject, - isPlainObject: isPlainObject, - isUndefined: isUndefined, - isDate: isDate, - isFile: isFile, - isBlob: isBlob, - isFunction: isFunction, - isStream: isStream, - isURLSearchParams: isURLSearchParams, - isStandardBrowserEnv: isStandardBrowserEnv, - forEach: forEach, - merge: merge, - extend: extend, - trim: trim, - stripBOM: stripBOM -}; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/BannedIP.vue?vue&type=script&lang=js&": -/*!***************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/BannedIP.vue?vue&type=script&lang=js& ***! - \***************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js"); -/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js"); -/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.find-index.js */ "./node_modules/core-js/modules/es.array.find-index.js"); -/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js"); -/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js"); -/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); -/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js"); -/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8__); - - - - - - - - - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('BannedIP Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - this.baseDatas = JSON.parse(this.dbdatas); - }, - props: ['dbdatas'], - data: function data() { - return { - datas: [], - response: null, - processing: false, - page: 1, - perPage: 10, - pages: [], - baseDatas: [], - searchText: '', - filterMode: false, - resultPagination: [] - }; - }, - methods: { - // Ajoute une ligne au tableau affiché - newItem: function newItem() { - var ip = window.prompt("Entrer l'IP à bannir", ""); - var ipExist = false; - - if (ip != null) { - ipExist = this.baseDatas.filter(function (elem) { - return elem.ip.toString().indexOf(ip) >= 0; - }).length == 0 ? true : false; - } - - if (ipExist) { - this.datas.push({ - ip: ip - }); - this.baseDatas.push({ - ip: ip - }); - this.setPages(); - this.page = this.pages.length; - } else { - window.alert("L'IP entrée est déjà dans la liste."); - } - }, - // Supprime une ligne dans la base si elle existait déjà - removeItem: function removeItem(ip) { - if (confirm("Êtes-vous sûr(e) ?")) { - var i = this.baseDatas.findIndex(function (element) { - return element.ip == ip; - }); - var iDatas = this.datas.findIndex(function (element) { - return element.ip == ip; - }); - - if (i !== null && this.baseDatas[i]['ip'] !== null) { - axios.post('/bo/ajax/delete-banned-ip', { - ip: this.baseDatas[i]['ip'] - }).catch(function (error) { - console.log(error); - }); - this.baseDatas.splice(i, 1); - this.datas.splice(iDatas, 1); - } else { - this.baseDatas.splice(i, 1); - this.datas.splice(iDatas, 1); - } - } - }, - // Sauvegarde les données dans la base - saveData: function saveData() { - var _this = this; - - this.processing = true; - this.response = "En cours de sauvegarde..."; - this.searchText = ''; - axios.post('/bo/ajax/save-banned-ip', { - ips: this.baseDatas - }).then(function (response) { - _this.datas = response.data; - _this.baseDatas = JSON.parse(JSON.stringify(_this.datas)); - _this.response = "Sauvegarde terminée !"; - _this.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - this.processing = false; - }); - }, - // Calcul le nombre de page total dans la pagination - setPages: function setPages() { - var numberOfPages = Math.ceil(this.datas.length / this.perPage); - - if (this.pages.length > numberOfPages) { - this.pages.splice(numberOfPages); - } - - for (var index = 0; index < numberOfPages; index++) { - if (!this.pages.includes(index + 1)) { - this.pages.push(index + 1); - } - } - - this.paginationToPrint(); - }, - // S'occupe de la pagination des données affichées dans le tableau - paginate: function paginate(datas) { - var page = this.page; - var perPage = this.perPage; - var from = page * perPage - perPage; - var to = page * perPage; - return datas.slice(from, to); - }, - // Recherche dans le tableau les ips ou produit corespondant à la recherche - search: function search() { - var _this2 = this; - - if (this.page !== 1) { - this.page = 1; - } - - if (this.searchText === "") { - this.filterMode = false; - } else { - this.filterMode = true; - } - - var tmpIPs = this.baseDatas.filter(function (item) { - return item.ip.toLowerCase().indexOf(_this2.searchText.toLowerCase()) >= 0; - }); - this.datas = Object.assign(tmpIPs); - }, - // Copie les données du tableau afficher dans le tableau baseDatas qui sert de référence pour sauvegarder, supprimer etc - updateBaseData: function updateBaseData(ip) { - this.baseDatas[this.datas.findIndex(function (element) { - return element.ip == ip; - })] = this.datas[this.datas.findIndex(function (element) { - return element.ip == ip; - })]; - }, - // Prépare les pages à afficher a l'écran pour la pagination - paginationToPrint: function paginationToPrint() { - this.resultPagination = JSON.parse(JSON.stringify(this.pages)); - - if (this.page >= 3) { - if (this.page <= this.pages.length - 4) { - this.resultPagination.splice(0, this.page - 4); - } else { - this.resultPagination.splice(0, this.pages.length - 8); - } - } - - if (this.page <= this.pages.length - 3) { - this.resultPagination.splice(8); - } - } - }, - computed: { - displayedips: function displayedips() { - return this.paginate(this.datas); - } - }, - watch: { - datas: function datas() { - this.setPages(); - }, - page: function page() { - this.paginationToPrint(); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/CodesEAN.vue?vue&type=script&lang=js&": -/*!***************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/CodesEAN.vue?vue&type=script&lang=js& ***! - \***************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.filter.js */ "./node_modules/core-js/modules/es.array.filter.js"); -/* harmony import */ var core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_filter_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.array.find-index.js */ "./node_modules/core-js/modules/es.array.find-index.js"); -/* harmony import */ var core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_find_index_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/es.array.includes.js */ "./node_modules/core-js/modules/es.array.includes.js"); -/* harmony import */ var core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_includes_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/es.string.includes.js */ "./node_modules/core-js/modules/es.string.includes.js"); -/* harmony import */ var core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_string_includes_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/es.array.slice.js */ "./node_modules/core-js/modules/es.array.slice.js"); -/* harmony import */ var core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_slice_js__WEBPACK_IMPORTED_MODULE_6__); -/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ "./node_modules/core-js/modules/es.regexp.to-string.js"); -/* harmony import */ var core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_to_string_js__WEBPACK_IMPORTED_MODULE_7__); -/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/es.object.assign.js */ "./node_modules/core-js/modules/es.object.assign.js"); -/* harmony import */ var core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_assign_js__WEBPACK_IMPORTED_MODULE_8__); - - - - - - - - - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('CodesEAN Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - this.baseDatas = JSON.parse(this.dbdatas); - }, - props: ['dbdatas'], - data: function data() { - return { - datas: [], - response: null, - processing: false, - page: 1, - perPage: 10, - pages: [], - baseDatas: [], - searchText: '', - filterMode: false, - resultPagination: [] - }; - }, - methods: { - // Ajoute une ligne au tableau affiché - newItem: function newItem() { - var code = window.prompt('Entrer le code EAN', ""); - var codeOk = false; - - if (code != null) { - codeOk = this.baseDatas.filter(function (elem) { - return elem.code == code; - }).length == 0 ? true : false; - } - - if (codeOk) { - this.datas.push({ - id: null, - code: code, - product: '' - }); - this.baseDatas.push({ - id: null, - code: code, - product: '' - }); - this.setPages(); - this.page = this.pages.length; - } else { - window.alert('Le code entré existe déjà !'); - } - }, - // Supprime une ligne dans la base si elle existait déjà - removeItem: function removeItem(id) { - if (confirm("Êtes-vous sûr(e) ?")) { - var i = this.baseDatas.findIndex(function (element) { - return element.id == id; - }); - var iDatas = this.datas.findIndex(function (element) { - return element.id == id; - }); - - if (i !== null && this.baseDatas[i]['id'] !== null) { - axios.post('/bo/ajax/delete-codes-ean', { - id: this.baseDatas[i]['id'] - }).catch(function (error) { - console.log(error); - }); - this.baseDatas.splice(i, 1); - this.datas.splice(iDatas, 1); - } else { - this.baseDatas.splice(i, 1); - this.datas.splice(iDatas, 1); - } - } - }, - // Sauvegarde les données dans la base - saveData: function saveData() { - var _this = this; - - this.processing = true; - this.response = "En cours de sauvegarde..."; - this.searchText = ''; - axios.post('/bo/ajax/save-codes-ean', { - codes: this.baseDatas - }).then(function (response) { - _this.datas = response.data; - _this.baseDatas = JSON.parse(JSON.stringify(_this.datas)); - _this.response = "Sauvegarde terminée !"; - _this.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - this.processing = false; - }); - }, - // Calcul le nombre de page total dans la pagination - setPages: function setPages() { - var numberOfPages = Math.ceil(this.datas.length / this.perPage); - - if (this.pages.length > numberOfPages) { - this.pages.splice(numberOfPages); - } - - for (var index = 0; index < numberOfPages; index++) { - if (!this.pages.includes(index + 1)) { - this.pages.push(index + 1); - } - } - - this.paginationToPrint(); - }, - // S'occupe de la pagination des données affichées dans le tableau - paginate: function paginate(datas) { - var page = this.page; - var perPage = this.perPage; - var from = page * perPage - perPage; - var to = page * perPage; - return datas.slice(from, to); - }, - // Recherche dans le tableau les codes ou produit corespondant à la recherche - search: function search() { - var _this2 = this; - - if (this.page !== 1) { - this.page = 1; - } - - if (this.searchText === "") { - this.filterMode = false; - } else { - this.filterMode = true; - } - - var tmpEAN = this.baseDatas.filter(function (item) { - return item.code.toString().indexOf(_this2.searchText) >= 0; - }); - var tmpProduct = this.baseDatas.filter(function (item) { - return item.product.toLowerCase().indexOf(_this2.searchText.toLowerCase()) >= 0; - }); - this.datas = Object.assign(tmpEAN, tmpProduct); - }, - // Copie les données du tableau afficher dans le tableau baseDatas qui sert de référence pour sauvegarder, supprimer etc - updateBaseData: function updateBaseData(code) { - this.baseDatas[this.datas.findIndex(function (element) { - return element.code == code; - })] = this.datas[this.datas.findIndex(function (element) { - return element.code == code; - })]; - }, - // Prépare les pages à afficher a l'écran pour la pagination - paginationToPrint: function paginationToPrint() { - this.resultPagination = JSON.parse(JSON.stringify(this.pages)); - - if (this.page >= 3) { - if (this.page <= this.pages.length - 4) { - this.resultPagination.splice(0, this.page - 4); - } else { - this.resultPagination.splice(0, this.pages.length - 8); - } - } - - if (this.page <= this.pages.length - 3) { - this.resultPagination.splice(8); - } - } - }, - computed: { - displayedCodes: function displayedCodes() { - return this.paginate(this.datas); - } - }, - watch: { - datas: function datas() { - this.setPages(); - }, - page: function page() { - this.paginationToPrint(); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/FaqQuestions.vue?vue&type=script&lang=js&": -/*!*******************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/FaqQuestions.vue?vue&type=script&lang=js& ***! - \*******************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('FaqQuestions Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - this.themes = JSON.parse(this.dbthemes); - }, - props: ['dbdatas', 'dbthemes'], - data: function data() { - return { - datas: [], - themes: [], - response: null, - processing: false - }; - }, - watch: {}, - methods: { - newItem: function newItem() { - this.datas.push({ - id: null, - question: '', - answer: '', - positive_vote: 0, - negative_vote: 0, - theme_id: null, - toggle: false - }); - }, - removeItem: function removeItem(index) { - var _this = this; - - if (confirm("Êtes-vous sûr(e) ?")) { - if (this.datas[index]['id'] !== null) { - this.processing = true; - this.response = "Suppression en cours..."; - axios.post('/bo/ajax/delete-faq-question', { - id: this.datas[index]['id'] - }).then(function (response) { - _this.response = "Suppression terminée !"; - _this.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la suppression."; - this.processing = false; - }); - this.datas.splice(index, 1); - } else { - this.datas.splice(index, 1); - } - } - }, - saveData: function saveData() { - var _this2 = this; - - this.processing = true; - this.response = "En cours de sauvegarde..."; - axios.post('/bo/ajax/save-faq-question', { - questions: this.datas - }).then(function (response) { - _this2.datas = response.data; - _this2.response = "Sauvegarde terminée !"; - _this2.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - this.processing = false; - }); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/FaqThemes.vue?vue&type=script&lang=js&": -/*!****************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/FaqThemes.vue?vue&type=script&lang=js& ***! - \****************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('FaqThemes Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - }, - props: ['name', 'dbdatas'], - data: function data() { - return { - datas: [], - response: null, - processing: false - }; - }, - watch: {}, - methods: { - newItem: function newItem() { - this.datas.push({ - id: null, - name: '' - }); - }, - removeItem: function removeItem(index) { - var _this = this; - - if (confirm("Êtes-vous sûr(e) ?")) { - if (this.datas[index]['id'] !== null) { - this.processing = true; - this.response = "Suppression en cours..."; - axios.post('/bo/ajax/delete-faq-theme', { - id: this.datas[index]['id'] - }).then(function (response) { - var result = response.data; - - switch (result) { - case 0: - case 2: - // 0 = Supprimé, 2 = Pas encore en base, supprimer juste dans la vue - _this.response = "Suppression terminée !"; - - _this.datas.splice(index, 1); - - _this.processing = false; - break; - - case 1: - // 1 = Non supprimer car des questions lui sont lié - _this.response = "Erreur : des questions sont encore liées à ce thème."; - setTimeout(function () { - this.processing = false; - }.bind(_this), 1500); - break; - } - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la suppression."; - this.processing = false; - }); - } else { - this.datas.splice(index, 1); - } - } - }, - saveData: function saveData() { - var _this2 = this; - - this.processing = true; - this.response = "En cours de sauvegarde..."; - axios.post('/bo/ajax/save-faq-theme', { - themes: this.datas - }).then(function (response) { - _this2.datas = response.data; - _this2.response = "Sauvegarde terminée !"; - _this2.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - this.processing = false; - }); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/GainViews.vue?vue&type=script&lang=js&": -/*!****************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/GainViews.vue?vue&type=script&lang=js& ***! - \****************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('GainViews Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - }, - props: ['name', 'dbdatas'], - data: function data() { - return { - datas: [], - response: null, - processing: false - }; - }, - watch: {}, - methods: { - newItem: function newItem() { - this.datas.push({ - name: '', - file_name: '' - }); - }, - removeItem: function removeItem(index) { - var _this = this; - - if (confirm("Êtes-vous sûr(e) ?")) { - if (this.datas[index]['id'] !== undefined) { - this.processing = true; - this.response = "Suppression en cours..."; - axios.post('/bo/ajax/delete-gain-views', { - id: this.datas[index]['id'] - }).then(function (response) { - return _this.response = response.data; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la suppression."; - }); - this.datas.splice(index, 1); - setTimeout(function () { - this.processing = false; - }.bind(this), 3000); - } else { - this.datas.splice(index, 1); - } - } - }, - saveData: function saveData() { - var _this2 = this; - - this.processing = true; - this.response = "En cours de sauvegarde..."; - axios.post('/bo/ajax/save-gain-views', { - gainViews: this.datas - }).then(function (response) { - return _this2.datas = response.data; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - }); - this.response = "Sauvegarde terminée !"; - setTimeout(function () { - this.processing = false; - }.bind(this), 3000); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/InstantWin.vue?vue&type=script&lang=js&": -/*!*****************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/InstantWin.vue?vue&type=script&lang=js& ***! - \*****************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); -/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/es.number.constructor.js */ "./node_modules/core-js/modules/es.number.constructor.js"); -/* harmony import */ var core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_number_constructor_js__WEBPACK_IMPORTED_MODULE_2__); - - - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - var _this = this; - - console.log('Instant Win Component mounted.'); - this.datas = JSON.parse(this.instantwin); - this.clipboard = "Voici la liste des instants gagnants :\n"; - this.datas.forEach(function (element) { - return _this.clipboard += "Le " + new Date(element.appear_date).toLocaleDateString() + " à " + element.appear_date.substring(element.appear_date.length - 8, element.appear_date.length - 3) + " - " + element.prize.label_one + "\n"; - }); - $('.toast').toast(); - }, - props: { - cangenerate: Number, - startdate: String, - enddate: String, - instantwin: String - }, - data: function data() { - return { - datas: [], - response: null, - clipboard: '', - copying: false - }; - }, - methods: { - generate: function generate() { - var _this2 = this; - - axios.get('/bo/ajax/instant-win-generate').then(function (response) { - return _this2.datas = response.data; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la génération."; - }); - this.cangenerate = 0; - }, - copyToClipboard: function copyToClipboard() { - this.copying = true; - setTimeout(function () { - this.copying = false; - }.bind(this), 1000); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Prizes.vue?vue&type=script&lang=js&": -/*!*************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/Prizes.vue?vue&type=script&lang=js& ***! - \*************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('GainViews Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - this.gainviews = JSON.parse(this.dbgainviews); - }, - props: ['name', 'dbdatas', 'dbgainviews'], - data: function data() { - return { - datas: [], - gainviews: [], - response: null, - processing: false, - pdf_winning_proof: [] - }; - }, - watch: {}, - methods: { - handleFileUpload: function handleFileUpload(index) { - var files = event.target.files || event.dataTransfer.files; - if (!files.length) return; - this.pdf_winning_proof[index] = files[0]; - - if (!this.pdf_winning_proof[index]) { - event.preventDefault(); - alert('Aucun fichier choisi.'); - return; - } - - if (this.pdf_winning_proof[index].size > 1024 * 1024 * 20) { - event.preventDefault(); - alert('Fichier trop volumineux (> 20MB)'); - return; - } - }, - newItem: function newItem() { - this.datas.push({ - id: null, - arcadia_id: null, - label_one: '', - label_many: '', - quantity: 0, - notifications: 0, - additional_form: 0, - arcadia_operation_code: null, - arcadia_support_code: null, - pdf_winning_proof: null, - need_proof: 1, - gain_view_id: null - }); - }, - removeItem: function removeItem(index) { - var _this = this; - - if (confirm("Êtes-vous sûr(e) ?")) { - if (this.datas[index]['id'] !== undefined) { - this.processing = true; - this.response = "Suppression en cours..."; - axios.post('/bo/ajax/delete-prize', { - id: this.datas[index]['id'] - }).then(function (response) { - return _this.response = response.data; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la suppression."; - }); - this.datas.splice(index, 1); - setTimeout(function () { - this.processing = false; - }.bind(this), 3000); - } else { - this.datas.splice(index, 1); - } - } - }, - saveData: function saveData() { - var _this2 = this; - - var formData = new FormData(); - $.each(this.pdf_winning_proof, function (index, value) { - formData.append('pdf[' + index + "]", value); - }); - formData.append('prizes', JSON.stringify(this.datas)); - this.processing = true; - this.response = "En cours de sauvegarde..."; - axios.post('/bo/ajax/save-prizes', formData).then(function (response) { - _this2.datas = response.data; - _this2.response = "Sauvegarde terminée !"; - _this2.processing = false; - }).catch(function (error) { - console.log(error); - this.response = "Erreur lors de la sauvegarde."; - this.processing = false; - }); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/WebCoupons.vue?vue&type=script&lang=js&": -/*!*****************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/WebCoupons.vue?vue&type=script&lang=js& ***! - \*****************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.object.to-string.js */ "./node_modules/core-js/modules/es.object.to-string.js"); -/* harmony import */ var core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_object_to_string_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/web.dom-collections.for-each.js */ "./node_modules/core-js/modules/web.dom-collections.for-each.js"); -/* harmony import */ var core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_collections_for_each_js__WEBPACK_IMPORTED_MODULE_2__); - - - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('WebCoupons Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - }, - props: ['name', 'dbdatas'], - data: function data() { - return { - datas: [] - }; - }, - watch: {}, - methods: { - newItem: function newItem() { - this.datas.push({ - web_coupon_identifiant: '', - percentage: 0, - face_value: 0, - valid_on: '', - img_name: '' - }); - }, - removeItem: function removeItem(index) { - if (confirm("Êtes-vous sûr(e) ?")) { - this.datas.splice(index, 1); - } - } - }, - computed: { - totalPercentage: function totalPercentage() { - var total = 0; - this.datas.forEach(function (element) { - return total += parseInt(element.percentage); - }); - return total; - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/WinNotification.vue?vue&type=script&lang=js&": -/*!**********************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5[0].rules[0].use[0]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./resources/js/components/WinNotification.vue?vue&type=script&lang=js& ***! - \**********************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.splice.js */ "./node_modules/core-js/modules/es.array.splice.js"); -/* harmony import */ var core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_splice_js__WEBPACK_IMPORTED_MODULE_0__); - -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -// -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - mounted: function mounted() { - console.log('WinNotification Component mounted.'); - this.datas = JSON.parse(this.dbdatas); - }, - props: ['name', 'dbdatas'], - data: function data() { - return { - datas: [] - }; - }, - watch: {}, - methods: { - newItem: function newItem() { - this.datas.push({ - email: '' - }); - }, - removeItem: function removeItem(index) { - if (confirm("Êtes-vous sûr(e) ?")) { - this.datas.splice(index, 1); - } - } - } -}); - -/***/ }), - -/***/ "./resources/js/app.js": -/*!*****************************!*\ - !*** ./resources/js/app.js ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var v_clipboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! v-clipboard */ "./node_modules/v-clipboard/dist/index.min.js"); -/* harmony import */ var v_clipboard__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(v_clipboard__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! chart.js */ "./node_modules/chart.js/dist/Chart.js"); -/* harmony import */ var chart_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(chart_js__WEBPACK_IMPORTED_MODULE_1__); -/** - * First we will load all of this project's JavaScript dependencies which - * includes Vue and other libraries. It is a great starting point when - * building robust, powerful web applications using Vue and Laravel. - */ -__webpack_require__(/*! ./bootstrap */ "./resources/js/bootstrap.js"); - -__webpack_require__(/*! @fancyapps/fancybox */ "./node_modules/@fancyapps/fancybox/dist/jquery.fancybox.js"); - -window.Vue = (__webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm.js")["default"]); - - -Vue.use((v_clipboard__WEBPACK_IMPORTED_MODULE_0___default())); -/** - * The following block of code may be used to automatically register your - * Vue components. It will recursively scan this directory for the Vue - * components and automatically register them with their "basename". - * - * Eg. ./components/ExampleComponent.vue -> - */ -// const files = require.context('./', true, /\.vue$/i) -// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default)) - -Vue.component('win-notification', (__webpack_require__(/*! ./components/WinNotification.vue */ "./resources/js/components/WinNotification.vue")["default"])); -Vue.component('gain-views', (__webpack_require__(/*! ./components/GainViews.vue */ "./resources/js/components/GainViews.vue")["default"])); -Vue.component('prizes', (__webpack_require__(/*! ./components/Prizes.vue */ "./resources/js/components/Prizes.vue")["default"])); -Vue.component('instant-win', (__webpack_require__(/*! ./components/InstantWin.vue */ "./resources/js/components/InstantWin.vue")["default"])); -Vue.component('codes-ean', (__webpack_require__(/*! ./components/CodesEAN.vue */ "./resources/js/components/CodesEAN.vue")["default"])); -Vue.component('banned-ip', (__webpack_require__(/*! ./components/BannedIP.vue */ "./resources/js/components/BannedIP.vue")["default"])); -Vue.component('faq-themes', (__webpack_require__(/*! ./components/FaqThemes.vue */ "./resources/js/components/FaqThemes.vue")["default"])); -Vue.component('faq-questions', (__webpack_require__(/*! ./components/FaqQuestions.vue */ "./resources/js/components/FaqQuestions.vue")["default"])); -Vue.component('web-coupons', (__webpack_require__(/*! ./components/WebCoupons.vue */ "./resources/js/components/WebCoupons.vue")["default"])); -/** - * Next, we will create a fresh Vue application instance and attach it to - * the page. Then, you may begin adding components to this application - * or customize the JavaScript scaffolding to fit your unique needs. - */ - -var app = new Vue({ - el: '#app' -}); - -/***/ }), - -/***/ "./resources/js/bootstrap.js": -/*!***********************************!*\ - !*** ./resources/js/bootstrap.js ***! - \***********************************/ -/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => { - -window._ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js"); -/** - * We'll load jQuery and the Bootstrap jQuery plugin which provides support - * for JavaScript based Bootstrap features such as modals and tabs. This - * code may be modified to fit the specific needs of your application. - */ - -try { - window.Popper = (__webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js")["default"]); - window.$ = window.jQuery = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); - - __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.js"); -} catch (e) {} -/** - * We'll load the axios HTTP library which allows us to easily issue requests - * to our Laravel back-end. This library automatically handles sending the - * CSRF token as a header based on the value of the "XSRF" token cookie. - */ - - -window.axios = __webpack_require__(/*! axios */ "./node_modules/axios/index.js"); -window.axios.defaults.headers.common = { - 'X-Requested-With': 'XMLHttpRequest', - 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content') -}; -/** - * Echo exposes an expressive API for subscribing to channels and listening - * for events that are broadcast by Laravel. Echo and event broadcasting - * allows your team to easily build robust real-time web applications. - */ -// import Echo from 'laravel-echo'; -// window.Pusher = require('pusher-js'); -// window.Echo = new Echo({ -// broadcaster: 'pusher', -// key: process.env.MIX_PUSHER_APP_KEY, -// cluster: process.env.MIX_PUSHER_APP_CLUSTER, -// forceTLS: true -// }); - -/***/ }), - -/***/ "./node_modules/bootstrap/dist/js/bootstrap.js": -/*!*****************************************************!*\ - !*** ./node_modules/bootstrap/dist/js/bootstrap.js ***! - \*****************************************************/ -/***/ (function(__unused_webpack_module, exports, __webpack_require__) { - -/*! - * Bootstrap v4.6.1 (https://getbootstrap.com/) - * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */ -(function (global, factory) { - true ? factory(exports, __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"), __webpack_require__(/*! popper.js */ "./node_modules/popper.js/dist/esm/popper.js")) : - 0; -})(this, (function (exports, $, Popper) { 'use strict'; - - function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } - - var $__default = /*#__PURE__*/_interopDefaultLegacy($); - var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper); - - function _defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - function _createClass(Constructor, protoProps, staticProps) { - if (protoProps) _defineProperties(Constructor.prototype, protoProps); - if (staticProps) _defineProperties(Constructor, staticProps); - return Constructor; - } - - function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); - } - - function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - - _setPrototypeOf(subClass, superClass); - } - - function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); - } - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.6.1): util.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - /** - * Private TransitionEnd Helpers - */ - - var TRANSITION_END = 'transitionend'; - var MAX_UID = 1000000; - var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) - - function toType(obj) { - if (obj === null || typeof obj === 'undefined') { - return "" + obj; - } - - return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); - } - - function getSpecialTransitionEndEvent() { - return { - bindType: TRANSITION_END, - delegateType: TRANSITION_END, - handle: function handle(event) { - if ($__default["default"](event.target).is(this)) { - return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params - } - - return undefined; - } - }; - } - - function transitionEndEmulator(duration) { - var _this = this; - - var called = false; - $__default["default"](this).one(Util.TRANSITION_END, function () { - called = true; - }); - setTimeout(function () { - if (!called) { - Util.triggerTransitionEnd(_this); - } - }, duration); - return this; - } - - function setTransitionEndSupport() { - $__default["default"].fn.emulateTransitionEnd = transitionEndEmulator; - $__default["default"].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); - } - /** - * Public Util API - */ - - - var Util = { - TRANSITION_END: 'bsTransitionEnd', - getUID: function getUID(prefix) { - do { - // eslint-disable-next-line no-bitwise - prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here - } while (document.getElementById(prefix)); - - return prefix; - }, - getSelectorFromElement: function getSelectorFromElement(element) { - var selector = element.getAttribute('data-target'); - - if (!selector || selector === '#') { - var hrefAttr = element.getAttribute('href'); - selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; - } - - try { - return document.querySelector(selector) ? selector : null; - } catch (_) { - return null; - } - }, - getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { - if (!element) { - return 0; - } // Get transition-duration of the element - - - var transitionDuration = $__default["default"](element).css('transition-duration'); - var transitionDelay = $__default["default"](element).css('transition-delay'); - var floatTransitionDuration = parseFloat(transitionDuration); - var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found - - if (!floatTransitionDuration && !floatTransitionDelay) { - return 0; - } // If multiple durations are defined, take the first - - - transitionDuration = transitionDuration.split(',')[0]; - transitionDelay = transitionDelay.split(',')[0]; - return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; - }, - reflow: function reflow(element) { - return element.offsetHeight; - }, - triggerTransitionEnd: function triggerTransitionEnd(element) { - $__default["default"](element).trigger(TRANSITION_END); - }, - supportsTransitionEnd: function supportsTransitionEnd() { - return Boolean(TRANSITION_END); - }, - isElement: function isElement(obj) { - return (obj[0] || obj).nodeType; - }, - typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { - for (var property in configTypes) { - if (Object.prototype.hasOwnProperty.call(configTypes, property)) { - var expectedTypes = configTypes[property]; - var value = config[property]; - var valueType = value && Util.isElement(value) ? 'element' : toType(value); - - if (!new RegExp(expectedTypes).test(valueType)) { - throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); - } - } - } - }, - findShadowRoot: function findShadowRoot(element) { - if (!document.documentElement.attachShadow) { - return null; - } // Can find the shadow root otherwise it'll return the document - - - if (typeof element.getRootNode === 'function') { - var root = element.getRootNode(); - return root instanceof ShadowRoot ? root : null; - } - - if (element instanceof ShadowRoot) { - return element; - } // when we don't find a shadow root - - - if (!element.parentNode) { - return null; - } - - return Util.findShadowRoot(element.parentNode); - }, - jQueryDetection: function jQueryDetection() { - if (typeof $__default["default"] === 'undefined') { - throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); - } - - var version = $__default["default"].fn.jquery.split(' ')[0].split('.'); - var minMajor = 1; - var ltMajor = 2; - var minMinor = 9; - var minPatch = 1; - var maxMajor = 4; - - if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { - throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0'); - } - } - }; - Util.jQueryDetection(); - setTransitionEndSupport(); - - /** - * Constants - */ - - var NAME$a = 'alert'; - var VERSION$a = '4.6.1'; - var DATA_KEY$a = 'bs.alert'; - var EVENT_KEY$a = "." + DATA_KEY$a; - var DATA_API_KEY$7 = '.data-api'; - var JQUERY_NO_CONFLICT$a = $__default["default"].fn[NAME$a]; - var CLASS_NAME_ALERT = 'alert'; - var CLASS_NAME_FADE$5 = 'fade'; - var CLASS_NAME_SHOW$7 = 'show'; - var EVENT_CLOSE = "close" + EVENT_KEY$a; - var EVENT_CLOSED = "closed" + EVENT_KEY$a; - var EVENT_CLICK_DATA_API$6 = "click" + EVENT_KEY$a + DATA_API_KEY$7; - var SELECTOR_DISMISS = '[data-dismiss="alert"]'; - /** - * Class definition - */ - - var Alert = /*#__PURE__*/function () { - function Alert(element) { - this._element = element; - } // Getters - - - var _proto = Alert.prototype; - - // Public - _proto.close = function close(element) { - var rootElement = this._element; - - if (element) { - rootElement = this._getRootElement(element); - } - - var customEvent = this._triggerCloseEvent(rootElement); - - if (customEvent.isDefaultPrevented()) { - return; - } - - this._removeElement(rootElement); - }; - - _proto.dispose = function dispose() { - $__default["default"].removeData(this._element, DATA_KEY$a); - this._element = null; - } // Private - ; - - _proto._getRootElement = function _getRootElement(element) { - var selector = Util.getSelectorFromElement(element); - var parent = false; - - if (selector) { - parent = document.querySelector(selector); - } - - if (!parent) { - parent = $__default["default"](element).closest("." + CLASS_NAME_ALERT)[0]; - } - - return parent; - }; - - _proto._triggerCloseEvent = function _triggerCloseEvent(element) { - var closeEvent = $__default["default"].Event(EVENT_CLOSE); - $__default["default"](element).trigger(closeEvent); - return closeEvent; - }; - - _proto._removeElement = function _removeElement(element) { - var _this = this; - - $__default["default"](element).removeClass(CLASS_NAME_SHOW$7); - - if (!$__default["default"](element).hasClass(CLASS_NAME_FADE$5)) { - this._destroyElement(element); - - return; - } - - var transitionDuration = Util.getTransitionDurationFromElement(element); - $__default["default"](element).one(Util.TRANSITION_END, function (event) { - return _this._destroyElement(element, event); - }).emulateTransitionEnd(transitionDuration); - }; - - _proto._destroyElement = function _destroyElement(element) { - $__default["default"](element).detach().trigger(EVENT_CLOSED).remove(); - } // Static - ; - - Alert._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var $element = $__default["default"](this); - var data = $element.data(DATA_KEY$a); - - if (!data) { - data = new Alert(this); - $element.data(DATA_KEY$a, data); - } - - if (config === 'close') { - data[config](this); - } - }); - }; - - Alert._handleDismiss = function _handleDismiss(alertInstance) { - return function (event) { - if (event) { - event.preventDefault(); - } - - alertInstance.close(this); - }; - }; - - _createClass(Alert, null, [{ - key: "VERSION", - get: function get() { - return VERSION$a; - } - }]); - - return Alert; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_CLICK_DATA_API$6, SELECTOR_DISMISS, Alert._handleDismiss(new Alert())); - /** - * jQuery - */ - - $__default["default"].fn[NAME$a] = Alert._jQueryInterface; - $__default["default"].fn[NAME$a].Constructor = Alert; - - $__default["default"].fn[NAME$a].noConflict = function () { - $__default["default"].fn[NAME$a] = JQUERY_NO_CONFLICT$a; - return Alert._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$9 = 'button'; - var VERSION$9 = '4.6.1'; - var DATA_KEY$9 = 'bs.button'; - var EVENT_KEY$9 = "." + DATA_KEY$9; - var DATA_API_KEY$6 = '.data-api'; - var JQUERY_NO_CONFLICT$9 = $__default["default"].fn[NAME$9]; - var CLASS_NAME_ACTIVE$3 = 'active'; - var CLASS_NAME_BUTTON = 'btn'; - var CLASS_NAME_FOCUS = 'focus'; - var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$9 + DATA_API_KEY$6; - var EVENT_FOCUS_BLUR_DATA_API = "focus" + EVENT_KEY$9 + DATA_API_KEY$6 + " " + ("blur" + EVENT_KEY$9 + DATA_API_KEY$6); - var EVENT_LOAD_DATA_API$2 = "load" + EVENT_KEY$9 + DATA_API_KEY$6; - var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]'; - var SELECTOR_DATA_TOGGLES = '[data-toggle="buttons"]'; - var SELECTOR_DATA_TOGGLE$4 = '[data-toggle="button"]'; - var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle="buttons"] .btn'; - var SELECTOR_INPUT = 'input:not([type="hidden"])'; - var SELECTOR_ACTIVE$2 = '.active'; - var SELECTOR_BUTTON = '.btn'; - /** - * Class definition - */ - - var Button = /*#__PURE__*/function () { - function Button(element) { - this._element = element; - this.shouldAvoidTriggerChange = false; - } // Getters - - - var _proto = Button.prototype; - - // Public - _proto.toggle = function toggle() { - var triggerChangeEvent = true; - var addAriaPressed = true; - var rootElement = $__default["default"](this._element).closest(SELECTOR_DATA_TOGGLES)[0]; - - if (rootElement) { - var input = this._element.querySelector(SELECTOR_INPUT); - - if (input) { - if (input.type === 'radio') { - if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE$3)) { - triggerChangeEvent = false; - } else { - var activeElement = rootElement.querySelector(SELECTOR_ACTIVE$2); - - if (activeElement) { - $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$3); - } - } - } - - if (triggerChangeEvent) { - // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input - if (input.type === 'checkbox' || input.type === 'radio') { - input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE$3); - } - - if (!this.shouldAvoidTriggerChange) { - $__default["default"](input).trigger('change'); - } - } - - input.focus(); - addAriaPressed = false; - } - } - - if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) { - if (addAriaPressed) { - this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE$3)); - } - - if (triggerChangeEvent) { - $__default["default"](this._element).toggleClass(CLASS_NAME_ACTIVE$3); - } - } - }; - - _proto.dispose = function dispose() { - $__default["default"].removeData(this._element, DATA_KEY$9); - this._element = null; - } // Static - ; - - Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) { - return this.each(function () { - var $element = $__default["default"](this); - var data = $element.data(DATA_KEY$9); - - if (!data) { - data = new Button(this); - $element.data(DATA_KEY$9, data); - } - - data.shouldAvoidTriggerChange = avoidTriggerChange; - - if (config === 'toggle') { - data[config](); - } - }); - }; - - _createClass(Button, null, [{ - key: "VERSION", - get: function get() { - return VERSION$9; - } - }]); - - return Button; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE_CARROT, function (event) { - var button = event.target; - var initialButton = button; - - if (!$__default["default"](button).hasClass(CLASS_NAME_BUTTON)) { - button = $__default["default"](button).closest(SELECTOR_BUTTON)[0]; - } - - if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) { - event.preventDefault(); // work around Firefox bug #1540995 - } else { - var inputBtn = button.querySelector(SELECTOR_INPUT); - - if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) { - event.preventDefault(); // work around Firefox bug #1540995 - - return; - } - - if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') { - Button._jQueryInterface.call($__default["default"](button), 'toggle', initialButton.tagName === 'INPUT'); - } - } - }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) { - var button = $__default["default"](event.target).closest(SELECTOR_BUTTON)[0]; - $__default["default"](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type)); - }); - $__default["default"](window).on(EVENT_LOAD_DATA_API$2, function () { - // ensure correct active class is set to match the controls' actual values/states - // find all checkboxes/readio buttons inside data-toggle groups - var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS)); - - for (var i = 0, len = buttons.length; i < len; i++) { - var button = buttons[i]; - var input = button.querySelector(SELECTOR_INPUT); - - if (input.checked || input.hasAttribute('checked')) { - button.classList.add(CLASS_NAME_ACTIVE$3); - } else { - button.classList.remove(CLASS_NAME_ACTIVE$3); - } - } // find all button toggles - - - buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$4)); - - for (var _i = 0, _len = buttons.length; _i < _len; _i++) { - var _button = buttons[_i]; - - if (_button.getAttribute('aria-pressed') === 'true') { - _button.classList.add(CLASS_NAME_ACTIVE$3); - } else { - _button.classList.remove(CLASS_NAME_ACTIVE$3); - } - } - }); - /** - * jQuery - */ - - $__default["default"].fn[NAME$9] = Button._jQueryInterface; - $__default["default"].fn[NAME$9].Constructor = Button; - - $__default["default"].fn[NAME$9].noConflict = function () { - $__default["default"].fn[NAME$9] = JQUERY_NO_CONFLICT$9; - return Button._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$8 = 'carousel'; - var VERSION$8 = '4.6.1'; - var DATA_KEY$8 = 'bs.carousel'; - var EVENT_KEY$8 = "." + DATA_KEY$8; - var DATA_API_KEY$5 = '.data-api'; - var JQUERY_NO_CONFLICT$8 = $__default["default"].fn[NAME$8]; - var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key - - var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key - - var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch - - var SWIPE_THRESHOLD = 40; - var CLASS_NAME_CAROUSEL = 'carousel'; - var CLASS_NAME_ACTIVE$2 = 'active'; - var CLASS_NAME_SLIDE = 'slide'; - var CLASS_NAME_RIGHT = 'carousel-item-right'; - var CLASS_NAME_LEFT = 'carousel-item-left'; - var CLASS_NAME_NEXT = 'carousel-item-next'; - var CLASS_NAME_PREV = 'carousel-item-prev'; - var CLASS_NAME_POINTER_EVENT = 'pointer-event'; - var DIRECTION_NEXT = 'next'; - var DIRECTION_PREV = 'prev'; - var DIRECTION_LEFT = 'left'; - var DIRECTION_RIGHT = 'right'; - var EVENT_SLIDE = "slide" + EVENT_KEY$8; - var EVENT_SLID = "slid" + EVENT_KEY$8; - var EVENT_KEYDOWN = "keydown" + EVENT_KEY$8; - var EVENT_MOUSEENTER = "mouseenter" + EVENT_KEY$8; - var EVENT_MOUSELEAVE = "mouseleave" + EVENT_KEY$8; - var EVENT_TOUCHSTART = "touchstart" + EVENT_KEY$8; - var EVENT_TOUCHMOVE = "touchmove" + EVENT_KEY$8; - var EVENT_TOUCHEND = "touchend" + EVENT_KEY$8; - var EVENT_POINTERDOWN = "pointerdown" + EVENT_KEY$8; - var EVENT_POINTERUP = "pointerup" + EVENT_KEY$8; - var EVENT_DRAG_START = "dragstart" + EVENT_KEY$8; - var EVENT_LOAD_DATA_API$1 = "load" + EVENT_KEY$8 + DATA_API_KEY$5; - var EVENT_CLICK_DATA_API$4 = "click" + EVENT_KEY$8 + DATA_API_KEY$5; - var SELECTOR_ACTIVE$1 = '.active'; - var SELECTOR_ACTIVE_ITEM = '.active.carousel-item'; - var SELECTOR_ITEM = '.carousel-item'; - var SELECTOR_ITEM_IMG = '.carousel-item img'; - var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'; - var SELECTOR_INDICATORS = '.carousel-indicators'; - var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'; - var SELECTOR_DATA_RIDE = '[data-ride="carousel"]'; - var Default$7 = { - interval: 5000, - keyboard: true, - slide: false, - pause: 'hover', - wrap: true, - touch: true - }; - var DefaultType$7 = { - interval: '(number|boolean)', - keyboard: 'boolean', - slide: '(boolean|string)', - pause: '(string|boolean)', - wrap: 'boolean', - touch: 'boolean' - }; - var PointerType = { - TOUCH: 'touch', - PEN: 'pen' - }; - /** - * Class definition - */ - - var Carousel = /*#__PURE__*/function () { - function Carousel(element, config) { - this._items = null; - this._interval = null; - this._activeElement = null; - this._isPaused = false; - this._isSliding = false; - this.touchTimeout = null; - this.touchStartX = 0; - this.touchDeltaX = 0; - this._config = this._getConfig(config); - this._element = element; - this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS); - this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0; - this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent); - - this._addEventListeners(); - } // Getters - - - var _proto = Carousel.prototype; - - // Public - _proto.next = function next() { - if (!this._isSliding) { - this._slide(DIRECTION_NEXT); - } - }; - - _proto.nextWhenVisible = function nextWhenVisible() { - var $element = $__default["default"](this._element); // Don't call next when the page isn't visible - // or the carousel or its parent isn't visible - - if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') { - this.next(); - } - }; - - _proto.prev = function prev() { - if (!this._isSliding) { - this._slide(DIRECTION_PREV); - } - }; - - _proto.pause = function pause(event) { - if (!event) { - this._isPaused = true; - } - - if (this._element.querySelector(SELECTOR_NEXT_PREV)) { - Util.triggerTransitionEnd(this._element); - this.cycle(true); - } - - clearInterval(this._interval); - this._interval = null; - }; - - _proto.cycle = function cycle(event) { - if (!event) { - this._isPaused = false; - } - - if (this._interval) { - clearInterval(this._interval); - this._interval = null; - } - - if (this._config.interval && !this._isPaused) { - this._updateInterval(); - - this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); - } - }; - - _proto.to = function to(index) { - var _this = this; - - this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM); - - var activeIndex = this._getItemIndex(this._activeElement); - - if (index > this._items.length - 1 || index < 0) { - return; - } - - if (this._isSliding) { - $__default["default"](this._element).one(EVENT_SLID, function () { - return _this.to(index); - }); - return; - } - - if (activeIndex === index) { - this.pause(); - this.cycle(); - return; - } - - var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV; - - this._slide(direction, this._items[index]); - }; - - _proto.dispose = function dispose() { - $__default["default"](this._element).off(EVENT_KEY$8); - $__default["default"].removeData(this._element, DATA_KEY$8); - this._items = null; - this._config = null; - this._element = null; - this._interval = null; - this._isPaused = null; - this._isSliding = null; - this._activeElement = null; - this._indicatorsElement = null; - } // Private - ; - - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$7, config); - Util.typeCheckConfig(NAME$8, config, DefaultType$7); - return config; - }; - - _proto._handleSwipe = function _handleSwipe() { - var absDeltax = Math.abs(this.touchDeltaX); - - if (absDeltax <= SWIPE_THRESHOLD) { - return; - } - - var direction = absDeltax / this.touchDeltaX; - this.touchDeltaX = 0; // swipe left - - if (direction > 0) { - this.prev(); - } // swipe right - - - if (direction < 0) { - this.next(); - } - }; - - _proto._addEventListeners = function _addEventListeners() { - var _this2 = this; - - if (this._config.keyboard) { - $__default["default"](this._element).on(EVENT_KEYDOWN, function (event) { - return _this2._keydown(event); - }); - } - - if (this._config.pause === 'hover') { - $__default["default"](this._element).on(EVENT_MOUSEENTER, function (event) { - return _this2.pause(event); - }).on(EVENT_MOUSELEAVE, function (event) { - return _this2.cycle(event); - }); - } - - if (this._config.touch) { - this._addTouchEventListeners(); - } - }; - - _proto._addTouchEventListeners = function _addTouchEventListeners() { - var _this3 = this; - - if (!this._touchSupported) { - return; - } - - var start = function start(event) { - if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { - _this3.touchStartX = event.originalEvent.clientX; - } else if (!_this3._pointerEvent) { - _this3.touchStartX = event.originalEvent.touches[0].clientX; - } - }; - - var move = function move(event) { - // ensure swiping with one touch and not pinching - _this3.touchDeltaX = event.originalEvent.touches && event.originalEvent.touches.length > 1 ? 0 : event.originalEvent.touches[0].clientX - _this3.touchStartX; - }; - - var end = function end(event) { - if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) { - _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX; - } - - _this3._handleSwipe(); - - if (_this3._config.pause === 'hover') { - // If it's a touch-enabled device, mouseenter/leave are fired as - // part of the mouse compatibility events on first tap - the carousel - // would stop cycling until user tapped out of it; - // here, we listen for touchend, explicitly pause the carousel - // (as if it's the second time we tap on it, mouseenter compat event - // is NOT fired) and after a timeout (to allow for mouse compatibility - // events to fire) we explicitly restart cycling - _this3.pause(); - - if (_this3.touchTimeout) { - clearTimeout(_this3.touchTimeout); - } - - _this3.touchTimeout = setTimeout(function (event) { - return _this3.cycle(event); - }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval); - } - }; - - $__default["default"](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) { - return e.preventDefault(); - }); - - if (this._pointerEvent) { - $__default["default"](this._element).on(EVENT_POINTERDOWN, function (event) { - return start(event); - }); - $__default["default"](this._element).on(EVENT_POINTERUP, function (event) { - return end(event); - }); - - this._element.classList.add(CLASS_NAME_POINTER_EVENT); - } else { - $__default["default"](this._element).on(EVENT_TOUCHSTART, function (event) { - return start(event); - }); - $__default["default"](this._element).on(EVENT_TOUCHMOVE, function (event) { - return move(event); - }); - $__default["default"](this._element).on(EVENT_TOUCHEND, function (event) { - return end(event); - }); - } - }; - - _proto._keydown = function _keydown(event) { - if (/input|textarea/i.test(event.target.tagName)) { - return; - } - - switch (event.which) { - case ARROW_LEFT_KEYCODE: - event.preventDefault(); - this.prev(); - break; - - case ARROW_RIGHT_KEYCODE: - event.preventDefault(); - this.next(); - break; - } - }; - - _proto._getItemIndex = function _getItemIndex(element) { - this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : []; - return this._items.indexOf(element); - }; - - _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === DIRECTION_NEXT; - var isPrevDirection = direction === DIRECTION_PREV; - - var activeIndex = this._getItemIndex(activeElement); - - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; - - if (isGoingToWrap && !this._config.wrap) { - return activeElement; - } - - var delta = direction === DIRECTION_PREV ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; - return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - }; - - _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) { - var targetIndex = this._getItemIndex(relatedTarget); - - var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM)); - - var slideEvent = $__default["default"].Event(EVENT_SLIDE, { - relatedTarget: relatedTarget, - direction: eventDirectionName, - from: fromIndex, - to: targetIndex - }); - $__default["default"](this._element).trigger(slideEvent); - return slideEvent; - }; - - _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1)); - $__default["default"](indicators).removeClass(CLASS_NAME_ACTIVE$2); - - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; - - if (nextIndicator) { - $__default["default"](nextIndicator).addClass(CLASS_NAME_ACTIVE$2); - } - } - }; - - _proto._updateInterval = function _updateInterval() { - var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM); - - if (!element) { - return; - } - - var elementInterval = parseInt(element.getAttribute('data-interval'), 10); - - if (elementInterval) { - this._config.defaultInterval = this._config.defaultInterval || this._config.interval; - this._config.interval = elementInterval; - } else { - this._config.interval = this._config.defaultInterval || this._config.interval; - } - }; - - _proto._slide = function _slide(direction, element) { - var _this4 = this; - - var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM); - - var activeElementIndex = this._getItemIndex(activeElement); - - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); - - var nextElementIndex = this._getItemIndex(nextElement); - - var isCycling = Boolean(this._interval); - var directionalClassName; - var orderClassName; - var eventDirectionName; - - if (direction === DIRECTION_NEXT) { - directionalClassName = CLASS_NAME_LEFT; - orderClassName = CLASS_NAME_NEXT; - eventDirectionName = DIRECTION_LEFT; - } else { - directionalClassName = CLASS_NAME_RIGHT; - orderClassName = CLASS_NAME_PREV; - eventDirectionName = DIRECTION_RIGHT; - } - - if (nextElement && $__default["default"](nextElement).hasClass(CLASS_NAME_ACTIVE$2)) { - this._isSliding = false; - return; - } - - var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName); - - if (slideEvent.isDefaultPrevented()) { - return; - } - - if (!activeElement || !nextElement) { - // Some weirdness is happening, so we bail - return; - } - - this._isSliding = true; - - if (isCycling) { - this.pause(); - } - - this._setActiveIndicatorElement(nextElement); - - this._activeElement = nextElement; - var slidEvent = $__default["default"].Event(EVENT_SLID, { - relatedTarget: nextElement, - direction: eventDirectionName, - from: activeElementIndex, - to: nextElementIndex - }); - - if ($__default["default"](this._element).hasClass(CLASS_NAME_SLIDE)) { - $__default["default"](nextElement).addClass(orderClassName); - Util.reflow(nextElement); - $__default["default"](activeElement).addClass(directionalClassName); - $__default["default"](nextElement).addClass(directionalClassName); - var transitionDuration = Util.getTransitionDurationFromElement(activeElement); - $__default["default"](activeElement).one(Util.TRANSITION_END, function () { - $__default["default"](nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(CLASS_NAME_ACTIVE$2); - $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2 + " " + orderClassName + " " + directionalClassName); - _this4._isSliding = false; - setTimeout(function () { - return $__default["default"](_this4._element).trigger(slidEvent); - }, 0); - }).emulateTransitionEnd(transitionDuration); - } else { - $__default["default"](activeElement).removeClass(CLASS_NAME_ACTIVE$2); - $__default["default"](nextElement).addClass(CLASS_NAME_ACTIVE$2); - this._isSliding = false; - $__default["default"](this._element).trigger(slidEvent); - } - - if (isCycling) { - this.cycle(); - } - } // Static - ; - - Carousel._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $__default["default"](this).data(DATA_KEY$8); - - var _config = _extends({}, Default$7, $__default["default"](this).data()); - - if (typeof config === 'object') { - _config = _extends({}, _config, config); - } - - var action = typeof config === 'string' ? config : _config.slide; - - if (!data) { - data = new Carousel(this, _config); - $__default["default"](this).data(DATA_KEY$8, data); - } - - if (typeof config === 'number') { - data.to(config); - } else if (typeof action === 'string') { - if (typeof data[action] === 'undefined') { - throw new TypeError("No method named \"" + action + "\""); - } - - data[action](); - } else if (_config.interval && _config.ride) { - data.pause(); - data.cycle(); - } - }); - }; - - Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { - var selector = Util.getSelectorFromElement(this); - - if (!selector) { - return; - } - - var target = $__default["default"](selector)[0]; - - if (!target || !$__default["default"](target).hasClass(CLASS_NAME_CAROUSEL)) { - return; - } - - var config = _extends({}, $__default["default"](target).data(), $__default["default"](this).data()); - - var slideIndex = this.getAttribute('data-slide-to'); - - if (slideIndex) { - config.interval = false; - } - - Carousel._jQueryInterface.call($__default["default"](target), config); - - if (slideIndex) { - $__default["default"](target).data(DATA_KEY$8).to(slideIndex); - } - - event.preventDefault(); - }; - - _createClass(Carousel, null, [{ - key: "VERSION", - get: function get() { - return VERSION$8; - } - }, { - key: "Default", - get: function get() { - return Default$7; - } - }]); - - return Carousel; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler); - $__default["default"](window).on(EVENT_LOAD_DATA_API$1, function () { - var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE)); - - for (var i = 0, len = carousels.length; i < len; i++) { - var $carousel = $__default["default"](carousels[i]); - - Carousel._jQueryInterface.call($carousel, $carousel.data()); - } - }); - /** - * jQuery - */ - - $__default["default"].fn[NAME$8] = Carousel._jQueryInterface; - $__default["default"].fn[NAME$8].Constructor = Carousel; - - $__default["default"].fn[NAME$8].noConflict = function () { - $__default["default"].fn[NAME$8] = JQUERY_NO_CONFLICT$8; - return Carousel._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$7 = 'collapse'; - var VERSION$7 = '4.6.1'; - var DATA_KEY$7 = 'bs.collapse'; - var EVENT_KEY$7 = "." + DATA_KEY$7; - var DATA_API_KEY$4 = '.data-api'; - var JQUERY_NO_CONFLICT$7 = $__default["default"].fn[NAME$7]; - var CLASS_NAME_SHOW$6 = 'show'; - var CLASS_NAME_COLLAPSE = 'collapse'; - var CLASS_NAME_COLLAPSING = 'collapsing'; - var CLASS_NAME_COLLAPSED = 'collapsed'; - var DIMENSION_WIDTH = 'width'; - var DIMENSION_HEIGHT = 'height'; - var EVENT_SHOW$4 = "show" + EVENT_KEY$7; - var EVENT_SHOWN$4 = "shown" + EVENT_KEY$7; - var EVENT_HIDE$4 = "hide" + EVENT_KEY$7; - var EVENT_HIDDEN$4 = "hidden" + EVENT_KEY$7; - var EVENT_CLICK_DATA_API$3 = "click" + EVENT_KEY$7 + DATA_API_KEY$4; - var SELECTOR_ACTIVES = '.show, .collapsing'; - var SELECTOR_DATA_TOGGLE$3 = '[data-toggle="collapse"]'; - var Default$6 = { - toggle: true, - parent: '' - }; - var DefaultType$6 = { - toggle: 'boolean', - parent: '(string|element)' - }; - /** - * Class definition - */ - - var Collapse = /*#__PURE__*/function () { - function Collapse(element, config) { - this._isTransitioning = false; - this._element = element; - this._config = this._getConfig(config); - this._triggerArray = [].slice.call(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]"))); - var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$3)); - - for (var i = 0, len = toggleList.length; i < len; i++) { - var elem = toggleList[i]; - var selector = Util.getSelectorFromElement(elem); - var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) { - return foundElem === element; - }); - - if (selector !== null && filterElement.length > 0) { - this._selector = selector; - - this._triggerArray.push(elem); - } - } - - this._parent = this._config.parent ? this._getParent() : null; - - if (!this._config.parent) { - this._addAriaAndCollapsedClass(this._element, this._triggerArray); - } - - if (this._config.toggle) { - this.toggle(); - } - } // Getters - - - var _proto = Collapse.prototype; - - // Public - _proto.toggle = function toggle() { - if ($__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) { - this.hide(); - } else { - this.show(); - } - }; - - _proto.show = function show() { - var _this = this; - - if (this._isTransitioning || $__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) { - return; - } - - var actives; - var activesData; - - if (this._parent) { - actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) { - if (typeof _this._config.parent === 'string') { - return elem.getAttribute('data-parent') === _this._config.parent; - } - - return elem.classList.contains(CLASS_NAME_COLLAPSE); - }); - - if (actives.length === 0) { - actives = null; - } - } - - if (actives) { - activesData = $__default["default"](actives).not(this._selector).data(DATA_KEY$7); - - if (activesData && activesData._isTransitioning) { - return; - } - } - - var startEvent = $__default["default"].Event(EVENT_SHOW$4); - $__default["default"](this._element).trigger(startEvent); - - if (startEvent.isDefaultPrevented()) { - return; - } - - if (actives) { - Collapse._jQueryInterface.call($__default["default"](actives).not(this._selector), 'hide'); - - if (!activesData) { - $__default["default"](actives).data(DATA_KEY$7, null); - } - } - - var dimension = this._getDimension(); - - $__default["default"](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING); - this._element.style[dimension] = 0; - - if (this._triggerArray.length) { - $__default["default"](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true); - } - - this.setTransitioning(true); - - var complete = function complete() { - $__default["default"](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6); - _this._element.style[dimension] = ''; - - _this.setTransitioning(false); - - $__default["default"](_this._element).trigger(EVENT_SHOWN$4); - }; - - var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1); - var scrollSize = "scroll" + capitalizedDimension; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - this._element.style[dimension] = this._element[scrollSize] + "px"; - }; - - _proto.hide = function hide() { - var _this2 = this; - - if (this._isTransitioning || !$__default["default"](this._element).hasClass(CLASS_NAME_SHOW$6)) { - return; - } - - var startEvent = $__default["default"].Event(EVENT_HIDE$4); - $__default["default"](this._element).trigger(startEvent); - - if (startEvent.isDefaultPrevented()) { - return; - } - - var dimension = this._getDimension(); - - this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px"; - Util.reflow(this._element); - $__default["default"](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + " " + CLASS_NAME_SHOW$6); - var triggerArrayLength = this._triggerArray.length; - - if (triggerArrayLength > 0) { - for (var i = 0; i < triggerArrayLength; i++) { - var trigger = this._triggerArray[i]; - var selector = Util.getSelectorFromElement(trigger); - - if (selector !== null) { - var $elem = $__default["default"]([].slice.call(document.querySelectorAll(selector))); - - if (!$elem.hasClass(CLASS_NAME_SHOW$6)) { - $__default["default"](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false); - } - } - } - } - - this.setTransitioning(true); - - var complete = function complete() { - _this2.setTransitioning(false); - - $__default["default"](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN$4); - }; - - this._element.style[dimension] = ''; - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $__default["default"](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - }; - - _proto.setTransitioning = function setTransitioning(isTransitioning) { - this._isTransitioning = isTransitioning; - }; - - _proto.dispose = function dispose() { - $__default["default"].removeData(this._element, DATA_KEY$7); - this._config = null; - this._parent = null; - this._element = null; - this._triggerArray = null; - this._isTransitioning = null; - } // Private - ; - - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$6, config); - config.toggle = Boolean(config.toggle); // Coerce string values - - Util.typeCheckConfig(NAME$7, config, DefaultType$6); - return config; - }; - - _proto._getDimension = function _getDimension() { - var hasWidth = $__default["default"](this._element).hasClass(DIMENSION_WIDTH); - return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT; - }; - - _proto._getParent = function _getParent() { - var _this3 = this; - - var parent; - - if (Util.isElement(this._config.parent)) { - parent = this._config.parent; // It's a jQuery object - - if (typeof this._config.parent.jquery !== 'undefined') { - parent = this._config.parent[0]; - } - } else { - parent = document.querySelector(this._config.parent); - } - - var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]"; - var children = [].slice.call(parent.querySelectorAll(selector)); - $__default["default"](children).each(function (i, element) { - _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); - }); - return parent; - }; - - _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) { - var isOpen = $__default["default"](element).hasClass(CLASS_NAME_SHOW$6); - - if (triggerArray.length) { - $__default["default"](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen); - } - } // Static - ; - - Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = Util.getSelectorFromElement(element); - return selector ? document.querySelector(selector) : null; - }; - - Collapse._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var $element = $__default["default"](this); - var data = $element.data(DATA_KEY$7); - - var _config = _extends({}, Default$6, $element.data(), typeof config === 'object' && config ? config : {}); - - if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) { - _config.toggle = false; - } - - if (!data) { - data = new Collapse(this, _config); - $element.data(DATA_KEY$7, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Collapse, null, [{ - key: "VERSION", - get: function get() { - return VERSION$7; - } - }, { - key: "Default", - get: function get() { - return Default$6; - } - }]); - - return Collapse; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) { - // preventDefault only for elements (which change the URL) not inside the collapsible element - if (event.currentTarget.tagName === 'A') { - event.preventDefault(); - } - - var $trigger = $__default["default"](this); - var selector = Util.getSelectorFromElement(this); - var selectors = [].slice.call(document.querySelectorAll(selector)); - $__default["default"](selectors).each(function () { - var $target = $__default["default"](this); - var data = $target.data(DATA_KEY$7); - var config = data ? 'toggle' : $trigger.data(); - - Collapse._jQueryInterface.call($target, config); - }); - }); - /** - * jQuery - */ - - $__default["default"].fn[NAME$7] = Collapse._jQueryInterface; - $__default["default"].fn[NAME$7].Constructor = Collapse; - - $__default["default"].fn[NAME$7].noConflict = function () { - $__default["default"].fn[NAME$7] = JQUERY_NO_CONFLICT$7; - return Collapse._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$6 = 'dropdown'; - var VERSION$6 = '4.6.1'; - var DATA_KEY$6 = 'bs.dropdown'; - var EVENT_KEY$6 = "." + DATA_KEY$6; - var DATA_API_KEY$3 = '.data-api'; - var JQUERY_NO_CONFLICT$6 = $__default["default"].fn[NAME$6]; - var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key - - var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key - - var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key - - var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key - - var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key - - var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse) - - var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE$1); - var CLASS_NAME_DISABLED$1 = 'disabled'; - var CLASS_NAME_SHOW$5 = 'show'; - var CLASS_NAME_DROPUP = 'dropup'; - var CLASS_NAME_DROPRIGHT = 'dropright'; - var CLASS_NAME_DROPLEFT = 'dropleft'; - var CLASS_NAME_MENURIGHT = 'dropdown-menu-right'; - var CLASS_NAME_POSITION_STATIC = 'position-static'; - var EVENT_HIDE$3 = "hide" + EVENT_KEY$6; - var EVENT_HIDDEN$3 = "hidden" + EVENT_KEY$6; - var EVENT_SHOW$3 = "show" + EVENT_KEY$6; - var EVENT_SHOWN$3 = "shown" + EVENT_KEY$6; - var EVENT_CLICK = "click" + EVENT_KEY$6; - var EVENT_CLICK_DATA_API$2 = "click" + EVENT_KEY$6 + DATA_API_KEY$3; - var EVENT_KEYDOWN_DATA_API = "keydown" + EVENT_KEY$6 + DATA_API_KEY$3; - var EVENT_KEYUP_DATA_API = "keyup" + EVENT_KEY$6 + DATA_API_KEY$3; - var SELECTOR_DATA_TOGGLE$2 = '[data-toggle="dropdown"]'; - var SELECTOR_FORM_CHILD = '.dropdown form'; - var SELECTOR_MENU = '.dropdown-menu'; - var SELECTOR_NAVBAR_NAV = '.navbar-nav'; - var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'; - var PLACEMENT_TOP = 'top-start'; - var PLACEMENT_TOPEND = 'top-end'; - var PLACEMENT_BOTTOM = 'bottom-start'; - var PLACEMENT_BOTTOMEND = 'bottom-end'; - var PLACEMENT_RIGHT = 'right-start'; - var PLACEMENT_LEFT = 'left-start'; - var Default$5 = { - offset: 0, - flip: true, - boundary: 'scrollParent', - reference: 'toggle', - display: 'dynamic', - popperConfig: null - }; - var DefaultType$5 = { - offset: '(number|string|function)', - flip: 'boolean', - boundary: '(string|element)', - reference: '(string|element)', - display: 'string', - popperConfig: '(null|object)' - }; - /** - * Class definition - */ - - var Dropdown = /*#__PURE__*/function () { - function Dropdown(element, config) { - this._element = element; - this._popper = null; - this._config = this._getConfig(config); - this._menu = this._getMenuElement(); - this._inNavbar = this._detectNavbar(); - - this._addEventListeners(); - } // Getters - - - var _proto = Dropdown.prototype; - - // Public - _proto.toggle = function toggle() { - if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1)) { - return; - } - - var isActive = $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5); - - Dropdown._clearMenus(); - - if (isActive) { - return; - } - - this.show(true); - }; - - _proto.show = function show(usePopper) { - if (usePopper === void 0) { - usePopper = false; - } - - if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || $__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) { - return; - } - - var relatedTarget = { - relatedTarget: this._element - }; - var showEvent = $__default["default"].Event(EVENT_SHOW$3, relatedTarget); - - var parent = Dropdown._getParentFromElement(this._element); - - $__default["default"](parent).trigger(showEvent); - - if (showEvent.isDefaultPrevented()) { - return; - } // Totally disable Popper for Dropdowns in Navbar - - - if (!this._inNavbar && usePopper) { - // Check for Popper dependency - if (typeof Popper__default["default"] === 'undefined') { - throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)'); - } - - var referenceElement = this._element; - - if (this._config.reference === 'parent') { - referenceElement = parent; - } else if (Util.isElement(this._config.reference)) { - referenceElement = this._config.reference; // Check if it's jQuery element - - if (typeof this._config.reference.jquery !== 'undefined') { - referenceElement = this._config.reference[0]; - } - } // If boundary is not `scrollParent`, then set position to `static` - // to allow the menu to "escape" the scroll parent's boundaries - // https://github.com/twbs/bootstrap/issues/24251 - - - if (this._config.boundary !== 'scrollParent') { - $__default["default"](parent).addClass(CLASS_NAME_POSITION_STATIC); - } - - this._popper = new Popper__default["default"](referenceElement, this._menu, this._getPopperConfig()); - } // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - - - if ('ontouchstart' in document.documentElement && $__default["default"](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) { - $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop); - } - - this._element.focus(); - - this._element.setAttribute('aria-expanded', true); - - $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5); - $__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_SHOWN$3, relatedTarget)); - }; - - _proto.hide = function hide() { - if (this._element.disabled || $__default["default"](this._element).hasClass(CLASS_NAME_DISABLED$1) || !$__default["default"](this._menu).hasClass(CLASS_NAME_SHOW$5)) { - return; - } - - var relatedTarget = { - relatedTarget: this._element - }; - var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget); - - var parent = Dropdown._getParentFromElement(this._element); - - $__default["default"](parent).trigger(hideEvent); - - if (hideEvent.isDefaultPrevented()) { - return; - } - - if (this._popper) { - this._popper.destroy(); - } - - $__default["default"](this._menu).toggleClass(CLASS_NAME_SHOW$5); - $__default["default"](parent).toggleClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget)); - }; - - _proto.dispose = function dispose() { - $__default["default"].removeData(this._element, DATA_KEY$6); - $__default["default"](this._element).off(EVENT_KEY$6); - this._element = null; - this._menu = null; - - if (this._popper !== null) { - this._popper.destroy(); - - this._popper = null; - } - }; - - _proto.update = function update() { - this._inNavbar = this._detectNavbar(); - - if (this._popper !== null) { - this._popper.scheduleUpdate(); - } - } // Private - ; - - _proto._addEventListeners = function _addEventListeners() { - var _this = this; - - $__default["default"](this._element).on(EVENT_CLICK, function (event) { - event.preventDefault(); - event.stopPropagation(); - - _this.toggle(); - }); - }; - - _proto._getConfig = function _getConfig(config) { - config = _extends({}, this.constructor.Default, $__default["default"](this._element).data(), config); - Util.typeCheckConfig(NAME$6, config, this.constructor.DefaultType); - return config; - }; - - _proto._getMenuElement = function _getMenuElement() { - if (!this._menu) { - var parent = Dropdown._getParentFromElement(this._element); - - if (parent) { - this._menu = parent.querySelector(SELECTOR_MENU); - } - } - - return this._menu; - }; - - _proto._getPlacement = function _getPlacement() { - var $parentDropdown = $__default["default"](this._element.parentNode); - var placement = PLACEMENT_BOTTOM; // Handle dropup - - if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) { - placement = $__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP; - } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) { - placement = PLACEMENT_RIGHT; - } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) { - placement = PLACEMENT_LEFT; - } else if ($__default["default"](this._menu).hasClass(CLASS_NAME_MENURIGHT)) { - placement = PLACEMENT_BOTTOMEND; - } - - return placement; - }; - - _proto._detectNavbar = function _detectNavbar() { - return $__default["default"](this._element).closest('.navbar').length > 0; - }; - - _proto._getOffset = function _getOffset() { - var _this2 = this; - - var offset = {}; - - if (typeof this._config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element)); - return data; - }; - } else { - offset.offset = this._config.offset; - } - - return offset; - }; - - _proto._getPopperConfig = function _getPopperConfig() { - var popperConfig = { - placement: this._getPlacement(), - modifiers: { - offset: this._getOffset(), - flip: { - enabled: this._config.flip - }, - preventOverflow: { - boundariesElement: this._config.boundary - } - } - }; // Disable Popper if we have a static display - - if (this._config.display === 'static') { - popperConfig.modifiers.applyStyle = { - enabled: false - }; - } - - return _extends({}, popperConfig, this._config.popperConfig); - } // Static - ; - - Dropdown._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $__default["default"](this).data(DATA_KEY$6); - - var _config = typeof config === 'object' ? config : null; - - if (!data) { - data = new Dropdown(this, _config); - $__default["default"](this).data(DATA_KEY$6, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - Dropdown._clearMenus = function _clearMenus(event) { - if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) { - return; - } - - var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2)); - - for (var i = 0, len = toggles.length; i < len; i++) { - var parent = Dropdown._getParentFromElement(toggles[i]); - - var context = $__default["default"](toggles[i]).data(DATA_KEY$6); - var relatedTarget = { - relatedTarget: toggles[i] - }; - - if (event && event.type === 'click') { - relatedTarget.clickEvent = event; - } - - if (!context) { - continue; - } - - var dropdownMenu = context._menu; - - if (!$__default["default"](parent).hasClass(CLASS_NAME_SHOW$5)) { - continue; - } - - if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default["default"].contains(parent, event.target)) { - continue; - } - - var hideEvent = $__default["default"].Event(EVENT_HIDE$3, relatedTarget); - $__default["default"](parent).trigger(hideEvent); - - if (hideEvent.isDefaultPrevented()) { - continue; - } // If this is a touch-enabled device we remove the extra - // empty mouseover listeners we added for iOS support - - - if ('ontouchstart' in document.documentElement) { - $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop); - } - - toggles[i].setAttribute('aria-expanded', 'false'); - - if (context._popper) { - context._popper.destroy(); - } - - $__default["default"](dropdownMenu).removeClass(CLASS_NAME_SHOW$5); - $__default["default"](parent).removeClass(CLASS_NAME_SHOW$5).trigger($__default["default"].Event(EVENT_HIDDEN$3, relatedTarget)); - } - }; - - Dropdown._getParentFromElement = function _getParentFromElement(element) { - var parent; - var selector = Util.getSelectorFromElement(element); - - if (selector) { - parent = document.querySelector(selector); - } - - return parent || element.parentNode; - } // eslint-disable-next-line complexity - ; - - Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) { - // If not input/textarea: - // - And not a key in REGEXP_KEYDOWN => not a dropdown command - // If input/textarea: - // - If space key => not a dropdown command - // - If key is other than escape - // - If key is not up or down => not a dropdown command - // - If trigger inside the menu => not a dropdown command - if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE$1 && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default["default"](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) { - return; - } - - if (this.disabled || $__default["default"](this).hasClass(CLASS_NAME_DISABLED$1)) { - return; - } - - var parent = Dropdown._getParentFromElement(this); - - var isActive = $__default["default"](parent).hasClass(CLASS_NAME_SHOW$5); - - if (!isActive && event.which === ESCAPE_KEYCODE$1) { - return; - } - - event.preventDefault(); - event.stopPropagation(); - - if (!isActive || event.which === ESCAPE_KEYCODE$1 || event.which === SPACE_KEYCODE) { - if (event.which === ESCAPE_KEYCODE$1) { - $__default["default"](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus'); - } - - $__default["default"](this).trigger('click'); - return; - } - - var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) { - return $__default["default"](item).is(':visible'); - }); - - if (items.length === 0) { - return; - } - - var index = items.indexOf(event.target); - - if (event.which === ARROW_UP_KEYCODE && index > 0) { - // Up - index--; - } - - if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { - // Down - index++; - } - - if (index < 0) { - index = 0; - } - - items[index].focus(); - }; - - _createClass(Dropdown, null, [{ - key: "VERSION", - get: function get() { - return VERSION$6; - } - }, { - key: "Default", - get: function get() { - return Default$5; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$5; - } - }]); - - return Dropdown; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$2 + " " + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) { - event.preventDefault(); - event.stopPropagation(); - - Dropdown._jQueryInterface.call($__default["default"](this), 'toggle'); - }).on(EVENT_CLICK_DATA_API$2, SELECTOR_FORM_CHILD, function (e) { - e.stopPropagation(); - }); - /** - * jQuery - */ - - $__default["default"].fn[NAME$6] = Dropdown._jQueryInterface; - $__default["default"].fn[NAME$6].Constructor = Dropdown; - - $__default["default"].fn[NAME$6].noConflict = function () { - $__default["default"].fn[NAME$6] = JQUERY_NO_CONFLICT$6; - return Dropdown._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$5 = 'modal'; - var VERSION$5 = '4.6.1'; - var DATA_KEY$5 = 'bs.modal'; - var EVENT_KEY$5 = "." + DATA_KEY$5; - var DATA_API_KEY$2 = '.data-api'; - var JQUERY_NO_CONFLICT$5 = $__default["default"].fn[NAME$5]; - var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key - - var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'; - var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'; - var CLASS_NAME_BACKDROP = 'modal-backdrop'; - var CLASS_NAME_OPEN = 'modal-open'; - var CLASS_NAME_FADE$4 = 'fade'; - var CLASS_NAME_SHOW$4 = 'show'; - var CLASS_NAME_STATIC = 'modal-static'; - var EVENT_HIDE$2 = "hide" + EVENT_KEY$5; - var EVENT_HIDE_PREVENTED = "hidePrevented" + EVENT_KEY$5; - var EVENT_HIDDEN$2 = "hidden" + EVENT_KEY$5; - var EVENT_SHOW$2 = "show" + EVENT_KEY$5; - var EVENT_SHOWN$2 = "shown" + EVENT_KEY$5; - var EVENT_FOCUSIN = "focusin" + EVENT_KEY$5; - var EVENT_RESIZE = "resize" + EVENT_KEY$5; - var EVENT_CLICK_DISMISS$1 = "click.dismiss" + EVENT_KEY$5; - var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5; - var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5; - var EVENT_CLICK_DATA_API$1 = "click" + EVENT_KEY$5 + DATA_API_KEY$2; - var SELECTOR_DIALOG = '.modal-dialog'; - var SELECTOR_MODAL_BODY = '.modal-body'; - var SELECTOR_DATA_TOGGLE$1 = '[data-toggle="modal"]'; - var SELECTOR_DATA_DISMISS$1 = '[data-dismiss="modal"]'; - var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'; - var SELECTOR_STICKY_CONTENT = '.sticky-top'; - var Default$4 = { - backdrop: true, - keyboard: true, - focus: true, - show: true - }; - var DefaultType$4 = { - backdrop: '(boolean|string)', - keyboard: 'boolean', - focus: 'boolean', - show: 'boolean' - }; - /** - * Class definition - */ - - var Modal = /*#__PURE__*/function () { - function Modal(element, config) { - this._config = this._getConfig(config); - this._element = element; - this._dialog = element.querySelector(SELECTOR_DIALOG); - this._backdrop = null; - this._isShown = false; - this._isBodyOverflowing = false; - this._ignoreBackdropClick = false; - this._isTransitioning = false; - this._scrollbarWidth = 0; - } // Getters - - - var _proto = Modal.prototype; - - // Public - _proto.toggle = function toggle(relatedTarget) { - return this._isShown ? this.hide() : this.show(relatedTarget); - }; - - _proto.show = function show(relatedTarget) { - var _this = this; - - if (this._isShown || this._isTransitioning) { - return; - } - - var showEvent = $__default["default"].Event(EVENT_SHOW$2, { - relatedTarget: relatedTarget - }); - $__default["default"](this._element).trigger(showEvent); - - if (showEvent.isDefaultPrevented()) { - return; - } - - this._isShown = true; - - if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) { - this._isTransitioning = true; - } - - this._checkScrollbar(); - - this._setScrollbar(); - - this._adjustDialog(); - - this._setEscapeEvent(); - - this._setResizeEvent(); - - $__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, SELECTOR_DATA_DISMISS$1, function (event) { - return _this.hide(event); - }); - $__default["default"](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () { - $__default["default"](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) { - if ($__default["default"](event.target).is(_this._element)) { - _this._ignoreBackdropClick = true; - } - }); - }); - - this._showBackdrop(function () { - return _this._showElement(relatedTarget); - }); - }; - - _proto.hide = function hide(event) { - var _this2 = this; - - if (event) { - event.preventDefault(); - } - - if (!this._isShown || this._isTransitioning) { - return; - } - - var hideEvent = $__default["default"].Event(EVENT_HIDE$2); - $__default["default"](this._element).trigger(hideEvent); - - if (!this._isShown || hideEvent.isDefaultPrevented()) { - return; - } - - this._isShown = false; - var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4); - - if (transition) { - this._isTransitioning = true; - } - - this._setEscapeEvent(); - - this._setResizeEvent(); - - $__default["default"](document).off(EVENT_FOCUSIN); - $__default["default"](this._element).removeClass(CLASS_NAME_SHOW$4); - $__default["default"](this._element).off(EVENT_CLICK_DISMISS$1); - $__default["default"](this._dialog).off(EVENT_MOUSEDOWN_DISMISS); - - if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._element); - $__default["default"](this._element).one(Util.TRANSITION_END, function (event) { - return _this2._hideModal(event); - }).emulateTransitionEnd(transitionDuration); - } else { - this._hideModal(); - } - }; - - _proto.dispose = function dispose() { - [window, this._element, this._dialog].forEach(function (htmlElement) { - return $__default["default"](htmlElement).off(EVENT_KEY$5); - }); - /** - * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API` - * Do not move `document` in `htmlElements` array - * It will remove `EVENT_CLICK_DATA_API` event that should remain - */ - - $__default["default"](document).off(EVENT_FOCUSIN); - $__default["default"].removeData(this._element, DATA_KEY$5); - this._config = null; - this._element = null; - this._dialog = null; - this._backdrop = null; - this._isShown = null; - this._isBodyOverflowing = null; - this._ignoreBackdropClick = null; - this._isTransitioning = null; - this._scrollbarWidth = null; - }; - - _proto.handleUpdate = function handleUpdate() { - this._adjustDialog(); - } // Private - ; - - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$4, config); - Util.typeCheckConfig(NAME$5, config, DefaultType$4); - return config; - }; - - _proto._triggerBackdropTransition = function _triggerBackdropTransition() { - var _this3 = this; - - var hideEventPrevented = $__default["default"].Event(EVENT_HIDE_PREVENTED); - $__default["default"](this._element).trigger(hideEventPrevented); - - if (hideEventPrevented.isDefaultPrevented()) { - return; - } - - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - - if (!isModalOverflowing) { - this._element.style.overflowY = 'hidden'; - } - - this._element.classList.add(CLASS_NAME_STATIC); - - var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $__default["default"](this._element).off(Util.TRANSITION_END); - $__default["default"](this._element).one(Util.TRANSITION_END, function () { - _this3._element.classList.remove(CLASS_NAME_STATIC); - - if (!isModalOverflowing) { - $__default["default"](_this3._element).one(Util.TRANSITION_END, function () { - _this3._element.style.overflowY = ''; - }).emulateTransitionEnd(_this3._element, modalTransitionDuration); - } - }).emulateTransitionEnd(modalTransitionDuration); - - this._element.focus(); - }; - - _proto._showElement = function _showElement(relatedTarget) { - var _this4 = this; - - var transition = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4); - var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null; - - if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) { - // Don't move modal's DOM position - document.body.appendChild(this._element); - } - - this._element.style.display = 'block'; - - this._element.removeAttribute('aria-hidden'); - - this._element.setAttribute('aria-modal', true); - - this._element.setAttribute('role', 'dialog'); - - if ($__default["default"](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) { - modalBody.scrollTop = 0; - } else { - this._element.scrollTop = 0; - } - - if (transition) { - Util.reflow(this._element); - } - - $__default["default"](this._element).addClass(CLASS_NAME_SHOW$4); - - if (this._config.focus) { - this._enforceFocus(); - } - - var shownEvent = $__default["default"].Event(EVENT_SHOWN$2, { - relatedTarget: relatedTarget - }); - - var transitionComplete = function transitionComplete() { - if (_this4._config.focus) { - _this4._element.focus(); - } - - _this4._isTransitioning = false; - $__default["default"](_this4._element).trigger(shownEvent); - }; - - if (transition) { - var transitionDuration = Util.getTransitionDurationFromElement(this._dialog); - $__default["default"](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration); - } else { - transitionComplete(); - } - }; - - _proto._enforceFocus = function _enforceFocus() { - var _this5 = this; - - $__default["default"](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop - .on(EVENT_FOCUSIN, function (event) { - if (document !== event.target && _this5._element !== event.target && $__default["default"](_this5._element).has(event.target).length === 0) { - _this5._element.focus(); - } - }); - }; - - _proto._setEscapeEvent = function _setEscapeEvent() { - var _this6 = this; - - if (this._isShown) { - $__default["default"](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) { - if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE) { - event.preventDefault(); - - _this6.hide(); - } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE) { - _this6._triggerBackdropTransition(); - } - }); - } else if (!this._isShown) { - $__default["default"](this._element).off(EVENT_KEYDOWN_DISMISS); - } - }; - - _proto._setResizeEvent = function _setResizeEvent() { - var _this7 = this; - - if (this._isShown) { - $__default["default"](window).on(EVENT_RESIZE, function (event) { - return _this7.handleUpdate(event); - }); - } else { - $__default["default"](window).off(EVENT_RESIZE); - } - }; - - _proto._hideModal = function _hideModal() { - var _this8 = this; - - this._element.style.display = 'none'; - - this._element.setAttribute('aria-hidden', true); - - this._element.removeAttribute('aria-modal'); - - this._element.removeAttribute('role'); - - this._isTransitioning = false; - - this._showBackdrop(function () { - $__default["default"](document.body).removeClass(CLASS_NAME_OPEN); - - _this8._resetAdjustments(); - - _this8._resetScrollbar(); - - $__default["default"](_this8._element).trigger(EVENT_HIDDEN$2); - }); - }; - - _proto._removeBackdrop = function _removeBackdrop() { - if (this._backdrop) { - $__default["default"](this._backdrop).remove(); - this._backdrop = null; - } - }; - - _proto._showBackdrop = function _showBackdrop(callback) { - var _this9 = this; - - var animate = $__default["default"](this._element).hasClass(CLASS_NAME_FADE$4) ? CLASS_NAME_FADE$4 : ''; - - if (this._isShown && this._config.backdrop) { - this._backdrop = document.createElement('div'); - this._backdrop.className = CLASS_NAME_BACKDROP; - - if (animate) { - this._backdrop.classList.add(animate); - } - - $__default["default"](this._backdrop).appendTo(document.body); - $__default["default"](this._element).on(EVENT_CLICK_DISMISS$1, function (event) { - if (_this9._ignoreBackdropClick) { - _this9._ignoreBackdropClick = false; - return; - } - - if (event.target !== event.currentTarget) { - return; - } - - if (_this9._config.backdrop === 'static') { - _this9._triggerBackdropTransition(); - } else { - _this9.hide(); - } - }); - - if (animate) { - Util.reflow(this._backdrop); - } - - $__default["default"](this._backdrop).addClass(CLASS_NAME_SHOW$4); - - if (!callback) { - return; - } - - if (!animate) { - callback(); - return; - } - - var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - $__default["default"](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration); - } else if (!this._isShown && this._backdrop) { - $__default["default"](this._backdrop).removeClass(CLASS_NAME_SHOW$4); - - var callbackRemove = function callbackRemove() { - _this9._removeBackdrop(); - - if (callback) { - callback(); - } - }; - - if ($__default["default"](this._element).hasClass(CLASS_NAME_FADE$4)) { - var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop); - - $__default["default"](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration); - } else { - callbackRemove(); - } - } else if (callback) { - callback(); - } - } // ---------------------------------------------------------------------- - // the following methods are used to handle overflowing modals - // todo (fat): these should probably be refactored out of modal.js - // ---------------------------------------------------------------------- - ; - - _proto._adjustDialog = function _adjustDialog() { - var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight; - - if (!this._isBodyOverflowing && isModalOverflowing) { - this._element.style.paddingLeft = this._scrollbarWidth + "px"; - } - - if (this._isBodyOverflowing && !isModalOverflowing) { - this._element.style.paddingRight = this._scrollbarWidth + "px"; - } - }; - - _proto._resetAdjustments = function _resetAdjustments() { - this._element.style.paddingLeft = ''; - this._element.style.paddingRight = ''; - }; - - _proto._checkScrollbar = function _checkScrollbar() { - var rect = document.body.getBoundingClientRect(); - this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth; - this._scrollbarWidth = this._getScrollbarWidth(); - }; - - _proto._setScrollbar = function _setScrollbar() { - var _this10 = this; - - if (this._isBodyOverflowing) { - // Note: DOMNode.style.paddingRight returns the actual value or '' if not set - // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set - var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); - var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding - - $__default["default"](fixedContent).each(function (index, element) { - var actualPadding = element.style.paddingRight; - var calculatedPadding = $__default["default"](element).css('padding-right'); - $__default["default"](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + "px"); - }); // Adjust sticky content margin - - $__default["default"](stickyContent).each(function (index, element) { - var actualMargin = element.style.marginRight; - var calculatedMargin = $__default["default"](element).css('margin-right'); - $__default["default"](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + "px"); - }); // Adjust body padding - - var actualPadding = document.body.style.paddingRight; - var calculatedPadding = $__default["default"](document.body).css('padding-right'); - $__default["default"](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px"); - } - - $__default["default"](document.body).addClass(CLASS_NAME_OPEN); - }; - - _proto._resetScrollbar = function _resetScrollbar() { - // Restore fixed content padding - var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT)); - $__default["default"](fixedContent).each(function (index, element) { - var padding = $__default["default"](element).data('padding-right'); - $__default["default"](element).removeData('padding-right'); - element.style.paddingRight = padding ? padding : ''; - }); // Restore sticky content - - var elements = [].slice.call(document.querySelectorAll("" + SELECTOR_STICKY_CONTENT)); - $__default["default"](elements).each(function (index, element) { - var margin = $__default["default"](element).data('margin-right'); - - if (typeof margin !== 'undefined') { - $__default["default"](element).css('margin-right', margin).removeData('margin-right'); - } - }); // Restore body padding - - var padding = $__default["default"](document.body).data('padding-right'); - $__default["default"](document.body).removeData('padding-right'); - document.body.style.paddingRight = padding ? padding : ''; - }; - - _proto._getScrollbarWidth = function _getScrollbarWidth() { - // thx d.walsh - var scrollDiv = document.createElement('div'); - scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER; - document.body.appendChild(scrollDiv); - var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth; - document.body.removeChild(scrollDiv); - return scrollbarWidth; - } // Static - ; - - Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) { - return this.each(function () { - var data = $__default["default"](this).data(DATA_KEY$5); - - var _config = _extends({}, Default$4, $__default["default"](this).data(), typeof config === 'object' && config ? config : {}); - - if (!data) { - data = new Modal(this, _config); - $__default["default"](this).data(DATA_KEY$5, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](relatedTarget); - } else if (_config.show) { - data.show(relatedTarget); - } - }); - }; - - _createClass(Modal, null, [{ - key: "VERSION", - get: function get() { - return VERSION$5; - } - }, { - key: "Default", - get: function get() { - return Default$4; - } - }]); - - return Modal; - }(); - /** - * Data API implementation - */ - - - $__default["default"](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) { - var _this11 = this; - - var target; - var selector = Util.getSelectorFromElement(this); - - if (selector) { - target = document.querySelector(selector); - } - - var config = $__default["default"](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default["default"](target).data(), $__default["default"](this).data()); - - if (this.tagName === 'A' || this.tagName === 'AREA') { - event.preventDefault(); - } - - var $target = $__default["default"](target).one(EVENT_SHOW$2, function (showEvent) { - if (showEvent.isDefaultPrevented()) { - // Only register focus restorer if modal will actually get shown - return; - } - - $target.one(EVENT_HIDDEN$2, function () { - if ($__default["default"](_this11).is(':visible')) { - _this11.focus(); - } - }); - }); - - Modal._jQueryInterface.call($__default["default"](target), config, this); - }); - /** - * jQuery - */ - - $__default["default"].fn[NAME$5] = Modal._jQueryInterface; - $__default["default"].fn[NAME$5].Constructor = Modal; - - $__default["default"].fn[NAME$5].noConflict = function () { - $__default["default"].fn[NAME$5] = JQUERY_NO_CONFLICT$5; - return Modal._jQueryInterface; - }; - - /** - * -------------------------------------------------------------------------- - * Bootstrap (v4.6.1): tools/sanitizer.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - * -------------------------------------------------------------------------- - */ - var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']; - var ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i; - var DefaultWhitelist = { - // Global attributes allowed on any supplied element below. - '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], - a: ['target', 'href', 'title', 'rel'], - area: [], - b: [], - br: [], - col: [], - code: [], - div: [], - em: [], - hr: [], - h1: [], - h2: [], - h3: [], - h4: [], - h5: [], - h6: [], - i: [], - img: ['src', 'srcset', 'alt', 'title', 'width', 'height'], - li: [], - ol: [], - p: [], - pre: [], - s: [], - small: [], - span: [], - sub: [], - sup: [], - strong: [], - u: [], - ul: [] - }; - /** - * A pattern that recognizes a commonly useful subset of URLs that are safe. - * - * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts - */ - - var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i; - /** - * A pattern that matches safe data URLs. Only matches image, video and audio types. - * - * Shoutout to Angular https://github.com/angular/angular/blob/12.2.x/packages/core/src/sanitization/url_sanitizer.ts - */ - - var DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i; - - function allowedAttribute(attr, allowedAttributeList) { - var attrName = attr.nodeName.toLowerCase(); - - if (allowedAttributeList.indexOf(attrName) !== -1) { - if (uriAttrs.indexOf(attrName) !== -1) { - return Boolean(SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)); - } - - return true; - } - - var regExp = allowedAttributeList.filter(function (attrRegex) { - return attrRegex instanceof RegExp; - }); // Check if a regular expression validates the attribute. - - for (var i = 0, len = regExp.length; i < len; i++) { - if (regExp[i].test(attrName)) { - return true; - } - } - - return false; - } - - function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { - if (unsafeHtml.length === 0) { - return unsafeHtml; - } - - if (sanitizeFn && typeof sanitizeFn === 'function') { - return sanitizeFn(unsafeHtml); - } - - var domParser = new window.DOMParser(); - var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html'); - var whitelistKeys = Object.keys(whiteList); - var elements = [].slice.call(createdDocument.body.querySelectorAll('*')); - - var _loop = function _loop(i, len) { - var el = elements[i]; - var elName = el.nodeName.toLowerCase(); - - if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { - el.parentNode.removeChild(el); - return "continue"; - } - - var attributeList = [].slice.call(el.attributes); // eslint-disable-next-line unicorn/prefer-spread - - var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []); - attributeList.forEach(function (attr) { - if (!allowedAttribute(attr, whitelistedAttributes)) { - el.removeAttribute(attr.nodeName); - } - }); - }; - - for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i); - - if (_ret === "continue") continue; - } - - return createdDocument.body.innerHTML; - } - - /** - * Constants - */ - - var NAME$4 = 'tooltip'; - var VERSION$4 = '4.6.1'; - var DATA_KEY$4 = 'bs.tooltip'; - var EVENT_KEY$4 = "." + DATA_KEY$4; - var JQUERY_NO_CONFLICT$4 = $__default["default"].fn[NAME$4]; - var CLASS_PREFIX$1 = 'bs-tooltip'; - var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']; - var CLASS_NAME_FADE$3 = 'fade'; - var CLASS_NAME_SHOW$3 = 'show'; - var HOVER_STATE_SHOW = 'show'; - var HOVER_STATE_OUT = 'out'; - var SELECTOR_TOOLTIP_INNER = '.tooltip-inner'; - var SELECTOR_ARROW = '.arrow'; - var TRIGGER_HOVER = 'hover'; - var TRIGGER_FOCUS = 'focus'; - var TRIGGER_CLICK = 'click'; - var TRIGGER_MANUAL = 'manual'; - var AttachmentMap = { - AUTO: 'auto', - TOP: 'top', - RIGHT: 'right', - BOTTOM: 'bottom', - LEFT: 'left' - }; - var Default$3 = { - animation: true, - template: '', - trigger: 'hover focus', - title: '', - delay: 0, - html: false, - selector: false, - placement: 'top', - offset: 0, - container: false, - fallbackPlacement: 'flip', - boundary: 'scrollParent', - customClass: '', - sanitize: true, - sanitizeFn: null, - whiteList: DefaultWhitelist, - popperConfig: null - }; - var DefaultType$3 = { - animation: 'boolean', - template: 'string', - title: '(string|element|function)', - trigger: 'string', - delay: '(number|object)', - html: 'boolean', - selector: '(string|boolean)', - placement: '(string|function)', - offset: '(number|string|function)', - container: '(string|element|boolean)', - fallbackPlacement: '(string|array)', - boundary: '(string|element)', - customClass: '(string|function)', - sanitize: 'boolean', - sanitizeFn: '(null|function)', - whiteList: 'object', - popperConfig: '(null|object)' - }; - var Event$1 = { - HIDE: "hide" + EVENT_KEY$4, - HIDDEN: "hidden" + EVENT_KEY$4, - SHOW: "show" + EVENT_KEY$4, - SHOWN: "shown" + EVENT_KEY$4, - INSERTED: "inserted" + EVENT_KEY$4, - CLICK: "click" + EVENT_KEY$4, - FOCUSIN: "focusin" + EVENT_KEY$4, - FOCUSOUT: "focusout" + EVENT_KEY$4, - MOUSEENTER: "mouseenter" + EVENT_KEY$4, - MOUSELEAVE: "mouseleave" + EVENT_KEY$4 - }; - /** - * Class definition - */ - - var Tooltip = /*#__PURE__*/function () { - function Tooltip(element, config) { - if (typeof Popper__default["default"] === 'undefined') { - throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)'); - } // Private - - - this._isEnabled = true; - this._timeout = 0; - this._hoverState = ''; - this._activeTrigger = {}; - this._popper = null; // Protected - - this.element = element; - this.config = this._getConfig(config); - this.tip = null; - - this._setListeners(); - } // Getters - - - var _proto = Tooltip.prototype; - - // Public - _proto.enable = function enable() { - this._isEnabled = true; - }; - - _proto.disable = function disable() { - this._isEnabled = false; - }; - - _proto.toggleEnabled = function toggleEnabled() { - this._isEnabled = !this._isEnabled; - }; - - _proto.toggle = function toggle(event) { - if (!this._isEnabled) { - return; - } - - if (event) { - var dataKey = this.constructor.DATA_KEY; - var context = $__default["default"](event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $__default["default"](event.currentTarget).data(dataKey, context); - } - - context._activeTrigger.click = !context._activeTrigger.click; - - if (context._isWithActiveTrigger()) { - context._enter(null, context); - } else { - context._leave(null, context); - } - } else { - if ($__default["default"](this.getTipElement()).hasClass(CLASS_NAME_SHOW$3)) { - this._leave(null, this); - - return; - } - - this._enter(null, this); - } - }; - - _proto.dispose = function dispose() { - clearTimeout(this._timeout); - $__default["default"].removeData(this.element, this.constructor.DATA_KEY); - $__default["default"](this.element).off(this.constructor.EVENT_KEY); - $__default["default"](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler); - - if (this.tip) { - $__default["default"](this.tip).remove(); - } - - this._isEnabled = null; - this._timeout = null; - this._hoverState = null; - this._activeTrigger = null; - - if (this._popper) { - this._popper.destroy(); - } - - this._popper = null; - this.element = null; - this.config = null; - this.tip = null; - }; - - _proto.show = function show() { - var _this = this; - - if ($__default["default"](this.element).css('display') === 'none') { - throw new Error('Please use show on visible elements'); - } - - var showEvent = $__default["default"].Event(this.constructor.Event.SHOW); - - if (this.isWithContent() && this._isEnabled) { - $__default["default"](this.element).trigger(showEvent); - var shadowRoot = Util.findShadowRoot(this.element); - var isInTheDom = $__default["default"].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element); - - if (showEvent.isDefaultPrevented() || !isInTheDom) { - return; - } - - var tip = this.getTipElement(); - var tipId = Util.getUID(this.constructor.NAME); - tip.setAttribute('id', tipId); - this.element.setAttribute('aria-describedby', tipId); - this.setContent(); - - if (this.config.animation) { - $__default["default"](tip).addClass(CLASS_NAME_FADE$3); - } - - var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement; - - var attachment = this._getAttachment(placement); - - this.addAttachmentClass(attachment); - - var container = this._getContainer(); - - $__default["default"](tip).data(this.constructor.DATA_KEY, this); - - if (!$__default["default"].contains(this.element.ownerDocument.documentElement, this.tip)) { - $__default["default"](tip).appendTo(container); - } - - $__default["default"](this.element).trigger(this.constructor.Event.INSERTED); - this._popper = new Popper__default["default"](this.element, tip, this._getPopperConfig(attachment)); - $__default["default"](tip).addClass(CLASS_NAME_SHOW$3); - $__default["default"](tip).addClass(this.config.customClass); // If this is a touch-enabled device we add extra - // empty mouseover listeners to the body's immediate children; - // only needed because of broken event delegation on iOS - // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html - - if ('ontouchstart' in document.documentElement) { - $__default["default"](document.body).children().on('mouseover', null, $__default["default"].noop); - } - - var complete = function complete() { - if (_this.config.animation) { - _this._fixTransition(); - } - - var prevHoverState = _this._hoverState; - _this._hoverState = null; - $__default["default"](_this.element).trigger(_this.constructor.Event.SHOWN); - - if (prevHoverState === HOVER_STATE_OUT) { - _this._leave(null, _this); - } - }; - - if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) { - var transitionDuration = Util.getTransitionDurationFromElement(this.tip); - $__default["default"](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - } else { - complete(); - } - } - }; - - _proto.hide = function hide(callback) { - var _this2 = this; - - var tip = this.getTipElement(); - var hideEvent = $__default["default"].Event(this.constructor.Event.HIDE); - - var complete = function complete() { - if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) { - tip.parentNode.removeChild(tip); - } - - _this2._cleanTipClass(); - - _this2.element.removeAttribute('aria-describedby'); - - $__default["default"](_this2.element).trigger(_this2.constructor.Event.HIDDEN); - - if (_this2._popper !== null) { - _this2._popper.destroy(); - } - - if (callback) { - callback(); - } - }; - - $__default["default"](this.element).trigger(hideEvent); - - if (hideEvent.isDefaultPrevented()) { - return; - } - - $__default["default"](tip).removeClass(CLASS_NAME_SHOW$3); // If this is a touch-enabled device we remove the extra - // empty mouseover listeners we added for iOS support - - if ('ontouchstart' in document.documentElement) { - $__default["default"](document.body).children().off('mouseover', null, $__default["default"].noop); - } - - this._activeTrigger[TRIGGER_CLICK] = false; - this._activeTrigger[TRIGGER_FOCUS] = false; - this._activeTrigger[TRIGGER_HOVER] = false; - - if ($__default["default"](this.tip).hasClass(CLASS_NAME_FADE$3)) { - var transitionDuration = Util.getTransitionDurationFromElement(tip); - $__default["default"](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration); - } else { - complete(); - } - - this._hoverState = ''; - }; - - _proto.update = function update() { - if (this._popper !== null) { - this._popper.scheduleUpdate(); - } - } // Protected - ; - - _proto.isWithContent = function isWithContent() { - return Boolean(this.getTitle()); - }; - - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX$1 + "-" + attachment); - }; - - _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $__default["default"](this.config.template)[0]; - return this.tip; - }; - - _proto.setContent = function setContent() { - var tip = this.getTipElement(); - this.setElementContent($__default["default"](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle()); - $__default["default"](tip).removeClass(CLASS_NAME_FADE$3 + " " + CLASS_NAME_SHOW$3); - }; - - _proto.setElementContent = function setElementContent($element, content) { - if (typeof content === 'object' && (content.nodeType || content.jquery)) { - // Content is a DOM node or a jQuery - if (this.config.html) { - if (!$__default["default"](content).parent().is($element)) { - $element.empty().append(content); - } - } else { - $element.text($__default["default"](content).text()); - } - - return; - } - - if (this.config.html) { - if (this.config.sanitize) { - content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn); - } - - $element.html(content); - } else { - $element.text(content); - } - }; - - _proto.getTitle = function getTitle() { - var title = this.element.getAttribute('data-original-title'); - - if (!title) { - title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; - } - - return title; - } // Private - ; - - _proto._getPopperConfig = function _getPopperConfig(attachment) { - var _this3 = this; - - var defaultBsConfig = { - placement: attachment, - modifiers: { - offset: this._getOffset(), - flip: { - behavior: this.config.fallbackPlacement - }, - arrow: { - element: SELECTOR_ARROW - }, - preventOverflow: { - boundariesElement: this.config.boundary - } - }, - onCreate: function onCreate(data) { - if (data.originalPlacement !== data.placement) { - _this3._handlePopperPlacementChange(data); - } - }, - onUpdate: function onUpdate(data) { - return _this3._handlePopperPlacementChange(data); - } - }; - return _extends({}, defaultBsConfig, this.config.popperConfig); - }; - - _proto._getOffset = function _getOffset() { - var _this4 = this; - - var offset = {}; - - if (typeof this.config.offset === 'function') { - offset.fn = function (data) { - data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element)); - return data; - }; - } else { - offset.offset = this.config.offset; - } - - return offset; - }; - - _proto._getContainer = function _getContainer() { - if (this.config.container === false) { - return document.body; - } - - if (Util.isElement(this.config.container)) { - return $__default["default"](this.config.container); - } - - return $__default["default"](document).find(this.config.container); - }; - - _proto._getAttachment = function _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; - }; - - _proto._setListeners = function _setListeners() { - var _this5 = this; - - var triggers = this.config.trigger.split(' '); - triggers.forEach(function (trigger) { - if (trigger === 'click') { - $__default["default"](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) { - return _this5.toggle(event); - }); - } else if (trigger !== TRIGGER_MANUAL) { - var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN; - var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT; - $__default["default"](_this5.element).on(eventIn, _this5.config.selector, function (event) { - return _this5._enter(event); - }).on(eventOut, _this5.config.selector, function (event) { - return _this5._leave(event); - }); - } - }); - - this._hideModalHandler = function () { - if (_this5.element) { - _this5.hide(); - } - }; - - $__default["default"](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler); - - if (this.config.selector) { - this.config = _extends({}, this.config, { - trigger: 'manual', - selector: '' - }); - } else { - this._fixTitle(); - } - }; - - _proto._fixTitle = function _fixTitle() { - var titleType = typeof this.element.getAttribute('data-original-title'); - - if (this.element.getAttribute('title') || titleType !== 'string') { - this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); - this.element.setAttribute('title', ''); - } - }; - - _proto._enter = function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || $__default["default"](event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $__default["default"](event.currentTarget).data(dataKey, context); - } - - if (event) { - context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true; - } - - if ($__default["default"](context.getTipElement()).hasClass(CLASS_NAME_SHOW$3) || context._hoverState === HOVER_STATE_SHOW) { - context._hoverState = HOVER_STATE_SHOW; - return; - } - - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_SHOW; - - if (!context.config.delay || !context.config.delay.show) { - context.show(); - return; - } - - context._timeout = setTimeout(function () { - if (context._hoverState === HOVER_STATE_SHOW) { - context.show(); - } - }, context.config.delay.show); - }; - - _proto._leave = function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; - context = context || $__default["default"](event.currentTarget).data(dataKey); - - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $__default["default"](event.currentTarget).data(dataKey, context); - } - - if (event) { - context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false; - } - - if (context._isWithActiveTrigger()) { - return; - } - - clearTimeout(context._timeout); - context._hoverState = HOVER_STATE_OUT; - - if (!context.config.delay || !context.config.delay.hide) { - context.hide(); - return; - } - - context._timeout = setTimeout(function () { - if (context._hoverState === HOVER_STATE_OUT) { - context.hide(); - } - }, context.config.delay.hide); - }; - - _proto._isWithActiveTrigger = function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } - } - - return false; - }; - - _proto._getConfig = function _getConfig(config) { - var dataAttributes = $__default["default"](this.element).data(); - Object.keys(dataAttributes).forEach(function (dataAttr) { - if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) { - delete dataAttributes[dataAttr]; - } - }); - config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); - - if (typeof config.delay === 'number') { - config.delay = { - show: config.delay, - hide: config.delay - }; - } - - if (typeof config.title === 'number') { - config.title = config.title.toString(); - } - - if (typeof config.content === 'number') { - config.content = config.content.toString(); - } - - Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType); - - if (config.sanitize) { - config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn); - } - - return config; - }; - - _proto._getDelegateConfig = function _getDelegateConfig() { - var config = {}; - - if (this.config) { - for (var key in this.config) { - if (this.constructor.Default[key] !== this.config[key]) { - config[key] = this.config[key]; - } - } - } - - return config; - }; - - _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $__default["default"](this.getTipElement()); - var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1); - - if (tabClass !== null && tabClass.length) { - $tip.removeClass(tabClass.join('')); - } - }; - - _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) { - this.tip = popperData.instance.popper; - - this._cleanTipClass(); - - this.addAttachmentClass(this._getAttachment(popperData.placement)); - }; - - _proto._fixTransition = function _fixTransition() { - var tip = this.getTipElement(); - var initConfigAnimation = this.config.animation; - - if (tip.getAttribute('x-placement') !== null) { - return; - } - - $__default["default"](tip).removeClass(CLASS_NAME_FADE$3); - this.config.animation = false; - this.hide(); - this.show(); - this.config.animation = initConfigAnimation; - } // Static - ; - - Tooltip._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var $element = $__default["default"](this); - var data = $element.data(DATA_KEY$4); - - var _config = typeof config === 'object' && config; - - if (!data && /dispose|hide/.test(config)) { - return; - } - - if (!data) { - data = new Tooltip(this, _config); - $element.data(DATA_KEY$4, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Tooltip, null, [{ - key: "VERSION", - get: function get() { - return VERSION$4; - } - }, { - key: "Default", - get: function get() { - return Default$3; - } - }, { - key: "NAME", - get: function get() { - return NAME$4; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$4; - } - }, { - key: "Event", - get: function get() { - return Event$1; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$4; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$3; - } - }]); - - return Tooltip; - }(); - /** - * jQuery - */ - - - $__default["default"].fn[NAME$4] = Tooltip._jQueryInterface; - $__default["default"].fn[NAME$4].Constructor = Tooltip; - - $__default["default"].fn[NAME$4].noConflict = function () { - $__default["default"].fn[NAME$4] = JQUERY_NO_CONFLICT$4; - return Tooltip._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$3 = 'popover'; - var VERSION$3 = '4.6.1'; - var DATA_KEY$3 = 'bs.popover'; - var EVENT_KEY$3 = "." + DATA_KEY$3; - var JQUERY_NO_CONFLICT$3 = $__default["default"].fn[NAME$3]; - var CLASS_PREFIX = 'bs-popover'; - var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g'); - var CLASS_NAME_FADE$2 = 'fade'; - var CLASS_NAME_SHOW$2 = 'show'; - var SELECTOR_TITLE = '.popover-header'; - var SELECTOR_CONTENT = '.popover-body'; - - var Default$2 = _extends({}, Tooltip.Default, { - placement: 'right', - trigger: 'click', - content: '', - template: '' - }); - - var DefaultType$2 = _extends({}, Tooltip.DefaultType, { - content: '(string|element|function)' - }); - - var Event = { - HIDE: "hide" + EVENT_KEY$3, - HIDDEN: "hidden" + EVENT_KEY$3, - SHOW: "show" + EVENT_KEY$3, - SHOWN: "shown" + EVENT_KEY$3, - INSERTED: "inserted" + EVENT_KEY$3, - CLICK: "click" + EVENT_KEY$3, - FOCUSIN: "focusin" + EVENT_KEY$3, - FOCUSOUT: "focusout" + EVENT_KEY$3, - MOUSEENTER: "mouseenter" + EVENT_KEY$3, - MOUSELEAVE: "mouseleave" + EVENT_KEY$3 - }; - /** - * Class definition - */ - - var Popover = /*#__PURE__*/function (_Tooltip) { - _inheritsLoose(Popover, _Tooltip); - - function Popover() { - return _Tooltip.apply(this, arguments) || this; - } - - var _proto = Popover.prototype; - - // Overrides - _proto.isWithContent = function isWithContent() { - return this.getTitle() || this._getContent(); - }; - - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment); - }; - - _proto.getTipElement = function getTipElement() { - this.tip = this.tip || $__default["default"](this.config.template)[0]; - return this.tip; - }; - - _proto.setContent = function setContent() { - var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events - - this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle()); - - var content = this._getContent(); - - if (typeof content === 'function') { - content = content.call(this.element); - } - - this.setElementContent($tip.find(SELECTOR_CONTENT), content); - $tip.removeClass(CLASS_NAME_FADE$2 + " " + CLASS_NAME_SHOW$2); - } // Private - ; - - _proto._getContent = function _getContent() { - return this.element.getAttribute('data-content') || this.config.content; - }; - - _proto._cleanTipClass = function _cleanTipClass() { - var $tip = $__default["default"](this.getTipElement()); - var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX); - - if (tabClass !== null && tabClass.length > 0) { - $tip.removeClass(tabClass.join('')); - } - } // Static - ; - - Popover._jQueryInterface = function _jQueryInterface(config) { - return this.each(function () { - var data = $__default["default"](this).data(DATA_KEY$3); - - var _config = typeof config === 'object' ? config : null; - - if (!data && /dispose|hide/.test(config)) { - return; - } - - if (!data) { - data = new Popover(this, _config); - $__default["default"](this).data(DATA_KEY$3, data); - } - - if (typeof config === 'string') { - if (typeof data[config] === 'undefined') { - throw new TypeError("No method named \"" + config + "\""); - } - - data[config](); - } - }); - }; - - _createClass(Popover, null, [{ - key: "VERSION", - get: // Getters - function get() { - return VERSION$3; - } - }, { - key: "Default", - get: function get() { - return Default$2; - } - }, { - key: "NAME", - get: function get() { - return NAME$3; - } - }, { - key: "DATA_KEY", - get: function get() { - return DATA_KEY$3; - } - }, { - key: "Event", - get: function get() { - return Event; - } - }, { - key: "EVENT_KEY", - get: function get() { - return EVENT_KEY$3; - } - }, { - key: "DefaultType", - get: function get() { - return DefaultType$2; - } - }]); - - return Popover; - }(Tooltip); - /** - * jQuery - */ - - - $__default["default"].fn[NAME$3] = Popover._jQueryInterface; - $__default["default"].fn[NAME$3].Constructor = Popover; - - $__default["default"].fn[NAME$3].noConflict = function () { - $__default["default"].fn[NAME$3] = JQUERY_NO_CONFLICT$3; - return Popover._jQueryInterface; - }; - - /** - * Constants - */ - - var NAME$2 = 'scrollspy'; - var VERSION$2 = '4.6.1'; - var DATA_KEY$2 = 'bs.scrollspy'; - var EVENT_KEY$2 = "." + DATA_KEY$2; - var DATA_API_KEY$1 = '.data-api'; - var JQUERY_NO_CONFLICT$2 = $__default["default"].fn[NAME$2]; - var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'; - var CLASS_NAME_ACTIVE$1 = 'active'; - var EVENT_ACTIVATE = "activate" + EVENT_KEY$2; - var EVENT_SCROLL = "scroll" + EVENT_KEY$2; - var EVENT_LOAD_DATA_API = "load" + EVENT_KEY$2 + DATA_API_KEY$1; - var METHOD_OFFSET = 'offset'; - var METHOD_POSITION = 'position'; - var SELECTOR_DATA_SPY = '[data-spy="scroll"]'; - var SELECTOR_NAV_LIST_GROUP$1 = '.nav, .list-group'; - var SELECTOR_NAV_LINKS = '.nav-link'; - var SELECTOR_NAV_ITEMS = '.nav-item'; - var SELECTOR_LIST_ITEMS = '.list-group-item'; - var SELECTOR_DROPDOWN$1 = '.dropdown'; - var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'; - var SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle'; - var Default$1 = { - offset: 10, - method: 'auto', - target: '' - }; - var DefaultType$1 = { - offset: 'number', - method: 'string', - target: '(string|element)' - }; - /** - * Class definition - */ - - var ScrollSpy = /*#__PURE__*/function () { - function ScrollSpy(element, config) { - var _this = this; - - this._element = element; - this._scrollElement = element.tagName === 'BODY' ? window : element; - this._config = this._getConfig(config); - this._selector = this._config.target + " " + SELECTOR_NAV_LINKS + "," + (this._config.target + " " + SELECTOR_LIST_ITEMS + ",") + (this._config.target + " " + SELECTOR_DROPDOWN_ITEMS); - this._offsets = []; - this._targets = []; - this._activeTarget = null; - this._scrollHeight = 0; - $__default["default"](this._scrollElement).on(EVENT_SCROLL, function (event) { - return _this._process(event); - }); - this.refresh(); - - this._process(); - } // Getters - - - var _proto = ScrollSpy.prototype; - - // Public - _proto.refresh = function refresh() { - var _this2 = this; - - var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION; - var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method; - var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0; - this._offsets = []; - this._targets = []; - this._scrollHeight = this._getScrollHeight(); - var targets = [].slice.call(document.querySelectorAll(this._selector)); - targets.map(function (element) { - var target; - var targetSelector = Util.getSelectorFromElement(element); - - if (targetSelector) { - target = document.querySelector(targetSelector); - } - - if (target) { - var targetBCR = target.getBoundingClientRect(); - - if (targetBCR.width || targetBCR.height) { - // TODO (fat): remove sketch reliance on jQuery position/offset - return [$__default["default"](target)[offsetMethod]().top + offsetBase, targetSelector]; - } - } - - return null; - }).filter(function (item) { - return item; - }).sort(function (a, b) { - return a[0] - b[0]; - }).forEach(function (item) { - _this2._offsets.push(item[0]); - - _this2._targets.push(item[1]); - }); - }; - - _proto.dispose = function dispose() { - $__default["default"].removeData(this._element, DATA_KEY$2); - $__default["default"](this._scrollElement).off(EVENT_KEY$2); - this._element = null; - this._scrollElement = null; - this._config = null; - this._selector = null; - this._offsets = null; - this._targets = null; - this._activeTarget = null; - this._scrollHeight = null; - } // Private - ; - - _proto._getConfig = function _getConfig(config) { - config = _extends({}, Default$1, typeof config === 'object' && config ? config : {}); - - if (typeof config.target !== 'string' && Util.isElement(config.target)) { - var id = $__default["default"](config.target).attr('id'); - - if (!id) { - id = Util.getUID(NAME$2); - $__default["default"](config.target).attr('id', id); - } - - config.target = "#" + id; - } - - Util.typeCheckConfig(NAME$2, config, DefaultType$1); - return config; - }; - - _proto._getScrollTop = function _getScrollTop() { - return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop; - }; - - _proto._getScrollHeight = function _getScrollHeight() { - return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight); - }; - - _proto._getOffsetHeight = function _getOffsetHeight() { - return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height; - }; - - _proto._process = function _process() { - var scrollTop = this._getScrollTop() + this._config.offset; - - var scrollHeight = this._getScrollHeight(); - - var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight(); - - if (this._scrollHeight !== scrollHeight) { - this.refresh(); - } - - if (scrollTop >= maxScroll) { - var target = this._targets[this._targets.length - 1]; - - if (this._activeTarget !== target) { - this._activate(target); - } - - return; - } - - if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) { - this._activeTarget = null; - - this._clear(); - - return; - } - - for (var i = this._offsets.length; i--;) { - var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]); - - if (isActiveTarget) { - this._activate(this._targets[i]); - } - } - }; - - _proto._activate = function _activate(target) { - this._activeTarget = target; - - this._clear(); - - var queries = this._selector.split(',').map(function (selector) { - return selector + "[data-target=\"" + target + "\"]," + selector + "[href=\"" + target + "\"]"; - }); - - var $link = $__default["default"]([].slice.call(document.querySelectorAll(queries.join(',')))); - - if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) { - $link.closest(SELECTOR_DROPDOWN$1).find(SELECTOR_DROPDOWN_TOGGLE$1).addClass(CLASS_NAME_ACTIVE$1); - $link.addClass(CLASS_NAME_ACTIVE$1); - } else { - // Set triggered link as active - $link.addClass(CLASS_NAME_ACTIVE$1); // Set triggered links parents as active - // With both
    and