mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-22 01:55:14 +00:00
commit
4b7967b938
28 changed files with 1007 additions and 1012 deletions
2
boot.php
2
boot.php
|
@ -51,7 +51,7 @@ require_once('include/attach.php');
|
|||
require_once('include/bbcode.php');
|
||||
|
||||
define ( 'PLATFORM_NAME', 'hubzilla' );
|
||||
define ( 'STD_VERSION', '3.1.3' );
|
||||
define ( 'STD_VERSION', '3.1.4' );
|
||||
define ( 'ZOT_REVISION', '1.3' );
|
||||
|
||||
define ( 'DB_UPDATE_VERSION', 1198 );
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
<?php /** @file */
|
||||
|
||||
namespace Hubzilla\Import;
|
||||
|
||||
/**
|
||||
* @brief Class Import
|
||||
*
|
||||
*/
|
||||
class Import {
|
||||
|
||||
private $credentials = null;
|
||||
|
||||
protected $itemlist = null;
|
||||
protected $src_items = null;
|
||||
protected $items = null;
|
||||
|
||||
function get_credentials() {
|
||||
return $this->credentials;
|
||||
}
|
||||
|
||||
function get_itemlist() {
|
||||
return $this->itemlist;
|
||||
}
|
||||
|
||||
function get_item_ident($item) {
|
||||
|
||||
}
|
||||
|
||||
function get_item($item_ident) {
|
||||
|
||||
}
|
||||
|
||||
function get_taxonomy($item_ident) {
|
||||
|
||||
}
|
||||
|
||||
function get_children($item_ident) {
|
||||
|
||||
}
|
||||
|
||||
function convert_item($item_ident) {
|
||||
|
||||
}
|
||||
|
||||
function convert_taxonomy($item_ident) {
|
||||
|
||||
}
|
||||
|
||||
function convert_child($child) {
|
||||
|
||||
}
|
||||
|
||||
function store($item, $update = false) {
|
||||
|
||||
}
|
||||
|
||||
function run() {
|
||||
$this->credentials = $this->get_credentials();
|
||||
$this->itemlist = $this->get_itemlist();
|
||||
if($this->itemlist) {
|
||||
$this->src_items = array();
|
||||
$this->items = array();
|
||||
$cnt = 0;
|
||||
foreach($this->itemlist as $item) {
|
||||
$ident = $item->get_item_ident($item);
|
||||
$this->src_items[$ident]['item'] = $this->get_item($ident);
|
||||
$this->src_items[$ident]['taxonomy'] = $this->get_taxonomy($ident);
|
||||
$this->src_items[$ident]['children'] = $this->get_children($ident);
|
||||
$this->items[$cnt]['item'] = $this->convert_item($ident);
|
||||
$this->items[$cnt]['item']['term'] = $this->convert_taxonomy($ident);
|
||||
if($this->src_items[$ident]['children']) {
|
||||
$this->items[$cnt]['children'] = array();
|
||||
foreach($this->src_items[$ident]['children'] as $child) {
|
||||
$this[$cnt]['children'][] = $this->convert_child($child);
|
||||
}
|
||||
}
|
||||
$cnt ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,284 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once('include/html2bbcode.php');
|
||||
|
||||
// Sample module for importing conversation data from Reflection CMS. Some preparation was used to
|
||||
// dump relevant posts, categories and comments into individual JSON files, and also JSON dump of
|
||||
// the user table to search for avatars. Importation was also batched in sets of 20 posts per page
|
||||
// visit so as to survive shared hosting process limits. This provides some clues as how to handle
|
||||
// WordPress imports, which use a somewhat similar DB structure. The batching and individual files
|
||||
// might not be needed in VPS environments. As such this could be considered an extreme test case, but
|
||||
// the importation was successful in all regards using this code. The module URL was visited repeatedly
|
||||
// with a browser until all the posts had been imported.
|
||||
|
||||
|
||||
define('REDMATRIX_IMPORTCHANNEL','mike');
|
||||
define('REFLECT_EXPORTUSERNAME','mike');
|
||||
define('REFLECT_BLOGNAME','Diary and Other Rantings');
|
||||
define('REFLECT_BASEURL','http://example.com/');
|
||||
define('REFLECT_USERFILE','user.json');
|
||||
|
||||
// set to true if you need to process everything again
|
||||
define('REFLECT_OVERWRITE',false);
|
||||
|
||||
// we'll only process a small number of posts at a time on a shared host.
|
||||
|
||||
define('REFLECT_MAXPERRUN',30);
|
||||
|
||||
function reflect_get_channel() {
|
||||
|
||||
// this will be the channel_address or nickname of the red channel
|
||||
|
||||
$c = q("select * from channel left join xchan on channel_hash = xchan_hash
|
||||
where channel_address = '%s' limit 1",
|
||||
dbesc(REDMATRIX_IMPORTCHANNEL)
|
||||
);
|
||||
return $c[0];
|
||||
}
|
||||
|
||||
|
||||
function refimport_content(&$a) {
|
||||
|
||||
$channel = reflect_get_channel();
|
||||
|
||||
// load the user file. We need that to find the commenter's avatars
|
||||
|
||||
$u = file_get_contents(REFLECT_USERFILE);
|
||||
if($u) {
|
||||
$users = json_decode($u,true);
|
||||
}
|
||||
|
||||
$ignored = 0;
|
||||
$processed = 0;
|
||||
|
||||
$files = glob('article/*');
|
||||
if(! $files)
|
||||
return;
|
||||
|
||||
foreach($files as $f) {
|
||||
$s = file_get_contents($f);
|
||||
$j = json_decode($s,true);
|
||||
|
||||
if(! $j)
|
||||
continue;
|
||||
|
||||
$arr = array();
|
||||
|
||||
// see if this article was already processed
|
||||
$r = q("select * from item where mid = '%s' and uid = %d limit 1",
|
||||
dbesc($j['guid']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r) {
|
||||
if(REFLECT_OVERWRITE)
|
||||
$arr['id'] = $r[0]['id'];
|
||||
else {
|
||||
$ignored ++;
|
||||
rename($f,str_replace('article','done',$f));
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$arr['uid'] = $channel['channel_account_id'];
|
||||
$arr['aid'] = $channel['channel_id'];
|
||||
$arr['mid'] = $arr['parent_mid'] = $j['guid'];
|
||||
$arr['created'] = $j['created'];
|
||||
$arr['edited'] = $j['edited'];
|
||||
$arr['author_xchan'] = $channel['channel_hash'];
|
||||
$arr['owner_xchan'] = $channel['channel_hash'];
|
||||
$arr['app'] = REFLECT_BLOGNAME;
|
||||
|
||||
$arr['item_origin'] = 1;
|
||||
$arr['item_wall'] = 1;
|
||||
$arr['item_thread_top'] = 1;
|
||||
|
||||
$arr['verb'] = ACTIVITY_POST;
|
||||
|
||||
// this is an assumption
|
||||
$arr['comment_policy'] = 'contacts';
|
||||
|
||||
|
||||
// import content. In this case the content is XHTML.
|
||||
|
||||
$arr['title'] = html2bbcode($j['title']);
|
||||
$arr['title'] = htmlspecialchars($arr['title'],ENT_COMPAT,'UTF-8',false);
|
||||
|
||||
|
||||
$arr['body'] = html2bbcode($j['body']);
|
||||
$arr['body'] = htmlspecialchars($arr['body'],ENT_COMPAT,'UTF-8',false);
|
||||
|
||||
|
||||
// convert relative urls to other posts on that service to absolute url on our service.
|
||||
$arr['body'] = preg_replace_callback("/\[url\=\/+article\/(.*?)\](.*?)\[url\]/",'reflect_article_callback',$arr['body']);
|
||||
|
||||
// also import any photos
|
||||
$arr['body'] = preg_replace_callback("/\[img(.*?)\](.*?)\[\/img\]/",'reflect_photo_callback',$arr['body']);
|
||||
|
||||
|
||||
// add categories
|
||||
|
||||
if($j['taxonomy'] && is_array($j['taxonomy']) && count($j['taxonomy'])) {
|
||||
$arr['term'] = array();
|
||||
foreach($j['taxonomy'] as $tax) {
|
||||
$arr['term'][] = array(
|
||||
'uid' => $channel['channel_id'],
|
||||
'type' => TERM_CATEGORY,
|
||||
'otype' => TERM_OBJ_POST,
|
||||
'term' => trim($tax['name']),
|
||||
'url' => $channel['xchan_url'] . '?f=&cat=' . urlencode(trim($tax['name']))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// store the item
|
||||
|
||||
if($arr['id'])
|
||||
item_store_update($arr);
|
||||
else
|
||||
item_store($arr);
|
||||
|
||||
// if there are any comments, process them
|
||||
// $comment['registered'] is somebody with an account on the system. Others are mostly anonymous
|
||||
|
||||
if($j['comments']) {
|
||||
foreach($j['comments'] as $comment) {
|
||||
$user = (($comment['registered']) ? reflect_find_user($users,$comment['author']) : null);
|
||||
reflect_comment_store($channel,$arr,$comment,$user);
|
||||
}
|
||||
}
|
||||
$processed ++;
|
||||
|
||||
if(REFLECT_MAXPERRUN && $processed > REFLECT_MAXPERRUN)
|
||||
break;
|
||||
}
|
||||
return 'processed: ' . $processed . EOL . 'completed: ' . $ignored . EOL;
|
||||
|
||||
}
|
||||
|
||||
function reflect_article_callback($matches) {
|
||||
return '[zrl=' . z_root() . '/display/'. $matches[1] . ']' . $matches[2] . '[/zrl]';
|
||||
}
|
||||
|
||||
function reflect_photo_callback($matches) {
|
||||
|
||||
if(strpos($matches[2],'http') !== false)
|
||||
return $matches[0];
|
||||
|
||||
$prefix = REFLECT_BASEURL;
|
||||
$x = z_fetch_url($prefix.$matches[2],true);
|
||||
|
||||
$hash = basename($matches[2]);
|
||||
|
||||
if($x['success']) {
|
||||
$channel = reflect_get_channel();
|
||||
require_once('include/photos.php');
|
||||
$p = photo_upload($channel,$channel,
|
||||
array('data' => $x['body'],
|
||||
'resource_id' => str_replace('-','',$hash),
|
||||
'filename' => $hash . '.jpg',
|
||||
'type' => 'image/jpeg',
|
||||
'visible' => false
|
||||
)
|
||||
);
|
||||
|
||||
if($p['success'])
|
||||
$newlink = $p['resource_id'] . '-0.jpg';
|
||||
|
||||
|
||||
// import photo and locate the link for it.
|
||||
return '[zmg]' . z_root() . '/photo/' . $newlink . '[/zmg]';
|
||||
|
||||
}
|
||||
// no replacement. Leave it alone.
|
||||
return $matches[0];
|
||||
}
|
||||
|
||||
function reflect_find_user($users,$name) {
|
||||
if($users) {
|
||||
foreach($users as $x) {
|
||||
if($x['name'] === $name) {
|
||||
return $x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
function reflect_comment_store($channel,$post,$comment,$user) {
|
||||
|
||||
// if the commenter was the channel owner, use their hubzilla xchan
|
||||
|
||||
if($comment['author'] === REFLECT_EXPORTUSERNAME && $comment['registered'])
|
||||
$hash = $channel['xchan_hash'];
|
||||
else {
|
||||
// we need a unique hash for the commenter. We don't know how many may have supplied
|
||||
// http://yahoo.com as their URL, so we'll use their avatar guid if they have one.
|
||||
// anonymous folks may get more than one xchan_hash if they commented more than once.
|
||||
|
||||
$hash = (($comment['registered'] && $user) ? $user['avatar'] : '');
|
||||
if(! $hash)
|
||||
$hash = random_string() . '.unknown';
|
||||
|
||||
// create an xchan for them which will also import their profile photo
|
||||
// they will have a network type 'unknown'.
|
||||
|
||||
$x = array(
|
||||
'hash' => $hash,
|
||||
'guid' => $hash,
|
||||
'url' => (($comment['url']) ? $comment['url'] : z_root()),
|
||||
'photo' => (($user) ? REFLECT_BASEURL . $user['avatar'] : z_root() . '/' . get_default_profile_photo()),
|
||||
'name' => $comment['author']
|
||||
);
|
||||
xchan_store($x);
|
||||
|
||||
}
|
||||
|
||||
$arr = array();
|
||||
|
||||
$r = q("select * from item where mid = '%s' and uid = %d limit 1",
|
||||
dbesc($comment['guid']),
|
||||
intval($channel['channel_id'])
|
||||
);
|
||||
if($r) {
|
||||
if(REFLECT_OVERWRITE)
|
||||
$arr['id'] = $r[0]['id'];
|
||||
else
|
||||
return;
|
||||
}
|
||||
|
||||
// this is a lot like storing the post except for subtle differences, like parent_mid, flags, author_xchan,
|
||||
// and we don't have a comment edited field so use creation date
|
||||
|
||||
$arr['uid'] = $channel['channel_account_id'];
|
||||
$arr['aid'] = $channel['channel_id'];
|
||||
$arr['mid'] = $comment['guid'];
|
||||
$arr['parent_mid'] = $post['mid'];
|
||||
$arr['created'] = $comment['created'];
|
||||
$arr['edited'] = $comment['created'];
|
||||
$arr['author_xchan'] = $hash;
|
||||
$arr['owner_xchan'] = $channel['channel_hash'];
|
||||
$arr['item_origin'] = 1;
|
||||
$arr['item_wall'] = 1;
|
||||
$arr['verb'] = ACTIVITY_POST;
|
||||
$arr['comment_policy'] = 'contacts';
|
||||
|
||||
|
||||
$arr['title'] = html2bbcode($comment['title']);
|
||||
$arr['title'] = htmlspecialchars($arr['title'],ENT_COMPAT,'UTF-8',false);
|
||||
|
||||
|
||||
$arr['body'] = html2bbcode($comment['body']);
|
||||
$arr['body'] = htmlspecialchars($arr['body'],ENT_COMPAT,'UTF-8',false);
|
||||
$arr['body'] = preg_replace_callback("/\[url\=\/+article\/(.*?)\](.*?)\[url\]/",'reflect_article_callback',$arr['body']);
|
||||
$arr['body'] = preg_replace_callback("/\[img(.*?)\](.*?)\[\/img\]/",'reflect_photo_callback',$arr['body']);
|
||||
|
||||
// logger('comment: ' . print_r($arr,true));
|
||||
|
||||
if($arr['id'])
|
||||
item_store_update($arr);
|
||||
else
|
||||
item_store($arr);
|
||||
|
||||
}
|
|
@ -73,8 +73,35 @@ function get_best_language() {
|
|||
}
|
||||
}
|
||||
|
||||
if(! isset($preferred))
|
||||
|
||||
if(! isset($preferred)) {
|
||||
|
||||
/*
|
||||
* We could find no perfect match for any of the preferred languages.
|
||||
* For cases where the preference is fr-fr and we have fr but *not* fr-fr
|
||||
* run the test again and only look for the language base
|
||||
* which should provide an interface they can sort of understand
|
||||
*/
|
||||
|
||||
if(isset($langs) && count($langs)) {
|
||||
foreach ($langs as $lang => $v) {
|
||||
if(strlen($lang) === 2) {
|
||||
/* we have already checked this language */
|
||||
continue;
|
||||
}
|
||||
/* Check the base */
|
||||
$lang = strtolower(substr($lang,0,2));
|
||||
if(is_dir("view/$lang")) {
|
||||
$preferred = $lang;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(! isset($preferred)) {
|
||||
$preferred = 'unset';
|
||||
}
|
||||
|
||||
$arr = array('langs' => $langs, 'preferred' => $preferred);
|
||||
|
||||
|
@ -86,6 +113,12 @@ function get_best_language() {
|
|||
return ((isset(App::$config['system']['language'])) ? App::$config['system']['language'] : 'en');
|
||||
}
|
||||
|
||||
/*
|
||||
* push_lang and pop_lang let you temporarily override the default language.
|
||||
* Often used to email the administrator during a session created in another language.
|
||||
* The stack is one level deep - so you must pop after every push.
|
||||
*/
|
||||
|
||||
|
||||
function push_lang($language) {
|
||||
|
||||
|
|
268
library/bootstrap/css/bootstrap-grid.css
vendored
268
library/bootstrap/css/bootstrap-grid.css
vendored
|
@ -1,7 +1,7 @@
|
|||
/*!
|
||||
* Bootstrap Grid v4.0.0-beta.3 (https://getbootstrap.com)
|
||||
* Copyright 2011-2017 The Bootstrap Authors
|
||||
* Copyright 2011-2017 Twitter, Inc.
|
||||
* Bootstrap Grid v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
@-ms-viewport {
|
||||
|
@ -200,6 +200,18 @@ html {
|
|||
order: -1;
|
||||
}
|
||||
|
||||
.order-last {
|
||||
-webkit-box-ordinal-group: 14;
|
||||
-ms-flex-order: 13;
|
||||
order: 13;
|
||||
}
|
||||
|
||||
.order-0 {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
|
||||
.order-1 {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
|
@ -409,6 +421,16 @@ html {
|
|||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
.order-sm-last {
|
||||
-webkit-box-ordinal-group: 14;
|
||||
-ms-flex-order: 13;
|
||||
order: 13;
|
||||
}
|
||||
.order-sm-0 {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
.order-sm-1 {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
|
@ -600,6 +622,16 @@ html {
|
|||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
.order-md-last {
|
||||
-webkit-box-ordinal-group: 14;
|
||||
-ms-flex-order: 13;
|
||||
order: 13;
|
||||
}
|
||||
.order-md-0 {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
.order-md-1 {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
|
@ -791,6 +823,16 @@ html {
|
|||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
.order-lg-last {
|
||||
-webkit-box-ordinal-group: 14;
|
||||
-ms-flex-order: 13;
|
||||
order: 13;
|
||||
}
|
||||
.order-lg-0 {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
.order-lg-1 {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
|
@ -982,6 +1024,16 @@ html {
|
|||
-ms-flex-order: -1;
|
||||
order: -1;
|
||||
}
|
||||
.order-xl-last {
|
||||
-webkit-box-ordinal-group: 14;
|
||||
-ms-flex-order: 13;
|
||||
order: 13;
|
||||
}
|
||||
.order-xl-0 {
|
||||
-webkit-box-ordinal-group: 1;
|
||||
-ms-flex-order: 0;
|
||||
order: 0;
|
||||
}
|
||||
.order-xl-1 {
|
||||
-webkit-box-ordinal-group: 2;
|
||||
-ms-flex-order: 1;
|
||||
|
@ -1080,6 +1132,216 @@ html {
|
|||
}
|
||||
}
|
||||
|
||||
.d-none {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.d-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
|
||||
.d-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
|
||||
.d-block {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
.d-table {
|
||||
display: table !important;
|
||||
}
|
||||
|
||||
.d-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
|
||||
.d-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
|
||||
.d-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
.d-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
|
||||
@media (min-width: 576px) {
|
||||
.d-sm-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-sm-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-sm-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-sm-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-sm-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-sm-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-sm-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-sm-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
.d-sm-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.d-md-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-md-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-md-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-md-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-md-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-md-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-md-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-md-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
.d-md-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.d-lg-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-lg-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-lg-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-lg-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-lg-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-lg-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-lg-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-lg-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
.d-lg-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.d-xl-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-xl-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-xl-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-xl-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-xl-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-xl-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-xl-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-xl-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
.d-xl-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
.d-print-none {
|
||||
display: none !important;
|
||||
}
|
||||
.d-print-inline {
|
||||
display: inline !important;
|
||||
}
|
||||
.d-print-inline-block {
|
||||
display: inline-block !important;
|
||||
}
|
||||
.d-print-block {
|
||||
display: block !important;
|
||||
}
|
||||
.d-print-table {
|
||||
display: table !important;
|
||||
}
|
||||
.d-print-table-row {
|
||||
display: table-row !important;
|
||||
}
|
||||
.d-print-table-cell {
|
||||
display: table-cell !important;
|
||||
}
|
||||
.d-print-flex {
|
||||
display: -webkit-box !important;
|
||||
display: -ms-flexbox !important;
|
||||
display: flex !important;
|
||||
}
|
||||
.d-print-inline-flex {
|
||||
display: -webkit-inline-box !important;
|
||||
display: -ms-inline-flexbox !important;
|
||||
display: inline-flex !important;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-row {
|
||||
-webkit-box-orient: horizontal !important;
|
||||
-webkit-box-direction: normal !important;
|
||||
|
|
File diff suppressed because one or more lines are too long
8
library/bootstrap/css/bootstrap-grid.min.css
vendored
8
library/bootstrap/css/bootstrap-grid.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
23
library/bootstrap/css/bootstrap-reboot.css
vendored
23
library/bootstrap/css/bootstrap-reboot.css
vendored
|
@ -1,7 +1,7 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v4.0.0-beta.3 (https://getbootstrap.com)
|
||||
* Copyright 2011-2017 The Bootstrap Authors
|
||||
* Copyright 2011-2017 Twitter, Inc.
|
||||
* Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
|
@ -147,7 +147,7 @@ a:not([href]):not([tabindex]) {
|
|||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:not([href]):not([tabindex]):focus, a:not([href]):not([tabindex]):hover {
|
||||
a:not([href]):not([tabindex]):hover, a:not([href]):not([tabindex]):focus {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
@ -184,19 +184,6 @@ svg:not(:root) {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
a,
|
||||
area,
|
||||
button,
|
||||
[role="button"],
|
||||
input:not([type="range"]),
|
||||
label,
|
||||
select,
|
||||
summary,
|
||||
textarea {
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
@ -204,7 +191,7 @@ table {
|
|||
caption {
|
||||
padding-top: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
color: #868e96;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,8 +1,8 @@
|
|||
/*!
|
||||
* Bootstrap Reboot v4.0.0-beta.3 (https://getbootstrap.com)
|
||||
* Copyright 2011-2017 The Bootstrap Authors
|
||||
* Copyright 2011-2017 Twitter, Inc.
|
||||
* Bootstrap Reboot v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#868e96;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
File diff suppressed because one or more lines are too long
742
library/bootstrap/css/bootstrap.css
vendored
742
library/bootstrap/css/bootstrap.css
vendored
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
8
library/bootstrap/css/bootstrap.min.css
vendored
8
library/bootstrap/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
222
library/bootstrap/js/bootstrap.bundle.js
vendored
222
library/bootstrap/js/bootstrap.bundle.js
vendored
|
@ -1,6 +1,6 @@
|
|||
/*!
|
||||
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
|
||||
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Bootstrap v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
|
@ -53,7 +53,7 @@ function _inheritsLoose(subClass, superClass) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): util.js
|
||||
* Bootstrap (v4.0.0): util.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -65,7 +65,7 @@ var Util = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var transition = false;
|
||||
var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp)
|
||||
var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
||||
|
||||
function toType(obj) {
|
||||
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
|
||||
|
@ -86,7 +86,7 @@ var Util = function ($$$1) {
|
|||
}
|
||||
|
||||
function transitionEndTest() {
|
||||
if (window.QUnit) {
|
||||
if (typeof window !== 'undefined' && window.QUnit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -120,7 +120,7 @@ var Util = function ($$$1) {
|
|||
}
|
||||
|
||||
function escapeId(selector) {
|
||||
// we escape IDs in case of special selectors (selector = '#myId:something')
|
||||
// We escape IDs in case of special selectors (selector = '#myId:something')
|
||||
// $.escapeSelector does not exist in jQuery < 3
|
||||
selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
|
||||
return selector;
|
||||
|
@ -147,7 +147,7 @@ var Util = function ($$$1) {
|
|||
|
||||
if (!selector || selector === '#') {
|
||||
selector = element.getAttribute('href') || '';
|
||||
} // if it's an ID
|
||||
} // If it's an ID
|
||||
|
||||
|
||||
if (selector.charAt(0) === '#') {
|
||||
|
@ -157,7 +157,7 @@ var Util = function ($$$1) {
|
|||
try {
|
||||
var $selector = $$$1(document).find(selector);
|
||||
return $selector.length > 0 ? selector : null;
|
||||
} catch (error) {
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
@ -193,7 +193,7 @@ var Util = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): alert.js
|
||||
* Bootstrap (v4.0.0): alert.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -205,7 +205,7 @@ var Alert = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'alert';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.alert';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -236,12 +236,12 @@ var Alert = function ($$$1) {
|
|||
function () {
|
||||
function Alert(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Alert.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.close = function close(element) {
|
||||
element = element || this._element;
|
||||
|
||||
|
@ -259,7 +259,7 @@ var Alert = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getRootElement = function _getRootElement(element) {
|
||||
|
@ -301,7 +301,7 @@ var Alert = function ($$$1) {
|
|||
|
||||
_proto._destroyElement = function _destroyElement(element) {
|
||||
$$$1(element).detach().trigger(Event.CLOSED).remove();
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Alert._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -365,7 +365,7 @@ var Alert = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): button.js
|
||||
* Bootstrap (v4.0.0): button.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -377,7 +377,7 @@ var Button = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'button';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.button';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -410,12 +410,12 @@ var Button = function ($$$1) {
|
|||
function () {
|
||||
function Button(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Button.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
var triggerChangeEvent = true;
|
||||
var addAriaPressed = true;
|
||||
|
@ -463,7 +463,7 @@ var Button = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Button._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -528,7 +528,7 @@ var Button = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): carousel.js
|
||||
* Bootstrap (v4.0.0): carousel.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -540,7 +540,7 @@ var Carousel = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'carousel';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.carousel';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -623,12 +623,12 @@ var Carousel = function ($$$1) {
|
|||
this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
|
||||
|
||||
this._addEventListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Carousel.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.next = function next() {
|
||||
if (!this._isSliding) {
|
||||
this._slide(Direction.NEXT);
|
||||
|
@ -718,7 +718,7 @@ var Carousel = function ($$$1) {
|
|||
this._isSliding = null;
|
||||
this._activeElement = null;
|
||||
this._indicatorsElement = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -744,7 +744,7 @@ var Carousel = function ($$$1) {
|
|||
});
|
||||
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
// if it's a touch-enabled device, mouseenter/leave are fired as
|
||||
// If it's a touch-enabled device, mouseenter/leave are fired as
|
||||
// part of the mouse compatibility events on first tap - the carousel
|
||||
// would stop cycling until user tapped out of it;
|
||||
// here, we listen for touchend, explicitly pause the carousel
|
||||
|
@ -783,7 +783,6 @@ var Carousel = function ($$$1) {
|
|||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -875,7 +874,7 @@ var Carousel = function ($$$1) {
|
|||
}
|
||||
|
||||
if (!activeElement || !nextElement) {
|
||||
// some weirdness is happening, so we bail
|
||||
// Some weirdness is happening, so we bail
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -917,7 +916,7 @@ var Carousel = function ($$$1) {
|
|||
if (isCycling) {
|
||||
this.cycle();
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Carousel._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -941,7 +940,7 @@ var Carousel = function ($$$1) {
|
|||
data.to(config);
|
||||
} else if (typeof action === 'string') {
|
||||
if (typeof data[action] === 'undefined') {
|
||||
throw new Error("No method named \"" + action + "\"");
|
||||
throw new TypeError("No method named \"" + action + "\"");
|
||||
}
|
||||
|
||||
data[action]();
|
||||
|
@ -1028,7 +1027,7 @@ var Carousel = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): collapse.js
|
||||
* Bootstrap (v4.0.0): collapse.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1040,7 +1039,7 @@ var Collapse = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'collapse';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.collapse';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -1097,6 +1096,8 @@ var Collapse = function ($$$1) {
|
|||
var selector = Util.getSelectorFromElement(elem);
|
||||
|
||||
if (selector !== null && $$$1(selector).filter(element).length > 0) {
|
||||
this._selector = selector;
|
||||
|
||||
this._triggerArray.push(elem);
|
||||
}
|
||||
}
|
||||
|
@ -1110,12 +1111,12 @@ var Collapse = function ($$$1) {
|
|||
if (this._config.toggle) {
|
||||
this.toggle();
|
||||
}
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Collapse.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
if ($$$1(this._element).hasClass(ClassName.SHOW)) {
|
||||
this.hide();
|
||||
|
@ -1135,15 +1136,15 @@ var Collapse = function ($$$1) {
|
|||
var activesData;
|
||||
|
||||
if (this._parent) {
|
||||
actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES));
|
||||
actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
|
||||
|
||||
if (!actives.length) {
|
||||
if (actives.length === 0) {
|
||||
actives = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (actives) {
|
||||
activesData = $$$1(actives).data(DATA_KEY);
|
||||
activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
|
||||
|
||||
if (activesData && activesData._isTransitioning) {
|
||||
return;
|
||||
|
@ -1158,7 +1159,7 @@ var Collapse = function ($$$1) {
|
|||
}
|
||||
|
||||
if (actives) {
|
||||
Collapse._jQueryInterface.call($$$1(actives), 'hide');
|
||||
Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
|
||||
|
||||
if (!activesData) {
|
||||
$$$1(actives).data(DATA_KEY, null);
|
||||
|
@ -1170,7 +1171,7 @@ var Collapse = function ($$$1) {
|
|||
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
this._element.style[dimension] = 0;
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
if (this._triggerArray.length > 0) {
|
||||
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
}
|
||||
|
||||
|
@ -1216,7 +1217,7 @@ var Collapse = function ($$$1) {
|
|||
Util.reflow(this._element);
|
||||
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
if (this._triggerArray.length > 0) {
|
||||
for (var i = 0; i < this._triggerArray.length; i++) {
|
||||
var trigger = this._triggerArray[i];
|
||||
var selector = Util.getSelectorFromElement(trigger);
|
||||
|
@ -1260,12 +1261,12 @@ var Collapse = function ($$$1) {
|
|||
this._element = null;
|
||||
this._triggerArray = null;
|
||||
this._isTransitioning = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _extends({}, Default, config);
|
||||
config.toggle = Boolean(config.toggle); // coerce string values
|
||||
config.toggle = Boolean(config.toggle); // Coerce string values
|
||||
|
||||
Util.typeCheckConfig(NAME, config, DefaultType);
|
||||
return config;
|
||||
|
@ -1282,7 +1283,7 @@ var Collapse = function ($$$1) {
|
|||
var parent = null;
|
||||
|
||||
if (Util.isElement(this._config.parent)) {
|
||||
parent = this._config.parent; // it's a jQuery object
|
||||
parent = this._config.parent; // It's a jQuery object
|
||||
|
||||
if (typeof this._config.parent.jquery !== 'undefined') {
|
||||
parent = this._config.parent[0];
|
||||
|
@ -1302,11 +1303,11 @@ var Collapse = function ($$$1) {
|
|||
if (element) {
|
||||
var isOpen = $$$1(element).hasClass(ClassName.SHOW);
|
||||
|
||||
if (triggerArray.length) {
|
||||
if (triggerArray.length > 0) {
|
||||
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
}
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||
|
@ -1332,7 +1333,7 @@ var Collapse = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -3830,7 +3831,7 @@ Popper.Defaults = Defaults;
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): dropdown.js
|
||||
* Bootstrap (v4.0.0): dropdown.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -3842,7 +3843,7 @@ var Dropdown = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'dropdown';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.dropdown';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -3925,12 +3926,12 @@ var Dropdown = function ($$$1) {
|
|||
this._inNavbar = this._detectNavbar();
|
||||
|
||||
this._addEventListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Dropdown.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
|
||||
return;
|
||||
|
@ -3963,10 +3964,10 @@ var Dropdown = function ($$$1) {
|
|||
* Popper - https://popper.js.org
|
||||
*/
|
||||
if (typeof Popper === 'undefined') {
|
||||
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
||||
throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
||||
}
|
||||
|
||||
var element = this._element; // for dropup with alignment we use the parent as popper container
|
||||
var element = this._element; // For dropup with alignment we use the parent as popper container
|
||||
|
||||
if ($$$1(parent).hasClass(ClassName.DROPUP)) {
|
||||
if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
|
||||
|
@ -3982,13 +3983,13 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
|
||||
this._popper = new Popper(element, this._menu, this._getPopperConfig());
|
||||
} // if this is a touch-enabled device we add extra
|
||||
} // If this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
|
||||
|
||||
if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
|
||||
$$$1('body').children().on('mouseover', null, $$$1.noop);
|
||||
}
|
||||
|
||||
|
@ -4019,7 +4020,7 @@ var Dropdown = function ($$$1) {
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._addEventListeners = function _addEventListeners() {
|
||||
|
@ -4101,7 +4102,7 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
};
|
||||
return popperConfig;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -4117,7 +4118,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -4159,7 +4160,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
if (hideEvent.isDefaultPrevented()) {
|
||||
continue;
|
||||
} // if this is a touch-enabled device we remove the extra
|
||||
} // If this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
|
||||
|
||||
|
@ -4182,7 +4183,8 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
|
||||
return parent || element.parentNode;
|
||||
};
|
||||
}; // eslint-disable-next-line complexity
|
||||
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
// If not input/textarea:
|
||||
|
@ -4219,19 +4221,19 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
|
||||
|
||||
if (!items.length) {
|
||||
if (items.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var index = items.indexOf(event.target);
|
||||
|
||||
if (event.which === ARROW_UP_KEYCODE && index > 0) {
|
||||
// up
|
||||
// Up
|
||||
index--;
|
||||
}
|
||||
|
||||
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
|
||||
// down
|
||||
// Down
|
||||
index++;
|
||||
}
|
||||
|
||||
|
@ -4294,7 +4296,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): modal.js
|
||||
* Bootstrap (v4.0.0): modal.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -4306,7 +4308,7 @@ var Modal = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'modal';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.modal';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -4375,12 +4377,12 @@ var Modal = function ($$$1) {
|
|||
this._ignoreBackdropClick = false;
|
||||
this._originalBodyPadding = 0;
|
||||
this._scrollbarWidth = 0;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Modal.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle(relatedTarget) {
|
||||
return this._isShown ? this.hide() : this.show(relatedTarget);
|
||||
};
|
||||
|
@ -4493,7 +4495,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
_proto.handleUpdate = function handleUpdate() {
|
||||
this._adjustDialog();
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -4508,7 +4510,7 @@ var Modal = function ($$$1) {
|
|||
var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
|
||||
|
||||
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
||||
// don't move modals dom position
|
||||
// Don't move modal's DOM position
|
||||
document.body.appendChild(this._element);
|
||||
}
|
||||
|
||||
|
@ -4551,9 +4553,9 @@ var Modal = function ($$$1) {
|
|||
_proto._enforceFocus = function _enforceFocus() {
|
||||
var _this4 = this;
|
||||
|
||||
$$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop
|
||||
$$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
|
||||
.on(Event.FOCUSIN, function (event) {
|
||||
if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) {
|
||||
if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
|
||||
_this4._element.focus();
|
||||
}
|
||||
});
|
||||
|
@ -4774,7 +4776,7 @@ var Modal = function ($$$1) {
|
|||
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
return scrollbarWidth;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
|
||||
|
@ -4790,7 +4792,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config](relatedTarget);
|
||||
|
@ -4838,7 +4840,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
|
||||
if (showEvent.isDefaultPrevented()) {
|
||||
// only register focus restorer if modal will actually get shown
|
||||
// Only register focus restorer if modal will actually get shown
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -4870,7 +4872,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): tooltip.js
|
||||
* Bootstrap (v4.0.0): tooltip.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -4882,7 +4884,7 @@ var Tooltip = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'tooltip';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.tooltip';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||
|
@ -4971,7 +4973,7 @@ var Tooltip = function ($$$1) {
|
|||
* Popper - https://popper.js.org
|
||||
*/
|
||||
if (typeof Popper === 'undefined') {
|
||||
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
|
||||
throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
|
||||
} // private
|
||||
|
||||
|
||||
|
@ -4979,19 +4981,19 @@ var Tooltip = function ($$$1) {
|
|||
this._timeout = 0;
|
||||
this._hoverState = '';
|
||||
this._activeTrigger = {};
|
||||
this._popper = null; // protected
|
||||
this._popper = null; // Protected
|
||||
|
||||
this.element = element;
|
||||
this.config = this._getConfig(config);
|
||||
this.tip = null;
|
||||
|
||||
this._setListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Tooltip.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.enable = function enable() {
|
||||
this._isEnabled = true;
|
||||
};
|
||||
|
@ -5126,7 +5128,7 @@ var Tooltip = function ($$$1) {
|
|||
_this._handlePopperPlacementChange(data);
|
||||
}
|
||||
});
|
||||
$$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
|
||||
$$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
|
@ -5189,7 +5191,7 @@ var Tooltip = function ($$$1) {
|
|||
return;
|
||||
}
|
||||
|
||||
$$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
|
||||
$$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
|
@ -5213,7 +5215,7 @@ var Tooltip = function ($$$1) {
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // protected
|
||||
}; // Protected
|
||||
|
||||
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
|
@ -5239,7 +5241,7 @@ var Tooltip = function ($$$1) {
|
|||
var html = this.config.html;
|
||||
|
||||
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
|
||||
// content is a DOM node or a jQuery
|
||||
// Content is a DOM node or a jQuery
|
||||
if (html) {
|
||||
if (!$$$1(content).parent().is($element)) {
|
||||
$element.empty().append(content);
|
||||
|
@ -5260,7 +5262,7 @@ var Tooltip = function ($$$1) {
|
|||
}
|
||||
|
||||
return title;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getAttachment = function _getAttachment(placement) {
|
||||
|
@ -5449,7 +5451,7 @@ var Tooltip = function ($$$1) {
|
|||
this.hide();
|
||||
this.show();
|
||||
this.config.animation = initConfigAnimation;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Tooltip._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -5469,7 +5471,7 @@ var Tooltip = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -5535,7 +5537,7 @@ var Tooltip = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): popover.js
|
||||
* Bootstrap (v4.0.0): popover.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -5547,7 +5549,7 @@ var Popover = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'popover';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.popover';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||
|
@ -5600,7 +5602,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
var _proto = Popover.prototype;
|
||||
|
||||
// overrides
|
||||
// Overrides
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
return this.getTitle() || this._getContent();
|
||||
};
|
||||
|
@ -5615,7 +5617,7 @@ var Popover = function ($$$1) {
|
|||
};
|
||||
|
||||
_proto.setContent = function setContent() {
|
||||
var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events
|
||||
var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
|
||||
|
||||
this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
|
||||
|
||||
|
@ -5627,7 +5629,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
this.setElementContent($tip.find(Selector.CONTENT), content);
|
||||
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getContent = function _getContent() {
|
||||
|
@ -5641,7 +5643,7 @@ var Popover = function ($$$1) {
|
|||
if (tabClass !== null && tabClass.length > 0) {
|
||||
$tip.removeClass(tabClass.join(''));
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Popover._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -5661,7 +5663,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -5671,7 +5673,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
_createClass(Popover, null, [{
|
||||
key: "VERSION",
|
||||
// getters
|
||||
// Getters
|
||||
get: function get() {
|
||||
return VERSION;
|
||||
}
|
||||
|
@ -5728,7 +5730,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): scrollspy.js
|
||||
* Bootstrap (v4.0.0): scrollspy.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -5740,7 +5742,7 @@ var ScrollSpy = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'scrollspy';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.scrollspy';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -5807,16 +5809,16 @@ var ScrollSpy = function ($$$1) {
|
|||
this.refresh();
|
||||
|
||||
this._process();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = ScrollSpy.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.refresh = function refresh() {
|
||||
var _this2 = this;
|
||||
|
||||
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
|
||||
var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
|
||||
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
|
||||
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
|
||||
this._offsets = [];
|
||||
|
@ -5835,7 +5837,7 @@ var ScrollSpy = function ($$$1) {
|
|||
var targetBCR = target.getBoundingClientRect();
|
||||
|
||||
if (targetBCR.width || targetBCR.height) {
|
||||
// todo (fat): remove sketch reliance on jQuery position/offset
|
||||
// TODO (fat): remove sketch reliance on jQuery position/offset
|
||||
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
|
||||
}
|
||||
}
|
||||
|
@ -5863,7 +5865,7 @@ var ScrollSpy = function ($$$1) {
|
|||
this._targets = null;
|
||||
this._activeTarget = null;
|
||||
this._scrollHeight = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -5967,7 +5969,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
_proto._clear = function _clear() {
|
||||
$$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -5983,7 +5985,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -6039,7 +6041,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): tab.js
|
||||
* Bootstrap (v4.0.0): tab.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -6051,7 +6053,7 @@ var Tab = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'tab';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.tab';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -6092,12 +6094,12 @@ var Tab = function ($$$1) {
|
|||
function () {
|
||||
function Tab(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Tab.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.show = function show() {
|
||||
var _this = this;
|
||||
|
||||
|
@ -6160,7 +6162,7 @@ var Tab = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._activate = function _activate(element, container, callback) {
|
||||
|
@ -6224,7 +6226,7 @@ var Tab = function ($$$1) {
|
|||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Tab._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -6239,7 +6241,7 @@ var Tab = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -6293,7 +6295,7 @@ var Tab = function ($$$1) {
|
|||
|
||||
(function ($$$1) {
|
||||
if (typeof $$$1 === 'undefined') {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
|
||||
throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
|
||||
}
|
||||
|
||||
var version = $$$1.fn.jquery.split(' ')[0].split('.');
|
||||
|
|
File diff suppressed because one or more lines are too long
6
library/bootstrap/js/bootstrap.bundle.min.js
vendored
6
library/bootstrap/js/bootstrap.bundle.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
222
library/bootstrap/js/bootstrap.js
vendored
222
library/bootstrap/js/bootstrap.js
vendored
|
@ -1,6 +1,6 @@
|
|||
/*!
|
||||
* Bootstrap v4.0.0-beta.3 (https://getbootstrap.com)
|
||||
* Copyright 2011-2017 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Bootstrap v4.0.0 (https://getbootstrap.com)
|
||||
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
|
@ -54,7 +54,7 @@ function _inheritsLoose(subClass, superClass) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): util.js
|
||||
* Bootstrap (v4.0.0): util.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -66,7 +66,7 @@ var Util = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var transition = false;
|
||||
var MAX_UID = 1000000; // shoutout AngusCroll (https://goo.gl/pxwQGp)
|
||||
var MAX_UID = 1000000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
|
||||
|
||||
function toType(obj) {
|
||||
return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
|
||||
|
@ -87,7 +87,7 @@ var Util = function ($$$1) {
|
|||
}
|
||||
|
||||
function transitionEndTest() {
|
||||
if (window.QUnit) {
|
||||
if (typeof window !== 'undefined' && window.QUnit) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -121,7 +121,7 @@ var Util = function ($$$1) {
|
|||
}
|
||||
|
||||
function escapeId(selector) {
|
||||
// we escape IDs in case of special selectors (selector = '#myId:something')
|
||||
// We escape IDs in case of special selectors (selector = '#myId:something')
|
||||
// $.escapeSelector does not exist in jQuery < 3
|
||||
selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
|
||||
return selector;
|
||||
|
@ -148,7 +148,7 @@ var Util = function ($$$1) {
|
|||
|
||||
if (!selector || selector === '#') {
|
||||
selector = element.getAttribute('href') || '';
|
||||
} // if it's an ID
|
||||
} // If it's an ID
|
||||
|
||||
|
||||
if (selector.charAt(0) === '#') {
|
||||
|
@ -158,7 +158,7 @@ var Util = function ($$$1) {
|
|||
try {
|
||||
var $selector = $$$1(document).find(selector);
|
||||
return $selector.length > 0 ? selector : null;
|
||||
} catch (error) {
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
},
|
||||
|
@ -194,7 +194,7 @@ var Util = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): alert.js
|
||||
* Bootstrap (v4.0.0): alert.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -206,7 +206,7 @@ var Alert = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'alert';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.alert';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -237,12 +237,12 @@ var Alert = function ($$$1) {
|
|||
function () {
|
||||
function Alert(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Alert.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.close = function close(element) {
|
||||
element = element || this._element;
|
||||
|
||||
|
@ -260,7 +260,7 @@ var Alert = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getRootElement = function _getRootElement(element) {
|
||||
|
@ -302,7 +302,7 @@ var Alert = function ($$$1) {
|
|||
|
||||
_proto._destroyElement = function _destroyElement(element) {
|
||||
$$$1(element).detach().trigger(Event.CLOSED).remove();
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Alert._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -366,7 +366,7 @@ var Alert = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): button.js
|
||||
* Bootstrap (v4.0.0): button.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -378,7 +378,7 @@ var Button = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'button';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.button';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -411,12 +411,12 @@ var Button = function ($$$1) {
|
|||
function () {
|
||||
function Button(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Button.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
var triggerChangeEvent = true;
|
||||
var addAriaPressed = true;
|
||||
|
@ -464,7 +464,7 @@ var Button = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Button._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -529,7 +529,7 @@ var Button = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): carousel.js
|
||||
* Bootstrap (v4.0.0): carousel.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -541,7 +541,7 @@ var Carousel = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'carousel';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.carousel';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -624,12 +624,12 @@ var Carousel = function ($$$1) {
|
|||
this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
|
||||
|
||||
this._addEventListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Carousel.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.next = function next() {
|
||||
if (!this._isSliding) {
|
||||
this._slide(Direction.NEXT);
|
||||
|
@ -719,7 +719,7 @@ var Carousel = function ($$$1) {
|
|||
this._isSliding = null;
|
||||
this._activeElement = null;
|
||||
this._indicatorsElement = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -745,7 +745,7 @@ var Carousel = function ($$$1) {
|
|||
});
|
||||
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
// if it's a touch-enabled device, mouseenter/leave are fired as
|
||||
// If it's a touch-enabled device, mouseenter/leave are fired as
|
||||
// part of the mouse compatibility events on first tap - the carousel
|
||||
// would stop cycling until user tapped out of it;
|
||||
// here, we listen for touchend, explicitly pause the carousel
|
||||
|
@ -784,7 +784,6 @@ var Carousel = function ($$$1) {
|
|||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -876,7 +875,7 @@ var Carousel = function ($$$1) {
|
|||
}
|
||||
|
||||
if (!activeElement || !nextElement) {
|
||||
// some weirdness is happening, so we bail
|
||||
// Some weirdness is happening, so we bail
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -918,7 +917,7 @@ var Carousel = function ($$$1) {
|
|||
if (isCycling) {
|
||||
this.cycle();
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Carousel._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -942,7 +941,7 @@ var Carousel = function ($$$1) {
|
|||
data.to(config);
|
||||
} else if (typeof action === 'string') {
|
||||
if (typeof data[action] === 'undefined') {
|
||||
throw new Error("No method named \"" + action + "\"");
|
||||
throw new TypeError("No method named \"" + action + "\"");
|
||||
}
|
||||
|
||||
data[action]();
|
||||
|
@ -1029,7 +1028,7 @@ var Carousel = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): collapse.js
|
||||
* Bootstrap (v4.0.0): collapse.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1041,7 +1040,7 @@ var Collapse = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'collapse';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.collapse';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -1098,6 +1097,8 @@ var Collapse = function ($$$1) {
|
|||
var selector = Util.getSelectorFromElement(elem);
|
||||
|
||||
if (selector !== null && $$$1(selector).filter(element).length > 0) {
|
||||
this._selector = selector;
|
||||
|
||||
this._triggerArray.push(elem);
|
||||
}
|
||||
}
|
||||
|
@ -1111,12 +1112,12 @@ var Collapse = function ($$$1) {
|
|||
if (this._config.toggle) {
|
||||
this.toggle();
|
||||
}
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Collapse.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
if ($$$1(this._element).hasClass(ClassName.SHOW)) {
|
||||
this.hide();
|
||||
|
@ -1136,15 +1137,15 @@ var Collapse = function ($$$1) {
|
|||
var activesData;
|
||||
|
||||
if (this._parent) {
|
||||
actives = $$$1.makeArray($$$1(this._parent).children().children(Selector.ACTIVES));
|
||||
actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
|
||||
|
||||
if (!actives.length) {
|
||||
if (actives.length === 0) {
|
||||
actives = null;
|
||||
}
|
||||
}
|
||||
|
||||
if (actives) {
|
||||
activesData = $$$1(actives).data(DATA_KEY);
|
||||
activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
|
||||
|
||||
if (activesData && activesData._isTransitioning) {
|
||||
return;
|
||||
|
@ -1159,7 +1160,7 @@ var Collapse = function ($$$1) {
|
|||
}
|
||||
|
||||
if (actives) {
|
||||
Collapse._jQueryInterface.call($$$1(actives), 'hide');
|
||||
Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
|
||||
|
||||
if (!activesData) {
|
||||
$$$1(actives).data(DATA_KEY, null);
|
||||
|
@ -1171,7 +1172,7 @@ var Collapse = function ($$$1) {
|
|||
$$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
|
||||
this._element.style[dimension] = 0;
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
if (this._triggerArray.length > 0) {
|
||||
$$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', true);
|
||||
}
|
||||
|
||||
|
@ -1217,7 +1218,7 @@ var Collapse = function ($$$1) {
|
|||
Util.reflow(this._element);
|
||||
$$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
|
||||
|
||||
if (this._triggerArray.length) {
|
||||
if (this._triggerArray.length > 0) {
|
||||
for (var i = 0; i < this._triggerArray.length; i++) {
|
||||
var trigger = this._triggerArray[i];
|
||||
var selector = Util.getSelectorFromElement(trigger);
|
||||
|
@ -1261,12 +1262,12 @@ var Collapse = function ($$$1) {
|
|||
this._element = null;
|
||||
this._triggerArray = null;
|
||||
this._isTransitioning = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
config = _extends({}, Default, config);
|
||||
config.toggle = Boolean(config.toggle); // coerce string values
|
||||
config.toggle = Boolean(config.toggle); // Coerce string values
|
||||
|
||||
Util.typeCheckConfig(NAME, config, DefaultType);
|
||||
return config;
|
||||
|
@ -1283,7 +1284,7 @@ var Collapse = function ($$$1) {
|
|||
var parent = null;
|
||||
|
||||
if (Util.isElement(this._config.parent)) {
|
||||
parent = this._config.parent; // it's a jQuery object
|
||||
parent = this._config.parent; // It's a jQuery object
|
||||
|
||||
if (typeof this._config.parent.jquery !== 'undefined') {
|
||||
parent = this._config.parent[0];
|
||||
|
@ -1303,11 +1304,11 @@ var Collapse = function ($$$1) {
|
|||
if (element) {
|
||||
var isOpen = $$$1(element).hasClass(ClassName.SHOW);
|
||||
|
||||
if (triggerArray.length) {
|
||||
if (triggerArray.length > 0) {
|
||||
$$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen);
|
||||
}
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Collapse._getTargetFromElement = function _getTargetFromElement(element) {
|
||||
|
@ -1333,7 +1334,7 @@ var Collapse = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -1396,7 +1397,7 @@ var Collapse = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): dropdown.js
|
||||
* Bootstrap (v4.0.0): dropdown.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1408,7 +1409,7 @@ var Dropdown = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'dropdown';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.dropdown';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -1491,12 +1492,12 @@ var Dropdown = function ($$$1) {
|
|||
this._inNavbar = this._detectNavbar();
|
||||
|
||||
this._addEventListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Dropdown.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle() {
|
||||
if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
|
||||
return;
|
||||
|
@ -1529,10 +1530,10 @@ var Dropdown = function ($$$1) {
|
|||
* Popper - https://popper.js.org
|
||||
*/
|
||||
if (typeof Popper === 'undefined') {
|
||||
throw new Error('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
||||
throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)');
|
||||
}
|
||||
|
||||
var element = this._element; // for dropup with alignment we use the parent as popper container
|
||||
var element = this._element; // For dropup with alignment we use the parent as popper container
|
||||
|
||||
if ($$$1(parent).hasClass(ClassName.DROPUP)) {
|
||||
if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
|
||||
|
@ -1548,13 +1549,13 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
|
||||
this._popper = new Popper(element, this._menu, this._getPopperConfig());
|
||||
} // if this is a touch-enabled device we add extra
|
||||
} // If this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
|
||||
|
||||
if ('ontouchstart' in document.documentElement && !$$$1(parent).closest(Selector.NAVBAR_NAV).length) {
|
||||
if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
|
||||
$$$1('body').children().on('mouseover', null, $$$1.noop);
|
||||
}
|
||||
|
||||
|
@ -1585,7 +1586,7 @@ var Dropdown = function ($$$1) {
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._addEventListeners = function _addEventListeners() {
|
||||
|
@ -1667,7 +1668,7 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
};
|
||||
return popperConfig;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Dropdown._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -1683,7 +1684,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -1725,7 +1726,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
if (hideEvent.isDefaultPrevented()) {
|
||||
continue;
|
||||
} // if this is a touch-enabled device we remove the extra
|
||||
} // If this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
|
||||
|
||||
|
@ -1748,7 +1749,8 @@ var Dropdown = function ($$$1) {
|
|||
}
|
||||
|
||||
return parent || element.parentNode;
|
||||
};
|
||||
}; // eslint-disable-next-line complexity
|
||||
|
||||
|
||||
Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
|
||||
// If not input/textarea:
|
||||
|
@ -1785,19 +1787,19 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
|
||||
|
||||
if (!items.length) {
|
||||
if (items.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var index = items.indexOf(event.target);
|
||||
|
||||
if (event.which === ARROW_UP_KEYCODE && index > 0) {
|
||||
// up
|
||||
// Up
|
||||
index--;
|
||||
}
|
||||
|
||||
if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
|
||||
// down
|
||||
// Down
|
||||
index++;
|
||||
}
|
||||
|
||||
|
@ -1860,7 +1862,7 @@ var Dropdown = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): modal.js
|
||||
* Bootstrap (v4.0.0): modal.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -1872,7 +1874,7 @@ var Modal = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'modal';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.modal';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -1941,12 +1943,12 @@ var Modal = function ($$$1) {
|
|||
this._ignoreBackdropClick = false;
|
||||
this._originalBodyPadding = 0;
|
||||
this._scrollbarWidth = 0;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Modal.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.toggle = function toggle(relatedTarget) {
|
||||
return this._isShown ? this.hide() : this.show(relatedTarget);
|
||||
};
|
||||
|
@ -2059,7 +2061,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
_proto.handleUpdate = function handleUpdate() {
|
||||
this._adjustDialog();
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -2074,7 +2076,7 @@ var Modal = function ($$$1) {
|
|||
var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
|
||||
|
||||
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
||||
// don't move modals dom position
|
||||
// Don't move modal's DOM position
|
||||
document.body.appendChild(this._element);
|
||||
}
|
||||
|
||||
|
@ -2117,9 +2119,9 @@ var Modal = function ($$$1) {
|
|||
_proto._enforceFocus = function _enforceFocus() {
|
||||
var _this4 = this;
|
||||
|
||||
$$$1(document).off(Event.FOCUSIN) // guard against infinite focus loop
|
||||
$$$1(document).off(Event.FOCUSIN) // Guard against infinite focus loop
|
||||
.on(Event.FOCUSIN, function (event) {
|
||||
if (document !== event.target && _this4._element !== event.target && !$$$1(_this4._element).has(event.target).length) {
|
||||
if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
|
||||
_this4._element.focus();
|
||||
}
|
||||
});
|
||||
|
@ -2340,7 +2342,7 @@ var Modal = function ($$$1) {
|
|||
var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
return scrollbarWidth;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
|
||||
|
@ -2356,7 +2358,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config](relatedTarget);
|
||||
|
@ -2404,7 +2406,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
var $target = $$$1(target).one(Event.SHOW, function (showEvent) {
|
||||
if (showEvent.isDefaultPrevented()) {
|
||||
// only register focus restorer if modal will actually get shown
|
||||
// Only register focus restorer if modal will actually get shown
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2436,7 +2438,7 @@ var Modal = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): tooltip.js
|
||||
* Bootstrap (v4.0.0): tooltip.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -2448,7 +2450,7 @@ var Tooltip = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'tooltip';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.tooltip';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||
|
@ -2537,7 +2539,7 @@ var Tooltip = function ($$$1) {
|
|||
* Popper - https://popper.js.org
|
||||
*/
|
||||
if (typeof Popper === 'undefined') {
|
||||
throw new Error('Bootstrap tooltips require Popper.js (https://popper.js.org)');
|
||||
throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)');
|
||||
} // private
|
||||
|
||||
|
||||
|
@ -2545,19 +2547,19 @@ var Tooltip = function ($$$1) {
|
|||
this._timeout = 0;
|
||||
this._hoverState = '';
|
||||
this._activeTrigger = {};
|
||||
this._popper = null; // protected
|
||||
this._popper = null; // Protected
|
||||
|
||||
this.element = element;
|
||||
this.config = this._getConfig(config);
|
||||
this.tip = null;
|
||||
|
||||
this._setListeners();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Tooltip.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.enable = function enable() {
|
||||
this._isEnabled = true;
|
||||
};
|
||||
|
@ -2692,7 +2694,7 @@ var Tooltip = function ($$$1) {
|
|||
_this._handlePopperPlacementChange(data);
|
||||
}
|
||||
});
|
||||
$$$1(tip).addClass(ClassName.SHOW); // if this is a touch-enabled device we add extra
|
||||
$$$1(tip).addClass(ClassName.SHOW); // If this is a touch-enabled device we add extra
|
||||
// empty mouseover listeners to the body's immediate children;
|
||||
// only needed because of broken event delegation on iOS
|
||||
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
|
||||
|
@ -2755,7 +2757,7 @@ var Tooltip = function ($$$1) {
|
|||
return;
|
||||
}
|
||||
|
||||
$$$1(tip).removeClass(ClassName.SHOW); // if this is a touch-enabled device we remove the extra
|
||||
$$$1(tip).removeClass(ClassName.SHOW); // If this is a touch-enabled device we remove the extra
|
||||
// empty mouseover listeners we added for iOS support
|
||||
|
||||
if ('ontouchstart' in document.documentElement) {
|
||||
|
@ -2779,7 +2781,7 @@ var Tooltip = function ($$$1) {
|
|||
if (this._popper !== null) {
|
||||
this._popper.scheduleUpdate();
|
||||
}
|
||||
}; // protected
|
||||
}; // Protected
|
||||
|
||||
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
|
@ -2805,7 +2807,7 @@ var Tooltip = function ($$$1) {
|
|||
var html = this.config.html;
|
||||
|
||||
if (typeof content === 'object' && (content.nodeType || content.jquery)) {
|
||||
// content is a DOM node or a jQuery
|
||||
// Content is a DOM node or a jQuery
|
||||
if (html) {
|
||||
if (!$$$1(content).parent().is($element)) {
|
||||
$element.empty().append(content);
|
||||
|
@ -2826,7 +2828,7 @@ var Tooltip = function ($$$1) {
|
|||
}
|
||||
|
||||
return title;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getAttachment = function _getAttachment(placement) {
|
||||
|
@ -3015,7 +3017,7 @@ var Tooltip = function ($$$1) {
|
|||
this.hide();
|
||||
this.show();
|
||||
this.config.animation = initConfigAnimation;
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Tooltip._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -3035,7 +3037,7 @@ var Tooltip = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -3101,7 +3103,7 @@ var Tooltip = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): popover.js
|
||||
* Bootstrap (v4.0.0): popover.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -3113,7 +3115,7 @@ var Popover = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'popover';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.popover';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
|
||||
|
@ -3166,7 +3168,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
var _proto = Popover.prototype;
|
||||
|
||||
// overrides
|
||||
// Overrides
|
||||
_proto.isWithContent = function isWithContent() {
|
||||
return this.getTitle() || this._getContent();
|
||||
};
|
||||
|
@ -3181,7 +3183,7 @@ var Popover = function ($$$1) {
|
|||
};
|
||||
|
||||
_proto.setContent = function setContent() {
|
||||
var $tip = $$$1(this.getTipElement()); // we use append for html objects to maintain js events
|
||||
var $tip = $$$1(this.getTipElement()); // We use append for html objects to maintain js events
|
||||
|
||||
this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
|
||||
|
||||
|
@ -3193,7 +3195,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
this.setElementContent($tip.find(Selector.CONTENT), content);
|
||||
$tip.removeClass(ClassName.FADE + " " + ClassName.SHOW);
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getContent = function _getContent() {
|
||||
|
@ -3207,7 +3209,7 @@ var Popover = function ($$$1) {
|
|||
if (tabClass !== null && tabClass.length > 0) {
|
||||
$tip.removeClass(tabClass.join(''));
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Popover._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -3227,7 +3229,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -3237,7 +3239,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
_createClass(Popover, null, [{
|
||||
key: "VERSION",
|
||||
// getters
|
||||
// Getters
|
||||
get: function get() {
|
||||
return VERSION;
|
||||
}
|
||||
|
@ -3294,7 +3296,7 @@ var Popover = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): scrollspy.js
|
||||
* Bootstrap (v4.0.0): scrollspy.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -3306,7 +3308,7 @@ var ScrollSpy = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'scrollspy';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.scrollspy';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -3373,16 +3375,16 @@ var ScrollSpy = function ($$$1) {
|
|||
this.refresh();
|
||||
|
||||
this._process();
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = ScrollSpy.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.refresh = function refresh() {
|
||||
var _this2 = this;
|
||||
|
||||
var autoMethod = this._scrollElement !== this._scrollElement.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;
|
||||
var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
|
||||
var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
|
||||
var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
|
||||
this._offsets = [];
|
||||
|
@ -3401,7 +3403,7 @@ var ScrollSpy = function ($$$1) {
|
|||
var targetBCR = target.getBoundingClientRect();
|
||||
|
||||
if (targetBCR.width || targetBCR.height) {
|
||||
// todo (fat): remove sketch reliance on jQuery position/offset
|
||||
// TODO (fat): remove sketch reliance on jQuery position/offset
|
||||
return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector];
|
||||
}
|
||||
}
|
||||
|
@ -3429,7 +3431,7 @@ var ScrollSpy = function ($$$1) {
|
|||
this._targets = null;
|
||||
this._activeTarget = null;
|
||||
this._scrollHeight = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._getConfig = function _getConfig(config) {
|
||||
|
@ -3533,7 +3535,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
_proto._clear = function _clear() {
|
||||
$$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -3549,7 +3551,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -3605,7 +3607,7 @@ var ScrollSpy = function ($$$1) {
|
|||
|
||||
/**
|
||||
* --------------------------------------------------------------------------
|
||||
* Bootstrap (v4.0.0-beta.3): tab.js
|
||||
* Bootstrap (v4.0.0): tab.js
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
@ -3617,7 +3619,7 @@ var Tab = function ($$$1) {
|
|||
* ------------------------------------------------------------------------
|
||||
*/
|
||||
var NAME = 'tab';
|
||||
var VERSION = '4.0.0-beta.3';
|
||||
var VERSION = '4.0.0';
|
||||
var DATA_KEY = 'bs.tab';
|
||||
var EVENT_KEY = "." + DATA_KEY;
|
||||
var DATA_API_KEY = '.data-api';
|
||||
|
@ -3658,12 +3660,12 @@ var Tab = function ($$$1) {
|
|||
function () {
|
||||
function Tab(element) {
|
||||
this._element = element;
|
||||
} // getters
|
||||
} // Getters
|
||||
|
||||
|
||||
var _proto = Tab.prototype;
|
||||
|
||||
// public
|
||||
// Public
|
||||
_proto.show = function show() {
|
||||
var _this = this;
|
||||
|
||||
|
@ -3726,7 +3728,7 @@ var Tab = function ($$$1) {
|
|||
_proto.dispose = function dispose() {
|
||||
$$$1.removeData(this._element, DATA_KEY);
|
||||
this._element = null;
|
||||
}; // private
|
||||
}; // Private
|
||||
|
||||
|
||||
_proto._activate = function _activate(element, container, callback) {
|
||||
|
@ -3790,7 +3792,7 @@ var Tab = function ($$$1) {
|
|||
if (callback) {
|
||||
callback();
|
||||
}
|
||||
}; // static
|
||||
}; // Static
|
||||
|
||||
|
||||
Tab._jQueryInterface = function _jQueryInterface(config) {
|
||||
|
@ -3805,7 +3807,7 @@ var Tab = function ($$$1) {
|
|||
|
||||
if (typeof config === 'string') {
|
||||
if (typeof data[config] === 'undefined') {
|
||||
throw new Error("No method named \"" + config + "\"");
|
||||
throw new TypeError("No method named \"" + config + "\"");
|
||||
}
|
||||
|
||||
data[config]();
|
||||
|
@ -3859,7 +3861,7 @@ var Tab = function ($$$1) {
|
|||
|
||||
(function ($$$1) {
|
||||
if (typeof $$$1 === 'undefined') {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
|
||||
throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
|
||||
}
|
||||
|
||||
var version = $$$1.fn.jquery.split(' ')[0].split('.');
|
||||
|
|
File diff suppressed because one or more lines are too long
6
library/bootstrap/js/bootstrap.min.js
vendored
6
library/bootstrap/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
5
library/popper/popper.min.js
vendored
5
library/popper/popper.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -68,14 +68,11 @@ $(document).ready(function() {
|
|||
$('a.notification-link').click(function(e){
|
||||
var notifyType = $(this).data('type');
|
||||
|
||||
if (!$(this).data('clicked') && (sessionStorage.getItem(notifyType + '_notifications_cache') !== null)) {
|
||||
var cached_data = JSON.parse(sessionStorage.getItem(notifyType + '_notifications_cache'));
|
||||
loadNotificationItems(notifyType, cached_data);
|
||||
$(this).data('clicked', true);
|
||||
}
|
||||
else {
|
||||
if(! $('#nav-' + notifyType + '-sub').hasClass('show')) {
|
||||
loadNotificationItems(notifyType);
|
||||
}
|
||||
|
||||
$(this).data('clicked', true);
|
||||
});
|
||||
|
||||
// Allow folks to stop the ajax page updates with the pause/break key
|
||||
|
@ -391,6 +388,14 @@ function notificationsUpdate(cached_data) {
|
|||
});
|
||||
}
|
||||
|
||||
var notifyType = null;
|
||||
if($('.notification-content.show').length) {
|
||||
notifyType = $('.notification-content.show').data('type');
|
||||
}
|
||||
if(notifyType !== null) {
|
||||
loadNotificationItems(notifyType);
|
||||
}
|
||||
|
||||
if(timer) clearTimeout(timer);
|
||||
timer = setTimeout(updateInit,updateInterval);
|
||||
}
|
||||
|
@ -431,7 +436,6 @@ function handleNotifications(data) {
|
|||
}
|
||||
|
||||
function handleNotificationsItems(notifyType, data) {
|
||||
|
||||
var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
|
||||
var notify_menu = $("#nav-" + notifyType + "-menu");
|
||||
|
||||
|
@ -924,33 +928,33 @@ function justifyPhotosAjax(id) {
|
|||
$('#' + id).justifiedGallery('norewind').on('jg.complete', function(e){ justifiedGalleryActive = false; });
|
||||
}
|
||||
|
||||
function loadNotificationItems(notifyType, cached_data) {
|
||||
|
||||
function loadNotificationItems(notifyType) {
|
||||
var pingExCmd = 'ping/' + notifyType + ((localUser != 0) ? '?f=&uid=' + localUser : '');
|
||||
|
||||
if(cached_data !== undefined) {
|
||||
var clicked = $('[data-type=\'' + notifyType + '\']').data('clicked');
|
||||
if((clicked === undefined) && (sessionStorage.getItem(notifyType + '_notifications_cache') !== null)) {
|
||||
var cached_data = JSON.parse(sessionStorage.getItem(notifyType + '_notifications_cache'));
|
||||
handleNotificationsItems(notifyType, cached_data);
|
||||
console.log('updating ' + notifyType + ' notifications from cache...');
|
||||
}
|
||||
else {
|
||||
$.get(pingExCmd, function(data) {
|
||||
if(data.invalid == 1) {
|
||||
window.location.href=window.location.href;
|
||||
}
|
||||
|
||||
$("." + notifyType + "-update").html(data.notify.length);
|
||||
|
||||
sessionStorage.setItem(notifyType + '_notifications_cache', JSON.stringify(data.notify));
|
||||
|
||||
handleNotificationsItems(notifyType, data.notify);
|
||||
});
|
||||
var cached_data = [];
|
||||
}
|
||||
|
||||
setTimeout(function() {
|
||||
if($('#nav-' + notifyType + '-sub').hasClass('show')) {
|
||||
console.log('updating ' + notifyType + ' notifications...');
|
||||
setTimeout(loadNotificationItems, updateInterval, notifyType);
|
||||
console.log('updating ' + notifyType + ' notifications...');
|
||||
$.get(pingExCmd, function(data) {
|
||||
if(data.invalid == 1) {
|
||||
window.location.href=window.location.href;
|
||||
}
|
||||
}, 1000);
|
||||
|
||||
if(JSON.stringify(cached_data[0]) === JSON.stringify(data.notify[0])) {
|
||||
console.log(notifyType + ' notifications cache up to date - update deferred');
|
||||
}
|
||||
else {
|
||||
handleNotificationsItems(notifyType, data.notify);
|
||||
sessionStorage.setItem(notifyType + '_notifications_cache', JSON.stringify(data.notify));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Since our ajax calls are asynchronous, we will give a few
|
||||
|
|
|
@ -8,8 +8,7 @@ head_add_css('/library/datetimepicker/jquery.datetimepicker.css');
|
|||
head_add_css('/library/bootstrap-colorpicker/dist/css/bootstrap-colorpicker.min.css');
|
||||
require_once('view/php/theme_init.php');
|
||||
|
||||
head_add_js('/library/popper/popper.min.js');
|
||||
head_add_js('/library/bootstrap/js/bootstrap.min.js');
|
||||
head_add_js('/library/bootstrap/js/bootstrap.bundle.min.js');
|
||||
head_add_js('/library/bootbox/bootbox.min.js');
|
||||
head_add_js('/library/bootstrap-tagsinput/bootstrap-tagsinput.js');
|
||||
head_add_js('/library/datetimepicker/jquery.datetimepicker.js');
|
||||
|
|
|
@ -115,21 +115,21 @@
|
|||
<div id="no_notifications" class="d-xl-none">
|
||||
{{$no_notifications}}<span class="jumping-dots"><span class="dot-1">.</span><span class="dot-2">.</span><span class="dot-3">.</span></span>
|
||||
</div>
|
||||
<div id="notifications" class="navbar-nav" data-children=".nav-item">
|
||||
<div id="nav-notifications-template" rel="template">
|
||||
<a class="list-group-item clearfix notification {5}" href="{0}" title="{2} {3}" data-b64mid="{6}" data-notify_id="{7}" data-thread_top="{8}" data-contact_name="{2}">
|
||||
<img class="menu-img-3" data-src="{1}">
|
||||
<span class="contactname">{2}</span>
|
||||
<span class="dropdown-sub-text">{3}<br>{4}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="nav-notifications-template" rel="template">
|
||||
<a class="list-group-item clearfix notification {5}" href="{0}" title="{2} {3}" data-b64mid="{6}" data-notify_id="{7}" data-thread_top="{8}" data-contact_name="{2}">
|
||||
<img class="menu-img-3" data-src="{1}">
|
||||
<span class="contactname">{2}</span>
|
||||
<span class="dropdown-sub-text">{3}<br>{4}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div id="notifications" class="navbar-nav">
|
||||
{{foreach $notifications as $notification}}
|
||||
<div class="collapse {{$notification.type}}-button">
|
||||
<a class="list-group-item notification-link" href="#nav-{{$notification.type}}-sub" title="{{$notification.title}}" data-toggle="collapse" data-parent="#notifications" data-type="{{$notification.type}}">
|
||||
<a class="list-group-item notification-link" href="#" title="{{$notification.title}}" data-target="#nav-{{$notification.type}}-sub" data-toggle="collapse" data-type="{{$notification.type}}">
|
||||
<i class="fa fa-fw fa-{{$notification.icon}}"></i> {{$notification.label}}
|
||||
<span class="float-right badge badge-{{$notification.severity}} {{$notification.type}}-update"></span>
|
||||
</a>
|
||||
<div id="nav-{{$notification.type}}-sub" class="collapse notification-content">
|
||||
<div id="nav-{{$notification.type}}-sub" class="collapse notification-content" data-parent="#notifications" data-type="{{$notification.type}}">
|
||||
{{if $notification.viewall}}
|
||||
<a class="list-group-item text-dark" id="nav-{{$notification.type}}-see-all" href="{{$notification.viewall.url}}">
|
||||
<i class="fa fa-fw fa-external-link"></i> {{$notification.viewall.label}}
|
||||
|
|
Loading…
Reference in a new issue