├── index.html ├── node_modules └── bootstrap │ ├── README.md │ ├── dist │ ├── css │ │ ├── bootstrap-grid.css │ │ ├── bootstrap-grid.css.map │ │ ├── bootstrap-grid.min.css │ │ ├── bootstrap-grid.min.css.map │ │ ├── bootstrap-reboot.css │ │ ├── bootstrap-reboot.css.map │ │ ├── bootstrap-reboot.min.css │ │ ├── bootstrap-reboot.min.css.map │ │ ├── bootstrap.css │ │ ├── bootstrap.css.map │ │ ├── bootstrap.min.css │ │ └── bootstrap.min.css.map │ └── js │ │ ├── bootstrap.bundle.js │ │ ├── bootstrap.bundle.js.map │ │ ├── bootstrap.bundle.min.js │ │ ├── bootstrap.bundle.min.js.map │ │ ├── bootstrap.js │ │ ├── bootstrap.js.map │ │ ├── bootstrap.min.js │ │ └── bootstrap.min.js.map │ ├── js │ ├── dist │ │ ├── alert.js │ │ ├── alert.js.map │ │ ├── button.js │ │ ├── button.js.map │ │ ├── carousel.js │ │ ├── carousel.js.map │ │ ├── collapse.js │ │ ├── collapse.js.map │ │ ├── dropdown.js │ │ ├── dropdown.js.map │ │ ├── index.js │ │ ├── index.js.map │ │ ├── modal.js │ │ ├── modal.js.map │ │ ├── popover.js │ │ ├── popover.js.map │ │ ├── scrollspy.js │ │ ├── scrollspy.js.map │ │ ├── tab.js │ │ ├── tab.js.map │ │ ├── toast.js │ │ ├── toast.js.map │ │ ├── tooltip.js │ │ ├── tooltip.js.map │ │ ├── util.js │ │ └── util.js.map │ └── src │ │ ├── alert.js │ │ ├── button.js │ │ ├── carousel.js │ │ ├── collapse.js │ │ ├── dropdown.js │ │ ├── index.js │ │ ├── modal.js │ │ ├── popover.js │ │ ├── scrollspy.js │ │ ├── tab.js │ │ ├── toast.js │ │ ├── tools │ │ └── sanitizer.js │ │ ├── tooltip.js │ │ └── util.js │ ├── package.json │ └── scss │ ├── _alert.scss │ ├── _badge.scss │ ├── _breadcrumb.scss │ ├── _button-group.scss │ ├── _buttons.scss │ ├── _card.scss │ ├── _carousel.scss │ ├── _close.scss │ ├── _code.scss │ ├── _custom-forms.scss │ ├── _dropdown.scss │ ├── _forms.scss │ ├── _functions.scss │ ├── _grid.scss │ ├── _images.scss │ ├── _input-group.scss │ ├── _jumbotron.scss │ ├── _list-group.scss │ ├── _media.scss │ ├── _mixins.scss │ ├── _modal.scss │ ├── _nav.scss │ ├── _navbar.scss │ ├── _pagination.scss │ ├── _popover.scss │ ├── _print.scss │ ├── _progress.scss │ ├── _reboot.scss │ ├── _root.scss │ ├── _spinners.scss │ ├── _tables.scss │ ├── _toasts.scss │ ├── _tooltip.scss │ ├── _transitions.scss │ ├── _type.scss │ ├── _utilities.scss │ ├── _variables.scss │ ├── bootstrap-grid.scss │ ├── bootstrap-reboot.scss │ ├── bootstrap.scss │ ├── mixins │ ├── _alert.scss │ ├── _background-variant.scss │ ├── _badge.scss │ ├── _border-radius.scss │ ├── _box-shadow.scss │ ├── _breakpoints.scss │ ├── _buttons.scss │ ├── _caret.scss │ ├── _clearfix.scss │ ├── _deprecate.scss │ ├── _float.scss │ ├── _forms.scss │ ├── _gradients.scss │ ├── _grid-framework.scss │ ├── _grid.scss │ ├── _hover.scss │ ├── _image.scss │ ├── _list-group.scss │ ├── _lists.scss │ ├── _nav-divider.scss │ ├── _pagination.scss │ ├── _reset-text.scss │ ├── _resize.scss │ ├── _screen-reader.scss │ ├── _size.scss │ ├── _table-row.scss │ ├── _text-emphasis.scss │ ├── _text-hide.scss │ ├── _text-truncate.scss │ ├── _transition.scss │ └── _visibility.scss │ ├── utilities │ ├── _align.scss │ ├── _background.scss │ ├── _borders.scss │ ├── _clearfix.scss │ ├── _display.scss │ ├── _embed.scss │ ├── _flex.scss │ ├── _float.scss │ ├── _overflow.scss │ ├── _position.scss │ ├── _screenreaders.scss │ ├── _shadows.scss │ ├── _sizing.scss │ ├── _spacing.scss │ ├── _stretched-link.scss │ ├── _text.scss │ └── _visibility.scss │ └── vendor │ └── _rfs.scss ├── package-lock.json ├── package.json └── src └── js └── main.js /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Consulta CEP 7 | 8 | 9 | 10 |
11 |

Consultando CEP

