├── .gitignore ├── LICENSE ├── README.md ├── config.js ├── package.json ├── src ├── api │ └── user.js ├── app.vue ├── assets │ ├── css │ │ ├── animate.css │ │ ├── bootstrap.css │ │ ├── font-awesome.css │ │ └── style.css │ ├── fonts │ │ ├── FontAwesome.otf │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── fontawesome-webfont.woff2 │ │ ├── glyphicons-halflings-regular.eot │ │ ├── glyphicons-halflings-regular.svg │ │ ├── glyphicons-halflings-regular.ttf │ │ ├── glyphicons-halflings-regular.woff │ │ └── glyphicons-halflings-regular.woff2 │ ├── img │ │ ├── avatar_large.jpg │ │ └── logo.png │ └── js │ │ ├── bootstrap.js │ │ └── plugins │ │ ├── datapicker │ │ ├── bootstrap-datepicker.js │ │ ├── datepicker3.css │ │ └── time.js │ │ ├── summernote │ │ ├── summernote-bs3.css │ │ ├── summernote.css │ │ └── summernote.js │ │ └── sweetalert │ │ ├── sweetalert-dev.js │ │ ├── sweetalert.css │ │ ├── sweetalert.min.js │ │ └── themes │ │ ├── bootstrap │ │ ├── bootstrap.css │ │ └── bootstrap.scss │ │ ├── facebook │ │ ├── facebook.css │ │ └── facebook.scss │ │ ├── google │ │ ├── google.css │ │ └── google.scss │ │ └── twitter │ │ ├── twitter.css │ │ └── twitter.scss ├── components │ ├── .gitkeep │ ├── base │ │ ├── bread-crumb.vue │ │ ├── loading.vue │ │ ├── modal.vue │ │ └── pagination.vue │ ├── editor.vue │ └── registerComponent.js ├── directives │ ├── .gitkeep │ ├── base │ │ ├── collapseMenu.js │ │ └── datepicker.js │ └── registerDirective.js ├── index.html ├── interceptors │ ├── .gitkeep │ └── auth_interceptor.js ├── lib │ ├── .gitkeep │ ├── auth.js │ └── utils.js ├── main.js ├── mixins │ ├── .gitkeep │ └── auth.js ├── plugins │ ├── .gitkeep │ └── sweetalert.js ├── routes.js ├── scss │ └── custom.scss └── views │ ├── dashboard.vue │ ├── layout.vue │ ├── login.vue │ ├── partial │ ├── bottom.vue │ ├── sidebar.vue │ └── top.vue │ └── user │ └── index.vue └── webpack.config.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist 3 | npm-debug.log -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013-2016 Noop 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-admin-template 2 | 3 | > 基于vue@1.x,INSPINIA+ Admin Theme,Bootstrap v3.3.4的后台模板 4 | 5 | ## 安装 6 | 7 | npm install 8 | 9 | ## 开发 10 | 11 | npm run dev 12 | 13 | ## 部署 14 | 15 | 更换后台api,复制生成的文件到服务器 16 | 17 | // 生成到dist 18 | npm run build 19 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | 3 | var config = { 4 | debug: false, 5 | srcPath: path.resolve(__dirname, 'src'), 6 | apiDomain: 'http://115.28.223.2:9000/' 7 | } 8 | 9 | module.exports = config; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vue-admin-template", 3 | "version": "1.0.0", 4 | "description": "基于vue@1.x,INSPINIA+ Admin Theme,Bootstrap v3.3.4的后台模板", 5 | "scripts": { 6 | "dev": "cross-env NODE_ENV=development webpack-dev-server --inline --colors --hot --port 8080", 7 | "build" : "webpack", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "noop", 11 | "license": "MIT", 12 | "devDependencies": { 13 | "babel-core": "^6.14.0", 14 | "babel-loader": "^6.0.0", 15 | "babel-plugin-transform-runtime": "^6.0.0", 16 | "babel-preset-es2015": "^6.0.0", 17 | "babel-runtime": "^6.0.0", 18 | "cross-env": "^3.1.3", 19 | "css-loader": "^0.25.0", 20 | "extract-text-webpack-plugin": "^1.0.1", 21 | "file-loader": "^0.9.0", 22 | "html-webpack-plugin": "^2.22.0", 23 | "jquery": "^3.1.1", 24 | "node-sass": "^3.10.1", 25 | "sass-loader": "^4.0.2", 26 | "style-loader": "^0.13.1", 27 | "url-loader": "^0.5.7", 28 | "vue": "^1.0.26", 29 | "vue-hot-reload-api": "^1.3.3", 30 | "vue-html-loader": "^1.2.3", 31 | "vue-loader": "^8.2.1", 32 | "vue-resource": "^1.0.3", 33 | "vue-router": "^0.7.13", 34 | "vue-style-loader": "^1.0.0", 35 | "webpack": "^1.12.2", 36 | "webpack-dev-server": "^1.12.0" 37 | }, 38 | "repository": { 39 | "type": "git", 40 | "url": "https://github.com/liukaijv/vue-admin-template.git" 41 | } 42 | } -------------------------------------------------------------------------------- /src/api/user.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/api/user.js -------------------------------------------------------------------------------- /src/app.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 30 | 31 | -------------------------------------------------------------------------------- /src/assets/css/font-awesome.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | /* FONT PATH 6 | * -------------------------- */ 7 | @font-face { 8 | font-family: 'FontAwesome'; 9 | src: url('../fonts/fontawesome-webfont.eot?v=4.3.0'); 10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); 11 | font-weight: normal; 12 | font-style: normal; 13 | } 14 | .fa { 15 | display: inline-block; 16 | font: normal normal normal 14px/1 FontAwesome; 17 | font-size: inherit; 18 | text-rendering: auto; 19 | -webkit-font-smoothing: antialiased; 20 | -moz-osx-font-smoothing: grayscale; 21 | transform: translate(0, 0); 22 | } 23 | /* makes the font 33% larger relative to the icon container */ 24 | .fa-lg { 25 | font-size: 1.33333333em; 26 | line-height: 0.75em; 27 | vertical-align: -15%; 28 | } 29 | .fa-2x { 30 | font-size: 2em; 31 | } 32 | .fa-3x { 33 | font-size: 3em; 34 | } 35 | .fa-4x { 36 | font-size: 4em; 37 | } 38 | .fa-5x { 39 | font-size: 5em; 40 | } 41 | .fa-fw { 42 | width: 1.28571429em; 43 | text-align: center; 44 | } 45 | .fa-ul { 46 | padding-left: 0; 47 | margin-left: 2.14285714em; 48 | list-style-type: none; 49 | } 50 | .fa-ul > li { 51 | position: relative; 52 | } 53 | .fa-li { 54 | position: absolute; 55 | left: -2.14285714em; 56 | width: 2.14285714em; 57 | top: 0.14285714em; 58 | text-align: center; 59 | } 60 | .fa-li.fa-lg { 61 | left: -1.85714286em; 62 | } 63 | .fa-border { 64 | padding: .2em .25em .15em; 65 | border: solid 0.08em #eeeeee; 66 | border-radius: .1em; 67 | } 68 | .pull-right { 69 | float: right; 70 | } 71 | .pull-left { 72 | float: left; 73 | } 74 | .fa.pull-left { 75 | margin-right: .3em; 76 | } 77 | .fa.pull-right { 78 | margin-left: .3em; 79 | } 80 | .fa-spin { 81 | -webkit-animation: fa-spin 2s infinite linear; 82 | animation: fa-spin 2s infinite linear; 83 | } 84 | .fa-pulse { 85 | -webkit-animation: fa-spin 1s infinite steps(8); 86 | animation: fa-spin 1s infinite steps(8); 87 | } 88 | @-webkit-keyframes fa-spin { 89 | 0% { 90 | -webkit-transform: rotate(0deg); 91 | transform: rotate(0deg); 92 | } 93 | 100% { 94 | -webkit-transform: rotate(359deg); 95 | transform: rotate(359deg); 96 | } 97 | } 98 | @keyframes fa-spin { 99 | 0% { 100 | -webkit-transform: rotate(0deg); 101 | transform: rotate(0deg); 102 | } 103 | 100% { 104 | -webkit-transform: rotate(359deg); 105 | transform: rotate(359deg); 106 | } 107 | } 108 | .fa-rotate-90 { 109 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); 110 | -webkit-transform: rotate(90deg); 111 | -ms-transform: rotate(90deg); 112 | transform: rotate(90deg); 113 | } 114 | .fa-rotate-180 { 115 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); 116 | -webkit-transform: rotate(180deg); 117 | -ms-transform: rotate(180deg); 118 | transform: rotate(180deg); 119 | } 120 | .fa-rotate-270 { 121 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); 122 | -webkit-transform: rotate(270deg); 123 | -ms-transform: rotate(270deg); 124 | transform: rotate(270deg); 125 | } 126 | .fa-flip-horizontal { 127 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); 128 | -webkit-transform: scale(-1, 1); 129 | -ms-transform: scale(-1, 1); 130 | transform: scale(-1, 1); 131 | } 132 | .fa-flip-vertical { 133 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); 134 | -webkit-transform: scale(1, -1); 135 | -ms-transform: scale(1, -1); 136 | transform: scale(1, -1); 137 | } 138 | :root .fa-rotate-90, 139 | :root .fa-rotate-180, 140 | :root .fa-rotate-270, 141 | :root .fa-flip-horizontal, 142 | :root .fa-flip-vertical { 143 | filter: none; 144 | } 145 | .fa-stack { 146 | position: relative; 147 | display: inline-block; 148 | width: 2em; 149 | height: 2em; 150 | line-height: 2em; 151 | vertical-align: middle; 152 | } 153 | .fa-stack-1x, 154 | .fa-stack-2x { 155 | position: absolute; 156 | left: 0; 157 | width: 100%; 158 | text-align: center; 159 | } 160 | .fa-stack-1x { 161 | line-height: inherit; 162 | } 163 | .fa-stack-2x { 164 | font-size: 2em; 165 | } 166 | .fa-inverse { 167 | color: #ffffff; 168 | } 169 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen 170 | readers do not read off random characters that represent icons */ 171 | .fa-glass:before { 172 | content: "\f000"; 173 | } 174 | .fa-music:before { 175 | content: "\f001"; 176 | } 177 | .fa-search:before { 178 | content: "\f002"; 179 | } 180 | .fa-envelope-o:before { 181 | content: "\f003"; 182 | } 183 | .fa-heart:before { 184 | content: "\f004"; 185 | } 186 | .fa-star:before { 187 | content: "\f005"; 188 | } 189 | .fa-star-o:before { 190 | content: "\f006"; 191 | } 192 | .fa-user:before { 193 | content: "\f007"; 194 | } 195 | .fa-film:before { 196 | content: "\f008"; 197 | } 198 | .fa-th-large:before { 199 | content: "\f009"; 200 | } 201 | .fa-th:before { 202 | content: "\f00a"; 203 | } 204 | .fa-th-list:before { 205 | content: "\f00b"; 206 | } 207 | .fa-check:before { 208 | content: "\f00c"; 209 | } 210 | .fa-remove:before, 211 | .fa-close:before, 212 | .fa-times:before { 213 | content: "\f00d"; 214 | } 215 | .fa-search-plus:before { 216 | content: "\f00e"; 217 | } 218 | .fa-search-minus:before { 219 | content: "\f010"; 220 | } 221 | .fa-power-off:before { 222 | content: "\f011"; 223 | } 224 | .fa-signal:before { 225 | content: "\f012"; 226 | } 227 | .fa-gear:before, 228 | .fa-cog:before { 229 | content: "\f013"; 230 | } 231 | .fa-trash-o:before { 232 | content: "\f014"; 233 | } 234 | .fa-home:before { 235 | content: "\f015"; 236 | } 237 | .fa-file-o:before { 238 | content: "\f016"; 239 | } 240 | .fa-clock-o:before { 241 | content: "\f017"; 242 | } 243 | .fa-road:before { 244 | content: "\f018"; 245 | } 246 | .fa-download:before { 247 | content: "\f019"; 248 | } 249 | .fa-arrow-circle-o-down:before { 250 | content: "\f01a"; 251 | } 252 | .fa-arrow-circle-o-up:before { 253 | content: "\f01b"; 254 | } 255 | .fa-inbox:before { 256 | content: "\f01c"; 257 | } 258 | .fa-play-circle-o:before { 259 | content: "\f01d"; 260 | } 261 | .fa-rotate-right:before, 262 | .fa-repeat:before { 263 | content: "\f01e"; 264 | } 265 | .fa-refresh:before { 266 | content: "\f021"; 267 | } 268 | .fa-list-alt:before { 269 | content: "\f022"; 270 | } 271 | .fa-lock:before { 272 | content: "\f023"; 273 | } 274 | .fa-flag:before { 275 | content: "\f024"; 276 | } 277 | .fa-headphones:before { 278 | content: "\f025"; 279 | } 280 | .fa-volume-off:before { 281 | content: "\f026"; 282 | } 283 | .fa-volume-down:before { 284 | content: "\f027"; 285 | } 286 | .fa-volume-up:before { 287 | content: "\f028"; 288 | } 289 | .fa-qrcode:before { 290 | content: "\f029"; 291 | } 292 | .fa-barcode:before { 293 | content: "\f02a"; 294 | } 295 | .fa-tag:before { 296 | content: "\f02b"; 297 | } 298 | .fa-tags:before { 299 | content: "\f02c"; 300 | } 301 | .fa-book:before { 302 | content: "\f02d"; 303 | } 304 | .fa-bookmark:before { 305 | content: "\f02e"; 306 | } 307 | .fa-print:before { 308 | content: "\f02f"; 309 | } 310 | .fa-camera:before { 311 | content: "\f030"; 312 | } 313 | .fa-font:before { 314 | content: "\f031"; 315 | } 316 | .fa-bold:before { 317 | content: "\f032"; 318 | } 319 | .fa-italic:before { 320 | content: "\f033"; 321 | } 322 | .fa-text-height:before { 323 | content: "\f034"; 324 | } 325 | .fa-text-width:before { 326 | content: "\f035"; 327 | } 328 | .fa-align-left:before { 329 | content: "\f036"; 330 | } 331 | .fa-align-center:before { 332 | content: "\f037"; 333 | } 334 | .fa-align-right:before { 335 | content: "\f038"; 336 | } 337 | .fa-align-justify:before { 338 | content: "\f039"; 339 | } 340 | .fa-list:before { 341 | content: "\f03a"; 342 | } 343 | .fa-dedent:before, 344 | .fa-outdent:before { 345 | content: "\f03b"; 346 | } 347 | .fa-indent:before { 348 | content: "\f03c"; 349 | } 350 | .fa-video-camera:before { 351 | content: "\f03d"; 352 | } 353 | .fa-photo:before, 354 | .fa-image:before, 355 | .fa-picture-o:before { 356 | content: "\f03e"; 357 | } 358 | .fa-pencil:before { 359 | content: "\f040"; 360 | } 361 | .fa-map-marker:before { 362 | content: "\f041"; 363 | } 364 | .fa-adjust:before { 365 | content: "\f042"; 366 | } 367 | .fa-tint:before { 368 | content: "\f043"; 369 | } 370 | .fa-edit:before, 371 | .fa-pencil-square-o:before { 372 | content: "\f044"; 373 | } 374 | .fa-share-square-o:before { 375 | content: "\f045"; 376 | } 377 | .fa-check-square-o:before { 378 | content: "\f046"; 379 | } 380 | .fa-arrows:before { 381 | content: "\f047"; 382 | } 383 | .fa-step-backward:before { 384 | content: "\f048"; 385 | } 386 | .fa-fast-backward:before { 387 | content: "\f049"; 388 | } 389 | .fa-backward:before { 390 | content: "\f04a"; 391 | } 392 | .fa-play:before { 393 | content: "\f04b"; 394 | } 395 | .fa-pause:before { 396 | content: "\f04c"; 397 | } 398 | .fa-stop:before { 399 | content: "\f04d"; 400 | } 401 | .fa-forward:before { 402 | content: "\f04e"; 403 | } 404 | .fa-fast-forward:before { 405 | content: "\f050"; 406 | } 407 | .fa-step-forward:before { 408 | content: "\f051"; 409 | } 410 | .fa-eject:before { 411 | content: "\f052"; 412 | } 413 | .fa-chevron-left:before { 414 | content: "\f053"; 415 | } 416 | .fa-chevron-right:before { 417 | content: "\f054"; 418 | } 419 | .fa-plus-circle:before { 420 | content: "\f055"; 421 | } 422 | .fa-minus-circle:before { 423 | content: "\f056"; 424 | } 425 | .fa-times-circle:before { 426 | content: "\f057"; 427 | } 428 | .fa-check-circle:before { 429 | content: "\f058"; 430 | } 431 | .fa-question-circle:before { 432 | content: "\f059"; 433 | } 434 | .fa-info-circle:before { 435 | content: "\f05a"; 436 | } 437 | .fa-crosshairs:before { 438 | content: "\f05b"; 439 | } 440 | .fa-times-circle-o:before { 441 | content: "\f05c"; 442 | } 443 | .fa-check-circle-o:before { 444 | content: "\f05d"; 445 | } 446 | .fa-ban:before { 447 | content: "\f05e"; 448 | } 449 | .fa-arrow-left:before { 450 | content: "\f060"; 451 | } 452 | .fa-arrow-right:before { 453 | content: "\f061"; 454 | } 455 | .fa-arrow-up:before { 456 | content: "\f062"; 457 | } 458 | .fa-arrow-down:before { 459 | content: "\f063"; 460 | } 461 | .fa-mail-forward:before, 462 | .fa-share:before { 463 | content: "\f064"; 464 | } 465 | .fa-expand:before { 466 | content: "\f065"; 467 | } 468 | .fa-compress:before { 469 | content: "\f066"; 470 | } 471 | .fa-plus:before { 472 | content: "\f067"; 473 | } 474 | .fa-minus:before { 475 | content: "\f068"; 476 | } 477 | .fa-asterisk:before { 478 | content: "\f069"; 479 | } 480 | .fa-exclamation-circle:before { 481 | content: "\f06a"; 482 | } 483 | .fa-gift:before { 484 | content: "\f06b"; 485 | } 486 | .fa-leaf:before { 487 | content: "\f06c"; 488 | } 489 | .fa-fire:before { 490 | content: "\f06d"; 491 | } 492 | .fa-eye:before { 493 | content: "\f06e"; 494 | } 495 | .fa-eye-slash:before { 496 | content: "\f070"; 497 | } 498 | .fa-warning:before, 499 | .fa-exclamation-triangle:before { 500 | content: "\f071"; 501 | } 502 | .fa-plane:before { 503 | content: "\f072"; 504 | } 505 | .fa-calendar:before { 506 | content: "\f073"; 507 | } 508 | .fa-random:before { 509 | content: "\f074"; 510 | } 511 | .fa-comment:before { 512 | content: "\f075"; 513 | } 514 | .fa-magnet:before { 515 | content: "\f076"; 516 | } 517 | .fa-chevron-up:before { 518 | content: "\f077"; 519 | } 520 | .fa-chevron-down:before { 521 | content: "\f078"; 522 | } 523 | .fa-retweet:before { 524 | content: "\f079"; 525 | } 526 | .fa-shopping-cart:before { 527 | content: "\f07a"; 528 | } 529 | .fa-folder:before { 530 | content: "\f07b"; 531 | } 532 | .fa-folder-open:before { 533 | content: "\f07c"; 534 | } 535 | .fa-arrows-v:before { 536 | content: "\f07d"; 537 | } 538 | .fa-arrows-h:before { 539 | content: "\f07e"; 540 | } 541 | .fa-bar-chart-o:before, 542 | .fa-bar-chart:before { 543 | content: "\f080"; 544 | } 545 | .fa-twitter-square:before { 546 | content: "\f081"; 547 | } 548 | .fa-facebook-square:before { 549 | content: "\f082"; 550 | } 551 | .fa-camera-retro:before { 552 | content: "\f083"; 553 | } 554 | .fa-key:before { 555 | content: "\f084"; 556 | } 557 | .fa-gears:before, 558 | .fa-cogs:before { 559 | content: "\f085"; 560 | } 561 | .fa-comments:before { 562 | content: "\f086"; 563 | } 564 | .fa-thumbs-o-up:before { 565 | content: "\f087"; 566 | } 567 | .fa-thumbs-o-down:before { 568 | content: "\f088"; 569 | } 570 | .fa-star-half:before { 571 | content: "\f089"; 572 | } 573 | .fa-heart-o:before { 574 | content: "\f08a"; 575 | } 576 | .fa-sign-out:before { 577 | content: "\f08b"; 578 | } 579 | .fa-linkedin-square:before { 580 | content: "\f08c"; 581 | } 582 | .fa-thumb-tack:before { 583 | content: "\f08d"; 584 | } 585 | .fa-external-link:before { 586 | content: "\f08e"; 587 | } 588 | .fa-sign-in:before { 589 | content: "\f090"; 590 | } 591 | .fa-trophy:before { 592 | content: "\f091"; 593 | } 594 | .fa-github-square:before { 595 | content: "\f092"; 596 | } 597 | .fa-upload:before { 598 | content: "\f093"; 599 | } 600 | .fa-lemon-o:before { 601 | content: "\f094"; 602 | } 603 | .fa-phone:before { 604 | content: "\f095"; 605 | } 606 | .fa-square-o:before { 607 | content: "\f096"; 608 | } 609 | .fa-bookmark-o:before { 610 | content: "\f097"; 611 | } 612 | .fa-phone-square:before { 613 | content: "\f098"; 614 | } 615 | .fa-twitter:before { 616 | content: "\f099"; 617 | } 618 | .fa-facebook-f:before, 619 | .fa-facebook:before { 620 | content: "\f09a"; 621 | } 622 | .fa-github:before { 623 | content: "\f09b"; 624 | } 625 | .fa-unlock:before { 626 | content: "\f09c"; 627 | } 628 | .fa-credit-card:before { 629 | content: "\f09d"; 630 | } 631 | .fa-rss:before { 632 | content: "\f09e"; 633 | } 634 | .fa-hdd-o:before { 635 | content: "\f0a0"; 636 | } 637 | .fa-bullhorn:before { 638 | content: "\f0a1"; 639 | } 640 | .fa-bell:before { 641 | content: "\f0f3"; 642 | } 643 | .fa-certificate:before { 644 | content: "\f0a3"; 645 | } 646 | .fa-hand-o-right:before { 647 | content: "\f0a4"; 648 | } 649 | .fa-hand-o-left:before { 650 | content: "\f0a5"; 651 | } 652 | .fa-hand-o-up:before { 653 | content: "\f0a6"; 654 | } 655 | .fa-hand-o-down:before { 656 | content: "\f0a7"; 657 | } 658 | .fa-arrow-circle-left:before { 659 | content: "\f0a8"; 660 | } 661 | .fa-arrow-circle-right:before { 662 | content: "\f0a9"; 663 | } 664 | .fa-arrow-circle-up:before { 665 | content: "\f0aa"; 666 | } 667 | .fa-arrow-circle-down:before { 668 | content: "\f0ab"; 669 | } 670 | .fa-globe:before { 671 | content: "\f0ac"; 672 | } 673 | .fa-wrench:before { 674 | content: "\f0ad"; 675 | } 676 | .fa-tasks:before { 677 | content: "\f0ae"; 678 | } 679 | .fa-filter:before { 680 | content: "\f0b0"; 681 | } 682 | .fa-briefcase:before { 683 | content: "\f0b1"; 684 | } 685 | .fa-arrows-alt:before { 686 | content: "\f0b2"; 687 | } 688 | .fa-group:before, 689 | .fa-users:before { 690 | content: "\f0c0"; 691 | } 692 | .fa-chain:before, 693 | .fa-link:before { 694 | content: "\f0c1"; 695 | } 696 | .fa-cloud:before { 697 | content: "\f0c2"; 698 | } 699 | .fa-flask:before { 700 | content: "\f0c3"; 701 | } 702 | .fa-cut:before, 703 | .fa-scissors:before { 704 | content: "\f0c4"; 705 | } 706 | .fa-copy:before, 707 | .fa-files-o:before { 708 | content: "\f0c5"; 709 | } 710 | .fa-paperclip:before { 711 | content: "\f0c6"; 712 | } 713 | .fa-save:before, 714 | .fa-floppy-o:before { 715 | content: "\f0c7"; 716 | } 717 | .fa-square:before { 718 | content: "\f0c8"; 719 | } 720 | .fa-navicon:before, 721 | .fa-reorder:before, 722 | .fa-bars:before { 723 | content: "\f0c9"; 724 | } 725 | .fa-list-ul:before { 726 | content: "\f0ca"; 727 | } 728 | .fa-list-ol:before { 729 | content: "\f0cb"; 730 | } 731 | .fa-strikethrough:before { 732 | content: "\f0cc"; 733 | } 734 | .fa-underline:before { 735 | content: "\f0cd"; 736 | } 737 | .fa-table:before { 738 | content: "\f0ce"; 739 | } 740 | .fa-magic:before { 741 | content: "\f0d0"; 742 | } 743 | .fa-truck:before { 744 | content: "\f0d1"; 745 | } 746 | .fa-pinterest:before { 747 | content: "\f0d2"; 748 | } 749 | .fa-pinterest-square:before { 750 | content: "\f0d3"; 751 | } 752 | .fa-google-plus-square:before { 753 | content: "\f0d4"; 754 | } 755 | .fa-google-plus:before { 756 | content: "\f0d5"; 757 | } 758 | .fa-money:before { 759 | content: "\f0d6"; 760 | } 761 | .fa-caret-down:before { 762 | content: "\f0d7"; 763 | } 764 | .fa-caret-up:before { 765 | content: "\f0d8"; 766 | } 767 | .fa-caret-left:before { 768 | content: "\f0d9"; 769 | } 770 | .fa-caret-right:before { 771 | content: "\f0da"; 772 | } 773 | .fa-columns:before { 774 | content: "\f0db"; 775 | } 776 | .fa-unsorted:before, 777 | .fa-sort:before { 778 | content: "\f0dc"; 779 | } 780 | .fa-sort-down:before, 781 | .fa-sort-desc:before { 782 | content: "\f0dd"; 783 | } 784 | .fa-sort-up:before, 785 | .fa-sort-asc:before { 786 | content: "\f0de"; 787 | } 788 | .fa-envelope:before { 789 | content: "\f0e0"; 790 | } 791 | .fa-linkedin:before { 792 | content: "\f0e1"; 793 | } 794 | .fa-rotate-left:before, 795 | .fa-undo:before { 796 | content: "\f0e2"; 797 | } 798 | .fa-legal:before, 799 | .fa-gavel:before { 800 | content: "\f0e3"; 801 | } 802 | .fa-dashboard:before, 803 | .fa-tachometer:before { 804 | content: "\f0e4"; 805 | } 806 | .fa-comment-o:before { 807 | content: "\f0e5"; 808 | } 809 | .fa-comments-o:before { 810 | content: "\f0e6"; 811 | } 812 | .fa-flash:before, 813 | .fa-bolt:before { 814 | content: "\f0e7"; 815 | } 816 | .fa-sitemap:before { 817 | content: "\f0e8"; 818 | } 819 | .fa-umbrella:before { 820 | content: "\f0e9"; 821 | } 822 | .fa-paste:before, 823 | .fa-clipboard:before { 824 | content: "\f0ea"; 825 | } 826 | .fa-lightbulb-o:before { 827 | content: "\f0eb"; 828 | } 829 | .fa-exchange:before { 830 | content: "\f0ec"; 831 | } 832 | .fa-cloud-download:before { 833 | content: "\f0ed"; 834 | } 835 | .fa-cloud-upload:before { 836 | content: "\f0ee"; 837 | } 838 | .fa-user-md:before { 839 | content: "\f0f0"; 840 | } 841 | .fa-stethoscope:before { 842 | content: "\f0f1"; 843 | } 844 | .fa-suitcase:before { 845 | content: "\f0f2"; 846 | } 847 | .fa-bell-o:before { 848 | content: "\f0a2"; 849 | } 850 | .fa-coffee:before { 851 | content: "\f0f4"; 852 | } 853 | .fa-cutlery:before { 854 | content: "\f0f5"; 855 | } 856 | .fa-file-text-o:before { 857 | content: "\f0f6"; 858 | } 859 | .fa-building-o:before { 860 | content: "\f0f7"; 861 | } 862 | .fa-hospital-o:before { 863 | content: "\f0f8"; 864 | } 865 | .fa-ambulance:before { 866 | content: "\f0f9"; 867 | } 868 | .fa-medkit:before { 869 | content: "\f0fa"; 870 | } 871 | .fa-fighter-jet:before { 872 | content: "\f0fb"; 873 | } 874 | .fa-beer:before { 875 | content: "\f0fc"; 876 | } 877 | .fa-h-square:before { 878 | content: "\f0fd"; 879 | } 880 | .fa-plus-square:before { 881 | content: "\f0fe"; 882 | } 883 | .fa-angle-double-left:before { 884 | content: "\f100"; 885 | } 886 | .fa-angle-double-right:before { 887 | content: "\f101"; 888 | } 889 | .fa-angle-double-up:before { 890 | content: "\f102"; 891 | } 892 | .fa-angle-double-down:before { 893 | content: "\f103"; 894 | } 895 | .fa-angle-left:before { 896 | content: "\f104"; 897 | } 898 | .fa-angle-right:before { 899 | content: "\f105"; 900 | } 901 | .fa-angle-up:before { 902 | content: "\f106"; 903 | } 904 | .fa-angle-down:before { 905 | content: "\f107"; 906 | } 907 | .fa-desktop:before { 908 | content: "\f108"; 909 | } 910 | .fa-laptop:before { 911 | content: "\f109"; 912 | } 913 | .fa-tablet:before { 914 | content: "\f10a"; 915 | } 916 | .fa-mobile-phone:before, 917 | .fa-mobile:before { 918 | content: "\f10b"; 919 | } 920 | .fa-circle-o:before { 921 | content: "\f10c"; 922 | } 923 | .fa-quote-left:before { 924 | content: "\f10d"; 925 | } 926 | .fa-quote-right:before { 927 | content: "\f10e"; 928 | } 929 | .fa-spinner:before { 930 | content: "\f110"; 931 | } 932 | .fa-circle:before { 933 | content: "\f111"; 934 | } 935 | .fa-mail-reply:before, 936 | .fa-reply:before { 937 | content: "\f112"; 938 | } 939 | .fa-github-alt:before { 940 | content: "\f113"; 941 | } 942 | .fa-folder-o:before { 943 | content: "\f114"; 944 | } 945 | .fa-folder-open-o:before { 946 | content: "\f115"; 947 | } 948 | .fa-smile-o:before { 949 | content: "\f118"; 950 | } 951 | .fa-frown-o:before { 952 | content: "\f119"; 953 | } 954 | .fa-meh-o:before { 955 | content: "\f11a"; 956 | } 957 | .fa-gamepad:before { 958 | content: "\f11b"; 959 | } 960 | .fa-keyboard-o:before { 961 | content: "\f11c"; 962 | } 963 | .fa-flag-o:before { 964 | content: "\f11d"; 965 | } 966 | .fa-flag-checkered:before { 967 | content: "\f11e"; 968 | } 969 | .fa-terminal:before { 970 | content: "\f120"; 971 | } 972 | .fa-code:before { 973 | content: "\f121"; 974 | } 975 | .fa-mail-reply-all:before, 976 | .fa-reply-all:before { 977 | content: "\f122"; 978 | } 979 | .fa-star-half-empty:before, 980 | .fa-star-half-full:before, 981 | .fa-star-half-o:before { 982 | content: "\f123"; 983 | } 984 | .fa-location-arrow:before { 985 | content: "\f124"; 986 | } 987 | .fa-crop:before { 988 | content: "\f125"; 989 | } 990 | .fa-code-fork:before { 991 | content: "\f126"; 992 | } 993 | .fa-unlink:before, 994 | .fa-chain-broken:before { 995 | content: "\f127"; 996 | } 997 | .fa-question:before { 998 | content: "\f128"; 999 | } 1000 | .fa-info:before { 1001 | content: "\f129"; 1002 | } 1003 | .fa-exclamation:before { 1004 | content: "\f12a"; 1005 | } 1006 | .fa-superscript:before { 1007 | content: "\f12b"; 1008 | } 1009 | .fa-subscript:before { 1010 | content: "\f12c"; 1011 | } 1012 | .fa-eraser:before { 1013 | content: "\f12d"; 1014 | } 1015 | .fa-puzzle-piece:before { 1016 | content: "\f12e"; 1017 | } 1018 | .fa-microphone:before { 1019 | content: "\f130"; 1020 | } 1021 | .fa-microphone-slash:before { 1022 | content: "\f131"; 1023 | } 1024 | .fa-shield:before { 1025 | content: "\f132"; 1026 | } 1027 | .fa-calendar-o:before { 1028 | content: "\f133"; 1029 | } 1030 | .fa-fire-extinguisher:before { 1031 | content: "\f134"; 1032 | } 1033 | .fa-rocket:before { 1034 | content: "\f135"; 1035 | } 1036 | .fa-maxcdn:before { 1037 | content: "\f136"; 1038 | } 1039 | .fa-chevron-circle-left:before { 1040 | content: "\f137"; 1041 | } 1042 | .fa-chevron-circle-right:before { 1043 | content: "\f138"; 1044 | } 1045 | .fa-chevron-circle-up:before { 1046 | content: "\f139"; 1047 | } 1048 | .fa-chevron-circle-down:before { 1049 | content: "\f13a"; 1050 | } 1051 | .fa-html5:before { 1052 | content: "\f13b"; 1053 | } 1054 | .fa-css3:before { 1055 | content: "\f13c"; 1056 | } 1057 | .fa-anchor:before { 1058 | content: "\f13d"; 1059 | } 1060 | .fa-unlock-alt:before { 1061 | content: "\f13e"; 1062 | } 1063 | .fa-bullseye:before { 1064 | content: "\f140"; 1065 | } 1066 | .fa-ellipsis-h:before { 1067 | content: "\f141"; 1068 | } 1069 | .fa-ellipsis-v:before { 1070 | content: "\f142"; 1071 | } 1072 | .fa-rss-square:before { 1073 | content: "\f143"; 1074 | } 1075 | .fa-play-circle:before { 1076 | content: "\f144"; 1077 | } 1078 | .fa-ticket:before { 1079 | content: "\f145"; 1080 | } 1081 | .fa-minus-square:before { 1082 | content: "\f146"; 1083 | } 1084 | .fa-minus-square-o:before { 1085 | content: "\f147"; 1086 | } 1087 | .fa-level-up:before { 1088 | content: "\f148"; 1089 | } 1090 | .fa-level-down:before { 1091 | content: "\f149"; 1092 | } 1093 | .fa-check-square:before { 1094 | content: "\f14a"; 1095 | } 1096 | .fa-pencil-square:before { 1097 | content: "\f14b"; 1098 | } 1099 | .fa-external-link-square:before { 1100 | content: "\f14c"; 1101 | } 1102 | .fa-share-square:before { 1103 | content: "\f14d"; 1104 | } 1105 | .fa-compass:before { 1106 | content: "\f14e"; 1107 | } 1108 | .fa-toggle-down:before, 1109 | .fa-caret-square-o-down:before { 1110 | content: "\f150"; 1111 | } 1112 | .fa-toggle-up:before, 1113 | .fa-caret-square-o-up:before { 1114 | content: "\f151"; 1115 | } 1116 | .fa-toggle-right:before, 1117 | .fa-caret-square-o-right:before { 1118 | content: "\f152"; 1119 | } 1120 | .fa-euro:before, 1121 | .fa-eur:before { 1122 | content: "\f153"; 1123 | } 1124 | .fa-gbp:before { 1125 | content: "\f154"; 1126 | } 1127 | .fa-dollar:before, 1128 | .fa-usd:before { 1129 | content: "\f155"; 1130 | } 1131 | .fa-rupee:before, 1132 | .fa-inr:before { 1133 | content: "\f156"; 1134 | } 1135 | .fa-cny:before, 1136 | .fa-rmb:before, 1137 | .fa-yen:before, 1138 | .fa-jpy:before { 1139 | content: "\f157"; 1140 | } 1141 | .fa-ruble:before, 1142 | .fa-rouble:before, 1143 | .fa-rub:before { 1144 | content: "\f158"; 1145 | } 1146 | .fa-won:before, 1147 | .fa-krw:before { 1148 | content: "\f159"; 1149 | } 1150 | .fa-bitcoin:before, 1151 | .fa-btc:before { 1152 | content: "\f15a"; 1153 | } 1154 | .fa-file:before { 1155 | content: "\f15b"; 1156 | } 1157 | .fa-file-text:before { 1158 | content: "\f15c"; 1159 | } 1160 | .fa-sort-alpha-asc:before { 1161 | content: "\f15d"; 1162 | } 1163 | .fa-sort-alpha-desc:before { 1164 | content: "\f15e"; 1165 | } 1166 | .fa-sort-amount-asc:before { 1167 | content: "\f160"; 1168 | } 1169 | .fa-sort-amount-desc:before { 1170 | content: "\f161"; 1171 | } 1172 | .fa-sort-numeric-asc:before { 1173 | content: "\f162"; 1174 | } 1175 | .fa-sort-numeric-desc:before { 1176 | content: "\f163"; 1177 | } 1178 | .fa-thumbs-up:before { 1179 | content: "\f164"; 1180 | } 1181 | .fa-thumbs-down:before { 1182 | content: "\f165"; 1183 | } 1184 | .fa-youtube-square:before { 1185 | content: "\f166"; 1186 | } 1187 | .fa-youtube:before { 1188 | content: "\f167"; 1189 | } 1190 | .fa-xing:before { 1191 | content: "\f168"; 1192 | } 1193 | .fa-xing-square:before { 1194 | content: "\f169"; 1195 | } 1196 | .fa-youtube-play:before { 1197 | content: "\f16a"; 1198 | } 1199 | .fa-dropbox:before { 1200 | content: "\f16b"; 1201 | } 1202 | .fa-stack-overflow:before { 1203 | content: "\f16c"; 1204 | } 1205 | .fa-instagram:before { 1206 | content: "\f16d"; 1207 | } 1208 | .fa-flickr:before { 1209 | content: "\f16e"; 1210 | } 1211 | .fa-adn:before { 1212 | content: "\f170"; 1213 | } 1214 | .fa-bitbucket:before { 1215 | content: "\f171"; 1216 | } 1217 | .fa-bitbucket-square:before { 1218 | content: "\f172"; 1219 | } 1220 | .fa-tumblr:before { 1221 | content: "\f173"; 1222 | } 1223 | .fa-tumblr-square:before { 1224 | content: "\f174"; 1225 | } 1226 | .fa-long-arrow-down:before { 1227 | content: "\f175"; 1228 | } 1229 | .fa-long-arrow-up:before { 1230 | content: "\f176"; 1231 | } 1232 | .fa-long-arrow-left:before { 1233 | content: "\f177"; 1234 | } 1235 | .fa-long-arrow-right:before { 1236 | content: "\f178"; 1237 | } 1238 | .fa-apple:before { 1239 | content: "\f179"; 1240 | } 1241 | .fa-windows:before { 1242 | content: "\f17a"; 1243 | } 1244 | .fa-android:before { 1245 | content: "\f17b"; 1246 | } 1247 | .fa-linux:before { 1248 | content: "\f17c"; 1249 | } 1250 | .fa-dribbble:before { 1251 | content: "\f17d"; 1252 | } 1253 | .fa-skype:before { 1254 | content: "\f17e"; 1255 | } 1256 | .fa-foursquare:before { 1257 | content: "\f180"; 1258 | } 1259 | .fa-trello:before { 1260 | content: "\f181"; 1261 | } 1262 | .fa-female:before { 1263 | content: "\f182"; 1264 | } 1265 | .fa-male:before { 1266 | content: "\f183"; 1267 | } 1268 | .fa-gittip:before, 1269 | .fa-gratipay:before { 1270 | content: "\f184"; 1271 | } 1272 | .fa-sun-o:before { 1273 | content: "\f185"; 1274 | } 1275 | .fa-moon-o:before { 1276 | content: "\f186"; 1277 | } 1278 | .fa-archive:before { 1279 | content: "\f187"; 1280 | } 1281 | .fa-bug:before { 1282 | content: "\f188"; 1283 | } 1284 | .fa-vk:before { 1285 | content: "\f189"; 1286 | } 1287 | .fa-weibo:before { 1288 | content: "\f18a"; 1289 | } 1290 | .fa-renren:before { 1291 | content: "\f18b"; 1292 | } 1293 | .fa-pagelines:before { 1294 | content: "\f18c"; 1295 | } 1296 | .fa-stack-exchange:before { 1297 | content: "\f18d"; 1298 | } 1299 | .fa-arrow-circle-o-right:before { 1300 | content: "\f18e"; 1301 | } 1302 | .fa-arrow-circle-o-left:before { 1303 | content: "\f190"; 1304 | } 1305 | .fa-toggle-left:before, 1306 | .fa-caret-square-o-left:before { 1307 | content: "\f191"; 1308 | } 1309 | .fa-dot-circle-o:before { 1310 | content: "\f192"; 1311 | } 1312 | .fa-wheelchair:before { 1313 | content: "\f193"; 1314 | } 1315 | .fa-vimeo-square:before { 1316 | content: "\f194"; 1317 | } 1318 | .fa-turkish-lira:before, 1319 | .fa-try:before { 1320 | content: "\f195"; 1321 | } 1322 | .fa-plus-square-o:before { 1323 | content: "\f196"; 1324 | } 1325 | .fa-space-shuttle:before { 1326 | content: "\f197"; 1327 | } 1328 | .fa-slack:before { 1329 | content: "\f198"; 1330 | } 1331 | .fa-envelope-square:before { 1332 | content: "\f199"; 1333 | } 1334 | .fa-wordpress:before { 1335 | content: "\f19a"; 1336 | } 1337 | .fa-openid:before { 1338 | content: "\f19b"; 1339 | } 1340 | .fa-institution:before, 1341 | .fa-bank:before, 1342 | .fa-university:before { 1343 | content: "\f19c"; 1344 | } 1345 | .fa-mortar-board:before, 1346 | .fa-graduation-cap:before { 1347 | content: "\f19d"; 1348 | } 1349 | .fa-yahoo:before { 1350 | content: "\f19e"; 1351 | } 1352 | .fa-google:before { 1353 | content: "\f1a0"; 1354 | } 1355 | .fa-reddit:before { 1356 | content: "\f1a1"; 1357 | } 1358 | .fa-reddit-square:before { 1359 | content: "\f1a2"; 1360 | } 1361 | .fa-stumbleupon-circle:before { 1362 | content: "\f1a3"; 1363 | } 1364 | .fa-stumbleupon:before { 1365 | content: "\f1a4"; 1366 | } 1367 | .fa-delicious:before { 1368 | content: "\f1a5"; 1369 | } 1370 | .fa-digg:before { 1371 | content: "\f1a6"; 1372 | } 1373 | .fa-pied-piper:before { 1374 | content: "\f1a7"; 1375 | } 1376 | .fa-pied-piper-alt:before { 1377 | content: "\f1a8"; 1378 | } 1379 | .fa-drupal:before { 1380 | content: "\f1a9"; 1381 | } 1382 | .fa-joomla:before { 1383 | content: "\f1aa"; 1384 | } 1385 | .fa-language:before { 1386 | content: "\f1ab"; 1387 | } 1388 | .fa-fax:before { 1389 | content: "\f1ac"; 1390 | } 1391 | .fa-building:before { 1392 | content: "\f1ad"; 1393 | } 1394 | .fa-child:before { 1395 | content: "\f1ae"; 1396 | } 1397 | .fa-paw:before { 1398 | content: "\f1b0"; 1399 | } 1400 | .fa-spoon:before { 1401 | content: "\f1b1"; 1402 | } 1403 | .fa-cube:before { 1404 | content: "\f1b2"; 1405 | } 1406 | .fa-cubes:before { 1407 | content: "\f1b3"; 1408 | } 1409 | .fa-behance:before { 1410 | content: "\f1b4"; 1411 | } 1412 | .fa-behance-square:before { 1413 | content: "\f1b5"; 1414 | } 1415 | .fa-steam:before { 1416 | content: "\f1b6"; 1417 | } 1418 | .fa-steam-square:before { 1419 | content: "\f1b7"; 1420 | } 1421 | .fa-recycle:before { 1422 | content: "\f1b8"; 1423 | } 1424 | .fa-automobile:before, 1425 | .fa-car:before { 1426 | content: "\f1b9"; 1427 | } 1428 | .fa-cab:before, 1429 | .fa-taxi:before { 1430 | content: "\f1ba"; 1431 | } 1432 | .fa-tree:before { 1433 | content: "\f1bb"; 1434 | } 1435 | .fa-spotify:before { 1436 | content: "\f1bc"; 1437 | } 1438 | .fa-deviantart:before { 1439 | content: "\f1bd"; 1440 | } 1441 | .fa-soundcloud:before { 1442 | content: "\f1be"; 1443 | } 1444 | .fa-database:before { 1445 | content: "\f1c0"; 1446 | } 1447 | .fa-file-pdf-o:before { 1448 | content: "\f1c1"; 1449 | } 1450 | .fa-file-word-o:before { 1451 | content: "\f1c2"; 1452 | } 1453 | .fa-file-excel-o:before { 1454 | content: "\f1c3"; 1455 | } 1456 | .fa-file-powerpoint-o:before { 1457 | content: "\f1c4"; 1458 | } 1459 | .fa-file-photo-o:before, 1460 | .fa-file-picture-o:before, 1461 | .fa-file-image-o:before { 1462 | content: "\f1c5"; 1463 | } 1464 | .fa-file-zip-o:before, 1465 | .fa-file-archive-o:before { 1466 | content: "\f1c6"; 1467 | } 1468 | .fa-file-sound-o:before, 1469 | .fa-file-audio-o:before { 1470 | content: "\f1c7"; 1471 | } 1472 | .fa-file-movie-o:before, 1473 | .fa-file-video-o:before { 1474 | content: "\f1c8"; 1475 | } 1476 | .fa-file-code-o:before { 1477 | content: "\f1c9"; 1478 | } 1479 | .fa-vine:before { 1480 | content: "\f1ca"; 1481 | } 1482 | .fa-codepen:before { 1483 | content: "\f1cb"; 1484 | } 1485 | .fa-jsfiddle:before { 1486 | content: "\f1cc"; 1487 | } 1488 | .fa-life-bouy:before, 1489 | .fa-life-buoy:before, 1490 | .fa-life-saver:before, 1491 | .fa-support:before, 1492 | .fa-life-ring:before { 1493 | content: "\f1cd"; 1494 | } 1495 | .fa-circle-o-notch:before { 1496 | content: "\f1ce"; 1497 | } 1498 | .fa-ra:before, 1499 | .fa-rebel:before { 1500 | content: "\f1d0"; 1501 | } 1502 | .fa-ge:before, 1503 | .fa-empire:before { 1504 | content: "\f1d1"; 1505 | } 1506 | .fa-git-square:before { 1507 | content: "\f1d2"; 1508 | } 1509 | .fa-git:before { 1510 | content: "\f1d3"; 1511 | } 1512 | .fa-hacker-news:before { 1513 | content: "\f1d4"; 1514 | } 1515 | .fa-tencent-weibo:before { 1516 | content: "\f1d5"; 1517 | } 1518 | .fa-qq:before { 1519 | content: "\f1d6"; 1520 | } 1521 | .fa-wechat:before, 1522 | .fa-weixin:before { 1523 | content: "\f1d7"; 1524 | } 1525 | .fa-send:before, 1526 | .fa-paper-plane:before { 1527 | content: "\f1d8"; 1528 | } 1529 | .fa-send-o:before, 1530 | .fa-paper-plane-o:before { 1531 | content: "\f1d9"; 1532 | } 1533 | .fa-history:before { 1534 | content: "\f1da"; 1535 | } 1536 | .fa-genderless:before, 1537 | .fa-circle-thin:before { 1538 | content: "\f1db"; 1539 | } 1540 | .fa-header:before { 1541 | content: "\f1dc"; 1542 | } 1543 | .fa-paragraph:before { 1544 | content: "\f1dd"; 1545 | } 1546 | .fa-sliders:before { 1547 | content: "\f1de"; 1548 | } 1549 | .fa-share-alt:before { 1550 | content: "\f1e0"; 1551 | } 1552 | .fa-share-alt-square:before { 1553 | content: "\f1e1"; 1554 | } 1555 | .fa-bomb:before { 1556 | content: "\f1e2"; 1557 | } 1558 | .fa-soccer-ball-o:before, 1559 | .fa-futbol-o:before { 1560 | content: "\f1e3"; 1561 | } 1562 | .fa-tty:before { 1563 | content: "\f1e4"; 1564 | } 1565 | .fa-binoculars:before { 1566 | content: "\f1e5"; 1567 | } 1568 | .fa-plug:before { 1569 | content: "\f1e6"; 1570 | } 1571 | .fa-slideshare:before { 1572 | content: "\f1e7"; 1573 | } 1574 | .fa-twitch:before { 1575 | content: "\f1e8"; 1576 | } 1577 | .fa-yelp:before { 1578 | content: "\f1e9"; 1579 | } 1580 | .fa-newspaper-o:before { 1581 | content: "\f1ea"; 1582 | } 1583 | .fa-wifi:before { 1584 | content: "\f1eb"; 1585 | } 1586 | .fa-calculator:before { 1587 | content: "\f1ec"; 1588 | } 1589 | .fa-paypal:before { 1590 | content: "\f1ed"; 1591 | } 1592 | .fa-google-wallet:before { 1593 | content: "\f1ee"; 1594 | } 1595 | .fa-cc-visa:before { 1596 | content: "\f1f0"; 1597 | } 1598 | .fa-cc-mastercard:before { 1599 | content: "\f1f1"; 1600 | } 1601 | .fa-cc-discover:before { 1602 | content: "\f1f2"; 1603 | } 1604 | .fa-cc-amex:before { 1605 | content: "\f1f3"; 1606 | } 1607 | .fa-cc-paypal:before { 1608 | content: "\f1f4"; 1609 | } 1610 | .fa-cc-stripe:before { 1611 | content: "\f1f5"; 1612 | } 1613 | .fa-bell-slash:before { 1614 | content: "\f1f6"; 1615 | } 1616 | .fa-bell-slash-o:before { 1617 | content: "\f1f7"; 1618 | } 1619 | .fa-trash:before { 1620 | content: "\f1f8"; 1621 | } 1622 | .fa-copyright:before { 1623 | content: "\f1f9"; 1624 | } 1625 | .fa-at:before { 1626 | content: "\f1fa"; 1627 | } 1628 | .fa-eyedropper:before { 1629 | content: "\f1fb"; 1630 | } 1631 | .fa-paint-brush:before { 1632 | content: "\f1fc"; 1633 | } 1634 | .fa-birthday-cake:before { 1635 | content: "\f1fd"; 1636 | } 1637 | .fa-area-chart:before { 1638 | content: "\f1fe"; 1639 | } 1640 | .fa-pie-chart:before { 1641 | content: "\f200"; 1642 | } 1643 | .fa-line-chart:before { 1644 | content: "\f201"; 1645 | } 1646 | .fa-lastfm:before { 1647 | content: "\f202"; 1648 | } 1649 | .fa-lastfm-square:before { 1650 | content: "\f203"; 1651 | } 1652 | .fa-toggle-off:before { 1653 | content: "\f204"; 1654 | } 1655 | .fa-toggle-on:before { 1656 | content: "\f205"; 1657 | } 1658 | .fa-bicycle:before { 1659 | content: "\f206"; 1660 | } 1661 | .fa-bus:before { 1662 | content: "\f207"; 1663 | } 1664 | .fa-ioxhost:before { 1665 | content: "\f208"; 1666 | } 1667 | .fa-angellist:before { 1668 | content: "\f209"; 1669 | } 1670 | .fa-cc:before { 1671 | content: "\f20a"; 1672 | } 1673 | .fa-shekel:before, 1674 | .fa-sheqel:before, 1675 | .fa-ils:before { 1676 | content: "\f20b"; 1677 | } 1678 | .fa-meanpath:before { 1679 | content: "\f20c"; 1680 | } 1681 | .fa-buysellads:before { 1682 | content: "\f20d"; 1683 | } 1684 | .fa-connectdevelop:before { 1685 | content: "\f20e"; 1686 | } 1687 | .fa-dashcube:before { 1688 | content: "\f210"; 1689 | } 1690 | .fa-forumbee:before { 1691 | content: "\f211"; 1692 | } 1693 | .fa-leanpub:before { 1694 | content: "\f212"; 1695 | } 1696 | .fa-sellsy:before { 1697 | content: "\f213"; 1698 | } 1699 | .fa-shirtsinbulk:before { 1700 | content: "\f214"; 1701 | } 1702 | .fa-simplybuilt:before { 1703 | content: "\f215"; 1704 | } 1705 | .fa-skyatlas:before { 1706 | content: "\f216"; 1707 | } 1708 | .fa-cart-plus:before { 1709 | content: "\f217"; 1710 | } 1711 | .fa-cart-arrow-down:before { 1712 | content: "\f218"; 1713 | } 1714 | .fa-diamond:before { 1715 | content: "\f219"; 1716 | } 1717 | .fa-ship:before { 1718 | content: "\f21a"; 1719 | } 1720 | .fa-user-secret:before { 1721 | content: "\f21b"; 1722 | } 1723 | .fa-motorcycle:before { 1724 | content: "\f21c"; 1725 | } 1726 | .fa-street-view:before { 1727 | content: "\f21d"; 1728 | } 1729 | .fa-heartbeat:before { 1730 | content: "\f21e"; 1731 | } 1732 | .fa-venus:before { 1733 | content: "\f221"; 1734 | } 1735 | .fa-mars:before { 1736 | content: "\f222"; 1737 | } 1738 | .fa-mercury:before { 1739 | content: "\f223"; 1740 | } 1741 | .fa-transgender:before { 1742 | content: "\f224"; 1743 | } 1744 | .fa-transgender-alt:before { 1745 | content: "\f225"; 1746 | } 1747 | .fa-venus-double:before { 1748 | content: "\f226"; 1749 | } 1750 | .fa-mars-double:before { 1751 | content: "\f227"; 1752 | } 1753 | .fa-venus-mars:before { 1754 | content: "\f228"; 1755 | } 1756 | .fa-mars-stroke:before { 1757 | content: "\f229"; 1758 | } 1759 | .fa-mars-stroke-v:before { 1760 | content: "\f22a"; 1761 | } 1762 | .fa-mars-stroke-h:before { 1763 | content: "\f22b"; 1764 | } 1765 | .fa-neuter:before { 1766 | content: "\f22c"; 1767 | } 1768 | .fa-facebook-official:before { 1769 | content: "\f230"; 1770 | } 1771 | .fa-pinterest-p:before { 1772 | content: "\f231"; 1773 | } 1774 | .fa-whatsapp:before { 1775 | content: "\f232"; 1776 | } 1777 | .fa-server:before { 1778 | content: "\f233"; 1779 | } 1780 | .fa-user-plus:before { 1781 | content: "\f234"; 1782 | } 1783 | .fa-user-times:before { 1784 | content: "\f235"; 1785 | } 1786 | .fa-hotel:before, 1787 | .fa-bed:before { 1788 | content: "\f236"; 1789 | } 1790 | .fa-viacoin:before { 1791 | content: "\f237"; 1792 | } 1793 | .fa-train:before { 1794 | content: "\f238"; 1795 | } 1796 | .fa-subway:before { 1797 | content: "\f239"; 1798 | } 1799 | .fa-medium:before { 1800 | content: "\f23a"; 1801 | } 1802 | -------------------------------------------------------------------------------- /src/assets/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/assets/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/assets/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/assets/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/assets/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/assets/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/assets/img/avatar_large.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/img/avatar_large.jpg -------------------------------------------------------------------------------- /src/assets/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/assets/img/logo.png -------------------------------------------------------------------------------- /src/assets/js/plugins/datapicker/datepicker3.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datepicker for Bootstrap 3 | * 4 | * Copyright 2012 Stefan Petre 5 | * Improvements by Andrew Rowls 6 | * Licensed under the Apache License v2.0 7 | * http://www.apache.org/licenses/LICENSE-2.0 8 | * 9 | */ 10 | .datepicker { 11 | padding: 4px; 12 | border-radius: 4px; 13 | direction: ltr; 14 | /*.dow { 15 | border-top: 1px solid #ddd !important; 16 | }*/ 17 | } 18 | .datepicker-inline { 19 | width: 220px; 20 | } 21 | .datepicker.datepicker-rtl { 22 | direction: rtl; 23 | } 24 | .datepicker.datepicker-rtl table tr td span { 25 | float: right; 26 | } 27 | .datepicker-dropdown { 28 | top: 0; 29 | left: 0; 30 | } 31 | .datepicker-dropdown:before { 32 | content: ''; 33 | display: inline-block; 34 | border-left: 7px solid transparent; 35 | border-right: 7px solid transparent; 36 | border-bottom: 7px solid #ccc; 37 | border-top: 0; 38 | border-bottom-color: rgba(0, 0, 0, 0.2); 39 | position: absolute; 40 | } 41 | .datepicker-dropdown:after { 42 | content: ''; 43 | display: inline-block; 44 | border-left: 6px solid transparent; 45 | border-right: 6px solid transparent; 46 | border-bottom: 6px solid #fff; 47 | border-top: 0; 48 | position: absolute; 49 | } 50 | .datepicker-dropdown.datepicker-orient-left:before { 51 | left: 6px; 52 | } 53 | .datepicker-dropdown.datepicker-orient-left:after { 54 | left: 7px; 55 | } 56 | .datepicker-dropdown.datepicker-orient-right:before { 57 | right: 6px; 58 | } 59 | .datepicker-dropdown.datepicker-orient-right:after { 60 | right: 7px; 61 | } 62 | .datepicker-dropdown.datepicker-orient-top:before { 63 | top: -7px; 64 | } 65 | .datepicker-dropdown.datepicker-orient-top:after { 66 | top: -6px; 67 | } 68 | .datepicker-dropdown.datepicker-orient-bottom:before { 69 | bottom: -7px; 70 | border-bottom: 0; 71 | border-top: 7px solid #999; 72 | } 73 | .datepicker-dropdown.datepicker-orient-bottom:after { 74 | bottom: -6px; 75 | border-bottom: 0; 76 | border-top: 6px solid #fff; 77 | } 78 | .datepicker > div { 79 | display: none; 80 | } 81 | .datepicker.days div.datepicker-days { 82 | display: block; 83 | } 84 | .datepicker.months div.datepicker-months { 85 | display: block; 86 | } 87 | .datepicker.years div.datepicker-years { 88 | display: block; 89 | } 90 | .datepicker table { 91 | margin: 0; 92 | -webkit-touch-callout: none; 93 | -webkit-user-select: none; 94 | -khtml-user-select: none; 95 | -moz-user-select: none; 96 | -ms-user-select: none; 97 | user-select: none; 98 | } 99 | .datepicker table tr td, 100 | .datepicker table tr th { 101 | text-align: center; 102 | width: 30px; 103 | height: 30px; 104 | border-radius: 4px; 105 | border: none; 106 | } 107 | .table-striped .datepicker table tr td, 108 | .table-striped .datepicker table tr th { 109 | background-color: transparent; 110 | } 111 | .datepicker table tr td.day:hover, 112 | .datepicker table tr td.day.focused { 113 | background: #eeeeee; 114 | cursor: pointer; 115 | } 116 | .datepicker table tr td.old, 117 | .datepicker table tr td.new { 118 | color: #999999; 119 | } 120 | .datepicker table tr td.disabled, 121 | .datepicker table tr td.disabled:hover { 122 | background: none; 123 | color: #999999; 124 | cursor: default; 125 | } 126 | .datepicker table tr td.today, 127 | .datepicker table tr td.today:hover, 128 | .datepicker table tr td.today.disabled, 129 | .datepicker table tr td.today.disabled:hover { 130 | color: #000000; 131 | background-color: #ffdb99; 132 | border-color: #ffb733; 133 | } 134 | .datepicker table tr td.today:hover, 135 | .datepicker table tr td.today:hover:hover, 136 | .datepicker table tr td.today.disabled:hover, 137 | .datepicker table tr td.today.disabled:hover:hover, 138 | .datepicker table tr td.today:focus, 139 | .datepicker table tr td.today:hover:focus, 140 | .datepicker table tr td.today.disabled:focus, 141 | .datepicker table tr td.today.disabled:hover:focus, 142 | .datepicker table tr td.today:active, 143 | .datepicker table tr td.today:hover:active, 144 | .datepicker table tr td.today.disabled:active, 145 | .datepicker table tr td.today.disabled:hover:active, 146 | .datepicker table tr td.today.active, 147 | .datepicker table tr td.today:hover.active, 148 | .datepicker table tr td.today.disabled.active, 149 | .datepicker table tr td.today.disabled:hover.active, 150 | .open .dropdown-toggle.datepicker table tr td.today, 151 | .open .dropdown-toggle.datepicker table tr td.today:hover, 152 | .open .dropdown-toggle.datepicker table tr td.today.disabled, 153 | .open .dropdown-toggle.datepicker table tr td.today.disabled:hover { 154 | color: #000000; 155 | background-color: #ffcd70; 156 | border-color: #f59e00; 157 | } 158 | .datepicker table tr td.today:active, 159 | .datepicker table tr td.today:hover:active, 160 | .datepicker table tr td.today.disabled:active, 161 | .datepicker table tr td.today.disabled:hover:active, 162 | .datepicker table tr td.today.active, 163 | .datepicker table tr td.today:hover.active, 164 | .datepicker table tr td.today.disabled.active, 165 | .datepicker table tr td.today.disabled:hover.active, 166 | .open .dropdown-toggle.datepicker table tr td.today, 167 | .open .dropdown-toggle.datepicker table tr td.today:hover, 168 | .open .dropdown-toggle.datepicker table tr td.today.disabled, 169 | .open .dropdown-toggle.datepicker table tr td.today.disabled:hover { 170 | background-image: none; 171 | } 172 | .datepicker table tr td.today.disabled, 173 | .datepicker table tr td.today:hover.disabled, 174 | .datepicker table tr td.today.disabled.disabled, 175 | .datepicker table tr td.today.disabled:hover.disabled, 176 | .datepicker table tr td.today[disabled], 177 | .datepicker table tr td.today:hover[disabled], 178 | .datepicker table tr td.today.disabled[disabled], 179 | .datepicker table tr td.today.disabled:hover[disabled], 180 | fieldset[disabled] .datepicker table tr td.today, 181 | fieldset[disabled] .datepicker table tr td.today:hover, 182 | fieldset[disabled] .datepicker table tr td.today.disabled, 183 | fieldset[disabled] .datepicker table tr td.today.disabled:hover, 184 | .datepicker table tr td.today.disabled:hover, 185 | .datepicker table tr td.today:hover.disabled:hover, 186 | .datepicker table tr td.today.disabled.disabled:hover, 187 | .datepicker table tr td.today.disabled:hover.disabled:hover, 188 | .datepicker table tr td.today[disabled]:hover, 189 | .datepicker table tr td.today:hover[disabled]:hover, 190 | .datepicker table tr td.today.disabled[disabled]:hover, 191 | .datepicker table tr td.today.disabled:hover[disabled]:hover, 192 | fieldset[disabled] .datepicker table tr td.today:hover, 193 | fieldset[disabled] .datepicker table tr td.today:hover:hover, 194 | fieldset[disabled] .datepicker table tr td.today.disabled:hover, 195 | fieldset[disabled] .datepicker table tr td.today.disabled:hover:hover, 196 | .datepicker table tr td.today.disabled:focus, 197 | .datepicker table tr td.today:hover.disabled:focus, 198 | .datepicker table tr td.today.disabled.disabled:focus, 199 | .datepicker table tr td.today.disabled:hover.disabled:focus, 200 | .datepicker table tr td.today[disabled]:focus, 201 | .datepicker table tr td.today:hover[disabled]:focus, 202 | .datepicker table tr td.today.disabled[disabled]:focus, 203 | .datepicker table tr td.today.disabled:hover[disabled]:focus, 204 | fieldset[disabled] .datepicker table tr td.today:focus, 205 | fieldset[disabled] .datepicker table tr td.today:hover:focus, 206 | fieldset[disabled] .datepicker table tr td.today.disabled:focus, 207 | fieldset[disabled] .datepicker table tr td.today.disabled:hover:focus, 208 | .datepicker table tr td.today.disabled:active, 209 | .datepicker table tr td.today:hover.disabled:active, 210 | .datepicker table tr td.today.disabled.disabled:active, 211 | .datepicker table tr td.today.disabled:hover.disabled:active, 212 | .datepicker table tr td.today[disabled]:active, 213 | .datepicker table tr td.today:hover[disabled]:active, 214 | .datepicker table tr td.today.disabled[disabled]:active, 215 | .datepicker table tr td.today.disabled:hover[disabled]:active, 216 | fieldset[disabled] .datepicker table tr td.today:active, 217 | fieldset[disabled] .datepicker table tr td.today:hover:active, 218 | fieldset[disabled] .datepicker table tr td.today.disabled:active, 219 | fieldset[disabled] .datepicker table tr td.today.disabled:hover:active, 220 | .datepicker table tr td.today.disabled.active, 221 | .datepicker table tr td.today:hover.disabled.active, 222 | .datepicker table tr td.today.disabled.disabled.active, 223 | .datepicker table tr td.today.disabled:hover.disabled.active, 224 | .datepicker table tr td.today[disabled].active, 225 | .datepicker table tr td.today:hover[disabled].active, 226 | .datepicker table tr td.today.disabled[disabled].active, 227 | .datepicker table tr td.today.disabled:hover[disabled].active, 228 | fieldset[disabled] .datepicker table tr td.today.active, 229 | fieldset[disabled] .datepicker table tr td.today:hover.active, 230 | fieldset[disabled] .datepicker table tr td.today.disabled.active, 231 | fieldset[disabled] .datepicker table tr td.today.disabled:hover.active { 232 | background-color: #ffdb99; 233 | border-color: #ffb733; 234 | } 235 | .datepicker table tr td.today:hover:hover { 236 | color: #000; 237 | } 238 | .datepicker table tr td.today.active:hover { 239 | color: #fff; 240 | } 241 | .datepicker table tr td.range, 242 | .datepicker table tr td.range:hover, 243 | .datepicker table tr td.range.disabled, 244 | .datepicker table tr td.range.disabled:hover { 245 | background: #eeeeee; 246 | border-radius: 0; 247 | } 248 | .datepicker table tr td.range.today, 249 | .datepicker table tr td.range.today:hover, 250 | .datepicker table tr td.range.today.disabled, 251 | .datepicker table tr td.range.today.disabled:hover { 252 | color: #000000; 253 | background-color: #f7ca77; 254 | border-color: #f1a417; 255 | border-radius: 0; 256 | } 257 | .datepicker table tr td.range.today:hover, 258 | .datepicker table tr td.range.today:hover:hover, 259 | .datepicker table tr td.range.today.disabled:hover, 260 | .datepicker table tr td.range.today.disabled:hover:hover, 261 | .datepicker table tr td.range.today:focus, 262 | .datepicker table tr td.range.today:hover:focus, 263 | .datepicker table tr td.range.today.disabled:focus, 264 | .datepicker table tr td.range.today.disabled:hover:focus, 265 | .datepicker table tr td.range.today:active, 266 | .datepicker table tr td.range.today:hover:active, 267 | .datepicker table tr td.range.today.disabled:active, 268 | .datepicker table tr td.range.today.disabled:hover:active, 269 | .datepicker table tr td.range.today.active, 270 | .datepicker table tr td.range.today:hover.active, 271 | .datepicker table tr td.range.today.disabled.active, 272 | .datepicker table tr td.range.today.disabled:hover.active, 273 | .open .dropdown-toggle.datepicker table tr td.range.today, 274 | .open .dropdown-toggle.datepicker table tr td.range.today:hover, 275 | .open .dropdown-toggle.datepicker table tr td.range.today.disabled, 276 | .open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { 277 | color: #000000; 278 | background-color: #f4bb51; 279 | border-color: #bf800c; 280 | } 281 | .datepicker table tr td.range.today:active, 282 | .datepicker table tr td.range.today:hover:active, 283 | .datepicker table tr td.range.today.disabled:active, 284 | .datepicker table tr td.range.today.disabled:hover:active, 285 | .datepicker table tr td.range.today.active, 286 | .datepicker table tr td.range.today:hover.active, 287 | .datepicker table tr td.range.today.disabled.active, 288 | .datepicker table tr td.range.today.disabled:hover.active, 289 | .open .dropdown-toggle.datepicker table tr td.range.today, 290 | .open .dropdown-toggle.datepicker table tr td.range.today:hover, 291 | .open .dropdown-toggle.datepicker table tr td.range.today.disabled, 292 | .open .dropdown-toggle.datepicker table tr td.range.today.disabled:hover { 293 | background-image: none; 294 | } 295 | .datepicker table tr td.range.today.disabled, 296 | .datepicker table tr td.range.today:hover.disabled, 297 | .datepicker table tr td.range.today.disabled.disabled, 298 | .datepicker table tr td.range.today.disabled:hover.disabled, 299 | .datepicker table tr td.range.today[disabled], 300 | .datepicker table tr td.range.today:hover[disabled], 301 | .datepicker table tr td.range.today.disabled[disabled], 302 | .datepicker table tr td.range.today.disabled:hover[disabled], 303 | fieldset[disabled] .datepicker table tr td.range.today, 304 | fieldset[disabled] .datepicker table tr td.range.today:hover, 305 | fieldset[disabled] .datepicker table tr td.range.today.disabled, 306 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, 307 | .datepicker table tr td.range.today.disabled:hover, 308 | .datepicker table tr td.range.today:hover.disabled:hover, 309 | .datepicker table tr td.range.today.disabled.disabled:hover, 310 | .datepicker table tr td.range.today.disabled:hover.disabled:hover, 311 | .datepicker table tr td.range.today[disabled]:hover, 312 | .datepicker table tr td.range.today:hover[disabled]:hover, 313 | .datepicker table tr td.range.today.disabled[disabled]:hover, 314 | .datepicker table tr td.range.today.disabled:hover[disabled]:hover, 315 | fieldset[disabled] .datepicker table tr td.range.today:hover, 316 | fieldset[disabled] .datepicker table tr td.range.today:hover:hover, 317 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover, 318 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:hover, 319 | .datepicker table tr td.range.today.disabled:focus, 320 | .datepicker table tr td.range.today:hover.disabled:focus, 321 | .datepicker table tr td.range.today.disabled.disabled:focus, 322 | .datepicker table tr td.range.today.disabled:hover.disabled:focus, 323 | .datepicker table tr td.range.today[disabled]:focus, 324 | .datepicker table tr td.range.today:hover[disabled]:focus, 325 | .datepicker table tr td.range.today.disabled[disabled]:focus, 326 | .datepicker table tr td.range.today.disabled:hover[disabled]:focus, 327 | fieldset[disabled] .datepicker table tr td.range.today:focus, 328 | fieldset[disabled] .datepicker table tr td.range.today:hover:focus, 329 | fieldset[disabled] .datepicker table tr td.range.today.disabled:focus, 330 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:focus, 331 | .datepicker table tr td.range.today.disabled:active, 332 | .datepicker table tr td.range.today:hover.disabled:active, 333 | .datepicker table tr td.range.today.disabled.disabled:active, 334 | .datepicker table tr td.range.today.disabled:hover.disabled:active, 335 | .datepicker table tr td.range.today[disabled]:active, 336 | .datepicker table tr td.range.today:hover[disabled]:active, 337 | .datepicker table tr td.range.today.disabled[disabled]:active, 338 | .datepicker table tr td.range.today.disabled:hover[disabled]:active, 339 | fieldset[disabled] .datepicker table tr td.range.today:active, 340 | fieldset[disabled] .datepicker table tr td.range.today:hover:active, 341 | fieldset[disabled] .datepicker table tr td.range.today.disabled:active, 342 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover:active, 343 | .datepicker table tr td.range.today.disabled.active, 344 | .datepicker table tr td.range.today:hover.disabled.active, 345 | .datepicker table tr td.range.today.disabled.disabled.active, 346 | .datepicker table tr td.range.today.disabled:hover.disabled.active, 347 | .datepicker table tr td.range.today[disabled].active, 348 | .datepicker table tr td.range.today:hover[disabled].active, 349 | .datepicker table tr td.range.today.disabled[disabled].active, 350 | .datepicker table tr td.range.today.disabled:hover[disabled].active, 351 | fieldset[disabled] .datepicker table tr td.range.today.active, 352 | fieldset[disabled] .datepicker table tr td.range.today:hover.active, 353 | fieldset[disabled] .datepicker table tr td.range.today.disabled.active, 354 | fieldset[disabled] .datepicker table tr td.range.today.disabled:hover.active { 355 | background-color: #f7ca77; 356 | border-color: #f1a417; 357 | } 358 | .datepicker table tr td.selected, 359 | .datepicker table tr td.selected:hover, 360 | .datepicker table tr td.selected.disabled, 361 | .datepicker table tr td.selected.disabled:hover { 362 | color: #ffffff; 363 | background-color: #999999; 364 | border-color: #555555; 365 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 366 | } 367 | .datepicker table tr td.selected:hover, 368 | .datepicker table tr td.selected:hover:hover, 369 | .datepicker table tr td.selected.disabled:hover, 370 | .datepicker table tr td.selected.disabled:hover:hover, 371 | .datepicker table tr td.selected:focus, 372 | .datepicker table tr td.selected:hover:focus, 373 | .datepicker table tr td.selected.disabled:focus, 374 | .datepicker table tr td.selected.disabled:hover:focus, 375 | .datepicker table tr td.selected:active, 376 | .datepicker table tr td.selected:hover:active, 377 | .datepicker table tr td.selected.disabled:active, 378 | .datepicker table tr td.selected.disabled:hover:active, 379 | .datepicker table tr td.selected.active, 380 | .datepicker table tr td.selected:hover.active, 381 | .datepicker table tr td.selected.disabled.active, 382 | .datepicker table tr td.selected.disabled:hover.active, 383 | .open .dropdown-toggle.datepicker table tr td.selected, 384 | .open .dropdown-toggle.datepicker table tr td.selected:hover, 385 | .open .dropdown-toggle.datepicker table tr td.selected.disabled, 386 | .open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { 387 | color: #ffffff; 388 | background-color: #858585; 389 | border-color: #373737; 390 | } 391 | .datepicker table tr td.selected:active, 392 | .datepicker table tr td.selected:hover:active, 393 | .datepicker table tr td.selected.disabled:active, 394 | .datepicker table tr td.selected.disabled:hover:active, 395 | .datepicker table tr td.selected.active, 396 | .datepicker table tr td.selected:hover.active, 397 | .datepicker table tr td.selected.disabled.active, 398 | .datepicker table tr td.selected.disabled:hover.active, 399 | .open .dropdown-toggle.datepicker table tr td.selected, 400 | .open .dropdown-toggle.datepicker table tr td.selected:hover, 401 | .open .dropdown-toggle.datepicker table tr td.selected.disabled, 402 | .open .dropdown-toggle.datepicker table tr td.selected.disabled:hover { 403 | background-image: none; 404 | } 405 | .datepicker table tr td.selected.disabled, 406 | .datepicker table tr td.selected:hover.disabled, 407 | .datepicker table tr td.selected.disabled.disabled, 408 | .datepicker table tr td.selected.disabled:hover.disabled, 409 | .datepicker table tr td.selected[disabled], 410 | .datepicker table tr td.selected:hover[disabled], 411 | .datepicker table tr td.selected.disabled[disabled], 412 | .datepicker table tr td.selected.disabled:hover[disabled], 413 | fieldset[disabled] .datepicker table tr td.selected, 414 | fieldset[disabled] .datepicker table tr td.selected:hover, 415 | fieldset[disabled] .datepicker table tr td.selected.disabled, 416 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover, 417 | .datepicker table tr td.selected.disabled:hover, 418 | .datepicker table tr td.selected:hover.disabled:hover, 419 | .datepicker table tr td.selected.disabled.disabled:hover, 420 | .datepicker table tr td.selected.disabled:hover.disabled:hover, 421 | .datepicker table tr td.selected[disabled]:hover, 422 | .datepicker table tr td.selected:hover[disabled]:hover, 423 | .datepicker table tr td.selected.disabled[disabled]:hover, 424 | .datepicker table tr td.selected.disabled:hover[disabled]:hover, 425 | fieldset[disabled] .datepicker table tr td.selected:hover, 426 | fieldset[disabled] .datepicker table tr td.selected:hover:hover, 427 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover, 428 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover:hover, 429 | .datepicker table tr td.selected.disabled:focus, 430 | .datepicker table tr td.selected:hover.disabled:focus, 431 | .datepicker table tr td.selected.disabled.disabled:focus, 432 | .datepicker table tr td.selected.disabled:hover.disabled:focus, 433 | .datepicker table tr td.selected[disabled]:focus, 434 | .datepicker table tr td.selected:hover[disabled]:focus, 435 | .datepicker table tr td.selected.disabled[disabled]:focus, 436 | .datepicker table tr td.selected.disabled:hover[disabled]:focus, 437 | fieldset[disabled] .datepicker table tr td.selected:focus, 438 | fieldset[disabled] .datepicker table tr td.selected:hover:focus, 439 | fieldset[disabled] .datepicker table tr td.selected.disabled:focus, 440 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover:focus, 441 | .datepicker table tr td.selected.disabled:active, 442 | .datepicker table tr td.selected:hover.disabled:active, 443 | .datepicker table tr td.selected.disabled.disabled:active, 444 | .datepicker table tr td.selected.disabled:hover.disabled:active, 445 | .datepicker table tr td.selected[disabled]:active, 446 | .datepicker table tr td.selected:hover[disabled]:active, 447 | .datepicker table tr td.selected.disabled[disabled]:active, 448 | .datepicker table tr td.selected.disabled:hover[disabled]:active, 449 | fieldset[disabled] .datepicker table tr td.selected:active, 450 | fieldset[disabled] .datepicker table tr td.selected:hover:active, 451 | fieldset[disabled] .datepicker table tr td.selected.disabled:active, 452 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover:active, 453 | .datepicker table tr td.selected.disabled.active, 454 | .datepicker table tr td.selected:hover.disabled.active, 455 | .datepicker table tr td.selected.disabled.disabled.active, 456 | .datepicker table tr td.selected.disabled:hover.disabled.active, 457 | .datepicker table tr td.selected[disabled].active, 458 | .datepicker table tr td.selected:hover[disabled].active, 459 | .datepicker table tr td.selected.disabled[disabled].active, 460 | .datepicker table tr td.selected.disabled:hover[disabled].active, 461 | fieldset[disabled] .datepicker table tr td.selected.active, 462 | fieldset[disabled] .datepicker table tr td.selected:hover.active, 463 | fieldset[disabled] .datepicker table tr td.selected.disabled.active, 464 | fieldset[disabled] .datepicker table tr td.selected.disabled:hover.active { 465 | background-color: #999999; 466 | border-color: #555555; 467 | } 468 | .datepicker table tr td.active, 469 | .datepicker table tr td.active:hover, 470 | .datepicker table tr td.active.disabled, 471 | .datepicker table tr td.active.disabled:hover { 472 | color: #ffffff; 473 | background-color: #428bca; 474 | border-color: #357ebd; 475 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 476 | } 477 | .datepicker table tr td.active:hover, 478 | .datepicker table tr td.active:hover:hover, 479 | .datepicker table tr td.active.disabled:hover, 480 | .datepicker table tr td.active.disabled:hover:hover, 481 | .datepicker table tr td.active:focus, 482 | .datepicker table tr td.active:hover:focus, 483 | .datepicker table tr td.active.disabled:focus, 484 | .datepicker table tr td.active.disabled:hover:focus, 485 | .datepicker table tr td.active:active, 486 | .datepicker table tr td.active:hover:active, 487 | .datepicker table tr td.active.disabled:active, 488 | .datepicker table tr td.active.disabled:hover:active, 489 | .datepicker table tr td.active.active, 490 | .datepicker table tr td.active:hover.active, 491 | .datepicker table tr td.active.disabled.active, 492 | .datepicker table tr td.active.disabled:hover.active, 493 | .open .dropdown-toggle.datepicker table tr td.active, 494 | .open .dropdown-toggle.datepicker table tr td.active:hover, 495 | .open .dropdown-toggle.datepicker table tr td.active.disabled, 496 | .open .dropdown-toggle.datepicker table tr td.active.disabled:hover { 497 | color: #ffffff; 498 | background-color: #3276b1; 499 | border-color: #285e8e; 500 | } 501 | .datepicker table tr td.active:active, 502 | .datepicker table tr td.active:hover:active, 503 | .datepicker table tr td.active.disabled:active, 504 | .datepicker table tr td.active.disabled:hover:active, 505 | .datepicker table tr td.active.active, 506 | .datepicker table tr td.active:hover.active, 507 | .datepicker table tr td.active.disabled.active, 508 | .datepicker table tr td.active.disabled:hover.active, 509 | .open .dropdown-toggle.datepicker table tr td.active, 510 | .open .dropdown-toggle.datepicker table tr td.active:hover, 511 | .open .dropdown-toggle.datepicker table tr td.active.disabled, 512 | .open .dropdown-toggle.datepicker table tr td.active.disabled:hover { 513 | background-image: none; 514 | } 515 | .datepicker table tr td.active.disabled, 516 | .datepicker table tr td.active:hover.disabled, 517 | .datepicker table tr td.active.disabled.disabled, 518 | .datepicker table tr td.active.disabled:hover.disabled, 519 | .datepicker table tr td.active[disabled], 520 | .datepicker table tr td.active:hover[disabled], 521 | .datepicker table tr td.active.disabled[disabled], 522 | .datepicker table tr td.active.disabled:hover[disabled], 523 | fieldset[disabled] .datepicker table tr td.active, 524 | fieldset[disabled] .datepicker table tr td.active:hover, 525 | fieldset[disabled] .datepicker table tr td.active.disabled, 526 | fieldset[disabled] .datepicker table tr td.active.disabled:hover, 527 | .datepicker table tr td.active.disabled:hover, 528 | .datepicker table tr td.active:hover.disabled:hover, 529 | .datepicker table tr td.active.disabled.disabled:hover, 530 | .datepicker table tr td.active.disabled:hover.disabled:hover, 531 | .datepicker table tr td.active[disabled]:hover, 532 | .datepicker table tr td.active:hover[disabled]:hover, 533 | .datepicker table tr td.active.disabled[disabled]:hover, 534 | .datepicker table tr td.active.disabled:hover[disabled]:hover, 535 | fieldset[disabled] .datepicker table tr td.active:hover, 536 | fieldset[disabled] .datepicker table tr td.active:hover:hover, 537 | fieldset[disabled] .datepicker table tr td.active.disabled:hover, 538 | fieldset[disabled] .datepicker table tr td.active.disabled:hover:hover, 539 | .datepicker table tr td.active.disabled:focus, 540 | .datepicker table tr td.active:hover.disabled:focus, 541 | .datepicker table tr td.active.disabled.disabled:focus, 542 | .datepicker table tr td.active.disabled:hover.disabled:focus, 543 | .datepicker table tr td.active[disabled]:focus, 544 | .datepicker table tr td.active:hover[disabled]:focus, 545 | .datepicker table tr td.active.disabled[disabled]:focus, 546 | .datepicker table tr td.active.disabled:hover[disabled]:focus, 547 | fieldset[disabled] .datepicker table tr td.active:focus, 548 | fieldset[disabled] .datepicker table tr td.active:hover:focus, 549 | fieldset[disabled] .datepicker table tr td.active.disabled:focus, 550 | fieldset[disabled] .datepicker table tr td.active.disabled:hover:focus, 551 | .datepicker table tr td.active.disabled:active, 552 | .datepicker table tr td.active:hover.disabled:active, 553 | .datepicker table tr td.active.disabled.disabled:active, 554 | .datepicker table tr td.active.disabled:hover.disabled:active, 555 | .datepicker table tr td.active[disabled]:active, 556 | .datepicker table tr td.active:hover[disabled]:active, 557 | .datepicker table tr td.active.disabled[disabled]:active, 558 | .datepicker table tr td.active.disabled:hover[disabled]:active, 559 | fieldset[disabled] .datepicker table tr td.active:active, 560 | fieldset[disabled] .datepicker table tr td.active:hover:active, 561 | fieldset[disabled] .datepicker table tr td.active.disabled:active, 562 | fieldset[disabled] .datepicker table tr td.active.disabled:hover:active, 563 | .datepicker table tr td.active.disabled.active, 564 | .datepicker table tr td.active:hover.disabled.active, 565 | .datepicker table tr td.active.disabled.disabled.active, 566 | .datepicker table tr td.active.disabled:hover.disabled.active, 567 | .datepicker table tr td.active[disabled].active, 568 | .datepicker table tr td.active:hover[disabled].active, 569 | .datepicker table tr td.active.disabled[disabled].active, 570 | .datepicker table tr td.active.disabled:hover[disabled].active, 571 | fieldset[disabled] .datepicker table tr td.active.active, 572 | fieldset[disabled] .datepicker table tr td.active:hover.active, 573 | fieldset[disabled] .datepicker table tr td.active.disabled.active, 574 | fieldset[disabled] .datepicker table tr td.active.disabled:hover.active { 575 | background-color: #428bca; 576 | border-color: #357ebd; 577 | } 578 | .datepicker table tr td span { 579 | display: block; 580 | width: 23%; 581 | height: 54px; 582 | line-height: 54px; 583 | float: left; 584 | margin: 1%; 585 | cursor: pointer; 586 | border-radius: 4px; 587 | } 588 | .datepicker table tr td span:hover { 589 | background: #eeeeee; 590 | } 591 | .datepicker table tr td span.disabled, 592 | .datepicker table tr td span.disabled:hover { 593 | background: none; 594 | color: #999999; 595 | cursor: default; 596 | } 597 | .datepicker table tr td span.active, 598 | .datepicker table tr td span.active:hover, 599 | .datepicker table tr td span.active.disabled, 600 | .datepicker table tr td span.active.disabled:hover { 601 | color: #ffffff; 602 | background-color: #428bca; 603 | border-color: #357ebd; 604 | text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); 605 | } 606 | .datepicker table tr td span.active:hover, 607 | .datepicker table tr td span.active:hover:hover, 608 | .datepicker table tr td span.active.disabled:hover, 609 | .datepicker table tr td span.active.disabled:hover:hover, 610 | .datepicker table tr td span.active:focus, 611 | .datepicker table tr td span.active:hover:focus, 612 | .datepicker table tr td span.active.disabled:focus, 613 | .datepicker table tr td span.active.disabled:hover:focus, 614 | .datepicker table tr td span.active:active, 615 | .datepicker table tr td span.active:hover:active, 616 | .datepicker table tr td span.active.disabled:active, 617 | .datepicker table tr td span.active.disabled:hover:active, 618 | .datepicker table tr td span.active.active, 619 | .datepicker table tr td span.active:hover.active, 620 | .datepicker table tr td span.active.disabled.active, 621 | .datepicker table tr td span.active.disabled:hover.active, 622 | .open .dropdown-toggle.datepicker table tr td span.active, 623 | .open .dropdown-toggle.datepicker table tr td span.active:hover, 624 | .open .dropdown-toggle.datepicker table tr td span.active.disabled, 625 | .open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { 626 | color: #ffffff; 627 | background-color: #3276b1; 628 | border-color: #285e8e; 629 | } 630 | .datepicker table tr td span.active:active, 631 | .datepicker table tr td span.active:hover:active, 632 | .datepicker table tr td span.active.disabled:active, 633 | .datepicker table tr td span.active.disabled:hover:active, 634 | .datepicker table tr td span.active.active, 635 | .datepicker table tr td span.active:hover.active, 636 | .datepicker table tr td span.active.disabled.active, 637 | .datepicker table tr td span.active.disabled:hover.active, 638 | .open .dropdown-toggle.datepicker table tr td span.active, 639 | .open .dropdown-toggle.datepicker table tr td span.active:hover, 640 | .open .dropdown-toggle.datepicker table tr td span.active.disabled, 641 | .open .dropdown-toggle.datepicker table tr td span.active.disabled:hover { 642 | background-image: none; 643 | } 644 | .datepicker table tr td span.active.disabled, 645 | .datepicker table tr td span.active:hover.disabled, 646 | .datepicker table tr td span.active.disabled.disabled, 647 | .datepicker table tr td span.active.disabled:hover.disabled, 648 | .datepicker table tr td span.active[disabled], 649 | .datepicker table tr td span.active:hover[disabled], 650 | .datepicker table tr td span.active.disabled[disabled], 651 | .datepicker table tr td span.active.disabled:hover[disabled], 652 | fieldset[disabled] .datepicker table tr td span.active, 653 | fieldset[disabled] .datepicker table tr td span.active:hover, 654 | fieldset[disabled] .datepicker table tr td span.active.disabled, 655 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover, 656 | .datepicker table tr td span.active.disabled:hover, 657 | .datepicker table tr td span.active:hover.disabled:hover, 658 | .datepicker table tr td span.active.disabled.disabled:hover, 659 | .datepicker table tr td span.active.disabled:hover.disabled:hover, 660 | .datepicker table tr td span.active[disabled]:hover, 661 | .datepicker table tr td span.active:hover[disabled]:hover, 662 | .datepicker table tr td span.active.disabled[disabled]:hover, 663 | .datepicker table tr td span.active.disabled:hover[disabled]:hover, 664 | fieldset[disabled] .datepicker table tr td span.active:hover, 665 | fieldset[disabled] .datepicker table tr td span.active:hover:hover, 666 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover, 667 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover:hover, 668 | .datepicker table tr td span.active.disabled:focus, 669 | .datepicker table tr td span.active:hover.disabled:focus, 670 | .datepicker table tr td span.active.disabled.disabled:focus, 671 | .datepicker table tr td span.active.disabled:hover.disabled:focus, 672 | .datepicker table tr td span.active[disabled]:focus, 673 | .datepicker table tr td span.active:hover[disabled]:focus, 674 | .datepicker table tr td span.active.disabled[disabled]:focus, 675 | .datepicker table tr td span.active.disabled:hover[disabled]:focus, 676 | fieldset[disabled] .datepicker table tr td span.active:focus, 677 | fieldset[disabled] .datepicker table tr td span.active:hover:focus, 678 | fieldset[disabled] .datepicker table tr td span.active.disabled:focus, 679 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover:focus, 680 | .datepicker table tr td span.active.disabled:active, 681 | .datepicker table tr td span.active:hover.disabled:active, 682 | .datepicker table tr td span.active.disabled.disabled:active, 683 | .datepicker table tr td span.active.disabled:hover.disabled:active, 684 | .datepicker table tr td span.active[disabled]:active, 685 | .datepicker table tr td span.active:hover[disabled]:active, 686 | .datepicker table tr td span.active.disabled[disabled]:active, 687 | .datepicker table tr td span.active.disabled:hover[disabled]:active, 688 | fieldset[disabled] .datepicker table tr td span.active:active, 689 | fieldset[disabled] .datepicker table tr td span.active:hover:active, 690 | fieldset[disabled] .datepicker table tr td span.active.disabled:active, 691 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover:active, 692 | .datepicker table tr td span.active.disabled.active, 693 | .datepicker table tr td span.active:hover.disabled.active, 694 | .datepicker table tr td span.active.disabled.disabled.active, 695 | .datepicker table tr td span.active.disabled:hover.disabled.active, 696 | .datepicker table tr td span.active[disabled].active, 697 | .datepicker table tr td span.active:hover[disabled].active, 698 | .datepicker table tr td span.active.disabled[disabled].active, 699 | .datepicker table tr td span.active.disabled:hover[disabled].active, 700 | fieldset[disabled] .datepicker table tr td span.active.active, 701 | fieldset[disabled] .datepicker table tr td span.active:hover.active, 702 | fieldset[disabled] .datepicker table tr td span.active.disabled.active, 703 | fieldset[disabled] .datepicker table tr td span.active.disabled:hover.active { 704 | background-color: #428bca; 705 | border-color: #357ebd; 706 | } 707 | .datepicker table tr td span.old, 708 | .datepicker table tr td span.new { 709 | color: #999999; 710 | } 711 | .datepicker th.datepicker-switch { 712 | width: 145px; 713 | } 714 | .datepicker thead tr:first-child th, 715 | .datepicker tfoot tr th { 716 | cursor: pointer; 717 | } 718 | .datepicker thead tr:first-child th:hover, 719 | .datepicker tfoot tr th:hover { 720 | background: #eeeeee; 721 | } 722 | .datepicker .cw { 723 | font-size: 10px; 724 | width: 12px; 725 | padding: 0 2px 0 5px; 726 | vertical-align: middle; 727 | } 728 | .datepicker thead tr:first-child th.cw { 729 | cursor: default; 730 | background-color: transparent; 731 | } 732 | .input-group.date .input-group-addon i { 733 | cursor: pointer; 734 | width: 16px; 735 | height: 16px; 736 | } 737 | .input-daterange input { 738 | text-align: center; 739 | } 740 | .input-daterange input:first-child { 741 | border-radius: 3px 0 0 3px; 742 | } 743 | .input-daterange input:last-child { 744 | border-radius: 0 3px 3px 0; 745 | } 746 | .input-daterange .input-group-addon { 747 | width: auto; 748 | min-width: 16px; 749 | padding: 4px 5px; 750 | font-weight: normal; 751 | line-height: 1.428571429; 752 | text-align: center; 753 | text-shadow: 0 1px 0 #fff; 754 | vertical-align: middle; 755 | background-color: #eeeeee; 756 | border-width: 1px 0; 757 | margin-left: -5px; 758 | margin-right: -5px; 759 | } 760 | .datepicker.dropdown-menu { 761 | position: absolute; 762 | top: 100%; 763 | left: 0; 764 | z-index: 1000; 765 | float: left; 766 | display: none; 767 | min-width: 160px; 768 | list-style: none; 769 | background-color: #ffffff; 770 | border: 1px solid #ccc; 771 | border: 1px solid rgba(0, 0, 0, 0.2); 772 | border-radius: 5px; 773 | -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 774 | -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 775 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); 776 | -webkit-background-clip: padding-box; 777 | -moz-background-clip: padding; 778 | background-clip: padding-box; 779 | *border-right-width: 2px; 780 | *border-bottom-width: 2px; 781 | color: #333333; 782 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 783 | font-size: 13px; 784 | line-height: 1.428571429; 785 | } 786 | .datepicker.dropdown-menu th, 787 | .datepicker.dropdown-menu td { 788 | padding: 4px 5px; 789 | } 790 | -------------------------------------------------------------------------------- /src/assets/js/plugins/summernote/summernote.css: -------------------------------------------------------------------------------- 1 | .note-editor{position:relative;overflow:hidden;border:1px solid #a9a9a9}.note-editor .note-dropzone{position:absolute;z-index:100;display:none;color:#87cefa;background-color:white;opacity:.95;pointer-event:none}.note-editor .note-dropzone .note-dropzone-message{display:table-cell;font-size:28px;font-weight:bold;text-align:center;vertical-align:middle}.note-editor .note-dropzone.hover{color:#098ddf}.note-editor.dragover .note-dropzone{display:table}.note-editor.codeview .note-editing-area .note-editable{display:none}.note-editor.codeview .note-editing-area .note-codable{display:block}.note-editor.fullscreen{position:fixed;top:0;left:0;z-index:1050;width:100%}.note-editor.fullscreen .note-editable{background-color:white}.note-editor.fullscreen .note-resizebar{display:none}.note-editor .note-editing-area{position:relative;overflow:hidden}.note-editor .note-editing-area .note-editable{padding:10px;overflow:auto;color:#000;background-color:#fff;outline:0}.note-editor .note-editing-area .note-editable[contenteditable=true]:empty:not(:focus):before{content:attr(data-placeholder)}.note-editor .note-editing-area .note-editable[contenteditable="false"]{background-color:#e5e5e5}.note-editor .note-editing-area .note-codable{display:none;width:100%;padding:10px;margin-bottom:0;font-family:Menlo,Monaco,monospace,sans-serif;font-size:14px;color:#ccc;background-color:#222;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;box-shadow:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;resize:none}.note-editor .note-statusbar{background-color:#f5f5f5}.note-editor .note-statusbar .note-resizebar{width:100%;height:8px;padding-top:1px;cursor:ns-resize}.note-editor .note-statusbar .note-resizebar .note-icon-bar{width:20px;margin:1px auto;border-top:1px solid #a9a9a9}.note-air-editor{outline:0}.note-popover .popover{max-width:none}.note-popover .popover .popover-content a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.note-popover .popover .arrow{left:20px}.note-popover .popover .popover-content,.panel-heading.note-toolbar{padding:0 0 5px 5px;margin:0}.note-popover .popover .popover-content>.btn-group,.panel-heading.note-toolbar>.btn-group{margin-top:5px;margin-right:5px;margin-left:0}.note-popover .popover .popover-content .btn-group .note-table,.panel-heading.note-toolbar .btn-group .note-table{min-width:0;padding:5px}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker{font-size:18px}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-mousecatcher{position:absolute!important;z-index:3;width:10em;height:10em;cursor:pointer}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-unhighlighted{position:relative!important;z-index:1;width:5em;height:5em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover .popover-content .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted,.panel-heading.note-toolbar .btn-group .note-table .note-dimension-picker .note-dimension-picker-highlighted{position:absolute!important;z-index:2;width:1em;height:1em;background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC') repeat}.note-popover .popover .popover-content .note-style h1,.panel-heading.note-toolbar .note-style h1,.note-popover .popover .popover-content .note-style h2,.panel-heading.note-toolbar .note-style h2,.note-popover .popover .popover-content .note-style h3,.panel-heading.note-toolbar .note-style h3,.note-popover .popover .popover-content .note-style h4,.panel-heading.note-toolbar .note-style h4,.note-popover .popover .popover-content .note-style h5,.panel-heading.note-toolbar .note-style h5,.note-popover .popover .popover-content .note-style h6,.panel-heading.note-toolbar .note-style h6,.note-popover .popover .popover-content .note-style blockquote,.panel-heading.note-toolbar .note-style blockquote{margin:0}.note-popover .popover .popover-content .note-color .dropdown-toggle,.panel-heading.note-toolbar .note-color .dropdown-toggle{width:20px;padding-left:5px}.note-popover .popover .popover-content .note-color .dropdown-menu,.panel-heading.note-toolbar .note-color .dropdown-menu{min-width:340px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group{margin:0}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group:first-child,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group:first-child{margin:0 5px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-palette-title,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-palette-title{margin:2px 7px;font-size:12px;text-align:center;border-bottom:1px solid #eee}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset{padding:0 3px;margin:3px;font-size:11px;cursor:pointer;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-row,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-row{height:20px}.note-popover .popover .popover-content .note-color .dropdown-menu .btn-group .note-color-reset:hover,.panel-heading.note-toolbar .note-color .dropdown-menu .btn-group .note-color-reset:hover{background:#eee}.note-popover .popover .popover-content .note-para .dropdown-menu,.panel-heading.note-toolbar .note-para .dropdown-menu{min-width:216px;padding:5px}.note-popover .popover .popover-content .note-para .dropdown-menu>div:first-child,.panel-heading.note-toolbar .note-para .dropdown-menu>div:first-child{margin-right:5px}.note-popover .popover .popover-content .dropdown-menu,.panel-heading.note-toolbar .dropdown-menu{min-width:90px}.note-popover .popover .popover-content .dropdown-menu.right,.panel-heading.note-toolbar .dropdown-menu.right{right:0;left:auto}.note-popover .popover .popover-content .dropdown-menu.right::before,.panel-heading.note-toolbar .dropdown-menu.right::before{right:9px;left:auto!important}.note-popover .popover .popover-content .dropdown-menu.right::after,.panel-heading.note-toolbar .dropdown-menu.right::after{right:10px;left:auto!important}.note-popover .popover .popover-content .dropdown-menu.note-check li a i,.panel-heading.note-toolbar .dropdown-menu.note-check li a i{color:deepskyblue;visibility:hidden}.note-popover .popover .popover-content .dropdown-menu.note-check li a.checked i,.panel-heading.note-toolbar .dropdown-menu.note-check li a.checked i{visibility:visible}.note-popover .popover .popover-content .note-fontsize-10,.panel-heading.note-toolbar .note-fontsize-10{font-size:10px}.note-popover .popover .popover-content .note-color-palette,.panel-heading.note-toolbar .note-color-palette{line-height:1}.note-popover .popover .popover-content .note-color-palette div .note-color-btn,.panel-heading.note-toolbar .note-color-palette div .note-color-btn{width:20px;height:20px;padding:0;margin:0;border:1px solid #fff}.note-popover .popover .popover-content .note-color-palette div .note-color-btn:hover,.panel-heading.note-toolbar .note-color-palette div .note-color-btn:hover{border:1px solid #000}.note-dialog>div{display:none}.note-dialog .form-group{margin-right:0;margin-left:0}.note-dialog .note-modal-form{margin:0}.note-dialog .note-image-dialog .note-dropzone{min-height:100px;margin-bottom:10px;font-size:30px;line-height:4;color:lightgray;text-align:center;border:4px dashed lightgray}.note-dialog .note-help-dialog{font-size:12px;color:#ccc;background:transparent;background-color:#222!important;border:0;-webkit-opacity:.9;-khtml-opacity:.9;-moz-opacity:.9;opacity:.9;-ms-filter:alpha(opacity=90);filter:alpha(opacity=90)}.note-dialog .note-help-dialog .modal-content{background:transparent;border:1px solid white;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.note-dialog .note-help-dialog a{font-size:12px;color:white}.note-dialog .note-help-dialog .title{padding-bottom:5px;margin-bottom:10px;font-size:14px;font-weight:bold;color:white;border-bottom:white 1px solid}.note-dialog .note-help-dialog .modal-close{font-size:14px;color:#dd0;cursor:pointer}.note-dialog .note-help-dialog .text-center{margin:10px 0 0}.note-dialog .note-help-dialog .note-shortcut{padding-top:8px;padding-bottom:8px}.note-dialog .note-help-dialog .note-shortcut-row{margin-right:-5px;margin-left:-5px}.note-dialog .note-help-dialog .note-shortcut-col{padding-right:5px;padding-left:5px}.note-dialog .note-help-dialog .note-shortcut-title{font-size:13px;font-weight:bold;color:#dd0}.note-dialog .note-help-dialog .note-shortcut-key{font-family:"Courier New";color:#dd0;text-align:right}.note-handle .note-control-selection{position:absolute;display:none;border:1px solid black}.note-handle .note-control-selection>div{position:absolute}.note-handle .note-control-selection .note-control-selection-bg{width:100%;height:100%;background-color:black;-webkit-opacity:.3;-khtml-opacity:.3;-moz-opacity:.3;opacity:.3;-ms-filter:alpha(opacity=30);filter:alpha(opacity=30)}.note-handle .note-control-selection .note-control-handle{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-holder{width:7px;height:7px;border:1px solid black}.note-handle .note-control-selection .note-control-sizing{width:7px;height:7px;background-color:white;border:1px solid black}.note-handle .note-control-selection .note-control-nw{top:-5px;left:-5px;border-right:0;border-bottom:0}.note-handle .note-control-selection .note-control-ne{top:-5px;right:-5px;border-bottom:0;border-left:none}.note-handle .note-control-selection .note-control-sw{bottom:-5px;left:-5px;border-top:0;border-right:0}.note-handle .note-control-selection .note-control-se{right:-5px;bottom:-5px;cursor:se-resize}.note-handle .note-control-selection .note-control-se.note-control-holder{cursor:default;border-top:0;border-left:none}.note-handle .note-control-selection .note-control-selection-info{right:0;bottom:0;padding:5px;margin:5px;font-size:12px;color:white;background-color:black;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-opacity:.7;-khtml-opacity:.7;-moz-opacity:.7;opacity:.7;-ms-filter:alpha(opacity=70);filter:alpha(opacity=70)} -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/sweetalert.css: -------------------------------------------------------------------------------- 1 | body.stop-scrolling { 2 | height: 100%; 3 | overflow: hidden; } 4 | 5 | .sweet-overlay { 6 | background-color: black; 7 | /* IE8 */ 8 | -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; 9 | /* IE8 */ 10 | background-color: rgba(0, 0, 0, 0.4); 11 | position: fixed; 12 | left: 0; 13 | right: 0; 14 | top: 0; 15 | bottom: 0; 16 | display: none; 17 | z-index: 10000; } 18 | 19 | .sweet-alert { 20 | background-color: white; 21 | font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; 22 | width: 478px; 23 | padding: 17px; 24 | border-radius: 5px; 25 | text-align: center; 26 | position: fixed; 27 | left: 50%; 28 | top: 50%; 29 | margin-left: -256px; 30 | margin-top: -200px; 31 | overflow: hidden; 32 | display: none; 33 | z-index: 99999; } 34 | @media all and (max-width: 540px) { 35 | .sweet-alert { 36 | width: auto; 37 | margin-left: 0; 38 | margin-right: 0; 39 | left: 15px; 40 | right: 15px; } } 41 | .sweet-alert h2 { 42 | color: #575757; 43 | font-size: 30px; 44 | text-align: center; 45 | font-weight: 600; 46 | text-transform: none; 47 | position: relative; 48 | margin: 25px 0; 49 | padding: 0; 50 | line-height: 40px; 51 | display: block; } 52 | .sweet-alert p { 53 | color: #797979; 54 | font-size: 16px; 55 | text-align: center; 56 | font-weight: 300; 57 | position: relative; 58 | text-align: inherit; 59 | float: none; 60 | margin: 0; 61 | padding: 0; 62 | line-height: normal; } 63 | .sweet-alert fieldset { 64 | border: none; 65 | position: relative; } 66 | .sweet-alert .sa-error-container { 67 | background-color: #f1f1f1; 68 | margin-left: -17px; 69 | margin-right: -17px; 70 | overflow: hidden; 71 | padding: 0 10px; 72 | max-height: 0; 73 | webkit-transition: padding 0.15s, max-height 0.15s; 74 | transition: padding 0.15s, max-height 0.15s; } 75 | .sweet-alert .sa-error-container.show { 76 | padding: 10px 0; 77 | max-height: 100px; 78 | webkit-transition: padding 0.2s, max-height 0.2s; 79 | transition: padding 0.25s, max-height 0.25s; } 80 | .sweet-alert .sa-error-container .icon { 81 | display: inline-block; 82 | width: 24px; 83 | height: 24px; 84 | border-radius: 50%; 85 | background-color: #ea7d7d; 86 | color: white; 87 | line-height: 24px; 88 | text-align: center; 89 | margin-right: 3px; } 90 | .sweet-alert .sa-error-container p { 91 | display: inline-block; } 92 | .sweet-alert .sa-input-error { 93 | position: absolute; 94 | top: 29px; 95 | right: 26px; 96 | width: 20px; 97 | height: 20px; 98 | opacity: 0; 99 | -webkit-transform: scale(0.5); 100 | transform: scale(0.5); 101 | -webkit-transform-origin: 50% 50%; 102 | transform-origin: 50% 50%; 103 | -webkit-transition: all 0.1s; 104 | transition: all 0.1s; } 105 | .sweet-alert .sa-input-error::before, .sweet-alert .sa-input-error::after { 106 | content: ""; 107 | width: 20px; 108 | height: 6px; 109 | background-color: #f06e57; 110 | border-radius: 3px; 111 | position: absolute; 112 | top: 50%; 113 | margin-top: -4px; 114 | left: 50%; 115 | margin-left: -9px; } 116 | .sweet-alert .sa-input-error::before { 117 | -webkit-transform: rotate(-45deg); 118 | transform: rotate(-45deg); } 119 | .sweet-alert .sa-input-error::after { 120 | -webkit-transform: rotate(45deg); 121 | transform: rotate(45deg); } 122 | .sweet-alert .sa-input-error.show { 123 | opacity: 1; 124 | -webkit-transform: scale(1); 125 | transform: scale(1); } 126 | .sweet-alert input { 127 | width: 100%; 128 | box-sizing: border-box; 129 | border-radius: 3px; 130 | border: 1px solid #d7d7d7; 131 | height: 43px; 132 | margin-top: 10px; 133 | margin-bottom: 17px; 134 | font-size: 18px; 135 | box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.06); 136 | padding: 0 12px; 137 | display: none; 138 | -webkit-transition: all 0.3s; 139 | transition: all 0.3s; } 140 | .sweet-alert input:focus { 141 | outline: none; 142 | box-shadow: 0px 0px 3px #c4e6f5; 143 | border: 1px solid #b4dbed; } 144 | .sweet-alert input:focus::-moz-placeholder { 145 | transition: opacity 0.3s 0.03s ease; 146 | opacity: 0.5; } 147 | .sweet-alert input:focus:-ms-input-placeholder { 148 | transition: opacity 0.3s 0.03s ease; 149 | opacity: 0.5; } 150 | .sweet-alert input:focus::-webkit-input-placeholder { 151 | transition: opacity 0.3s 0.03s ease; 152 | opacity: 0.5; } 153 | .sweet-alert input::-moz-placeholder { 154 | color: #bdbdbd; } 155 | .sweet-alert input:-ms-input-placeholder { 156 | color: #bdbdbd; } 157 | .sweet-alert input::-webkit-input-placeholder { 158 | color: #bdbdbd; } 159 | .sweet-alert.show-input input { 160 | display: block; } 161 | .sweet-alert .sa-confirm-button-container { 162 | display: inline-block; 163 | position: relative; } 164 | .sweet-alert .la-ball-fall { 165 | position: absolute; 166 | left: 50%; 167 | top: 50%; 168 | margin-left: -27px; 169 | margin-top: 4px; 170 | opacity: 0; 171 | visibility: hidden; } 172 | .sweet-alert button { 173 | background-color: #8CD4F5; 174 | color: white; 175 | border: none; 176 | box-shadow: none; 177 | font-size: 17px; 178 | font-weight: 500; 179 | -webkit-border-radius: 4px; 180 | border-radius: 5px; 181 | padding: 10px 32px; 182 | margin: 26px 5px 0 5px; 183 | cursor: pointer; } 184 | .sweet-alert button:focus { 185 | outline: none; 186 | box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } 187 | .sweet-alert button:hover { 188 | background-color: #7ecff4; } 189 | .sweet-alert button:active { 190 | background-color: #5dc2f1; } 191 | .sweet-alert button.cancel { 192 | background-color: #C1C1C1; } 193 | .sweet-alert button.cancel:hover { 194 | background-color: #b9b9b9; } 195 | .sweet-alert button.cancel:active { 196 | background-color: #a8a8a8; } 197 | .sweet-alert button.cancel:focus { 198 | box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px inset !important; } 199 | .sweet-alert button[disabled] { 200 | opacity: .6; 201 | cursor: default; } 202 | .sweet-alert button.confirm[disabled] { 203 | color: transparent; } 204 | .sweet-alert button.confirm[disabled] ~ .la-ball-fall { 205 | opacity: 1; 206 | visibility: visible; 207 | transition-delay: 0s; } 208 | .sweet-alert button::-moz-focus-inner { 209 | border: 0; } 210 | .sweet-alert[data-has-cancel-button=false] button { 211 | box-shadow: none !important; } 212 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { 213 | padding-bottom: 40px; } 214 | .sweet-alert .sa-icon { 215 | width: 80px; 216 | height: 80px; 217 | border: 4px solid gray; 218 | -webkit-border-radius: 40px; 219 | border-radius: 40px; 220 | border-radius: 50%; 221 | margin: 20px auto; 222 | padding: 0; 223 | position: relative; 224 | box-sizing: content-box; } 225 | .sweet-alert .sa-icon.sa-error { 226 | border-color: #F27474; } 227 | .sweet-alert .sa-icon.sa-error .sa-x-mark { 228 | position: relative; 229 | display: block; } 230 | .sweet-alert .sa-icon.sa-error .sa-line { 231 | position: absolute; 232 | height: 5px; 233 | width: 47px; 234 | background-color: #F27474; 235 | display: block; 236 | top: 37px; 237 | border-radius: 2px; } 238 | .sweet-alert .sa-icon.sa-error .sa-line.sa-left { 239 | -webkit-transform: rotate(45deg); 240 | transform: rotate(45deg); 241 | left: 17px; } 242 | .sweet-alert .sa-icon.sa-error .sa-line.sa-right { 243 | -webkit-transform: rotate(-45deg); 244 | transform: rotate(-45deg); 245 | right: 16px; } 246 | .sweet-alert .sa-icon.sa-warning { 247 | border-color: #F8BB86; } 248 | .sweet-alert .sa-icon.sa-warning .sa-body { 249 | position: absolute; 250 | width: 5px; 251 | height: 47px; 252 | left: 50%; 253 | top: 10px; 254 | -webkit-border-radius: 2px; 255 | border-radius: 2px; 256 | margin-left: -2px; 257 | background-color: #F8BB86; } 258 | .sweet-alert .sa-icon.sa-warning .sa-dot { 259 | position: absolute; 260 | width: 7px; 261 | height: 7px; 262 | -webkit-border-radius: 50%; 263 | border-radius: 50%; 264 | margin-left: -3px; 265 | left: 50%; 266 | bottom: 10px; 267 | background-color: #F8BB86; } 268 | .sweet-alert .sa-icon.sa-info { 269 | border-color: #C9DAE1; } 270 | .sweet-alert .sa-icon.sa-info::before { 271 | content: ""; 272 | position: absolute; 273 | width: 5px; 274 | height: 29px; 275 | left: 50%; 276 | bottom: 17px; 277 | border-radius: 2px; 278 | margin-left: -2px; 279 | background-color: #C9DAE1; } 280 | .sweet-alert .sa-icon.sa-info::after { 281 | content: ""; 282 | position: absolute; 283 | width: 7px; 284 | height: 7px; 285 | border-radius: 50%; 286 | margin-left: -3px; 287 | top: 19px; 288 | background-color: #C9DAE1; } 289 | .sweet-alert .sa-icon.sa-success { 290 | border-color: #A5DC86; } 291 | .sweet-alert .sa-icon.sa-success::before, .sweet-alert .sa-icon.sa-success::after { 292 | content: ''; 293 | -webkit-border-radius: 40px; 294 | border-radius: 40px; 295 | border-radius: 50%; 296 | position: absolute; 297 | width: 60px; 298 | height: 120px; 299 | background: white; 300 | -webkit-transform: rotate(45deg); 301 | transform: rotate(45deg); } 302 | .sweet-alert .sa-icon.sa-success::before { 303 | -webkit-border-radius: 120px 0 0 120px; 304 | border-radius: 120px 0 0 120px; 305 | top: -7px; 306 | left: -33px; 307 | -webkit-transform: rotate(-45deg); 308 | transform: rotate(-45deg); 309 | -webkit-transform-origin: 60px 60px; 310 | transform-origin: 60px 60px; } 311 | .sweet-alert .sa-icon.sa-success::after { 312 | -webkit-border-radius: 0 120px 120px 0; 313 | border-radius: 0 120px 120px 0; 314 | top: -11px; 315 | left: 30px; 316 | -webkit-transform: rotate(-45deg); 317 | transform: rotate(-45deg); 318 | -webkit-transform-origin: 0px 60px; 319 | transform-origin: 0px 60px; } 320 | .sweet-alert .sa-icon.sa-success .sa-placeholder { 321 | width: 80px; 322 | height: 80px; 323 | border: 4px solid rgba(165, 220, 134, 0.2); 324 | -webkit-border-radius: 40px; 325 | border-radius: 40px; 326 | border-radius: 50%; 327 | box-sizing: content-box; 328 | position: absolute; 329 | left: -4px; 330 | top: -4px; 331 | z-index: 2; } 332 | .sweet-alert .sa-icon.sa-success .sa-fix { 333 | width: 5px; 334 | height: 90px; 335 | background-color: white; 336 | position: absolute; 337 | left: 28px; 338 | top: 8px; 339 | z-index: 1; 340 | -webkit-transform: rotate(-45deg); 341 | transform: rotate(-45deg); } 342 | .sweet-alert .sa-icon.sa-success .sa-line { 343 | height: 5px; 344 | background-color: #A5DC86; 345 | display: block; 346 | border-radius: 2px; 347 | position: absolute; 348 | z-index: 2; } 349 | .sweet-alert .sa-icon.sa-success .sa-line.sa-tip { 350 | width: 25px; 351 | left: 14px; 352 | top: 46px; 353 | -webkit-transform: rotate(45deg); 354 | transform: rotate(45deg); } 355 | .sweet-alert .sa-icon.sa-success .sa-line.sa-long { 356 | width: 47px; 357 | right: 8px; 358 | top: 38px; 359 | -webkit-transform: rotate(-45deg); 360 | transform: rotate(-45deg); } 361 | .sweet-alert .sa-icon.sa-custom { 362 | background-size: contain; 363 | border-radius: 0; 364 | border: none; 365 | background-position: center center; 366 | background-repeat: no-repeat; } 367 | 368 | /* 369 | * Animations 370 | */ 371 | @-webkit-keyframes showSweetAlert { 372 | 0% { 373 | transform: scale(0.7); 374 | -webkit-transform: scale(0.7); } 375 | 45% { 376 | transform: scale(1.05); 377 | -webkit-transform: scale(1.05); } 378 | 80% { 379 | transform: scale(0.95); 380 | -webkit-transform: scale(0.95); } 381 | 100% { 382 | transform: scale(1); 383 | -webkit-transform: scale(1); } } 384 | 385 | @keyframes showSweetAlert { 386 | 0% { 387 | transform: scale(0.7); 388 | -webkit-transform: scale(0.7); } 389 | 45% { 390 | transform: scale(1.05); 391 | -webkit-transform: scale(1.05); } 392 | 80% { 393 | transform: scale(0.95); 394 | -webkit-transform: scale(0.95); } 395 | 100% { 396 | transform: scale(1); 397 | -webkit-transform: scale(1); } } 398 | 399 | @-webkit-keyframes hideSweetAlert { 400 | 0% { 401 | transform: scale(1); 402 | -webkit-transform: scale(1); } 403 | 100% { 404 | transform: scale(0.5); 405 | -webkit-transform: scale(0.5); } } 406 | 407 | @keyframes hideSweetAlert { 408 | 0% { 409 | transform: scale(1); 410 | -webkit-transform: scale(1); } 411 | 100% { 412 | transform: scale(0.5); 413 | -webkit-transform: scale(0.5); } } 414 | 415 | @-webkit-keyframes slideFromTop { 416 | 0% { 417 | top: 0%; } 418 | 100% { 419 | top: 50%; } } 420 | 421 | @keyframes slideFromTop { 422 | 0% { 423 | top: 0%; } 424 | 100% { 425 | top: 50%; } } 426 | 427 | @-webkit-keyframes slideToTop { 428 | 0% { 429 | top: 50%; } 430 | 100% { 431 | top: 0%; } } 432 | 433 | @keyframes slideToTop { 434 | 0% { 435 | top: 50%; } 436 | 100% { 437 | top: 0%; } } 438 | 439 | @-webkit-keyframes slideFromBottom { 440 | 0% { 441 | top: 70%; } 442 | 100% { 443 | top: 50%; } } 444 | 445 | @keyframes slideFromBottom { 446 | 0% { 447 | top: 70%; } 448 | 100% { 449 | top: 50%; } } 450 | 451 | @-webkit-keyframes slideToBottom { 452 | 0% { 453 | top: 50%; } 454 | 100% { 455 | top: 70%; } } 456 | 457 | @keyframes slideToBottom { 458 | 0% { 459 | top: 50%; } 460 | 100% { 461 | top: 70%; } } 462 | 463 | .showSweetAlert[data-animation=pop] { 464 | -webkit-animation: showSweetAlert 0.3s; 465 | animation: showSweetAlert 0.3s; } 466 | 467 | .showSweetAlert[data-animation=none] { 468 | -webkit-animation: none; 469 | animation: none; } 470 | 471 | .showSweetAlert[data-animation=slide-from-top] { 472 | -webkit-animation: slideFromTop 0.3s; 473 | animation: slideFromTop 0.3s; } 474 | 475 | .showSweetAlert[data-animation=slide-from-bottom] { 476 | -webkit-animation: slideFromBottom 0.3s; 477 | animation: slideFromBottom 0.3s; } 478 | 479 | .hideSweetAlert[data-animation=pop] { 480 | -webkit-animation: hideSweetAlert 0.2s; 481 | animation: hideSweetAlert 0.2s; } 482 | 483 | .hideSweetAlert[data-animation=none] { 484 | -webkit-animation: none; 485 | animation: none; } 486 | 487 | .hideSweetAlert[data-animation=slide-from-top] { 488 | -webkit-animation: slideToTop 0.4s; 489 | animation: slideToTop 0.4s; } 490 | 491 | .hideSweetAlert[data-animation=slide-from-bottom] { 492 | -webkit-animation: slideToBottom 0.3s; 493 | animation: slideToBottom 0.3s; } 494 | 495 | @-webkit-keyframes animateSuccessTip { 496 | 0% { 497 | width: 0; 498 | left: 1px; 499 | top: 19px; } 500 | 54% { 501 | width: 0; 502 | left: 1px; 503 | top: 19px; } 504 | 70% { 505 | width: 50px; 506 | left: -8px; 507 | top: 37px; } 508 | 84% { 509 | width: 17px; 510 | left: 21px; 511 | top: 48px; } 512 | 100% { 513 | width: 25px; 514 | left: 14px; 515 | top: 45px; } } 516 | 517 | @keyframes animateSuccessTip { 518 | 0% { 519 | width: 0; 520 | left: 1px; 521 | top: 19px; } 522 | 54% { 523 | width: 0; 524 | left: 1px; 525 | top: 19px; } 526 | 70% { 527 | width: 50px; 528 | left: -8px; 529 | top: 37px; } 530 | 84% { 531 | width: 17px; 532 | left: 21px; 533 | top: 48px; } 534 | 100% { 535 | width: 25px; 536 | left: 14px; 537 | top: 45px; } } 538 | 539 | @-webkit-keyframes animateSuccessLong { 540 | 0% { 541 | width: 0; 542 | right: 46px; 543 | top: 54px; } 544 | 65% { 545 | width: 0; 546 | right: 46px; 547 | top: 54px; } 548 | 84% { 549 | width: 55px; 550 | right: 0px; 551 | top: 35px; } 552 | 100% { 553 | width: 47px; 554 | right: 8px; 555 | top: 38px; } } 556 | 557 | @keyframes animateSuccessLong { 558 | 0% { 559 | width: 0; 560 | right: 46px; 561 | top: 54px; } 562 | 65% { 563 | width: 0; 564 | right: 46px; 565 | top: 54px; } 566 | 84% { 567 | width: 55px; 568 | right: 0px; 569 | top: 35px; } 570 | 100% { 571 | width: 47px; 572 | right: 8px; 573 | top: 38px; } } 574 | 575 | @-webkit-keyframes rotatePlaceholder { 576 | 0% { 577 | transform: rotate(-45deg); 578 | -webkit-transform: rotate(-45deg); } 579 | 5% { 580 | transform: rotate(-45deg); 581 | -webkit-transform: rotate(-45deg); } 582 | 12% { 583 | transform: rotate(-405deg); 584 | -webkit-transform: rotate(-405deg); } 585 | 100% { 586 | transform: rotate(-405deg); 587 | -webkit-transform: rotate(-405deg); } } 588 | 589 | @keyframes rotatePlaceholder { 590 | 0% { 591 | transform: rotate(-45deg); 592 | -webkit-transform: rotate(-45deg); } 593 | 5% { 594 | transform: rotate(-45deg); 595 | -webkit-transform: rotate(-45deg); } 596 | 12% { 597 | transform: rotate(-405deg); 598 | -webkit-transform: rotate(-405deg); } 599 | 100% { 600 | transform: rotate(-405deg); 601 | -webkit-transform: rotate(-405deg); } } 602 | 603 | .animateSuccessTip { 604 | -webkit-animation: animateSuccessTip 0.75s; 605 | animation: animateSuccessTip 0.75s; } 606 | 607 | .animateSuccessLong { 608 | -webkit-animation: animateSuccessLong 0.75s; 609 | animation: animateSuccessLong 0.75s; } 610 | 611 | .sa-icon.sa-success.animate::after { 612 | -webkit-animation: rotatePlaceholder 4.25s ease-in; 613 | animation: rotatePlaceholder 4.25s ease-in; } 614 | 615 | @-webkit-keyframes animateErrorIcon { 616 | 0% { 617 | transform: rotateX(100deg); 618 | -webkit-transform: rotateX(100deg); 619 | opacity: 0; } 620 | 100% { 621 | transform: rotateX(0deg); 622 | -webkit-transform: rotateX(0deg); 623 | opacity: 1; } } 624 | 625 | @keyframes animateErrorIcon { 626 | 0% { 627 | transform: rotateX(100deg); 628 | -webkit-transform: rotateX(100deg); 629 | opacity: 0; } 630 | 100% { 631 | transform: rotateX(0deg); 632 | -webkit-transform: rotateX(0deg); 633 | opacity: 1; } } 634 | 635 | .animateErrorIcon { 636 | -webkit-animation: animateErrorIcon 0.5s; 637 | animation: animateErrorIcon 0.5s; } 638 | 639 | @-webkit-keyframes animateXMark { 640 | 0% { 641 | transform: scale(0.4); 642 | -webkit-transform: scale(0.4); 643 | margin-top: 26px; 644 | opacity: 0; } 645 | 50% { 646 | transform: scale(0.4); 647 | -webkit-transform: scale(0.4); 648 | margin-top: 26px; 649 | opacity: 0; } 650 | 80% { 651 | transform: scale(1.15); 652 | -webkit-transform: scale(1.15); 653 | margin-top: -6px; } 654 | 100% { 655 | transform: scale(1); 656 | -webkit-transform: scale(1); 657 | margin-top: 0; 658 | opacity: 1; } } 659 | 660 | @keyframes animateXMark { 661 | 0% { 662 | transform: scale(0.4); 663 | -webkit-transform: scale(0.4); 664 | margin-top: 26px; 665 | opacity: 0; } 666 | 50% { 667 | transform: scale(0.4); 668 | -webkit-transform: scale(0.4); 669 | margin-top: 26px; 670 | opacity: 0; } 671 | 80% { 672 | transform: scale(1.15); 673 | -webkit-transform: scale(1.15); 674 | margin-top: -6px; } 675 | 100% { 676 | transform: scale(1); 677 | -webkit-transform: scale(1); 678 | margin-top: 0; 679 | opacity: 1; } } 680 | 681 | .animateXMark { 682 | -webkit-animation: animateXMark 0.5s; 683 | animation: animateXMark 0.5s; } 684 | 685 | @-webkit-keyframes pulseWarning { 686 | 0% { 687 | border-color: #F8D486; } 688 | 100% { 689 | border-color: #F8BB86; } } 690 | 691 | @keyframes pulseWarning { 692 | 0% { 693 | border-color: #F8D486; } 694 | 100% { 695 | border-color: #F8BB86; } } 696 | 697 | .pulseWarning { 698 | -webkit-animation: pulseWarning 0.75s infinite alternate; 699 | animation: pulseWarning 0.75s infinite alternate; } 700 | 701 | @-webkit-keyframes pulseWarningIns { 702 | 0% { 703 | background-color: #F8D486; } 704 | 100% { 705 | background-color: #F8BB86; } } 706 | 707 | @keyframes pulseWarningIns { 708 | 0% { 709 | background-color: #F8D486; } 710 | 100% { 711 | background-color: #F8BB86; } } 712 | 713 | .pulseWarningIns { 714 | -webkit-animation: pulseWarningIns 0.75s infinite alternate; 715 | animation: pulseWarningIns 0.75s infinite alternate; } 716 | 717 | @-webkit-keyframes rotate-loading { 718 | 0% { 719 | transform: rotate(0deg); } 720 | 100% { 721 | transform: rotate(360deg); } } 722 | 723 | @keyframes rotate-loading { 724 | 0% { 725 | transform: rotate(0deg); } 726 | 100% { 727 | transform: rotate(360deg); } } 728 | 729 | /* Internet Explorer 9 has some special quirks that are fixed here */ 730 | /* The icons are not animated. */ 731 | /* This file is automatically merged into sweet-alert.min.js through Gulp */ 732 | /* Error icon */ 733 | .sweet-alert .sa-icon.sa-error .sa-line.sa-left { 734 | -ms-transform: rotate(45deg) \9; } 735 | 736 | .sweet-alert .sa-icon.sa-error .sa-line.sa-right { 737 | -ms-transform: rotate(-45deg) \9; } 738 | 739 | /* Success icon */ 740 | .sweet-alert .sa-icon.sa-success { 741 | border-color: transparent\9; } 742 | 743 | .sweet-alert .sa-icon.sa-success .sa-line.sa-tip { 744 | -ms-transform: rotate(45deg) \9; } 745 | 746 | .sweet-alert .sa-icon.sa-success .sa-line.sa-long { 747 | -ms-transform: rotate(-45deg) \9; } 748 | 749 | /*! 750 | * Load Awesome v1.1.0 (http://github.danielcardoso.net/load-awesome/) 751 | * Copyright 2015 Daniel Cardoso <@DanielCardoso> 752 | * Licensed under MIT 753 | */ 754 | .la-ball-fall, 755 | .la-ball-fall > div { 756 | position: relative; 757 | -webkit-box-sizing: border-box; 758 | -moz-box-sizing: border-box; 759 | box-sizing: border-box; } 760 | 761 | .la-ball-fall { 762 | display: block; 763 | font-size: 0; 764 | color: #fff; } 765 | 766 | .la-ball-fall.la-dark { 767 | color: #333; } 768 | 769 | .la-ball-fall > div { 770 | display: inline-block; 771 | float: none; 772 | background-color: currentColor; 773 | border: 0 solid currentColor; } 774 | 775 | .la-ball-fall { 776 | width: 54px; 777 | height: 18px; } 778 | 779 | .la-ball-fall > div { 780 | width: 10px; 781 | height: 10px; 782 | margin: 4px; 783 | border-radius: 100%; 784 | opacity: 0; 785 | -webkit-animation: ball-fall 1s ease-in-out infinite; 786 | -moz-animation: ball-fall 1s ease-in-out infinite; 787 | -o-animation: ball-fall 1s ease-in-out infinite; 788 | animation: ball-fall 1s ease-in-out infinite; } 789 | 790 | .la-ball-fall > div:nth-child(1) { 791 | -webkit-animation-delay: -200ms; 792 | -moz-animation-delay: -200ms; 793 | -o-animation-delay: -200ms; 794 | animation-delay: -200ms; } 795 | 796 | .la-ball-fall > div:nth-child(2) { 797 | -webkit-animation-delay: -100ms; 798 | -moz-animation-delay: -100ms; 799 | -o-animation-delay: -100ms; 800 | animation-delay: -100ms; } 801 | 802 | .la-ball-fall > div:nth-child(3) { 803 | -webkit-animation-delay: 0ms; 804 | -moz-animation-delay: 0ms; 805 | -o-animation-delay: 0ms; 806 | animation-delay: 0ms; } 807 | 808 | .la-ball-fall.la-sm { 809 | width: 26px; 810 | height: 8px; } 811 | 812 | .la-ball-fall.la-sm > div { 813 | width: 4px; 814 | height: 4px; 815 | margin: 2px; } 816 | 817 | .la-ball-fall.la-2x { 818 | width: 108px; 819 | height: 36px; } 820 | 821 | .la-ball-fall.la-2x > div { 822 | width: 20px; 823 | height: 20px; 824 | margin: 8px; } 825 | 826 | .la-ball-fall.la-3x { 827 | width: 162px; 828 | height: 54px; } 829 | 830 | .la-ball-fall.la-3x > div { 831 | width: 30px; 832 | height: 30px; 833 | margin: 12px; } 834 | 835 | /* 836 | * Animation 837 | */ 838 | @-webkit-keyframes ball-fall { 839 | 0% { 840 | opacity: 0; 841 | -webkit-transform: translateY(-145%); 842 | transform: translateY(-145%); } 843 | 10% { 844 | opacity: .5; } 845 | 20% { 846 | opacity: 1; 847 | -webkit-transform: translateY(0); 848 | transform: translateY(0); } 849 | 80% { 850 | opacity: 1; 851 | -webkit-transform: translateY(0); 852 | transform: translateY(0); } 853 | 90% { 854 | opacity: .5; } 855 | 100% { 856 | opacity: 0; 857 | -webkit-transform: translateY(145%); 858 | transform: translateY(145%); } } 859 | 860 | @-moz-keyframes ball-fall { 861 | 0% { 862 | opacity: 0; 863 | -moz-transform: translateY(-145%); 864 | transform: translateY(-145%); } 865 | 10% { 866 | opacity: .5; } 867 | 20% { 868 | opacity: 1; 869 | -moz-transform: translateY(0); 870 | transform: translateY(0); } 871 | 80% { 872 | opacity: 1; 873 | -moz-transform: translateY(0); 874 | transform: translateY(0); } 875 | 90% { 876 | opacity: .5; } 877 | 100% { 878 | opacity: 0; 879 | -moz-transform: translateY(145%); 880 | transform: translateY(145%); } } 881 | 882 | @-o-keyframes ball-fall { 883 | 0% { 884 | opacity: 0; 885 | -o-transform: translateY(-145%); 886 | transform: translateY(-145%); } 887 | 10% { 888 | opacity: .5; } 889 | 20% { 890 | opacity: 1; 891 | -o-transform: translateY(0); 892 | transform: translateY(0); } 893 | 80% { 894 | opacity: 1; 895 | -o-transform: translateY(0); 896 | transform: translateY(0); } 897 | 90% { 898 | opacity: .5; } 899 | 100% { 900 | opacity: 0; 901 | -o-transform: translateY(145%); 902 | transform: translateY(145%); } } 903 | 904 | @keyframes ball-fall { 905 | 0% { 906 | opacity: 0; 907 | -webkit-transform: translateY(-145%); 908 | -moz-transform: translateY(-145%); 909 | -o-transform: translateY(-145%); 910 | transform: translateY(-145%); } 911 | 10% { 912 | opacity: .5; } 913 | 20% { 914 | opacity: 1; 915 | -webkit-transform: translateY(0); 916 | -moz-transform: translateY(0); 917 | -o-transform: translateY(0); 918 | transform: translateY(0); } 919 | 80% { 920 | opacity: 1; 921 | -webkit-transform: translateY(0); 922 | -moz-transform: translateY(0); 923 | -o-transform: translateY(0); 924 | transform: translateY(0); } 925 | 90% { 926 | opacity: .5; } 927 | 100% { 928 | opacity: 0; 929 | -webkit-transform: translateY(145%); 930 | -moz-transform: translateY(145%); 931 | -o-transform: translateY(145%); 932 | transform: translateY(145%); } } 933 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/sweetalert.min.js: -------------------------------------------------------------------------------- 1 | !function(e,t,n){"use strict";!function o(e,t,n){function a(s,l){if(!t[s]){if(!e[s]){var i="function"==typeof require&&require;if(!l&&i)return i(s,!0);if(r)return r(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=t[s]={exports:{}};e[s][0].call(c.exports,function(t){var n=e[s][1][t];return a(n?n:t)},c,c.exports,o,e,t,n)}return t[s].exports}for(var r="function"==typeof require&&require,s=0;s=0;)n=n.replace(" "+t+" "," ");e.className=n.replace(/^\s+|\s+$/g,"")}},i=function(e){var n=t.createElement("div");return n.appendChild(t.createTextNode(e)),n.innerHTML},u=function(e){e.style.opacity="",e.style.display="block"},c=function(e){if(e&&!e.length)return u(e);for(var t=0;t0?setTimeout(a,t):e.style.display="none"};o()},b=function(n){if("function"==typeof MouseEvent){var o=new MouseEvent("click",{view:e,bubbles:!1,cancelable:!0});n.dispatchEvent(o)}else if(t.createEvent){var a=t.createEvent("MouseEvents");a.initEvent("click",!1,!1),n.dispatchEvent(a)}else t.createEventObject?n.fireEvent("onclick"):"function"==typeof n.onclick&&n.onclick()},h=function(t){"function"==typeof t.stopPropagation?(t.stopPropagation(),t.preventDefault()):e.event&&e.event.hasOwnProperty("cancelBubble")&&(e.event.cancelBubble=!0)};a.hasClass=r,a.addClass=s,a.removeClass=l,a.escapeHtml=i,a._show=u,a.show=c,a._hide=d,a.hide=f,a.isDescendant=p,a.getTopMargin=m,a.fadeIn=v,a.fadeOut=y,a.fireClick=b,a.stopEventPropagation=h},{}],5:[function(t,o,a){Object.defineProperty(a,"__esModule",{value:!0});var r=t("./handle-dom"),s=t("./handle-swal-dom"),l=function(t,o,a){var l=t||e.event,i=l.keyCode||l.which,u=a.querySelector("button.confirm"),c=a.querySelector("button.cancel"),d=a.querySelectorAll("button[tabindex]");if(-1!==[9,13,32,27].indexOf(i)){for(var f=l.target||l.srcElement,p=-1,m=0;m"),i.innerHTML=e.html?e.text:(0,s.escapeHtml)(e.text||"").split("\n").join("
"),e.text&&(0,s.show)(i),e.customClass)(0,s.addClass)(t,e.customClass),t.setAttribute("data-custom-class",e.customClass);else{var d=t.getAttribute("data-custom-class");(0,s.removeClass)(t,d),t.setAttribute("data-custom-class","")}if((0,s.hide)(t.querySelectorAll(".sa-icon")),e.type&&!(0,a.isIE8)()){var f=function(){for(var o=!1,a=0;ao;o++)n=parseInt(e.substr(2*o,2),16),n=Math.round(Math.min(Math.max(0,n+n*t),255)).toString(16),a+=("00"+n).substr(n.length);return a};o.extend=a,o.hexToRgb=r,o.isIE8=s,o.logStr=l,o.colorLuminance=i},{}]},{},[1]),"function"==typeof define&&define.amd?define(function(){return sweetAlert}):"undefined"!=typeof module&&module.exports&&(module.exports=sweetAlert)}(window,document); -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/bootstrap/bootstrap.css: -------------------------------------------------------------------------------- 1 | .sweet-overlay { 2 | background: rgba(41, 47, 51, 0.9); } 3 | 4 | .sweet-alert { 5 | background-color: #f8fafb; 6 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 7 | padding: 15px; 8 | padding-top: 79px; 9 | text-align: right; 10 | border-radius: 6px; 11 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.11), 0px 6px 30px rgba(0, 0, 0, 0.14); } 12 | .sweet-alert h2 { 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | right: 0; 17 | height: 80px; 18 | line-height: 80px; 19 | font-size: 24px; 20 | font-weight: 400; 21 | color: #8899a6; 22 | margin: 0; 23 | color: #66757f; 24 | border-bottom: 1px solid #e1e8ed; 25 | background-color: #fff; } 26 | .sweet-alert > p { 27 | display: block; 28 | text-align: center; 29 | color: #66757f; 30 | font-weight: 400; 31 | font-size: 13px; 32 | padding: 20px 10px; } 33 | .sweet-alert > p:empty { 34 | display: none; 35 | padding: 0; } 36 | .sweet-alert > p:empty + input { 37 | margin-top: 20px; } 38 | .sweet-alert fieldset { 39 | margin: 0; 40 | padding: 0 15px; } 41 | .sweet-alert .sa-button-container { 42 | background-color: #fff; 43 | border-top: 1px solid #e1e8ed; 44 | margin: -15px; 45 | margin-top: 0; } 46 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { 47 | padding-bottom: 10px; } 48 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] .sa-button-container { 49 | display: none; } 50 | .sweet-alert button { 51 | border-radius: 2px; 52 | box-shadow: none !important; 53 | text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.3); 54 | margin: 17px 0px; 55 | font-size: 14px; 56 | padding: 6px 12px; 57 | position: relative; 58 | line-height: 20px !important; 59 | min-height: 20px; } 60 | .sweet-alert button:focus, .sweet-alert button.cancel:focus { 61 | box-shadow: none !important; } 62 | .sweet-alert button.confirm { 63 | background-color: #1ab394 !important; 64 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05)); 65 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)"; 66 | border: 1px solid #1ab394; 67 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15); 68 | margin-right: 15px; } 69 | .sweet-alert button.confirm:hover { 70 | background-color: #18a689; 71 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15)); 72 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)"; 73 | border-color: #18a689; } 74 | .sweet-alert button.cancel { 75 | color: #66757e; 76 | background-color: #f5f8fa; 77 | background-image: linear-gradient(#fff, #f5f8fa); 78 | text-shadow: 0px -1px 0px white; 79 | margin-right: 9px; 80 | border: 1px solid #e1e8ed; } 81 | .sweet-alert button.cancel:hover, .sweet-alert button.cancel:focus:hover { 82 | border-color: #d2d2d2; } 83 | .sweet-alert button.cancel:focus { 84 | background: #fff; 85 | border-color: #fff; } 86 | .sweet-alert .sa-icon { 87 | display: none !important; } 88 | .sweet-alert .sa-icon:not(.sa-custom) { 89 | transform: scale(0.72); 90 | margin-bottom: -2px; 91 | margin-top: -10px; } 92 | .sweet-alert .input-text, 93 | .sweet-alert input { 94 | border: 1px solid #e1e8ed; 95 | border-radius: 3px; 96 | padding: 6px 7px; 97 | height: auto; 98 | box-shadow: none; 99 | margin: 5px 0 20px; 100 | width: 100%; } 101 | .sweet-alert .input-text:focus, 102 | .sweet-alert input:focus { 103 | border-color: #1ab394; } 104 | .sweet-alert .input-text { 105 | margin: 0 0 10px; } 106 | .sweet-alert fieldset .sa-input-error { 107 | display: none; } 108 | .sweet-alert .sa-error-container { 109 | text-align: center; 110 | border: none; 111 | background-color: #fbedc0; } 112 | .sweet-alert .sa-error-container.show { 113 | border: 1px solid #f0e1b9; } 114 | .sweet-alert .sa-error-container .icon { 115 | display: none; } 116 | .sweet-alert .sa-error-container p { 117 | color: #292f33; 118 | font-weight: 600; 119 | margin-top: 0; } 120 | 121 | @-webkit-keyframes animateErrorIcon { 122 | 0% { 123 | transform: rotateX(100deg), scale(0.5); 124 | -webkit-transform: rotateX(100deg), scale(0.5); 125 | opacity: 0; } 126 | 100% { 127 | transform: rotateX(0deg), scale(0.5); 128 | -webkit-transform: rotateX(0deg), scale(0.5); 129 | opacity: 1; } } 130 | 131 | @keyframes animateErrorIcon { 132 | 0% { 133 | transform: rotateX(100deg), scale(0.5); 134 | -webkit-transform: rotateX(100deg), scale(0.5); 135 | opacity: 0; } 136 | 100% { 137 | transform: rotateX(0deg), scale(0.5); 138 | -webkit-transform: rotateX(0deg), scale(0.5); 139 | opacity: 1; } } 140 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/bootstrap/bootstrap.scss: -------------------------------------------------------------------------------- 1 | // Twitter Theme for SweetAlert 2 | // By Tristan Edwards 3 | 4 | .sweet-overlay { 5 | background: rgba(41, 47, 51, 0.9); 6 | } 7 | 8 | .sweet-alert { 9 | $header-height: 80px; 10 | $footer-height: 66px; 11 | $text-color: #66757f; 12 | $padding: 15px; 13 | 14 | background-color: #f8fafb; 15 | 16 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 17 | padding: $padding; 18 | padding-top: $header-height - 1; 19 | text-align: right; // Align buttons 20 | border-radius: 6px; 21 | box-shadow: 0px 0px 0px 1px rgba(black, 0.11), 0px 6px 30px rgba(black, 0.14); 22 | 23 | h2 { 24 | position: absolute; 25 | top: 0; 26 | left: 0; 27 | right: 0; 28 | height: $header-height; 29 | line-height: $header-height; 30 | font-size: 24px; 31 | font-weight: 400; 32 | color: #8899a6; 33 | margin: 0; 34 | color: $text-color; 35 | border-bottom: 1px solid #e1e8ed; 36 | background-color: #fff; 37 | } 38 | 39 | & > p { 40 | display: block; 41 | text-align: center; 42 | color: #66757f; 43 | font-weight: 400; 44 | font-size: 13px; 45 | padding: 20px 10px; 46 | &:empty { 47 | display: none; 48 | padding: 0; 49 | & + input { 50 | margin-top: 20px; 51 | } 52 | } 53 | } 54 | fieldset { 55 | margin: 0; 56 | padding: 0 15px; 57 | } 58 | 59 | .sa-button-container { 60 | background-color: #fff; 61 | border-top: 1px solid #e1e8ed; 62 | //box-shadow: 0px -1px 0px white; 63 | margin: -$padding; 64 | margin-top: 0; 65 | } 66 | &[data-has-confirm-button=false][data-has-cancel-button=false] { 67 | padding-bottom: 10px; 68 | .sa-button-container { 69 | display: none; 70 | } 71 | } 72 | 73 | button { 74 | border-radius: 2px; 75 | box-shadow: none !important; 76 | text-shadow: 0px -1px 0px rgba(black, 0.3); 77 | margin: 17px 0px; 78 | font-size: 14px; 79 | //font-weight: 600; 80 | padding: 6px 12px; 81 | position: relative; 82 | line-height: 20px !important; 83 | min-height: 20px; 84 | &:focus, &.cancel:focus { 85 | box-shadow: none !important; 86 | &::before { 87 | //content: ""; 88 | //position: absolute; 89 | //left: -5px; 90 | //top: -5px; 91 | //right: -5px; 92 | //bottom: -5px; 93 | //border: 2px solid #a5b0b4; 94 | //border-radius: 8px; 95 | } 96 | } 97 | 98 | &.confirm { 99 | background-color: #1ab394 !important; 100 | background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.05)); 101 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)"; 102 | border: 1px solid #1ab394; 103 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15); 104 | margin-right: $padding; 105 | &:hover { 106 | background-color: darken(#1ab394, 3%); 107 | background-image: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15)); 108 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)"; 109 | border-color: darken(#1ab394, 3%); 110 | } 111 | } 112 | &.cancel { 113 | color: #66757e; 114 | background-color: #f5f8fa; 115 | background-image: linear-gradient(#fff, #f5f8fa); 116 | text-shadow: 0px -1px 0px white; 117 | margin-right: 9px; 118 | border: 1px solid #e1e8ed; 119 | &:hover, &:focus:hover { 120 | //background-color: #e1e8ed; 121 | //background-image: linear-gradient(#fff,#e1e8ed); 122 | //-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)"; 123 | border-color: #d2d2d2; 124 | } 125 | &:focus { 126 | background: #fff; 127 | border-color: #fff; 128 | } 129 | } 130 | } 131 | 132 | .sa-icon { 133 | display: none !important; 134 | &:not(.sa-custom) { 135 | transform: scale(0.72); 136 | margin-bottom: -2px; 137 | margin-top: -10px; 138 | } 139 | } 140 | 141 | .input-text, 142 | input { 143 | border: 1px solid #e1e8ed; 144 | border-radius: 3px; 145 | padding: 6px 7px; 146 | height: auto; 147 | box-shadow: none; 148 | //font-size: 12px; 149 | margin: 5px 0 20px; 150 | width: 100%; 151 | &:focus { 152 | border-color: #1ab394; 153 | //box-shadow: inset 0 0 0 1px rgba(77, 99, 107, 0.7); 154 | } 155 | } 156 | 157 | .input-text{ 158 | margin: 0 0 10px; 159 | } 160 | 161 | fieldset .sa-input-error { 162 | display: none; 163 | } 164 | 165 | .sa-error-container { 166 | text-align: center; 167 | border: none; 168 | background-color: #fbedc0; 169 | //margin-bottom: 6px; 170 | &.show { 171 | border: 1px solid #f0e1b9; 172 | } 173 | 174 | .icon { 175 | display: none; 176 | } 177 | p { 178 | color: #292f33; 179 | font-weight: 600; 180 | margin-top: 0; 181 | } 182 | } 183 | } 184 | 185 | // Animations 186 | 187 | @mixin keyframes($animation-name) { 188 | @-webkit-keyframes #{$animation-name} { 189 | @content; 190 | } 191 | @keyframes #{$animation-name} { 192 | @content; 193 | } 194 | } 195 | 196 | @include keyframes(animateErrorIcon) { 197 | 0% { 198 | transform: rotateX(100deg), scale(0.5); 199 | -webkit-transform: rotateX(100deg), scale(0.5); 200 | opacity: 0; 201 | } 202 | 100% { 203 | transform: rotateX(0deg), scale(0.5); 204 | -webkit-transform: rotateX(0deg), scale(0.5); 205 | opacity: 1; 206 | } 207 | } 208 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/facebook/facebook.css: -------------------------------------------------------------------------------- 1 | .sweet-overlay { 2 | border-radius: 3px; } 3 | 4 | .sweet-alert { 5 | font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; 6 | padding: 12px; 7 | padding-top: 53px; 8 | text-align: right; 9 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.11), 0px 6px 30px rgba(0, 0, 0, 0.14); } 10 | .sweet-alert h2 { 11 | position: absolute; 12 | top: 0; 13 | left: 0; 14 | right: 0; 15 | height: 41px; 16 | background-color: #f6f7f8; 17 | margin: 0; 18 | font-size: 15px; 19 | text-align: left; 20 | padding-left: 12px; 21 | color: #131722; 22 | border-bottom: 1px solid #e5e5e5; } 23 | .sweet-alert p { 24 | display: block; 25 | text-align: center; 26 | color: #131722; 27 | font-weight: 400; 28 | font-size: 15px; 29 | margin-top: 7px; } 30 | .sweet-alert .sa-button-container { 31 | border-top: 1px solid #dcdee3; } 32 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { 33 | padding-bottom: 10px; } 34 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] .sa-button-container { 35 | display: none; } 36 | .sweet-alert button { 37 | font-size: 12px; 38 | padding: 5px 10px; 39 | border-radius: 2px; 40 | box-shadow: none !important; 41 | text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.3); 42 | font-weight: 500; 43 | margin: 0; 44 | margin-top: 12px; } 45 | .sweet-alert button:focus, .sweet-alert button.cancel:focus { 46 | box-shadow: 0 0 1px 2px rgba(88, 144, 255, 0.75), 0 1px 1px rgba(0, 0, 0, 0.15) !important; } 47 | .sweet-alert button.confirm { 48 | border: 1px solid #3d5586; 49 | background-color: #47639c !important; 50 | margin-left: 4px; } 51 | .sweet-alert button.cancel { 52 | color: #4e5664; 53 | background-color: #fafbfb; 54 | text-shadow: 0px -1px 0px white; 55 | border: 1px solid #c5c6c8; 56 | box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.04) !important; 57 | font-weight: 600; } 58 | .sweet-alert button.cancel:hover { 59 | background-color: #fafbfb; } 60 | .sweet-alert .sa-icon:not(.sa-custom) { 61 | transform: scale(0.7); 62 | margin-bottom: -10px; 63 | margin-top: -10px; } 64 | .sweet-alert input { 65 | border: 1px solid #bdc7d8; 66 | padding: 3px; 67 | border-radius: 0; 68 | box-shadow: none; 69 | font-size: 15px; 70 | height: 33px; 71 | margin: 10px 0; } 72 | .sweet-alert input:focus { 73 | box-shadow: 0 0 1px 2px rgba(88, 144, 255, 0.75), 0 1px 1px rgba(0, 0, 0, 0.15) !important; } 74 | .sweet-alert fieldset .sa-input-error { 75 | display: none; } 76 | .sweet-alert .sa-error-container { 77 | text-align: center; 78 | background-color: #fdebe8; 79 | margin: 0; 80 | border: none; } 81 | .sweet-alert .sa-error-container.show { 82 | margin: 14px; 83 | margin-top: 0; 84 | border: 1px solid #d5512d; } 85 | .sweet-alert .sa-error-container .icon { 86 | display: none; } 87 | .sweet-alert .sa-error-container p { 88 | color: #303b44; 89 | margin-top: 3px; } 90 | 91 | @-webkit-keyframes animateErrorIcon { 92 | 0% { 93 | transform: rotateX(100deg), scale(0.5); 94 | -webkit-transform: rotateX(100deg), scale(0.5); 95 | opacity: 0; } 96 | 100% { 97 | transform: rotateX(0deg), scale(0.5); 98 | -webkit-transform: rotateX(0deg), scale(0.5); 99 | opacity: 1; } } 100 | 101 | @keyframes animateErrorIcon { 102 | 0% { 103 | transform: rotateX(100deg), scale(0.5); 104 | -webkit-transform: rotateX(100deg), scale(0.5); 105 | opacity: 0; } 106 | 100% { 107 | transform: rotateX(0deg), scale(0.5); 108 | -webkit-transform: rotateX(0deg), scale(0.5); 109 | opacity: 1; } } 110 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/facebook/facebook.scss: -------------------------------------------------------------------------------- 1 | // Facebook Theme for SweetAlert 2 | // By Tristan Edwards 3 | 4 | .sweet-overlay { 5 | border-radius: 3px; 6 | } 7 | 8 | 9 | .sweet-alert { 10 | $header-height: 41px; 11 | $footer-height: 50px; 12 | $text-color: #131722; 13 | $fb-focus: 0 0 1px 2px rgba(88, 144, 255, .75), 0 1px 1px rgba(0, 0, 0, .15) !important; 14 | $padding: 12px; 15 | 16 | font-family: Helvetica, Arial, 'lucida grande', tahoma, verdana, arial, sans-serif; 17 | padding: $padding; 18 | padding-top: $header-height + $padding; 19 | text-align: right; // Align buttons 20 | box-shadow: 0px 0px 0px 1px rgba(black, 0.11), 0px 6px 30px rgba(black, 0.14); 21 | 22 | h2 { 23 | position: absolute; 24 | top: 0; 25 | left: 0; 26 | right: 0; 27 | height: $header-height; 28 | background-color: #f6f7f8; 29 | margin: 0; 30 | font-size: 15px; 31 | text-align: left; 32 | padding-left: 12px; 33 | color: $text-color; 34 | border-bottom: 1px solid #e5e5e5; 35 | } 36 | 37 | p { 38 | display: block; 39 | text-align: center; 40 | color: #131722; 41 | font-weight: 400; 42 | font-size: 15px; 43 | margin-top: 7px; 44 | } 45 | 46 | .sa-button-container { 47 | border-top: 1px solid #dcdee3; 48 | } 49 | &[data-has-confirm-button=false][data-has-cancel-button=false] { 50 | padding-bottom: 10px; 51 | .sa-button-container { 52 | display: none; 53 | } 54 | } 55 | 56 | button { 57 | font-size: 12px; 58 | padding: 5px 10px; 59 | border-radius: 2px; 60 | box-shadow: none !important; 61 | text-shadow: 0px -1px 0px rgba(black, 0.3); 62 | font-weight: 500; 63 | margin: 0; 64 | margin-top: $padding; 65 | &:focus, &.cancel:focus { 66 | box-shadow: $fb-focus; 67 | } 68 | 69 | &.confirm { 70 | border: 1px solid #3d5586; 71 | background-color: #47639c !important; 72 | margin-left: 4px; 73 | } 74 | &.cancel { 75 | color: #4e5664; 76 | background-color: #fafbfb; 77 | text-shadow: 0px -1px 0px white; 78 | border: 1px solid #c5c6c8; 79 | box-shadow: 0px 1px 1px rgba(black, 0.04) !important; 80 | font-weight: 600; 81 | &:hover { 82 | background-color: #fafbfb; 83 | } 84 | } 85 | } 86 | 87 | .sa-icon:not(.sa-custom) { 88 | transform: scale(0.7); 89 | margin-bottom: -10px; 90 | margin-top: -10px; 91 | } 92 | 93 | input { 94 | border: 1px solid #bdc7d8; 95 | padding: 3px; 96 | border-radius: 0; 97 | box-shadow: none; 98 | font-size: 15px; 99 | height: 33px; 100 | margin: 10px 0; 101 | &:focus { 102 | box-shadow: $fb-focus; 103 | } 104 | } 105 | 106 | fieldset .sa-input-error { 107 | display: none; 108 | } 109 | 110 | .sa-error-container { 111 | text-align: center; 112 | background-color: #fdebe8; 113 | margin: 0; 114 | border: none; 115 | &.show { 116 | margin: 14px; 117 | margin-top: 0; 118 | border: 1px solid #d5512d; 119 | } 120 | 121 | .icon { 122 | display: none; 123 | } 124 | p { 125 | color: #303b44; 126 | margin-top: 3px; 127 | } 128 | } 129 | } 130 | 131 | 132 | // Animations 133 | 134 | @mixin keyframes($animation-name) { 135 | @-webkit-keyframes #{$animation-name} { 136 | @content; 137 | } 138 | @keyframes #{$animation-name} { 139 | @content; 140 | } 141 | } 142 | 143 | @include keyframes(animateErrorIcon) { 144 | 0% { transform: rotateX(100deg), scale(0.5); -webkit-transform: rotateX(100deg), scale(0.5); opacity: 0; } 145 | 100% { transform: rotateX(0deg), scale(0.5); -webkit-transform: rotateX(0deg), scale(0.5); opacity: 1; } 146 | } -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/google/google.css: -------------------------------------------------------------------------------- 1 | .sweet-overlay { 2 | background: rgba(10, 10, 10, 0.6); } 3 | 4 | .sweet-alert { 5 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 6 | padding: 24px; 7 | padding-top: 64px; 8 | padding-bottom: 13px; 9 | text-align: right; 10 | border-radius: 0; 11 | box-shadow: 0 0 14px rgba(0, 0, 0, 0.24), 0 14px 28px rgba(0, 0, 0, 0.48); } 12 | .sweet-alert h2 { 13 | position: absolute; 14 | top: 0; 15 | left: 0; 16 | right: 0; 17 | height: auto; 18 | font-weight: 400; 19 | color: #212121; 20 | margin: 20px 0; 21 | font-size: 1.2em; 22 | line-height: 1.25; 23 | text-align: left; 24 | padding: 0 24px; } 25 | .sweet-alert p { 26 | display: block; 27 | text-align: center; 28 | color: #212121; 29 | font-weight: 400; 30 | font-size: 14px; 31 | margin: 20px 0; } 32 | .sweet-alert button { 33 | border-radius: 2px; 34 | box-shadow: none !important; 35 | background: none !important; 36 | border-radius: 2px; 37 | text-transform: uppercase; 38 | font-size: 14px; 39 | font-weight: 600; 40 | padding: 8px 16px; 41 | position: relative; 42 | margin-top: 0; } 43 | .sweet-alert button:hover, .sweet-alert button:focus { 44 | background-color: #f6f6f6 !important; } 45 | .sweet-alert button.confirm { 46 | color: #3c80f6; } 47 | .sweet-alert button.cancel { 48 | color: #757575; } 49 | .sweet-alert button.cancel:focus { 50 | box-shadow: none !important; } 51 | .sweet-alert .sa-icon:not(.sa-custom) { 52 | transform: scale(0.8); 53 | margin-bottom: -10px; 54 | margin-top: -10px; } 55 | .sweet-alert input { 56 | border: none; 57 | border-radius: 0; 58 | border-bottom: 1px solid #c9c9c9; 59 | color: #212121; 60 | margin-bottom: 8px; 61 | padding: 1px; 62 | padding-bottom: 8px; 63 | height: auto; 64 | box-shadow: none; 65 | font-size: 13px; 66 | margin: 10px 0; } 67 | .sweet-alert input:focus { 68 | border: none; 69 | border-bottom: 1px solid #3c80f6; 70 | box-shadow: inset 0 -1px 0 #3c80f6; } 71 | .sweet-alert fieldset { 72 | padding: 0; } 73 | .sweet-alert fieldset .sa-input-error { 74 | display: none; } 75 | .sweet-alert .sa-error-container { 76 | display: none; 77 | background: none; 78 | height: auto; 79 | padding: 0 24px; 80 | margin: 0 -20px; 81 | text-align: left; } 82 | .sweet-alert .sa-error-container.show { 83 | padding: 0 24px; 84 | display: block; } 85 | .sweet-alert .sa-error-container.show ~ fieldset input { 86 | background: red; 87 | border-bottom: 1px solid #d9453c; 88 | box-shadow: inset 0 -1px 0 #d9453c; } 89 | .sweet-alert .sa-error-container .icon { 90 | display: none; } 91 | .sweet-alert .sa-error-container p { 92 | color: #d9453c; 93 | margin-top: 0; } 94 | 95 | @-webkit-keyframes animateErrorIcon { 96 | 0% { 97 | transform: rotateX(100deg), scale(0.5); 98 | -webkit-transform: rotateX(100deg), scale(0.5); 99 | opacity: 0; } 100 | 100% { 101 | transform: rotateX(0deg), scale(0.5); 102 | -webkit-transform: rotateX(0deg), scale(0.5); 103 | opacity: 1; } } 104 | 105 | @keyframes animateErrorIcon { 106 | 0% { 107 | transform: rotateX(100deg), scale(0.5); 108 | -webkit-transform: rotateX(100deg), scale(0.5); 109 | opacity: 0; } 110 | 100% { 111 | transform: rotateX(0deg), scale(0.5); 112 | -webkit-transform: rotateX(0deg), scale(0.5); 113 | opacity: 1; } } 114 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/google/google.scss: -------------------------------------------------------------------------------- 1 | // Google Theme for SweetAlert 2 | // By Tristan Edwards 3 | 4 | .sweet-overlay { 5 | background: rgba(10,10,10,.6); 6 | } 7 | 8 | 9 | .sweet-alert { 10 | $header-height: 40px; 11 | $footer-height: 66px; 12 | $text-color: #212121; 13 | $padding: 24px; 14 | $error-color: #d9453c; 15 | 16 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 17 | padding: $padding; 18 | padding-top: $header-height + $padding; 19 | padding-bottom: 13px; 20 | text-align: right; // Align buttons 21 | border-radius: 0; 22 | box-shadow: 0 0 14px rgba(black, 0.24),0 14px 28px rgba(black, 0.48); 23 | 24 | h2 { 25 | position: absolute; 26 | top: 0; 27 | left: 0; 28 | right: 0; 29 | height: auto; 30 | font-weight: 400; 31 | color: $text-color; 32 | margin: 20px 0; 33 | font-size: 1.2em; 34 | line-height: 1.25; 35 | text-align: left; 36 | padding: 0 $padding; 37 | } 38 | 39 | p { 40 | display: block; 41 | text-align: center; 42 | color: $text-color; 43 | font-weight: 400; 44 | font-size: 14px; 45 | margin: 20px 0; 46 | } 47 | 48 | button { 49 | border-radius: 2px; 50 | box-shadow: none !important; 51 | background: none !important; 52 | border-radius: 2px; 53 | text-transform: uppercase; 54 | font-size: 14px; 55 | font-weight: 600; 56 | padding: 8px 16px; 57 | position: relative; 58 | margin-top: 0; 59 | &:hover, &:focus { 60 | background-color: #f6f6f6 !important; 61 | } 62 | 63 | &.confirm { 64 | color: #3c80f6; 65 | } 66 | &.cancel { 67 | color: #757575; 68 | &:focus { 69 | box-shadow: none !important; 70 | } 71 | } 72 | } 73 | 74 | .sa-icon:not(.sa-custom) { 75 | transform: scale(0.8); 76 | margin-bottom: -10px; 77 | margin-top: -10px; 78 | } 79 | 80 | input { 81 | border: none; 82 | border-radius: 0; 83 | border-bottom: 1px solid #c9c9c9; 84 | color: #212121; 85 | margin-bottom: 8px; 86 | padding: 1px; 87 | padding-bottom: 8px; 88 | height: auto; 89 | box-shadow: none; 90 | font-size: 13px; 91 | margin: 10px 0; 92 | &:focus { 93 | border: none; 94 | border-bottom: 1px solid #3c80f6; 95 | box-shadow: inset 0 -1px 0 #3c80f6; 96 | } 97 | } 98 | 99 | fieldset { 100 | padding: 0; 101 | .sa-input-error { 102 | display: none; 103 | } 104 | } 105 | 106 | .sa-error-container { 107 | display: none; 108 | background: none; 109 | height: auto; 110 | padding: 0 $padding; 111 | margin: 0 -20px; 112 | text-align: left; 113 | &.show { 114 | padding: 0 $padding; 115 | display: block; 116 | ~ fieldset input { 117 | background: red; 118 | border-bottom: 1px solid $error-color; 119 | box-shadow: inset 0 -1px 0 $error-color; 120 | } 121 | } 122 | 123 | .icon { 124 | display: none; 125 | } 126 | p { 127 | color: $error-color; 128 | margin-top: 0; 129 | } 130 | } 131 | } 132 | 133 | 134 | // Animations 135 | 136 | @mixin keyframes($animation-name) { 137 | @-webkit-keyframes #{$animation-name} { 138 | @content; 139 | } 140 | @keyframes #{$animation-name} { 141 | @content; 142 | } 143 | } 144 | 145 | @include keyframes(animateErrorIcon) { 146 | 0% { transform: rotateX(100deg), scale(0.5); -webkit-transform: rotateX(100deg), scale(0.5); opacity: 0; } 147 | 100% { transform: rotateX(0deg), scale(0.5); -webkit-transform: rotateX(0deg), scale(0.5); opacity: 1; } 148 | } -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/twitter/twitter.css: -------------------------------------------------------------------------------- 1 | .sweet-overlay { 2 | background: rgba(41, 47, 51, 0.9); } 3 | 4 | .sweet-alert { 5 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 6 | padding: 15px; 7 | padding-top: 55px; 8 | text-align: right; 9 | border-radius: 6px; 10 | box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.11), 0px 6px 30px rgba(0, 0, 0, 0.14); } 11 | .sweet-alert h2 { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | right: 0; 16 | height: 40px; 17 | line-height: 40px; 18 | font-size: 16px; 19 | font-weight: 400; 20 | color: #8899a6; 21 | margin: 0; 22 | color: #66757f; 23 | border-bottom: 1px solid #e1e8ed; } 24 | .sweet-alert p { 25 | display: block; 26 | text-align: center; 27 | color: #66757f; 28 | font-weight: 400; 29 | font-size: 13px; 30 | margin-top: 7px; } 31 | .sweet-alert .sa-button-container { 32 | background-color: #f5f8fa; 33 | border-top: 1px solid #e1e8ed; 34 | box-shadow: 0px -1px 0px white; 35 | margin: -15px; 36 | margin-top: 0; } 37 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] { 38 | padding-bottom: 10px; } 39 | .sweet-alert[data-has-confirm-button=false][data-has-cancel-button=false] .sa-button-container { 40 | display: none; } 41 | .sweet-alert button { 42 | border-radius: 2px; 43 | box-shadow: none !important; 44 | text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.3); 45 | margin: 17px 0px; 46 | border-radius: 4px; 47 | font-size: 14px; 48 | font-weight: 600; 49 | padding: 8px 16px; 50 | position: relative; } 51 | .sweet-alert button:focus, .sweet-alert button.cancel:focus { 52 | box-shadow: none !important; } 53 | .sweet-alert button:focus::before, .sweet-alert button.cancel:focus::before { 54 | content: ""; 55 | position: absolute; 56 | left: -5px; 57 | top: -5px; 58 | right: -5px; 59 | bottom: -5px; 60 | border: 2px solid #a5b0b4; 61 | border-radius: 8px; } 62 | .sweet-alert button.confirm { 63 | background-color: #55acee !important; 64 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.05)); 65 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)"; 66 | border: 1px solid #3b88c3; 67 | box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15); 68 | margin-right: 15px; } 69 | .sweet-alert button.confirm:hover { 70 | background-color: #55acee; 71 | background-image: linear-gradient(transparent, rgba(0, 0, 0, 0.15)); 72 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)"; 73 | border-color: #3b88c3; } 74 | .sweet-alert button.cancel { 75 | color: #66757e; 76 | background-color: #f5f8fa; 77 | background-image: linear-gradient(#fff, #f5f8fa); 78 | text-shadow: 0px -1px 0px white; 79 | margin-right: 9px; 80 | border: 1px solid #e1e8ed; } 81 | .sweet-alert button.cancel:hover, .sweet-alert button.cancel:focus:hover { 82 | background-color: #e1e8ed; 83 | background-image: linear-gradient(#fff, #e1e8ed); 84 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)"; 85 | border-color: #e1e8ed; } 86 | .sweet-alert button.cancel:focus { 87 | background: #fff; 88 | border-color: #fff; } 89 | .sweet-alert .sa-icon:not(.sa-custom) { 90 | transform: scale(0.72); 91 | margin-bottom: -2px; 92 | margin-top: -10px; } 93 | .sweet-alert input { 94 | border: 1px solid #e1e8ed; 95 | border-radius: 3px; 96 | padding: 10px 7px; 97 | height: auto; 98 | box-shadow: none; 99 | font-size: 13px; 100 | margin: 10px 0; } 101 | .sweet-alert input:focus { 102 | border-color: #94A1A6; 103 | box-shadow: inset 0 0 0 1px rgba(77, 99, 107, 0.7); } 104 | .sweet-alert fieldset .sa-input-error { 105 | display: none; } 106 | .sweet-alert .sa-error-container { 107 | text-align: center; 108 | border: none; 109 | background-color: #fbedc0; 110 | margin-bottom: 6px; } 111 | .sweet-alert .sa-error-container.show { 112 | border: 1px solid #f0e1b9; } 113 | .sweet-alert .sa-error-container .icon { 114 | display: none; } 115 | .sweet-alert .sa-error-container p { 116 | color: #292f33; 117 | font-weight: 600; 118 | margin-top: 0; } 119 | 120 | @-webkit-keyframes animateErrorIcon { 121 | 0% { 122 | transform: rotateX(100deg), scale(0.5); 123 | -webkit-transform: rotateX(100deg), scale(0.5); 124 | opacity: 0; } 125 | 100% { 126 | transform: rotateX(0deg), scale(0.5); 127 | -webkit-transform: rotateX(0deg), scale(0.5); 128 | opacity: 1; } } 129 | 130 | @keyframes animateErrorIcon { 131 | 0% { 132 | transform: rotateX(100deg), scale(0.5); 133 | -webkit-transform: rotateX(100deg), scale(0.5); 134 | opacity: 0; } 135 | 100% { 136 | transform: rotateX(0deg), scale(0.5); 137 | -webkit-transform: rotateX(0deg), scale(0.5); 138 | opacity: 1; } } 139 | -------------------------------------------------------------------------------- /src/assets/js/plugins/sweetalert/themes/twitter/twitter.scss: -------------------------------------------------------------------------------- 1 | // Twitter Theme for SweetAlert 2 | // By Tristan Edwards 3 | 4 | .sweet-overlay { 5 | background: rgba(41,47,51,0.9); 6 | } 7 | 8 | 9 | .sweet-alert { 10 | $header-height: 40px; 11 | $footer-height: 66px; 12 | $text-color: #66757f; 13 | $padding: 15px; 14 | 15 | font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; 16 | padding: $padding; 17 | padding-top: $header-height + $padding; 18 | text-align: right; // Align buttons 19 | border-radius: 6px; 20 | box-shadow: 0px 0px 0px 1px rgba(black, 0.11), 0px 6px 30px rgba(black, 0.14); 21 | 22 | h2 { 23 | position: absolute; 24 | top: 0; 25 | left: 0; 26 | right: 0; 27 | height: $header-height; 28 | line-height: $header-height; 29 | font-size: 16px; 30 | font-weight: 400; 31 | color: #8899a6; 32 | margin: 0; 33 | color: $text-color; 34 | border-bottom: 1px solid #e1e8ed; 35 | } 36 | 37 | p { 38 | display: block; 39 | text-align: center; 40 | color: #66757f; 41 | font-weight: 400; 42 | font-size: 13px; 43 | margin-top: 7px; 44 | } 45 | 46 | .sa-button-container { 47 | background-color: #f5f8fa; 48 | border-top: 1px solid #e1e8ed; 49 | box-shadow: 0px -1px 0px white; 50 | margin: -$padding; 51 | margin-top: 0; 52 | } 53 | &[data-has-confirm-button=false][data-has-cancel-button=false] { 54 | padding-bottom: 10px; 55 | .sa-button-container { 56 | display: none; 57 | } 58 | } 59 | 60 | button { 61 | border-radius: 2px; 62 | box-shadow: none !important; 63 | text-shadow: 0px -1px 0px rgba(black, 0.3); 64 | margin: 17px 0px; 65 | border-radius: 4px; 66 | font-size: 14px; 67 | font-weight: 600; 68 | padding: 8px 16px; 69 | position: relative; 70 | &:focus, &.cancel:focus { 71 | box-shadow: none !important; 72 | &::before { 73 | content: ""; 74 | position: absolute; 75 | left: -5px; 76 | top: -5px; 77 | right: -5px; 78 | bottom: -5px; 79 | border: 2px solid #a5b0b4; 80 | border-radius: 8px; 81 | } 82 | } 83 | 84 | &.confirm { 85 | background-color: #55acee !important; 86 | background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.05)); 87 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#0C000000)"; 88 | border: 1px solid #3b88c3; 89 | box-shadow: inset 0 1px 0 rgba(255,255,255,0.15); 90 | margin-right: $padding; 91 | &:hover { 92 | background-color: #55acee; 93 | background-image: linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0.15)); 94 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00000000, endColorstr=#26000000)"; 95 | border-color: #3b88c3; 96 | } 97 | } 98 | &.cancel { 99 | color: #66757e; 100 | background-color: #f5f8fa; 101 | background-image: linear-gradient(#fff,#f5f8fa); 102 | text-shadow: 0px -1px 0px white; 103 | margin-right: 9px; 104 | border: 1px solid #e1e8ed; 105 | &:hover, &:focus:hover { 106 | background-color: #e1e8ed; 107 | background-image: linear-gradient(#fff,#e1e8ed); 108 | -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)"; 109 | border-color: #e1e8ed; 110 | } 111 | &:focus { 112 | background: #fff; 113 | border-color: #fff; 114 | } 115 | } 116 | } 117 | 118 | .sa-icon:not(.sa-custom) { 119 | transform: scale(0.72); 120 | margin-bottom: -2px; 121 | margin-top: -10px; 122 | } 123 | 124 | input { 125 | border: 1px solid #e1e8ed; 126 | border-radius: 3px; 127 | padding: 10px 7px; 128 | height: auto; 129 | box-shadow: none; 130 | font-size: 13px; 131 | margin: 10px 0; 132 | &:focus { 133 | border-color: #94A1A6; 134 | box-shadow: inset 0 0 0 1px rgba(77, 99, 107, 0.7); 135 | } 136 | } 137 | 138 | fieldset .sa-input-error { 139 | display: none; 140 | } 141 | 142 | .sa-error-container { 143 | text-align: center; 144 | border: none; 145 | background-color: #fbedc0; 146 | margin-bottom: 6px; 147 | &.show { 148 | border: 1px solid #f0e1b9; 149 | } 150 | 151 | .icon { 152 | display: none; 153 | } 154 | p { 155 | color: #292f33; 156 | font-weight: 600; 157 | margin-top: 0; 158 | } 159 | } 160 | } 161 | 162 | 163 | // Animations 164 | 165 | @mixin keyframes($animation-name) { 166 | @-webkit-keyframes #{$animation-name} { 167 | @content; 168 | } 169 | @keyframes #{$animation-name} { 170 | @content; 171 | } 172 | } 173 | 174 | @include keyframes(animateErrorIcon) { 175 | 0% { transform: rotateX(100deg), scale(0.5); -webkit-transform: rotateX(100deg), scale(0.5); opacity: 0; } 176 | 100% { transform: rotateX(0deg), scale(0.5); -webkit-transform: rotateX(0deg), scale(0.5); opacity: 1; } 177 | } -------------------------------------------------------------------------------- /src/components/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/components/.gitkeep -------------------------------------------------------------------------------- /src/components/base/bread-crumb.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /src/components/base/loading.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 29 | 30 | -------------------------------------------------------------------------------- /src/components/base/modal.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 63 | -------------------------------------------------------------------------------- /src/components/base/pagination.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | -------------------------------------------------------------------------------- /src/components/editor.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /src/components/registerComponent.js: -------------------------------------------------------------------------------- 1 | import Pagination from './base/pagination'; 2 | import Loading from './base/loading'; 3 | import BreadCrumb from './base/bread-crumb'; 4 | import Modal from './base/modal'; 5 | 6 | export default function(Vue){ 7 | Vue.component('pagination', Pagination); 8 | Vue.component('loading', Loading); 9 | Vue.component('bread-crumb', BreadCrumb); 10 | Vue.component('modal', Modal); 11 | } -------------------------------------------------------------------------------- /src/directives/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/directives/.gitkeep -------------------------------------------------------------------------------- /src/directives/base/collapseMenu.js: -------------------------------------------------------------------------------- 1 | export default { 2 | twoWay: true, 3 | priority: 1000, 4 | params: ['options'], 5 | bind: function () { 6 | let self = this; 7 | let defaults = { 8 | toggle: true 9 | }; 10 | let settings = $.extend(defaults, self.params.options); 11 | let $this = $(this.el); 12 | let $toggle = settings.toggle; 13 | 14 | $this.find("li.active").has("ul").children("ul").addClass("collapse in"); 15 | $this.find("li").not(".active").has("ul").children("ul").addClass("collapse"); 16 | 17 | $this.find("li").children("a").on("click" + ".collapseMenu", function (e) { 18 | if($(this).siblings("ul").length){ 19 | e.preventDefault(); 20 | } 21 | $(this).parent("li").toggleClass("active").children("ul").collapse("toggle"); 22 | if ($toggle) { 23 | $(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide"); 24 | } 25 | }); 26 | 27 | }, 28 | 29 | update(value) { 30 | // todo 31 | }, 32 | unbind() { 33 | $(this.el).off('.collapseMenu'); 34 | } 35 | } -------------------------------------------------------------------------------- /src/directives/base/datepicker.js: -------------------------------------------------------------------------------- 1 | import datepicker from '../../assets/js/plugins/datapicker/bootstrap-datepicker'; 2 | import '../../assets/js/plugins/datapicker/datepicker3.css'; 3 | 4 | export default { 5 | twoWay: true, 6 | priority: 1000, 7 | params: ['options'], 8 | bind() { 9 | let self = this; 10 | let defaults = { 11 | format: "yyyy-mm-dd", 12 | minViewMode: 1, 13 | keyboardNavigation: false, 14 | forceParse: false, 15 | autoclose: true, 16 | todayHighlight: true 17 | }; 18 | let settings = $.extend(defaults, self.params.options); 19 | $(this.el).datepicker(settings); 20 | }, 21 | update(value) { 22 | // todo 23 | }, 24 | unbind() { 25 | $(this.el).off(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/directives/registerDirective.js: -------------------------------------------------------------------------------- 1 | import menu from './base/collapseMenu'; 2 | import datepicker from './base/datepicker'; 3 | 4 | export default function(Vue){ 5 | Vue.directive('menu', menu); 6 | Vue.directive('datepicker', datepicker); 7 | } -------------------------------------------------------------------------------- /src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | vue-admin-template 9 | 10 | 11 |
12 |
13 | 14 | -------------------------------------------------------------------------------- /src/interceptors/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/interceptors/.gitkeep -------------------------------------------------------------------------------- /src/interceptors/auth_interceptor.js: -------------------------------------------------------------------------------- 1 | export default function authConfig(Vue) { 2 | Vue.http.interceptors.push((request, next) => { 3 | var token, headers; 4 | token = sessionStorage.getItem('jwt_token'); 5 | headers = request.headers || (request.headers = {}); 6 | if (token !== null && token !== 'undefined') { 7 | request.headers.set('Authorization', 'Bearer ' + token); 8 | } 9 | next((response) => { 10 | if (response.status && response.status.code === 401) { 11 | sessionStorage.removeItem('jwt_token'); 12 | } 13 | if (response.headers && response.headers.Authorization) { 14 | sessionStorage.setItem('jwt_token', response.headers.Authorization); 15 | } 16 | if (response.entity && response.entity.token && response.entity.token.length > 10) { 17 | sessionStorage.setItem('jwt_token', 'Bearer ' + response.entity.token); 18 | } 19 | return response; 20 | }) 21 | }); 22 | } -------------------------------------------------------------------------------- /src/lib/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/lib/.gitkeep -------------------------------------------------------------------------------- /src/lib/auth.js: -------------------------------------------------------------------------------- 1 | const LOGIN_URL = 'login'; 2 | const LOGOUT_URL = 'logout'; 3 | 4 | export default { 5 | 6 | user: null, 7 | 8 | authenticated: false, 9 | 10 | login(context, creds) { 11 | 12 | return new Promise(function (resolve, reject) { 13 | let error_result = {flag: false, msg: "登陆失败"}; 14 | context.$http.post(LOGIN_URL, creds).then((result) => { 15 | let data = result.data; 16 | if (data.flag === true) { 17 | sessionStorage.setItem('jwt_token', data.jwt_token); 18 | sessionStorage.setItem('jwt_user', JSON.stringify(data.data)); 19 | this.authenticated = true; 20 | this.user = data.data; 21 | resolve(result); 22 | } else { 23 | reject(data); 24 | } 25 | 26 | }, (error) => { 27 | reject(error_result); 28 | }); 29 | 30 | }.bind(this)); 31 | 32 | }, 33 | 34 | logout(context) { 35 | 36 | return new Promise(function (resolve, reject) { 37 | 38 | context.$http.post(LOGOUT_URL).then((result)=> { 39 | let data = result.data; 40 | if (data.flag === true) { 41 | sessionStorage.removeItem('jwt_token'); 42 | sessionStorage.removeItem('jwt_user'); 43 | this.authenticated = false; 44 | this.user = null; 45 | resolve(); 46 | } else { 47 | reject(); 48 | } 49 | }, (error)=> { 50 | reject(error); 51 | }); 52 | 53 | }.bind(this)); 54 | 55 | }, 56 | 57 | checkAuth() { 58 | let jwt = sessionStorage.getItem('jwt_token'); 59 | if (jwt) { 60 | this.authenticated = true; 61 | } else { 62 | this.authenticated = false; 63 | } 64 | }, 65 | 66 | getToken() { 67 | return sessionStorage.getItem('jwt_token'); 68 | } 69 | }; 70 | -------------------------------------------------------------------------------- /src/lib/utils.js: -------------------------------------------------------------------------------- 1 | export function ucFirst(word) { 2 | return word.replace(/(\w)/, function (v) { 3 | return v.toUpperCase(); 4 | }); 5 | } 6 | 7 | export function extend(out = {}) { 8 | for (var i = 1; i < arguments.length; i++) { 9 | if (!arguments[i]) { 10 | continue; 11 | } 12 | 13 | for (var key in arguments[i]) { 14 | if (arguments[i].hasOwnProperty(key)) { 15 | out[key] = arguments[i][key]; 16 | } 17 | } 18 | } 19 | return out; 20 | } -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import VueRouter from 'vue-router'; 3 | import VueResource from 'vue-resource'; 4 | import Swal from './plugins/sweetalert'; 5 | 6 | Vue.use(VueResource); 7 | Vue.use(VueRouter); 8 | Vue.use(Swal); 9 | 10 | // Style 11 | import './assets/css/bootstrap.css'; 12 | import './assets/css/font-awesome.css'; 13 | import './assets/css/animate.css'; 14 | import './assets/css/style.css'; 15 | 16 | // Js 17 | import config from '../config'; 18 | import './assets/js/bootstrap'; 19 | import App from './app'; 20 | 21 | // Common Components 22 | import registerComponent from './components/registerComponent'; 23 | registerComponent(Vue); 24 | 25 | // Directives 26 | import registerDirective from './directives/registerDirective'; 27 | registerDirective(Vue); 28 | 29 | import authInterceptor from './interceptors/auth_interceptor'; 30 | import routeConfig from './routes'; 31 | 32 | // Storage 33 | Vue.prototype.$session = window.sessionStorage || {}; 34 | Vue.prototype.$store = window.localstorage || {}; 35 | 36 | // config 37 | Vue.config.debug = config.debug; 38 | Vue.config.devtools = config.debug; 39 | 40 | Vue.http.options.root = '/backend'; 41 | 42 | let router = new VueRouter(); 43 | routeConfig(router); 44 | 45 | authInterceptor(Vue); 46 | 47 | router.start(App, '#app'); 48 | 49 | window.router = router; -------------------------------------------------------------------------------- /src/mixins/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/mixins/.gitkeep -------------------------------------------------------------------------------- /src/mixins/auth.js: -------------------------------------------------------------------------------- 1 | import auth from '../lib/auth'; 2 | 3 | export default { 4 | methods: { 5 | logout: function () { 6 | let vm = this; 7 | vm.$confirm('确定要退出吗?',function(){ 8 | auth.logout(vm).then(function () { 9 | vm.$route.router.go('/login'); 10 | }); 11 | }); 12 | } 13 | } 14 | } -------------------------------------------------------------------------------- /src/plugins/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liukaijv/vue-admin-template/604857c254ca42e265ec65a5700a93e1a2331a47/src/plugins/.gitkeep -------------------------------------------------------------------------------- /src/plugins/sweetalert.js: -------------------------------------------------------------------------------- 1 | import '../assets/js/plugins/sweetalert/sweetalert.css'; 2 | import '../assets/js/plugins/sweetalert/themes/bootstrap/bootstrap.css'; 3 | import Swal from '../assets/js/plugins/sweetalert/sweetalert.min'; 4 | 5 | export default { 6 | install: function (vue) { 7 | "use strict"; 8 | 9 | // let defaultParams = { 10 | // title: '', 11 | // text: '', 12 | // type: null, 13 | // allowOutsideClick: false, 14 | // showConfirmButton: true, 15 | // showCancelButton: false, 16 | // closeOnConfirm: true, 17 | // closeOnCancel: true, 18 | // confirmButtonText: 'OK', 19 | // confirmButtonColor: '#8CD4F5', 20 | // cancelButtonText: 'Cancel', 21 | // imageUrl: null, 22 | // imageSize: null, 23 | // timer: null, 24 | // customClass: '', 25 | // html: false, 26 | // animation: true, 27 | // allowEscapeKey: true, 28 | // inputType: 'text', 29 | // inputPlaceholder: '', 30 | // inputValue: '', 31 | // showLoaderOnConfirm: false 32 | // }; 33 | 34 | vue.prototype.$swal = Swal; 35 | 36 | // alert 37 | vue.prototype.$alert = function(title="确定要这样吗?", text, callbackOk) { 38 | 39 | if (typeof text === 'function') { 40 | callbackOk = arguments[1]; 41 | text = undefined; 42 | } 43 | 44 | return Swal({ 45 | title: title, 46 | text: text, 47 | confirmButtonText:'确定' 48 | },function(){ 49 | typeof callbackOk === 'function' && callbackOk(); 50 | }); 51 | 52 | }; 53 | 54 | // 确认框 55 | vue.prototype.$confirm = function(title="确定要这样吗?", text, callbackOk, callbackCancel) { 56 | if (typeof text === 'function') { 57 | callbackCancel = arguments[2]; 58 | callbackOk = arguments[1]; 59 | text = undefined; 60 | } 61 | return Swal({ 62 | title: title, 63 | text: text, 64 | showCancelButton: true, 65 | cancelButtonText:'取消', 66 | confirmButtonText:'确定' 67 | },function(isConfirm){ 68 | if (isConfirm) { 69 | typeof callbackOk === 'function' && callbackOk(); 70 | }else{ 71 | typeof callbackCancel === 'function' && callbackCancel(); 72 | } 73 | 74 | }) 75 | }; 76 | 77 | // prompt 78 | vue.prototype.$prompt = function(title="确定要这样吗?", text, callbackOk, callbackCancel) { 79 | if (typeof text === 'function') { 80 | callbackCancel = arguments[2]; 81 | callbackOk = arguments[1]; 82 | text = undefined; 83 | } 84 | return Swal({ 85 | title: title, 86 | text: text, 87 | type: "input", 88 | showCancelButton: true, 89 | cancelButtonText:'取消', 90 | confirmButtonText:'确定', 91 | closeOnConfirm: false, 92 | },function(inputValue ){ 93 | if (inputValue === false) { 94 | typeof callbackCancel === 'function' && callbackCancel(); 95 | return false; 96 | }else{ 97 | typeof callbackOk === 'function' && callbackOk(inputValue); 98 | } 99 | 100 | }) 101 | }; 102 | 103 | // toast 104 | vue.prototype.$toast = function(title){ 105 | return Swal({ 106 | title: title, 107 | text: '', 108 | type: "success", 109 | showCancelButton: false, 110 | showConfirmButton:false, 111 | timer:3000, 112 | allowOutsideClick:true 113 | }); 114 | } 115 | 116 | } 117 | 118 | } -------------------------------------------------------------------------------- /src/routes.js: -------------------------------------------------------------------------------- 1 | export default function routeConfig(router) { 2 | router.map({ 3 | '/': { 4 | name: 'main', 5 | component: (resolve)=>{require(['./views/layout'],resolve)}, 6 | subRoutes: { 7 | '/dashboard': { 8 | name: 'dashboard', 9 | component: (resolve)=>{require(['./views/dashboard'],resolve)} 10 | }, 11 | '/user': { 12 | name: 'user', 13 | component: (resolve)=>{require(['./views/user'],resolve)} 14 | } 15 | } 16 | }, 17 | '/login': { 18 | name: 'login', 19 | component: (resolve)=>{require(['./views/login'],resolve)} 20 | } 21 | }); 22 | 23 | router.redirect({ 24 | '*': '/login', 25 | '/': '/dashboard' 26 | }); 27 | 28 | router.beforeEach(function (transition) { 29 | let token = sessionStorage.getItem('jwt_token'); 30 | if (!token || token === null) { 31 | router.go('/login'); 32 | } 33 | transition.next(); 34 | }); 35 | 36 | } -------------------------------------------------------------------------------- /src/scss/custom.scss: -------------------------------------------------------------------------------- 1 | 2 | // modal 3 | .modal-title i{ 4 | float: left; 5 | margin-top: 10px; 6 | } 7 | .modal-title-body{ 8 | margin-left: 20px; 9 | } 10 | .modal-title-text{ 11 | font-weight: bold; 12 | font-size: 14px; 13 | } 14 | .modal-title-description{ 15 | margin-top: 2px; 16 | } 17 | .nav-tabs > li.active > a, 18 | .nav-tabs > li.active > a:hover, 19 | .nav-tabs > li.active > a:focus{ 20 | border-bottom-color:#fff; 21 | } 22 | 23 | .back-bor-null{ 24 | background-color: #2f4050; 25 | border-top: medium none #2f4050; 26 | color: #758492; 27 | text-align: center; 28 | } -------------------------------------------------------------------------------- /src/views/dashboard.vue: -------------------------------------------------------------------------------- 1 | 2 | 20 | 21 | -------------------------------------------------------------------------------- /src/views/layout.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | -------------------------------------------------------------------------------- /src/views/login.vue: -------------------------------------------------------------------------------- 1 | 23 | 55 | 56 | -------------------------------------------------------------------------------- /src/views/partial/bottom.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/views/partial/sidebar.vue: -------------------------------------------------------------------------------- 1 | 10 | 56 | 57 | -------------------------------------------------------------------------------- /src/views/partial/top.vue: -------------------------------------------------------------------------------- 1 | 27 | 28 | -------------------------------------------------------------------------------- /src/views/user/index.vue: -------------------------------------------------------------------------------- 1 | 100 | 101 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | var path = require('path'); 2 | var webpack = require('webpack'); 3 | var HtmlWebpackPlugin = require('html-webpack-plugin'); 4 | var ExtractTextPlugin = require("extract-text-webpack-plugin"); 5 | 6 | var config = require('./config'); 7 | 8 | module.exports = { 9 | entry: path.resolve(config.srcPath, 'main.js'), 10 | output:{ 11 | path: 'dist', 12 | filename: 'js/[name]-[hash]-bundle.js' 13 | }, 14 | resolve: { 15 | extensions: ['', '.js', '.vue'] 16 | }, 17 | module:{ 18 | loaders:[ 19 | { 20 | test:/\.vue$/, 21 | loader:'vue' 22 | }, 23 | { 24 | test: /\.js?$/, 25 | loader: 'babel', 26 | query: { 27 | presets: ['es2015'], 28 | plugins: ["transform-runtime"], 29 | }, 30 | exclude: /node_modules/ 31 | }, 32 | { 33 | test: /\.scss$/, 34 | loaders: [ 'style', 'css', 'sass' ] 35 | }, 36 | { 37 | test:/\.css$/, 38 | loader: ExtractTextPlugin.extract("style-loader", "css-loader") 39 | }, 40 | { 41 | test: /\.(woff2?|eot|ttf)(\?.*)?$/, 42 | loader: 'url', 43 | query: { 44 | limit: 10000, 45 | name: 'fonts/[name].[ext]' 46 | } 47 | }, 48 | { 49 | test: /\.(png|jpg|gif|svg)(\?.*)?$/, 50 | loader: 'url', 51 | query: { 52 | limit: 10000, 53 | name: 'images/[name].[ext]' 54 | } 55 | } 56 | ] 57 | }, 58 | plugins: [ 59 | new ExtractTextPlugin('[name].css'), 60 | new HtmlWebpackPlugin({ 61 | template: path.join(config.srcPath, 'index.html') 62 | }), 63 | new webpack.ProvidePlugin({ 64 | $: "jquery", 65 | jQuery: "jquery", 66 | "window.jQuery": "jquery", 67 | "window.$": "jquery", 68 | }) 69 | ], 70 | devServer: { 71 | proxy: { 72 | '/backend/*': { 73 | target: config.apiDomain, 74 | changeOrigin: true 75 | } 76 | } 77 | } 78 | } --------------------------------------------------------------------------------