summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-23 10:03:17 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-10-23 10:03:17 +0200
commit5ea1b745d4cd8735fecdceb3e32b11af6f672b1e (patch)
tree0fb48997a2db535890939086151956904446b270 /ishtar_common
parent1e0014a09399d7eef7df4ae2146e54512007e02f (diff)
downloadIshtar-5ea1b745d4cd8735fecdceb3e32b11af6f672b1e.tar.bz2
Ishtar-5ea1b745d4cd8735fecdceb3e32b11af6f672b1e.zip
UI add bootstrap and poppler libraries - integrate them on the main template
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/static/bootstrap/bootstrap.css1148
-rw-r--r--ishtar_common/static/bootstrap/bootstrap.css.map7
-rw-r--r--ishtar_common/static/bootstrap/bootstrap.js3850
-rw-r--r--ishtar_common/static/popper.min.js5
-rw-r--r--ishtar_common/templates/base.html4
5 files changed, 5013 insertions, 1 deletions
diff --git a/ishtar_common/static/bootstrap/bootstrap.css b/ishtar_common/static/bootstrap/bootstrap.css
new file mode 100644
index 000000000..229c61787
--- /dev/null
+++ b/ishtar_common/static/bootstrap/bootstrap.css
@@ -0,0 +1,1148 @@
+*,
+*::before,
+*::after {
+ box-sizing: border-box; }
+
+html {
+ font-family: sans-serif;
+ line-height: 1.15;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ -ms-overflow-style: scrollbar;
+ -webkit-tap-highlight-color: transparent; }
+
+@-ms-viewport {
+ width: device-width; }
+article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
+ display: block; }
+
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-size: 1rem;
+ font-weight: 400;
+ line-height: 1.5;
+ color: #212529;
+ text-align: left;
+ background-color: #fff; }
+
+[tabindex="-1"]:focus {
+ outline: none !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;
+ text-decoration: underline dotted;
+ cursor: help;
+ border-bottom: 0; }
+
+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: .5rem;
+ margin-left: 0; }
+
+blockquote {
+ margin: 0 0 1rem; }
+
+dfn {
+ font-style: italic; }
+
+b,
+strong {
+ font-weight: bolder; }
+
+small {
+ font-size: 80%; }
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline; }
+
+sub {
+ bottom: -.25em; }
+
+sup {
+ top: -.5em; }
+
+a {
+ color: #007bff;
+ text-decoration: none;
+ background-color: transparent;
+ -webkit-text-decoration-skip: objects; }
+ a:hover {
+ color: #0056b3;
+ text-decoration: underline; }
+
+a:not([href]):not([tabindex]) {
+ color: inherit;
+ text-decoration: none; }
+ a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
+ color: inherit;
+ text-decoration: none; }
+ a:not([href]):not([tabindex]):focus {
+ outline: 0; }
+
+pre,
+code,
+kbd,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+pre {
+ margin-top: 0;
+ margin-bottom: 1rem;
+ overflow: auto;
+ -ms-overflow-style: scrollbar; }
+
+figure {
+ margin: 0 0 1rem; }
+
+img {
+ vertical-align: middle;
+ border-style: none; }
+
+svg:not(:root) {
+ overflow: hidden; }
+
+a,
+area,
+button,
+[role="button"],
+input:not([type="range"]),
+label,
+select,
+summary,
+textarea {
+ touch-action: manipulation; }
+
+table {
+ border-collapse: collapse; }
+
+caption {
+ padding-top: 0.75rem;
+ padding-bottom: 0.75rem;
+ color: #868e96;
+ text-align: left;
+ caption-side: bottom; }
+
+th {
+ text-align: inherit; }
+
+label {
+ display: inline-block;
+ margin-bottom: .5rem; }
+
+button {
+ border-radius: 0; }
+
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color; }
+
+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; }
+
+button,
+html [type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; }
+
+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; }
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ -webkit-appearance: listbox; }
+
+textarea {
+ overflow: auto;
+ resize: vertical; }
+
+fieldset {
+ min-width: 0;
+ padding: 0;
+ margin: 0;
+ border: 0; }
+
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit;
+ white-space: normal; }
+
+progress {
+ vertical-align: baseline; }
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+[type="search"] {
+ outline-offset: -2px;
+ -webkit-appearance: none; }
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+::-webkit-file-upload-button {
+ font: inherit;
+ -webkit-appearance: button; }
+
+output {
+ display: inline-block; }
+
+summary {
+ display: list-item; }
+
+template {
+ display: none; }
+
+[hidden] {
+ display: none !important; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: 0.5rem;
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.2;
+ color: inherit; }
+
+h1, .h1 {
+ font-size: 2.5rem; }
+
+h2, .h2 {
+ font-size: 2rem; }
+
+h3, .h3 {
+ font-size: 1.75rem; }
+
+h4, .h4 {
+ font-size: 1.5rem; }
+
+h5, .h5 {
+ font-size: 1.25rem; }
+
+h6, .h6 {
+ font-size: 1rem; }
+
+.lead {
+ font-size: 1.25rem;
+ font-weight: 300; }
+
+.display-1 {
+ font-size: 6rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-2 {
+ font-size: 5.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-3 {
+ font-size: 4.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+.display-4 {
+ font-size: 3.5rem;
+ font-weight: 300;
+ line-height: 1.2; }
+
+hr {
+ margin-top: 1rem;
+ margin-bottom: 1rem;
+ border: 0;
+ border-top: 1px solid rgba(0, 0, 0, 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: 5px; }
+
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase; }
+
+.blockquote {
+ margin-bottom: 1rem;
+ font-size: 1.25rem; }
+
+.blockquote-footer {
+ display: block;
+ font-size: 80%;
+ color: #868e96; }
+ .blockquote-footer::before {
+ content: "\2014 \00A0"; }
+
+.img-fluid {
+ max-width: 100%;
+ height: auto; }
+
+.img-thumbnail {
+ padding: 0.25rem;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 0.25rem;
+ transition: all 0.2s ease-in-out;
+ max-width: 100%;
+ height: auto; }
+
+.figure {
+ display: inline-block; }
+
+.figure-img {
+ margin-bottom: 0.5rem;
+ line-height: 1; }
+
+.figure-caption {
+ font-size: 90%;
+ color: #868e96; }
+
+code,
+kbd,
+pre,
+samp {
+ font-family: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }
+
+code {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #bd4147;
+ background-color: #f8f9fa;
+ border-radius: 0.25rem; }
+ a > code {
+ padding: 0;
+ color: inherit;
+ background-color: inherit; }
+
+kbd {
+ padding: 0.2rem 0.4rem;
+ font-size: 90%;
+ color: #fff;
+ background-color: #212529;
+ border-radius: 0.2rem; }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: 700; }
+
+pre {
+ display: block;
+ font-size: 90%;
+ color: #212529; }
+ pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ background-color: transparent;
+ border-radius: 0; }
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll; }
+
+.container {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto; }
+ @media (min-width: 576px) {
+ .container {
+ max-width: 540px; } }
+ @media (min-width: 768px) {
+ .container {
+ max-width: 720px; } }
+ @media (min-width: 992px) {
+ .container {
+ max-width: 960px; } }
+ @media (min-width: 1200px) {
+ .container {
+ max-width: 1140px; } }
+
+.container-fluid {
+ width: 100%;
+ padding-right: 15px;
+ padding-left: 15px;
+ margin-right: auto;
+ margin-left: auto; }
+
+.row {
+ display: 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-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,
+.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,
+.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,
+.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,
+.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,
+.col-xl-auto {
+ position: relative;
+ width: 100%;
+ min-height: 1px;
+ padding-right: 15px;
+ padding-left: 15px; }
+
+.col {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+.col-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+.col-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+.col-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+.col-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+.col-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+.col-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+.col-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+.col-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+.col-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+.col-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+.col-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+.col-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+.col-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+.order-first {
+ order: -1; }
+
+.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.33333%; }
+
+.offset-2 {
+ margin-left: 16.66667%; }
+
+.offset-3 {
+ margin-left: 25%; }
+
+.offset-4 {
+ margin-left: 33.33333%; }
+
+.offset-5 {
+ margin-left: 41.66667%; }
+
+.offset-6 {
+ margin-left: 50%; }
+
+.offset-7 {
+ margin-left: 58.33333%; }
+
+.offset-8 {
+ margin-left: 66.66667%; }
+
+.offset-9 {
+ margin-left: 75%; }
+
+.offset-10 {
+ margin-left: 83.33333%; }
+
+.offset-11 {
+ margin-left: 91.66667%; }
+
+@media (min-width: 576px) {
+ .col-sm {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+ .col-sm-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+ .col-sm-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+ .col-sm-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+ .col-sm-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+ .col-sm-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+ .col-sm-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+ .col-sm-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+ .col-sm-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+ .col-sm-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+ .col-sm-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+ .col-sm-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+ .col-sm-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+ .col-sm-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+ .order-sm-first {
+ order: -1; }
+
+ .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.33333%; }
+
+ .offset-sm-2 {
+ margin-left: 16.66667%; }
+
+ .offset-sm-3 {
+ margin-left: 25%; }
+
+ .offset-sm-4 {
+ margin-left: 33.33333%; }
+
+ .offset-sm-5 {
+ margin-left: 41.66667%; }
+
+ .offset-sm-6 {
+ margin-left: 50%; }
+
+ .offset-sm-7 {
+ margin-left: 58.33333%; }
+
+ .offset-sm-8 {
+ margin-left: 66.66667%; }
+
+ .offset-sm-9 {
+ margin-left: 75%; }
+
+ .offset-sm-10 {
+ margin-left: 83.33333%; }
+
+ .offset-sm-11 {
+ margin-left: 91.66667%; } }
+@media (min-width: 768px) {
+ .col-md {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+ .col-md-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+ .col-md-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+ .col-md-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+ .col-md-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+ .col-md-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+ .col-md-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+ .col-md-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+ .col-md-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+ .col-md-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+ .col-md-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+ .col-md-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+ .col-md-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+ .col-md-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+ .order-md-first {
+ order: -1; }
+
+ .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.33333%; }
+
+ .offset-md-2 {
+ margin-left: 16.66667%; }
+
+ .offset-md-3 {
+ margin-left: 25%; }
+
+ .offset-md-4 {
+ margin-left: 33.33333%; }
+
+ .offset-md-5 {
+ margin-left: 41.66667%; }
+
+ .offset-md-6 {
+ margin-left: 50%; }
+
+ .offset-md-7 {
+ margin-left: 58.33333%; }
+
+ .offset-md-8 {
+ margin-left: 66.66667%; }
+
+ .offset-md-9 {
+ margin-left: 75%; }
+
+ .offset-md-10 {
+ margin-left: 83.33333%; }
+
+ .offset-md-11 {
+ margin-left: 91.66667%; } }
+@media (min-width: 992px) {
+ .col-lg {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+ .col-lg-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+ .col-lg-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+ .col-lg-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+ .col-lg-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+ .col-lg-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+ .col-lg-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+ .col-lg-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+ .col-lg-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+ .col-lg-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+ .col-lg-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+ .col-lg-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+ .col-lg-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+ .col-lg-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+ .order-lg-first {
+ order: -1; }
+
+ .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.33333%; }
+
+ .offset-lg-2 {
+ margin-left: 16.66667%; }
+
+ .offset-lg-3 {
+ margin-left: 25%; }
+
+ .offset-lg-4 {
+ margin-left: 33.33333%; }
+
+ .offset-lg-5 {
+ margin-left: 41.66667%; }
+
+ .offset-lg-6 {
+ margin-left: 50%; }
+
+ .offset-lg-7 {
+ margin-left: 58.33333%; }
+
+ .offset-lg-8 {
+ margin-left: 66.66667%; }
+
+ .offset-lg-9 {
+ margin-left: 75%; }
+
+ .offset-lg-10 {
+ margin-left: 83.33333%; }
+
+ .offset-lg-11 {
+ margin-left: 91.66667%; } }
+@media (min-width: 1200px) {
+ .col-xl {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%; }
+
+ .col-xl-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; }
+
+ .col-xl-1 {
+ flex: 0 0 8.33333%;
+ max-width: 8.33333%; }
+
+ .col-xl-2 {
+ flex: 0 0 16.66667%;
+ max-width: 16.66667%; }
+
+ .col-xl-3 {
+ flex: 0 0 25%;
+ max-width: 25%; }
+
+ .col-xl-4 {
+ flex: 0 0 33.33333%;
+ max-width: 33.33333%; }
+
+ .col-xl-5 {
+ flex: 0 0 41.66667%;
+ max-width: 41.66667%; }
+
+ .col-xl-6 {
+ flex: 0 0 50%;
+ max-width: 50%; }
+
+ .col-xl-7 {
+ flex: 0 0 58.33333%;
+ max-width: 58.33333%; }
+
+ .col-xl-8 {
+ flex: 0 0 66.66667%;
+ max-width: 66.66667%; }
+
+ .col-xl-9 {
+ flex: 0 0 75%;
+ max-width: 75%; }
+
+ .col-xl-10 {
+ flex: 0 0 83.33333%;
+ max-width: 83.33333%; }
+
+ .col-xl-11 {
+ flex: 0 0 91.66667%;
+ max-width: 91.66667%; }
+
+ .col-xl-12 {
+ flex: 0 0 100%;
+ max-width: 100%; }
+
+ .order-xl-first {
+ order: -1; }
+
+ .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.33333%; }
+
+ .offset-xl-2 {
+ margin-left: 16.66667%; }
+
+ .offset-xl-3 {
+ margin-left: 25%; }
+
+ .offset-xl-4 {
+ margin-left: 33.33333%; }
+
+ .offset-xl-5 {
+ margin-left: 41.66667%; }
+
+ .offset-xl-6 {
+ margin-left: 50%; }
+
+ .offset-xl-7 {
+ margin-left: 58.33333%; }
+
+ .offset-xl-8 {
+ margin-left: 66.66667%; }
+
+ .offset-xl-9 {
+ margin-left: 75%; }
+
+ .offset-xl-10 {
+ margin-left: 83.33333%; }
+
+ .offset-xl-11 {
+ margin-left: 91.66667%; } }
+
+/*# sourceMappingURL=bootstrap.css.map */
diff --git a/ishtar_common/static/bootstrap/bootstrap.css.map b/ishtar_common/static/bootstrap/bootstrap.css.map
new file mode 100644
index 000000000..8d81f1f61
--- /dev/null
+++ b/ishtar_common/static/bootstrap/bootstrap.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "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",
+"sources": ["../../../scss/bootstrap-src/scss/_reboot.scss","../../../scss/bootstrap-src/scss/_variables.scss","../../../scss/bootstrap-src/scss/mixins/_hover.scss","../../../scss/bootstrap-src/scss/_type.scss","../../../scss/bootstrap-src/scss/mixins/_lists.scss","../../../scss/bootstrap-src/scss/_images.scss","../../../scss/bootstrap-src/scss/mixins/_image.scss","../../../scss/bootstrap-src/scss/mixins/_border-radius.scss","../../../scss/bootstrap-src/scss/mixins/_transition.scss","../../../scss/bootstrap-src/scss/_code.scss","../../../scss/bootstrap-src/scss/_grid.scss","../../../scss/bootstrap-src/scss/mixins/_grid.scss","../../../scss/bootstrap-src/scss/mixins/_breakpoints.scss","../../../scss/bootstrap-src/scss/_functions.scss","../../../scss/bootstrap-src/scss/mixins/_grid-framework.scss"],
+"names": [],
+"file": "bootstrap.css"
+}
diff --git a/ishtar_common/static/bootstrap/bootstrap.js b/ishtar_common/static/bootstrap/bootstrap.js
new file mode 100644
index 000000000..630a9e019
--- /dev/null
+++ b/ishtar_common/static/bootstrap/bootstrap.js
@@ -0,0 +1,3850 @@
+/*!
+ * Bootstrap v4.0.0-beta.2 (https://getbootstrap.com)
+ * Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+var bootstrap = (function (exports,$,Popper) {
+'use strict';
+
+$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
+Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): util.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Util = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Private TransitionEnd Helpers
+ * ------------------------------------------------------------------------
+ */
+ var transition = false;
+ var MAX_UID = 1000000;
+ var TransitionEndEvent = {
+ WebkitTransition: 'webkitTransitionEnd',
+ MozTransition: 'transitionend',
+ OTransition: 'oTransitionEnd otransitionend',
+ transition: 'transitionend' // shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+ };
+
+ function toType(obj) {
+ return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
+ }
+
+ function getSpecialTransitionEndEvent() {
+ return {
+ bindType: transition.end,
+ delegateType: transition.end,
+ handle: function handle(event) {
+ if ($(event.target).is(this)) {
+ return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
+ }
+
+ return undefined; // eslint-disable-line no-undefined
+ }
+ };
+ }
+
+ function transitionEndTest() {
+ if (window.QUnit) {
+ return false;
+ }
+
+ var el = document.createElement('bootstrap');
+
+ for (var name in TransitionEndEvent) {
+ if (typeof el.style[name] !== 'undefined') {
+ return {
+ end: TransitionEndEvent[name]
+ };
+ }
+ }
+
+ return false;
+ }
+
+ function transitionEndEmulator(duration) {
+ var _this = this;
+
+ var called = false;
+ $(this).one(Util.TRANSITION_END, function () {
+ called = true;
+ });
+ setTimeout(function () {
+ if (!called) {
+ Util.triggerTransitionEnd(_this);
+ }
+ }, duration);
+ return this;
+ }
+
+ function setTransitionEndSupport() {
+ transition = transitionEndTest();
+ $.fn.emulateTransitionEnd = transitionEndEmulator;
+
+ if (Util.supportsTransitionEnd()) {
+ $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
+ }
+ }
+ /**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+ var Util = {
+ TRANSITION_END: 'bsTransitionEnd',
+ getUID: function getUID(prefix) {
+ do {
+ // eslint-disable-next-line no-bitwise
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+ } while (document.getElementById(prefix));
+
+ return prefix;
+ },
+ getSelectorFromElement: function getSelectorFromElement(element) {
+ var selector = element.getAttribute('data-target');
+
+ if (!selector || selector === '#') {
+ selector = element.getAttribute('href') || '';
+ }
+
+ try {
+ var $selector = $(document).find(selector);
+ return $selector.length > 0 ? selector : null;
+ } catch (error) {
+ return null;
+ }
+ },
+ reflow: function reflow(element) {
+ return element.offsetHeight;
+ },
+ triggerTransitionEnd: function triggerTransitionEnd(element) {
+ $(element).trigger(transition.end);
+ },
+ supportsTransitionEnd: function supportsTransitionEnd() {
+ return Boolean(transition);
+ },
+ isElement: function isElement(obj) {
+ return (obj[0] || obj).nodeType;
+ },
+ typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
+ for (var property in configTypes) {
+ if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
+ var expectedTypes = configTypes[property];
+ var value = config[property];
+ var valueType = value && Util.isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
+ }
+ }
+ }
+ }
+ };
+ setTransitionEndSupport();
+ return Util;
+}($);
+
+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;
+}
+
+var createClass = _createClass;
+
+function _inheritsLoose(subClass, superClass) {
+ subClass.prototype = Object.create(superClass.prototype);
+ subClass.prototype.constructor = subClass;
+ subClass.__proto__ = superClass;
+}
+
+var inheritsLoose = _inheritsLoose;
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): alert.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Alert = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'alert';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.alert';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+ var Selector = {
+ DISMISS: '[data-dismiss="alert"]'
+ };
+ var Event = {
+ CLOSE: "close" + EVENT_KEY,
+ CLOSED: "closed" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ ALERT: 'alert',
+ FADE: 'fade',
+ SHOW: 'show'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Alert =
+ /*#__PURE__*/
+ function () {
+ function Alert(element) {
+ this._element = element;
+ } // getters
+
+
+ var _proto = Alert.prototype;
+
+ // public
+ _proto.close = function close(element) {
+ element = element || this._element;
+
+ var rootElement = this._getRootElement(element);
+
+ var customEvent = this._triggerCloseEvent(rootElement);
+
+ if (customEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._removeElement(rootElement);
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // private
+
+
+ _proto._getRootElement = function _getRootElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ var parent = false;
+
+ if (selector) {
+ parent = $(selector)[0];
+ }
+
+ if (!parent) {
+ parent = $(element).closest("." + ClassName.ALERT)[0];
+ }
+
+ return parent;
+ };
+
+ _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
+ var closeEvent = $.Event(Event.CLOSE);
+ $(element).trigger(closeEvent);
+ return closeEvent;
+ };
+
+ _proto._removeElement = function _removeElement(element) {
+ var _this = this;
+
+ $(element).removeClass(ClassName.SHOW);
+
+ if (!Util.supportsTransitionEnd() || !$(element).hasClass(ClassName.FADE)) {
+ this._destroyElement(element);
+
+ return;
+ }
+
+ $(element).one(Util.TRANSITION_END, function (event) {
+ return _this._destroyElement(element, event);
+ }).emulateTransitionEnd(TRANSITION_DURATION);
+ };
+
+ _proto._destroyElement = function _destroyElement(element) {
+ $(element).detach().trigger(Event.CLOSED).remove();
+ }; // static
+
+
+ Alert._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $element = $(this);
+ var data = $element.data(DATA_KEY);
+
+ if (!data) {
+ data = new Alert(this);
+ $element.data(DATA_KEY, data);
+ }
+
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ };
+
+ Alert._handleDismiss = function _handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ alertInstance.close(this);
+ };
+ };
+
+ createClass(Alert, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+ return Alert;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Alert._jQueryInterface;
+ $.fn[NAME].Constructor = Alert;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Alert._jQueryInterface;
+ };
+
+ return Alert;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): button.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Button = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'button';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.button';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var ClassName = {
+ ACTIVE: 'active',
+ BUTTON: 'btn',
+ FOCUS: 'focus'
+ };
+ var Selector = {
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+ DATA_TOGGLE: '[data-toggle="buttons"]',
+ INPUT: 'input',
+ ACTIVE: '.active',
+ BUTTON: '.btn'
+ };
+ var Event = {
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Button =
+ /*#__PURE__*/
+ function () {
+ function Button(element) {
+ this._element = element;
+ } // getters
+
+
+ var _proto = Button.prototype;
+
+ // public
+ _proto.toggle = function toggle() {
+ var triggerChangeEvent = true;
+ var addAriaPressed = true;
+ var rootElement = $(this._element).closest(Selector.DATA_TOGGLE)[0];
+
+ if (rootElement) {
+ var input = $(this._element).find(Selector.INPUT)[0];
+
+ if (input) {
+ if (input.type === 'radio') {
+ if (input.checked && $(this._element).hasClass(ClassName.ACTIVE)) {
+ triggerChangeEvent = false;
+ } else {
+ var activeElement = $(rootElement).find(Selector.ACTIVE)[0];
+
+ if (activeElement) {
+ $(activeElement).removeClass(ClassName.ACTIVE);
+ }
+ }
+ }
+
+ if (triggerChangeEvent) {
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+ return;
+ }
+
+ input.checked = !$(this._element).hasClass(ClassName.ACTIVE);
+ $(input).trigger('change');
+ }
+
+ input.focus();
+ addAriaPressed = false;
+ }
+ }
+
+ if (addAriaPressed) {
+ this._element.setAttribute('aria-pressed', !$(this._element).hasClass(ClassName.ACTIVE));
+ }
+
+ if (triggerChangeEvent) {
+ $(this._element).toggleClass(ClassName.ACTIVE);
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // static
+
+
+ Button._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ if (!data) {
+ data = new Button(this);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ };
+
+ createClass(Button, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+ return Button;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ event.preventDefault();
+ var button = event.target;
+
+ if (!$(button).hasClass(ClassName.BUTTON)) {
+ button = $(button).closest(Selector.BUTTON);
+ }
+
+ Button._jQueryInterface.call($(button), 'toggle');
+ }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
+ var button = $(event.target).closest(Selector.BUTTON)[0];
+ $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Button._jQueryInterface;
+ $.fn[NAME].Constructor = Button;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Button._jQueryInterface;
+ };
+
+ return Button;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): carousel.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Carousel = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'carousel';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.carousel';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 600;
+ var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+ var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+ var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+ var Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true
+ };
+ var DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean'
+ };
+ var Direction = {
+ NEXT: 'next',
+ PREV: 'prev',
+ LEFT: 'left',
+ RIGHT: 'right'
+ };
+ var Event = {
+ SLIDE: "slide" + EVENT_KEY,
+ SLID: "slid" + EVENT_KEY,
+ KEYDOWN: "keydown" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY,
+ TOUCHEND: "touchend" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ CAROUSEL: 'carousel',
+ ACTIVE: 'active',
+ SLIDE: 'slide',
+ RIGHT: 'carousel-item-right',
+ LEFT: 'carousel-item-left',
+ NEXT: 'carousel-item-next',
+ PREV: 'carousel-item-prev',
+ ITEM: 'carousel-item'
+ };
+ var Selector = {
+ ACTIVE: '.active',
+ ACTIVE_ITEM: '.active.carousel-item',
+ ITEM: '.carousel-item',
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
+ INDICATORS: '.carousel-indicators',
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
+ DATA_RIDE: '[data-ride="carousel"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Carousel =
+ /*#__PURE__*/
+ function () {
+ function Carousel(element, config) {
+ this._items = null;
+ this._interval = null;
+ this._activeElement = null;
+ this._isPaused = false;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this._config = this._getConfig(config);
+ this._element = $(element)[0];
+ this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0];
+
+ this._addEventListeners();
+ } // getters
+
+
+ var _proto = Carousel.prototype;
+
+ // public
+ _proto.next = function next() {
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
+ }
+ };
+
+ _proto.nextWhenVisible = function nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && $(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden') {
+ this.next();
+ }
+ };
+
+ _proto.prev = function prev() {
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
+ }
+ };
+
+ _proto.pause = function pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if ($(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
+ Util.triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
+
+ clearInterval(this._interval);
+ this._interval = null;
+ };
+
+ _proto.cycle = function cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
+
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config.interval && !this._isPaused) {
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ };
+
+ _proto.to = function to(index) {
+ var _this = this;
+
+ this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+ var activeIndex = this._getItemIndex(this._activeElement);
+
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ $(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() {
+ $(this._element).off(EVENT_KEY);
+ $.removeData(this._element, DATA_KEY);
+ this._items = null;
+ this._config = null;
+ this._element = null;
+ this._interval = null;
+ this._isPaused = null;
+ this._isSliding = null;
+ this._activeElement = null;
+ this._indicatorsElement = null;
+ }; // private
+
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this2 = this;
+
+ if (this._config.keyboard) {
+ $(this._element).on(Event.KEYDOWN, function (event) {
+ return _this2._keydown(event);
+ });
+ }
+
+ if (this._config.pause === 'hover') {
+ $(this._element).on(Event.MOUSEENTER, function (event) {
+ return _this2.pause(event);
+ }).on(Event.MOUSELEAVE, function (event) {
+ return _this2.cycle(event);
+ });
+
+ if ('ontouchstart' in document.documentElement) {
+ // if it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ $(this._element).on(Event.TOUCHEND, function () {
+ _this2.pause();
+
+ if (_this2.touchTimeout) {
+ clearTimeout(_this2.touchTimeout);
+ }
+
+ _this2.touchTimeout = setTimeout(function (event) {
+ return _this2.cycle(event);
+ }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval);
+ });
+ }
+ }
+ };
+
+ _proto._keydown = function _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ switch (event.which) {
+ case ARROW_LEFT_KEYCODE:
+ event.preventDefault();
+ this.prev();
+ break;
+
+ case ARROW_RIGHT_KEYCODE:
+ event.preventDefault();
+ this.next();
+ break;
+
+ default:
+ return;
+ }
+ };
+
+ _proto._getItemIndex = function _getItemIndex(element) {
+ this._items = $.makeArray($(element).parent().find(Selector.ITEM));
+ return this._items.indexOf(element);
+ };
+
+ _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
+ var isNextDirection = direction === Direction.NEXT;
+ var isPrevDirection = direction === Direction.PREV;
+
+ var activeIndex = this._getItemIndex(activeElement);
+
+ var lastItemIndex = this._items.length - 1;
+ var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
+
+ var delta = direction === Direction.PREV ? -1 : 1;
+ var itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ };
+
+ _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
+
+ var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
+
+ var slideEvent = $.Event(Event.SLIDE, {
+ relatedTarget: relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ $(this._element).trigger(slideEvent);
+ return slideEvent;
+ };
+
+ _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+
+ var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+ if (nextIndicator) {
+ $(nextIndicator).addClass(ClassName.ACTIVE);
+ }
+ }
+ };
+
+ _proto._slide = function _slide(direction, element) {
+ var _this3 = this;
+
+ var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+
+ var activeElementIndex = this._getItemIndex(activeElement);
+
+ var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+ var nextElementIndex = this._getItemIndex(nextElement);
+
+ var isCycling = Boolean(this._interval);
+ var directionalClassName;
+ var orderClassName;
+ var eventDirectionName;
+
+ if (direction === Direction.NEXT) {
+ directionalClassName = ClassName.LEFT;
+ orderClassName = ClassName.NEXT;
+ eventDirectionName = Direction.LEFT;
+ } else {
+ directionalClassName = ClassName.RIGHT;
+ orderClassName = ClassName.PREV;
+ eventDirectionName = Direction.RIGHT;
+ }
+
+ if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
+
+ var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+ if (slideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (!activeElement || !nextElement) {
+ // some weirdness is happening, so we bail
+ return;
+ }
+
+ this._isSliding = true;
+
+ if (isCycling) {
+ this.pause();
+ }
+
+ this._setActiveIndicatorElement(nextElement);
+
+ var slidEvent = $.Event(Event.SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
+ $(nextElement).addClass(orderClassName);
+ Util.reflow(nextElement);
+ $(activeElement).addClass(directionalClassName);
+ $(nextElement).addClass(directionalClassName);
+ $(activeElement).one(Util.TRANSITION_END, function () {
+ $(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
+ $(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
+ _this3._isSliding = false;
+ setTimeout(function () {
+ return $(_this3._element).trigger(slidEvent);
+ }, 0);
+ }).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ $(activeElement).removeClass(ClassName.ACTIVE);
+ $(nextElement).addClass(ClassName.ACTIVE);
+ this._isSliding = false;
+ $(this._element).trigger(slidEvent);
+ }
+
+ if (isCycling) {
+ this.cycle();
+ }
+ }; // static
+
+
+ Carousel._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = $.extend({}, Default, $(this).data());
+
+ if (typeof config === 'object') {
+ $.extend(_config, config);
+ }
+
+ var action = typeof config === 'string' ? config : _config.slide;
+
+ if (!data) {
+ data = new Carousel(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new Error("No method named \"" + action + "\"");
+ }
+
+ data[action]();
+ } else if (_config.interval) {
+ data.pause();
+ data.cycle();
+ }
+ });
+ };
+
+ Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
+ var selector = Util.getSelectorFromElement(this);
+
+ if (!selector) {
+ return;
+ }
+
+ var target = $(selector)[0];
+
+ if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {
+ return;
+ }
+
+ var config = $.extend({}, $(target).data(), $(this).data());
+ var slideIndex = this.getAttribute('data-slide-to');
+
+ if (slideIndex) {
+ config.interval = false;
+ }
+
+ Carousel._jQueryInterface.call($(target), config);
+
+ if (slideIndex) {
+ $(target).data(DATA_KEY).to(slideIndex);
+ }
+
+ event.preventDefault();
+ };
+
+ createClass(Carousel, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return Carousel;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
+ $(window).on(Event.LOAD_DATA_API, function () {
+ $(Selector.DATA_RIDE).each(function () {
+ var $carousel = $(this);
+
+ Carousel._jQueryInterface.call($carousel, $carousel.data());
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Carousel._jQueryInterface;
+ $.fn[NAME].Constructor = Carousel;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Carousel._jQueryInterface;
+ };
+
+ return Carousel;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): collapse.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Collapse = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'collapse';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.collapse';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 600;
+ var Default = {
+ toggle: true,
+ parent: ''
+ };
+ var DefaultType = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+ };
+ var Event = {
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SHOW: 'show',
+ COLLAPSE: 'collapse',
+ COLLAPSING: 'collapsing',
+ COLLAPSED: 'collapsed'
+ };
+ var Dimension = {
+ WIDTH: 'width',
+ HEIGHT: 'height'
+ };
+ var Selector = {
+ ACTIVES: '.show, .collapsing',
+ DATA_TOGGLE: '[data-toggle="collapse"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Collapse =
+ /*#__PURE__*/
+ function () {
+ function Collapse(element, config) {
+ this._isTransitioning = false;
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._triggerArray = $.makeArray($("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
+ var tabToggles = $(Selector.DATA_TOGGLE);
+
+ for (var i = 0; i < tabToggles.length; i++) {
+ var elem = tabToggles[i];
+ var selector = Util.getSelectorFromElement(elem);
+
+ if (selector !== null && $(selector).filter(element).length > 0) {
+ 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 ($(this._element).hasClass(ClassName.SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ };
+
+ _proto.show = function show() {
+ var _this = this;
+
+ if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
+
+ var actives;
+ var activesData;
+
+ if (this._parent) {
+ actives = $.makeArray($(this._parent).children().children(Selector.ACTIVES));
+
+ if (!actives.length) {
+ actives = null;
+ }
+ }
+
+ if (actives) {
+ activesData = $(actives).data(DATA_KEY);
+
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
+ }
+
+ var startEvent = $.Event(Event.SHOW);
+ $(this._element).trigger(startEvent);
+
+ if (startEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (actives) {
+ Collapse._jQueryInterface.call($(actives), 'hide');
+
+ if (!activesData) {
+ $(actives).data(DATA_KEY, null);
+ }
+ }
+
+ var dimension = this._getDimension();
+
+ $(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
+ this._element.style[dimension] = 0;
+
+ if (this._triggerArray.length) {
+ $(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ $(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
+ _this._element.style[dimension] = '';
+
+ _this.setTransitioning(false);
+
+ $(_this._element).trigger(Event.SHOWN);
+ };
+
+ if (!Util.supportsTransitionEnd()) {
+ complete();
+ return;
+ }
+
+ var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ var scrollSize = "scroll" + capitalizedDimension;
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ this._element.style[dimension] = this._element[scrollSize] + "px";
+ };
+
+ _proto.hide = function hide() {
+ var _this2 = this;
+
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
+ return;
+ }
+
+ var startEvent = $.Event(Event.HIDE);
+ $(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);
+ $(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
+
+ if (this._triggerArray.length) {
+ for (var i = 0; i < this._triggerArray.length; i++) {
+ var trigger = this._triggerArray[i];
+ var selector = Util.getSelectorFromElement(trigger);
+
+ if (selector !== null) {
+ var $elem = $(selector);
+
+ if (!$elem.hasClass(ClassName.SHOW)) {
+ $(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
+ }
+ }
+ }
+ }
+
+ this.setTransitioning(true);
+
+ var complete = function complete() {
+ _this2.setTransitioning(false);
+
+ $(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
+ };
+
+ this._element.style[dimension] = '';
+
+ if (!Util.supportsTransitionEnd()) {
+ complete();
+ return;
+ }
+
+ $(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ };
+
+ _proto.setTransitioning = function setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._config = null;
+ this._parent = null;
+ this._element = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ }; // private
+
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ config.toggle = Boolean(config.toggle); // coerce string values
+
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getDimension = function _getDimension() {
+ var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+ };
+
+ _proto._getParent = function _getParent() {
+ var _this3 = this;
+
+ var parent = null;
+
+ if (Util.isElement(this._config.parent)) {
+ parent = this._config.parent; // it's a jQuery object
+
+ if (typeof this._config.parent.jquery !== 'undefined') {
+ parent = this._config.parent[0];
+ }
+ } else {
+ parent = $(this._config.parent)[0];
+ }
+
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+ $(parent).find(selector).each(function (i, element) {
+ _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+ });
+ return parent;
+ };
+
+ _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
+ if (element) {
+ var isOpen = $(element).hasClass(ClassName.SHOW);
+
+ if (triggerArray.length) {
+ $(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
+ }
+ }
+ }; // static
+
+
+ Collapse._getTargetFromElement = function _getTargetFromElement(element) {
+ var selector = Util.getSelectorFromElement(element);
+ return selector ? $(selector)[0] : null;
+ };
+
+ Collapse._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data(DATA_KEY);
+
+ var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
+
+ if (!data && _config.toggle && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+
+ if (!data) {
+ data = new Collapse(this, _config);
+ $this.data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ createClass(Collapse, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return Collapse;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.currentTarget.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ var $trigger = $(this);
+ var selector = Util.getSelectorFromElement(this);
+ $(selector).each(function () {
+ var $target = $(this);
+ var data = $target.data(DATA_KEY);
+ var config = data ? 'toggle' : $trigger.data();
+
+ Collapse._jQueryInterface.call($target, config);
+ });
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Collapse._jQueryInterface;
+ $.fn[NAME].Constructor = Collapse;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Collapse._jQueryInterface;
+ };
+
+ return Collapse;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): dropdown.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Dropdown = function () {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
+ }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+
+ var NAME = 'dropdown';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.dropdown';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+ var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+ var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+ var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+ var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
+ KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
+ KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DISABLED: 'disabled',
+ SHOW: 'show',
+ DROPUP: 'dropup',
+ MENURIGHT: 'dropdown-menu-right',
+ MENULEFT: 'dropdown-menu-left'
+ };
+ var Selector = {
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
+ FORM_CHILD: '.dropdown form',
+ MENU: '.dropdown-menu',
+ NAVBAR_NAV: '.navbar-nav',
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
+ };
+ var AttachmentMap = {
+ TOP: 'top-start',
+ TOPEND: 'top-end',
+ BOTTOM: 'bottom-start',
+ BOTTOMEND: 'bottom-end'
+ };
+ var Default = {
+ offset: 0,
+ flip: true
+ };
+ var DefaultType = {
+ offset: '(number|string|function)',
+ flip: 'boolean'
+ /**
+ * ------------------------------------------------------------------------
+ * 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 || $(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
+
+ var parent = Dropdown._getParentFromElement(this._element);
+
+ var isActive = $(this._menu).hasClass(ClassName.SHOW);
+
+ Dropdown._clearMenus();
+
+ if (isActive) {
+ return;
+ }
+
+ var relatedTarget = {
+ relatedTarget: this._element
+ };
+ var showEvent = $.Event(Event.SHOW, relatedTarget);
+ $(parent).trigger(showEvent);
+
+ if (showEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ var element = this._element; // for dropup with alignment we use the parent as popper container
+
+ if ($(parent).hasClass(ClassName.DROPUP)) {
+ if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {
+ element = parent;
+ }
+ }
+
+ this._popper = new Popper(element, 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 && !$(parent).closest(Selector.NAVBAR_NAV).length) {
+ $('body').children().on('mouseover', null, $.noop);
+ }
+
+ this._element.focus();
+
+ this._element.setAttribute('aria-expanded', true);
+
+ $(this._menu).toggleClass(ClassName.SHOW);
+ $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ $(this._element).off(EVENT_KEY);
+ this._element = null;
+ this._menu = null;
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ };
+
+ _proto.update = function update() {
+ this._inNavbar = this._detectNavbar();
+
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ }; // private
+
+
+ _proto._addEventListeners = function _addEventListeners() {
+ var _this = this;
+
+ $(this._element).on(Event.CLICK, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ _this.toggle();
+ });
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, this.constructor.Default, $(this._element).data(), config);
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
+
+ _proto._getMenuElement = function _getMenuElement() {
+ if (!this._menu) {
+ var parent = Dropdown._getParentFromElement(this._element);
+
+ this._menu = $(parent).find(Selector.MENU)[0];
+ }
+
+ return this._menu;
+ };
+
+ _proto._getPlacement = function _getPlacement() {
+ var $parentDropdown = $(this._element).parent();
+ var placement = AttachmentMap.BOTTOM; // Handle dropup
+
+ if ($parentDropdown.hasClass(ClassName.DROPUP)) {
+ placement = AttachmentMap.TOP;
+
+ if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.TOPEND;
+ }
+ } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
+ placement = AttachmentMap.BOTTOMEND;
+ }
+
+ return placement;
+ };
+
+ _proto._detectNavbar = function _detectNavbar() {
+ return $(this._element).closest('.navbar').length > 0;
+ };
+
+ _proto._getPopperConfig = function _getPopperConfig() {
+ var _this2 = this;
+
+ var offsetConf = {};
+
+ if (typeof this._config.offset === 'function') {
+ offsetConf.fn = function (data) {
+ data.offsets = $.extend({}, data.offsets, _this2._config.offset(data.offsets) || {});
+ return data;
+ };
+ } else {
+ offsetConf.offset = this._config.offset;
+ }
+
+ var popperConfig = {
+ placement: this._getPlacement(),
+ modifiers: {
+ offset: offsetConf,
+ flip: {
+ enabled: this._config.flip
+ }
+ } // Disable Popper.js for Dropdown in Navbar
+
+ };
+
+ if (this._inNavbar) {
+ popperConfig.modifiers.applyStyle = {
+ enabled: !this._inNavbar
+ };
+ }
+
+ return popperConfig;
+ }; // static
+
+
+ Dropdown._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("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 = $.makeArray($(Selector.DATA_TOGGLE));
+
+ for (var i = 0; i < toggles.length; i++) {
+ var parent = Dropdown._getParentFromElement(toggles[i]);
+
+ var context = $(toggles[i]).data(DATA_KEY);
+ var relatedTarget = {
+ relatedTarget: toggles[i]
+ };
+
+ if (!context) {
+ continue;
+ }
+
+ var dropdownMenu = context._menu;
+
+ if (!$(parent).hasClass(ClassName.SHOW)) {
+ continue;
+ }
+
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {
+ continue;
+ }
+
+ var hideEvent = $.Event(Event.HIDE, relatedTarget);
+ $(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) {
+ $('body').children().off('mouseover', null, $.noop);
+ }
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+ $(dropdownMenu).removeClass(ClassName.SHOW);
+ $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
+ }
+ };
+
+ Dropdown._getParentFromElement = function _getParentFromElement(element) {
+ var parent;
+ var selector = Util.getSelectorFromElement(element);
+
+ if (selector) {
+ parent = $(selector)[0];
+ }
+
+ return parent || element.parentNode;
+ };
+
+ Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
+ if (!REGEXP_KEYDOWN.test(event.which) || /button/i.test(event.target.tagName) && event.which === SPACE_KEYCODE || /input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
+ return;
+ }
+
+ var parent = Dropdown._getParentFromElement(this);
+
+ var isActive = $(parent).hasClass(ClassName.SHOW);
+
+ if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+ if (event.which === ESCAPE_KEYCODE) {
+ var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];
+ $(toggle).trigger('focus');
+ }
+
+ $(this).trigger('click');
+ return;
+ }
+
+ var items = $(parent).find(Selector.VISIBLE_ITEMS).get();
+
+ if (!items.length) {
+ return;
+ }
+
+ var index = items.indexOf(event.target);
+
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // up
+ index--;
+ }
+
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // down
+ index++;
+ }
+
+ if (index < 0) {
+ index = 0;
+ }
+
+ items[index].focus();
+ };
+
+ createClass(Dropdown, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Dropdown;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ Dropdown._jQueryInterface.call($(this), 'toggle');
+ }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
+ e.stopPropagation();
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Dropdown._jQueryInterface;
+ $.fn[NAME].Constructor = Dropdown;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Dropdown._jQueryInterface;
+ };
+
+ return Dropdown;
+}($, Popper);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): modal.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Modal = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'modal';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.modal';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 300;
+ var BACKDROP_TRANSITION_DURATION = 150;
+ var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+ var Default = {
+ backdrop: true,
+ keyboard: true,
+ focus: true,
+ show: true
+ };
+ var DefaultType = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean',
+ show: 'boolean'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ RESIZE: "resize" + EVENT_KEY,
+ CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
+ KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
+ MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
+ MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+ BACKDROP: 'modal-backdrop',
+ OPEN: 'modal-open',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DIALOG: '.modal-dialog',
+ DATA_TOGGLE: '[data-toggle="modal"]',
+ DATA_DISMISS: '[data-dismiss="modal"]',
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ STICKY_CONTENT: '.sticky-top',
+ NAVBAR_TOGGLER: '.navbar-toggler'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Modal =
+ /*#__PURE__*/
+ function () {
+ function Modal(element, config) {
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._dialog = $(element).find(Selector.DIALOG)[0];
+ this._backdrop = null;
+ this._isShown = false;
+ this._isBodyOverflowing = false;
+ this._ignoreBackdropClick = false;
+ this._originalBodyPadding = 0;
+ this._scrollbarWidth = 0;
+ } // getters
+
+
+ var _proto = Modal.prototype;
+
+ // public
+ _proto.toggle = function toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ };
+
+ _proto.show = function show(relatedTarget) {
+ var _this = this;
+
+ if (this._isTransitioning || this._isShown) {
+ return;
+ }
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
+ this._isTransitioning = true;
+ }
+
+ var showEvent = $.Event(Event.SHOW, {
+ relatedTarget: relatedTarget
+ });
+ $(this._element).trigger(showEvent);
+
+ if (this._isShown || showEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._isShown = true;
+
+ this._checkScrollbar();
+
+ this._setScrollbar();
+
+ this._adjustDialog();
+
+ $(document.body).addClass(ClassName.OPEN);
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function (event) {
+ return _this.hide(event);
+ });
+ $(this._dialog).on(Event.MOUSEDOWN_DISMISS, function () {
+ $(_this._element).one(Event.MOUSEUP_DISMISS, function (event) {
+ if ($(event.target).is(_this._element)) {
+ _this._ignoreBackdropClick = true;
+ }
+ });
+ });
+
+ this._showBackdrop(function () {
+ return _this._showElement(relatedTarget);
+ });
+ };
+
+ _proto.hide = function hide(event) {
+ var _this2 = this;
+
+ if (event) {
+ event.preventDefault();
+ }
+
+ if (this._isTransitioning || !this._isShown) {
+ return;
+ }
+
+ var hideEvent = $.Event(Event.HIDE);
+ $(this._element).trigger(hideEvent);
+
+ if (!this._isShown || hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ this._isShown = false;
+ var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+
+ if (transition) {
+ this._isTransitioning = true;
+ }
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ $(document).off(Event.FOCUSIN);
+ $(this._element).removeClass(ClassName.SHOW);
+ $(this._element).off(Event.CLICK_DISMISS);
+ $(this._dialog).off(Event.MOUSEDOWN_DISMISS);
+
+ if (transition) {
+ $(this._element).one(Util.TRANSITION_END, function (event) {
+ return _this2._hideModal(event);
+ }).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ this._hideModal();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ $(window, document, this._element, this._backdrop).off(EVENT_KEY);
+ this._config = null;
+ this._element = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._scrollbarWidth = null;
+ };
+
+ _proto.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ }; // private
+
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, Default, config);
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._showElement = function _showElement(relatedTarget) {
+ var _this3 = this;
+
+ var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // don't move modals dom position
+ document.body.appendChild(this._element);
+ }
+
+ this._element.style.display = 'block';
+
+ this._element.removeAttribute('aria-hidden');
+
+ this._element.scrollTop = 0;
+
+ if (transition) {
+ Util.reflow(this._element);
+ }
+
+ $(this._element).addClass(ClassName.SHOW);
+
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
+
+ var shownEvent = $.Event(Event.SHOWN, {
+ relatedTarget: relatedTarget
+ });
+
+ var transitionComplete = function transitionComplete() {
+ if (_this3._config.focus) {
+ _this3._element.focus();
+ }
+
+ _this3._isTransitioning = false;
+ $(_this3._element).trigger(shownEvent);
+ };
+
+ if (transition) {
+ $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ transitionComplete();
+ }
+ };
+
+ _proto._enforceFocus = function _enforceFocus() {
+ var _this4 = this;
+
+ $(document).off(Event.FOCUSIN) // guard against infinite focus loop
+ .on(Event.FOCUSIN, function (event) {
+ if (document !== event.target && _this4._element !== event.target && !$(_this4._element).has(event.target).length) {
+ _this4._element.focus();
+ }
+ });
+ };
+
+ _proto._setEscapeEvent = function _setEscapeEvent() {
+ var _this5 = this;
+
+ if (this._isShown && this._config.keyboard) {
+ $(this._element).on(Event.KEYDOWN_DISMISS, function (event) {
+ if (event.which === ESCAPE_KEYCODE) {
+ event.preventDefault();
+
+ _this5.hide();
+ }
+ });
+ } else if (!this._isShown) {
+ $(this._element).off(Event.KEYDOWN_DISMISS);
+ }
+ };
+
+ _proto._setResizeEvent = function _setResizeEvent() {
+ var _this6 = this;
+
+ if (this._isShown) {
+ $(window).on(Event.RESIZE, function (event) {
+ return _this6.handleUpdate(event);
+ });
+ } else {
+ $(window).off(Event.RESIZE);
+ }
+ };
+
+ _proto._hideModal = function _hideModal() {
+ var _this7 = this;
+
+ this._element.style.display = 'none';
+
+ this._element.setAttribute('aria-hidden', true);
+
+ this._isTransitioning = false;
+
+ this._showBackdrop(function () {
+ $(document.body).removeClass(ClassName.OPEN);
+
+ _this7._resetAdjustments();
+
+ _this7._resetScrollbar();
+
+ $(_this7._element).trigger(Event.HIDDEN);
+ });
+ };
+
+ _proto._removeBackdrop = function _removeBackdrop() {
+ if (this._backdrop) {
+ $(this._backdrop).remove();
+ this._backdrop = null;
+ }
+ };
+
+ _proto._showBackdrop = function _showBackdrop(callback) {
+ var _this8 = this;
+
+ var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
+
+ if (this._isShown && this._config.backdrop) {
+ var doAnimate = Util.supportsTransitionEnd() && animate;
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = ClassName.BACKDROP;
+
+ if (animate) {
+ $(this._backdrop).addClass(animate);
+ }
+
+ $(this._backdrop).appendTo(document.body);
+ $(this._element).on(Event.CLICK_DISMISS, function (event) {
+ if (_this8._ignoreBackdropClick) {
+ _this8._ignoreBackdropClick = false;
+ return;
+ }
+
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (_this8._config.backdrop === 'static') {
+ _this8._element.focus();
+ } else {
+ _this8.hide();
+ }
+ });
+
+ if (doAnimate) {
+ Util.reflow(this._backdrop);
+ }
+
+ $(this._backdrop).addClass(ClassName.SHOW);
+
+ if (!callback) {
+ return;
+ }
+
+ if (!doAnimate) {
+ callback();
+ return;
+ }
+
+ $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+ } else if (!this._isShown && this._backdrop) {
+ $(this._backdrop).removeClass(ClassName.SHOW);
+
+ var callbackRemove = function callbackRemove() {
+ _this8._removeBackdrop();
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
+ $(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
+ } else {
+ callbackRemove();
+ }
+ } else if (callback) {
+ callback();
+ }
+ }; // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // todo (fat): these should probably be refactored out of modal.js
+ // ----------------------------------------------------------------------
+
+
+ _proto._adjustDialog = function _adjustDialog() {
+ var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!this._isBodyOverflowing && isModalOverflowing) {
+ this._element.style.paddingLeft = this._scrollbarWidth + "px";
+ }
+
+ if (this._isBodyOverflowing && !isModalOverflowing) {
+ this._element.style.paddingRight = this._scrollbarWidth + "px";
+ }
+ };
+
+ _proto._resetAdjustments = function _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ };
+
+ _proto._checkScrollbar = function _checkScrollbar() {
+ var rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ };
+
+ _proto._setScrollbar = function _setScrollbar() {
+ var _this9 = this;
+
+ if (this._isBodyOverflowing) {
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+ // Adjust fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var actualPadding = $(element)[0].style.paddingRight;
+ var calculatedPadding = $(element).css('padding-right');
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px");
+ }); // Adjust sticky content margin
+
+ $(Selector.STICKY_CONTENT).each(function (index, element) {
+ var actualMargin = $(element)[0].style.marginRight;
+ var calculatedMargin = $(element).css('margin-right');
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px");
+ }); // Adjust navbar-toggler margin
+
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var actualMargin = $(element)[0].style.marginRight;
+ var calculatedMargin = $(element).css('margin-right');
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px");
+ }); // Adjust body padding
+
+ var actualPadding = document.body.style.paddingRight;
+ var calculatedPadding = $('body').css('padding-right');
+ $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px");
+ }
+ };
+
+ _proto._resetScrollbar = function _resetScrollbar() {
+ // Restore fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var padding = $(element).data('padding-right');
+
+ if (typeof padding !== 'undefined') {
+ $(element).css('padding-right', padding).removeData('padding-right');
+ }
+ }); // Restore sticky content and navbar-toggler margin
+
+ $(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var margin = $(element).data('margin-right');
+
+ if (typeof margin !== 'undefined') {
+ $(element).css('margin-right', margin).removeData('margin-right');
+ }
+ }); // Restore body padding
+
+ var padding = $('body').data('padding-right');
+
+ if (typeof padding !== 'undefined') {
+ $('body').css('padding-right', padding).removeData('padding-right');
+ }
+ };
+
+ _proto._getScrollbarWidth = function _getScrollbarWidth() {
+ // thx d.walsh
+ var scrollDiv = document.createElement('div');
+ scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ }; // static
+
+
+ Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
+
+ if (!data) {
+ data = new Modal(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config](relatedTarget);
+ } else if (_config.show) {
+ data.show(relatedTarget);
+ }
+ });
+ };
+
+ createClass(Modal, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return Modal;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ var _this10 = this;
+
+ var target;
+ var selector = Util.getSelectorFromElement(this);
+
+ if (selector) {
+ target = $(selector)[0];
+ }
+
+ var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
+
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
+ }
+
+ var $target = $(target).one(Event.SHOW, function (showEvent) {
+ if (showEvent.isDefaultPrevented()) {
+ // only register focus restorer if modal will actually get shown
+ return;
+ }
+
+ $target.one(Event.HIDDEN, function () {
+ if ($(_this10).is(':visible')) {
+ _this10.focus();
+ }
+ });
+ });
+
+ Modal._jQueryInterface.call($(target), config, this);
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Modal._jQueryInterface;
+ $.fn[NAME].Constructor = Modal;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Modal._jQueryInterface;
+ };
+
+ return Modal;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): tooltip.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Tooltip = function () {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
+ }
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+
+ var NAME = 'tooltip';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.tooltip';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+ var CLASS_PREFIX = 'bs-tooltip';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var DefaultType = {
+ animation: 'boolean',
+ template: 'string',
+ title: '(string|element|function)',
+ trigger: 'string',
+ delay: '(number|object)',
+ html: 'boolean',
+ selector: '(string|boolean)',
+ placement: '(string|function)',
+ offset: '(number|string)',
+ container: '(string|element|boolean)',
+ fallbackPlacement: '(string|array)'
+ };
+ var AttachmentMap = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: 'right',
+ BOTTOM: 'bottom',
+ LEFT: 'left'
+ };
+ var Default = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: 0,
+ container: false,
+ fallbackPlacement: 'flip'
+ };
+ var HoverState = {
+ SHOW: 'show',
+ OUT: 'out'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ };
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TOOLTIP: '.tooltip',
+ TOOLTIP_INNER: '.tooltip-inner',
+ ARROW: '.arrow'
+ };
+ var Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Tooltip =
+ /*#__PURE__*/
+ function () {
+ function Tooltip(element, config) {
+ // 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 = $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(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 ($(this.getTipElement()).hasClass(ClassName.SHOW)) {
+ this._leave(null, this);
+
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ clearTimeout(this._timeout);
+ $.removeData(this.element, this.constructor.DATA_KEY);
+ $(this.element).off(this.constructor.EVENT_KEY);
+ $(this.element).closest('.modal').off('hide.bs.modal');
+
+ if (this.tip) {
+ $(this.tip).remove();
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ };
+
+ _proto.show = function show() {
+ var _this = this;
+
+ if ($(this.element).css('display') === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
+
+ var showEvent = $.Event(this.constructor.Event.SHOW);
+
+ if (this.isWithContent() && this._isEnabled) {
+ $(this.element).trigger(showEvent);
+ var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
+
+ if (showEvent.isDefaultPrevented() || !isInTheDom) {
+ return;
+ }
+
+ var tip = this.getTipElement();
+ var tipId = Util.getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+ this.setContent();
+
+ if (this.config.animation) {
+ $(tip).addClass(ClassName.FADE);
+ }
+
+ var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+ var attachment = this._getAttachment(placement);
+
+ this.addAttachmentClass(attachment);
+ var container = this.config.container === false ? document.body : $(this.config.container);
+ $(tip).data(this.constructor.DATA_KEY, this);
+
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $(tip).appendTo(container);
+ }
+
+ $(this.element).trigger(this.constructor.Event.INSERTED);
+ this._popper = new Popper(this.element, tip, {
+ placement: attachment,
+ modifiers: {
+ offset: {
+ offset: this.config.offset
+ },
+ flip: {
+ behavior: this.config.fallbackPlacement
+ },
+ arrow: {
+ element: Selector.ARROW
+ }
+ },
+ onCreate: function onCreate(data) {
+ if (data.originalPlacement !== data.placement) {
+ _this._handlePopperPlacementChange(data);
+ }
+ },
+ onUpdate: function onUpdate(data) {
+ _this._handlePopperPlacementChange(data);
+ }
+ });
+ $(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+ if ('ontouchstart' in document.documentElement) {
+ $('body').children().on('mouseover', null, $.noop);
+ }
+
+ var complete = function complete() {
+ if (_this.config.animation) {
+ _this._fixTransition();
+ }
+
+ var prevHoverState = _this._hoverState;
+ _this._hoverState = null;
+ $(_this.element).trigger(_this.constructor.Event.SHOWN);
+
+ if (prevHoverState === HoverState.OUT) {
+ _this._leave(null, _this);
+ }
+ };
+
+ if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
+ $(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
+ } else {
+ complete();
+ }
+ }
+ };
+
+ _proto.hide = function hide(callback) {
+ var _this2 = this;
+
+ var tip = this.getTipElement();
+ var hideEvent = $.Event(this.constructor.Event.HIDE);
+
+ var complete = function complete() {
+ if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ _this2._cleanTipClass();
+
+ _this2.element.removeAttribute('aria-describedby');
+
+ $(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
+
+ if (_this2._popper !== null) {
+ _this2._popper.destroy();
+ }
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ $(this.element).trigger(hideEvent);
+
+ if (hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ $(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+ if ('ontouchstart' in document.documentElement) {
+ $('body').children().off('mouseover', null, $.noop);
+ }
+
+ this._activeTrigger[Trigger.CLICK] = false;
+ this._activeTrigger[Trigger.FOCUS] = false;
+ this._activeTrigger[Trigger.HOVER] = false;
+
+ if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
+ $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ } 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) {
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $(this.config.template)[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var $tip = $(this.getTipElement());
+ this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ };
+
+ _proto.setElementContent = function setElementContent($element, content) {
+ var html = this.config.html;
+
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ // content is a DOM node or a jQuery
+ if (html) {
+ if (!$(content).parent().is($element)) {
+ $element.empty().append(content);
+ }
+ } else {
+ $element.text($(content).text());
+ }
+ } else {
+ $element[html ? 'html' : 'text'](content);
+ }
+ };
+
+ _proto.getTitle = function getTitle() {
+ var title = this.element.getAttribute('data-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
+
+ return title;
+ }; // private
+
+
+ _proto._getAttachment = function _getAttachment(placement) {
+ return AttachmentMap[placement.toUpperCase()];
+ };
+
+ _proto._setListeners = function _setListeners() {
+ var _this3 = this;
+
+ var triggers = this.config.trigger.split(' ');
+ triggers.forEach(function (trigger) {
+ if (trigger === 'click') {
+ $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) {
+ return _this3.toggle(event);
+ });
+ } else if (trigger !== Trigger.MANUAL) {
+ var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
+ var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
+ $(_this3.element).on(eventIn, _this3.config.selector, function (event) {
+ return _this3._enter(event);
+ }).on(eventOut, _this3.config.selector, function (event) {
+ return _this3._leave(event);
+ });
+ }
+
+ $(_this3.element).closest('.modal').on('hide.bs.modal', function () {
+ return _this3.hide();
+ });
+ });
+
+ if (this.config.selector) {
+ this.config = $.extend({}, 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 || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
+
+ if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
+ context._hoverState = HoverState.SHOW;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.SHOW;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ };
+
+ _proto._leave = function _leave(event, context) {
+ var dataKey = this.constructor.DATA_KEY;
+ context = context || $(event.currentTarget).data(dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.currentTarget, this._getDelegateConfig());
+ $(event.currentTarget).data(dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(function () {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ };
+
+ _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
+ for (var trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ };
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, this.constructor.Default, $(this.element).data(), config);
+
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
+ Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
+ return config;
+ };
+
+ _proto._getDelegateConfig = function _getDelegateConfig() {
+ var config = {};
+
+ if (this.config) {
+ for (var key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(this.getTipElement());
+ var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
+
+ _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
+ this._cleanTipClass();
+
+ this.addAttachmentClass(this._getAttachment(data.placement));
+ };
+
+ _proto._fixTransition = function _fixTransition() {
+ var tip = this.getTipElement();
+ var initConfigAnimation = this.config.animation;
+
+ if (tip.getAttribute('x-placement') !== null) {
+ return;
+ }
+
+ $(tip).removeClass(ClassName.FADE);
+ this.config.animation = false;
+ this.hide();
+ this.show();
+ this.config.animation = initConfigAnimation;
+ }; // static
+
+
+ Tooltip._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ createClass(Tooltip, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Tooltip;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+
+ $.fn[NAME] = Tooltip._jQueryInterface;
+ $.fn[NAME].Constructor = Tooltip;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
+
+ return Tooltip;
+}($, Popper);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): popover.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Popover = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'popover';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.popover';
+ var EVENT_KEY = "." + DATA_KEY;
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var CLASS_PREFIX = 'bs-popover';
+ var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
+ var Default = $.extend({}, Tooltip.Default, {
+ placement: 'right',
+ trigger: 'click',
+ content: '',
+ template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
+ });
+ var DefaultType = $.extend({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+ });
+ var ClassName = {
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ TITLE: '.popover-header',
+ CONTENT: '.popover-body'
+ };
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ INSERTED: "inserted" + EVENT_KEY,
+ CLICK: "click" + EVENT_KEY,
+ FOCUSIN: "focusin" + EVENT_KEY,
+ FOCUSOUT: "focusout" + EVENT_KEY,
+ MOUSEENTER: "mouseenter" + EVENT_KEY,
+ MOUSELEAVE: "mouseleave" + EVENT_KEY
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Popover =
+ /*#__PURE__*/
+ function (_Tooltip) {
+ inheritsLoose(Popover, _Tooltip);
+
+ function Popover() {
+ return _Tooltip.apply(this, arguments) || this;
+ }
+
+ var _proto = Popover.prototype;
+
+ // overrides
+ _proto.isWithContent = function isWithContent() {
+ return this.getTitle() || this._getContent();
+ };
+
+ _proto.addAttachmentClass = function addAttachmentClass(attachment) {
+ $(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
+ };
+
+ _proto.getTipElement = function getTipElement() {
+ this.tip = this.tip || $(this.config.template)[0];
+ return this.tip;
+ };
+
+ _proto.setContent = function setContent() {
+ var $tip = $(this.getTipElement()); // we use append for html objects to maintain js events
+
+ this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
+ this.setElementContent($tip.find(Selector.CONTENT), this._getContent());
+ $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
+ }; // private
+
+
+ _proto._getContent = function _getContent() {
+ return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content);
+ };
+
+ _proto._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(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 = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' ? config : null;
+
+ if (!data && /destroy|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ createClass(Popover, null, [{
+ key: "VERSION",
+ // getters
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }, {
+ key: "NAME",
+ get: function get() {
+ return NAME;
+ }
+ }, {
+ key: "DATA_KEY",
+ get: function get() {
+ return DATA_KEY;
+ }
+ }, {
+ key: "Event",
+ get: function get() {
+ return Event;
+ }
+ }, {
+ key: "EVENT_KEY",
+ get: function get() {
+ return EVENT_KEY;
+ }
+ }, {
+ key: "DefaultType",
+ get: function get() {
+ return DefaultType;
+ }
+ }]);
+ return Popover;
+ }(Tooltip);
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+
+ $.fn[NAME] = Popover._jQueryInterface;
+ $.fn[NAME].Constructor = Popover;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
+
+ return Popover;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): scrollspy.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var ScrollSpy = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'scrollspy';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.scrollspy';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var Default = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+ };
+ var DefaultType = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+ };
+ var Event = {
+ ACTIVATE: "activate" + EVENT_KEY,
+ SCROLL: "scroll" + EVENT_KEY,
+ LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_ITEM: 'dropdown-item',
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active'
+ };
+ var Selector = {
+ DATA_SPY: '[data-spy="scroll"]',
+ ACTIVE: '.active',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ NAV_LINKS: '.nav-link',
+ NAV_ITEMS: '.nav-item',
+ LIST_ITEMS: '.list-group-item',
+ DROPDOWN: '.dropdown',
+ DROPDOWN_ITEMS: '.dropdown-item',
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
+ };
+ var OffsetMethod = {
+ OFFSET: 'offset',
+ POSITION: 'position'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var ScrollSpy =
+ /*#__PURE__*/
+ function () {
+ function ScrollSpy(element, config) {
+ var _this = this;
+
+ this._element = element;
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
+ this._config = this._getConfig(config);
+ this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
+ this._offsets = [];
+ this._targets = [];
+ this._activeTarget = null;
+ this._scrollHeight = 0;
+ $(this._scrollElement).on(Event.SCROLL, function (event) {
+ return _this._process(event);
+ });
+ this.refresh();
+
+ this._process();
+ } // getters
+
+
+ var _proto = ScrollSpy.prototype;
+
+ // public
+ _proto.refresh = function refresh() {
+ var _this2 = this;
+
+ var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
+ var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ var targets = $.makeArray($(this._selector));
+ targets.map(function (element) {
+ var target;
+ var targetSelector = Util.getSelectorFromElement(element);
+
+ if (targetSelector) {
+ target = $(targetSelector)[0];
+ }
+
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
+
+ if (targetBCR.width || targetBCR.height) {
+ // todo (fat): remove sketch reliance on jQuery position/offset
+ return [$(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() {
+ $.removeData(this._element, DATA_KEY);
+ $(this._scrollElement).off(EVENT_KEY);
+ this._element = null;
+ this._scrollElement = null;
+ this._config = null;
+ this._selector = null;
+ this._offsets = null;
+ this._targets = null;
+ this._activeTarget = null;
+ this._scrollHeight = null;
+ }; // private
+
+
+ _proto._getConfig = function _getConfig(config) {
+ config = $.extend({}, Default, config);
+
+ if (typeof config.target !== 'string') {
+ var id = $(config.target).attr('id');
+
+ if (!id) {
+ id = Util.getUID(NAME);
+ $(config.target).attr('id', id);
+ }
+
+ config.target = "#" + id;
+ }
+
+ Util.typeCheckConfig(NAME, config, DefaultType);
+ return config;
+ };
+
+ _proto._getScrollTop = function _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ };
+
+ _proto._getScrollHeight = function _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ };
+
+ _proto._getOffsetHeight = function _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ };
+
+ _proto._process = function _process() {
+ var scrollTop = this._getScrollTop() + this._config.offset;
+
+ var scrollHeight = this._getScrollHeight();
+
+ var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
+
+ if (scrollTop >= maxScroll) {
+ var target = this._targets[this._targets.length - 1];
+
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
+
+ return;
+ }
+
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
+
+ this._clear();
+
+ return;
+ }
+
+ for (var i = this._offsets.length; i--;) {
+ var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
+ }
+ };
+
+ _proto._activate = function _activate(target) {
+ this._activeTarget = target;
+
+ this._clear();
+
+ var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
+
+
+ queries = queries.map(function (selector) {
+ return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
+ });
+ var $link = $(queries.join(','));
+
+ if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
+ $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ $link.addClass(ClassName.ACTIVE);
+ } else {
+ // Set triggered link as active
+ $link.addClass(ClassName.ACTIVE); // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE); // Handle special case when .nav-link is inside .nav-item
+
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ }
+
+ $(this._scrollElement).trigger(Event.ACTIVATE, {
+ relatedTarget: target
+ });
+ };
+
+ _proto._clear = function _clear() {
+ $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
+ }; // static
+
+
+ ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var data = $(this).data(DATA_KEY);
+
+ var _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ $(this).data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ createClass(ScrollSpy, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }, {
+ key: "Default",
+ get: function get() {
+ return Default;
+ }
+ }]);
+ return ScrollSpy;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(window).on(Event.LOAD_DATA_API, function () {
+ var scrollSpys = $.makeArray($(Selector.DATA_SPY));
+
+ for (var i = scrollSpys.length; i--;) {
+ var $spy = $(scrollSpys[i]);
+
+ ScrollSpy._jQueryInterface.call($spy, $spy.data());
+ }
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = ScrollSpy._jQueryInterface;
+ $.fn[NAME].Constructor = ScrollSpy;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return ScrollSpy._jQueryInterface;
+ };
+
+ return ScrollSpy;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-beta.2): tab.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+var Tab = function () {
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+ var NAME = 'tab';
+ var VERSION = '4.0.0-beta.2';
+ var DATA_KEY = 'bs.tab';
+ var EVENT_KEY = "." + DATA_KEY;
+ var DATA_API_KEY = '.data-api';
+ var JQUERY_NO_CONFLICT = $.fn[NAME];
+ var TRANSITION_DURATION = 150;
+ var Event = {
+ HIDE: "hide" + EVENT_KEY,
+ HIDDEN: "hidden" + EVENT_KEY,
+ SHOW: "show" + EVENT_KEY,
+ SHOWN: "shown" + EVENT_KEY,
+ CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
+ };
+ var ClassName = {
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active',
+ DISABLED: 'disabled',
+ FADE: 'fade',
+ SHOW: 'show'
+ };
+ var Selector = {
+ DROPDOWN: '.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ ACTIVE: '.active',
+ ACTIVE_UL: '> li > .active',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
+ DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+ };
+
+ var Tab =
+ /*#__PURE__*/
+ function () {
+ function Tab(element) {
+ this._element = element;
+ } // getters
+
+
+ var _proto = Tab.prototype;
+
+ // public
+ _proto.show = function show() {
+ var _this = this;
+
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $(this._element).hasClass(ClassName.ACTIVE) || $(this._element).hasClass(ClassName.DISABLED)) {
+ return;
+ }
+
+ var target;
+ var previous;
+ var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
+ var selector = Util.getSelectorFromElement(this._element);
+
+ if (listElement) {
+ var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
+ previous = $.makeArray($(listElement).find(itemSelector));
+ previous = previous[previous.length - 1];
+ }
+
+ var hideEvent = $.Event(Event.HIDE, {
+ relatedTarget: this._element
+ });
+ var showEvent = $.Event(Event.SHOW, {
+ relatedTarget: previous
+ });
+
+ if (previous) {
+ $(previous).trigger(hideEvent);
+ }
+
+ $(this._element).trigger(showEvent);
+
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
+ return;
+ }
+
+ if (selector) {
+ target = $(selector)[0];
+ }
+
+ this._activate(this._element, listElement);
+
+ var complete = function complete() {
+ var hiddenEvent = $.Event(Event.HIDDEN, {
+ relatedTarget: _this._element
+ });
+ var shownEvent = $.Event(Event.SHOWN, {
+ relatedTarget: previous
+ });
+ $(previous).trigger(hiddenEvent);
+ $(_this._element).trigger(shownEvent);
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
+ };
+
+ _proto.dispose = function dispose() {
+ $.removeData(this._element, DATA_KEY);
+ this._element = null;
+ }; // private
+
+
+ _proto._activate = function _activate(element, container, callback) {
+ var _this2 = this;
+
+ var activeElements;
+
+ if (container.nodeName === 'UL') {
+ activeElements = $(container).find(Selector.ACTIVE_UL);
+ } else {
+ activeElements = $(container).children(Selector.ACTIVE);
+ }
+
+ var active = activeElements[0];
+ var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
+
+ var complete = function complete() {
+ return _this2._transitionComplete(element, active, isTransitioning, callback);
+ };
+
+ if (active && isTransitioning) {
+ $(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
+ } else {
+ complete();
+ }
+
+ if (active) {
+ $(active).removeClass(ClassName.SHOW);
+ }
+ };
+
+ _proto._transitionComplete = function _transitionComplete(element, active, isTransitioning, callback) {
+ if (active) {
+ $(active).removeClass(ClassName.ACTIVE);
+ var dropdownChild = $(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
+
+ if (dropdownChild) {
+ $(dropdownChild).removeClass(ClassName.ACTIVE);
+ }
+
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
+ }
+
+ $(element).addClass(ClassName.ACTIVE);
+
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
+
+ if (isTransitioning) {
+ Util.reflow(element);
+ $(element).addClass(ClassName.SHOW);
+ } else {
+ $(element).removeClass(ClassName.FADE);
+ }
+
+ if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
+ var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
+
+ if (dropdownElement) {
+ $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
+ }
+
+ element.setAttribute('aria-expanded', true);
+ }
+
+ if (callback) {
+ callback();
+ }
+ }; // static
+
+
+ Tab._jQueryInterface = function _jQueryInterface(config) {
+ return this.each(function () {
+ var $this = $(this);
+ var data = $this.data(DATA_KEY);
+
+ if (!data) {
+ data = new Tab(this);
+ $this.data(DATA_KEY, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new Error("No method named \"" + config + "\"");
+ }
+
+ data[config]();
+ }
+ });
+ };
+
+ createClass(Tab, null, [{
+ key: "VERSION",
+ get: function get() {
+ return VERSION;
+ }
+ }]);
+ return Tab;
+ }();
+ /**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+ $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+
+ Tab._jQueryInterface.call($(this), 'show');
+ });
+ /**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+ $.fn[NAME] = Tab._jQueryInterface;
+ $.fn[NAME].Constructor = Tab;
+
+ $.fn[NAME].noConflict = function () {
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Tab._jQueryInterface;
+ };
+
+ return Tab;
+}($);
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.0.0-alpha.6): index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+(function () {
+ if (typeof $ === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
+ }
+
+ var version = $.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');
+ }
+})($);
+
+exports.Util = Util;
+exports.Alert = Alert;
+exports.Button = Button;
+exports.Carousel = Carousel;
+exports.Collapse = Collapse;
+exports.Dropdown = Dropdown;
+exports.Modal = Modal;
+exports.Popover = Popover;
+exports.Scrollspy = ScrollSpy;
+exports.Tab = Tab;
+exports.Tooltip = Tooltip;
+
+return exports;
+
+}({},$,Popper));
+//# sourceMappingURL=bootstrap.js.map
diff --git a/ishtar_common/static/popper.min.js b/ishtar_common/static/popper.min.js
new file mode 100644
index 000000000..4553f6578
--- /dev/null
+++ b/ishtar_common/static/popper.min.js
@@ -0,0 +1,5 @@
+/*
+ Copyright (C) Federico Zivolo 2017
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
+ */(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=window.getComputedStyle(e,null);return t?o[t]:o}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e||-1!==['HTML','BODY','#document'].indexOf(e.nodeName))return window.document.body;var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll)/.test(r+s+p)?e:n(o(e))}function r(e){var o=e&&e.offsetParent,i=o&&o.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TD','TABLE'].indexOf(o.nodeName)&&'static'===t(o,'position')?r(o):o:window.document.documentElement}function p(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||r(e.firstElementChild)===e)}function s(e){return null===e.parentNode?e:s(e.parentNode)}function d(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return window.document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,i=o?e:t,n=o?t:e,a=document.createRange();a.setStart(i,0),a.setEnd(n,0);var l=a.commonAncestorContainer;if(e!==l&&t!==l||i.contains(n))return p(l)?l:r(l);var f=s(e);return f.host?d(f.host,t):d(e,s(t).host)}function a(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',i=e.nodeName;if('BODY'===i||'HTML'===i){var n=window.document.documentElement,r=window.document.scrollingElement||n;return r[o]}return e[o]}function l(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],i=a(t,'top'),n=a(t,'left'),r=o?-1:1;return e.top+=i*r,e.bottom+=i*r,e.left+=n*r,e.right+=n*r,e}function f(e,t){var o='x'===t?'Left':'Top',i='Left'==o?'Right':'Bottom';return+e['border'+o+'Width'].split('px')[0]+ +e['border'+i+'Width'].split('px')[0]}function m(e,t,o,i){return X(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],ne()?o['offset'+e]+i['margin'+('Height'===e?'Top':'Left')]+i['margin'+('Height'===e?'Bottom':'Right')]:0)}function c(){var e=window.document.body,t=window.document.documentElement,o=ne()&&window.getComputedStyle(t);return{height:m('Height',e,t,o),width:m('Width',e,t,o)}}function h(e){return de({},e,{right:e.left+e.width,bottom:e.top+e.height})}function g(e){var o={};if(ne())try{o=e.getBoundingClientRect();var i=a(e,'top'),n=a(e,'left');o.top+=i,o.left+=n,o.bottom+=i,o.right+=n}catch(e){}else o=e.getBoundingClientRect();var r={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},p='HTML'===e.nodeName?c():{},s=p.width||e.clientWidth||r.right-r.left,d=p.height||e.clientHeight||r.bottom-r.top,l=e.offsetWidth-s,m=e.offsetHeight-d;if(l||m){var g=t(e);l-=f(g,'x'),m-=f(g,'y'),r.width-=l,r.height-=m}return h(r)}function u(e,o){var i=ne(),r='HTML'===o.nodeName,p=g(e),s=g(o),d=n(e),a=t(o),f=+a.borderTopWidth.split('px')[0],m=+a.borderLeftWidth.split('px')[0],c=h({top:p.top-s.top-f,left:p.left-s.left-m,width:p.width,height:p.height});if(c.marginTop=0,c.marginLeft=0,!i&&r){var u=+a.marginTop.split('px')[0],b=+a.marginLeft.split('px')[0];c.top-=f-u,c.bottom-=f-u,c.left-=m-b,c.right-=m-b,c.marginTop=u,c.marginLeft=b}return(i?o.contains(d):o===d&&'BODY'!==d.nodeName)&&(c=l(c,o)),c}function b(e){var t=window.document.documentElement,o=u(e,t),i=X(t.clientWidth,window.innerWidth||0),n=X(t.clientHeight,window.innerHeight||0),r=a(t),p=a(t,'left'),s={top:r-o.top+o.marginTop,left:p-o.left+o.marginLeft,width:i,height:n};return h(s)}function y(e){var i=e.nodeName;return'BODY'===i||'HTML'===i?!1:'fixed'===t(e,'position')||y(o(e))}function w(e,t,i,r){var p={top:0,left:0},s=d(e,t);if('viewport'===r)p=b(s);else{var a;'scrollParent'===r?(a=n(o(e)),'BODY'===a.nodeName&&(a=window.document.documentElement)):'window'===r?a=window.document.documentElement:a=r;var l=u(a,s);if('HTML'===a.nodeName&&!y(s)){var f=c(),m=f.height,h=f.width;p.top+=l.top-l.marginTop,p.bottom=m+l.top,p.left+=l.left-l.marginLeft,p.right=h+l.left}else p=l}return p.left+=i,p.top+=i,p.right-=i,p.bottom-=i,p}function E(e){var t=e.width,o=e.height;return t*o}function v(e,t,o,i,n){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=w(o,i,r,n),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return de({key:e},s[e],{area:E(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,i=e.height;return t>=o.clientWidth&&i>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function x(e,t,o){var i=d(t,o);return u(o,i)}function O(e){var t=window.getComputedStyle(e),o=parseFloat(t.marginTop)+parseFloat(t.marginBottom),i=parseFloat(t.marginLeft)+parseFloat(t.marginRight),n={width:e.offsetWidth+i,height:e.offsetHeight+o};return n}function L(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function S(e,t,o){o=o.split('-')[0];var i=O(e),n={width:i.width,height:i.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return n[p]=t[p]+t[d]/2-i[d]/2,n[s]=o===s?t[s]-i[a]:t[L(s)],n}function T(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function C(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var i=T(e,function(e){return e[t]===o});return e.indexOf(i)}function N(t,o,i){var n=void 0===i?t:t.slice(0,C(t,'name',i));return n.forEach(function(t){t.function&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var i=t.function||t.fn;t.enabled&&e(i)&&(o.offsets.popper=h(o.offsets.popper),o.offsets.reference=h(o.offsets.reference),o=i(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=x(this.state,this.popper,this.reference),e.placement=v(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.offsets.popper=S(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position='absolute',e=N(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,i=e.enabled;return i&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length-1;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof window.document.body.style[r])return r}return null}function P(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.left='',this.popper.style.position='',this.popper.style.top='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function D(e,t,o,i){var r='BODY'===e.nodeName,p=r?window:e;p.addEventListener(t,o,{passive:!0}),r||D(n(p.parentNode),t,o,i),i.push(p)}function H(e,t,o,i){o.updateBound=i,window.addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return D(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function A(){this.state.eventsEnabled||(this.state=H(this.reference,this.options,this.state,this.scheduleUpdate))}function M(e,t){return window.removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function I(){this.state.eventsEnabled&&(window.cancelAnimationFrame(this.scheduleUpdate),this.state=M(this.reference,this.state))}function R(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function U(e,t){Object.keys(t).forEach(function(o){var i='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&R(t[o])&&(i='px'),e.style[o]=t[o]+i})}function Y(e,t){Object.keys(t).forEach(function(o){var i=t[o];!1===i?e.removeAttribute(o):e.setAttribute(o,t[o])})}function F(e,t,o){var i=T(e,function(e){var o=e.name;return o===t}),n=!!i&&e.some(function(e){return e.name===o&&e.enabled&&e.order<i.order});if(!n){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return n}function j(e){return'end'===e?'start':'start'===e?'end':e}function K(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=le.indexOf(e),i=le.slice(o+1).concat(le.slice(0,o));return t?i.reverse():i}function q(e,t,o,i){var n=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+n[1],p=n[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=i;}var d=h(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?X(document.documentElement.clientHeight,window.innerHeight||0):X(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function G(e,t,o,i){var n=[0,0],r=-1!==['right','left'].indexOf(i),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(T(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,i){var n=(1===i?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return q(e,n,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,i){R(o)&&(n[t]+=o*('-'===e[i-1]?-1:1))})}),n}function z(e,t){var o,i=t.offset,n=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=n.split('-')[0];return o=R(+i)?[+i,0]:G(i,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var V=Math.min,_=Math.floor,X=Math.max,Q=['native code','[object MutationObserverConstructor]'],J=function(e){return Q.some(function(t){return-1<(e||'').toString().indexOf(t)})},Z='undefined'!=typeof window,$=['Edge','Trident','Firefox'],ee=0,te=0;te<$.length;te+=1)if(Z&&0<=navigator.userAgent.indexOf($[te])){ee=1;break}var i,oe=Z&&J(window.MutationObserver),ie=oe?function(e){var t=!1,o=0,i=document.createElement('span'),n=new MutationObserver(function(){e(),t=!1});return n.observe(i,{attributes:!0}),function(){t||(t=!0,i.setAttribute('x-index',o),++o)}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},ee))}},ne=function(){return void 0==i&&(i=-1!==navigator.appVersion.indexOf('MSIE 10')),i},re=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},pe=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,i){return o&&e(t.prototype,o),i&&e(t,i),t}}(),se=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},de=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var i in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},ae=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],le=ae.slice(3),fe={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},me=function(){function t(o,i){var n=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};re(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(n.update)},this.update=ie(this.update.bind(this)),this.options=de({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o.jquery?o[0]:o,this.popper=i.jquery?i[0]:i,this.options.modifiers={},Object.keys(de({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){n.options.modifiers[e]=de({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return de({name:e},n.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(n.reference,n.popper,n.options,t,n.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return pe(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return P.call(this)}},{key:'enableEventListeners',value:function(){return A.call(this)}},{key:'disableEventListeners',value:function(){return I.call(this)}}]),t}();return me.Utils=('undefined'==typeof window?global:window).PopperUtils,me.placements=ae,me.Defaults={placement:'bottom',eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],i=t.split('-')[1];if(i){var n=e.offsets,r=n.reference,p=n.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:se({},d,r[d]),end:se({},d,r[d]+r[a]-p[a])};e.offsets.popper=de({},p,l[i])}return e}},offset:{order:200,enabled:!0,fn:z,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||r(e.instance.popper);e.instance.reference===o&&(o=r(o));var i=w(e.instance.popper,e.instance.reference,t.padding,o);t.boundaries=i;var n=t.priority,p=e.offsets.popper,s={primary:function(e){var o=p[e];return p[e]<i[e]&&!t.escapeWithReference&&(o=X(p[e],i[e])),se({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=p[o];return p[e]>i[e]&&!t.escapeWithReference&&(n=V(p[o],i[e]-('right'===e?p.width:p.height))),se({},o,n)}};return n.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';p=de({},p,s[t](e))}),e.offsets.popper=p,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,i=t.reference,n=e.placement.split('-')[0],r=_,p=-1!==['top','bottom'].indexOf(n),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(i[d])&&(e.offsets.popper[d]=r(i[d])-o[a]),o[d]>r(i[s])&&(e.offsets.popper[d]=r(i[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){if(!F(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var n=e.placement.split('-')[0],r=e.offsets,p=r.popper,s=r.reference,d=-1!==['left','right'].indexOf(n),a=d?'height':'width',l=d?'Top':'Left',f=l.toLowerCase(),m=d?'left':'top',c=d?'bottom':'right',g=O(i)[a];s[c]-g<p[f]&&(e.offsets.popper[f]-=p[f]-(s[c]-g)),s[f]+g>p[c]&&(e.offsets.popper[f]+=s[f]+g-p[c]);var u=s[f]+s[a]/2-g/2,b=t(e.instance.popper,'margin'+l).replace('px',''),y=u-h(e.offsets.popper)[f]-b;return y=X(V(p[a]-g,y),0),e.arrowElement=i,e.offsets.arrow={},e.offsets.arrow[f]=Math.round(y),e.offsets.arrow[m]='',e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=w(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement),i=e.placement.split('-')[0],n=L(i),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case fe.FLIP:p=[i,n];break;case fe.CLOCKWISE:p=K(i);break;case fe.COUNTERCLOCKWISE:p=K(i,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(i!==s||p.length===d+1)return e;i=e.placement.split('-')[0],n=L(i);var a=e.offsets.popper,l=e.offsets.reference,f=_,m='left'===i&&f(a.right)>f(l.left)||'right'===i&&f(a.left)<f(l.right)||'top'===i&&f(a.bottom)>f(l.top)||'bottom'===i&&f(a.top)<f(l.bottom),c=f(a.left)<f(o.left),h=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===i&&c||'right'===i&&h||'top'===i&&g||'bottom'===i&&u,y=-1!==['top','bottom'].indexOf(i),w=!!t.flipVariations&&(y&&'start'===r&&c||y&&'end'===r&&h||!y&&'start'===r&&g||!y&&'end'===r&&u);(m||b||w)&&(e.flipped=!0,(m||b)&&(i=p[d+1]),w&&(r=j(r)),e.placement=i+(r?'-'+r:''),e.offsets.popper=de({},e.offsets.popper,S(e.instance.popper,e.offsets.reference,e.placement)),e=N(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],i=e.offsets,n=i.popper,r=i.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return n[p?'left':'top']=r[o]-(s?n[p?'width':'height']:0),e.placement=L(t),e.offsets.popper=h(n),e}},hide:{order:800,enabled:!0,fn:function(e){if(!F(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=T(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,i=t.y,n=e.offsets.popper,p=T(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==p&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===p?t.gpuAcceleration:p,l=r(e.instance.popper),f=g(l),m={position:n.position},c={left:_(n.left),top:_(n.top),bottom:_(n.bottom),right:_(n.right)},h='bottom'===o?'top':'bottom',u='right'===i?'left':'right',b=B('transform');if(d='bottom'==h?-f.height+c.bottom:c.top,s='right'==u?-f.width+c.right:c.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[h]=0,m[u]=0,m.willChange='transform';else{var y='bottom'==h?-1:1,w='right'==u?-1:1;m[h]=d*y,m[u]=s*w,m.willChange=h+', '+u}var E={"x-placement":e.placement};return e.attributes=de({},E,e.attributes),e.styles=de({},m,e.styles),e.arrowStyles=de({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return U(e.instance.popper,e.styles),Y(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&U(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,i,n){var r=x(n,t,e),p=v(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),U(t,{position:'absolute'}),o},gpuAcceleration:void 0}}},me});
+//# sourceMappingURL=popper.min.js.map
diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html
index c8248841f..62f47dab4 100644
--- a/ishtar_common/templates/base.html
+++ b/ishtar_common/templates/base.html
@@ -9,6 +9,8 @@
var url_path = "{{URL_PATH}}";
</script>
<script language="javascript" type="text/javascript" src="{{JQUERY_URL}}?ver={{VERSION}}"></script>
+ <script language="javascript" type="text/javascript" src="{{STATIC_URL}}popper.min.js?ver={{VERSION}}"></script>
+ <script language="javascript" type="text/javascript" src="{{STATIC_URL}}bootstrap/bootstrap.js?ver={{VERSION}}"></script>
<script language="javascript" type="text/javascript" src="{{JQUERY_UI_URL}}jquery-ui.js?ver={{VERSION}}"></script>
<script language="javascript" type="text/javascript" src="{{JQUERY_UI_URL}}ui/i18n/jquery.ui.datepicker-{{COUNTRY}}.js?ver={{VERSION}}"></script>
<script language="javascript" type="text/javascript" src="{{STATIC_URL}}js/chosen/chosen.jquery.min.js?ver={{VERSION}}"></script>
@@ -30,7 +32,7 @@
</script>
{% endcompress %}
{% compress css %}
- <link rel="stylesheet" href="{{JQUERY_UI_URL}}jquery-ui.css?ver={{VERSION}}">
+ <link rel="stylesheet" href="{{STATIC_URL}}bootstrap/bootstrap.css?ver={{VERSION}}">
<link rel="stylesheet" href="{{STATIC_URL}}js/chosen/chosen.min.css?ver={{VERSION}}">
<link rel="stylesheet" href="{{STATIC_URL}}font-awesome/css/font-awesome.min.css?ver={{VERSION}}">
<link rel="stylesheet" href="{{STATIC_URL}}js/prettyPhoto/css/prettyPhoto.css?ver={{VERSION}}">