12 |
13 |
14 | 15 | 16 | 00000-000 17 |
18 |
19 | 20 | 21 | Rua. 22 |
23 |
24 | 25 | 26 | Bairro 27 |
28 |
29 | 30 | 31 | Cidade 32 |
33 |
34 | 35 | 36 | Estado 37 |
38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /node_modules/bootstrap/dist/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */ 8 | *, 9 | *::before, 10 | *::after { 11 | box-sizing: border-box; 12 | } 13 | 14 | html { 15 | font-family: sans-serif; 16 | line-height: 1.15; 17 | -webkit-text-size-adjust: 100%; 18 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 19 | } 20 | 21 | article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { 22 | display: block; 23 | } 24 | 25 | body { 26 | margin: 0; 27 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 28 | font-size: 1rem; 29 | font-weight: 400; 30 | line-height: 1.5; 31 | color: #212529; 32 | text-align: left; 33 | background-color: #fff; 34 | } 35 | 36 | [tabindex="-1"]:focus:not(:focus-visible) { 37 | outline: 0 !important; 38 | } 39 | 40 | hr { 41 | box-sizing: content-box; 42 | height: 0; 43 | overflow: visible; 44 | } 45 | 46 | h1, h2, h3, h4, h5, h6 { 47 | margin-top: 0; 48 | margin-bottom: 0.5rem; 49 | } 50 | 51 | p { 52 | margin-top: 0; 53 | margin-bottom: 1rem; 54 | } 55 | 56 | abbr[title], 57 | abbr[data-original-title] { 58 | text-decoration: underline; 59 | -webkit-text-decoration: underline dotted; 60 | text-decoration: underline dotted; 61 | cursor: help; 62 | border-bottom: 0; 63 | -webkit-text-decoration-skip-ink: none; 64 | text-decoration-skip-ink: none; 65 | } 66 | 67 | address { 68 | margin-bottom: 1rem; 69 | font-style: normal; 70 | line-height: inherit; 71 | } 72 | 73 | ol, 74 | ul, 75 | dl { 76 | margin-top: 0; 77 | margin-bottom: 1rem; 78 | } 79 | 80 | ol ol, 81 | ul ul, 82 | ol ul, 83 | ul ol { 84 | margin-bottom: 0; 85 | } 86 | 87 | dt { 88 | font-weight: 700; 89 | } 90 | 91 | dd { 92 | margin-bottom: .5rem; 93 | margin-left: 0; 94 | } 95 | 96 | blockquote { 97 | margin: 0 0 1rem; 98 | } 99 | 100 | b, 101 | strong { 102 | font-weight: bolder; 103 | } 104 | 105 | small { 106 | font-size: 80%; 107 | } 108 | 109 | sub, 110 | sup { 111 | position: relative; 112 | font-size: 75%; 113 | line-height: 0; 114 | vertical-align: baseline; 115 | } 116 | 117 | sub { 118 | bottom: -.25em; 119 | } 120 | 121 | sup { 122 | top: -.5em; 123 | } 124 | 125 | a { 126 | color: #007bff; 127 | text-decoration: none; 128 | background-color: transparent; 129 | } 130 | 131 | a:hover { 132 | color: #0056b3; 133 | text-decoration: underline; 134 | } 135 | 136 | a:not([href]) { 137 | color: inherit; 138 | text-decoration: none; 139 | } 140 | 141 | a:not([href]):hover { 142 | color: inherit; 143 | text-decoration: none; 144 | } 145 | 146 | pre, 147 | code, 148 | kbd, 149 | samp { 150 | font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 151 | font-size: 1em; 152 | } 153 | 154 | pre { 155 | margin-top: 0; 156 | margin-bottom: 1rem; 157 | overflow: auto; 158 | } 159 | 160 | figure { 161 | margin: 0 0 1rem; 162 | } 163 | 164 | img { 165 | vertical-align: middle; 166 | border-style: none; 167 | } 168 | 169 | svg { 170 | overflow: hidden; 171 | vertical-align: middle; 172 | } 173 | 174 | table { 175 | border-collapse: collapse; 176 | } 177 | 178 | caption { 179 | padding-top: 0.75rem; 180 | padding-bottom: 0.75rem; 181 | color: #6c757d; 182 | text-align: left; 183 | caption-side: bottom; 184 | } 185 | 186 | th { 187 | text-align: inherit; 188 | } 189 | 190 | label { 191 | display: inline-block; 192 | margin-bottom: 0.5rem; 193 | } 194 | 195 | button { 196 | border-radius: 0; 197 | } 198 | 199 | button:focus { 200 | outline: 1px dotted; 201 | outline: 5px auto -webkit-focus-ring-color; 202 | } 203 | 204 | input, 205 | button, 206 | select, 207 | optgroup, 208 | textarea { 209 | margin: 0; 210 | font-family: inherit; 211 | font-size: inherit; 212 | line-height: inherit; 213 | } 214 | 215 | button, 216 | input { 217 | overflow: visible; 218 | } 219 | 220 | button, 221 | select { 222 | text-transform: none; 223 | } 224 | 225 | select { 226 | word-wrap: normal; 227 | } 228 | 229 | button, 230 | [type="button"], 231 | [type="reset"], 232 | [type="submit"] { 233 | -webkit-appearance: button; 234 | } 235 | 236 | button:not(:disabled), 237 | [type="button"]:not(:disabled), 238 | [type="reset"]:not(:disabled), 239 | [type="submit"]:not(:disabled) { 240 | cursor: pointer; 241 | } 242 | 243 | button::-moz-focus-inner, 244 | [type="button"]::-moz-focus-inner, 245 | [type="reset"]::-moz-focus-inner, 246 | [type="submit"]::-moz-focus-inner { 247 | padding: 0; 248 | border-style: none; 249 | } 250 | 251 | input[type="radio"], 252 | input[type="checkbox"] { 253 | box-sizing: border-box; 254 | padding: 0; 255 | } 256 | 257 | input[type="date"], 258 | input[type="time"], 259 | input[type="datetime-local"], 260 | input[type="month"] { 261 | -webkit-appearance: listbox; 262 | } 263 | 264 | textarea { 265 | overflow: auto; 266 | resize: vertical; 267 | } 268 | 269 | fieldset { 270 | min-width: 0; 271 | padding: 0; 272 | margin: 0; 273 | border: 0; 274 | } 275 | 276 | legend { 277 | display: block; 278 | width: 100%; 279 | max-width: 100%; 280 | padding: 0; 281 | margin-bottom: .5rem; 282 | font-size: 1.5rem; 283 | line-height: inherit; 284 | color: inherit; 285 | white-space: normal; 286 | } 287 | 288 | progress { 289 | vertical-align: baseline; 290 | } 291 | 292 | [type="number"]::-webkit-inner-spin-button, 293 | [type="number"]::-webkit-outer-spin-button { 294 | height: auto; 295 | } 296 | 297 | [type="search"] { 298 | outline-offset: -2px; 299 | -webkit-appearance: none; 300 | } 301 | 302 | [type="search"]::-webkit-search-decoration { 303 | -webkit-appearance: none; 304 | } 305 | 306 | ::-webkit-file-upload-button { 307 | font: inherit; 308 | -webkit-appearance: button; 309 | } 310 | 311 | output { 312 | display: inline-block; 313 | } 314 | 315 | summary { 316 | display: list-item; 317 | cursor: pointer; 318 | } 319 | 320 | template { 321 | display: none; 322 | } 323 | 324 | [hidden] { 325 | display: none !important; 326 | } 327 | /*# sourceMappingURL=bootstrap-reboot.css.map */ -------------------------------------------------------------------------------- /node_modules/bootstrap/dist/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors 4 | * Copyright 2011-2019 Twitter, Inc. 5 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 6 | * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) 7 | */*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}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,"Noto Sans",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:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.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;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}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}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}a:hover{color:#0056b3;text-decoration:underline}a:not([href]){color:inherit;text-decoration:none}a:not([href]):hover{color:inherit;text-decoration:none}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}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}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[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-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} 8 | /*# sourceMappingURL=bootstrap-reboot.min.css.map */ -------------------------------------------------------------------------------- /node_modules/bootstrap/js/dist/alert.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap alert.js v4.4.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | (function (global, factory) { 7 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) : 8 | typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) : 9 | (global = global || self, global.Alert = factory(global.jQuery, global.Util)); 10 | }(this, (function ($, Util) { 'use strict'; 11 | 12 | $ = $ && $.hasOwnProperty('default') ? $['default'] : $; 13 | Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util; 14 | 15 | function _defineProperties(target, props) { 16 | for (var i = 0; i < props.length; i++) { 17 | var descriptor = props[i]; 18 | descriptor.enumerable = descriptor.enumerable || false; 19 | descriptor.configurable = true; 20 | if ("value" in descriptor) descriptor.writable = true; 21 | Object.defineProperty(target, descriptor.key, descriptor); 22 | } 23 | } 24 | 25 | function _createClass(Constructor, protoProps, staticProps) { 26 | if (protoProps) _defineProperties(Constructor.prototype, protoProps); 27 | if (staticProps) _defineProperties(Constructor, staticProps); 28 | return Constructor; 29 | } 30 | 31 | /** 32 | * ------------------------------------------------------------------------ 33 | * Constants 34 | * ------------------------------------------------------------------------ 35 | */ 36 | 37 | var NAME = 'alert'; 38 | var VERSION = '4.4.1'; 39 | var DATA_KEY = 'bs.alert'; 40 | var EVENT_KEY = "." + DATA_KEY; 41 | var DATA_API_KEY = '.data-api'; 42 | var JQUERY_NO_CONFLICT = $.fn[NAME]; 43 | var Selector = { 44 | DISMISS: '[data-dismiss="alert"]' 45 | }; 46 | var Event = { 47 | CLOSE: "close" + EVENT_KEY, 48 | CLOSED: "closed" + EVENT_KEY, 49 | CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY 50 | }; 51 | var ClassName = { 52 | ALERT: 'alert', 53 | FADE: 'fade', 54 | SHOW: 'show' 55 | }; 56 | /** 57 | * ------------------------------------------------------------------------ 58 | * Class Definition 59 | * ------------------------------------------------------------------------ 60 | */ 61 | 62 | var Alert = 63 | /*#__PURE__*/ 64 | function () { 65 | function Alert(element) { 66 | this._element = element; 67 | } // Getters 68 | 69 | 70 | var _proto = Alert.prototype; 71 | 72 | // Public 73 | _proto.close = function close(element) { 74 | var rootElement = this._element; 75 | 76 | if (element) { 77 | rootElement = this._getRootElement(element); 78 | } 79 | 80 | var customEvent = this._triggerCloseEvent(rootElement); 81 | 82 | if (customEvent.isDefaultPrevented()) { 83 | return; 84 | } 85 | 86 | this._removeElement(rootElement); 87 | }; 88 | 89 | _proto.dispose = function dispose() { 90 | $.removeData(this._element, DATA_KEY); 91 | this._element = null; 92 | } // Private 93 | ; 94 | 95 | _proto._getRootElement = function _getRootElement(element) { 96 | var selector = Util.getSelectorFromElement(element); 97 | var parent = false; 98 | 99 | if (selector) { 100 | parent = document.querySelector(selector); 101 | } 102 | 103 | if (!parent) { 104 | parent = $(element).closest("." + ClassName.ALERT)[0]; 105 | } 106 | 107 | return parent; 108 | }; 109 | 110 | _proto._triggerCloseEvent = function _triggerCloseEvent(element) { 111 | var closeEvent = $.Event(Event.CLOSE); 112 | $(element).trigger(closeEvent); 113 | return closeEvent; 114 | }; 115 | 116 | _proto._removeElement = function _removeElement(element) { 117 | var _this = this; 118 | 119 | $(element).removeClass(ClassName.SHOW); 120 | 121 | if (!$(element).hasClass(ClassName.FADE)) { 122 | this._destroyElement(element); 123 | 124 | return; 125 | } 126 | 127 | var transitionDuration = Util.getTransitionDurationFromElement(element); 128 | $(element).one(Util.TRANSITION_END, function (event) { 129 | return _this._destroyElement(element, event); 130 | }).emulateTransitionEnd(transitionDuration); 131 | }; 132 | 133 | _proto._destroyElement = function _destroyElement(element) { 134 | $(element).detach().trigger(Event.CLOSED).remove(); 135 | } // Static 136 | ; 137 | 138 | Alert._jQueryInterface = function _jQueryInterface(config) { 139 | return this.each(function () { 140 | var $element = $(this); 141 | var data = $element.data(DATA_KEY); 142 | 143 | if (!data) { 144 | data = new Alert(this); 145 | $element.data(DATA_KEY, data); 146 | } 147 | 148 | if (config === 'close') { 149 | data[config](this); 150 | } 151 | }); 152 | }; 153 | 154 | Alert._handleDismiss = function _handleDismiss(alertInstance) { 155 | return function (event) { 156 | if (event) { 157 | event.preventDefault(); 158 | } 159 | 160 | alertInstance.close(this); 161 | }; 162 | }; 163 | 164 | _createClass(Alert, null, [{ 165 | key: "VERSION", 166 | get: function get() { 167 | return VERSION; 168 | } 169 | }]); 170 | 171 | return Alert; 172 | }(); 173 | /** 174 | * ------------------------------------------------------------------------ 175 | * Data Api implementation 176 | * ------------------------------------------------------------------------ 177 | */ 178 | 179 | 180 | $(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert())); 181 | /** 182 | * ------------------------------------------------------------------------ 183 | * jQuery 184 | * ------------------------------------------------------------------------ 185 | */ 186 | 187 | $.fn[NAME] = Alert._jQueryInterface; 188 | $.fn[NAME].Constructor = Alert; 189 | 190 | $.fn[NAME].noConflict = function () { 191 | $.fn[NAME] = JQUERY_NO_CONFLICT; 192 | return Alert._jQueryInterface; 193 | }; 194 | 195 | return Alert; 196 | 197 | }))); 198 | //# sourceMappingURL=alert.js.map 199 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/dist/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.0): index.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | (function ($) { 8 | if (typeof $ === 'undefined') { 9 | throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); 10 | } 11 | 12 | var version = $.fn.jquery.split(' ')[0].split('.'); 13 | var minMajor = 1; 14 | var ltMajor = 2; 15 | var minMinor = 9; 16 | var minPatch = 1; 17 | var maxMajor = 4; 18 | 19 | if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { 20 | throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0'); 21 | } 22 | })($); 23 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /node_modules/bootstrap/js/dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../src/index.js"],"names":["$","TypeError","version","fn","jquery","split","minMajor","ltMajor","minMinor","minPatch","maxMajor","Error"],"mappings":"AAaA;;;;;;AAOA,CAAC,UAACA,CAAD,EAAO;AACN,MAAI,OAAOA,CAAP,KAAa,WAAjB,EAA8B;AAC5B,UAAM,IAAIC,SAAJ,CAAc,kGAAd,CAAN;AACD;;AAED,MAAMC,UAAUF,EAAEG,EAAF,CAAKC,MAAL,CAAYC,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,EAA0BA,KAA1B,CAAgC,GAAhC,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,UAAU,CAAhB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;AACA,MAAMC,WAAW,CAAjB;;AAEA,MAAIR,QAAQ,CAAR,IAAaK,OAAb,IAAwBL,QAAQ,CAAR,IAAaM,QAArC,IAAiDN,QAAQ,CAAR,MAAeI,QAAf,IAA2BJ,QAAQ,CAAR,MAAeM,QAA1C,IAAsDN,QAAQ,CAAR,IAAaO,QAApH,IAAgIP,QAAQ,CAAR,KAAcQ,QAAlJ,EAA4J;AAC1J,UAAM,IAAIC,KAAJ,CAAU,8EAAV,CAAN;AACD;AACF,CAfD,EAeGX,CAfH","sourcesContent":["import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.2): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(($) => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})($)\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Tooltip\n}\n"],"file":"index.js"} -------------------------------------------------------------------------------- /node_modules/bootstrap/js/dist/util.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap util.js v4.4.1 (https://getbootstrap.com/) 3 | * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | (function (global, factory) { 7 | typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) : 8 | typeof define === 'function' && define.amd ? define(['jquery'], factory) : 9 | (global = global || self, global.Util = factory(global.jQuery)); 10 | }(this, (function ($) { 'use strict'; 11 | 12 | $ = $ && $.hasOwnProperty('default') ? $['default'] : $; 13 | 14 | /** 15 | * -------------------------------------------------------------------------- 16 | * Bootstrap (v4.4.1): util.js 17 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 18 | * -------------------------------------------------------------------------- 19 | */ 20 | /** 21 | * ------------------------------------------------------------------------ 22 | * Private TransitionEnd Helpers 23 | * ------------------------------------------------------------------------ 24 | */ 25 | 26 | var TRANSITION_END = 'transitionend'; 27 | var MAX_UID = 1000000; 28 | var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp) 29 | 30 | function toType(obj) { 31 | return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase(); 32 | } 33 | 34 | function getSpecialTransitionEndEvent() { 35 | return { 36 | bindType: TRANSITION_END, 37 | delegateType: TRANSITION_END, 38 | handle: function handle(event) { 39 | if ($(event.target).is(this)) { 40 | return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params 41 | } 42 | 43 | return undefined; // eslint-disable-line no-undefined 44 | } 45 | }; 46 | } 47 | 48 | function transitionEndEmulator(duration) { 49 | var _this = this; 50 | 51 | var called = false; 52 | $(this).one(Util.TRANSITION_END, function () { 53 | called = true; 54 | }); 55 | setTimeout(function () { 56 | if (!called) { 57 | Util.triggerTransitionEnd(_this); 58 | } 59 | }, duration); 60 | return this; 61 | } 62 | 63 | function setTransitionEndSupport() { 64 | $.fn.emulateTransitionEnd = transitionEndEmulator; 65 | $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent(); 66 | } 67 | /** 68 | * -------------------------------------------------------------------------- 69 | * Public Util Api 70 | * -------------------------------------------------------------------------- 71 | */ 72 | 73 | 74 | var Util = { 75 | TRANSITION_END: 'bsTransitionEnd', 76 | getUID: function getUID(prefix) { 77 | do { 78 | // eslint-disable-next-line no-bitwise 79 | prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here 80 | } while (document.getElementById(prefix)); 81 | 82 | return prefix; 83 | }, 84 | getSelectorFromElement: function getSelectorFromElement(element) { 85 | var selector = element.getAttribute('data-target'); 86 | 87 | if (!selector || selector === '#') { 88 | var hrefAttr = element.getAttribute('href'); 89 | selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''; 90 | } 91 | 92 | try { 93 | return document.querySelector(selector) ? selector : null; 94 | } catch (err) { 95 | return null; 96 | } 97 | }, 98 | getTransitionDurationFromElement: function getTransitionDurationFromElement(element) { 99 | if (!element) { 100 | return 0; 101 | } // Get transition-duration of the element 102 | 103 | 104 | var transitionDuration = $(element).css('transition-duration'); 105 | var transitionDelay = $(element).css('transition-delay'); 106 | var floatTransitionDuration = parseFloat(transitionDuration); 107 | var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found 108 | 109 | if (!floatTransitionDuration && !floatTransitionDelay) { 110 | return 0; 111 | } // If multiple durations are defined, take the first 112 | 113 | 114 | transitionDuration = transitionDuration.split(',')[0]; 115 | transitionDelay = transitionDelay.split(',')[0]; 116 | return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER; 117 | }, 118 | reflow: function reflow(element) { 119 | return element.offsetHeight; 120 | }, 121 | triggerTransitionEnd: function triggerTransitionEnd(element) { 122 | $(element).trigger(TRANSITION_END); 123 | }, 124 | // TODO: Remove in v5 125 | supportsTransitionEnd: function supportsTransitionEnd() { 126 | return Boolean(TRANSITION_END); 127 | }, 128 | isElement: function isElement(obj) { 129 | return (obj[0] || obj).nodeType; 130 | }, 131 | typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) { 132 | for (var property in configTypes) { 133 | if (Object.prototype.hasOwnProperty.call(configTypes, property)) { 134 | var expectedTypes = configTypes[property]; 135 | var value = config[property]; 136 | var valueType = value && Util.isElement(value) ? 'element' : toType(value); 137 | 138 | if (!new RegExp(expectedTypes).test(valueType)) { 139 | throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\".")); 140 | } 141 | } 142 | } 143 | }, 144 | findShadowRoot: function findShadowRoot(element) { 145 | if (!document.documentElement.attachShadow) { 146 | return null; 147 | } // Can find the shadow root otherwise it'll return the document 148 | 149 | 150 | if (typeof element.getRootNode === 'function') { 151 | var root = element.getRootNode(); 152 | return root instanceof ShadowRoot ? root : null; 153 | } 154 | 155 | if (element instanceof ShadowRoot) { 156 | return element; 157 | } // when we don't find a shadow root 158 | 159 | 160 | if (!element.parentNode) { 161 | return null; 162 | } 163 | 164 | return Util.findShadowRoot(element.parentNode); 165 | }, 166 | jQueryDetection: function jQueryDetection() { 167 | if (typeof $ === 'undefined') { 168 | throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.'); 169 | } 170 | 171 | var version = $.fn.jquery.split(' ')[0].split('.'); 172 | var minMajor = 1; 173 | var ltMajor = 2; 174 | var minMinor = 9; 175 | var minPatch = 1; 176 | var maxMajor = 4; 177 | 178 | if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { 179 | throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0'); 180 | } 181 | } 182 | }; 183 | Util.jQueryDetection(); 184 | setTransitionEndSupport(); 185 | 186 | return Util; 187 | 188 | }))); 189 | //# sourceMappingURL=util.js.map 190 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/alert.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): alert.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import $ from 'jquery' 9 | import Util from './util' 10 | 11 | /** 12 | * ------------------------------------------------------------------------ 13 | * Constants 14 | * ------------------------------------------------------------------------ 15 | */ 16 | 17 | const NAME = 'alert' 18 | const VERSION = '4.4.1' 19 | const DATA_KEY = 'bs.alert' 20 | const EVENT_KEY = `.${DATA_KEY}` 21 | const DATA_API_KEY = '.data-api' 22 | const JQUERY_NO_CONFLICT = $.fn[NAME] 23 | 24 | const Selector = { 25 | DISMISS : '[data-dismiss="alert"]' 26 | } 27 | 28 | const Event = { 29 | CLOSE : `close${EVENT_KEY}`, 30 | CLOSED : `closed${EVENT_KEY}`, 31 | CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}` 32 | } 33 | 34 | const ClassName = { 35 | ALERT : 'alert', 36 | FADE : 'fade', 37 | SHOW : 'show' 38 | } 39 | 40 | /** 41 | * ------------------------------------------------------------------------ 42 | * Class Definition 43 | * ------------------------------------------------------------------------ 44 | */ 45 | 46 | class Alert { 47 | constructor(element) { 48 | this._element = element 49 | } 50 | 51 | // Getters 52 | 53 | static get VERSION() { 54 | return VERSION 55 | } 56 | 57 | // Public 58 | 59 | close(element) { 60 | let rootElement = this._element 61 | if (element) { 62 | rootElement = this._getRootElement(element) 63 | } 64 | 65 | const customEvent = this._triggerCloseEvent(rootElement) 66 | 67 | if (customEvent.isDefaultPrevented()) { 68 | return 69 | } 70 | 71 | this._removeElement(rootElement) 72 | } 73 | 74 | dispose() { 75 | $.removeData(this._element, DATA_KEY) 76 | this._element = null 77 | } 78 | 79 | // Private 80 | 81 | _getRootElement(element) { 82 | const selector = Util.getSelectorFromElement(element) 83 | let parent = false 84 | 85 | if (selector) { 86 | parent = document.querySelector(selector) 87 | } 88 | 89 | if (!parent) { 90 | parent = $(element).closest(`.${ClassName.ALERT}`)[0] 91 | } 92 | 93 | return parent 94 | } 95 | 96 | _triggerCloseEvent(element) { 97 | const closeEvent = $.Event(Event.CLOSE) 98 | 99 | $(element).trigger(closeEvent) 100 | return closeEvent 101 | } 102 | 103 | _removeElement(element) { 104 | $(element).removeClass(ClassName.SHOW) 105 | 106 | if (!$(element).hasClass(ClassName.FADE)) { 107 | this._destroyElement(element) 108 | return 109 | } 110 | 111 | const transitionDuration = Util.getTransitionDurationFromElement(element) 112 | 113 | $(element) 114 | .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event)) 115 | .emulateTransitionEnd(transitionDuration) 116 | } 117 | 118 | _destroyElement(element) { 119 | $(element) 120 | .detach() 121 | .trigger(Event.CLOSED) 122 | .remove() 123 | } 124 | 125 | // Static 126 | 127 | static _jQueryInterface(config) { 128 | return this.each(function () { 129 | const $element = $(this) 130 | let data = $element.data(DATA_KEY) 131 | 132 | if (!data) { 133 | data = new Alert(this) 134 | $element.data(DATA_KEY, data) 135 | } 136 | 137 | if (config === 'close') { 138 | data[config](this) 139 | } 140 | }) 141 | } 142 | 143 | static _handleDismiss(alertInstance) { 144 | return function (event) { 145 | if (event) { 146 | event.preventDefault() 147 | } 148 | 149 | alertInstance.close(this) 150 | } 151 | } 152 | } 153 | 154 | /** 155 | * ------------------------------------------------------------------------ 156 | * Data Api implementation 157 | * ------------------------------------------------------------------------ 158 | */ 159 | 160 | $(document).on( 161 | Event.CLICK_DATA_API, 162 | Selector.DISMISS, 163 | Alert._handleDismiss(new Alert()) 164 | ) 165 | 166 | /** 167 | * ------------------------------------------------------------------------ 168 | * jQuery 169 | * ------------------------------------------------------------------------ 170 | */ 171 | 172 | $.fn[NAME] = Alert._jQueryInterface 173 | $.fn[NAME].Constructor = Alert 174 | $.fn[NAME].noConflict = () => { 175 | $.fn[NAME] = JQUERY_NO_CONFLICT 176 | return Alert._jQueryInterface 177 | } 178 | 179 | export default Alert 180 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/button.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): button.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import $ from 'jquery' 9 | 10 | /** 11 | * ------------------------------------------------------------------------ 12 | * Constants 13 | * ------------------------------------------------------------------------ 14 | */ 15 | 16 | const NAME = 'button' 17 | const VERSION = '4.4.1' 18 | const DATA_KEY = 'bs.button' 19 | const EVENT_KEY = `.${DATA_KEY}` 20 | const DATA_API_KEY = '.data-api' 21 | const JQUERY_NO_CONFLICT = $.fn[NAME] 22 | 23 | const ClassName = { 24 | ACTIVE : 'active', 25 | BUTTON : 'btn', 26 | FOCUS : 'focus' 27 | } 28 | 29 | const Selector = { 30 | DATA_TOGGLE_CARROT : '[data-toggle^="button"]', 31 | DATA_TOGGLES : '[data-toggle="buttons"]', 32 | DATA_TOGGLE : '[data-toggle="button"]', 33 | DATA_TOGGLES_BUTTONS : '[data-toggle="buttons"] .btn', 34 | INPUT : 'input:not([type="hidden"])', 35 | ACTIVE : '.active', 36 | BUTTON : '.btn' 37 | } 38 | 39 | const Event = { 40 | CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`, 41 | FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` + 42 | `blur${EVENT_KEY}${DATA_API_KEY}`, 43 | LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}` 44 | } 45 | 46 | /** 47 | * ------------------------------------------------------------------------ 48 | * Class Definition 49 | * ------------------------------------------------------------------------ 50 | */ 51 | 52 | class Button { 53 | constructor(element) { 54 | this._element = element 55 | } 56 | 57 | // Getters 58 | 59 | static get VERSION() { 60 | return VERSION 61 | } 62 | 63 | // Public 64 | 65 | toggle() { 66 | let triggerChangeEvent = true 67 | let addAriaPressed = true 68 | const rootElement = $(this._element).closest( 69 | Selector.DATA_TOGGLES 70 | )[0] 71 | 72 | if (rootElement) { 73 | const input = this._element.querySelector(Selector.INPUT) 74 | 75 | if (input) { 76 | if (input.type === 'radio') { 77 | if (input.checked && 78 | this._element.classList.contains(ClassName.ACTIVE)) { 79 | triggerChangeEvent = false 80 | } else { 81 | const activeElement = rootElement.querySelector(Selector.ACTIVE) 82 | 83 | if (activeElement) { 84 | $(activeElement).removeClass(ClassName.ACTIVE) 85 | } 86 | } 87 | } else if (input.type === 'checkbox') { 88 | if (this._element.tagName === 'LABEL' && input.checked === this._element.classList.contains(ClassName.ACTIVE)) { 89 | triggerChangeEvent = false 90 | } 91 | } else { 92 | // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input 93 | triggerChangeEvent = false 94 | } 95 | 96 | if (triggerChangeEvent) { 97 | input.checked = !this._element.classList.contains(ClassName.ACTIVE) 98 | $(input).trigger('change') 99 | } 100 | 101 | input.focus() 102 | addAriaPressed = false 103 | } 104 | } 105 | 106 | if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) { 107 | if (addAriaPressed) { 108 | this._element.setAttribute('aria-pressed', 109 | !this._element.classList.contains(ClassName.ACTIVE)) 110 | } 111 | 112 | if (triggerChangeEvent) { 113 | $(this._element).toggleClass(ClassName.ACTIVE) 114 | } 115 | } 116 | } 117 | 118 | dispose() { 119 | $.removeData(this._element, DATA_KEY) 120 | this._element = null 121 | } 122 | 123 | // Static 124 | 125 | static _jQueryInterface(config) { 126 | return this.each(function () { 127 | let data = $(this).data(DATA_KEY) 128 | 129 | if (!data) { 130 | data = new Button(this) 131 | $(this).data(DATA_KEY, data) 132 | } 133 | 134 | if (config === 'toggle') { 135 | data[config]() 136 | } 137 | }) 138 | } 139 | } 140 | 141 | /** 142 | * ------------------------------------------------------------------------ 143 | * Data Api implementation 144 | * ------------------------------------------------------------------------ 145 | */ 146 | 147 | $(document) 148 | .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => { 149 | let button = event.target 150 | 151 | if (!$(button).hasClass(ClassName.BUTTON)) { 152 | button = $(button).closest(Selector.BUTTON)[0] 153 | } 154 | 155 | if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) { 156 | event.preventDefault() // work around Firefox bug #1540995 157 | } else { 158 | const inputBtn = button.querySelector(Selector.INPUT) 159 | 160 | if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) { 161 | event.preventDefault() // work around Firefox bug #1540995 162 | return 163 | } 164 | 165 | Button._jQueryInterface.call($(button), 'toggle') 166 | } 167 | }) 168 | .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => { 169 | const button = $(event.target).closest(Selector.BUTTON)[0] 170 | $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type)) 171 | }) 172 | 173 | $(window).on(Event.LOAD_DATA_API, () => { 174 | // ensure correct active class is set to match the controls' actual values/states 175 | 176 | // find all checkboxes/readio buttons inside data-toggle groups 177 | let buttons = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLES_BUTTONS)) 178 | for (let i = 0, len = buttons.length; i < len; i++) { 179 | const button = buttons[i] 180 | const input = button.querySelector(Selector.INPUT) 181 | if (input.checked || input.hasAttribute('checked')) { 182 | button.classList.add(ClassName.ACTIVE) 183 | } else { 184 | button.classList.remove(ClassName.ACTIVE) 185 | } 186 | } 187 | 188 | // find all button toggles 189 | buttons = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE)) 190 | for (let i = 0, len = buttons.length; i < len; i++) { 191 | const button = buttons[i] 192 | if (button.getAttribute('aria-pressed') === 'true') { 193 | button.classList.add(ClassName.ACTIVE) 194 | } else { 195 | button.classList.remove(ClassName.ACTIVE) 196 | } 197 | } 198 | }) 199 | 200 | /** 201 | * ------------------------------------------------------------------------ 202 | * jQuery 203 | * ------------------------------------------------------------------------ 204 | */ 205 | 206 | $.fn[NAME] = Button._jQueryInterface 207 | $.fn[NAME].Constructor = Button 208 | $.fn[NAME].noConflict = () => { 209 | $.fn[NAME] = JQUERY_NO_CONFLICT 210 | return Button._jQueryInterface 211 | } 212 | 213 | export default Button 214 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/index.js: -------------------------------------------------------------------------------- 1 | import Alert from './alert' 2 | import Button from './button' 3 | import Carousel from './carousel' 4 | import Collapse from './collapse' 5 | import Dropdown from './dropdown' 6 | import Modal from './modal' 7 | import Popover from './popover' 8 | import Scrollspy from './scrollspy' 9 | import Tab from './tab' 10 | import Toast from './toast' 11 | import Tooltip from './tooltip' 12 | import Util from './util' 13 | 14 | /** 15 | * -------------------------------------------------------------------------- 16 | * Bootstrap (v4.4.1): index.js 17 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 18 | * -------------------------------------------------------------------------- 19 | */ 20 | 21 | export { 22 | Util, 23 | Alert, 24 | Button, 25 | Carousel, 26 | Collapse, 27 | Dropdown, 28 | Modal, 29 | Popover, 30 | Scrollspy, 31 | Tab, 32 | Toast, 33 | Tooltip 34 | } 35 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/popover.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): popover.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import $ from 'jquery' 9 | import Tooltip from './tooltip' 10 | 11 | /** 12 | * ------------------------------------------------------------------------ 13 | * Constants 14 | * ------------------------------------------------------------------------ 15 | */ 16 | 17 | const NAME = 'popover' 18 | const VERSION = '4.4.1' 19 | const DATA_KEY = 'bs.popover' 20 | const EVENT_KEY = `.${DATA_KEY}` 21 | const JQUERY_NO_CONFLICT = $.fn[NAME] 22 | const CLASS_PREFIX = 'bs-popover' 23 | const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g') 24 | 25 | const Default = { 26 | ...Tooltip.Default, 27 | placement : 'right', 28 | trigger : 'click', 29 | content : '', 30 | template : '' 34 | } 35 | 36 | const DefaultType = { 37 | ...Tooltip.DefaultType, 38 | content : '(string|element|function)' 39 | } 40 | 41 | const ClassName = { 42 | FADE : 'fade', 43 | SHOW : 'show' 44 | } 45 | 46 | const Selector = { 47 | TITLE : '.popover-header', 48 | CONTENT : '.popover-body' 49 | } 50 | 51 | const Event = { 52 | HIDE : `hide${EVENT_KEY}`, 53 | HIDDEN : `hidden${EVENT_KEY}`, 54 | SHOW : `show${EVENT_KEY}`, 55 | SHOWN : `shown${EVENT_KEY}`, 56 | INSERTED : `inserted${EVENT_KEY}`, 57 | CLICK : `click${EVENT_KEY}`, 58 | FOCUSIN : `focusin${EVENT_KEY}`, 59 | FOCUSOUT : `focusout${EVENT_KEY}`, 60 | MOUSEENTER : `mouseenter${EVENT_KEY}`, 61 | MOUSELEAVE : `mouseleave${EVENT_KEY}` 62 | } 63 | 64 | /** 65 | * ------------------------------------------------------------------------ 66 | * Class Definition 67 | * ------------------------------------------------------------------------ 68 | */ 69 | 70 | class Popover extends Tooltip { 71 | // Getters 72 | 73 | static get VERSION() { 74 | return VERSION 75 | } 76 | 77 | static get Default() { 78 | return Default 79 | } 80 | 81 | static get NAME() { 82 | return NAME 83 | } 84 | 85 | static get DATA_KEY() { 86 | return DATA_KEY 87 | } 88 | 89 | static get Event() { 90 | return Event 91 | } 92 | 93 | static get EVENT_KEY() { 94 | return EVENT_KEY 95 | } 96 | 97 | static get DefaultType() { 98 | return DefaultType 99 | } 100 | 101 | // Overrides 102 | 103 | isWithContent() { 104 | return this.getTitle() || this._getContent() 105 | } 106 | 107 | addAttachmentClass(attachment) { 108 | $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`) 109 | } 110 | 111 | getTipElement() { 112 | this.tip = this.tip || $(this.config.template)[0] 113 | return this.tip 114 | } 115 | 116 | setContent() { 117 | const $tip = $(this.getTipElement()) 118 | 119 | // We use append for html objects to maintain js events 120 | this.setElementContent($tip.find(Selector.TITLE), this.getTitle()) 121 | let content = this._getContent() 122 | if (typeof content === 'function') { 123 | content = content.call(this.element) 124 | } 125 | this.setElementContent($tip.find(Selector.CONTENT), content) 126 | 127 | $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`) 128 | } 129 | 130 | // Private 131 | 132 | _getContent() { 133 | return this.element.getAttribute('data-content') || 134 | this.config.content 135 | } 136 | 137 | _cleanTipClass() { 138 | const $tip = $(this.getTipElement()) 139 | const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX) 140 | if (tabClass !== null && tabClass.length > 0) { 141 | $tip.removeClass(tabClass.join('')) 142 | } 143 | } 144 | 145 | // Static 146 | 147 | static _jQueryInterface(config) { 148 | return this.each(function () { 149 | let data = $(this).data(DATA_KEY) 150 | const _config = typeof config === 'object' ? config : null 151 | 152 | if (!data && /dispose|hide/.test(config)) { 153 | return 154 | } 155 | 156 | if (!data) { 157 | data = new Popover(this, _config) 158 | $(this).data(DATA_KEY, data) 159 | } 160 | 161 | if (typeof config === 'string') { 162 | if (typeof data[config] === 'undefined') { 163 | throw new TypeError(`No method named "${config}"`) 164 | } 165 | data[config]() 166 | } 167 | }) 168 | } 169 | } 170 | 171 | /** 172 | * ------------------------------------------------------------------------ 173 | * jQuery 174 | * ------------------------------------------------------------------------ 175 | */ 176 | 177 | $.fn[NAME] = Popover._jQueryInterface 178 | $.fn[NAME].Constructor = Popover 179 | $.fn[NAME].noConflict = () => { 180 | $.fn[NAME] = JQUERY_NO_CONFLICT 181 | return Popover._jQueryInterface 182 | } 183 | 184 | export default Popover 185 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/toast.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): toast.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import $ from 'jquery' 9 | import Util from './util' 10 | 11 | /** 12 | * ------------------------------------------------------------------------ 13 | * Constants 14 | * ------------------------------------------------------------------------ 15 | */ 16 | 17 | const NAME = 'toast' 18 | const VERSION = '4.4.1' 19 | const DATA_KEY = 'bs.toast' 20 | const EVENT_KEY = `.${DATA_KEY}` 21 | const JQUERY_NO_CONFLICT = $.fn[NAME] 22 | 23 | const Event = { 24 | CLICK_DISMISS : `click.dismiss${EVENT_KEY}`, 25 | HIDE : `hide${EVENT_KEY}`, 26 | HIDDEN : `hidden${EVENT_KEY}`, 27 | SHOW : `show${EVENT_KEY}`, 28 | SHOWN : `shown${EVENT_KEY}` 29 | } 30 | 31 | const ClassName = { 32 | FADE : 'fade', 33 | HIDE : 'hide', 34 | SHOW : 'show', 35 | SHOWING : 'showing' 36 | } 37 | 38 | const DefaultType = { 39 | animation : 'boolean', 40 | autohide : 'boolean', 41 | delay : 'number' 42 | } 43 | 44 | const Default = { 45 | animation : true, 46 | autohide : true, 47 | delay : 500 48 | } 49 | 50 | const Selector = { 51 | DATA_DISMISS : '[data-dismiss="toast"]' 52 | } 53 | 54 | /** 55 | * ------------------------------------------------------------------------ 56 | * Class Definition 57 | * ------------------------------------------------------------------------ 58 | */ 59 | 60 | class Toast { 61 | constructor(element, config) { 62 | this._element = element 63 | this._config = this._getConfig(config) 64 | this._timeout = null 65 | this._setListeners() 66 | } 67 | 68 | // Getters 69 | 70 | static get VERSION() { 71 | return VERSION 72 | } 73 | 74 | static get DefaultType() { 75 | return DefaultType 76 | } 77 | 78 | static get Default() { 79 | return Default 80 | } 81 | 82 | // Public 83 | 84 | show() { 85 | const showEvent = $.Event(Event.SHOW) 86 | 87 | $(this._element).trigger(showEvent) 88 | if (showEvent.isDefaultPrevented()) { 89 | return 90 | } 91 | 92 | if (this._config.animation) { 93 | this._element.classList.add(ClassName.FADE) 94 | } 95 | 96 | const complete = () => { 97 | this._element.classList.remove(ClassName.SHOWING) 98 | this._element.classList.add(ClassName.SHOW) 99 | 100 | $(this._element).trigger(Event.SHOWN) 101 | 102 | if (this._config.autohide) { 103 | this._timeout = setTimeout(() => { 104 | this.hide() 105 | }, this._config.delay) 106 | } 107 | } 108 | 109 | this._element.classList.remove(ClassName.HIDE) 110 | Util.reflow(this._element) 111 | this._element.classList.add(ClassName.SHOWING) 112 | if (this._config.animation) { 113 | const transitionDuration = Util.getTransitionDurationFromElement(this._element) 114 | 115 | $(this._element) 116 | .one(Util.TRANSITION_END, complete) 117 | .emulateTransitionEnd(transitionDuration) 118 | } else { 119 | complete() 120 | } 121 | } 122 | 123 | hide() { 124 | if (!this._element.classList.contains(ClassName.SHOW)) { 125 | return 126 | } 127 | 128 | const hideEvent = $.Event(Event.HIDE) 129 | 130 | $(this._element).trigger(hideEvent) 131 | if (hideEvent.isDefaultPrevented()) { 132 | return 133 | } 134 | 135 | this._close() 136 | } 137 | 138 | dispose() { 139 | clearTimeout(this._timeout) 140 | this._timeout = null 141 | 142 | if (this._element.classList.contains(ClassName.SHOW)) { 143 | this._element.classList.remove(ClassName.SHOW) 144 | } 145 | 146 | $(this._element).off(Event.CLICK_DISMISS) 147 | 148 | $.removeData(this._element, DATA_KEY) 149 | this._element = null 150 | this._config = null 151 | } 152 | 153 | // Private 154 | 155 | _getConfig(config) { 156 | config = { 157 | ...Default, 158 | ...$(this._element).data(), 159 | ...typeof config === 'object' && config ? config : {} 160 | } 161 | 162 | Util.typeCheckConfig( 163 | NAME, 164 | config, 165 | this.constructor.DefaultType 166 | ) 167 | 168 | return config 169 | } 170 | 171 | _setListeners() { 172 | $(this._element).on( 173 | Event.CLICK_DISMISS, 174 | Selector.DATA_DISMISS, 175 | () => this.hide() 176 | ) 177 | } 178 | 179 | _close() { 180 | const complete = () => { 181 | this._element.classList.add(ClassName.HIDE) 182 | $(this._element).trigger(Event.HIDDEN) 183 | } 184 | 185 | this._element.classList.remove(ClassName.SHOW) 186 | if (this._config.animation) { 187 | const transitionDuration = Util.getTransitionDurationFromElement(this._element) 188 | 189 | $(this._element) 190 | .one(Util.TRANSITION_END, complete) 191 | .emulateTransitionEnd(transitionDuration) 192 | } else { 193 | complete() 194 | } 195 | } 196 | 197 | // Static 198 | 199 | static _jQueryInterface(config) { 200 | return this.each(function () { 201 | const $element = $(this) 202 | let data = $element.data(DATA_KEY) 203 | const _config = typeof config === 'object' && config 204 | 205 | if (!data) { 206 | data = new Toast(this, _config) 207 | $element.data(DATA_KEY, data) 208 | } 209 | 210 | if (typeof config === 'string') { 211 | if (typeof data[config] === 'undefined') { 212 | throw new TypeError(`No method named "${config}"`) 213 | } 214 | 215 | data[config](this) 216 | } 217 | }) 218 | } 219 | } 220 | 221 | /** 222 | * ------------------------------------------------------------------------ 223 | * jQuery 224 | * ------------------------------------------------------------------------ 225 | */ 226 | 227 | $.fn[NAME] = Toast._jQueryInterface 228 | $.fn[NAME].Constructor = Toast 229 | $.fn[NAME].noConflict = () => { 230 | $.fn[NAME] = JQUERY_NO_CONFLICT 231 | return Toast._jQueryInterface 232 | } 233 | 234 | export default Toast 235 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/tools/sanitizer.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): tools/sanitizer.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | const uriAttrs = [ 9 | 'background', 10 | 'cite', 11 | 'href', 12 | 'itemtype', 13 | 'longdesc', 14 | 'poster', 15 | 'src', 16 | 'xlink:href' 17 | ] 18 | 19 | const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i 20 | 21 | export const DefaultWhitelist = { 22 | // Global attributes allowed on any supplied element below. 23 | '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN], 24 | a: ['target', 'href', 'title', 'rel'], 25 | area: [], 26 | b: [], 27 | br: [], 28 | col: [], 29 | code: [], 30 | div: [], 31 | em: [], 32 | hr: [], 33 | h1: [], 34 | h2: [], 35 | h3: [], 36 | h4: [], 37 | h5: [], 38 | h6: [], 39 | i: [], 40 | img: ['src', 'alt', 'title', 'width', 'height'], 41 | li: [], 42 | ol: [], 43 | p: [], 44 | pre: [], 45 | s: [], 46 | small: [], 47 | span: [], 48 | sub: [], 49 | sup: [], 50 | strong: [], 51 | u: [], 52 | ul: [] 53 | } 54 | 55 | /** 56 | * A pattern that recognizes a commonly useful subset of URLs that are safe. 57 | * 58 | * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts 59 | */ 60 | const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi 61 | 62 | /** 63 | * A pattern that matches safe data URLs. Only matches image, video and audio types. 64 | * 65 | * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts 66 | */ 67 | const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i 68 | 69 | function allowedAttribute(attr, allowedAttributeList) { 70 | const attrName = attr.nodeName.toLowerCase() 71 | 72 | if (allowedAttributeList.indexOf(attrName) !== -1) { 73 | if (uriAttrs.indexOf(attrName) !== -1) { 74 | return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN)) 75 | } 76 | 77 | return true 78 | } 79 | 80 | const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp) 81 | 82 | // Check if a regular expression validates the attribute. 83 | for (let i = 0, l = regExp.length; i < l; i++) { 84 | if (attrName.match(regExp[i])) { 85 | return true 86 | } 87 | } 88 | 89 | return false 90 | } 91 | 92 | export function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { 93 | if (unsafeHtml.length === 0) { 94 | return unsafeHtml 95 | } 96 | 97 | if (sanitizeFn && typeof sanitizeFn === 'function') { 98 | return sanitizeFn(unsafeHtml) 99 | } 100 | 101 | const domParser = new window.DOMParser() 102 | const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html') 103 | const whitelistKeys = Object.keys(whiteList) 104 | const elements = [].slice.call(createdDocument.body.querySelectorAll('*')) 105 | 106 | for (let i = 0, len = elements.length; i < len; i++) { 107 | const el = elements[i] 108 | const elName = el.nodeName.toLowerCase() 109 | 110 | if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) { 111 | el.parentNode.removeChild(el) 112 | 113 | continue 114 | } 115 | 116 | const attributeList = [].slice.call(el.attributes) 117 | const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []) 118 | 119 | attributeList.forEach((attr) => { 120 | if (!allowedAttribute(attr, whitelistedAttributes)) { 121 | el.removeAttribute(attr.nodeName) 122 | } 123 | }) 124 | } 125 | 126 | return createdDocument.body.innerHTML 127 | } 128 | -------------------------------------------------------------------------------- /node_modules/bootstrap/js/src/util.js: -------------------------------------------------------------------------------- 1 | /** 2 | * -------------------------------------------------------------------------- 3 | * Bootstrap (v4.4.1): util.js 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | * -------------------------------------------------------------------------- 6 | */ 7 | 8 | import $ from 'jquery' 9 | 10 | /** 11 | * ------------------------------------------------------------------------ 12 | * Private TransitionEnd Helpers 13 | * ------------------------------------------------------------------------ 14 | */ 15 | 16 | const TRANSITION_END = 'transitionend' 17 | const MAX_UID = 1000000 18 | const MILLISECONDS_MULTIPLIER = 1000 19 | 20 | // Shoutout AngusCroll (https://goo.gl/pxwQGp) 21 | function toType(obj) { 22 | return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase() 23 | } 24 | 25 | function getSpecialTransitionEndEvent() { 26 | return { 27 | bindType: TRANSITION_END, 28 | delegateType: TRANSITION_END, 29 | handle(event) { 30 | if ($(event.target).is(this)) { 31 | return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params 32 | } 33 | return undefined // eslint-disable-line no-undefined 34 | } 35 | } 36 | } 37 | 38 | function transitionEndEmulator(duration) { 39 | let called = false 40 | 41 | $(this).one(Util.TRANSITION_END, () => { 42 | called = true 43 | }) 44 | 45 | setTimeout(() => { 46 | if (!called) { 47 | Util.triggerTransitionEnd(this) 48 | } 49 | }, duration) 50 | 51 | return this 52 | } 53 | 54 | function setTransitionEndSupport() { 55 | $.fn.emulateTransitionEnd = transitionEndEmulator 56 | $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent() 57 | } 58 | 59 | /** 60 | * -------------------------------------------------------------------------- 61 | * Public Util Api 62 | * -------------------------------------------------------------------------- 63 | */ 64 | 65 | const Util = { 66 | 67 | TRANSITION_END: 'bsTransitionEnd', 68 | 69 | getUID(prefix) { 70 | do { 71 | // eslint-disable-next-line no-bitwise 72 | prefix += ~~(Math.random() * MAX_UID) // "~~" acts like a faster Math.floor() here 73 | } while (document.getElementById(prefix)) 74 | return prefix 75 | }, 76 | 77 | getSelectorFromElement(element) { 78 | let selector = element.getAttribute('data-target') 79 | 80 | if (!selector || selector === '#') { 81 | const hrefAttr = element.getAttribute('href') 82 | selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '' 83 | } 84 | 85 | try { 86 | return document.querySelector(selector) ? selector : null 87 | } catch (err) { 88 | return null 89 | } 90 | }, 91 | 92 | getTransitionDurationFromElement(element) { 93 | if (!element) { 94 | return 0 95 | } 96 | 97 | // Get transition-duration of the element 98 | let transitionDuration = $(element).css('transition-duration') 99 | let transitionDelay = $(element).css('transition-delay') 100 | 101 | const floatTransitionDuration = parseFloat(transitionDuration) 102 | const floatTransitionDelay = parseFloat(transitionDelay) 103 | 104 | // Return 0 if element or transition duration is not found 105 | if (!floatTransitionDuration && !floatTransitionDelay) { 106 | return 0 107 | } 108 | 109 | // If multiple durations are defined, take the first 110 | transitionDuration = transitionDuration.split(',')[0] 111 | transitionDelay = transitionDelay.split(',')[0] 112 | 113 | return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER 114 | }, 115 | 116 | reflow(element) { 117 | return element.offsetHeight 118 | }, 119 | 120 | triggerTransitionEnd(element) { 121 | $(element).trigger(TRANSITION_END) 122 | }, 123 | 124 | // TODO: Remove in v5 125 | supportsTransitionEnd() { 126 | return Boolean(TRANSITION_END) 127 | }, 128 | 129 | isElement(obj) { 130 | return (obj[0] || obj).nodeType 131 | }, 132 | 133 | typeCheckConfig(componentName, config, configTypes) { 134 | for (const property in configTypes) { 135 | if (Object.prototype.hasOwnProperty.call(configTypes, property)) { 136 | const expectedTypes = configTypes[property] 137 | const value = config[property] 138 | const valueType = value && Util.isElement(value) 139 | ? 'element' : toType(value) 140 | 141 | if (!new RegExp(expectedTypes).test(valueType)) { 142 | throw new Error( 143 | `${componentName.toUpperCase()}: ` + 144 | `Option "${property}" provided type "${valueType}" ` + 145 | `but expected type "${expectedTypes}".`) 146 | } 147 | } 148 | } 149 | }, 150 | 151 | findShadowRoot(element) { 152 | if (!document.documentElement.attachShadow) { 153 | return null 154 | } 155 | 156 | // Can find the shadow root otherwise it'll return the document 157 | if (typeof element.getRootNode === 'function') { 158 | const root = element.getRootNode() 159 | return root instanceof ShadowRoot ? root : null 160 | } 161 | 162 | if (element instanceof ShadowRoot) { 163 | return element 164 | } 165 | 166 | // when we don't find a shadow root 167 | if (!element.parentNode) { 168 | return null 169 | } 170 | 171 | return Util.findShadowRoot(element.parentNode) 172 | }, 173 | 174 | jQueryDetection() { 175 | if (typeof $ === 'undefined') { 176 | throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.') 177 | } 178 | 179 | const version = $.fn.jquery.split(' ')[0].split('.') 180 | const minMajor = 1 181 | const ltMajor = 2 182 | const minMinor = 9 183 | const minPatch = 1 184 | const maxMajor = 4 185 | 186 | if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) { 187 | throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0') 188 | } 189 | } 190 | } 191 | 192 | Util.jQueryDetection() 193 | setTransitionEndSupport() 194 | 195 | export default Util 196 | -------------------------------------------------------------------------------- /node_modules/bootstrap/scss/_alert.scss: -------------------------------------------------------------------------------- 1 | // 2 | // Base styles 3 | // 4 | 5 | .alert { 6 | position: relative; 7 | padding: $alert-padding-y $alert-padding-x; 8 | margin-bottom: $alert-margin-bottom; 9 | border: $alert-border-width solid transparent; 10 | @include border-radius($alert-border-radius); 11 | } 12 | 13 | // Headings for larger alerts 14 | .alert-heading { 15 | // Specified to prevent conflicts of changing $headings-color 16 | color: inherit; 17 | } 18 | 19 | // Provide class for links that match alerts 20 | .alert-link { 21 | font-weight: $alert-link-font-weight; 22 | } 23 | 24 | 25 | // Dismissible alerts 26 | // 27 | // Expand the right padding and account for the close button's positioning. 28 | 29 | .alert-dismissible { 30 | padding-right: $close-font-size + $alert-padding-x * 2; 31 | 32 | // Adjust close link position 33 | .close { 34 | position: absolute; 35 | top: 0; 36 | right: 0; 37 | padding: $alert-padding-y $alert-padding-x; 38 | color: inherit; 39 | } 40 | } 41 | 42 | 43 | // Alternate styles 44 | // 45 | // Generate contextual modifier classes for colorizing the alert. 46 | 47 | @each $color, $value in $theme-colors { 48 | .alert-#{$color} { 49 | @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level)); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /node_modules/bootstrap/scss/_badge.scss: -------------------------------------------------------------------------------- 1 | // Base class 2 | // 3 | // Requires one of the contextual, color modifier classes for `color` and 4 | // `background-color`. 5 | 6 | .badge { 7 | display: inline-block; 8 | padding: $badge-padding-y $badge-padding-x; 9 | @include font-size($badge-font-size); 10 | font-weight: $badge-font-weight; 11 | line-height: 1; 12 | text-align: center; 13 | white-space: nowrap; 14 | vertical-align: baseline; 15 | @include border-radius($badge-border-radius); 16 | @include transition($badge-transition); 17 | 18 | @at-root a#{&} { 19 | @include hover-focus() { 20 | text-decoration: none; 21 | } 22 | } 23 | 24 | // Empty badges collapse automatically 25 | &:empty { 26 | display: none; 27 | } 28 | } 29 | 30 | // Quick fix for badges in buttons 31 | .btn .badge { 32 | position: relative; 33 | top: -1px; 34 | } 35 | 36 | // Pill badges 37 | // 38 | // Make them extra rounded with a modifier to replace v3's badges. 39 | 40 | .badge-pill { 41 | padding-right: $badge-pill-padding-x; 42 | padding-left: $badge-pill-padding-x; 43 | @include border-radius($badge-pill-border-radius); 44 | } 45 | 46 | // Colors 47 | // 48 | // Contextual variations (linked badges get darker on :hover). 49 | 50 | @each $color, $value in $theme-colors { 51 | .badge-#{$color} { 52 | @include badge-variant($value); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /node_modules/bootstrap/scss/_breadcrumb.scss: -------------------------------------------------------------------------------- 1 | .breadcrumb { 2 | display: flex; 3 | flex-wrap: wrap; 4 | padding: $breadcrumb-padding-y $breadcrumb-padding-x; 5 | margin-bottom: $breadcrumb-margin-bottom; 6 | @include font-size($breadcrumb-font-size); 7 | list-style: none; 8 | background-color: $breadcrumb-bg; 9 | @include border-radius($breadcrumb-border-radius); 10 | } 11 | 12 | .breadcrumb-item { 13 | // The separator between breadcrumbs (by default, a forward-slash: "/") 14 | + .breadcrumb-item { 15 | padding-left: $breadcrumb-item-padding; 16 | 17 | &::before { 18 | display: inline-block; // Suppress underlining of the separator in modern browsers 19 | padding-right: $breadcrumb-item-padding; 20 | color: $breadcrumb-divider-color; 21 | content: escape-svg($breadcrumb-divider); 22 | } 23 | } 24 | 25 | // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built 26 | // without `