mirror of https://github.com/twbs/bootstrap.git
dist
This commit is contained in:
parent
d18045210c
commit
72447ad497
File diff suppressed because one or more lines are too long
|
|
@ -30,7 +30,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
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-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
|
@ -180,7 +180,7 @@ img {
|
||||||
border-style: none;
|
border-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg:not(:root) {
|
svg {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -4,5 +4,5 @@
|
||||||
* Copyright 2011-2018 Twitter, Inc.
|
* Copyright 2011-2018 Twitter, Inc.
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,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","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -31,7 +31,7 @@
|
||||||
--breakpoint-md: 768px;
|
--breakpoint-md: 768px;
|
||||||
--breakpoint-lg: 992px;
|
--breakpoint-lg: 992px;
|
||||||
--breakpoint-xl: 1200px;
|
--breakpoint-xl: 1200px;
|
||||||
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,7 +60,7 @@ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
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-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
|
@ -210,7 +210,7 @@ img {
|
||||||
border-style: none;
|
border-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
svg:not(:root) {
|
svg {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
@ -2021,13 +2021,13 @@ textarea.form-control {
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
display: none;
|
display: none;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
padding: .5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
margin-top: .1rem;
|
margin-top: .1rem;
|
||||||
font-size: .875rem;
|
font-size: 0.875rem;
|
||||||
line-height: 1;
|
line-height: 1.5;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: rgba(40, 167, 69, 0.8);
|
background-color: rgba(40, 167, 69, 0.9);
|
||||||
border-radius: .2rem;
|
border-radius: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.was-validated .form-control:valid, .form-control.is-valid, .was-validated
|
.was-validated .form-control:valid, .form-control.is-valid, .was-validated
|
||||||
|
|
@ -2124,13 +2124,13 @@ textarea.form-control {
|
||||||
z-index: 5;
|
z-index: 5;
|
||||||
display: none;
|
display: none;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
padding: .5rem;
|
padding: 0.25rem 0.5rem;
|
||||||
margin-top: .1rem;
|
margin-top: .1rem;
|
||||||
font-size: .875rem;
|
font-size: 0.875rem;
|
||||||
line-height: 1;
|
line-height: 1.5;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: rgba(220, 53, 69, 0.8);
|
background-color: rgba(220, 53, 69, 0.9);
|
||||||
border-radius: .2rem;
|
border-radius: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
|
.was-validated .form-control:invalid, .form-control.is-invalid, .was-validated
|
||||||
|
|
@ -2327,10 +2327,6 @@ textarea.form-control {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active {
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
a.btn.disabled,
|
a.btn.disabled,
|
||||||
fieldset:disabled a.btn {
|
fieldset:disabled a.btn {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
|
@ -3347,6 +3343,10 @@ input[type="button"].btn-block {
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.input-group > .custom-file .custom-file-input:focus {
|
||||||
|
z-index: 4;
|
||||||
|
}
|
||||||
|
|
||||||
.input-group > .form-control:not(:last-child),
|
.input-group > .form-control:not(:last-child),
|
||||||
.input-group > .custom-select:not(:last-child) {
|
.input-group > .custom-select:not(:last-child) {
|
||||||
border-top-right-radius: 0;
|
border-top-right-radius: 0;
|
||||||
|
|
@ -5342,6 +5342,11 @@ button.close {
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-open .modal {
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
.modal {
|
.modal {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|
@ -5354,11 +5359,6 @@ button.close {
|
||||||
outline: 0;
|
outline: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-open .modal {
|
|
||||||
overflow-x: hidden;
|
|
||||||
overflow-y: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-dialog {
|
.modal-dialog {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
|
@ -5393,6 +5393,12 @@ button.close {
|
||||||
min-height: calc(100% - (0.5rem * 2));
|
min-height: calc(100% - (0.5rem * 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.modal-dialog-centered::before {
|
||||||
|
display: block;
|
||||||
|
height: calc(100vh - (0.5rem * 2));
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
.modal-content {
|
.modal-content {
|
||||||
position: relative;
|
position: relative;
|
||||||
display: -ms-flexbox;
|
display: -ms-flexbox;
|
||||||
|
|
@ -5491,6 +5497,9 @@ button.close {
|
||||||
.modal-dialog-centered {
|
.modal-dialog-centered {
|
||||||
min-height: calc(100% - (1.75rem * 2));
|
min-height: calc(100% - (1.75rem * 2));
|
||||||
}
|
}
|
||||||
|
.modal-dialog-centered::before {
|
||||||
|
height: calc(100vh - (1.75rem * 2));
|
||||||
|
}
|
||||||
.modal-sm {
|
.modal-sm {
|
||||||
max-width: 300px;
|
max-width: 300px;
|
||||||
}
|
}
|
||||||
|
|
@ -5507,7 +5516,7 @@ button.close {
|
||||||
z-index: 1070;
|
z-index: 1070;
|
||||||
display: block;
|
display: block;
|
||||||
margin: 0;
|
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-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
|
@ -5620,7 +5629,7 @@ button.close {
|
||||||
z-index: 1060;
|
z-index: 1060;
|
||||||
display: block;
|
display: block;
|
||||||
max-width: 276px;
|
max-width: 276px;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,178 +1,204 @@
|
||||||
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 (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
||||||
|
(global.Alert = factory(global.jQuery,global.Util));
|
||||||
|
}(this, (function ($,Util) { 'use strict';
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : 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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): alert.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Alert = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): alert.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'alert';
|
|
||||||
var VERSION = '4.1.2';
|
var Alert = function ($$$1) {
|
||||||
var DATA_KEY = 'bs.alert';
|
|
||||||
var EVENT_KEY = "." + DATA_KEY;
|
|
||||||
var DATA_API_KEY = '.data-api';
|
|
||||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
||||||
var Selector = {
|
|
||||||
DISMISS: '[data-dismiss="alert"]'
|
|
||||||
};
|
|
||||||
var Event = {
|
|
||||||
CLOSE: "close" + EVENT_KEY,
|
|
||||||
CLOSED: "closed" + EVENT_KEY,
|
|
||||||
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
|
||||||
};
|
|
||||||
var ClassName = {
|
|
||||||
ALERT: 'alert',
|
|
||||||
FADE: 'fade',
|
|
||||||
SHOW: 'show'
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
* Class Definition
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
var NAME = 'alert';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.alert';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var Selector = {
|
||||||
|
DISMISS: '[data-dismiss="alert"]'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
CLOSE: "close" + EVENT_KEY,
|
||||||
|
CLOSED: "closed" + EVENT_KEY,
|
||||||
|
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
||||||
|
};
|
||||||
|
var ClassName = {
|
||||||
|
ALERT: 'alert',
|
||||||
|
FADE: 'fade',
|
||||||
|
SHOW: 'show'
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var Alert =
|
||||||
|
/*#__PURE__*/
|
||||||
|
function () {
|
||||||
|
function Alert(element) {
|
||||||
|
this._element = element;
|
||||||
|
} // Getters
|
||||||
|
|
||||||
|
|
||||||
|
var _proto = Alert.prototype;
|
||||||
|
|
||||||
|
// Public
|
||||||
|
_proto.close = function close(element) {
|
||||||
|
var rootElement = this._element;
|
||||||
|
|
||||||
|
if (element) {
|
||||||
|
rootElement = this._getRootElement(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
var customEvent = this._triggerCloseEvent(rootElement);
|
||||||
|
|
||||||
|
if (customEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._removeElement(rootElement);
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.removeData(this._element, DATA_KEY);
|
||||||
|
this._element = null;
|
||||||
|
}; // Private
|
||||||
|
|
||||||
|
|
||||||
|
_proto._getRootElement = function _getRootElement(element) {
|
||||||
|
var selector = Util.getSelectorFromElement(element);
|
||||||
|
var parent = false;
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
parent = document.querySelector(selector);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!parent) {
|
||||||
|
parent = $$$1(element).closest("." + ClassName.ALERT)[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
|
||||||
|
var closeEvent = $$$1.Event(Event.CLOSE);
|
||||||
|
$$$1(element).trigger(closeEvent);
|
||||||
|
return closeEvent;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._removeElement = function _removeElement(element) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
$$$1(element).removeClass(ClassName.SHOW);
|
||||||
|
|
||||||
|
if (!$$$1(element).hasClass(ClassName.FADE)) {
|
||||||
|
this._destroyElement(element);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var transitionDuration = Util.getTransitionDurationFromElement(element);
|
||||||
|
$$$1(element).one(Util.TRANSITION_END, function (event) {
|
||||||
|
return _this._destroyElement(element, event);
|
||||||
|
}).emulateTransitionEnd(transitionDuration);
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._destroyElement = function _destroyElement(element) {
|
||||||
|
$$$1(element).detach().trigger(Event.CLOSED).remove();
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Alert._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $element = $$$1(this);
|
||||||
|
var data = $element.data(DATA_KEY);
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Alert(this);
|
||||||
|
$element.data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config === 'close') {
|
||||||
|
data[config](this);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Alert._handleDismiss = function _handleDismiss(alertInstance) {
|
||||||
|
return function (event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
alertInstance.close(this);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
_createClass(Alert, null, [{
|
||||||
|
key: "VERSION",
|
||||||
|
get: function get() {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Alert;
|
||||||
|
}();
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var Alert =
|
$$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
|
||||||
/*#__PURE__*/
|
/**
|
||||||
function () {
|
* ------------------------------------------------------------------------
|
||||||
function Alert(element) {
|
* jQuery
|
||||||
this._element = element;
|
* ------------------------------------------------------------------------
|
||||||
} // Getters
|
*/
|
||||||
|
|
||||||
|
$$$1.fn[NAME] = Alert._jQueryInterface;
|
||||||
|
$$$1.fn[NAME].Constructor = Alert;
|
||||||
|
|
||||||
var _proto = Alert.prototype;
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
// Public
|
return Alert._jQueryInterface;
|
||||||
_proto.close = function close(element) {
|
|
||||||
var rootElement = this._element;
|
|
||||||
|
|
||||||
if (element) {
|
|
||||||
rootElement = this._getRootElement(element);
|
|
||||||
}
|
|
||||||
|
|
||||||
var customEvent = this._triggerCloseEvent(rootElement);
|
|
||||||
|
|
||||||
if (customEvent.isDefaultPrevented()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._removeElement(rootElement);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_proto.dispose = function dispose() {
|
|
||||||
$.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 = document.querySelector(selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 (!$(element).hasClass(ClassName.FADE)) {
|
|
||||||
this._destroyElement(element);
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var transitionDuration = Util.getTransitionDurationFromElement(element);
|
|
||||||
$(element).one(Util.TRANSITION_END, function (event) {
|
|
||||||
return _this._destroyElement(element, event);
|
|
||||||
}).emulateTransitionEnd(transitionDuration);
|
|
||||||
};
|
|
||||||
|
|
||||||
_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;
|
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;
|
return Alert;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=alert.js.map
|
})));
|
||||||
|
//# sourceMappingURL=alert.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,167 +1,192 @@
|
||||||
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 (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
|
||||||
|
(global.Button = factory(global.jQuery));
|
||||||
|
}(this, (function ($) { 'use strict';
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
|
||||||
|
function _defineProperties(target, props) {
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
var descriptor = props[i];
|
||||||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||||||
|
descriptor.configurable = true;
|
||||||
|
if ("value" in descriptor) descriptor.writable = true;
|
||||||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _createClass(Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): button.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Button = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): button.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'button';
|
|
||||||
var VERSION = '4.1.2';
|
var Button = function ($$$1) {
|
||||||
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
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
var NAME = 'button';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.button';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var ClassName = {
|
||||||
|
ACTIVE: 'active',
|
||||||
|
BUTTON: 'btn',
|
||||||
|
FOCUS: 'focus'
|
||||||
|
};
|
||||||
|
var Selector = {
|
||||||
|
DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
|
||||||
|
DATA_TOGGLE: '[data-toggle="buttons"]',
|
||||||
|
INPUT: 'input',
|
||||||
|
ACTIVE: '.active',
|
||||||
|
BUTTON: '.btn'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
|
||||||
|
FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var Button =
|
||||||
|
/*#__PURE__*/
|
||||||
|
function () {
|
||||||
|
function Button(element) {
|
||||||
|
this._element = element;
|
||||||
|
} // Getters
|
||||||
|
|
||||||
|
|
||||||
|
var _proto = Button.prototype;
|
||||||
|
|
||||||
|
// Public
|
||||||
|
_proto.toggle = function toggle() {
|
||||||
|
var triggerChangeEvent = true;
|
||||||
|
var addAriaPressed = true;
|
||||||
|
var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
|
||||||
|
|
||||||
|
if (rootElement) {
|
||||||
|
var input = this._element.querySelector(Selector.INPUT);
|
||||||
|
|
||||||
|
if (input) {
|
||||||
|
if (input.type === 'radio') {
|
||||||
|
if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
|
||||||
|
triggerChangeEvent = false;
|
||||||
|
} else {
|
||||||
|
var activeElement = rootElement.querySelector(Selector.ACTIVE);
|
||||||
|
|
||||||
|
if (activeElement) {
|
||||||
|
$$$1(activeElement).removeClass(ClassName.ACTIVE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (triggerChangeEvent) {
|
||||||
|
if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
input.checked = !this._element.classList.contains(ClassName.ACTIVE);
|
||||||
|
$$$1(input).trigger('change');
|
||||||
|
}
|
||||||
|
|
||||||
|
input.focus();
|
||||||
|
addAriaPressed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (addAriaPressed) {
|
||||||
|
this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (triggerChangeEvent) {
|
||||||
|
$$$1(this._element).toggleClass(ClassName.ACTIVE);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.removeData(this._element, DATA_KEY);
|
||||||
|
this._element = null;
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Button._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var data = $$$1(this).data(DATA_KEY);
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Button(this);
|
||||||
|
$$$1(this).data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config === 'toggle') {
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_createClass(Button, null, [{
|
||||||
|
key: "VERSION",
|
||||||
|
get: function get() {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Button;
|
||||||
|
}();
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var Button =
|
$$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
|
||||||
/*#__PURE__*/
|
event.preventDefault();
|
||||||
function () {
|
var button = event.target;
|
||||||
function Button(element) {
|
|
||||||
this._element = element;
|
|
||||||
} // Getters
|
|
||||||
|
|
||||||
|
if (!$$$1(button).hasClass(ClassName.BUTTON)) {
|
||||||
var _proto = Button.prototype;
|
button = $$$1(button).closest(Selector.BUTTON);
|
||||||
|
|
||||||
// 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.querySelector(Selector.INPUT);
|
|
||||||
|
|
||||||
if (input) {
|
|
||||||
if (input.type === 'radio') {
|
|
||||||
if (input.checked && this._element.classList.contains(ClassName.ACTIVE)) {
|
|
||||||
triggerChangeEvent = false;
|
|
||||||
} else {
|
|
||||||
var activeElement = rootElement.querySelector(Selector.ACTIVE);
|
|
||||||
|
|
||||||
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.classList.contains(ClassName.ACTIVE);
|
|
||||||
$(input).trigger('change');
|
|
||||||
}
|
|
||||||
|
|
||||||
input.focus();
|
|
||||||
addAriaPressed = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (addAriaPressed) {
|
Button._jQueryInterface.call($$$1(button), 'toggle');
|
||||||
this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName.ACTIVE));
|
}).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function (event) {
|
||||||
}
|
var button = $$$1(event.target).closest(Selector.BUTTON)[0];
|
||||||
|
$$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type));
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
if (triggerChangeEvent) {
|
$$$1.fn[NAME] = Button._jQueryInterface;
|
||||||
$(this._element).toggleClass(ClassName.ACTIVE);
|
$$$1.fn[NAME].Constructor = Button;
|
||||||
}
|
|
||||||
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
|
return Button._jQueryInterface;
|
||||||
};
|
};
|
||||||
|
|
||||||
_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;
|
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;
|
return Button;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=button.js.map
|
})));
|
||||||
|
//# sourceMappingURL=button.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -1,375 +1,431 @@
|
||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
||||||
|
(global.Collapse = factory(global.jQuery,global.Util));
|
||||||
|
}(this, (function ($,Util) { 'use strict';
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : 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 _defineProperties(target, props) {
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
var descriptor = props[i];
|
||||||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||||||
|
descriptor.configurable = true;
|
||||||
|
if ("value" in descriptor) descriptor.writable = true;
|
||||||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
function _createClass(Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): collapse.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Collapse = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): collapse.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'collapse';
|
|
||||||
var VERSION = '4.1.2';
|
var Collapse = function ($$$1) {
|
||||||
var DATA_KEY = 'bs.collapse';
|
|
||||||
var EVENT_KEY = "." + DATA_KEY;
|
|
||||||
var DATA_API_KEY = '.data-api';
|
|
||||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
||||||
var Default = {
|
|
||||||
toggle: true,
|
|
||||||
parent: ''
|
|
||||||
};
|
|
||||||
var DefaultType = {
|
|
||||||
toggle: 'boolean',
|
|
||||||
parent: '(string|element)'
|
|
||||||
};
|
|
||||||
var Event = {
|
|
||||||
SHOW: "show" + EVENT_KEY,
|
|
||||||
SHOWN: "shown" + EVENT_KEY,
|
|
||||||
HIDE: "hide" + EVENT_KEY,
|
|
||||||
HIDDEN: "hidden" + EVENT_KEY,
|
|
||||||
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
|
||||||
};
|
|
||||||
var ClassName = {
|
|
||||||
SHOW: 'show',
|
|
||||||
COLLAPSE: 'collapse',
|
|
||||||
COLLAPSING: 'collapsing',
|
|
||||||
COLLAPSED: 'collapsed'
|
|
||||||
};
|
|
||||||
var Dimension = {
|
|
||||||
WIDTH: 'width',
|
|
||||||
HEIGHT: 'height'
|
|
||||||
};
|
|
||||||
var Selector = {
|
|
||||||
ACTIVES: '.show, .collapsing',
|
|
||||||
DATA_TOGGLE: '[data-toggle="collapse"]'
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
* Class Definition
|
* Constants
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
var NAME = 'collapse';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.collapse';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var Default = {
|
||||||
|
toggle: true,
|
||||||
|
parent: ''
|
||||||
|
};
|
||||||
|
var DefaultType = {
|
||||||
|
toggle: 'boolean',
|
||||||
|
parent: '(string|element)'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
SHOW: "show" + EVENT_KEY,
|
||||||
|
SHOWN: "shown" + EVENT_KEY,
|
||||||
|
HIDE: "hide" + EVENT_KEY,
|
||||||
|
HIDDEN: "hidden" + EVENT_KEY,
|
||||||
|
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
|
||||||
|
};
|
||||||
|
var ClassName = {
|
||||||
|
SHOW: 'show',
|
||||||
|
COLLAPSE: 'collapse',
|
||||||
|
COLLAPSING: 'collapsing',
|
||||||
|
COLLAPSED: 'collapsed'
|
||||||
|
};
|
||||||
|
var Dimension = {
|
||||||
|
WIDTH: 'width',
|
||||||
|
HEIGHT: 'height'
|
||||||
|
};
|
||||||
|
var Selector = {
|
||||||
|
ACTIVES: '.show, .collapsing',
|
||||||
|
DATA_TOGGLE: '[data-toggle="collapse"]'
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var Collapse =
|
|
||||||
/*#__PURE__*/
|
|
||||||
function () {
|
|
||||||
function Collapse(element, config) {
|
|
||||||
this._isTransitioning = false;
|
|
||||||
this._element = element;
|
|
||||||
this._config = this._getConfig(config);
|
|
||||||
this._triggerArray = $.makeArray(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
|
||||||
var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
|
||||||
|
|
||||||
for (var i = 0, len = toggleList.length; i < len; i++) {
|
|
||||||
var elem = toggleList[i];
|
|
||||||
var selector = Util.getSelectorFromElement(elem);
|
|
||||||
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
|
||||||
return foundElem === element;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (selector !== null && filterElement.length > 0) {
|
|
||||||
this._selector = selector;
|
|
||||||
|
|
||||||
this._triggerArray.push(elem);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this._parent = this._config.parent ? this._getParent() : null;
|
|
||||||
|
|
||||||
if (!this._config.parent) {
|
|
||||||
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this._config.toggle) {
|
|
||||||
this.toggle();
|
|
||||||
}
|
|
||||||
} // Getters
|
|
||||||
|
|
||||||
|
|
||||||
var _proto = Collapse.prototype;
|
|
||||||
|
|
||||||
// Public
|
|
||||||
_proto.toggle = function toggle() {
|
|
||||||
if ($(this._element).hasClass(ClassName.SHOW)) {
|
|
||||||
this.hide();
|
|
||||||
} else {
|
|
||||||
this.show();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_proto.show = function show() {
|
var Collapse =
|
||||||
var _this = this;
|
/*#__PURE__*/
|
||||||
|
function () {
|
||||||
|
function Collapse(element, config) {
|
||||||
|
this._isTransitioning = false;
|
||||||
|
this._element = element;
|
||||||
|
this._config = this._getConfig(config);
|
||||||
|
this._triggerArray = $$$1.makeArray(document.querySelectorAll("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
|
||||||
|
var toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
||||||
|
|
||||||
if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
|
for (var i = 0, len = toggleList.length; i < len; i++) {
|
||||||
return;
|
var elem = toggleList[i];
|
||||||
}
|
var selector = Util.getSelectorFromElement(elem);
|
||||||
|
var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {
|
||||||
|
return foundElem === element;
|
||||||
|
});
|
||||||
|
|
||||||
var actives;
|
if (selector !== null && filterElement.length > 0) {
|
||||||
var activesData;
|
this._selector = selector;
|
||||||
|
|
||||||
if (this._parent) {
|
this._triggerArray.push(elem);
|
||||||
actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
|
}
|
||||||
return elem.getAttribute('data-parent') === _this._config.parent;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (actives.length === 0) {
|
|
||||||
actives = null;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if (actives) {
|
this._parent = this._config.parent ? this._getParent() : null;
|
||||||
activesData = $(actives).not(this._selector).data(DATA_KEY);
|
|
||||||
|
|
||||||
if (activesData && activesData._isTransitioning) {
|
if (!this._config.parent) {
|
||||||
return;
|
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var startEvent = $.Event(Event.SHOW);
|
if (this._config.toggle) {
|
||||||
$(this._element).trigger(startEvent);
|
this.toggle();
|
||||||
|
|
||||||
if (startEvent.isDefaultPrevented()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (actives) {
|
|
||||||
Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide');
|
|
||||||
|
|
||||||
if (!activesData) {
|
|
||||||
$(actives).data(DATA_KEY, null);
|
|
||||||
}
|
}
|
||||||
}
|
} // Getters
|
||||||
|
|
||||||
var dimension = this._getDimension();
|
|
||||||
|
|
||||||
$(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
var _proto = Collapse.prototype;
|
||||||
this._element.style[dimension] = 0;
|
|
||||||
|
|
||||||
if (this._triggerArray.length) {
|
// Public
|
||||||
$(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
_proto.toggle = function toggle() {
|
||||||
}
|
if ($$$1(this._element).hasClass(ClassName.SHOW)) {
|
||||||
|
this.hide();
|
||||||
this.setTransitioning(true);
|
} else {
|
||||||
|
this.show();
|
||||||
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);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
_proto.show = function show() {
|
||||||
var scrollSize = "scroll" + capitalizedDimension;
|
var _this = this;
|
||||||
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
||||||
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
||||||
this._element.style[dimension] = this._element[scrollSize] + "px";
|
|
||||||
};
|
|
||||||
|
|
||||||
_proto.hide = function hide() {
|
if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
|
||||||
var _this2 = this;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
|
var actives;
|
||||||
return;
|
var activesData;
|
||||||
}
|
|
||||||
|
|
||||||
var startEvent = $.Event(Event.HIDE);
|
if (this._parent) {
|
||||||
$(this._element).trigger(startEvent);
|
actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES)).filter(function (elem) {
|
||||||
|
return elem.getAttribute('data-parent') === _this._config.parent;
|
||||||
|
});
|
||||||
|
|
||||||
if (startEvent.isDefaultPrevented()) {
|
if (actives.length === 0) {
|
||||||
return;
|
actives = null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var dimension = this._getDimension();
|
if (actives) {
|
||||||
|
activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
|
||||||
|
|
||||||
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
if (activesData && activesData._isTransitioning) {
|
||||||
Util.reflow(this._element);
|
return;
|
||||||
$(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
}
|
||||||
var triggerArrayLength = this._triggerArray.length;
|
}
|
||||||
|
|
||||||
if (triggerArrayLength > 0) {
|
var startEvent = $$$1.Event(Event.SHOW);
|
||||||
for (var i = 0; i < triggerArrayLength; i++) {
|
$$$1(this._element).trigger(startEvent);
|
||||||
var trigger = this._triggerArray[i];
|
|
||||||
var selector = Util.getSelectorFromElement(trigger);
|
|
||||||
|
|
||||||
if (selector !== null) {
|
if (startEvent.isDefaultPrevented()) {
|
||||||
var $elem = $([].slice.call(document.querySelectorAll(selector)));
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!$elem.hasClass(ClassName.SHOW)) {
|
if (actives) {
|
||||||
$(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
|
||||||
|
|
||||||
|
if (!activesData) {
|
||||||
|
$$$1(actives).data(DATA_KEY, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var dimension = this._getDimension();
|
||||||
|
|
||||||
|
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||||
|
this._element.style[dimension] = 0;
|
||||||
|
|
||||||
|
if (this._triggerArray.length) {
|
||||||
|
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setTransitioning(true);
|
||||||
|
|
||||||
|
var complete = function complete() {
|
||||||
|
$$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
|
||||||
|
_this._element.style[dimension] = '';
|
||||||
|
|
||||||
|
_this.setTransitioning(false);
|
||||||
|
|
||||||
|
$$$1(_this._element).trigger(Event.SHOWN);
|
||||||
|
};
|
||||||
|
|
||||||
|
var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
|
||||||
|
var scrollSize = "scroll" + capitalizedDimension;
|
||||||
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
||||||
|
$$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
||||||
|
this._element.style[dimension] = this._element[scrollSize] + "px";
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.hide = function hide() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var startEvent = $$$1.Event(Event.HIDE);
|
||||||
|
$$$1(this._element).trigger(startEvent);
|
||||||
|
|
||||||
|
if (startEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dimension = this._getDimension();
|
||||||
|
|
||||||
|
this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
|
||||||
|
Util.reflow(this._element);
|
||||||
|
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||||
|
var triggerArrayLength = this._triggerArray.length;
|
||||||
|
|
||||||
|
if (triggerArrayLength > 0) {
|
||||||
|
for (var i = 0; i < triggerArrayLength; i++) {
|
||||||
|
var trigger = this._triggerArray[i];
|
||||||
|
var selector = Util.getSelectorFromElement(trigger);
|
||||||
|
|
||||||
|
if (selector !== null) {
|
||||||
|
var $elem = $$$1([].slice.call(document.querySelectorAll(selector)));
|
||||||
|
|
||||||
|
if (!$elem.hasClass(ClassName.SHOW)) {
|
||||||
|
$$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
this.setTransitioning(true);
|
this.setTransitioning(true);
|
||||||
|
|
||||||
var complete = function complete() {
|
var complete = function complete() {
|
||||||
_this2.setTransitioning(false);
|
_this2.setTransitioning(false);
|
||||||
|
|
||||||
$(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
|
$$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN);
|
||||||
|
};
|
||||||
|
|
||||||
|
this._element.style[dimension] = '';
|
||||||
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
||||||
|
$$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
||||||
};
|
};
|
||||||
|
|
||||||
this._element.style[dimension] = '';
|
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
||||||
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
this._isTransitioning = isTransitioning;
|
||||||
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
};
|
||||||
};
|
|
||||||
|
|
||||||
_proto.setTransitioning = function setTransitioning(isTransitioning) {
|
_proto.dispose = function dispose() {
|
||||||
this._isTransitioning = isTransitioning;
|
$$$1.removeData(this._element, DATA_KEY);
|
||||||
};
|
this._config = null;
|
||||||
|
this._parent = null;
|
||||||
_proto.dispose = function dispose() {
|
this._element = null;
|
||||||
$.removeData(this._element, DATA_KEY);
|
this._triggerArray = null;
|
||||||
this._config = null;
|
this._isTransitioning = null;
|
||||||
this._parent = null;
|
}; // Private
|
||||||
this._element = null;
|
|
||||||
this._triggerArray = null;
|
|
||||||
this._isTransitioning = null;
|
|
||||||
}; // Private
|
|
||||||
|
|
||||||
|
|
||||||
_proto._getConfig = function _getConfig(config) {
|
_proto._getConfig = function _getConfig(config) {
|
||||||
config = _objectSpread({}, Default, config);
|
config = _objectSpread({}, Default, config);
|
||||||
config.toggle = Boolean(config.toggle); // Coerce string values
|
config.toggle = Boolean(config.toggle); // Coerce string values
|
||||||
|
|
||||||
Util.typeCheckConfig(NAME, config, DefaultType);
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
||||||
return config;
|
return config;
|
||||||
};
|
};
|
||||||
|
|
||||||
_proto._getDimension = function _getDimension() {
|
_proto._getDimension = function _getDimension() {
|
||||||
var hasWidth = $(this._element).hasClass(Dimension.WIDTH);
|
var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
|
||||||
return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
|
return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
|
||||||
};
|
};
|
||||||
|
|
||||||
_proto._getParent = function _getParent() {
|
_proto._getParent = function _getParent() {
|
||||||
var _this3 = this;
|
var _this3 = this;
|
||||||
|
|
||||||
var parent = null;
|
var parent = null;
|
||||||
|
|
||||||
if (Util.isElement(this._config.parent)) {
|
if (Util.isElement(this._config.parent)) {
|
||||||
parent = this._config.parent; // It's a jQuery object
|
parent = this._config.parent; // It's a jQuery object
|
||||||
|
|
||||||
if (typeof this._config.parent.jquery !== 'undefined') {
|
if (typeof this._config.parent.jquery !== 'undefined') {
|
||||||
parent = this._config.parent[0];
|
parent = this._config.parent[0];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
parent = document.querySelector(this._config.parent);
|
parent = document.querySelector(this._config.parent);
|
||||||
}
|
|
||||||
|
|
||||||
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
|
|
||||||
var children = [].slice.call(parent.querySelectorAll(selector));
|
|
||||||
$(children).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 ? document.querySelector(selector) : null;
|
|
||||||
};
|
|
||||||
|
|
||||||
Collapse._jQueryInterface = function _jQueryInterface(config) {
|
|
||||||
return this.each(function () {
|
|
||||||
var $this = $(this);
|
|
||||||
var data = $this.data(DATA_KEY);
|
|
||||||
|
|
||||||
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
|
|
||||||
|
|
||||||
if (!data && _config.toggle && /show|hide/.test(config)) {
|
|
||||||
_config.toggle = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data) {
|
var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
|
||||||
data = new Collapse(this, _config);
|
var children = [].slice.call(parent.querySelectorAll(selector));
|
||||||
$this.data(DATA_KEY, data);
|
$$$1(children).each(function (i, element) {
|
||||||
}
|
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
|
||||||
|
});
|
||||||
|
return parent;
|
||||||
|
};
|
||||||
|
|
||||||
if (typeof config === 'string') {
|
_proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
|
||||||
if (typeof data[config] === 'undefined') {
|
if (element) {
|
||||||
throw new TypeError("No method named \"" + config + "\"");
|
var isOpen = $$$1(element).hasClass(ClassName.SHOW);
|
||||||
|
|
||||||
|
if (triggerArray.length) {
|
||||||
|
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||||
|
var selector = Util.getSelectorFromElement(element);
|
||||||
|
return selector ? document.querySelector(selector) : null;
|
||||||
|
};
|
||||||
|
|
||||||
|
Collapse._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $$$1(this);
|
||||||
|
var data = $this.data(DATA_KEY);
|
||||||
|
|
||||||
|
var _config = _objectSpread({}, Default, $this.data(), typeof config === 'object' && config ? config : {});
|
||||||
|
|
||||||
|
if (!data && _config.toggle && /show|hide/.test(config)) {
|
||||||
|
_config.toggle = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
data[config]();
|
if (!data) {
|
||||||
|
data = new Collapse(this, _config);
|
||||||
|
$this.data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
if (typeof data[config] === 'undefined') {
|
||||||
|
throw new TypeError("No method named \"" + config + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_createClass(Collapse, null, [{
|
||||||
|
key: "VERSION",
|
||||||
|
get: function get() {
|
||||||
|
return VERSION;
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
key: "Default",
|
||||||
|
get: function get() {
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Collapse;
|
||||||
|
}();
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
|
||||||
|
// preventDefault only for <a> elements (which change the URL) not inside the collapsible element
|
||||||
|
if (event.currentTarget.tagName === 'A') {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
var $trigger = $$$1(this);
|
||||||
|
var selector = Util.getSelectorFromElement(this);
|
||||||
|
var selectors = [].slice.call(document.querySelectorAll(selector));
|
||||||
|
$$$1(selectors).each(function () {
|
||||||
|
var $target = $$$1(this);
|
||||||
|
var data = $target.data(DATA_KEY);
|
||||||
|
var config = data ? 'toggle' : $trigger.data();
|
||||||
|
|
||||||
|
Collapse._jQueryInterface.call($target, config);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$$$1.fn[NAME] = Collapse._jQueryInterface;
|
||||||
|
$$$1.fn[NAME].Constructor = Collapse;
|
||||||
|
|
||||||
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
|
return Collapse._jQueryInterface;
|
||||||
};
|
};
|
||||||
|
|
||||||
_createClass(Collapse, null, [{
|
|
||||||
key: "VERSION",
|
|
||||||
get: function get() {
|
|
||||||
return VERSION;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "Default",
|
|
||||||
get: function get() {
|
|
||||||
return Default;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return Collapse;
|
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);
|
|
||||||
var selectors = [].slice.call(document.querySelectorAll(selector));
|
|
||||||
$(selectors).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;
|
return Collapse;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=collapse.js.map
|
})));
|
||||||
|
//# sourceMappingURL=collapse.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,495 +1,552 @@
|
||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('popper.js'), require('./util.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', 'popper.js', './util.js'], factory) :
|
||||||
|
(global.Dropdown = factory(global.jQuery,global.Popper,global.Util));
|
||||||
|
}(this, (function ($,Popper,Util) { 'use strict';
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
|
||||||
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : 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 _defineProperties(target, props) {
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
var descriptor = props[i];
|
||||||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||||||
|
descriptor.configurable = true;
|
||||||
|
if ("value" in descriptor) descriptor.writable = true;
|
||||||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
function _createClass(Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): dropdown.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Dropdown = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): dropdown.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'dropdown';
|
|
||||||
var VERSION = '4.1.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 Dropdown = function ($$$1) {
|
||||||
|
|
||||||
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
|
|
||||||
|
|
||||||
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
|
|
||||||
|
|
||||||
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
|
|
||||||
|
|
||||||
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
|
||||||
|
|
||||||
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
|
|
||||||
var Event = {
|
|
||||||
HIDE: "hide" + EVENT_KEY,
|
|
||||||
HIDDEN: "hidden" + EVENT_KEY,
|
|
||||||
SHOW: "show" + EVENT_KEY,
|
|
||||||
SHOWN: "shown" + EVENT_KEY,
|
|
||||||
CLICK: "click" + EVENT_KEY,
|
|
||||||
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
|
|
||||||
KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
|
|
||||||
KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
|
|
||||||
};
|
|
||||||
var ClassName = {
|
|
||||||
DISABLED: 'disabled',
|
|
||||||
SHOW: 'show',
|
|
||||||
DROPUP: 'dropup',
|
|
||||||
DROPRIGHT: 'dropright',
|
|
||||||
DROPLEFT: 'dropleft',
|
|
||||||
MENURIGHT: 'dropdown-menu-right',
|
|
||||||
MENULEFT: 'dropdown-menu-left',
|
|
||||||
POSITION_STATIC: 'position-static'
|
|
||||||
};
|
|
||||||
var Selector = {
|
|
||||||
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
|
||||||
FORM_CHILD: '.dropdown form',
|
|
||||||
MENU: '.dropdown-menu',
|
|
||||||
NAVBAR_NAV: '.navbar-nav',
|
|
||||||
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
|
|
||||||
};
|
|
||||||
var AttachmentMap = {
|
|
||||||
TOP: 'top-start',
|
|
||||||
TOPEND: 'top-end',
|
|
||||||
BOTTOM: 'bottom-start',
|
|
||||||
BOTTOMEND: 'bottom-end',
|
|
||||||
RIGHT: 'right-start',
|
|
||||||
RIGHTEND: 'right-end',
|
|
||||||
LEFT: 'left-start',
|
|
||||||
LEFTEND: 'left-end'
|
|
||||||
};
|
|
||||||
var Default = {
|
|
||||||
offset: 0,
|
|
||||||
flip: true,
|
|
||||||
boundary: 'scrollParent',
|
|
||||||
reference: 'toggle',
|
|
||||||
display: 'dynamic'
|
|
||||||
};
|
|
||||||
var DefaultType = {
|
|
||||||
offset: '(number|string|function)',
|
|
||||||
flip: 'boolean',
|
|
||||||
boundary: '(string|element)',
|
|
||||||
reference: '(string|element)',
|
|
||||||
display: 'string'
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
* Class Definition
|
* Constants
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
var NAME = 'dropdown';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.dropdown';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
|
||||||
|
|
||||||
};
|
var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
|
||||||
|
|
||||||
var Dropdown =
|
var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
|
||||||
/*#__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();
|
var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
|
||||||
} // Getters
|
|
||||||
|
|
||||||
|
var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
|
||||||
|
|
||||||
var _proto = Dropdown.prototype;
|
var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
|
||||||
|
|
||||||
// Public
|
var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
|
||||||
_proto.toggle = function toggle() {
|
var Event = {
|
||||||
if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {
|
HIDE: "hide" + EVENT_KEY,
|
||||||
return;
|
HIDDEN: "hidden" + EVENT_KEY,
|
||||||
}
|
SHOW: "show" + EVENT_KEY,
|
||||||
|
SHOWN: "shown" + EVENT_KEY,
|
||||||
|
CLICK: "click" + EVENT_KEY,
|
||||||
|
CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
|
||||||
|
KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
|
||||||
|
KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
|
||||||
|
};
|
||||||
|
var ClassName = {
|
||||||
|
DISABLED: 'disabled',
|
||||||
|
SHOW: 'show',
|
||||||
|
DROPUP: 'dropup',
|
||||||
|
DROPRIGHT: 'dropright',
|
||||||
|
DROPLEFT: 'dropleft',
|
||||||
|
MENURIGHT: 'dropdown-menu-right',
|
||||||
|
MENULEFT: 'dropdown-menu-left',
|
||||||
|
POSITION_STATIC: 'position-static'
|
||||||
|
};
|
||||||
|
var Selector = {
|
||||||
|
DATA_TOGGLE: '[data-toggle="dropdown"]',
|
||||||
|
FORM_CHILD: '.dropdown form',
|
||||||
|
MENU: '.dropdown-menu',
|
||||||
|
NAVBAR_NAV: '.navbar-nav',
|
||||||
|
VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
|
||||||
|
};
|
||||||
|
var AttachmentMap = {
|
||||||
|
TOP: 'top-start',
|
||||||
|
TOPEND: 'top-end',
|
||||||
|
BOTTOM: 'bottom-start',
|
||||||
|
BOTTOMEND: 'bottom-end',
|
||||||
|
RIGHT: 'right-start',
|
||||||
|
RIGHTEND: 'right-end',
|
||||||
|
LEFT: 'left-start',
|
||||||
|
LEFTEND: 'left-end'
|
||||||
|
};
|
||||||
|
var Default = {
|
||||||
|
offset: 0,
|
||||||
|
flip: true,
|
||||||
|
boundary: 'scrollParent',
|
||||||
|
reference: 'toggle',
|
||||||
|
display: 'dynamic'
|
||||||
|
};
|
||||||
|
var DefaultType = {
|
||||||
|
offset: '(number|string|function)',
|
||||||
|
flip: 'boolean',
|
||||||
|
boundary: '(string|element)',
|
||||||
|
reference: '(string|element)',
|
||||||
|
display: 'string'
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
var 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;
|
|
||||||
} // Disable totally Popper.js for Dropdown in Navbar
|
|
||||||
|
|
||||||
|
|
||||||
if (!this._inNavbar) {
|
|
||||||
/**
|
|
||||||
* Check for Popper dependency
|
|
||||||
* Popper - https://popper.js.org
|
|
||||||
*/
|
|
||||||
if (typeof Popper === 'undefined') {
|
|
||||||
throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
|
||||||
}
|
|
||||||
|
|
||||||
var referenceElement = this._element;
|
|
||||||
|
|
||||||
if (this._config.reference === 'parent') {
|
|
||||||
referenceElement = parent;
|
|
||||||
} else if (Util.isElement(this._config.reference)) {
|
|
||||||
referenceElement = this._config.reference; // Check if it's jQuery element
|
|
||||||
|
|
||||||
if (typeof this._config.reference.jquery !== 'undefined') {
|
|
||||||
referenceElement = this._config.reference[0];
|
|
||||||
}
|
|
||||||
} // If boundary is not `scrollParent`, then set position to `static`
|
|
||||||
// to allow the menu to "escape" the scroll parent's boundaries
|
|
||||||
// https://github.com/twbs/bootstrap/issues/24251
|
|
||||||
|
|
||||||
|
|
||||||
if (this._config.boundary !== 'scrollParent') {
|
|
||||||
$(parent).addClass(ClassName.POSITION_STATIC);
|
|
||||||
}
|
|
||||||
|
|
||||||
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
|
||||||
} // If this is a touch-enabled device we add extra
|
|
||||||
// empty mouseover listeners to the body's immediate children;
|
|
||||||
// only needed because of broken event delegation on iOS
|
|
||||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
|
||||||
|
|
||||||
|
|
||||||
if ('ontouchstart' in document.documentElement && $(parent).closest(Selector.NAVBAR_NAV).length === 0) {
|
|
||||||
$(document.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() {
|
var Dropdown =
|
||||||
$.removeData(this._element, DATA_KEY);
|
/*#__PURE__*/
|
||||||
$(this._element).off(EVENT_KEY);
|
function () {
|
||||||
this._element = null;
|
function Dropdown(element, config) {
|
||||||
this._menu = null;
|
this._element = element;
|
||||||
|
|
||||||
if (this._popper !== null) {
|
|
||||||
this._popper.destroy();
|
|
||||||
|
|
||||||
this._popper = null;
|
this._popper = null;
|
||||||
}
|
this._config = this._getConfig(config);
|
||||||
};
|
this._menu = this._getMenuElement();
|
||||||
|
this._inNavbar = this._detectNavbar();
|
||||||
|
|
||||||
_proto.update = function update() {
|
this._addEventListeners();
|
||||||
this._inNavbar = this._detectNavbar();
|
} // Getters
|
||||||
|
|
||||||
if (this._popper !== null) {
|
|
||||||
this._popper.scheduleUpdate();
|
|
||||||
}
|
|
||||||
}; // Private
|
|
||||||
|
|
||||||
|
|
||||||
_proto._addEventListeners = function _addEventListeners() {
|
var _proto = Dropdown.prototype;
|
||||||
var _this = this;
|
|
||||||
|
// Public
|
||||||
|
_proto.toggle = function toggle() {
|
||||||
|
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var parent = Dropdown._getParentFromElement(this._element);
|
||||||
|
|
||||||
|
var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
|
||||||
|
|
||||||
|
Dropdown._clearMenus();
|
||||||
|
|
||||||
|
if (isActive) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var relatedTarget = {
|
||||||
|
relatedTarget: this._element
|
||||||
|
};
|
||||||
|
var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
|
||||||
|
$$$1(parent).trigger(showEvent);
|
||||||
|
|
||||||
|
if (showEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
} // Disable totally Popper.js for Dropdown in Navbar
|
||||||
|
|
||||||
|
|
||||||
|
if (!this._inNavbar) {
|
||||||
|
/**
|
||||||
|
* Check for Popper dependency
|
||||||
|
* Popper - https://popper.js.org
|
||||||
|
*/
|
||||||
|
if (typeof Popper === 'undefined') {
|
||||||
|
throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
||||||
|
}
|
||||||
|
|
||||||
|
var referenceElement = this._element;
|
||||||
|
|
||||||
|
if (this._config.reference === 'parent') {
|
||||||
|
referenceElement = parent;
|
||||||
|
} else if (Util.isElement(this._config.reference)) {
|
||||||
|
referenceElement = this._config.reference; // Check if it's jQuery element
|
||||||
|
|
||||||
|
if (typeof this._config.reference.jquery !== 'undefined') {
|
||||||
|
referenceElement = this._config.reference[0];
|
||||||
|
}
|
||||||
|
} // If boundary is not `scrollParent`, then set position to `static`
|
||||||
|
// to allow the menu to "escape" the scroll parent's boundaries
|
||||||
|
// https://github.com/twbs/bootstrap/issues/24251
|
||||||
|
|
||||||
|
|
||||||
|
if (this._config.boundary !== 'scrollParent') {
|
||||||
|
$$$1(parent).addClass(ClassName.POSITION_STATIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
|
||||||
|
} // If this is a touch-enabled device we add extra
|
||||||
|
// empty mouseover listeners to the body's immediate children;
|
||||||
|
// only needed because of broken event delegation on iOS
|
||||||
|
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||||
|
|
||||||
|
|
||||||
|
if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
|
||||||
|
$$$1(document.body).children().on('mouseover', null, $$$1.noop);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._element.focus();
|
||||||
|
|
||||||
|
this._element.setAttribute('aria-expanded', true);
|
||||||
|
|
||||||
|
$$$1(this._menu).toggleClass(ClassName.SHOW);
|
||||||
|
$$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget));
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.removeData(this._element, DATA_KEY);
|
||||||
|
$$$1(this._element).off(EVENT_KEY);
|
||||||
|
this._element = null;
|
||||||
|
this._menu = null;
|
||||||
|
|
||||||
|
if (this._popper !== null) {
|
||||||
|
this._popper.destroy();
|
||||||
|
|
||||||
|
this._popper = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.update = function update() {
|
||||||
|
this._inNavbar = this._detectNavbar();
|
||||||
|
|
||||||
|
if (this._popper !== null) {
|
||||||
|
this._popper.scheduleUpdate();
|
||||||
|
}
|
||||||
|
}; // Private
|
||||||
|
|
||||||
|
|
||||||
|
_proto._addEventListeners = function _addEventListeners() {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
$$$1(this._element).on(Event.CLICK, function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
|
_this.toggle();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._getConfig = function _getConfig(config) {
|
||||||
|
config = _objectSpread({}, this.constructor.Default, $$$1(this._element).data(), config);
|
||||||
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
||||||
|
return config;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._getMenuElement = function _getMenuElement() {
|
||||||
|
if (!this._menu) {
|
||||||
|
var parent = Dropdown._getParentFromElement(this._element);
|
||||||
|
|
||||||
|
if (parent) {
|
||||||
|
this._menu = parent.querySelector(Selector.MENU);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._menu;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._getPlacement = function _getPlacement() {
|
||||||
|
var $parentDropdown = $$$1(this._element.parentNode);
|
||||||
|
var placement = AttachmentMap.BOTTOM; // Handle dropup
|
||||||
|
|
||||||
|
if ($parentDropdown.hasClass(ClassName.DROPUP)) {
|
||||||
|
placement = AttachmentMap.TOP;
|
||||||
|
|
||||||
|
if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
|
||||||
|
placement = AttachmentMap.TOPEND;
|
||||||
|
}
|
||||||
|
} else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
|
||||||
|
placement = AttachmentMap.RIGHT;
|
||||||
|
} else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
|
||||||
|
placement = AttachmentMap.LEFT;
|
||||||
|
} else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
|
||||||
|
placement = AttachmentMap.BOTTOMEND;
|
||||||
|
}
|
||||||
|
|
||||||
|
return placement;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._detectNavbar = function _detectNavbar() {
|
||||||
|
return $$$1(this._element).closest('.navbar').length > 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._getPopperConfig = function _getPopperConfig() {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
var offsetConf = {};
|
||||||
|
|
||||||
|
if (typeof this._config.offset === 'function') {
|
||||||
|
offsetConf.fn = function (data) {
|
||||||
|
data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
|
||||||
|
return data;
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
offsetConf.offset = this._config.offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
var popperConfig = {
|
||||||
|
placement: this._getPlacement(),
|
||||||
|
modifiers: {
|
||||||
|
offset: offsetConf,
|
||||||
|
flip: {
|
||||||
|
enabled: this._config.flip
|
||||||
|
},
|
||||||
|
preventOverflow: {
|
||||||
|
boundariesElement: this._config.boundary
|
||||||
|
}
|
||||||
|
} // Disable Popper.js if we have a static display
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
if (this._config.display === 'static') {
|
||||||
|
popperConfig.modifiers.applyStyle = {
|
||||||
|
enabled: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return popperConfig;
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var data = $$$1(this).data(DATA_KEY);
|
||||||
|
|
||||||
|
var _config = typeof config === 'object' ? config : null;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Dropdown(this, _config);
|
||||||
|
$$$1(this).data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
if (typeof data[config] === 'undefined') {
|
||||||
|
throw new TypeError("No method named \"" + config + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
Dropdown._clearMenus = function _clearMenus(event) {
|
||||||
|
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
||||||
|
|
||||||
|
for (var i = 0, len = toggles.length; i < len; i++) {
|
||||||
|
var parent = Dropdown._getParentFromElement(toggles[i]);
|
||||||
|
|
||||||
|
var context = $$$1(toggles[i]).data(DATA_KEY);
|
||||||
|
var relatedTarget = {
|
||||||
|
relatedTarget: toggles[i]
|
||||||
|
};
|
||||||
|
|
||||||
|
if (event && event.type === 'click') {
|
||||||
|
relatedTarget.clickEvent = event;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!context) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dropdownMenu = context._menu;
|
||||||
|
|
||||||
|
if (!$$$1(parent).hasClass(ClassName.SHOW)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
|
||||||
|
$$$1(parent).trigger(hideEvent);
|
||||||
|
|
||||||
|
if (hideEvent.isDefaultPrevented()) {
|
||||||
|
continue;
|
||||||
|
} // If this is a touch-enabled device we remove the extra
|
||||||
|
// empty mouseover listeners we added for iOS support
|
||||||
|
|
||||||
|
|
||||||
|
if ('ontouchstart' in document.documentElement) {
|
||||||
|
$$$1(document.body).children().off('mouseover', null, $$$1.noop);
|
||||||
|
}
|
||||||
|
|
||||||
|
toggles[i].setAttribute('aria-expanded', 'false');
|
||||||
|
$$$1(dropdownMenu).removeClass(ClassName.SHOW);
|
||||||
|
$$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
Dropdown._getParentFromElement = function _getParentFromElement(element) {
|
||||||
|
var parent;
|
||||||
|
var selector = Util.getSelectorFromElement(element);
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
parent = document.querySelector(selector);
|
||||||
|
}
|
||||||
|
|
||||||
|
return parent || element.parentNode;
|
||||||
|
}; // eslint-disable-next-line complexity
|
||||||
|
|
||||||
|
|
||||||
|
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||||
|
// If not input/textarea:
|
||||||
|
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
|
||||||
|
// If input/textarea:
|
||||||
|
// - If space key => not a dropdown command
|
||||||
|
// - If key is other than escape
|
||||||
|
// - If key is not up or down => not a dropdown command
|
||||||
|
// - If trigger inside the menu => not a dropdown command
|
||||||
|
if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$(this._element).on(Event.CLICK, function (event) {
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
_this.toggle();
|
if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
|
||||||
});
|
return;
|
||||||
};
|
|
||||||
|
|
||||||
_proto._getConfig = function _getConfig(config) {
|
|
||||||
config = _objectSpread({}, 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);
|
|
||||||
|
|
||||||
if (parent) {
|
|
||||||
this._menu = parent.querySelector(Selector.MENU);
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return this._menu;
|
var parent = Dropdown._getParentFromElement(this);
|
||||||
};
|
|
||||||
|
|
||||||
_proto._getPlacement = function _getPlacement() {
|
var isActive = $$$1(parent).hasClass(ClassName.SHOW);
|
||||||
var $parentDropdown = $(this._element.parentNode);
|
|
||||||
var placement = AttachmentMap.BOTTOM; // Handle dropup
|
|
||||||
|
|
||||||
if ($parentDropdown.hasClass(ClassName.DROPUP)) {
|
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
||||||
placement = AttachmentMap.TOP;
|
if (event.which === ESCAPE_KEYCODE) {
|
||||||
|
var toggle = parent.querySelector(Selector.DATA_TOGGLE);
|
||||||
if ($(this._menu).hasClass(ClassName.MENURIGHT)) {
|
$$$1(toggle).trigger('focus');
|
||||||
placement = AttachmentMap.TOPEND;
|
|
||||||
}
|
|
||||||
} else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
|
|
||||||
placement = AttachmentMap.RIGHT;
|
|
||||||
} else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
|
|
||||||
placement = AttachmentMap.LEFT;
|
|
||||||
} 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 = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets) || {});
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
offsetConf.offset = this._config.offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
var popperConfig = {
|
|
||||||
placement: this._getPlacement(),
|
|
||||||
modifiers: {
|
|
||||||
offset: offsetConf,
|
|
||||||
flip: {
|
|
||||||
enabled: this._config.flip
|
|
||||||
},
|
|
||||||
preventOverflow: {
|
|
||||||
boundariesElement: this._config.boundary
|
|
||||||
}
|
}
|
||||||
} // Disable Popper.js if we have a static display
|
|
||||||
|
|
||||||
|
$$$1(this).trigger('click');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
|
||||||
|
|
||||||
|
if (items.length === 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var index = items.indexOf(event.target);
|
||||||
|
|
||||||
|
if (event.which === ARROW_UP_KEYCODE && index > 0) {
|
||||||
|
// Up
|
||||||
|
index--;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
|
||||||
|
// Down
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (index < 0) {
|
||||||
|
index = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
items[index].focus();
|
||||||
};
|
};
|
||||||
|
|
||||||
if (this._config.display === 'static') {
|
_createClass(Dropdown, null, [{
|
||||||
popperConfig.modifiers.applyStyle = {
|
key: "VERSION",
|
||||||
enabled: false
|
get: function get() {
|
||||||
};
|
return VERSION;
|
||||||
}
|
|
||||||
|
|
||||||
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') {
|
key: "Default",
|
||||||
if (typeof data[config] === 'undefined') {
|
get: function get() {
|
||||||
throw new TypeError("No method named \"" + config + "\"");
|
return Default;
|
||||||
}
|
|
||||||
|
|
||||||
data[config]();
|
|
||||||
}
|
}
|
||||||
});
|
}, {
|
||||||
};
|
key: "DefaultType",
|
||||||
|
get: function get() {
|
||||||
Dropdown._clearMenus = function _clearMenus(event) {
|
return DefaultType;
|
||||||
if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE));
|
|
||||||
|
|
||||||
for (var i = 0, len = toggles.length; i < len; i++) {
|
|
||||||
var parent = Dropdown._getParentFromElement(toggles[i]);
|
|
||||||
|
|
||||||
var context = $(toggles[i]).data(DATA_KEY);
|
|
||||||
var relatedTarget = {
|
|
||||||
relatedTarget: toggles[i]
|
|
||||||
};
|
|
||||||
|
|
||||||
if (event && event.type === 'click') {
|
|
||||||
relatedTarget.clickEvent = event;
|
|
||||||
}
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
if (!context) {
|
return Dropdown;
|
||||||
continue;
|
}();
|
||||||
}
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
var dropdownMenu = context._menu;
|
* Data Api implementation
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
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) {
|
$$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
|
||||||
$(document.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 = document.querySelector(selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
return parent || element.parentNode;
|
|
||||||
}; // eslint-disable-next-line complexity
|
|
||||||
|
|
||||||
|
|
||||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
|
||||||
// If not input/textarea:
|
|
||||||
// - And not a key in REGEXP_KEYDOWN => not a dropdown command
|
|
||||||
// If input/textarea:
|
|
||||||
// - If space key => not a dropdown command
|
|
||||||
// - If key is other than escape
|
|
||||||
// - If key is not up or down => not a dropdown command
|
|
||||||
// - If trigger inside the menu => not a dropdown command
|
|
||||||
if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
|
|
||||||
if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {
|
Dropdown._jQueryInterface.call($$$1(this), 'toggle');
|
||||||
return;
|
}).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function (e) {
|
||||||
}
|
e.stopPropagation();
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
var parent = Dropdown._getParentFromElement(this);
|
$$$1.fn[NAME] = Dropdown._jQueryInterface;
|
||||||
|
$$$1.fn[NAME].Constructor = Dropdown;
|
||||||
|
|
||||||
var isActive = $(parent).hasClass(ClassName.SHOW);
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
|
return Dropdown._jQueryInterface;
|
||||||
if (event.which === ESCAPE_KEYCODE) {
|
|
||||||
var toggle = parent.querySelector(Selector.DATA_TOGGLE);
|
|
||||||
$(toggle).trigger('focus');
|
|
||||||
}
|
|
||||||
|
|
||||||
$(this).trigger('click');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS));
|
|
||||||
|
|
||||||
if (items.length === 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var index = items.indexOf(event.target);
|
|
||||||
|
|
||||||
if (event.which === ARROW_UP_KEYCODE && index > 0) {
|
|
||||||
// Up
|
|
||||||
index--;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
|
|
||||||
// Down
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (index < 0) {
|
|
||||||
index = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
items[index].focus();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
_createClass(Dropdown, null, [{
|
|
||||||
key: "VERSION",
|
|
||||||
get: function get() {
|
|
||||||
return VERSION;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "Default",
|
|
||||||
get: function get() {
|
|
||||||
return Default;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "DefaultType",
|
|
||||||
get: function get() {
|
|
||||||
return DefaultType;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return Dropdown;
|
return Dropdown;
|
||||||
}();
|
}($, Popper);
|
||||||
/**
|
|
||||||
* ------------------------------------------------------------------------
|
|
||||||
* 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;
|
return Dropdown;
|
||||||
}($, Popper);
|
|
||||||
//# sourceMappingURL=dropdown.js.map
|
})));
|
||||||
|
//# sourceMappingURL=dropdown.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -1,206 +1,266 @@
|
||||||
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 (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', './tooltip.js'], factory) :
|
||||||
|
(global.Popover = factory(global.jQuery,global.Tooltip));
|
||||||
|
}(this, (function ($,Tooltip) { 'use strict';
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Tooltip = Tooltip && Tooltip.hasOwnProperty('default') ? Tooltip['default'] : Tooltip;
|
||||||
|
|
||||||
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
|
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 _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
function _createClass(Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
}
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _inheritsLoose(subClass, superClass) {
|
||||||
|
subClass.prototype = Object.create(superClass.prototype);
|
||||||
|
subClass.prototype.constructor = subClass;
|
||||||
|
subClass.__proto__ = superClass;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): popover.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Popover = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): popover.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'popover';
|
|
||||||
var VERSION = '4.1.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 = _objectSpread({}, Tooltip.Default, {
|
var Popover = function ($$$1) {
|
||||||
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 = _objectSpread({}, Tooltip.DefaultType, {
|
|
||||||
content: '(string|element|function)'
|
|
||||||
});
|
|
||||||
|
|
||||||
var ClassName = {
|
|
||||||
FADE: 'fade',
|
|
||||||
SHOW: 'show'
|
|
||||||
};
|
|
||||||
var Selector = {
|
|
||||||
TITLE: '.popover-header',
|
|
||||||
CONTENT: '.popover-body'
|
|
||||||
};
|
|
||||||
var Event = {
|
|
||||||
HIDE: "hide" + EVENT_KEY,
|
|
||||||
HIDDEN: "hidden" + EVENT_KEY,
|
|
||||||
SHOW: "show" + EVENT_KEY,
|
|
||||||
SHOWN: "shown" + EVENT_KEY,
|
|
||||||
INSERTED: "inserted" + EVENT_KEY,
|
|
||||||
CLICK: "click" + EVENT_KEY,
|
|
||||||
FOCUSIN: "focusin" + EVENT_KEY,
|
|
||||||
FOCUSOUT: "focusout" + EVENT_KEY,
|
|
||||||
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
|
||||||
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
* Class Definition
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
var NAME = 'popover';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.popover';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var CLASS_PREFIX = 'bs-popover';
|
||||||
|
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
|
||||||
|
|
||||||
|
var Default = _objectSpread({}, Tooltip.Default, {
|
||||||
|
placement: 'right',
|
||||||
|
trigger: 'click',
|
||||||
|
content: '',
|
||||||
|
template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
|
||||||
|
});
|
||||||
|
|
||||||
|
var DefaultType = _objectSpread({}, Tooltip.DefaultType, {
|
||||||
|
content: '(string|element|function)'
|
||||||
|
});
|
||||||
|
|
||||||
|
var ClassName = {
|
||||||
|
FADE: 'fade',
|
||||||
|
SHOW: 'show'
|
||||||
|
};
|
||||||
|
var Selector = {
|
||||||
|
TITLE: '.popover-header',
|
||||||
|
CONTENT: '.popover-body'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
HIDE: "hide" + EVENT_KEY,
|
||||||
|
HIDDEN: "hidden" + EVENT_KEY,
|
||||||
|
SHOW: "show" + EVENT_KEY,
|
||||||
|
SHOWN: "shown" + EVENT_KEY,
|
||||||
|
INSERTED: "inserted" + EVENT_KEY,
|
||||||
|
CLICK: "click" + EVENT_KEY,
|
||||||
|
FOCUSIN: "focusin" + EVENT_KEY,
|
||||||
|
FOCUSOUT: "focusout" + EVENT_KEY,
|
||||||
|
MOUSEENTER: "mouseenter" + EVENT_KEY,
|
||||||
|
MOUSELEAVE: "mouseleave" + EVENT_KEY
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
var Popover =
|
||||||
|
/*#__PURE__*/
|
||||||
|
function (_Tooltip) {
|
||||||
|
_inheritsLoose(Popover, _Tooltip);
|
||||||
|
|
||||||
|
function Popover() {
|
||||||
|
return _Tooltip.apply(this, arguments) || this;
|
||||||
|
}
|
||||||
|
|
||||||
|
var _proto = Popover.prototype;
|
||||||
|
|
||||||
|
// Overrides
|
||||||
|
_proto.isWithContent = function isWithContent() {
|
||||||
|
return this.getTitle() || this._getContent();
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.addAttachmentClass = function addAttachmentClass(attachment) {
|
||||||
|
$$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.getTipElement = function getTipElement() {
|
||||||
|
this.tip = this.tip || $$$1(this.config.template)[0];
|
||||||
|
return this.tip;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.setContent = function setContent() {
|
||||||
|
var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
|
||||||
|
|
||||||
|
this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
|
||||||
|
|
||||||
|
var content = this._getContent();
|
||||||
|
|
||||||
|
if (typeof content === 'function') {
|
||||||
|
content = content.call(this.element);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setElementContent($tip.find(Selector.CONTENT), content);
|
||||||
|
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
|
||||||
|
}; // Private
|
||||||
|
|
||||||
|
|
||||||
|
_proto._getContent = function _getContent() {
|
||||||
|
return this.element.getAttribute('data-content') || this.config.content;
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._cleanTipClass = function _cleanTipClass() {
|
||||||
|
var $tip = $$$1(this.getTipElement());
|
||||||
|
var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
|
||||||
|
|
||||||
|
if (tabClass !== null && tabClass.length > 0) {
|
||||||
|
$tip.removeClass(tabClass.join(''));
|
||||||
|
}
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Popover._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var data = $$$1(this).data(DATA_KEY);
|
||||||
|
|
||||||
|
var _config = typeof config === 'object' ? config : null;
|
||||||
|
|
||||||
|
if (!data && /destroy|hide/.test(config)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Popover(this, _config);
|
||||||
|
$$$1(this).data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
if (typeof data[config] === 'undefined') {
|
||||||
|
throw new TypeError("No method named \"" + config + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_createClass(Popover, null, [{
|
||||||
|
key: "VERSION",
|
||||||
|
// Getters
|
||||||
|
get: function get() {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "Default",
|
||||||
|
get: function get() {
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "NAME",
|
||||||
|
get: function get() {
|
||||||
|
return NAME;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "DATA_KEY",
|
||||||
|
get: function get() {
|
||||||
|
return DATA_KEY;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "Event",
|
||||||
|
get: function get() {
|
||||||
|
return Event;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "EVENT_KEY",
|
||||||
|
get: function get() {
|
||||||
|
return EVENT_KEY;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: "DefaultType",
|
||||||
|
get: function get() {
|
||||||
|
return DefaultType;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Popover;
|
||||||
|
}(Tooltip);
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var Popover =
|
$$$1.fn[NAME] = Popover._jQueryInterface;
|
||||||
/*#__PURE__*/
|
$$$1.fn[NAME].Constructor = Popover;
|
||||||
function (_Tooltip) {
|
|
||||||
_inheritsLoose(Popover, _Tooltip);
|
|
||||||
|
|
||||||
function Popover() {
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
return _Tooltip.apply(this, arguments) || this;
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
}
|
return Popover._jQueryInterface;
|
||||||
|
|
||||||
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());
|
|
||||||
|
|
||||||
var content = this._getContent();
|
|
||||||
|
|
||||||
if (typeof content === 'function') {
|
|
||||||
content = content.call(this.element);
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setElementContent($tip.find(Selector.CONTENT), content);
|
|
||||||
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
|
|
||||||
}; // Private
|
|
||||||
|
|
||||||
|
|
||||||
_proto._getContent = function _getContent() {
|
|
||||||
return this.element.getAttribute('data-content') || this.config.content;
|
|
||||||
};
|
|
||||||
|
|
||||||
_proto._cleanTipClass = function _cleanTipClass() {
|
|
||||||
var $tip = $(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 TypeError("No method named \"" + config + "\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
data[config]();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
_createClass(Popover, null, [{
|
|
||||||
key: "VERSION",
|
|
||||||
// Getters
|
|
||||||
get: function get() {
|
|
||||||
return VERSION;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "Default",
|
|
||||||
get: function get() {
|
|
||||||
return Default;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "NAME",
|
|
||||||
get: function get() {
|
|
||||||
return NAME;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "DATA_KEY",
|
|
||||||
get: function get() {
|
|
||||||
return DATA_KEY;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "Event",
|
|
||||||
get: function get() {
|
|
||||||
return Event;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "EVENT_KEY",
|
|
||||||
get: function get() {
|
|
||||||
return EVENT_KEY;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "DefaultType",
|
|
||||||
get: function get() {
|
|
||||||
return DefaultType;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return Popover;
|
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;
|
return Popover;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=popover.js.map
|
})));
|
||||||
|
//# sourceMappingURL=popover.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,323 +1,379 @@
|
||||||
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
|
(function (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
||||||
|
(global.ScrollSpy = factory(global.jQuery,global.Util));
|
||||||
|
}(this, (function ($,Util) { 'use strict';
|
||||||
|
|
||||||
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : 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 _defineProperties(target, props) {
|
||||||
|
for (var i = 0; i < props.length; i++) {
|
||||||
|
var descriptor = props[i];
|
||||||
|
descriptor.enumerable = descriptor.enumerable || false;
|
||||||
|
descriptor.configurable = true;
|
||||||
|
if ("value" in descriptor) descriptor.writable = true;
|
||||||
|
Object.defineProperty(target, descriptor.key, descriptor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
function _createClass(Constructor, protoProps, staticProps) {
|
||||||
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||||
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||||
|
return Constructor;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _defineProperty(obj, key, value) {
|
||||||
|
if (key in obj) {
|
||||||
|
Object.defineProperty(obj, key, {
|
||||||
|
value: value,
|
||||||
|
enumerable: true,
|
||||||
|
configurable: true,
|
||||||
|
writable: true
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
obj[key] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
function _objectSpread(target) {
|
||||||
|
for (var i = 1; i < arguments.length; i++) {
|
||||||
|
var source = arguments[i] != null ? arguments[i] : {};
|
||||||
|
var ownKeys = Object.keys(source);
|
||||||
|
|
||||||
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
||||||
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
||||||
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
ownKeys.forEach(function (key) {
|
||||||
|
_defineProperty(target, key, source[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): scrollspy.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var ScrollSpy = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): scrollspy.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'scrollspy';
|
|
||||||
var VERSION = '4.1.2';
|
var ScrollSpy = function ($$$1) {
|
||||||
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
|
* Constants
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
var NAME = 'scrollspy';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.scrollspy';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
var Default = {
|
||||||
|
offset: 10,
|
||||||
|
method: 'auto',
|
||||||
|
target: ''
|
||||||
|
};
|
||||||
|
var DefaultType = {
|
||||||
|
offset: 'number',
|
||||||
|
method: 'string',
|
||||||
|
target: '(string|element)'
|
||||||
|
};
|
||||||
|
var Event = {
|
||||||
|
ACTIVATE: "activate" + EVENT_KEY,
|
||||||
|
SCROLL: "scroll" + EVENT_KEY,
|
||||||
|
LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
|
||||||
|
};
|
||||||
|
var ClassName = {
|
||||||
|
DROPDOWN_ITEM: 'dropdown-item',
|
||||||
|
DROPDOWN_MENU: 'dropdown-menu',
|
||||||
|
ACTIVE: 'active'
|
||||||
|
};
|
||||||
|
var Selector = {
|
||||||
|
DATA_SPY: '[data-spy="scroll"]',
|
||||||
|
ACTIVE: '.active',
|
||||||
|
NAV_LIST_GROUP: '.nav, .list-group',
|
||||||
|
NAV_LINKS: '.nav-link',
|
||||||
|
NAV_ITEMS: '.nav-item',
|
||||||
|
LIST_ITEMS: '.list-group-item',
|
||||||
|
DROPDOWN: '.dropdown',
|
||||||
|
DROPDOWN_ITEMS: '.dropdown-item',
|
||||||
|
DROPDOWN_TOGGLE: '.dropdown-toggle'
|
||||||
|
};
|
||||||
|
var OffsetMethod = {
|
||||||
|
OFFSET: 'offset',
|
||||||
|
POSITION: 'position'
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var ScrollSpy =
|
var ScrollSpy =
|
||||||
/*#__PURE__*/
|
/*#__PURE__*/
|
||||||
function () {
|
function () {
|
||||||
function ScrollSpy(element, config) {
|
function ScrollSpy(element, config) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
|
||||||
this._element = element;
|
this._element = element;
|
||||||
this._scrollElement = element.tagName === 'BODY' ? window : element;
|
this._scrollElement = element.tagName === 'BODY' ? window : element;
|
||||||
this._config = this._getConfig(config);
|
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._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
|
||||||
this._offsets = [];
|
this._offsets = [];
|
||||||
this._targets = [];
|
this._targets = [];
|
||||||
this._activeTarget = null;
|
this._activeTarget = null;
|
||||||
this._scrollHeight = 0;
|
this._scrollHeight = 0;
|
||||||
$(this._scrollElement).on(Event.SCROLL, function (event) {
|
$$$1(this._scrollElement).on(Event.SCROLL, function (event) {
|
||||||
return _this._process(event);
|
return _this._process(event);
|
||||||
});
|
});
|
||||||
this.refresh();
|
this.refresh();
|
||||||
|
|
||||||
this._process();
|
this._process();
|
||||||
} // Getters
|
} // Getters
|
||||||
|
|
||||||
|
|
||||||
var _proto = ScrollSpy.prototype;
|
var _proto = ScrollSpy.prototype;
|
||||||
|
|
||||||
// Public
|
// Public
|
||||||
_proto.refresh = function refresh() {
|
_proto.refresh = function refresh() {
|
||||||
var _this2 = this;
|
var _this2 = this;
|
||||||
|
|
||||||
var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
|
var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
|
||||||
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
|
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
|
||||||
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
|
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
|
||||||
this._offsets = [];
|
this._offsets = [];
|
||||||
this._targets = [];
|
this._targets = [];
|
||||||
this._scrollHeight = this._getScrollHeight();
|
this._scrollHeight = this._getScrollHeight();
|
||||||
var targets = [].slice.call(document.querySelectorAll(this._selector));
|
var targets = [].slice.call(document.querySelectorAll(this._selector));
|
||||||
targets.map(function (element) {
|
targets.map(function (element) {
|
||||||
var target;
|
var target;
|
||||||
var targetSelector = Util.getSelectorFromElement(element);
|
var targetSelector = Util.getSelectorFromElement(element);
|
||||||
|
|
||||||
if (targetSelector) {
|
if (targetSelector) {
|
||||||
target = document.querySelector(targetSelector);
|
target = document.querySelector(targetSelector);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
var targetBCR = target.getBoundingClientRect();
|
||||||
|
|
||||||
|
if (targetBCR.width || targetBCR.height) {
|
||||||
|
// TODO (fat): remove sketch reliance on jQuery position/offset
|
||||||
|
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}).filter(function (item) {
|
||||||
|
return item;
|
||||||
|
}).sort(function (a, b) {
|
||||||
|
return a[0] - b[0];
|
||||||
|
}).forEach(function (item) {
|
||||||
|
_this2._offsets.push(item[0]);
|
||||||
|
|
||||||
|
_this2._targets.push(item[1]);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.removeData(this._element, DATA_KEY);
|
||||||
|
$$$1(this._scrollElement).off(EVENT_KEY);
|
||||||
|
this._element = null;
|
||||||
|
this._scrollElement = null;
|
||||||
|
this._config = null;
|
||||||
|
this._selector = null;
|
||||||
|
this._offsets = null;
|
||||||
|
this._targets = null;
|
||||||
|
this._activeTarget = null;
|
||||||
|
this._scrollHeight = null;
|
||||||
|
}; // Private
|
||||||
|
|
||||||
|
|
||||||
|
_proto._getConfig = function _getConfig(config) {
|
||||||
|
config = _objectSpread({}, Default, typeof config === 'object' && config ? config : {});
|
||||||
|
|
||||||
|
if (typeof config.target !== 'string') {
|
||||||
|
var id = $$$1(config.target).attr('id');
|
||||||
|
|
||||||
|
if (!id) {
|
||||||
|
id = Util.getUID(NAME);
|
||||||
|
$$$1(config.target).attr('id', id);
|
||||||
|
}
|
||||||
|
|
||||||
|
config.target = "#" + id;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (target) {
|
Util.typeCheckConfig(NAME, config, DefaultType);
|
||||||
var targetBCR = target.getBoundingClientRect();
|
return config;
|
||||||
|
};
|
||||||
|
|
||||||
if (targetBCR.width || targetBCR.height) {
|
_proto._getScrollTop = function _getScrollTop() {
|
||||||
// TODO (fat): remove sketch reliance on jQuery position/offset
|
return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
|
||||||
return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
|
};
|
||||||
|
|
||||||
|
_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;
|
||||||
|
}
|
||||||
|
|
||||||
|
var offsetLength = this._offsets.length;
|
||||||
|
|
||||||
|
for (var i = offsetLength; 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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
};
|
||||||
|
|
||||||
return null;
|
_proto._activate = function _activate(target) {
|
||||||
}).filter(function (item) {
|
this._activeTarget = target;
|
||||||
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 = _objectSpread({}, Default, typeof config === 'object' && config ? 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();
|
this._clear();
|
||||||
|
|
||||||
return;
|
var queries = this._selector.split(','); // eslint-disable-next-line arrow-body-style
|
||||||
}
|
|
||||||
|
|
||||||
var offsetLength = this._offsets.length;
|
|
||||||
|
|
||||||
for (var i = offsetLength; 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) {
|
queries = queries.map(function (selector) {
|
||||||
return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
|
return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]");
|
||||||
});
|
});
|
||||||
var $link = $([].slice.call(document.querySelectorAll(queries.join(','))));
|
var $link = $$$1([].slice.call(document.querySelectorAll(queries.join(','))));
|
||||||
|
|
||||||
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
|
if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
|
||||||
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
|
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
|
||||||
$link.addClass(ClassName.ACTIVE);
|
$link.addClass(ClassName.ACTIVE);
|
||||||
} else {
|
} else {
|
||||||
// Set triggered link as active
|
// Set triggered link as active
|
||||||
$link.addClass(ClassName.ACTIVE); // Set triggered links parents 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
|
// 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_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);
|
$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() {
|
|
||||||
var nodes = [].slice.call(document.querySelectorAll(this._selector));
|
|
||||||
$(nodes).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') {
|
$$$1(this._scrollElement).trigger(Event.ACTIVATE, {
|
||||||
if (typeof data[config] === 'undefined') {
|
relatedTarget: target
|
||||||
throw new TypeError("No method named \"" + config + "\"");
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._clear = function _clear() {
|
||||||
|
var nodes = [].slice.call(document.querySelectorAll(this._selector));
|
||||||
|
$$$1(nodes).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var data = $$$1(this).data(DATA_KEY);
|
||||||
|
|
||||||
|
var _config = typeof config === 'object' && config;
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new ScrollSpy(this, _config);
|
||||||
|
$$$1(this).data(DATA_KEY, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
data[config]();
|
if (typeof config === 'string') {
|
||||||
|
if (typeof data[config] === 'undefined') {
|
||||||
|
throw new TypeError("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
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
$$$1(window).on(Event.LOAD_DATA_API, function () {
|
||||||
|
var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
|
||||||
|
var scrollSpysLength = scrollSpys.length;
|
||||||
|
|
||||||
|
for (var i = scrollSpysLength; i--;) {
|
||||||
|
var $spy = $$$1(scrollSpys[i]);
|
||||||
|
|
||||||
|
ScrollSpy._jQueryInterface.call($spy, $spy.data());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$$$1.fn[NAME] = ScrollSpy._jQueryInterface;
|
||||||
|
$$$1.fn[NAME].Constructor = ScrollSpy;
|
||||||
|
|
||||||
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
|
return ScrollSpy._jQueryInterface;
|
||||||
};
|
};
|
||||||
|
|
||||||
_createClass(ScrollSpy, null, [{
|
|
||||||
key: "VERSION",
|
|
||||||
get: function get() {
|
|
||||||
return VERSION;
|
|
||||||
}
|
|
||||||
}, {
|
|
||||||
key: "Default",
|
|
||||||
get: function get() {
|
|
||||||
return Default;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return ScrollSpy;
|
return ScrollSpy;
|
||||||
}();
|
}($);
|
||||||
/**
|
|
||||||
* ------------------------------------------------------------------------
|
|
||||||
* Data Api implementation
|
|
||||||
* ------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
$(window).on(Event.LOAD_DATA_API, function () {
|
|
||||||
var scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY));
|
|
||||||
var scrollSpysLength = scrollSpys.length;
|
|
||||||
|
|
||||||
for (var i = scrollSpysLength; 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;
|
return ScrollSpy;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=scrollspy.js.map
|
})));
|
||||||
|
//# sourceMappingURL=scrollspy.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,252 +1,278 @@
|
||||||
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 (global, factory) {
|
||||||
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
||||||
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
||||||
|
(global.Tab = factory(global.jQuery,global.Util));
|
||||||
|
}(this, (function ($,Util) { 'use strict';
|
||||||
|
|
||||||
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : 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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Bootstrap (v4.1.2): tab.js
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
var Tab = function ($) {
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Constants
|
* Bootstrap (v4.1.2): tab.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var NAME = 'tab';
|
|
||||||
var VERSION = '4.1.2';
|
var Tab = function ($$$1) {
|
||||||
var DATA_KEY = 'bs.tab';
|
|
||||||
var EVENT_KEY = "." + DATA_KEY;
|
|
||||||
var DATA_API_KEY = '.data-api';
|
|
||||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
||||||
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
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
var NAME = 'tab';
|
||||||
|
var VERSION = '4.1.2';
|
||||||
|
var DATA_KEY = 'bs.tab';
|
||||||
|
var EVENT_KEY = "." + DATA_KEY;
|
||||||
|
var DATA_API_KEY = '.data-api';
|
||||||
|
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||||
|
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 && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var target;
|
||||||
|
var previous;
|
||||||
|
var listElement = $$$1(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 = $$$1.makeArray($$$1(listElement).find(itemSelector));
|
||||||
|
previous = previous[previous.length - 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
var hideEvent = $$$1.Event(Event.HIDE, {
|
||||||
|
relatedTarget: this._element
|
||||||
|
});
|
||||||
|
var showEvent = $$$1.Event(Event.SHOW, {
|
||||||
|
relatedTarget: previous
|
||||||
|
});
|
||||||
|
|
||||||
|
if (previous) {
|
||||||
|
$$$1(previous).trigger(hideEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
$$$1(this._element).trigger(showEvent);
|
||||||
|
|
||||||
|
if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
target = document.querySelector(selector);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._activate(this._element, listElement);
|
||||||
|
|
||||||
|
var complete = function complete() {
|
||||||
|
var hiddenEvent = $$$1.Event(Event.HIDDEN, {
|
||||||
|
relatedTarget: _this._element
|
||||||
|
});
|
||||||
|
var shownEvent = $$$1.Event(Event.SHOWN, {
|
||||||
|
relatedTarget: previous
|
||||||
|
});
|
||||||
|
$$$1(previous).trigger(hiddenEvent);
|
||||||
|
$$$1(_this._element).trigger(shownEvent);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (target) {
|
||||||
|
this._activate(target, target.parentNode, complete);
|
||||||
|
} else {
|
||||||
|
complete();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto.dispose = function dispose() {
|
||||||
|
$$$1.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 = $$$1(container).find(Selector.ACTIVE_UL);
|
||||||
|
} else {
|
||||||
|
activeElements = $$$1(container).children(Selector.ACTIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
var active = activeElements[0];
|
||||||
|
var isTransitioning = callback && active && $$$1(active).hasClass(ClassName.FADE);
|
||||||
|
|
||||||
|
var complete = function complete() {
|
||||||
|
return _this2._transitionComplete(element, active, callback);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (active && isTransitioning) {
|
||||||
|
var transitionDuration = Util.getTransitionDurationFromElement(active);
|
||||||
|
$$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
||||||
|
} else {
|
||||||
|
complete();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
_proto._transitionComplete = function _transitionComplete(element, active, callback) {
|
||||||
|
if (active) {
|
||||||
|
$$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
|
||||||
|
var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
|
||||||
|
|
||||||
|
if (dropdownChild) {
|
||||||
|
$$$1(dropdownChild).removeClass(ClassName.ACTIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (active.getAttribute('role') === 'tab') {
|
||||||
|
active.setAttribute('aria-selected', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$$$1(element).addClass(ClassName.ACTIVE);
|
||||||
|
|
||||||
|
if (element.getAttribute('role') === 'tab') {
|
||||||
|
element.setAttribute('aria-selected', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Util.reflow(element);
|
||||||
|
$$$1(element).addClass(ClassName.SHOW);
|
||||||
|
|
||||||
|
if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
|
||||||
|
var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
|
||||||
|
|
||||||
|
if (dropdownElement) {
|
||||||
|
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
|
||||||
|
$$$1(dropdownToggleList).addClass(ClassName.ACTIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
element.setAttribute('aria-expanded', true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}; // Static
|
||||||
|
|
||||||
|
|
||||||
|
Tab._jQueryInterface = function _jQueryInterface(config) {
|
||||||
|
return this.each(function () {
|
||||||
|
var $this = $$$1(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 TypeError("No method named \"" + config + "\"");
|
||||||
|
}
|
||||||
|
|
||||||
|
data[config]();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
_createClass(Tab, null, [{
|
||||||
|
key: "VERSION",
|
||||||
|
get: function get() {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Tab;
|
||||||
|
}();
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
* ------------------------------------------------------------------------
|
* ------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
var Tab =
|
$$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
|
||||||
/*#__PURE__*/
|
event.preventDefault();
|
||||||
function () {
|
|
||||||
function Tab(element) {
|
|
||||||
this._element = element;
|
|
||||||
} // Getters
|
|
||||||
|
|
||||||
|
Tab._jQueryInterface.call($$$1(this), 'show');
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
var _proto = Tab.prototype;
|
$$$1.fn[NAME] = Tab._jQueryInterface;
|
||||||
|
$$$1.fn[NAME].Constructor = Tab;
|
||||||
|
|
||||||
// Public
|
$$$1.fn[NAME].noConflict = function () {
|
||||||
_proto.show = function show() {
|
$$$1.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
var _this = this;
|
return Tab._jQueryInterface;
|
||||||
|
|
||||||
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 = document.querySelector(selector);
|
|
||||||
}
|
|
||||||
|
|
||||||
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 && active && $(active).hasClass(ClassName.FADE);
|
|
||||||
|
|
||||||
var complete = function complete() {
|
|
||||||
return _this2._transitionComplete(element, active, callback);
|
|
||||||
};
|
|
||||||
|
|
||||||
if (active && isTransitioning) {
|
|
||||||
var transitionDuration = Util.getTransitionDurationFromElement(active);
|
|
||||||
$(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
||||||
} else {
|
|
||||||
complete();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
_proto._transitionComplete = function _transitionComplete(element, active, callback) {
|
|
||||||
if (active) {
|
|
||||||
$(active).removeClass(ClassName.SHOW + " " + 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);
|
|
||||||
}
|
|
||||||
|
|
||||||
Util.reflow(element);
|
|
||||||
$(element).addClass(ClassName.SHOW);
|
|
||||||
|
|
||||||
if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
|
|
||||||
var dropdownElement = $(element).closest(Selector.DROPDOWN)[0];
|
|
||||||
|
|
||||||
if (dropdownElement) {
|
|
||||||
var dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE));
|
|
||||||
$(dropdownToggleList).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 TypeError("No method named \"" + config + "\"");
|
|
||||||
}
|
|
||||||
|
|
||||||
data[config]();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
_createClass(Tab, null, [{
|
|
||||||
key: "VERSION",
|
|
||||||
get: function get() {
|
|
||||||
return VERSION;
|
|
||||||
}
|
|
||||||
}]);
|
|
||||||
|
|
||||||
return Tab;
|
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;
|
return Tab;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=tab.js.map
|
})));
|
||||||
|
//# sourceMappingURL=tab.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -1,131 +1,144 @@
|
||||||
/**
|
(function (global, factory) {
|
||||||
* --------------------------------------------------------------------------
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
|
||||||
* Bootstrap (v4.1.2): util.js
|
typeof define === 'function' && define.amd ? define(['jquery'], factory) :
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
(global.Util = factory(global.jQuery));
|
||||||
* --------------------------------------------------------------------------
|
}(this, (function ($) { 'use strict';
|
||||||
*/
|
|
||||||
var Util = function ($) {
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ------------------------------------------------------------------------
|
* --------------------------------------------------------------------------
|
||||||
* Private TransitionEnd Helpers
|
* Bootstrap (v4.1.2): util.js
|
||||||
* ------------------------------------------------------------------------
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
var TRANSITION_END = 'transitionend';
|
|
||||||
var MAX_UID = 1000000;
|
|
||||||
var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
|
||||||
|
|
||||||
function toType(obj) {
|
var Util = function ($$$1) {
|
||||||
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
/**
|
||||||
}
|
* ------------------------------------------------------------------------
|
||||||
|
* Private TransitionEnd Helpers
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
var TRANSITION_END = 'transitionend';
|
||||||
|
var MAX_UID = 1000000;
|
||||||
|
var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
||||||
|
|
||||||
function getSpecialTransitionEndEvent() {
|
function toType(obj) {
|
||||||
return {
|
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
|
||||||
bindType: TRANSITION_END,
|
}
|
||||||
delegateType: TRANSITION_END,
|
|
||||||
handle: function handle(event) {
|
function getSpecialTransitionEndEvent() {
|
||||||
if ($(event.target).is(this)) {
|
return {
|
||||||
return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
|
bindType: TRANSITION_END,
|
||||||
|
delegateType: TRANSITION_END,
|
||||||
|
handle: function handle(event) {
|
||||||
|
if ($$$1(event.target).is(this)) {
|
||||||
|
return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
|
||||||
|
}
|
||||||
|
|
||||||
|
return undefined; // eslint-disable-line no-undefined
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function transitionEndEmulator(duration) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
var called = false;
|
||||||
|
$$$1(this).one(Util.TRANSITION_END, function () {
|
||||||
|
called = true;
|
||||||
|
});
|
||||||
|
setTimeout(function () {
|
||||||
|
if (!called) {
|
||||||
|
Util.triggerTransitionEnd(_this);
|
||||||
|
}
|
||||||
|
}, duration);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
function setTransitionEndSupport() {
|
||||||
|
$$$1.fn.emulateTransitionEnd = transitionEndEmulator;
|
||||||
|
$$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
* Public Util Api
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
var Util = {
|
||||||
|
TRANSITION_END: 'bsTransitionEnd',
|
||||||
|
getUID: function getUID(prefix) {
|
||||||
|
do {
|
||||||
|
// eslint-disable-next-line no-bitwise
|
||||||
|
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
|
||||||
|
} while (document.getElementById(prefix));
|
||||||
|
|
||||||
|
return prefix;
|
||||||
|
},
|
||||||
|
getSelectorFromElement: function getSelectorFromElement(element) {
|
||||||
|
var selector = element.getAttribute('data-target');
|
||||||
|
|
||||||
|
if (!selector || selector === '#') {
|
||||||
|
selector = element.getAttribute('href') || '';
|
||||||
}
|
}
|
||||||
|
|
||||||
return undefined; // eslint-disable-line no-undefined
|
try {
|
||||||
}
|
return document.querySelector(selector) ? selector : null;
|
||||||
};
|
} catch (err) {
|
||||||
}
|
return null;
|
||||||
|
}
|
||||||
function transitionEndEmulator(duration) {
|
},
|
||||||
var _this = this;
|
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
|
||||||
|
if (!element) {
|
||||||
var called = false;
|
return 0;
|
||||||
$(this).one(Util.TRANSITION_END, function () {
|
} // Get transition-duration of the element
|
||||||
called = true;
|
|
||||||
});
|
|
||||||
setTimeout(function () {
|
|
||||||
if (!called) {
|
|
||||||
Util.triggerTransitionEnd(_this);
|
|
||||||
}
|
|
||||||
}, duration);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
function setTransitionEndSupport() {
|
|
||||||
$.fn.emulateTransitionEnd = transitionEndEmulator;
|
|
||||||
$.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
* Public Util Api
|
|
||||||
* --------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
var Util = {
|
var transitionDuration = $$$1(element).css('transition-duration');
|
||||||
TRANSITION_END: 'bsTransitionEnd',
|
var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
|
||||||
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;
|
if (!floatTransitionDuration) {
|
||||||
},
|
return 0;
|
||||||
getSelectorFromElement: function getSelectorFromElement(element) {
|
} // If multiple durations are defined, take the first
|
||||||
var selector = element.getAttribute('data-target');
|
|
||||||
|
|
||||||
if (!selector || selector === '#') {
|
|
||||||
selector = element.getAttribute('href') || '';
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
return document.querySelector(selector) ? selector : null;
|
|
||||||
} catch (err) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {
|
|
||||||
if (!element) {
|
|
||||||
return 0;
|
|
||||||
} // Get transition-duration of the element
|
|
||||||
|
|
||||||
|
|
||||||
var transitionDuration = $(element).css('transition-duration');
|
transitionDuration = transitionDuration.split(',')[0];
|
||||||
var floatTransitionDuration = parseFloat(transitionDuration); // Return 0 if element or transition duration is not found
|
return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
|
||||||
|
},
|
||||||
|
reflow: function reflow(element) {
|
||||||
|
return element.offsetHeight;
|
||||||
|
},
|
||||||
|
triggerTransitionEnd: function triggerTransitionEnd(element) {
|
||||||
|
$$$1(element).trigger(TRANSITION_END);
|
||||||
|
},
|
||||||
|
// TODO: Remove in v5
|
||||||
|
supportsTransitionEnd: function supportsTransitionEnd() {
|
||||||
|
return Boolean(TRANSITION_END);
|
||||||
|
},
|
||||||
|
isElement: function isElement(obj) {
|
||||||
|
return (obj[0] || obj).nodeType;
|
||||||
|
},
|
||||||
|
typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
|
||||||
|
for (var property in configTypes) {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
|
||||||
|
var expectedTypes = configTypes[property];
|
||||||
|
var value = config[property];
|
||||||
|
var valueType = value && Util.isElement(value) ? 'element' : toType(value);
|
||||||
|
|
||||||
if (!floatTransitionDuration) {
|
if (!new RegExp(expectedTypes).test(valueType)) {
|
||||||
return 0;
|
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
||||||
} // If multiple durations are defined, take the first
|
}
|
||||||
|
|
||||||
|
|
||||||
transitionDuration = transitionDuration.split(',')[0];
|
|
||||||
return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER;
|
|
||||||
},
|
|
||||||
reflow: function reflow(element) {
|
|
||||||
return element.offsetHeight;
|
|
||||||
},
|
|
||||||
triggerTransitionEnd: function triggerTransitionEnd(element) {
|
|
||||||
$(element).trigger(TRANSITION_END);
|
|
||||||
},
|
|
||||||
// TODO: Remove in v5
|
|
||||||
supportsTransitionEnd: function supportsTransitionEnd() {
|
|
||||||
return Boolean(TRANSITION_END);
|
|
||||||
},
|
|
||||||
isElement: function isElement(obj) {
|
|
||||||
return (obj[0] || obj).nodeType;
|
|
||||||
},
|
|
||||||
typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
|
|
||||||
for (var property in configTypes) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
|
|
||||||
var expectedTypes = configTypes[property];
|
|
||||||
var value = config[property];
|
|
||||||
var valueType = value && Util.isElement(value) ? 'element' : toType(value);
|
|
||||||
|
|
||||||
if (!new RegExp(expectedTypes).test(valueType)) {
|
|
||||||
throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
};
|
setTransitionEndSupport();
|
||||||
setTransitionEndSupport();
|
return Util;
|
||||||
|
}($);
|
||||||
|
|
||||||
return Util;
|
return Util;
|
||||||
}($);
|
|
||||||
//# sourceMappingURL=util.js.map
|
})));
|
||||||
|
//# sourceMappingURL=util.js.map
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue