Version Description
- Fixed Bug: No visual loading process in the Post Access metabox https://github.com/aamplugin/advanced-access-manager/issues/111
- Fixed Bug: Safari browser cropps the modals https://github.com/aamplugin/advanced-access-manager/issues/107
- Fixed Bug: Backend menu IDs with upper-case letters fail to restrict https://github.com/aamplugin/advanced-access-manager/issues/105
- Fixed Bug: Deleting role does not reload the main panel https://github.com/aamplugin/advanced-access-manager/issues/102
- Fixed Bug: Incorrect user login redirect with passworless URL https://github.com/aamplugin/advanced-access-manager/issues/98
- Added New: The ability to reset access settings for any specific subject https://github.com/aamplugin/advanced-access-manager/issues/109
- Added New: Slug to the Posts & Terms tab https://github.com/aamplugin/advanced-access-manager/issues/108
- Added New: Use
Authorization
header with fallback toAuthentication
https://github.com/aamplugin/advanced-access-manager/issues/99 - Added New: Filter post's content with [aam] shortcode and capability https://github.com/aamplugin/advanced-access-manager/issues/96
- Added New: The ability to manage access to navigation menuhttps://github.com/aamplugin/advanced-access-manager/issues/89
- Changed: Simplify support message payload https://github.com/aamplugin/advanced-access-manager/issues/106
- Changed: Update bootstrap to 3.4.1 https://github.com/aamplugin/advanced-access-manager/issues/95
- Changed: Dynamically adjust AAM iFrame to its content https://github.com/aamplugin/advanced-access-manager/issues/104
- Changed: Enhance role cloning feature https://github.com/aamplugin/advanced-access-manager/issues/97
Download this release
Release Info
Developer | vasyltech |
Plugin | Advanced Access Manager |
Version | 6.5.0 |
Comparing to | |
See all releases |
Code changes from version 6.4.3 to 6.5.0
- aam.php +2 -2
- application/Backend/Feature/Main/Policy.php +6 -15
- application/Backend/Feature/Main/Post.php +106 -24
- application/Backend/Feature/Settings/Manager.php +31 -4
- application/Backend/Feature/Subject/Role.php +8 -2
- application/Backend/View/Localization.php +1 -1
- application/Backend/View/PostOptionList.php +14 -6
- application/Backend/tmpl/index.php +10 -4
- application/Backend/tmpl/metabox/main-iframe.php +3 -2
- application/Backend/tmpl/metabox/policy-principal-metabox.php +10 -2
- application/Backend/tmpl/metabox/post-metabox.php +10 -2
- application/Backend/tmpl/metabox/term-metabox.php +10 -2
- application/Backend/tmpl/metabox/user-metabox.php +10 -2
- application/Backend/tmpl/page/current-subject.php +24 -2
- application/Backend/tmpl/partial/post-access-form.php +8 -7
- application/Core/Object/Menu.php +16 -5
- application/Core/Object/Metabox.php +14 -3
- application/Core/Object/Route.php +11 -3
- application/Core/Object/Toolbar.php +12 -3
- application/Core/Object/Uri.php +15 -5
- application/Service/AccessPolicy.php +1 -1
- application/Service/Jwt.php +28 -7
- application/Service/LoginRedirect.php +9 -3
- application/Shortcode/Handler/Content.php +21 -7
- media/css/aam.css +14 -3
- media/font/fontello.eot +0 -0
- media/font/fontello.svg +3 -1
- media/font/fontello.ttf +0 -0
- media/font/fontello.woff +0 -0
- media/font/fontello.woff2 +0 -0
- media/js/aam.js +102 -15
- media/js/iframe-resizer.js +1 -0
- media/js/vendor.js +18 -5
- readme.txt +18 -2
aam.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
/**
|
4 |
* Plugin Name: Advanced Access Manager
|
5 |
* Description: Collection of features to manage your WordPress website authentication, authorization and monitoring
|
6 |
-
* Version: 6.
|
7 |
* Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
* Author URI: https://vasyltech.com
|
9 |
* Text Domain: advanced-access-manager
|
@@ -264,7 +264,7 @@ if (defined('ABSPATH')) {
|
|
264 |
//define few common constants
|
265 |
define('AAM_MEDIA', plugins_url('/media', __FILE__));
|
266 |
define('AAM_KEY', 'advanced-access-manager');
|
267 |
-
define('AAM_VERSION', '6.
|
268 |
define('AAM_BASEDIR', __DIR__);
|
269 |
|
270 |
//load vendor
|
3 |
/**
|
4 |
* Plugin Name: Advanced Access Manager
|
5 |
* Description: Collection of features to manage your WordPress website authentication, authorization and monitoring
|
6 |
+
* Version: 6.5.0
|
7 |
* Author: Vasyl Martyniuk <vasyl@vasyltech.com>
|
8 |
* Author URI: https://vasyltech.com
|
9 |
* Text Domain: advanced-access-manager
|
264 |
//define few common constants
|
265 |
define('AAM_MEDIA', plugins_url('/media', __FILE__));
|
266 |
define('AAM_KEY', 'advanced-access-manager');
|
267 |
+
define('AAM_VERSION', '6.5.0');
|
268 |
define('AAM_BASEDIR', __DIR__);
|
269 |
|
270 |
//load vendor
|
application/Backend/Feature/Main/Policy.php
CHANGED
@@ -10,6 +10,7 @@
|
|
10 |
/**
|
11 |
* Access Policy UI manager
|
12 |
*
|
|
|
13 |
* @since 6.3.0 Enhanced service to be able to generate policy into new policy
|
14 |
* post type record
|
15 |
* @since 6.2.2 Integration with multisite network where user is allowed to manage
|
@@ -19,7 +20,7 @@
|
|
19 |
* @since 6.0.0 Initial implementation of the class
|
20 |
*
|
21 |
* @package AAM
|
22 |
-
* @version 6.
|
23 |
*/
|
24 |
class AAM_Backend_Feature_Main_Policy
|
25 |
extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAware
|
@@ -53,6 +54,7 @@ extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAwar
|
|
53 |
*
|
54 |
* @return void
|
55 |
*
|
|
|
56 |
* @since 6.3.0 Enhanced per https://github.com/aamplugin/advanced-access-manager/issues/27
|
57 |
* @since 6.2.0 Registering a new action to allow the Access Policy generation
|
58 |
* @since 6.1.0 Fixed the bug where "Attach to Default" button was not showing at
|
@@ -60,7 +62,7 @@ extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAwar
|
|
60 |
* @since 6.0.0 Initial implementation of the method
|
61 |
*
|
62 |
* @access public
|
63 |
-
* @version 6.
|
64 |
*/
|
65 |
public function __construct()
|
66 |
{
|
@@ -90,20 +92,9 @@ extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAwar
|
|
90 |
return $content;
|
91 |
}, 10, 2);
|
92 |
|
93 |
-
add_action('aam_top_subject_panel_action', function() {
|
94 |
-
echo AAM_Backend_View::loadPartial('access-policy-action');
|
95 |
-
});
|
96 |
-
|
97 |
-
// Hook into Users/Roles Manager and add new action
|
98 |
if (current_user_can(AAM_Backend_Feature_Main_Policy::ACCESS_CAPABILITY)) {
|
99 |
-
|
100 |
-
|
101 |
-
'icon' => 'icon-file-code',
|
102 |
-
'id' => 'generate-access-policy',
|
103 |
-
'tooltip' => __('Generate Access Policy', AAM_KEY)
|
104 |
-
);
|
105 |
-
|
106 |
-
return $actions;
|
107 |
});
|
108 |
}
|
109 |
}
|
10 |
/**
|
11 |
* Access Policy UI manager
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/109
|
14 |
* @since 6.3.0 Enhanced service to be able to generate policy into new policy
|
15 |
* post type record
|
16 |
* @since 6.2.2 Integration with multisite network where user is allowed to manage
|
20 |
* @since 6.0.0 Initial implementation of the class
|
21 |
*
|
22 |
* @package AAM
|
23 |
+
* @version 6.5.0
|
24 |
*/
|
25 |
class AAM_Backend_Feature_Main_Policy
|
26 |
extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAware
|
54 |
*
|
55 |
* @return void
|
56 |
*
|
57 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/109
|
58 |
* @since 6.3.0 Enhanced per https://github.com/aamplugin/advanced-access-manager/issues/27
|
59 |
* @since 6.2.0 Registering a new action to allow the Access Policy generation
|
60 |
* @since 6.1.0 Fixed the bug where "Attach to Default" button was not showing at
|
62 |
* @since 6.0.0 Initial implementation of the method
|
63 |
*
|
64 |
* @access public
|
65 |
+
* @version 6.5.0
|
66 |
*/
|
67 |
public function __construct()
|
68 |
{
|
92 |
return $content;
|
93 |
}, 10, 2);
|
94 |
|
|
|
|
|
|
|
|
|
|
|
95 |
if (current_user_can(AAM_Backend_Feature_Main_Policy::ACCESS_CAPABILITY)) {
|
96 |
+
add_action('aam_top_subject_panel_action', function() {
|
97 |
+
echo AAM_Backend_View::loadPartial('access-policy-action');
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
});
|
99 |
}
|
100 |
}
|
application/Backend/Feature/Main/Post.php
CHANGED
@@ -10,6 +10,8 @@
|
|
10 |
/**
|
11 |
* Backend posts & terms service UI
|
12 |
*
|
|
|
|
|
13 |
* @since 6.3.1 Fixed bug with incorrectly escaped passwords and teaser messages
|
14 |
* @since 6.3.0 Fixed bug with PHP noticed that was triggered if password was not
|
15 |
* defined
|
@@ -18,7 +20,7 @@
|
|
18 |
* @since 6.0.0 Initial implementation of the class
|
19 |
*
|
20 |
* @package AAM
|
21 |
-
* @version 6.
|
22 |
*/
|
23 |
class AAM_Backend_Feature_Main_Post
|
24 |
extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAware
|
@@ -118,8 +120,11 @@ class AAM_Backend_Feature_Main_Post
|
|
118 |
*
|
119 |
* @return string
|
120 |
*
|
|
|
|
|
|
|
121 |
* @access public
|
122 |
-
* @version 6.
|
123 |
*/
|
124 |
public function getAccessForm($id, $type)
|
125 |
{
|
@@ -176,7 +181,7 @@ class AAM_Backend_Feature_Main_Post
|
|
176 |
|
177 |
case 'post':
|
178 |
$args['postType'] = get_post_type_object($object->post_type);
|
179 |
-
$args['options'] = $this->getAccessOptionList();
|
180 |
|
181 |
$response = $view->loadPartial('post-access-form', $args);
|
182 |
break;
|
@@ -216,28 +221,37 @@ class AAM_Backend_Feature_Main_Post
|
|
216 |
/**
|
217 |
* Get post object access options
|
218 |
*
|
|
|
|
|
219 |
* @return array
|
220 |
*
|
|
|
221 |
* @since 6.2.0 Added additional argument "current subject" to the
|
222 |
* `aam_post_access_options_filter` filter
|
223 |
* @since 6.0.0 Initial implementation of the method
|
224 |
*
|
225 |
* @access protected
|
226 |
-
* @version 6.
|
227 |
*/
|
228 |
-
protected function getAccessOptionList()
|
229 |
{
|
230 |
-
$
|
|
|
|
|
231 |
'aam_post_access_options_filter',
|
232 |
AAM_Backend_View_PostOptionList::get(),
|
233 |
$this->getSubject()
|
234 |
);
|
235 |
|
236 |
-
|
237 |
-
|
|
|
|
|
|
|
|
|
|
|
238 |
|
239 |
-
|
240 |
-
});
|
241 |
}
|
242 |
|
243 |
/**
|
@@ -582,8 +596,11 @@ class AAM_Backend_Feature_Main_Post
|
|
582 |
*
|
583 |
* @return array
|
584 |
*
|
|
|
|
|
|
|
585 |
* @access protected
|
586 |
-
* @version 6.
|
587 |
*/
|
588 |
protected function retrieveRootLevelList()
|
589 |
{
|
@@ -608,7 +625,8 @@ class AAM_Backend_Feature_Main_Post
|
|
608 |
false,
|
609 |
$type->name,
|
610 |
$this->getSubject()
|
611 |
-
)
|
|
|
612 |
);
|
613 |
} elseif(is_a($type, 'WP_Taxonomy')) {
|
614 |
$response['data'][] = array(
|
@@ -623,7 +641,8 @@ class AAM_Backend_Feature_Main_Post
|
|
623 |
false,
|
624 |
$type->name,
|
625 |
$this->getSubject()
|
626 |
-
)
|
|
|
627 |
);
|
628 |
}
|
629 |
}
|
@@ -744,24 +763,33 @@ class AAM_Backend_Feature_Main_Post
|
|
744 |
*
|
745 |
* @return array
|
746 |
*
|
|
|
|
|
|
|
747 |
* @access protected
|
748 |
-
* @version 6.
|
749 |
*/
|
750 |
protected function retrievePostTypeObjects($type)
|
751 |
{
|
752 |
-
$list
|
753 |
-
$subject
|
754 |
-
$
|
|
|
755 |
'data' => array(),
|
756 |
'recordsTotal' => $list->total,
|
757 |
'recordsFiltered' => $list->filtered
|
758 |
);
|
759 |
|
|
|
760 |
foreach ($list->records as $record) {
|
761 |
if (isset($record->ID)) { // this is a post
|
762 |
-
$
|
763 |
|
764 |
-
$
|
|
|
|
|
|
|
|
|
765 |
|
766 |
if (!empty($record->post_parent)) {
|
767 |
$p = get_post($record->post_parent);
|
@@ -788,7 +816,8 @@ class AAM_Backend_Feature_Main_Post
|
|
788 |
get_the_title($record),
|
789 |
'manage' . ($link ? ',edit' : ',no-edit'),
|
790 |
$parent,
|
791 |
-
$subject->getObject('post', $record->ID, true)->isOverwritten()
|
|
|
792 |
);
|
793 |
} else { // this is a term
|
794 |
$response['data'][] = $this->_prepareTermRow($record, $type);
|
@@ -798,6 +827,47 @@ class AAM_Backend_Feature_Main_Post
|
|
798 |
return $response;
|
799 |
}
|
800 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
801 |
/**
|
802 |
* Prepare the term row for the table view
|
803 |
*
|
@@ -806,15 +876,26 @@ class AAM_Backend_Feature_Main_Post
|
|
806 |
*
|
807 |
* @return array
|
808 |
*
|
|
|
|
|
|
|
809 |
* @access private
|
810 |
-
* @version 6.
|
811 |
*/
|
812 |
private function _prepareTermRow($term, $type = null)
|
813 |
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
814 |
// Prepare list of actions
|
815 |
$actions = apply_filters(
|
816 |
'aam_term_row_actions',
|
817 |
-
array('manage', 'edit'),
|
818 |
$this->getSubject(),
|
819 |
$term,
|
820 |
$type
|
@@ -828,14 +909,15 @@ class AAM_Backend_Feature_Main_Post
|
|
828 |
|
829 |
return array(
|
830 |
$id,
|
831 |
-
|
832 |
($is_cat ? 'cat' : 'tag'),
|
833 |
$term->name,
|
834 |
implode(',', $actions),
|
835 |
$path,
|
836 |
apply_filters(
|
837 |
'aam_term_settings_override_status_filter', false, $id, $this->getSubject()
|
838 |
-
)
|
|
|
839 |
);
|
840 |
}
|
841 |
|
10 |
/**
|
11 |
* Backend posts & terms service UI
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/89
|
14 |
+
* https://github.com/aamplugin/advanced-access-manager/issues/108
|
15 |
* @since 6.3.1 Fixed bug with incorrectly escaped passwords and teaser messages
|
16 |
* @since 6.3.0 Fixed bug with PHP noticed that was triggered if password was not
|
17 |
* defined
|
20 |
* @since 6.0.0 Initial implementation of the class
|
21 |
*
|
22 |
* @package AAM
|
23 |
+
* @version 6.5.0
|
24 |
*/
|
25 |
class AAM_Backend_Feature_Main_Post
|
26 |
extends AAM_Backend_Feature_Abstract implements AAM_Backend_Feature_ISubjectAware
|
120 |
*
|
121 |
* @return string
|
122 |
*
|
123 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/89
|
124 |
+
* @since 6.0.0 Initial implementation of the method
|
125 |
+
*
|
126 |
* @access public
|
127 |
+
* @version 6.5.0
|
128 |
*/
|
129 |
public function getAccessForm($id, $type)
|
130 |
{
|
181 |
|
182 |
case 'post':
|
183 |
$args['postType'] = get_post_type_object($object->post_type);
|
184 |
+
$args['options'] = $this->getAccessOptionList($object->post_type);
|
185 |
|
186 |
$response = $view->loadPartial('post-access-form', $args);
|
187 |
break;
|
221 |
/**
|
222 |
* Get post object access options
|
223 |
*
|
224 |
+
* @param string $post_type
|
225 |
+
*
|
226 |
* @return array
|
227 |
*
|
228 |
+
* @since 6.5.0 Added new param $post_type to filter out options by post type
|
229 |
* @since 6.2.0 Added additional argument "current subject" to the
|
230 |
* `aam_post_access_options_filter` filter
|
231 |
* @since 6.0.0 Initial implementation of the method
|
232 |
*
|
233 |
* @access protected
|
234 |
+
* @version 6.5.0
|
235 |
*/
|
236 |
+
protected function getAccessOptionList($post_type)
|
237 |
{
|
238 |
+
$response = array();
|
239 |
+
$excluded = array($post_type, $this->getSubject()->getSubjectType());
|
240 |
+
$option_list = apply_filters(
|
241 |
'aam_post_access_options_filter',
|
242 |
AAM_Backend_View_PostOptionList::get(),
|
243 |
$this->getSubject()
|
244 |
);
|
245 |
|
246 |
+
foreach($option_list as $key => $data) {
|
247 |
+
if (empty($data['exclude'])
|
248 |
+
|| (count(array_intersect($data['exclude'], $excluded)) === 0)
|
249 |
+
) {
|
250 |
+
$response[$key] = $data;
|
251 |
+
}
|
252 |
+
}
|
253 |
|
254 |
+
return $response;
|
|
|
255 |
}
|
256 |
|
257 |
/**
|
596 |
*
|
597 |
* @return array
|
598 |
*
|
599 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/108
|
600 |
+
* @since 6.0.0 Initial implementation of the method
|
601 |
+
*
|
602 |
* @access protected
|
603 |
+
* @version 6.5.0
|
604 |
*/
|
605 |
protected function retrieveRootLevelList()
|
606 |
{
|
625 |
false,
|
626 |
$type->name,
|
627 |
$this->getSubject()
|
628 |
+
),
|
629 |
+
$type->name
|
630 |
);
|
631 |
} elseif(is_a($type, 'WP_Taxonomy')) {
|
632 |
$response['data'][] = array(
|
641 |
false,
|
642 |
$type->name,
|
643 |
$this->getSubject()
|
644 |
+
),
|
645 |
+
$type->name
|
646 |
);
|
647 |
}
|
648 |
}
|
763 |
*
|
764 |
* @return array
|
765 |
*
|
766 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/108
|
767 |
+
* @since 6.0.0 Initial implementation of the method
|
768 |
+
*
|
769 |
* @access protected
|
770 |
+
* @version 6.5.0
|
771 |
*/
|
772 |
protected function retrievePostTypeObjects($type)
|
773 |
{
|
774 |
+
$list = $this->preparePostTermList($type);
|
775 |
+
$subject = $this->getSubject();
|
776 |
+
$post_type = get_post_type_object($type);
|
777 |
+
$response = array(
|
778 |
'data' => array(),
|
779 |
'recordsTotal' => $list->total,
|
780 |
'recordsFiltered' => $list->filtered
|
781 |
);
|
782 |
|
783 |
+
|
784 |
foreach ($list->records as $record) {
|
785 |
if (isset($record->ID)) { // this is a post
|
786 |
+
$parent = $link = null;
|
787 |
|
788 |
+
if ($record->post_type === 'nav_menu_item') {
|
789 |
+
$this->_decorateNavigationMenuItem($record);
|
790 |
+
} elseif ($post_type->show_ui === true) {
|
791 |
+
$link = get_edit_post_link($record->ID, 'link');
|
792 |
+
}
|
793 |
|
794 |
if (!empty($record->post_parent)) {
|
795 |
$p = get_post($record->post_parent);
|
816 |
get_the_title($record),
|
817 |
'manage' . ($link ? ',edit' : ',no-edit'),
|
818 |
$parent,
|
819 |
+
$subject->getObject('post', $record->ID, true)->isOverwritten(),
|
820 |
+
$record->post_name
|
821 |
);
|
822 |
} else { // this is a term
|
823 |
$response['data'][] = $this->_prepareTermRow($record, $type);
|
827 |
return $response;
|
828 |
}
|
829 |
|
830 |
+
/**
|
831 |
+
* Decorate navigation menu item
|
832 |
+
*
|
833 |
+
* @param WP_Post $item
|
834 |
+
*
|
835 |
+
* @return void
|
836 |
+
*
|
837 |
+
* @access private
|
838 |
+
* @version 6.5.0
|
839 |
+
*/
|
840 |
+
private function _decorateNavigationMenuItem($item)
|
841 |
+
{
|
842 |
+
$meta = get_post_meta($item->ID);
|
843 |
+
$pfx = '_menu_item_';
|
844 |
+
|
845 |
+
// Determining type of menu
|
846 |
+
$type = isset($meta["{$pfx}type"]) ? array_shift($meta["{$pfx}type"]) : null;
|
847 |
+
$obj = isset($meta["{$pfx}object"]) ? array_shift($meta["{$pfx}object"]) : '';
|
848 |
+
$id = isset($meta["{$pfx}object_id"]) ? array_shift($meta["{$pfx}object_id"]) : 0;
|
849 |
+
|
850 |
+
if ($type === 'taxonomy') {
|
851 |
+
$object = get_term($id, $obj);
|
852 |
+
|
853 |
+
if (is_a($object, 'WP_Term')) {
|
854 |
+
$item->post_title = $object->name;
|
855 |
+
}
|
856 |
+
} elseif ($type === 'post_type') {
|
857 |
+
$object = get_post($id);
|
858 |
+
|
859 |
+
if (is_a($object, 'WP_Post')) {
|
860 |
+
$item->post_title = $object->post_title;
|
861 |
+
}
|
862 |
+
} elseif ($type === 'post_type_archive') {
|
863 |
+
$object = get_post_type_object($obj);
|
864 |
+
|
865 |
+
if (is_a($object, 'WP_Post_Type')) {
|
866 |
+
$item->post_title = $object->labels->archives;
|
867 |
+
}
|
868 |
+
}
|
869 |
+
}
|
870 |
+
|
871 |
/**
|
872 |
* Prepare the term row for the table view
|
873 |
*
|
876 |
*
|
877 |
* @return array
|
878 |
*
|
879 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/108
|
880 |
+
* @since 6.0.0 Initial implementation of the method
|
881 |
+
*
|
882 |
* @access private
|
883 |
+
* @version 6.5.0
|
884 |
*/
|
885 |
private function _prepareTermRow($term, $type = null)
|
886 |
{
|
887 |
+
$taxonomy = get_taxonomy($term->taxonomy);
|
888 |
+
|
889 |
+
if ($taxonomy->show_ui) {
|
890 |
+
$link = get_edit_term_link($term->term_id, $term->taxonomy);
|
891 |
+
} else {
|
892 |
+
$link = null;
|
893 |
+
}
|
894 |
+
|
895 |
// Prepare list of actions
|
896 |
$actions = apply_filters(
|
897 |
'aam_term_row_actions',
|
898 |
+
array('manage', ($link ? 'edit' : 'no-edit')),
|
899 |
$this->getSubject(),
|
900 |
$term,
|
901 |
$type
|
909 |
|
910 |
return array(
|
911 |
$id,
|
912 |
+
$link,
|
913 |
($is_cat ? 'cat' : 'tag'),
|
914 |
$term->name,
|
915 |
implode(',', $actions),
|
916 |
$path,
|
917 |
apply_filters(
|
918 |
'aam_term_settings_override_status_filter', false, $id, $this->getSubject()
|
919 |
+
),
|
920 |
+
$term->slug
|
921 |
);
|
922 |
}
|
923 |
|
application/Backend/Feature/Settings/Manager.php
CHANGED
@@ -10,11 +10,13 @@
|
|
10 |
/**
|
11 |
* Backend Settings area abstract manager
|
12 |
*
|
|
|
|
|
13 |
* @since 6.2.0 Added Import/Export functionality
|
14 |
* @since 6.0.0 Initial implementation of the class
|
15 |
*
|
16 |
* @package AAM
|
17 |
-
* @version 6.
|
18 |
*/
|
19 |
class AAM_Backend_Feature_Settings_Manager extends AAM_Backend_Feature_Abstract
|
20 |
{
|
@@ -64,23 +66,41 @@ class AAM_Backend_Feature_Settings_Manager extends AAM_Backend_Feature_Abstract
|
|
64 |
return wp_json_encode(array('status' => 'success'));
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
/**
|
68 |
* Aggregate support request metadata
|
69 |
*
|
70 |
* @return string
|
71 |
*
|
|
|
72 |
* @since 6.3.0 Optimized AAM_Core_API::getOption call
|
73 |
* @since 6.2.0 Initial implementation of the method
|
74 |
*
|
75 |
* @access public
|
76 |
-
* @version 6.
|
77 |
*/
|
78 |
public function getSupportMetadata()
|
79 |
{
|
80 |
global $wp_version;
|
81 |
|
82 |
return wp_json_encode(array(
|
83 |
-
'phpVersion' => PHP_VERSION,
|
84 |
'wpVersion' => $wp_version,
|
85 |
'aamVersion' => AAM_VERSION,
|
86 |
'settings' => AAM_Core_API::getOption(AAM_Core_AccessSettings::DB_OPTION),
|
@@ -88,7 +108,14 @@ class AAM_Backend_Feature_Settings_Manager extends AAM_Backend_Feature_Abstract
|
|
88 |
'configpress' => AAM_Core_API::getOption(AAM_Core_ConfigPress::DB_OPTION),
|
89 |
'roles' => AAM_Core_API::getOption(AAM_Core_API::getRoles()->role_key),
|
90 |
'addons' => AAM_Addon_Repository::getInstance()->getRegistry(),
|
91 |
-
'plugins' =>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
));
|
93 |
}
|
94 |
|
10 |
/**
|
11 |
* Backend Settings area abstract manager
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/109
|
14 |
+
* https://github.com/aamplugin/advanced-access-manager/issues/106
|
15 |
* @since 6.2.0 Added Import/Export functionality
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Backend_Feature_Settings_Manager extends AAM_Backend_Feature_Abstract
|
22 |
{
|
66 |
return wp_json_encode(array('status' => 'success'));
|
67 |
}
|
68 |
|
69 |
+
/**
|
70 |
+
* Reset access settings for specific subject
|
71 |
+
*
|
72 |
+
* @return void
|
73 |
+
*
|
74 |
+
* @access public
|
75 |
+
* @version 6.5.0
|
76 |
+
*/
|
77 |
+
public function clearSubjectSettings()
|
78 |
+
{
|
79 |
+
$subject = AAM_Backend_Subject::getInstance()->getSubject();
|
80 |
+
$xpath = $subject::UID . '.' . $subject->getId();
|
81 |
+
|
82 |
+
AAM_Core_AccessSettings::getInstance()->delete($xpath)->save();
|
83 |
+
|
84 |
+
return wp_json_encode(array('status' => 'success'));
|
85 |
+
}
|
86 |
+
|
87 |
/**
|
88 |
* Aggregate support request metadata
|
89 |
*
|
90 |
* @return string
|
91 |
*
|
92 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/106
|
93 |
* @since 6.3.0 Optimized AAM_Core_API::getOption call
|
94 |
* @since 6.2.0 Initial implementation of the method
|
95 |
*
|
96 |
* @access public
|
97 |
+
* @version 6.5.0
|
98 |
*/
|
99 |
public function getSupportMetadata()
|
100 |
{
|
101 |
global $wp_version;
|
102 |
|
103 |
return wp_json_encode(array(
|
|
|
104 |
'wpVersion' => $wp_version,
|
105 |
'aamVersion' => AAM_VERSION,
|
106 |
'settings' => AAM_Core_API::getOption(AAM_Core_AccessSettings::DB_OPTION),
|
108 |
'configpress' => AAM_Core_API::getOption(AAM_Core_ConfigPress::DB_OPTION),
|
109 |
'roles' => AAM_Core_API::getOption(AAM_Core_API::getRoles()->role_key),
|
110 |
'addons' => AAM_Addon_Repository::getInstance()->getRegistry(),
|
111 |
+
'plugins' => array_map(function($plugin) {
|
112 |
+
return array(
|
113 |
+
'Name' => (isset($plugin['Name']) ? $plugin['Name'] : null),
|
114 |
+
'PluginURI' => (isset($plugin['PluginURI']) ? $plugin['PluginURI'] : null),
|
115 |
+
'Version' => (isset($plugin['Version']) ? $plugin['Version'] : null),
|
116 |
+
'AuthorURI' => (isset($plugin['AuthorURI']) ? $plugin['AuthorURI'] : null),
|
117 |
+
);
|
118 |
+
}, get_plugins())
|
119 |
));
|
120 |
}
|
121 |
|
application/Backend/Feature/Subject/Role.php
CHANGED
@@ -10,12 +10,13 @@
|
|
10 |
/**
|
11 |
* Role view manager
|
12 |
*
|
|
|
13 |
* @since 6.4.0 Enhancement https://github.com/aamplugin/advanced-access-manager/issues/72
|
14 |
* @since 6.1.0 Fixed bug with role creation process that caused PHP warning
|
15 |
* @since 6.0.0 Initial implementation of the class
|
16 |
*
|
17 |
* @package AAM
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Backend_Feature_Subject_Role
|
21 |
{
|
@@ -180,11 +181,12 @@ class AAM_Backend_Feature_Subject_Role
|
|
180 |
*
|
181 |
* @return array
|
182 |
*
|
|
|
183 |
* @since 6.1.0 Fixed the PHP notice where `Undefined variable: parent`
|
184 |
* @since 6.0.0 Initial implementation of the method
|
185 |
*
|
186 |
* @access private
|
187 |
-
* @version 6.
|
188 |
*/
|
189 |
private function _create()
|
190 |
{
|
@@ -203,6 +205,10 @@ class AAM_Backend_Feature_Subject_Role
|
|
203 |
if ($inherit) {
|
204 |
$parent = $roles->get_role($inherit);
|
205 |
$caps = ($parent ? $parent->capabilities : array());
|
|
|
|
|
|
|
|
|
206 |
} else {
|
207 |
$caps = array();
|
208 |
$parent = null;
|
10 |
/**
|
11 |
* Role view manager
|
12 |
*
|
13 |
+
* @since 6.5.0 Implemented https://github.com/aamplugin/advanced-access-manager/issues/97
|
14 |
* @since 6.4.0 Enhancement https://github.com/aamplugin/advanced-access-manager/issues/72
|
15 |
* @since 6.1.0 Fixed bug with role creation process that caused PHP warning
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Backend_Feature_Subject_Role
|
22 |
{
|
181 |
*
|
182 |
* @return array
|
183 |
*
|
184 |
+
* @since 6.5.0 Implemented https://github.com/aamplugin/advanced-access-manager/issues/97
|
185 |
* @since 6.1.0 Fixed the PHP notice where `Undefined variable: parent`
|
186 |
* @since 6.0.0 Initial implementation of the method
|
187 |
*
|
188 |
* @access private
|
189 |
+
* @version 6.5.0
|
190 |
*/
|
191 |
private function _create()
|
192 |
{
|
205 |
if ($inherit) {
|
206 |
$parent = $roles->get_role($inherit);
|
207 |
$caps = ($parent ? $parent->capabilities : array());
|
208 |
+
|
209 |
+
// Also adding role's slug to the list of capabilities
|
210 |
+
// https://github.com/aamplugin/advanced-access-manager/issues/97
|
211 |
+
$caps[$inherit] = true;
|
212 |
} else {
|
213 |
$caps = array();
|
214 |
$parent = null;
|
application/Backend/View/Localization.php
CHANGED
@@ -61,7 +61,7 @@ class AAM_Backend_View_Localization
|
|
61 |
'Failed to update role' => __('Failed to update role', AAM_KEY),
|
62 |
'Update' => __('Update', AAM_KEY),
|
63 |
'Reset' => __('Reset', AAM_KEY),
|
64 |
-
'Resetting...' => __('
|
65 |
'Deleting...' => __('Deleting...', AAM_KEY),
|
66 |
'Failed to delete role' => __('Failed to delete role', AAM_KEY),
|
67 |
'Delete Role' => __('Delete Role', AAM_KEY),
|
61 |
'Failed to update role' => __('Failed to update role', AAM_KEY),
|
62 |
'Update' => __('Update', AAM_KEY),
|
63 |
'Reset' => __('Reset', AAM_KEY),
|
64 |
+
'Resetting...' => __('Resetting...', AAM_KEY),
|
65 |
'Deleting...' => __('Deleting...', AAM_KEY),
|
66 |
'Failed to delete role' => __('Failed to delete role', AAM_KEY),
|
67 |
'Delete Role' => __('Delete Role', AAM_KEY),
|
application/Backend/View/PostOptionList.php
CHANGED
@@ -10,11 +10,12 @@
|
|
10 |
/**
|
11 |
* Post & Term option list for the Post object
|
12 |
*
|
|
|
13 |
* @since 6.2.0 Enhanced HIDDEN option with more granular access controls
|
14 |
* @since 6.0.0 Initial implementation of the class
|
15 |
*
|
16 |
* @package AAM
|
17 |
-
* @version 6.
|
18 |
*/
|
19 |
class AAM_Backend_View_PostOptionList
|
20 |
{
|
@@ -24,11 +25,12 @@ class AAM_Backend_View_PostOptionList
|
|
24 |
*
|
25 |
* @return array
|
26 |
*
|
|
|
27 |
* @since 6.2.0 Enhanced HIDDEN option with more granular access controls
|
28 |
* @since 6.0.0 Initial implementation of the method
|
29 |
*
|
30 |
* @access public
|
31 |
-
* @version 6.
|
32 |
*/
|
33 |
public static function get()
|
34 |
{
|
@@ -41,56 +43,62 @@ class AAM_Backend_View_PostOptionList
|
|
41 |
),
|
42 |
'restricted' => array(
|
43 |
'title' => __('Restricted', AAM_KEY),
|
|
|
44 |
'description' => __('Restrict direct access to the post. Any attempt to access the post will be denied and redirected based on the Access Denied Redirect rule.', AAM_KEY)
|
45 |
),
|
46 |
'teaser' => array(
|
47 |
'title' => __('Teaser Message', AAM_KEY),
|
48 |
'sub' => __('Message', AAM_KEY),
|
49 |
'modal' => 'modal-teaser',
|
|
|
50 |
'description' => __('Dynamically replace the post content with defined plain text or HTML teaser message.', AAM_KEY)
|
51 |
),
|
52 |
'limited' => array(
|
53 |
'title' => __('Limited', AAM_KEY),
|
54 |
'sub' => __('Access Limit', AAM_KEY),
|
55 |
'modal' => 'modal-limited',
|
56 |
-
'exclude' => array(AAM_Core_Subject_Visitor::UID),
|
57 |
'description' => __('Define how many times the post can be accessed. When the number of times exceeds the defined threshold, access will be denied and redirected based on the Access Denied Redirect rule.', AAM_KEY)
|
58 |
),
|
59 |
'comment' => array(
|
60 |
'title' => __('Leave Comments', AAM_KEY),
|
|
|
61 |
'description' => __('Restrict access to leave comments for the post.', AAM_KEY)
|
62 |
),
|
63 |
'redirected' => array(
|
64 |
'title' => __('Redirect', AAM_KEY),
|
65 |
'sub' => __('Destination', AAM_KEY),
|
66 |
'modal' => 'modal-redirect',
|
|
|
67 |
'description' => __('Redirect user based on the defined redirect rule when user tries to access the post. The REDIRECT option has lower precedence and will be ignored if RESTRICTED option is checked.', AAM_KEY),
|
68 |
),
|
69 |
'protected' => array(
|
70 |
'title' => __('Password Protected', AAM_KEY),
|
71 |
'sub' => __('Password', AAM_KEY),
|
72 |
'modal' => 'modal-password',
|
|
|
73 |
'description' => __('Protect access to the post with a password. Available with WordPress 4.7.0 or higher.', AAM_KEY)
|
74 |
),
|
75 |
'ceased' => array(
|
76 |
'title' => __('Access Expires', AAM_KEY),
|
77 |
'sub' => __('After', AAM_KEY),
|
78 |
'modal' => 'modal-cease',
|
|
|
79 |
'description' => __('Define when access will expire to the post.', AAM_KEY) . sprintf(__('After expiration, the access to the post will be denied and redirected based on the Access Denied Redirect rule. For more information %scheck this article%s or ', AAM_KEY), "<a href='https://aamplugin.com/article/how-to-set-expiration-date-for-any-wordpress-content' target='_blank'>", '</a>')
|
80 |
),
|
81 |
'edit' => array(
|
82 |
'title' => __('Edit', AAM_KEY),
|
83 |
-
'exclude' => array(AAM_Core_Subject_Visitor::UID),
|
84 |
'description' => __('Restrict access to edit the post.', AAM_KEY)
|
85 |
),
|
86 |
'delete' => array(
|
87 |
'title' => __('Delete', AAM_KEY),
|
88 |
-
'exclude' => array(AAM_Core_Subject_Visitor::UID),
|
89 |
'description' => __('Restrict access to trash or permanently delete the post.', AAM_KEY)
|
90 |
),
|
91 |
'publish' => array(
|
92 |
'title' => __('Publish', AAM_KEY),
|
93 |
-
'exclude' => array(AAM_Core_Subject_Visitor::UID),
|
94 |
'description' => __('Restrict the ability to publish the post. User will be allowed only to submit the post for review.', AAM_KEY)
|
95 |
)
|
96 |
);
|
10 |
/**
|
11 |
* Post & Term option list for the Post object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/89
|
14 |
* @since 6.2.0 Enhanced HIDDEN option with more granular access controls
|
15 |
* @since 6.0.0 Initial implementation of the class
|
16 |
*
|
17 |
* @package AAM
|
18 |
+
* @version 6.5.0
|
19 |
*/
|
20 |
class AAM_Backend_View_PostOptionList
|
21 |
{
|
25 |
*
|
26 |
* @return array
|
27 |
*
|
28 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/89
|
29 |
* @since 6.2.0 Enhanced HIDDEN option with more granular access controls
|
30 |
* @since 6.0.0 Initial implementation of the method
|
31 |
*
|
32 |
* @access public
|
33 |
+
* @version 6.5.0
|
34 |
*/
|
35 |
public static function get()
|
36 |
{
|
43 |
),
|
44 |
'restricted' => array(
|
45 |
'title' => __('Restricted', AAM_KEY),
|
46 |
+
'exclude' => array('nav_menu_item'),
|
47 |
'description' => __('Restrict direct access to the post. Any attempt to access the post will be denied and redirected based on the Access Denied Redirect rule.', AAM_KEY)
|
48 |
),
|
49 |
'teaser' => array(
|
50 |
'title' => __('Teaser Message', AAM_KEY),
|
51 |
'sub' => __('Message', AAM_KEY),
|
52 |
'modal' => 'modal-teaser',
|
53 |
+
'exclude' => array('nav_menu_item'),
|
54 |
'description' => __('Dynamically replace the post content with defined plain text or HTML teaser message.', AAM_KEY)
|
55 |
),
|
56 |
'limited' => array(
|
57 |
'title' => __('Limited', AAM_KEY),
|
58 |
'sub' => __('Access Limit', AAM_KEY),
|
59 |
'modal' => 'modal-limited',
|
60 |
+
'exclude' => array(AAM_Core_Subject_Visitor::UID, 'nav_menu_item'),
|
61 |
'description' => __('Define how many times the post can be accessed. When the number of times exceeds the defined threshold, access will be denied and redirected based on the Access Denied Redirect rule.', AAM_KEY)
|
62 |
),
|
63 |
'comment' => array(
|
64 |
'title' => __('Leave Comments', AAM_KEY),
|
65 |
+
'exclude' => array('nav_menu_item'),
|
66 |
'description' => __('Restrict access to leave comments for the post.', AAM_KEY)
|
67 |
),
|
68 |
'redirected' => array(
|
69 |
'title' => __('Redirect', AAM_KEY),
|
70 |
'sub' => __('Destination', AAM_KEY),
|
71 |
'modal' => 'modal-redirect',
|
72 |
+
'exclude' => array('nav_menu_item'),
|
73 |
'description' => __('Redirect user based on the defined redirect rule when user tries to access the post. The REDIRECT option has lower precedence and will be ignored if RESTRICTED option is checked.', AAM_KEY),
|
74 |
),
|
75 |
'protected' => array(
|
76 |
'title' => __('Password Protected', AAM_KEY),
|
77 |
'sub' => __('Password', AAM_KEY),
|
78 |
'modal' => 'modal-password',
|
79 |
+
'exclude' => array('nav_menu_item'),
|
80 |
'description' => __('Protect access to the post with a password. Available with WordPress 4.7.0 or higher.', AAM_KEY)
|
81 |
),
|
82 |
'ceased' => array(
|
83 |
'title' => __('Access Expires', AAM_KEY),
|
84 |
'sub' => __('After', AAM_KEY),
|
85 |
'modal' => 'modal-cease',
|
86 |
+
'exclude' => array('nav_menu_item'),
|
87 |
'description' => __('Define when access will expire to the post.', AAM_KEY) . sprintf(__('After expiration, the access to the post will be denied and redirected based on the Access Denied Redirect rule. For more information %scheck this article%s or ', AAM_KEY), "<a href='https://aamplugin.com/article/how-to-set-expiration-date-for-any-wordpress-content' target='_blank'>", '</a>')
|
88 |
),
|
89 |
'edit' => array(
|
90 |
'title' => __('Edit', AAM_KEY),
|
91 |
+
'exclude' => array(AAM_Core_Subject_Visitor::UID, 'nav_menu_item'),
|
92 |
'description' => __('Restrict access to edit the post.', AAM_KEY)
|
93 |
),
|
94 |
'delete' => array(
|
95 |
'title' => __('Delete', AAM_KEY),
|
96 |
+
'exclude' => array(AAM_Core_Subject_Visitor::UID, 'nav_menu_item'),
|
97 |
'description' => __('Restrict access to trash or permanently delete the post.', AAM_KEY)
|
98 |
),
|
99 |
'publish' => array(
|
100 |
'title' => __('Publish', AAM_KEY),
|
101 |
+
'exclude' => array(AAM_Core_Subject_Visitor::UID, 'nav_menu_item'),
|
102 |
'description' => __('Restrict the ability to publish the post. User will be allowed only to submit the post for review.', AAM_KEY)
|
103 |
)
|
104 |
);
|
application/Backend/tmpl/index.php
CHANGED
@@ -1,8 +1,14 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<?php if (defined('AAM_KEY')) { ?>
|
4 |
-
<div class="aam-iframe-container" style="overflow: hidden; padding-top: 56.25%; position: relative; margin: 0;">
|
5 |
-
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=main'); ?>" width="100%" height="100%" style="border: 0; height: 100%; left: 0; position: absolute; top: 0; width: 100%;"></iframe>
|
6 |
-
</div>
|
7 |
<style>.wp-admin { background-color: #FFFFFF; }</style>
|
|
|
|
|
8 |
<?php }
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
+
* @since 6.0.0 Initial implementation of the template
|
5 |
+
*
|
6 |
+
* @version 6.5.0
|
7 |
+
* */
|
8 |
+
?>
|
9 |
|
10 |
<?php if (defined('AAM_KEY')) { ?>
|
|
|
|
|
|
|
11 |
<style>.wp-admin { background-color: #FFFFFF; }</style>
|
12 |
+
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=main'); ?>" width="100%" id="aam-iframe" style="border: 0; height: 100%; width: 100%; min-height: 450px;"></iframe>
|
13 |
+
<script><?php echo file_get_contents(AAM_MEDIA . '/js/iframe-resizer.js'); ?></script>
|
14 |
<?php }
|
application/Backend/tmpl/metabox/main-iframe.php
CHANGED
@@ -1,17 +1,18 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
* @since 6.4.2 Styling notification metabox
|
4 |
* @since 6.2.0 Added support & import/export modals
|
5 |
* @since 6.0.0 Initial implementation of the template
|
6 |
*
|
7 |
-
* @version 6.
|
8 |
* */
|
9 |
?>
|
10 |
|
11 |
<?php if (defined('AAM_KEY')) { ?>
|
12 |
<?php echo static::loadTemplate(__DIR__ . '/iframe-header.php'); ?>
|
13 |
|
14 |
-
<div class="wrap"
|
15 |
<?php echo static::loadTemplate(dirname(__DIR__) . '/page/current-subject.php'); ?>
|
16 |
|
17 |
<div class="row">
|
1 |
<?php
|
2 |
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
* @since 6.4.2 Styling notification metabox
|
5 |
* @since 6.2.0 Added support & import/export modals
|
6 |
* @since 6.0.0 Initial implementation of the template
|
7 |
*
|
8 |
+
* @version 6.5.0
|
9 |
* */
|
10 |
?>
|
11 |
|
12 |
<?php if (defined('AAM_KEY')) { ?>
|
13 |
<?php echo static::loadTemplate(__DIR__ . '/iframe-header.php'); ?>
|
14 |
|
15 |
+
<div class="wrap">
|
16 |
<?php echo static::loadTemplate(dirname(__DIR__) . '/page/current-subject.php'); ?>
|
17 |
|
18 |
<div class="row">
|
application/Backend/tmpl/metabox/policy-principal-metabox.php
CHANGED
@@ -1,5 +1,13 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<?php if (defined('AAM_KEY')) { ?>
|
4 |
-
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=principal&id=' . $params->post->ID); ?>" width="100%"
|
|
|
5 |
<?php }
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
+
* @since 6.0.0 Initial implementation of the template
|
5 |
+
*
|
6 |
+
* @version 6.5.0
|
7 |
+
* */
|
8 |
+
?>
|
9 |
|
10 |
<?php if (defined('AAM_KEY')) { ?>
|
11 |
+
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=principal&id=' . $params->post->ID); ?>" width="100%" style="border: 0; margin-top:0;" id="aam-iframe"></iframe>
|
12 |
+
<script><?php echo file_get_contents(AAM_MEDIA . '/js/iframe-resizer.js'); ?></script>
|
13 |
<?php }
|
application/Backend/tmpl/metabox/post-metabox.php
CHANGED
@@ -1,5 +1,13 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<?php if (defined('AAM_KEY')) { ?>
|
4 |
-
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=post&id=' . $params->post->ID . '&type=post'); ?>"
|
|
|
5 |
<?php }
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
+
* @since 6.0.0 Initial implementation of the template
|
5 |
+
*
|
6 |
+
* @version 6.5.0
|
7 |
+
* */
|
8 |
+
?>
|
9 |
|
10 |
<?php if (defined('AAM_KEY')) { ?>
|
11 |
+
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=post&id=' . $params->post->ID . '&type=post'); ?>" id="aam-iframe" width="100%" style="margin-top:10px;"></iframe>
|
12 |
+
<script><?php echo file_get_contents(AAM_MEDIA . '/js/iframe-resizer.js'); ?></script>
|
13 |
<?php }
|
application/Backend/tmpl/metabox/term-metabox.php
CHANGED
@@ -1,11 +1,19 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<?php if (defined('AAM_KEY')) { ?>
|
4 |
<tr class="form-field term-access-manager-wrap">
|
5 |
<th scope="row"><label for="term-access-manager"><?php _e('Access Manager', AAM_KEY); ?></label></th>
|
6 |
<td>
|
7 |
<div style="padding: 0px 10px; box-sizing: border-box; background-color: #FFFFFF; width: 95%;">
|
8 |
-
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=post&id=' . $params->term->term_id . '|' . $params->term->taxonomy . '|' . $params->postType . '&type=term'); ?>" width="100%"
|
|
|
9 |
</div>
|
10 |
</td>
|
11 |
</tr>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
+
* @since 6.0.0 Initial implementation of the template
|
5 |
+
*
|
6 |
+
* @version 6.5.0
|
7 |
+
* */
|
8 |
+
?>
|
9 |
|
10 |
<?php if (defined('AAM_KEY')) { ?>
|
11 |
<tr class="form-field term-access-manager-wrap">
|
12 |
<th scope="row"><label for="term-access-manager"><?php _e('Access Manager', AAM_KEY); ?></label></th>
|
13 |
<td>
|
14 |
<div style="padding: 0px 10px; box-sizing: border-box; background-color: #FFFFFF; width: 95%;">
|
15 |
+
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=post&id=' . $params->term->term_id . '|' . $params->term->taxonomy . '|' . $params->postType . '&type=term'); ?>" width="100%" id="aam-iframe" style="margin-top:10px;"></iframe>
|
16 |
+
<script><?php echo file_get_contents(AAM_MEDIA . '/js/iframe-resizer.js'); ?></script>
|
17 |
</div>
|
18 |
</td>
|
19 |
</tr>
|
application/Backend/tmpl/metabox/user-metabox.php
CHANGED
@@ -1,5 +1,13 @@
|
|
1 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
<?php if (defined('AAM_KEY')) { ?>
|
4 |
-
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=user&id=' . $params->user->ID); ?>" width="100%"
|
|
|
5 |
<?php }
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/104
|
4 |
+
* @since 6.0.0 Initial implementation of the template
|
5 |
+
*
|
6 |
+
* @version 6.5.0
|
7 |
+
* */
|
8 |
+
?>
|
9 |
|
10 |
<?php if (defined('AAM_KEY')) { ?>
|
11 |
+
<iframe src="<?php echo admin_url('admin.php?page=aam&aamframe=user&id=' . $params->user->ID); ?>" width="100%" id="aam-iframe" style="margin-top:10px;"></iframe>
|
12 |
+
<script><?php echo file_get_contents(AAM_MEDIA . '/js/iframe-resizer.js'); ?></script>
|
13 |
<?php }
|
application/Backend/tmpl/page/current-subject.php
CHANGED
@@ -1,10 +1,11 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
* @since 6.3.0 Refactored to support https://github.com/aamplugin/advanced-access-manager/issues/27
|
4 |
* @since 6.2.0 Added `aam_top_subject_actions_filter` hook
|
5 |
* @since 6.0.0 Initial implementation of the template
|
6 |
*
|
7 |
-
* @version 6.
|
8 |
* */
|
9 |
?>
|
10 |
|
@@ -13,7 +14,28 @@
|
|
13 |
<div class="col-xs-12 col-md-8">
|
14 |
<div class="aam-current-subject"></div>
|
15 |
<div class="subject-top-actions">
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
</div>
|
18 |
</div>
|
19 |
</div>
|
1 |
<?php
|
2 |
/**
|
3 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/109
|
4 |
* @since 6.3.0 Refactored to support https://github.com/aamplugin/advanced-access-manager/issues/27
|
5 |
* @since 6.2.0 Added `aam_top_subject_actions_filter` hook
|
6 |
* @since 6.0.0 Initial implementation of the template
|
7 |
*
|
8 |
+
* @version 6.5.0
|
9 |
* */
|
10 |
?>
|
11 |
|
14 |
<div class="col-xs-12 col-md-8">
|
15 |
<div class="aam-current-subject"></div>
|
16 |
<div class="subject-top-actions">
|
17 |
+
<div class="action-row">
|
18 |
+
<a href="#" id="reset-subject-settings" data-toggle="tooltip" data-placement="left" title="<?php echo __('Reset Settings', AAM_KEY); ?>"><i class="icon-ccw"></i></a>
|
19 |
+
<?php do_action('aam_top_subject_panel_action'); ?>
|
20 |
+
</div>
|
21 |
+
</div>
|
22 |
+
</div>
|
23 |
+
</div>
|
24 |
+
|
25 |
+
<div class="modal fade" id="reset-subject-modal" tabindex="-1" role="dialog">
|
26 |
+
<div class="modal-dialog modal-sm" role="document">
|
27 |
+
<div class="modal-content">
|
28 |
+
<div class="modal-header">
|
29 |
+
<button type="button" class="close" data-dismiss="modal" aria-label="<?php echo __('Close', AAM_KEY); ?>"><span aria-hidden="true">×</span></button>
|
30 |
+
<h4 class="modal-title"><?php echo __('Reset Access Settings', AAM_KEY); ?></h4>
|
31 |
+
</div>
|
32 |
+
<div class="modal-body">
|
33 |
+
<p class="alert alert-danger text-center" id="reset-subject-msg" data-message="<?php echo __('You are about to reset all access settings for the %s. Please confirm.', AAM_KEY); ?>"></p>
|
34 |
+
</div>
|
35 |
+
<div class="modal-footer">
|
36 |
+
<button type="button" class="btn btn-danger" id="reset-subject-btn"><?php echo __('Reset', AAM_KEY); ?></button>
|
37 |
+
<button type="button" class="btn btn-default" data-dismiss="modal"><?php echo __('Close', AAM_KEY); ?></button>
|
38 |
+
</div>
|
39 |
</div>
|
40 |
</div>
|
41 |
</div>
|
application/Backend/tmpl/partial/post-access-form.php
CHANGED
@@ -1,9 +1,10 @@
|
|
1 |
<?php
|
2 |
/**
|
|
|
3 |
* @since 6.2.0 Added "Hidden" modal for more granular access controls
|
4 |
* @since 6.0.0 Initial implementation of the template
|
5 |
*
|
6 |
-
* @version 6.
|
7 |
* */
|
8 |
?>
|
9 |
|
@@ -55,7 +56,7 @@
|
|
55 |
</tbody>
|
56 |
</table>
|
57 |
|
58 |
-
<div class="modal fade" id="modal-hidden" tabindex="-1" role="dialog">
|
59 |
<div class="modal-dialog" role="document">
|
60 |
<div class="modal-content">
|
61 |
<div class="modal-header">
|
@@ -109,7 +110,7 @@
|
|
109 |
</div>
|
110 |
</div>
|
111 |
|
112 |
-
<div class="modal fade" id="modal-teaser" tabindex="-1" role="dialog">
|
113 |
<div class="modal-dialog" role="document">
|
114 |
<div class="modal-content">
|
115 |
<div class="modal-header">
|
@@ -131,7 +132,7 @@
|
|
131 |
</div>
|
132 |
</div>
|
133 |
|
134 |
-
<div class="modal fade" id="modal-limited" tabindex="-1" role="dialog">
|
135 |
<div class="modal-dialog modal-sm" role="document">
|
136 |
<div class="modal-content">
|
137 |
<div class="modal-header">
|
@@ -161,7 +162,7 @@
|
|
161 |
</div>
|
162 |
</div>
|
163 |
|
164 |
-
<div class="modal fade" id="modal-redirect" tabindex="-1" role="dialog">
|
165 |
<div class="modal-dialog" role="document">
|
166 |
<div class="modal-content">
|
167 |
<div class="modal-header">
|
@@ -234,7 +235,7 @@
|
|
234 |
</div>
|
235 |
</div>
|
236 |
|
237 |
-
<div class="modal fade" id="modal-password" tabindex="-1" role="dialog">
|
238 |
<div class="modal-dialog modal-sm" role="document">
|
239 |
<div class="modal-content">
|
240 |
<div class="modal-header">
|
@@ -255,7 +256,7 @@
|
|
255 |
</div>
|
256 |
</div>
|
257 |
|
258 |
-
<div class="modal fade" id="modal-cease" tabindex="-1" role="dialog">
|
259 |
<div class="modal-dialog" role="document">
|
260 |
<div class="modal-content">
|
261 |
<div class="modal-header">
|
1 |
<?php
|
2 |
/**
|
3 |
+
* @since 6.5.0 Fixed https://github.com/aamplugin/advanced-access-manager/issues/107
|
4 |
* @since 6.2.0 Added "Hidden" modal for more granular access controls
|
5 |
* @since 6.0.0 Initial implementation of the template
|
6 |
*
|
7 |
+
* @version 6.5.0
|
8 |
* */
|
9 |
?>
|
10 |
|
56 |
</tbody>
|
57 |
</table>
|
58 |
|
59 |
+
<div class="modal fade" data-backdrop="false" id="modal-hidden" tabindex="-1" role="dialog">
|
60 |
<div class="modal-dialog" role="document">
|
61 |
<div class="modal-content">
|
62 |
<div class="modal-header">
|
110 |
</div>
|
111 |
</div>
|
112 |
|
113 |
+
<div class="modal fade" data-backdrop="false" id="modal-teaser" tabindex="-1" role="dialog">
|
114 |
<div class="modal-dialog" role="document">
|
115 |
<div class="modal-content">
|
116 |
<div class="modal-header">
|
132 |
</div>
|
133 |
</div>
|
134 |
|
135 |
+
<div class="modal fade" data-backdrop="false" id="modal-limited" tabindex="-1" role="dialog">
|
136 |
<div class="modal-dialog modal-sm" role="document">
|
137 |
<div class="modal-content">
|
138 |
<div class="modal-header">
|
162 |
</div>
|
163 |
</div>
|
164 |
|
165 |
+
<div class="modal fade" data-backdrop="false" id="modal-redirect" tabindex="-1" role="dialog">
|
166 |
<div class="modal-dialog" role="document">
|
167 |
<div class="modal-content">
|
168 |
<div class="modal-header">
|
235 |
</div>
|
236 |
</div>
|
237 |
|
238 |
+
<div class="modal fade" data-backdrop="false" id="modal-password" tabindex="-1" role="dialog">
|
239 |
<div class="modal-dialog modal-sm" role="document">
|
240 |
<div class="modal-content">
|
241 |
<div class="modal-header">
|
256 |
</div>
|
257 |
</div>
|
258 |
|
259 |
+
<div class="modal fade" data-backdrop="false" id="modal-cease" tabindex="-1" role="dialog">
|
260 |
<div class="modal-dialog" role="document">
|
261 |
<div class="modal-content">
|
262 |
<div class="modal-header">
|
application/Core/Object/Menu.php
CHANGED
@@ -10,12 +10,13 @@
|
|
10 |
/**
|
11 |
* Menu object
|
12 |
*
|
|
|
13 |
* @since 6.2.2 Added new filter `aam_backend_menu_is_restricted_filter` so it can
|
14 |
* be integrated with access policy wildcard
|
15 |
* @since 6.0.0 Initial implementation of the method
|
16 |
*
|
17 |
* @package AAM
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Core_Object_Menu extends AAM_Core_Object
|
21 |
{
|
@@ -29,7 +30,11 @@ class AAM_Core_Object_Menu extends AAM_Core_Object
|
|
29 |
|
30 |
/**
|
31 |
* @inheritdoc
|
32 |
-
*
|
|
|
|
|
|
|
|
|
33 |
*/
|
34 |
protected function initialize()
|
35 |
{
|
@@ -41,7 +46,13 @@ class AAM_Core_Object_Menu extends AAM_Core_Object
|
|
41 |
// example, this hooks is used by Access Policy service
|
42 |
$option = apply_filters('aam_menu_object_option_filter', $option, $this);
|
43 |
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
}
|
46 |
|
47 |
/**
|
@@ -55,12 +66,12 @@ class AAM_Core_Object_Menu extends AAM_Core_Object
|
|
55 |
* @since 6.0.0 Initial implementation of the method
|
56 |
*
|
57 |
* @access public
|
58 |
-
* @version 6.
|
59 |
*/
|
60 |
public function isRestricted($menu)
|
61 |
{
|
62 |
// Decode URL in case of any special characters like &
|
63 |
-
$s = htmlspecialchars_decode($menu);
|
64 |
|
65 |
if (!in_array($s, array('index.php', 'menu-index.php'))) {
|
66 |
$options = $this->getOption();
|
10 |
/**
|
11 |
* Menu object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
14 |
* @since 6.2.2 Added new filter `aam_backend_menu_is_restricted_filter` so it can
|
15 |
* be integrated with access policy wildcard
|
16 |
* @since 6.0.0 Initial implementation of the method
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Core_Object_Menu extends AAM_Core_Object
|
22 |
{
|
30 |
|
31 |
/**
|
32 |
* @inheritdoc
|
33 |
+
*
|
34 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
35 |
+
* @since 6.0.0 Initial implementation of the method
|
36 |
+
*
|
37 |
+
* @version 6.5.0
|
38 |
*/
|
39 |
protected function initialize()
|
40 |
{
|
46 |
// example, this hooks is used by Access Policy service
|
47 |
$option = apply_filters('aam_menu_object_option_filter', $option, $this);
|
48 |
|
49 |
+
// Making sure that all menu keys are lowercase
|
50 |
+
$normalized = array();
|
51 |
+
foreach($option as $key => $val) {
|
52 |
+
$normalized[strtolower($key)] = $val;
|
53 |
+
}
|
54 |
+
|
55 |
+
$this->setOption(is_array($normalized) ? $normalized : array());
|
56 |
}
|
57 |
|
58 |
/**
|
66 |
* @since 6.0.0 Initial implementation of the method
|
67 |
*
|
68 |
* @access public
|
69 |
+
* @version 6.5.0
|
70 |
*/
|
71 |
public function isRestricted($menu)
|
72 |
{
|
73 |
// Decode URL in case of any special characters like &
|
74 |
+
$s = strtolower(htmlspecialchars_decode($menu));
|
75 |
|
76 |
if (!in_array($s, array('index.php', 'menu-index.php'))) {
|
77 |
$options = $this->getOption();
|
application/Core/Object/Metabox.php
CHANGED
@@ -10,11 +10,12 @@
|
|
10 |
/**
|
11 |
* Metabox object
|
12 |
*
|
|
|
13 |
* @since 6.2.2 Added `aam_metabox_is_hidden_filter` filter
|
14 |
* @since 6.0.0 Initial implementation of the method
|
15 |
*
|
16 |
* @package AAM
|
17 |
-
* @version 6.
|
18 |
*/
|
19 |
class AAM_Core_Object_Metabox extends AAM_Core_Object
|
20 |
{
|
@@ -28,7 +29,11 @@ class AAM_Core_Object_Metabox extends AAM_Core_Object
|
|
28 |
|
29 |
/**
|
30 |
* @inheritdoc
|
31 |
-
*
|
|
|
|
|
|
|
|
|
32 |
*/
|
33 |
protected function initialize()
|
34 |
{
|
@@ -40,7 +45,13 @@ class AAM_Core_Object_Metabox extends AAM_Core_Object
|
|
40 |
// example, this hooks is used by Access Policy service
|
41 |
$option = apply_filters('aam_metabox_object_option_filter', $option, $this);
|
42 |
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
}
|
45 |
|
46 |
/**
|
10 |
/**
|
11 |
* Metabox object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
14 |
* @since 6.2.2 Added `aam_metabox_is_hidden_filter` filter
|
15 |
* @since 6.0.0 Initial implementation of the method
|
16 |
*
|
17 |
* @package AAM
|
18 |
+
* @version 6.5.0
|
19 |
*/
|
20 |
class AAM_Core_Object_Metabox extends AAM_Core_Object
|
21 |
{
|
29 |
|
30 |
/**
|
31 |
* @inheritdoc
|
32 |
+
*
|
33 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
34 |
+
* @since 6.0.0 Initial implementation of the method
|
35 |
+
*
|
36 |
+
* @version 6.5.0
|
37 |
*/
|
38 |
protected function initialize()
|
39 |
{
|
45 |
// example, this hooks is used by Access Policy service
|
46 |
$option = apply_filters('aam_metabox_object_option_filter', $option, $this);
|
47 |
|
48 |
+
// Making sure that all menu keys are lowercase
|
49 |
+
$normalized = array();
|
50 |
+
foreach($option as $key => $val) {
|
51 |
+
$normalized[strtolower($key)] = $val;
|
52 |
+
}
|
53 |
+
|
54 |
+
$this->setOption(is_array($normalized) ? $normalized : array());
|
55 |
}
|
56 |
|
57 |
/**
|
application/Core/Object/Route.php
CHANGED
@@ -10,12 +10,13 @@
|
|
10 |
/**
|
11 |
* API route object
|
12 |
*
|
|
|
13 |
* @since 6.4.0 Enhancement https://github.com/aamplugin/advanced-access-manager/issues/56
|
14 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
15 |
* @since 6.0.0 Initial implementation of the class
|
16 |
*
|
17 |
* @package AAM
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Core_Object_Route extends AAM_Core_Object
|
21 |
{
|
@@ -30,10 +31,11 @@ class AAM_Core_Object_Route extends AAM_Core_Object
|
|
30 |
/**
|
31 |
* @inheritdoc
|
32 |
*
|
|
|
33 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
34 |
* @since 6.0.0 Initial implementation of the method
|
35 |
*
|
36 |
-
* @version 6.
|
37 |
*/
|
38 |
protected function initialize()
|
39 |
{
|
@@ -45,7 +47,13 @@ class AAM_Core_Object_Route extends AAM_Core_Object
|
|
45 |
// example, this hooks is used by Access Policy service
|
46 |
$option = apply_filters('aam_route_object_option_filter', $option, $this);
|
47 |
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
10 |
/**
|
11 |
* API route object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
14 |
* @since 6.4.0 Enhancement https://github.com/aamplugin/advanced-access-manager/issues/56
|
15 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Core_Object_Route extends AAM_Core_Object
|
22 |
{
|
31 |
/**
|
32 |
* @inheritdoc
|
33 |
*
|
34 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
35 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
36 |
* @since 6.0.0 Initial implementation of the method
|
37 |
*
|
38 |
+
* @version 6.5.0
|
39 |
*/
|
40 |
protected function initialize()
|
41 |
{
|
47 |
// example, this hooks is used by Access Policy service
|
48 |
$option = apply_filters('aam_route_object_option_filter', $option, $this);
|
49 |
|
50 |
+
// Making sure that all menu keys are lowercase
|
51 |
+
$normalized = array();
|
52 |
+
foreach($option as $key => $val) {
|
53 |
+
$normalized[strtolower($key)] = $val;
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->setOption(is_array($normalized) ? $normalized : array());
|
57 |
}
|
58 |
|
59 |
/**
|
application/Core/Object/Toolbar.php
CHANGED
@@ -10,12 +10,13 @@
|
|
10 |
/**
|
11 |
* Admin toolbar object
|
12 |
*
|
|
|
13 |
* @since 6.2.2 Added support for the new `aam_toolbar_is_hidden_filter` filter
|
14 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
15 |
* @since 6.0.0 Initial implementation of the class
|
16 |
*
|
17 |
* @package AAM
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Core_Object_Toolbar extends AAM_Core_Object
|
21 |
{
|
@@ -30,10 +31,11 @@ class AAM_Core_Object_Toolbar extends AAM_Core_Object
|
|
30 |
/**
|
31 |
* @inheritdoc
|
32 |
*
|
|
|
33 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
34 |
* @since 6.0.0 Initial implementation of the method
|
35 |
*
|
36 |
-
* @version 6.
|
37 |
*/
|
38 |
protected function initialize()
|
39 |
{
|
@@ -45,7 +47,13 @@ class AAM_Core_Object_Toolbar extends AAM_Core_Object
|
|
45 |
// example, this hooks is used by Access Policy service
|
46 |
$option = apply_filters('aam_toolbar_object_option_filter', $option, $this);
|
47 |
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -66,6 +74,7 @@ class AAM_Core_Object_Toolbar extends AAM_Core_Object
|
|
66 |
public function isHidden($item, $both = false)
|
67 |
{
|
68 |
$options = $this->getOption();
|
|
|
69 |
|
70 |
// Step #1. Check if toolbar item is directly restricted
|
71 |
$direct = !empty($options[$item]);
|
10 |
/**
|
11 |
* Admin toolbar object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
14 |
* @since 6.2.2 Added support for the new `aam_toolbar_is_hidden_filter` filter
|
15 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Core_Object_Toolbar extends AAM_Core_Object
|
22 |
{
|
31 |
/**
|
32 |
* @inheritdoc
|
33 |
*
|
34 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
35 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
36 |
* @since 6.0.0 Initial implementation of the method
|
37 |
*
|
38 |
+
* @version 6.5.0
|
39 |
*/
|
40 |
protected function initialize()
|
41 |
{
|
47 |
// example, this hooks is used by Access Policy service
|
48 |
$option = apply_filters('aam_toolbar_object_option_filter', $option, $this);
|
49 |
|
50 |
+
// Making sure that all menu keys are lowercase
|
51 |
+
$normalized = array();
|
52 |
+
foreach($option as $key => $val) {
|
53 |
+
$normalized[strtolower($key)] = $val;
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->setOption(is_array($normalized) ? $normalized : array());
|
57 |
}
|
58 |
|
59 |
/**
|
74 |
public function isHidden($item, $both = false)
|
75 |
{
|
76 |
$options = $this->getOption();
|
77 |
+
$item = strtolower($item);
|
78 |
|
79 |
// Step #1. Check if toolbar item is directly restricted
|
80 |
$direct = !empty($options[$item]);
|
application/Core/Object/Uri.php
CHANGED
@@ -10,12 +10,13 @@
|
|
10 |
/**
|
11 |
* URI object
|
12 |
*
|
|
|
13 |
* @since 6.3.0 Fixed bug where home page could not be protected
|
14 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
15 |
* @since 6.0.0 Initial implementation of the class
|
16 |
*
|
17 |
* @package AAM
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Core_Object_Uri extends AAM_Core_Object
|
21 |
{
|
@@ -30,10 +31,11 @@ class AAM_Core_Object_Uri extends AAM_Core_Object
|
|
30 |
/**
|
31 |
* @inheritdoc
|
32 |
*
|
|
|
33 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
34 |
* @since 6.0.0 Initial implementation of the method
|
35 |
*
|
36 |
-
* @version 6.
|
37 |
*/
|
38 |
protected function initialize()
|
39 |
{
|
@@ -45,7 +47,13 @@ class AAM_Core_Object_Uri extends AAM_Core_Object
|
|
45 |
// example, this hooks is used by Access Policy service
|
46 |
$option = apply_filters('aam_uri_object_option_filter', $option, $this);
|
47 |
|
48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -67,6 +75,9 @@ class AAM_Core_Object_Uri extends AAM_Core_Object
|
|
67 |
{
|
68 |
$match = null;
|
69 |
|
|
|
|
|
|
|
70 |
foreach ($this->normalizeOrder() as $uri => $rule) {
|
71 |
$meta = wp_parse_url($uri);
|
72 |
$out = array();
|
@@ -75,8 +86,7 @@ class AAM_Core_Object_Uri extends AAM_Core_Object
|
|
75 |
parse_str($meta['query'], $out);
|
76 |
}
|
77 |
|
78 |
-
// Normalize the
|
79 |
-
$s = rtrim($s, '/');
|
80 |
$path = rtrim(isset($meta['path']) ? $meta['path'] : '', '/');
|
81 |
|
82 |
// Check if two URIs are equal
|
10 |
/**
|
11 |
* URI object
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
14 |
* @since 6.3.0 Fixed bug where home page could not be protected
|
15 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
* @package AAM
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Core_Object_Uri extends AAM_Core_Object
|
22 |
{
|
31 |
/**
|
32 |
* @inheritdoc
|
33 |
*
|
34 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/105
|
35 |
* @since 6.1.0 Fixed bug with incorrectly halted inheritance mechanism
|
36 |
* @since 6.0.0 Initial implementation of the method
|
37 |
*
|
38 |
+
* @version 6.5.0
|
39 |
*/
|
40 |
protected function initialize()
|
41 |
{
|
47 |
// example, this hooks is used by Access Policy service
|
48 |
$option = apply_filters('aam_uri_object_option_filter', $option, $this);
|
49 |
|
50 |
+
// Making sure that all menu keys are lowercase
|
51 |
+
$normalized = array();
|
52 |
+
foreach($option as $key => $val) {
|
53 |
+
$normalized[strtolower($key)] = $val;
|
54 |
+
}
|
55 |
+
|
56 |
+
$this->setOption(is_array($normalized) ? $normalized : array());
|
57 |
}
|
58 |
|
59 |
/**
|
75 |
{
|
76 |
$match = null;
|
77 |
|
78 |
+
// Normalize the search URI
|
79 |
+
$s = strtolower(rtrim($s, '/'));
|
80 |
+
|
81 |
foreach ($this->normalizeOrder() as $uri => $rule) {
|
82 |
$meta = wp_parse_url($uri);
|
83 |
$out = array();
|
86 |
parse_str($meta['query'], $out);
|
87 |
}
|
88 |
|
89 |
+
// Normalize the target URI
|
|
|
90 |
$path = rtrim(isset($meta['path']) ? $meta['path'] : '', '/');
|
91 |
|
92 |
// Check if two URIs are equal
|
application/Service/AccessPolicy.php
CHANGED
@@ -614,7 +614,7 @@ class AAM_Service_AccessPolicy
|
|
614 |
$type = (isset($value['type']) ? $value['type'] : 'default');
|
615 |
|
616 |
// Populate the object
|
617 |
-
$parsed["{$area}.redirect.type"]
|
618 |
|
619 |
if (!empty($value['destination'])) {
|
620 |
$parsed["{$area}.redirect.{$type}"] = $value['destination'];
|
614 |
$type = (isset($value['type']) ? $value['type'] : 'default');
|
615 |
|
616 |
// Populate the object
|
617 |
+
$parsed["{$area}.redirect.type"] = $type;
|
618 |
|
619 |
if (!empty($value['destination'])) {
|
620 |
$parsed["{$area}.redirect.{$type}"] = $value['destination'];
|
application/Service/Jwt.php
CHANGED
@@ -10,6 +10,8 @@
|
|
10 |
/**
|
11 |
* JWT Token service
|
12 |
*
|
|
|
|
|
13 |
* @since 6.4.0 Added the ability to issue refreshable token via API.
|
14 |
* Enhanced https://github.com/aamplugin/advanced-access-manager/issues/71
|
15 |
* @since 6.3.0 Fixed incompatibility with other plugins that check for RESTful error
|
@@ -18,7 +20,7 @@
|
|
18 |
* @since 6.0.0 Initial implementation of the class
|
19 |
*
|
20 |
* @package AAM
|
21 |
-
* @version 6.
|
22 |
*/
|
23 |
class AAM_Service_Jwt
|
24 |
{
|
@@ -621,8 +623,11 @@ class AAM_Service_Jwt
|
|
621 |
*
|
622 |
* @return void
|
623 |
*
|
|
|
|
|
|
|
624 |
* @access public
|
625 |
-
* @version 6.
|
626 |
*/
|
627 |
public function authenticateUser()
|
628 |
{
|
@@ -646,9 +651,15 @@ class AAM_Service_Jwt
|
|
646 |
|
647 |
do_action('wp_login', $user->user_login, $user);
|
648 |
|
649 |
-
//
|
650 |
-
|
651 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
}
|
653 |
}
|
654 |
|
@@ -693,8 +704,11 @@ class AAM_Service_Jwt
|
|
693 |
*
|
694 |
* @return object|null
|
695 |
*
|
|
|
|
|
|
|
696 |
* @access protected
|
697 |
-
* @version 6.
|
698 |
*/
|
699 |
protected function extractToken()
|
700 |
{
|
@@ -706,7 +720,14 @@ class AAM_Service_Jwt
|
|
706 |
foreach ($container as $method) {
|
707 |
switch (strtolower(trim($method))) {
|
708 |
case 'header':
|
709 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
710 |
break;
|
711 |
|
712 |
case 'cookie':
|
10 |
/**
|
11 |
* JWT Token service
|
12 |
*
|
13 |
+
* @since 6.5.0 Enhanced https://github.com/aamplugin/advanced-access-manager/issues/99
|
14 |
+
* Fixed https://github.com/aamplugin/advanced-access-manager/issues/98
|
15 |
* @since 6.4.0 Added the ability to issue refreshable token via API.
|
16 |
* Enhanced https://github.com/aamplugin/advanced-access-manager/issues/71
|
17 |
* @since 6.3.0 Fixed incompatibility with other plugins that check for RESTful error
|
20 |
* @since 6.0.0 Initial implementation of the class
|
21 |
*
|
22 |
* @package AAM
|
23 |
+
* @version 6.5.0
|
24 |
*/
|
25 |
class AAM_Service_Jwt
|
26 |
{
|
623 |
*
|
624 |
* @return void
|
625 |
*
|
626 |
+
* @since 6.5.0 Fixed https://github.com/aamplugin/advanced-access-manager/issues/98
|
627 |
+
* @since 6.0.0 Initial implementation of the method
|
628 |
+
*
|
629 |
* @access public
|
630 |
+
* @version 6.5.0
|
631 |
*/
|
632 |
public function authenticateUser()
|
633 |
{
|
651 |
|
652 |
do_action('wp_login', $user->user_login, $user);
|
653 |
|
654 |
+
// Determine where to redirect user and safely redirect & finally just
|
655 |
+
// redirect user to the homepage
|
656 |
+
wp_safe_redirect(apply_filters('login_redirect', admin_url(), '', $user));
|
657 |
+
|
658 |
+
// Halt the execution. Redirect should carry user away if this is not
|
659 |
+
// a CLI execution (e.g. Unit Test)
|
660 |
+
if (php_sapi_name() !== 'cli') {
|
661 |
+
exit;
|
662 |
+
}
|
663 |
}
|
664 |
}
|
665 |
|
704 |
*
|
705 |
* @return object|null
|
706 |
*
|
707 |
+
* @since 6.5.0 Enhanced https://github.com/aamplugin/advanced-access-manager/issues/99
|
708 |
+
* @since 6.0.0 Initial implementation of the method
|
709 |
+
*
|
710 |
* @access protected
|
711 |
+
* @version 6.5.0
|
712 |
*/
|
713 |
protected function extractToken()
|
714 |
{
|
720 |
foreach ($container as $method) {
|
721 |
switch (strtolower(trim($method))) {
|
722 |
case 'header':
|
723 |
+
// Fallback for Authorization header
|
724 |
+
$jwt1 = $this->getFromServer('HTTP_AUTHORIZATION');
|
725 |
+
$jwt2 = $this->getFromServer(AAM_Core_Config::get(
|
726 |
+
'authentication.jwt.header',
|
727 |
+
'HTTP_AUTHENTICATION'
|
728 |
+
));
|
729 |
+
|
730 |
+
$jwt = (!empty($jwt1) ? $jwt1 : $jwt2);
|
731 |
break;
|
732 |
|
733 |
case 'cookie':
|
application/Service/LoginRedirect.php
CHANGED
@@ -12,10 +12,11 @@
|
|
12 |
*
|
13 |
* @package AAM
|
14 |
*
|
|
|
15 |
* @since 6.4.0 Fixed https://github.com/aamplugin/advanced-access-manager/issues/76
|
16 |
* @since 6.0.0 Initial implementation of the class
|
17 |
*
|
18 |
-
* @version 6.
|
19 |
*/
|
20 |
class AAM_Service_LoginRedirect
|
21 |
{
|
@@ -150,12 +151,17 @@ class AAM_Service_LoginRedirect
|
|
150 |
*
|
151 |
* @return string
|
152 |
*
|
|
|
|
|
|
|
153 |
* @access public
|
154 |
-
* @version 6.
|
155 |
*/
|
156 |
public function getLoginRedirect($redirect, $requested, $user)
|
157 |
{
|
158 |
-
if (is_a($user, 'WP_User')
|
|
|
|
|
159 |
$requested = $this->getUserRedirect($user);
|
160 |
$redirect = (!empty($requested) ? $requested : $redirect);
|
161 |
}
|
12 |
*
|
13 |
* @package AAM
|
14 |
*
|
15 |
+
* @since 6.5.0 Fixed https://github.com/aamplugin/advanced-access-manager/issues/98
|
16 |
* @since 6.4.0 Fixed https://github.com/aamplugin/advanced-access-manager/issues/76
|
17 |
* @since 6.0.0 Initial implementation of the class
|
18 |
*
|
19 |
+
* @version 6.5.0
|
20 |
*/
|
21 |
class AAM_Service_LoginRedirect
|
22 |
{
|
151 |
*
|
152 |
* @return string
|
153 |
*
|
154 |
+
* @since 6.5.0 Fixed the way login redirect is computed
|
155 |
+
* @since 6.0.0 Initial implementation of the method
|
156 |
+
*
|
157 |
* @access public
|
158 |
+
* @version 6.5.0
|
159 |
*/
|
160 |
public function getLoginRedirect($redirect, $requested, $user)
|
161 |
{
|
162 |
+
if (is_a($user, 'WP_User')
|
163 |
+
&& in_array($requested, array('', admin_url()), true)
|
164 |
+
) {
|
165 |
$requested = $this->getUserRedirect($user);
|
166 |
$redirect = (!empty($requested) ? $requested : $redirect);
|
167 |
}
|
application/Shortcode/Handler/Content.php
CHANGED
@@ -5,15 +5,16 @@
|
|
5 |
* LICENSE: This file is subject to the terms and conditions defined in *
|
6 |
* file 'license.txt', which is part of this source code package. *
|
7 |
* ======================================================================
|
8 |
-
*
|
9 |
-
* @version 6.0.0
|
10 |
*/
|
11 |
|
12 |
/**
|
13 |
* AAM shortcode handler for content visibility
|
14 |
*
|
|
|
|
|
|
|
15 |
* @package AAM
|
16 |
-
* @version 6.
|
17 |
*/
|
18 |
class AAM_Shortcode_Handler_Content
|
19 |
implements AAM_Core_Contract_ShortcodeInterface
|
@@ -43,9 +44,9 @@ class AAM_Shortcode_Handler_Content
|
|
43 |
* Initialize shortcode decorator
|
44 |
*
|
45 |
* Expecting attributes in $args are:
|
46 |
-
* "hide" => comma-separated list of role
|
47 |
-
* "show" => comma-separated list of role
|
48 |
-
* "limit" => comma-separated list of role
|
49 |
* "message" => message to show if "limit" is defined
|
50 |
* "callback" => callback function that returns message if "limit" is defined
|
51 |
*
|
@@ -68,8 +69,11 @@ class AAM_Shortcode_Handler_Content
|
|
68 |
*
|
69 |
* @return string
|
70 |
*
|
|
|
|
|
|
|
71 |
* @access public
|
72 |
-
* @version 6.
|
73 |
*/
|
74 |
public function run()
|
75 |
{
|
@@ -77,11 +81,21 @@ class AAM_Shortcode_Handler_Content
|
|
77 |
if (get_current_user_id()) {
|
78 |
$roles = array_merge(AAM::getUser()->roles);
|
79 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
if (AAM::api()->getConfig('core.settings.multiSubject', false)) {
|
81 |
$parts = array_merge(array((string) AAM::getUser()->ID), $roles);
|
82 |
} else {
|
83 |
$parts = array((string) AAM::getUser()->ID, array_shift($roles));
|
84 |
}
|
|
|
|
|
85 |
} else {
|
86 |
$parts = array('visitor');
|
87 |
}
|
5 |
* LICENSE: This file is subject to the terms and conditions defined in *
|
6 |
* file 'license.txt', which is part of this source code package. *
|
7 |
* ======================================================================
|
|
|
|
|
8 |
*/
|
9 |
|
10 |
/**
|
11 |
* AAM shortcode handler for content visibility
|
12 |
*
|
13 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/96
|
14 |
+
* @since 6.0.0 Initial implementation of the class
|
15 |
+
*
|
16 |
* @package AAM
|
17 |
+
* @version 6.5.0
|
18 |
*/
|
19 |
class AAM_Shortcode_Handler_Content
|
20 |
implements AAM_Core_Contract_ShortcodeInterface
|
44 |
* Initialize shortcode decorator
|
45 |
*
|
46 |
* Expecting attributes in $args are:
|
47 |
+
* "hide" => comma-separated list of role, caps, user IDs to hide content
|
48 |
+
* "show" => comma-separated list of role, caps, user IDs to show content
|
49 |
+
* "limit" => comma-separated list of role, caps, user IDs to limit content
|
50 |
* "message" => message to show if "limit" is defined
|
51 |
* "callback" => callback function that returns message if "limit" is defined
|
52 |
*
|
69 |
*
|
70 |
* @return string
|
71 |
*
|
72 |
+
* @since 6.5.0 https://github.com/aamplugin/advanced-access-manager/issues/96
|
73 |
+
* @since 6.0.0 Initial implementation of the method
|
74 |
+
*
|
75 |
* @access public
|
76 |
+
* @version 6.5.0
|
77 |
*/
|
78 |
public function run()
|
79 |
{
|
81 |
if (get_current_user_id()) {
|
82 |
$roles = array_merge(AAM::getUser()->roles);
|
83 |
|
84 |
+
// Build the list of assigned capabilities
|
85 |
+
$caps = array();
|
86 |
+
foreach(AAM::getUser()->allcaps as $key => $effect) {
|
87 |
+
if (!empty($effect)) {
|
88 |
+
$caps[] = $key;
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
if (AAM::api()->getConfig('core.settings.multiSubject', false)) {
|
93 |
$parts = array_merge(array((string) AAM::getUser()->ID), $roles);
|
94 |
} else {
|
95 |
$parts = array((string) AAM::getUser()->ID, array_shift($roles));
|
96 |
}
|
97 |
+
|
98 |
+
$parts = array_merge($parts, $caps);
|
99 |
} else {
|
100 |
$parts = array('visitor');
|
101 |
}
|
media/css/aam.css
CHANGED
@@ -110,6 +110,7 @@
|
|
110 |
.icon-tag:before { content: '\e821' !important; } /* 'î ¡' */
|
111 |
.icon-file-code:before { content: '\f1c9' !important; } /* 'ï' */
|
112 |
.icon-chat:before { content: '\e825' !important; } /* 'î ¥' */
|
|
|
113 |
|
114 |
.icon-image-40 {
|
115 |
font-size: 40px;
|
@@ -425,12 +426,21 @@ a.btn:focus, a.btn:active {
|
|
425 |
top: 15px;
|
426 |
right: 30px;
|
427 |
font-size: 1.5em;
|
428 |
-
color
|
429 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
430 |
}
|
431 |
|
432 |
.subject-top-actions a > i {
|
433 |
color: #FFFFFF !important;
|
|
|
434 |
}
|
435 |
|
436 |
.btn-group-xs > .btn, .btn-xs {
|
@@ -920,9 +930,10 @@ input[type=radio]:checked + label:before {
|
|
920 |
display: block;
|
921 |
font-size: 0.8em;
|
922 |
font-style: normal;
|
|
|
923 |
}
|
924 |
|
925 |
-
.aam-row-subtitle b {
|
926 |
color: #777777;
|
927 |
}
|
928 |
|
110 |
.icon-tag:before { content: '\e821' !important; } /* 'î ¡' */
|
111 |
.icon-file-code:before { content: '\f1c9' !important; } /* 'ï' */
|
112 |
.icon-chat:before { content: '\e825' !important; } /* 'î ¥' */
|
113 |
+
.icon-ccw:before { content: '\e827' !important; } /* 'î §' */
|
114 |
|
115 |
.icon-image-40 {
|
116 |
font-size: 40px;
|
426 |
top: 15px;
|
427 |
right: 30px;
|
428 |
font-size: 1.5em;
|
429 |
+
color:#FFF;
|
430 |
+
display: table;
|
431 |
+
}
|
432 |
+
|
433 |
+
.subject-top-actions .action-row {
|
434 |
+
display: table-row;
|
435 |
+
}
|
436 |
+
|
437 |
+
.subject-top-actions .action-row div {
|
438 |
+
display: inline-block;
|
439 |
}
|
440 |
|
441 |
.subject-top-actions a > i {
|
442 |
color: #FFFFFF !important;
|
443 |
+
display: table-cell;
|
444 |
}
|
445 |
|
446 |
.btn-group-xs > .btn, .btn-xs {
|
930 |
display: block;
|
931 |
font-size: 0.8em;
|
932 |
font-style: normal;
|
933 |
+
color: #437798;
|
934 |
}
|
935 |
|
936 |
+
.aam-row-subtitle b, .aam-row-subtitle strong {
|
937 |
color: #777777;
|
938 |
}
|
939 |
|
media/font/fontello.eot
CHANGED
Binary file
|
media/font/fontello.svg
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0" standalone="no"?>
|
2 |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
-
<metadata>Copyright (C)
|
5 |
<defs>
|
6 |
<font id="fontello" horiz-adv-x="1000" >
|
7 |
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
@@ -84,6 +84,8 @@
|
|
84 |
|
85 |
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 242 68 187 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
86 |
|
|
|
|
|
87 |
<glyph glyph-name="check-empty" unicode="" d="M625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
|
88 |
|
89 |
<glyph glyph-name="doc-text-inv" unicode="" d="M819 584q8-7 16-20h-264v264q13-8 21-16z m-265-91h303v-589q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h446v-304q0-22 16-38t38-15z m89-411v36q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v36q0 7-5 12t-13 5h-393q-8 0-13-5t-5-12v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v35q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-35q0-8 5-13t13-5h393q8 0 13 5t5 13z" horiz-adv-x="857.1" />
|
1 |
<?xml version="1.0" standalone="no"?>
|
2 |
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3 |
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Copyright (C) 2020 by original authors @ fontello.com</metadata>
|
5 |
<defs>
|
6 |
<font id="fontello" horiz-adv-x="1000" >
|
7 |
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
84 |
|
85 |
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 242 68 187 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
86 |
|
87 |
+
<glyph glyph-name="ccw" unicode="" d="M857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z" horiz-adv-x="857.1" />
|
88 |
+
|
89 |
<glyph glyph-name="check-empty" unicode="" d="M625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />
|
90 |
|
91 |
<glyph glyph-name="doc-text-inv" unicode="" d="M819 584q8-7 16-20h-264v264q13-8 21-16z m-265-91h303v-589q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h446v-304q0-22 16-38t38-15z m89-411v36q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v36q0 7-5 12t-13 5h-393q-8 0-13-5t-5-12v-36q0-8 5-13t13-5h393q8 0 13 5t5 13z m0 143v35q0 8-5 13t-13 5h-393q-8 0-13-5t-5-13v-35q0-8 5-13t13-5h393q8 0 13 5t5 13z" horiz-adv-x="857.1" />
|
media/font/fontello.ttf
CHANGED
Binary file
|
media/font/fontello.woff
CHANGED
Binary file
|
media/font/fontello.woff2
CHANGED
Binary file
|
media/js/aam.js
CHANGED
@@ -38,7 +38,7 @@
|
|
38 |
function isCurrent(id) {
|
39 |
var subject = getAAM().getSubject();
|
40 |
|
41 |
-
return (getAAM().isUI('
|
42 |
}
|
43 |
|
44 |
/**
|
@@ -186,9 +186,11 @@
|
|
186 |
$('td:eq(0) span', row).replaceWith(
|
187 |
'<strong class="aam-highlight">' + title + '</strong>'
|
188 |
);
|
|
|
189 |
$('i.icon-cog', container).attr(
|
190 |
-
'class', 'aam-row-action icon-
|
191 |
);
|
|
|
192 |
if (getAAM().isUI('main')) {
|
193 |
$('i.icon-cog', container).attr(
|
194 |
'class', 'aam-row-action icon-spin4 animate-spin'
|
@@ -205,6 +207,9 @@
|
|
205 |
$('#content-object-id').val(),
|
206 |
$(this)
|
207 |
]);
|
|
|
|
|
|
|
208 |
});
|
209 |
}
|
210 |
}
|
@@ -515,7 +520,15 @@
|
|
515 |
},
|
516 |
success: function (response) {
|
517 |
if (response.status === 'success') {
|
518 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
} else {
|
520 |
getAAM().notification('danger', getAAM().__('Failed to delete role'));
|
521 |
}
|
@@ -569,7 +582,7 @@
|
|
569 |
function isCurrent(id) {
|
570 |
var subject = getAAM().getSubject();
|
571 |
|
572 |
-
return (subject.type === 'user' && parseInt(subject.id) === id);
|
573 |
}
|
574 |
|
575 |
/**
|
@@ -764,8 +777,8 @@
|
|
764 |
}
|
765 |
|
766 |
//add subtitle
|
767 |
-
var expire = (data[5] ? '; <i class="icon-clock"></i>' : '');
|
768 |
-
var role = (data[1] ? `${getAAM().__('Role')}:
|
769 |
$('td:eq(0)', row).append(
|
770 |
$('<i/>', { 'class': 'aam-row-subtitle' }).html(
|
771 |
`${role}${getAAM().__('ID')}: <b>${data[0]}</b> ${expire}`
|
@@ -788,12 +801,17 @@
|
|
788 |
$('td:eq(0) span', row).replaceWith(
|
789 |
'<strong class="aam-highlight">' + data[2] + '</strong>'
|
790 |
);
|
791 |
-
|
|
|
|
|
|
|
792 |
|
793 |
if (getAAM().isUI('main')) {
|
794 |
-
$('i.icon-cog', container).attr('class', 'aam-row-action icon-spin4 animate-spin');
|
795 |
getAAM().fetchContent('main');
|
796 |
-
|
|
|
|
|
|
|
797 |
} else {
|
798 |
getAAM().fetchPartial('post-access-form', function (content) {
|
799 |
$('#metabox-post-access-form').html(content);
|
@@ -802,6 +820,10 @@
|
|
802 |
$('#content-object-id').val(),
|
803 |
$(this)
|
804 |
]);
|
|
|
|
|
|
|
|
|
805 |
});
|
806 |
}
|
807 |
}
|
@@ -2929,7 +2951,7 @@
|
|
2929 |
}
|
2930 |
},
|
2931 |
columnDefs: [
|
2932 |
-
{ visible: false, targets: [0, 1, 5, 6] },
|
2933 |
{ orderable: false, targets: [0, 1, 2, 4, 5, 6] }
|
2934 |
],
|
2935 |
language: {
|
@@ -3022,7 +3044,7 @@
|
|
3022 |
// Add additional information about post type
|
3023 |
$('td:eq(1)', row).append(
|
3024 |
$('<i class="aam-row-subtitle"></i>')
|
3025 |
-
.append($('<span/>').text(getAAM().__('
|
3026 |
.append($('<strong/>').text(data[0]))
|
3027 |
);
|
3028 |
} else if ($.inArray(data[2], ['taxonomy-category', 'taxonomy-tag']) !== -1) {
|
@@ -3048,7 +3070,7 @@
|
|
3048 |
|
3049 |
$('td:eq(1)', row).append(
|
3050 |
$('<i class="aam-row-subtitle"></i>')
|
3051 |
-
.append($('<span/>').text(getAAM().__('
|
3052 |
.append($('<strong/>').text(data[0]))
|
3053 |
);
|
3054 |
} else if (data[2] === 'cat') {
|
@@ -3062,7 +3084,9 @@
|
|
3062 |
}
|
3063 |
|
3064 |
sub.append($('<span/>').text(getAAM().__('ID:') + ' '));
|
3065 |
-
sub.append($('<strong/>').text(data[0].split('|')[0]));
|
|
|
|
|
3066 |
|
3067 |
$('td:eq(1)', row).append(sub);
|
3068 |
} else if (data[2] === 'tag') {
|
@@ -3071,7 +3095,9 @@
|
|
3071 |
$('td:eq(1)', row).append(
|
3072 |
$('<i class="aam-row-subtitle"></i>')
|
3073 |
.append($('<span/>').text(getAAM().__('ID:') + ' '))
|
3074 |
-
.append($('<strong/>').text(data[0].split('|')[0]))
|
|
|
|
|
3075 |
);
|
3076 |
} else {
|
3077 |
$('td:eq(1)', row).html($('<span/>').text(data[3]));
|
@@ -3084,7 +3110,9 @@
|
|
3084 |
}
|
3085 |
|
3086 |
sub.append($('<span/>').text(getAAM().__('ID:') + ' '));
|
3087 |
-
sub.append($('<strong/>').text(data[0]));
|
|
|
|
|
3088 |
|
3089 |
$('td:eq(1)', row).append(sub);
|
3090 |
}
|
@@ -4726,6 +4754,55 @@
|
|
4726 |
|
4727 |
})(jQuery);
|
4728 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4729 |
getAAM().fetchContent('main'); //fetch default AAM content
|
4730 |
}
|
4731 |
|
@@ -4967,6 +5044,7 @@
|
|
4967 |
*
|
4968 |
* @param {type} view
|
4969 |
* @param {type} success
|
|
|
4970 |
* @returns {undefined}
|
4971 |
*/
|
4972 |
AAM.prototype.fetchPartial = function (view, success) {
|
@@ -4991,6 +5069,9 @@
|
|
4991 |
},
|
4992 |
success: function (response) {
|
4993 |
success.call(_this, response);
|
|
|
|
|
|
|
4994 |
}
|
4995 |
});
|
4996 |
};
|
@@ -5161,6 +5242,12 @@
|
|
5161 |
clipboard.on('error', function (e) {
|
5162 |
getAAM().notification('danger', getAAM().__('Failed to save data to clipboard'));
|
5163 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
5164 |
};
|
5165 |
|
5166 |
/**
|
38 |
function isCurrent(id) {
|
39 |
var subject = getAAM().getSubject();
|
40 |
|
41 |
+
return (!getAAM().isUI('principal') && subject.type === 'role' && subject.id === id);
|
42 |
}
|
43 |
|
44 |
/**
|
186 |
$('td:eq(0) span', row).replaceWith(
|
187 |
'<strong class="aam-highlight">' + title + '</strong>'
|
188 |
);
|
189 |
+
|
190 |
$('i.icon-cog', container).attr(
|
191 |
+
'class', 'aam-row-action icon-spin4 animate-spin'
|
192 |
);
|
193 |
+
|
194 |
if (getAAM().isUI('main')) {
|
195 |
$('i.icon-cog', container).attr(
|
196 |
'class', 'aam-row-action icon-spin4 animate-spin'
|
207 |
$('#content-object-id').val(),
|
208 |
$(this)
|
209 |
]);
|
210 |
+
$('i.icon-spin4', container).attr(
|
211 |
+
'class', 'aam-row-action icon-cog text-muted'
|
212 |
+
);
|
213 |
});
|
214 |
}
|
215 |
}
|
520 |
},
|
521 |
success: function (response) {
|
522 |
if (response.status === 'success') {
|
523 |
+
var subject = getAAM().getSubject();
|
524 |
+
|
525 |
+
// Bug fix https://github.com/aamplugin/advanced-access-manager/issues/102
|
526 |
+
if (subject.type === 'role' && subject.id === $(_this).data('role')) {
|
527 |
+
window.localStorage.removeItem('aam-subject');
|
528 |
+
location.reload();
|
529 |
+
} else {
|
530 |
+
$('#role-list').DataTable().ajax.reload();
|
531 |
+
}
|
532 |
} else {
|
533 |
getAAM().notification('danger', getAAM().__('Failed to delete role'));
|
534 |
}
|
582 |
function isCurrent(id) {
|
583 |
var subject = getAAM().getSubject();
|
584 |
|
585 |
+
return (!getAAM().isUI('principal') && subject.type === 'user' && parseInt(subject.id) === id);
|
586 |
}
|
587 |
|
588 |
/**
|
777 |
}
|
778 |
|
779 |
//add subtitle
|
780 |
+
var expire = (data[5] ? '; <i class="icon-clock text-danger"></i>' : '');
|
781 |
+
var role = (data[1] ? `${getAAM().__('Role')}: <b>${data[1]}</b>; ` : '');
|
782 |
$('td:eq(0)', row).append(
|
783 |
$('<i/>', { 'class': 'aam-row-subtitle' }).html(
|
784 |
`${role}${getAAM().__('ID')}: <b>${data[0]}</b> ${expire}`
|
801 |
$('td:eq(0) span', row).replaceWith(
|
802 |
'<strong class="aam-highlight">' + data[2] + '</strong>'
|
803 |
);
|
804 |
+
|
805 |
+
$('i.icon-cog', container).attr(
|
806 |
+
'class', 'aam-row-action icon-spin4 animate-spin'
|
807 |
+
);
|
808 |
|
809 |
if (getAAM().isUI('main')) {
|
|
|
810 |
getAAM().fetchContent('main');
|
811 |
+
|
812 |
+
$('i.icon-spin4', container).attr(
|
813 |
+
'class', 'aam-row-action icon-cog text-muted'
|
814 |
+
);
|
815 |
} else {
|
816 |
getAAM().fetchPartial('post-access-form', function (content) {
|
817 |
$('#metabox-post-access-form').html(content);
|
820 |
$('#content-object-id').val(),
|
821 |
$(this)
|
822 |
]);
|
823 |
+
|
824 |
+
$('i.icon-spin4', container).attr(
|
825 |
+
'class', 'aam-row-action icon-cog text-muted'
|
826 |
+
);
|
827 |
});
|
828 |
}
|
829 |
}
|
2951 |
}
|
2952 |
},
|
2953 |
columnDefs: [
|
2954 |
+
{ visible: false, targets: [0, 1, 5, 6, 7] },
|
2955 |
{ orderable: false, targets: [0, 1, 2, 4, 5, 6] }
|
2956 |
],
|
2957 |
language: {
|
3044 |
// Add additional information about post type
|
3045 |
$('td:eq(1)', row).append(
|
3046 |
$('<i class="aam-row-subtitle"></i>')
|
3047 |
+
.append($('<span/>').text(getAAM().__('Slug:') + ' '))
|
3048 |
.append($('<strong/>').text(data[0]))
|
3049 |
);
|
3050 |
} else if ($.inArray(data[2], ['taxonomy-category', 'taxonomy-tag']) !== -1) {
|
3070 |
|
3071 |
$('td:eq(1)', row).append(
|
3072 |
$('<i class="aam-row-subtitle"></i>')
|
3073 |
+
.append($('<span/>').text(getAAM().__('Slug:') + ' '))
|
3074 |
.append($('<strong/>').text(data[0]))
|
3075 |
);
|
3076 |
} else if (data[2] === 'cat') {
|
3084 |
}
|
3085 |
|
3086 |
sub.append($('<span/>').text(getAAM().__('ID:') + ' '));
|
3087 |
+
sub.append($('<strong/>').text(data[0].split('|')[0] + '; '));
|
3088 |
+
sub.append($('<span/>').text(getAAM().__('Slug:') + ' '));
|
3089 |
+
sub.append($('<strong/>').text(data[7]));
|
3090 |
|
3091 |
$('td:eq(1)', row).append(sub);
|
3092 |
} else if (data[2] === 'tag') {
|
3095 |
$('td:eq(1)', row).append(
|
3096 |
$('<i class="aam-row-subtitle"></i>')
|
3097 |
.append($('<span/>').text(getAAM().__('ID:') + ' '))
|
3098 |
+
.append($('<strong/>').text(data[0].split('|')[0] + '; '))
|
3099 |
+
.append($('<span/>').text(getAAM().__('Slug:') + ' '))
|
3100 |
+
.append($('<strong/>').text(data[7]))
|
3101 |
);
|
3102 |
} else {
|
3103 |
$('td:eq(1)', row).html($('<span/>').text(data[3]));
|
3110 |
}
|
3111 |
|
3112 |
sub.append($('<span/>').text(getAAM().__('ID:') + ' '));
|
3113 |
+
sub.append($('<strong/>').text(data[0] + '; '));
|
3114 |
+
sub.append($('<span/>').text(getAAM().__('Slug:') + ' '));
|
3115 |
+
sub.append($('<strong/>').text(data[7]));
|
3116 |
|
3117 |
$('td:eq(1)', row).append(sub);
|
3118 |
}
|
4754 |
|
4755 |
})(jQuery);
|
4756 |
|
4757 |
+
/**
|
4758 |
+
* Top subject bar
|
4759 |
+
*/
|
4760 |
+
(function ($) {
|
4761 |
+
$('#reset-subject-settings').bind('click', function() {
|
4762 |
+
const subject = getAAM().getSubject();
|
4763 |
+
|
4764 |
+
$('#reset-subject-msg').html(
|
4765 |
+
$('#reset-subject-msg')
|
4766 |
+
.data('message')
|
4767 |
+
.replace('%s', '<b>' + subject.name + '</b>')
|
4768 |
+
);
|
4769 |
+
$('#reset-subject-modal').modal('show');
|
4770 |
+
});
|
4771 |
+
|
4772 |
+
$('#reset-subject-btn').bind('click', function() {
|
4773 |
+
const _this = $(this);
|
4774 |
+
|
4775 |
+
$.ajax(getLocal().ajaxurl, {
|
4776 |
+
type: 'POST',
|
4777 |
+
dataType: 'json',
|
4778 |
+
data: {
|
4779 |
+
action: 'aam',
|
4780 |
+
sub_action: 'Settings_Manager.clearSubjectSettings',
|
4781 |
+
_ajax_nonce: getLocal().nonce,
|
4782 |
+
subject: getAAM().getSubject().type,
|
4783 |
+
subjectId: getAAM().getSubject().id
|
4784 |
+
},
|
4785 |
+
beforeSend: function () {
|
4786 |
+
_this.text(getAAM().__('Resetting...')).prop('disabled', true);
|
4787 |
+
},
|
4788 |
+
success: function (response) {
|
4789 |
+
if (response.status === 'success') {
|
4790 |
+
getAAM().fetchContent('main');
|
4791 |
+
$('#reset-subject-modal').modal('hide');
|
4792 |
+
} else {
|
4793 |
+
getAAM().notification('danger', response.reason);
|
4794 |
+
}
|
4795 |
+
},
|
4796 |
+
error: function () {
|
4797 |
+
getAAM().notification('danger');
|
4798 |
+
},
|
4799 |
+
complete: function () {
|
4800 |
+
_this.text(getAAM().__('Reset')).prop('disabled', false);
|
4801 |
+
}
|
4802 |
+
});
|
4803 |
+
});
|
4804 |
+
})(jQuery);
|
4805 |
+
|
4806 |
getAAM().fetchContent('main'); //fetch default AAM content
|
4807 |
}
|
4808 |
|
5044 |
*
|
5045 |
* @param {type} view
|
5046 |
* @param {type} success
|
5047 |
+
* @param {type} failure
|
5048 |
* @returns {undefined}
|
5049 |
*/
|
5050 |
AAM.prototype.fetchPartial = function (view, success) {
|
5069 |
},
|
5070 |
success: function (response) {
|
5071 |
success.call(_this, response);
|
5072 |
+
},
|
5073 |
+
error: function() {
|
5074 |
+
getAAM().notification('danger');
|
5075 |
}
|
5076 |
});
|
5077 |
};
|
5242 |
clipboard.on('error', function (e) {
|
5243 |
getAAM().notification('danger', getAAM().__('Failed to save data to clipboard'));
|
5244 |
});
|
5245 |
+
|
5246 |
+
// Listen to page size change and update iframe height accordingly
|
5247 |
+
const container = document.getElementById('aam-container');
|
5248 |
+
new ResizeSensor(container, function() {
|
5249 |
+
window.parent.postMessage({frameHeight: container.clientHeight}, '*');
|
5250 |
+
});
|
5251 |
};
|
5252 |
|
5253 |
/**
|
media/js/iframe-resizer.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(()=>{window.onmessage=(e)=>{if (e.data.hasOwnProperty("frameHeight")){document.getElementById("aam-iframe").style.height = `${e.data.frameHeight + 15}px`;}}})()
|
media/js/vendor.js
CHANGED
@@ -1,10 +1,9 @@
|
|
1 |
/*!
|
2 |
-
* Bootstrap v3.
|
3 |
-
* Copyright 2011-
|
4 |
* Licensed under the MIT license
|
5 |
*/
|
6 |
-
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
|
7 |
-
this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
|
8 |
|
9 |
/*
|
10 |
* This combined file was created by the DataTables downloader builder:
|
@@ -601,10 +600,24 @@ jsonldMode:U,jsonMode:G,expressionAllowed:na,skipExpression:function(a){var b=a.
|
|
601 |
!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)service.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t",delete:46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():b.isDate(a)||b.isMoment(a)?b(a):x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return i.indexOf("Y")!==-1;case"M":return i.indexOf("M")!==-1;case"d":return i.toLowerCase().indexOf("d")!==-1;case"h":case"H":return i.toLowerCase().indexOf("h")!==-1;case"m":return i.indexOf("m")!==-1;case"s":return i.indexOf("s")!==-1;default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return z("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},G=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(C()),e=a("<div>").addClass("timepicker").append(E()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("<li>").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"static"===b.css("position")&&(b=b.parents().filter(function(){return"static"!==a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a non-static positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&d.daysOfWeekDisabled.indexOf(b.day())!==-1)return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){if(b.isBetween(this[0],this[1]))return e=!0,!1}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(R(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+='<span data-action="selectDecade" class="decade'+(e.isAfter(h)&&e.year()<=a?" active":"")+(R(h,"y")||k||l?"":" disabled")+'" data-selection="'+(h.year()+6)+'">'+(h.year()+1)+" - "+(h.year()+12)+"</span>",h.add(12,"y");m+="<span></span><span></span><span></span>",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h=o.find(".datepicker-days"),i=h.find("th"),j=[],k=[];if(B()){for(i.eq(0).find("span").attr("title",d.tooltips.prevMonth),i.eq(1).attr("title",d.tooltips.selectMonth),i.eq(2).find("span").attr("title",d.tooltips.nextMonth),h.find(".disabled").removeClass("disabled"),i.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||i.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||i.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),g=0;g<42;g++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),j.push(c)),k=["day"],b.isBefore(f,"M")&&k.push("old"),b.isAfter(f,"M")&&k.push("new"),b.isSame(e,"d")&&!m&&k.push("active"),R(b,"d")||k.push("disabled"),b.isSame(y(),"d")&&k.push("today"),0!==b.day()&&6!==b.day()||k.push("weekend"),J({type:"dp.classify",date:b,classNames:k}),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="'+k.join(" ")+'">'+b.date()+"</td>"),b.add(1,"d");h.find("tbody").empty().append(j),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(R(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(R(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(R(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;if(!a)return m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _();if(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping)for(a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0);d.minDate&&a.isBefore(d.minDate);)a.add(d.stepping,"minutes");R(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b}))},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return!c||!c.transitioning||(b=!0,!1)}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?(!b.isMoment(a)||a instanceof Date)&&(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return!a(b.currentTarget).is(".disabled")&&(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),!!Object.keys(c).length&&c},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),!!Object.keys(c).length&&c},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||b<0||isNaN(b)?a:(a.indexOf(b)===-1&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||a<1)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&b.indexOf(a.toLowerCase())===-1)throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(r.indexOf(a)===-1)throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(u.indexOf(a)===-1)throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),t.indexOf(b.horizontal)===-1)throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),s.indexOf(b.vertical)===-1)throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");
|
602 |
return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};return a.fn.datetimepicker=function(b){b=b||{};var d,e=Array.prototype.slice.call(arguments,1),f=!0,g=["destroy","hide","show","toggle"];if("object"==typeof b)return this.each(function(){var d,e=a(this);e.data("DateTimePicker")||(d=a.extend(!0,{},a.fn.datetimepicker.defaults,b),e.data("DateTimePicker",c(e,d)))});if("string"==typeof b)return this.each(function(){var c=a(this),g=c.data("DateTimePicker");if(!g)throw new Error('bootstrap-datetimepicker("'+b+'") method was called on an element that is not using DateTimePicker');d=g[b].apply(g,e),f=d===g}),f||a.inArray(b,g)>-1?this:d;throw new TypeError("Invalid arguments for DateTimePicker: "+b)},a.fn.datetimepicker.defaults={timeZone:"",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down",previous:"glyphicon glyphicon-chevron-left",next:"glyphicon glyphicon-chevron-right",today:"glyphicon glyphicon-screenshot",clear:"glyphicon glyphicon-trash",close:"glyphicon glyphicon-remove"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a&&a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},delete:function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1},a.fn.datetimepicker});
|
603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
604 |
/*!
|
605 |
* clipboard.js v2.0.4
|
606 |
* https://zenorocha.github.io/clipboard.js
|
607 |
-
*
|
608 |
* Licensed MIT © Zeno Rocha
|
609 |
*/
|
610 |
!function (t, e) { "object" == typeof exports && "object" == typeof service ? service.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e() }(this, function () { return function (n) { var o = {}; function r(t) { if (o[t]) return o[t].exports; var e = o[t] = { i: t, l: !1, exports: {} }; return n[t].call(e.exports, e, e.exports, r), e.l = !0, e.exports } return r.m = n, r.c = o, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) }, r.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Service" }), Object.defineProperty(t, "__esService", { value: !0 }) }, r.t = function (e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esService) return e; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var o in e) r.d(n, o, function (t) { return e[t] }.bind(null, o)); return n }, r.n = function (t) { var e = t && t.__esService ? function () { return t.default } : function () { return t }; return r.d(e, "a", e), e }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, r.p = "", r(r.s = 0) }([function (t, e, n) { "use strict"; var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i = function () { function o(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } return function (t, e, n) { return e && o(t.prototype, e), n && o(t, n), t } }(), a = o(n(1)), c = o(n(3)), u = o(n(4)); function o(t) { return t && t.__esService ? t : { default: t } } var l = function (t) { function o(t, e) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, o); var n = function (t, e) { if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !e || "object" != typeof e && "function" != typeof e ? t : e }(this, (o.__proto__ || Object.getPrototypeOf(o)).call(this)); return n.resolveOptions(e), n.listenClick(t), n } return function (t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) }(o, c.default), i(o, [{ key: "resolveOptions", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === r(t.container) ? t.container : document.body } }, { key: "listenClick", value: function (t) { var e = this; this.listener = (0, u.default)(t, "click", function (t) { return e.onClick(t) }) } }, { key: "onClick", value: function (t) { var e = t.delegateTarget || t.currentTarget; this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new a.default({ action: this.action(e), target: this.target(e), text: this.text(e), container: this.container, trigger: e, emitter: this }) } }, { key: "defaultAction", value: function (t) { return s("action", t) } }, { key: "defaultTarget", value: function (t) { var e = s("target", t); if (e) return document.querySelector(e) } }, { key: "defaultText", value: function (t) { return s("text", t) } }, { key: "destroy", value: function () { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) } }], [{ key: "isSupported", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], e = "string" == typeof t ? [t] : t, n = !!document.queryCommandSupported; return e.forEach(function (t) { n = n && !!document.queryCommandSupported(t) }), n } }]), o }(); function s(t, e) { var n = "data-clipboard-" + t; if (e.hasAttribute(n)) return e.getAttribute(n) } t.exports = l }, function (t, e, n) { "use strict"; var o, r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i = function () { function o(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } return function (t, e, n) { return e && o(t.prototype, e), n && o(t, n), t } }(), a = n(2), c = (o = a) && o.__esService ? o : { default: o }; var u = function () { function e(t) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, e), this.resolveOptions(t), this.initSelection() } return i(e, [{ key: "resolveOptions", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = "" } }, { key: "initSelection", value: function () { this.text ? this.selectFake() : this.target && this.selectTarget() } }, { key: "selectFake", value: function () { var t = this, e = "rtl" == document.documentElement.getAttribute("dir"); this.removeFake(), this.fakeHandlerCallback = function () { return t.removeFake() }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px"; var n = window.pageYOffset || document.documentElement.scrollTop; this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, c.default)(this.fakeElem), this.copyText() } }, { key: "removeFake", value: function () { this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) } }, { key: "selectTarget", value: function () { this.selectedText = (0, c.default)(this.target), this.copyText() } }, { key: "copyText", value: function () { var e = void 0; try { e = document.execCommand(this.action) } catch (t) { e = !1 } this.handleResult(e) } }, { key: "handleResult", value: function (t) { this.emitter.emit(t ? "success" : "error", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) } }, { key: "clearSelection", value: function () { this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() } }, { key: "destroy", value: function () { this.removeFake() } }, { key: "action", set: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy"; if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function () { return this._action } }, { key: "target", set: function (t) { if (void 0 !== t) { if (!t || "object" !== (void 0 === t ? "undefined" : r(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element'); if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); this._target = t } }, get: function () { return this._target } }]), e }(); t.exports = u }, function (t, e) { t.exports = function (t) { var e; if ("SELECT" === t.nodeName) t.focus(), e = t.value; else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) { var n = t.hasAttribute("readonly"); n || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), n || t.removeAttribute("readonly"), e = t.value } else { t.hasAttribute("contenteditable") && t.focus(); var o = window.getSelection(), r = document.createRange(); r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), e = o.toString() } return e } }, function (t, e) { function n() { } n.prototype = { on: function (t, e, n) { var o = this.e || (this.e = {}); return (o[t] || (o[t] = [])).push({ fn: e, ctx: n }), this }, once: function (t, e, n) { var o = this; function r() { o.off(t, r), e.apply(n, arguments) } return r._ = e, this.on(t, r, n) }, emit: function (t) { for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++)n[o].fn.apply(n[o].ctx, e); return this }, off: function (t, e) { var n = this.e || (this.e = {}), o = n[t], r = []; if (o && e) for (var i = 0, a = o.length; i < a; i++)o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); return r.length ? n[t] = r : delete n[t], this } }, t.exports = n }, function (t, e, n) { var d = n(5), h = n(6); t.exports = function (t, e, n) { if (!t && !e && !n) throw new Error("Missing required arguments"); if (!d.string(e)) throw new TypeError("Second argument must be a String"); if (!d.fn(n)) throw new TypeError("Third argument must be a Function"); if (d.node(t)) return s = e, f = n, (l = t).addEventListener(s, f), { destroy: function () { l.removeEventListener(s, f) } }; if (d.nodeList(t)) return a = t, c = e, u = n, Array.prototype.forEach.call(a, function (t) { t.addEventListener(c, u) }), { destroy: function () { Array.prototype.forEach.call(a, function (t) { t.removeEventListener(c, u) }) } }; if (d.string(t)) return o = t, r = e, i = n, h(document.body, o, r, i); throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); var o, r, i, a, c, u, l, s, f } }, function (t, n) { n.node = function (t) { return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType }, n.nodeList = function (t) { var e = Object.prototype.toString.call(t); return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || n.node(t[0])) }, n.string = function (t) { return "string" == typeof t || t instanceof String }, n.fn = function (t) { return "[object Function]" === Object.prototype.toString.call(t) } }, function (t, e, n) { var a = n(7); function i(t, e, n, o, r) { var i = function (e, n, t, o) { return function (t) { t.delegateTarget = a(t.target, n), t.delegateTarget && o.call(e, t) } }.apply(this, arguments); return t.addEventListener(n, i, r), { destroy: function () { t.removeEventListener(n, i, r) } } } t.exports = function (t, e, n, o, r) { return "function" == typeof t.addEventListener ? i.apply(null, arguments) : "function" == typeof n ? i.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function (t) { return i(t, e, n, o, r) })) } }, function (t, e) { if ("undefined" != typeof Element && !Element.prototype.matches) { var n = Element.prototype; n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector } t.exports = function (t, e) { for (; t && 9 !== t.nodeType;) { if ("function" == typeof t.matches && t.matches(e)) return t; t = t.parentNode } } }]) });
|
1 |
/*!
|
2 |
+
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
3 |
+
* Copyright 2011-2019 Twitter, Inc.
|
4 |
* Licensed under the MIT license
|
5 |
*/
|
6 |
+
if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");!function(t){"use strict";var e=jQuery.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||3<e[0])throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(),function(n){"use strict";n.fn.emulateTransitionEnd=function(t){var e=!1,i=this;n(this).one("bsTransitionEnd",function(){e=!0});return setTimeout(function(){e||n(i).trigger(n.support.transition.end)},t),this},n(function(){n.support.transition=function o(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(t.style[i]!==undefined)return{end:e[i]};return!1}(),n.support.transition&&(n.event.special.bsTransitionEnd={bindType:n.support.transition.end,delegateType:n.support.transition.end,handle:function(t){if(n(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}})})}(jQuery),function(s){"use strict";var e='[data-dismiss="alert"]',a=function(t){s(t).on("click",e,this.close)};a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.close=function(t){var e=s(this),i=e.attr("data-target");i||(i=(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),i="#"===i?[]:i;var o=s(document).find(i);function n(){o.detach().trigger("closed.bs.alert").remove()}t&&t.preventDefault(),o.length||(o=e.closest(".alert")),o.trigger(t=s.Event("close.bs.alert")),t.isDefaultPrevented()||(o.removeClass("in"),s.support.transition&&o.hasClass("fade")?o.one("bsTransitionEnd",n).emulateTransitionEnd(a.TRANSITION_DURATION):n())};var t=s.fn.alert;s.fn.alert=function o(i){return this.each(function(){var t=s(this),e=t.data("bs.alert");e||t.data("bs.alert",e=new a(this)),"string"==typeof i&&e[i].call(t)})},s.fn.alert.Constructor=a,s.fn.alert.noConflict=function(){return s.fn.alert=t,this},s(document).on("click.bs.alert.data-api",e,a.prototype.close)}(jQuery),function(s){"use strict";var n=function(t,e){this.$element=s(t),this.options=s.extend({},n.DEFAULTS,e),this.isLoading=!1};function i(o){return this.each(function(){var t=s(this),e=t.data("bs.button"),i="object"==typeof o&&o;e||t.data("bs.button",e=new n(this,i)),"toggle"==o?e.toggle():o&&e.setState(o)})}n.VERSION="3.4.1",n.DEFAULTS={loadingText:"loading..."},n.prototype.setState=function(t){var e="disabled",i=this.$element,o=i.is("input")?"val":"html",n=i.data();t+="Text",null==n.resetText&&i.data("resetText",i[o]()),setTimeout(s.proxy(function(){i[o](null==n[t]?this.options[t]:n[t]),"loadingText"==t?(this.isLoading=!0,i.addClass(e).attr(e,e).prop(e,!0)):this.isLoading&&(this.isLoading=!1,i.removeClass(e).removeAttr(e).prop(e,!1))},this),0)},n.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var t=s.fn.button;s.fn.button=i,s.fn.button.Constructor=n,s.fn.button.noConflict=function(){return s.fn.button=t,this},s(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(t){var e=s(t.target).closest(".btn");i.call(e,"toggle"),s(t.target).is('input[type="radio"], input[type="checkbox"]')||(t.preventDefault(),e.is("input,button")?e.trigger("focus"):e.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){s(t.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(t.type))})}(jQuery),function(p){"use strict";var c=function(t,e){this.$element=p(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=e,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",p.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",p.proxy(this.pause,this)).on("mouseleave.bs.carousel",p.proxy(this.cycle,this))};function r(n){return this.each(function(){var t=p(this),e=t.data("bs.carousel"),i=p.extend({},c.DEFAULTS,t.data(),"object"==typeof n&&n),o="string"==typeof n?n:i.slide;e||t.data("bs.carousel",e=new c(this,i)),"number"==typeof n?e.to(n):o?e[o]():i.interval&&e.pause().cycle()})}c.VERSION="3.4.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},c.prototype.cycle=function(t){return t||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(p.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},c.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e);if(("prev"==t&&0===i||"next"==t&&i==this.$items.length-1)&&!this.options.wrap)return e;var o=(i+("prev"==t?-1:1))%this.$items.length;return this.$items.eq(o)},c.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(t>this.$items.length-1||t<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(i<t?"next":"prev",this.$items.eq(t))},c.prototype.pause=function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&p.support.transition&&(this.$element.trigger(p.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(t,e){var i=this.$element.find(".item.active"),o=e||this.getItemForDirection(t,i),n=this.interval,s="next"==t?"left":"right",a=this;if(o.hasClass("active"))return this.sliding=!1;var r=o[0],l=p.Event("slide.bs.carousel",{relatedTarget:r,direction:s});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,n&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var h=p(this.$indicators.children()[this.getItemIndex(o)]);h&&h.addClass("active")}var d=p.Event("slid.bs.carousel",{relatedTarget:r,direction:s});return p.support.transition&&this.$element.hasClass("slide")?(o.addClass(t),"object"==typeof o&&o.length&&o[0].offsetWidth,i.addClass(s),o.addClass(s),i.one("bsTransitionEnd",function(){o.removeClass([t,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger(d)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(i.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(d)),n&&this.cycle(),this}};var t=p.fn.carousel;p.fn.carousel=r,p.fn.carousel.Constructor=c,p.fn.carousel.noConflict=function(){return p.fn.carousel=t,this};var e=function(t){var e=p(this),i=e.attr("href");i&&(i=i.replace(/.*(?=#[^\s]+$)/,""));var o=e.attr("data-target")||i,n=p(document).find(o);if(n.hasClass("carousel")){var s=p.extend({},n.data(),e.data()),a=e.attr("data-slide-to");a&&(s.interval=!1),r.call(n,s),a&&n.data("bs.carousel").to(a),t.preventDefault()}};p(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),p(window).on("load",function(){p('[data-ride="carousel"]').each(function(){var t=p(this);r.call(t,t.data())})})}(jQuery),function(a){"use strict";var r=function(t,e){this.$element=a(t),this.options=a.extend({},r.DEFAULTS,e),this.$trigger=a('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};function n(t){var e,i=t.attr("data-target")||(e=t.attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"");return a(document).find(i)}function l(o){return this.each(function(){var t=a(this),e=t.data("bs.collapse"),i=a.extend({},r.DEFAULTS,t.data(),"object"==typeof o&&o);!e&&i.toggle&&/show|hide/.test(o)&&(i.toggle=!1),e||t.data("bs.collapse",e=new r(this,i)),"string"==typeof o&&e[o]()})}r.VERSION="3.4.1",r.TRANSITION_DURATION=350,r.DEFAULTS={toggle:!0},r.prototype.dimension=function(){return this.$element.hasClass("width")?"width":"height"},r.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var t,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(t=e.data("bs.collapse"))&&t.transitioning)){var i=a.Event("show.bs.collapse");if(this.$element.trigger(i),!i.isDefaultPrevented()){e&&e.length&&(l.call(e,"hide"),t||e.data("bs.collapse",null));var o=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[o](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var n=function(){this.$element.removeClass("collapsing").addClass("collapse in")[o](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return n.call(this);var s=a.camelCase(["scroll",o].join("-"));this.$element.one("bsTransitionEnd",a.proxy(n,this)).emulateTransitionEnd(r.TRANSITION_DURATION)[o](this.$element[0][s])}}}},r.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var t=a.Event("hide.bs.collapse");if(this.$element.trigger(t),!t.isDefaultPrevented()){var e=this.dimension();this.$element[e](this.$element[e]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var i=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};if(!a.support.transition)return i.call(this);this.$element[e](0).one("bsTransitionEnd",a.proxy(i,this)).emulateTransitionEnd(r.TRANSITION_DURATION)}}},r.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},r.prototype.getParent=function(){return a(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(t,e){var i=a(e);this.addAriaAndCollapsedClass(n(i),i)},this)).end()},r.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var t=a.fn.collapse;a.fn.collapse=l,a.fn.collapse.Constructor=r,a.fn.collapse.noConflict=function(){return a.fn.collapse=t,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(t){var e=a(this);e.attr("data-target")||t.preventDefault();var i=n(e),o=i.data("bs.collapse")?"toggle":e.data();l.call(i,o)})}(jQuery),function(a){"use strict";var r='[data-toggle="dropdown"]',o=function(t){a(t).on("click.bs.dropdown",this.toggle)};function l(t){var e=t.attr("data-target");e||(e=(e=t.attr("href"))&&/#[A-Za-z]/.test(e)&&e.replace(/.*(?=#[^\s]*$)/,""));var i="#"!==e?a(document).find(e):null;return i&&i.length?i:t.parent()}function s(o){o&&3===o.which||(a(".dropdown-backdrop").remove(),a(r).each(function(){var t=a(this),e=l(t),i={relatedTarget:this};e.hasClass("open")&&(o&&"click"==o.type&&/input|textarea/i.test(o.target.tagName)&&a.contains(e[0],o.target)||(e.trigger(o=a.Event("hide.bs.dropdown",i)),o.isDefaultPrevented()||(t.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",i)))))}))}o.VERSION="3.4.1",o.prototype.toggle=function(t){var e=a(this);if(!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(s(),!o){"ontouchstart"in document.documentElement&&!i.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",s);var n={relatedTarget:this};if(i.trigger(t=a.Event("show.bs.dropdown",n)),t.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),i.toggleClass("open").trigger(a.Event("shown.bs.dropdown",n))}return!1}},o.prototype.keydown=function(t){if(/(38|40|27|32)/.test(t.which)&&!/input|textarea/i.test(t.target.tagName)){var e=a(this);if(t.preventDefault(),t.stopPropagation(),!e.is(".disabled, :disabled")){var i=l(e),o=i.hasClass("open");if(!o&&27!=t.which||o&&27==t.which)return 27==t.which&&i.find(r).trigger("focus"),e.trigger("click");var n=i.find(".dropdown-menu li:not(.disabled):visible a");if(n.length){var s=n.index(t.target);38==t.which&&0<s&&s--,40==t.which&&s<n.length-1&&s++,~s||(s=0),n.eq(s).trigger("focus")}}}};var t=a.fn.dropdown;a.fn.dropdown=function e(i){return this.each(function(){var t=a(this),e=t.data("bs.dropdown");e||t.data("bs.dropdown",e=new o(this)),"string"==typeof i&&e[i].call(t)})},a.fn.dropdown.Constructor=o,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=t,this},a(document).on("click.bs.dropdown.data-api",s).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",r,o.prototype.toggle).on("keydown.bs.dropdown.data-api",r,o.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",o.prototype.keydown)}(jQuery),function(a){"use strict";var s=function(t,e){this.options=e,this.$body=a(document.body),this.$element=a(t),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.fixedContent=".navbar-fixed-top, .navbar-fixed-bottom",this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};function r(o,n){return this.each(function(){var t=a(this),e=t.data("bs.modal"),i=a.extend({},s.DEFAULTS,t.data(),"object"==typeof o&&o);e||t.data("bs.modal",e=new s(this,i)),"string"==typeof o?e[o](n):i.show&&e.show(n)})}s.VERSION="3.4.1",s.TRANSITION_DURATION=300,s.BACKDROP_TRANSITION_DURATION=150,s.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},s.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},s.prototype.show=function(i){var o=this,t=a.Event("show.bs.modal",{relatedTarget:i});this.$element.trigger(t),this.isShown||t.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(t){a(t.target).is(o.$element)&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var t=a.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),t&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:i});t?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(s.TRANSITION_DURATION):o.$element.trigger("focus").trigger(e)}))},s.prototype.hide=function(t){t&&t.preventDefault(),t=a.Event("hide.bs.modal"),this.$element.trigger(t),this.isShown&&!t.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(s.TRANSITION_DURATION):this.hideModal())},s.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},s.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},s.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},s.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},s.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},s.prototype.backdrop=function(t){var e=this,i=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var o=a.support.transition&&i;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+i).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(t){this.ignoreBackdropClick?this.ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide())},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!t)return;o?this.$backdrop.one("bsTransitionEnd",t).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):t()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var n=function(){e.removeBackdrop(),t&&t()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",n).emulateTransitionEnd(s.BACKDROP_TRANSITION_DURATION):n()}else t&&t()},s.prototype.handleUpdate=function(){this.adjustDialog()},s.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},s.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},s.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},s.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"";var n=this.scrollbarWidth;this.bodyIsOverflowing&&(this.$body.css("padding-right",t+n),a(this.fixedContent).each(function(t,e){var i=e.style.paddingRight,o=a(e).css("padding-right");a(e).data("padding-right",i).css("padding-right",parseFloat(o)+n+"px")}))},s.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad),a(this.fixedContent).each(function(t,e){var i=a(e).data("padding-right");a(e).removeData("padding-right"),e.style.paddingRight=i||""})},s.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var t=a.fn.modal;a.fn.modal=r,a.fn.modal.Constructor=s,a.fn.modal.noConflict=function(){return a.fn.modal=t,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(t){var e=a(this),i=e.attr("href"),o=e.attr("data-target")||i&&i.replace(/.*(?=#[^\s]+$)/,""),n=a(document).find(o),s=n.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(i)&&i},n.data(),e.data());e.is("a")&&t.preventDefault(),n.one("show.bs.modal",function(t){t.isDefaultPrevented()||n.one("hidden.bs.modal",function(){e.is(":visible")&&e.trigger("focus")})}),r.call(n,s,this)})}(jQuery),function(g){"use strict";var o=["sanitize","whiteList","sanitizeFn"],a=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],t={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},r=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi,l=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;function u(t,e){var i=t.nodeName.toLowerCase();if(-1!==g.inArray(i,e))return-1===g.inArray(i,a)||Boolean(t.nodeValue.match(r)||t.nodeValue.match(l));for(var o=g(e).filter(function(t,e){return e instanceof RegExp}),n=0,s=o.length;n<s;n++)if(i.match(o[n]))return!0;return!1}function n(t,e,i){if(0===t.length)return t;if(i&&"function"==typeof i)return i(t);if(!document.implementation||!document.implementation.createHTMLDocument)return t;var o=document.implementation.createHTMLDocument("sanitization");o.body.innerHTML=t;for(var n=g.map(e,function(t,e){return e}),s=g(o.body).find("*"),a=0,r=s.length;a<r;a++){var l=s[a],h=l.nodeName.toLowerCase();if(-1!==g.inArray(h,n))for(var d=g.map(l.attributes,function(t){return t}),p=[].concat(e["*"]||[],e[h]||[]),c=0,f=d.length;c<f;c++)u(d[c],p)||l.removeAttribute(d[c].nodeName);else l.parentNode.removeChild(l)}return o.body.innerHTML}var m=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};m.VERSION="3.4.1",m.TRANSITION_DURATION=150,m.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0},sanitize:!0,sanitizeFn:null,whiteList:t},m.prototype.init=function(t,e,i){if(this.enabled=!0,this.type=t,this.$element=g(e),this.options=this.getOptions(i),this.$viewport=this.options.viewport&&g(document).find(g.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var o=this.options.trigger.split(" "),n=o.length;n--;){var s=o[n];if("click"==s)this.$element.on("click."+this.type,this.options.selector,g.proxy(this.toggle,this));else if("manual"!=s){var a="hover"==s?"mouseenter":"focusin",r="hover"==s?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,g.proxy(this.enter,this)),this.$element.on(r+"."+this.type,this.options.selector,g.proxy(this.leave,this))}}this.options.selector?this._options=g.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},m.prototype.getDefaults=function(){return m.DEFAULTS},m.prototype.getOptions=function(t){var e=this.$element.data();for(var i in e)e.hasOwnProperty(i)&&-1!==g.inArray(i,o)&&delete e[i];return(t=g.extend({},this.getDefaults(),e,t)).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t.sanitize&&(t.template=n(t.template,t.whiteList,t.sanitizeFn)),t},m.prototype.getDelegateOptions=function(){var i={},o=this.getDefaults();return this._options&&g.each(this._options,function(t,e){o[t]!=e&&(i[t]=e)}),i},m.prototype.enter=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusin"==t.type?"focus":"hover"]=!0),e.tip().hasClass("in")||"in"==e.hoverState)e.hoverState="in";else{if(clearTimeout(e.timeout),e.hoverState="in",!e.options.delay||!e.options.delay.show)return e.show();e.timeout=setTimeout(function(){"in"==e.hoverState&&e.show()},e.options.delay.show)}},m.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},m.prototype.leave=function(t){var e=t instanceof this.constructor?t:g(t.currentTarget).data("bs."+this.type);if(e||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e)),t instanceof g.Event&&(e.inState["focusout"==t.type?"focus":"hover"]=!1),!e.isInStateTrue()){if(clearTimeout(e.timeout),e.hoverState="out",!e.options.delay||!e.options.delay.hide)return e.hide();e.timeout=setTimeout(function(){"out"==e.hoverState&&e.hide()},e.options.delay.hide)}},m.prototype.show=function(){var t=g.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(t);var e=g.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(t.isDefaultPrevented()||!e)return;var i=this,o=this.tip(),n=this.getUID(this.type);this.setContent(),o.attr("id",n),this.$element.attr("aria-describedby",n),this.options.animation&&o.addClass("fade");var s="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,a=/\s?auto?\s?/i,r=a.test(s);r&&(s=s.replace(a,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(s).data("bs."+this.type,this),this.options.container?o.appendTo(g(document).find(this.options.container)):o.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var l=this.getPosition(),h=o[0].offsetWidth,d=o[0].offsetHeight;if(r){var p=s,c=this.getPosition(this.$viewport);s="bottom"==s&&l.bottom+d>c.bottom?"top":"top"==s&&l.top-d<c.top?"bottom":"right"==s&&l.right+h>c.width?"left":"left"==s&&l.left-h<c.left?"right":s,o.removeClass(p).addClass(s)}var f=this.getCalculatedOffset(s,l,h,d);this.applyPlacement(f,s);var u=function(){var t=i.hoverState;i.$element.trigger("shown.bs."+i.type),i.hoverState=null,"out"==t&&i.leave(i)};g.support.transition&&this.$tip.hasClass("fade")?o.one("bsTransitionEnd",u).emulateTransitionEnd(m.TRANSITION_DURATION):u()}},m.prototype.applyPlacement=function(t,e){var i=this.tip(),o=i[0].offsetWidth,n=i[0].offsetHeight,s=parseInt(i.css("margin-top"),10),a=parseInt(i.css("margin-left"),10);isNaN(s)&&(s=0),isNaN(a)&&(a=0),t.top+=s,t.left+=a,g.offset.setOffset(i[0],g.extend({using:function(t){i.css({top:Math.round(t.top),left:Math.round(t.left)})}},t),0),i.addClass("in");var r=i[0].offsetWidth,l=i[0].offsetHeight;"top"==e&&l!=n&&(t.top=t.top+n-l);var h=this.getViewportAdjustedDelta(e,t,r,l);h.left?t.left+=h.left:t.top+=h.top;var d=/top|bottom/.test(e),p=d?2*h.left-o+r:2*h.top-n+l,c=d?"offsetWidth":"offsetHeight";i.offset(t),this.replaceArrow(p,i[0][c],d)},m.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},m.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();this.options.html?(this.options.sanitize&&(e=n(e,this.options.whiteList,this.options.sanitizeFn)),t.find(".tooltip-inner").html(e)):t.find(".tooltip-inner").text(e),t.removeClass("fade in top bottom left right")},m.prototype.hide=function(t){var e=this,i=g(this.$tip),o=g.Event("hide.bs."+this.type);function n(){"in"!=e.hoverState&&i.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),t&&t()}if(this.$element.trigger(o),!o.isDefaultPrevented())return i.removeClass("in"),g.support.transition&&i.hasClass("fade")?i.one("bsTransitionEnd",n).emulateTransitionEnd(m.TRANSITION_DURATION):n(),this.hoverState=null,this},m.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")},m.prototype.hasContent=function(){return this.getTitle()},m.prototype.getPosition=function(t){var e=(t=t||this.$element)[0],i="BODY"==e.tagName,o=e.getBoundingClientRect();null==o.width&&(o=g.extend({},o,{width:o.right-o.left,height:o.bottom-o.top}));var n=window.SVGElement&&e instanceof window.SVGElement,s=i?{top:0,left:0}:n?null:t.offset(),a={scroll:i?document.documentElement.scrollTop||document.body.scrollTop:t.scrollTop()},r=i?{width:g(window).width(),height:g(window).height()}:null;return g.extend({},o,a,r,s)},m.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},m.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|left/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},m.prototype.getTitle=function(){var t=this.$element,e=this.options;return t.attr("data-original-title")||("function"==typeof e.title?e.title.call(t[0]):e.title)},m.prototype.getUID=function(t){for(;t+=~~(1e6*Math.random()),document.getElementById(t););return t},m.prototype.tip=function(){if(!this.$tip&&(this.$tip=g(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},m.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},m.prototype.enable=function(){this.enabled=!0},m.prototype.disable=function(){this.enabled=!1},m.prototype.toggleEnabled=function(){this.enabled=!this.enabled},m.prototype.toggle=function(t){var e=this;t&&((e=g(t.currentTarget).data("bs."+this.type))||(e=new this.constructor(t.currentTarget,this.getDelegateOptions()),g(t.currentTarget).data("bs."+this.type,e))),t?(e.inState.click=!e.inState.click,e.isInStateTrue()?e.enter(e):e.leave(e)):e.tip().hasClass("in")?e.leave(e):e.enter(e)},m.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})},m.prototype.sanitizeHtml=function(t){return n(t,this.options.whiteList,this.options.sanitizeFn)};var e=g.fn.tooltip;g.fn.tooltip=function i(o){return this.each(function(){var t=g(this),e=t.data("bs.tooltip"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.tooltip",e=new m(this,i)),"string"==typeof o&&e[o]())})},g.fn.tooltip.Constructor=m,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=e,this}}(jQuery),function(n){"use strict";var s=function(t,e){this.init("popover",t,e)};if(!n.fn.tooltip)throw new Error("Popover requires tooltip.js");s.VERSION="3.4.1",s.DEFAULTS=n.extend({},n.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),((s.prototype=n.extend({},n.fn.tooltip.Constructor.prototype)).constructor=s).prototype.getDefaults=function(){return s.DEFAULTS},s.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();if(this.options.html){var o=typeof i;this.options.sanitize&&(e=this.sanitizeHtml(e),"string"===o&&(i=this.sanitizeHtml(i))),t.find(".popover-title").html(e),t.find(".popover-content").children().detach().end()["string"===o?"html":"append"](i)}else t.find(".popover-title").text(e),t.find(".popover-content").children().detach().end().text(i);t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},s.prototype.hasContent=function(){return this.getTitle()||this.getContent()},s.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},s.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var t=n.fn.popover;n.fn.popover=function e(o){return this.each(function(){var t=n(this),e=t.data("bs.popover"),i="object"==typeof o&&o;!e&&/destroy|hide/.test(o)||(e||t.data("bs.popover",e=new s(this,i)),"string"==typeof o&&e[o]())})},n.fn.popover.Constructor=s,n.fn.popover.noConflict=function(){return n.fn.popover=t,this}}(jQuery),function(s){"use strict";function n(t,e){this.$body=s(document.body),this.$scrollElement=s(t).is(document.body)?s(window):s(t),this.options=s.extend({},n.DEFAULTS,e),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",s.proxy(this.process,this)),this.refresh(),this.process()}function e(o){return this.each(function(){var t=s(this),e=t.data("bs.scrollspy"),i="object"==typeof o&&o;e||t.data("bs.scrollspy",e=new n(this,i)),"string"==typeof o&&e[o]()})}n.VERSION="3.4.1",n.DEFAULTS={offset:10},n.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},n.prototype.refresh=function(){var t=this,o="offset",n=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),s.isWindow(this.$scrollElement[0])||(o="position",n=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var t=s(this),e=t.data("target")||t.attr("href"),i=/^#./.test(e)&&s(e);return i&&i.length&&i.is(":visible")&&[[i[o]().top+n,e]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},n.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),o<=e)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(n[t+1]===undefined||e<n[t+1])&&this.activate(s[t])},n.prototype.activate=function(t){this.activeTarget=t,this.clear();var e=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',i=s(e).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},n.prototype.clear=function(){s(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var t=s.fn.scrollspy;s.fn.scrollspy=e,s.fn.scrollspy.Constructor=n,s.fn.scrollspy.noConflict=function(){return s.fn.scrollspy=t,this},s(window).on("load.bs.scrollspy.data-api",function(){s('[data-spy="scroll"]').each(function(){var t=s(this);e.call(t,t.data())})})}(jQuery),function(r){"use strict";var a=function(t){this.element=r(t)};function e(i){return this.each(function(){var t=r(this),e=t.data("bs.tab");e||t.data("bs.tab",e=new a(this)),"string"==typeof i&&e[i]()})}a.VERSION="3.4.1",a.TRANSITION_DURATION=150,a.prototype.show=function(){var t=this.element,e=t.closest("ul:not(.dropdown-menu)"),i=t.data("target");if(i||(i=(i=t.attr("href"))&&i.replace(/.*(?=#[^\s]*$)/,"")),!t.parent("li").hasClass("active")){var o=e.find(".active:last a"),n=r.Event("hide.bs.tab",{relatedTarget:t[0]}),s=r.Event("show.bs.tab",{relatedTarget:o[0]});if(o.trigger(n),t.trigger(s),!s.isDefaultPrevented()&&!n.isDefaultPrevented()){var a=r(document).find(i);this.activate(t.closest("li"),e),this.activate(a,a.parent(),function(){o.trigger({type:"hidden.bs.tab",relatedTarget:t[0]}),t.trigger({type:"shown.bs.tab",relatedTarget:o[0]})})}}},a.prototype.activate=function(t,e,i){var o=e.find("> .active"),n=i&&r.support.transition&&(o.length&&o.hasClass("fade")||!!e.find("> .fade").length);function s(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),t.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),n?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu").length&&t.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),i&&i()}o.length&&n?o.one("bsTransitionEnd",s).emulateTransitionEnd(a.TRANSITION_DURATION):s(),o.removeClass("in")};var t=r.fn.tab;r.fn.tab=e,r.fn.tab.Constructor=a,r.fn.tab.noConflict=function(){return r.fn.tab=t,this};var i=function(t){t.preventDefault(),e.call(r(this),"show")};r(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',i).on("click.bs.tab.data-api",'[data-toggle="pill"]',i)}(jQuery),function(l){"use strict";var h=function(t,e){this.options=l.extend({},h.DEFAULTS,e);var i=this.options.target===h.DEFAULTS.target?l(this.options.target):l(document).find(this.options.target);this.$target=i.on("scroll.bs.affix.data-api",l.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",l.proxy(this.checkPositionWithEventLoop,this)),this.$element=l(t),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};function i(o){return this.each(function(){var t=l(this),e=t.data("bs.affix"),i="object"==typeof o&&o;e||t.data("bs.affix",e=new h(this,i)),"string"==typeof o&&e[o]()})}h.VERSION="3.4.1",h.RESET="affix affix-top affix-bottom",h.DEFAULTS={offset:0,target:window},h.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return n<i&&"top";if("bottom"==this.affixed)return null!=i?!(n+this.unpin<=s.top)&&"bottom":!(n+a<=t-o)&&"bottom";var r=null==this.affixed,l=r?n:s.top;return null!=i&&n<=i?"top":null!=o&&t-o<=l+(r?a:e)&&"bottom"},h.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(h.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},h.prototype.checkPositionWithEventLoop=function(){setTimeout(l.proxy(this.checkPosition,this),1)},h.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t=this.$element.height(),e=this.options.offset,i=e.top,o=e.bottom,n=Math.max(l(document).height(),l(document.body).height());"object"!=typeof e&&(o=i=e),"function"==typeof i&&(i=e.top(this.$element)),"function"==typeof o&&(o=e.bottom(this.$element));var s=this.getState(n,t,i,o);if(this.affixed!=s){null!=this.unpin&&this.$element.css("top","");var a="affix"+(s?"-"+s:""),r=l.Event(a+".bs.affix");if(this.$element.trigger(r),r.isDefaultPrevented())return;this.affixed=s,this.unpin="bottom"==s?this.getPinnedOffset():null,this.$element.removeClass(h.RESET).addClass(a).trigger(a.replace("affix","affixed")+".bs.affix")}"bottom"==s&&this.$element.offset({top:n-t-o})}};var t=l.fn.affix;l.fn.affix=i,l.fn.affix.Constructor=h,l.fn.affix.noConflict=function(){return l.fn.affix=t,this},l(window).on("load",function(){l('[data-spy="affix"]').each(function(){var t=l(this),e=t.data();e.offset=e.offset||{},null!=e.offsetBottom&&(e.offset.bottom=e.offsetBottom),null!=e.offsetTop&&(e.offset.top=e.offsetTop),i.call(t,e)})})}(jQuery);
|
|
|
7 |
|
8 |
/*
|
9 |
* This combined file was created by the DataTables downloader builder:
|
600 |
!function(a){"use strict";if("function"==typeof define&&define.amd)define(["jquery","moment"],a);else if("object"==typeof exports)service.exports=a(require("jquery"),require("moment"));else{if("undefined"==typeof jQuery)throw"bootstrap-datetimepicker requires jQuery to be loaded first";if("undefined"==typeof moment)throw"bootstrap-datetimepicker requires Moment.js to be loaded first";a(jQuery,moment)}}(function(a,b){"use strict";if(!b)throw new Error("bootstrap-datetimepicker requires Moment.js to be loaded first");var c=function(c,d){var e,f,g,h,i,j,k,l={},m=!0,n=!1,o=!1,p=0,q=[{clsName:"days",navFnc:"M",navStep:1},{clsName:"months",navFnc:"y",navStep:1},{clsName:"years",navFnc:"y",navStep:10},{clsName:"decades",navFnc:"y",navStep:100}],r=["days","months","years","decades"],s=["top","bottom","auto"],t=["left","right","auto"],u=["default","top","bottom"],v={up:38,38:"up",down:40,40:"down",left:37,37:"left",right:39,39:"right",tab:9,9:"tab",escape:27,27:"escape",enter:13,13:"enter",pageUp:33,33:"pageUp",pageDown:34,34:"pageDown",shift:16,16:"shift",control:17,17:"control",space:32,32:"space",t:84,84:"t",delete:46,46:"delete"},w={},x=function(){return void 0!==b.tz&&void 0!==d.timeZone&&null!==d.timeZone&&""!==d.timeZone},y=function(a){var c;return c=void 0===a||null===a?b():b.isDate(a)||b.isMoment(a)?b(a):x()?b.tz(a,j,d.useStrict,d.timeZone):b(a,j,d.useStrict),x()&&c.tz(d.timeZone),c},z=function(a){if("string"!=typeof a||a.length>1)throw new TypeError("isEnabled expects a single character string parameter");switch(a){case"y":return i.indexOf("Y")!==-1;case"M":return i.indexOf("M")!==-1;case"d":return i.toLowerCase().indexOf("d")!==-1;case"h":case"H":return i.toLowerCase().indexOf("h")!==-1;case"m":return i.indexOf("m")!==-1;case"s":return i.indexOf("s")!==-1;default:return!1}},A=function(){return z("h")||z("m")||z("s")},B=function(){return z("y")||z("M")||z("d")},C=function(){var b=a("<thead>").append(a("<tr>").append(a("<th>").addClass("prev").attr("data-action","previous").append(a("<span>").addClass(d.icons.previous))).append(a("<th>").addClass("picker-switch").attr("data-action","pickerSwitch").attr("colspan",d.calendarWeeks?"6":"5")).append(a("<th>").addClass("next").attr("data-action","next").append(a("<span>").addClass(d.icons.next)))),c=a("<tbody>").append(a("<tr>").append(a("<td>").attr("colspan",d.calendarWeeks?"8":"7")));return[a("<div>").addClass("datepicker-days").append(a("<table>").addClass("table-condensed").append(b).append(a("<tbody>"))),a("<div>").addClass("datepicker-months").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-years").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone())),a("<div>").addClass("datepicker-decades").append(a("<table>").addClass("table-condensed").append(b.clone()).append(c.clone()))]},D=function(){var b=a("<tr>"),c=a("<tr>"),e=a("<tr>");return z("h")&&(b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementHour}).addClass("btn").attr("data-action","incrementHours").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-hour").attr({"data-time-component":"hours",title:d.tooltips.pickHour}).attr("data-action","showHours"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementHour}).addClass("btn").attr("data-action","decrementHours").append(a("<span>").addClass(d.icons.down))))),z("m")&&(z("h")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementMinute}).addClass("btn").attr("data-action","incrementMinutes").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-minute").attr({"data-time-component":"minutes",title:d.tooltips.pickMinute}).attr("data-action","showMinutes"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementMinute}).addClass("btn").attr("data-action","decrementMinutes").append(a("<span>").addClass(d.icons.down))))),z("s")&&(z("m")&&(b.append(a("<td>").addClass("separator")),c.append(a("<td>").addClass("separator").html(":")),e.append(a("<td>").addClass("separator"))),b.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.incrementSecond}).addClass("btn").attr("data-action","incrementSeconds").append(a("<span>").addClass(d.icons.up)))),c.append(a("<td>").append(a("<span>").addClass("timepicker-second").attr({"data-time-component":"seconds",title:d.tooltips.pickSecond}).attr("data-action","showSeconds"))),e.append(a("<td>").append(a("<a>").attr({href:"#",tabindex:"-1",title:d.tooltips.decrementSecond}).addClass("btn").attr("data-action","decrementSeconds").append(a("<span>").addClass(d.icons.down))))),h||(b.append(a("<td>").addClass("separator")),c.append(a("<td>").append(a("<button>").addClass("btn btn-primary").attr({"data-action":"togglePeriod",tabindex:"-1",title:d.tooltips.togglePeriod}))),e.append(a("<td>").addClass("separator"))),a("<div>").addClass("timepicker-picker").append(a("<table>").addClass("table-condensed").append([b,c,e]))},E=function(){var b=a("<div>").addClass("timepicker-hours").append(a("<table>").addClass("table-condensed")),c=a("<div>").addClass("timepicker-minutes").append(a("<table>").addClass("table-condensed")),d=a("<div>").addClass("timepicker-seconds").append(a("<table>").addClass("table-condensed")),e=[D()];return z("h")&&e.push(b),z("m")&&e.push(c),z("s")&&e.push(d),e},F=function(){var b=[];return d.showTodayButton&&b.push(a("<td>").append(a("<a>").attr({"data-action":"today",title:d.tooltips.today}).append(a("<span>").addClass(d.icons.today)))),!d.sideBySide&&B()&&A()&&b.push(a("<td>").append(a("<a>").attr({"data-action":"togglePicker",title:d.tooltips.selectTime}).append(a("<span>").addClass(d.icons.time)))),d.showClear&&b.push(a("<td>").append(a("<a>").attr({"data-action":"clear",title:d.tooltips.clear}).append(a("<span>").addClass(d.icons.clear)))),d.showClose&&b.push(a("<td>").append(a("<a>").attr({"data-action":"close",title:d.tooltips.close}).append(a("<span>").addClass(d.icons.close)))),a("<table>").addClass("table-condensed").append(a("<tbody>").append(a("<tr>").append(b)))},G=function(){var b=a("<div>").addClass("bootstrap-datetimepicker-widget dropdown-menu"),c=a("<div>").addClass("datepicker").append(C()),e=a("<div>").addClass("timepicker").append(E()),f=a("<ul>").addClass("list-unstyled"),g=a("<li>").addClass("picker-switch"+(d.collapse?" accordion-toggle":"")).append(F());return d.inline&&b.removeClass("dropdown-menu"),h&&b.addClass("usetwentyfour"),z("s")&&!h&&b.addClass("wider"),d.sideBySide&&B()&&A()?(b.addClass("timepicker-sbs"),"top"===d.toolbarPlacement&&b.append(g),b.append(a("<div>").addClass("row").append(c.addClass("col-md-6")).append(e.addClass("col-md-6"))),"bottom"===d.toolbarPlacement&&b.append(g),b):("top"===d.toolbarPlacement&&f.append(g),B()&&f.append(a("<li>").addClass(d.collapse&&A()?"collapse in":"").append(c)),"default"===d.toolbarPlacement&&f.append(g),A()&&f.append(a("<li>").addClass(d.collapse&&B()?"collapse":"").append(e)),"bottom"===d.toolbarPlacement&&f.append(g),b.append(f))},H=function(){var b,e={};return b=c.is("input")||d.inline?c.data():c.find("input").data(),b.dateOptions&&b.dateOptions instanceof Object&&(e=a.extend(!0,e,b.dateOptions)),a.each(d,function(a){var c="date"+a.charAt(0).toUpperCase()+a.slice(1);void 0!==b[c]&&(e[a]=b[c])}),e},I=function(){var b,e=(n||c).position(),f=(n||c).offset(),g=d.widgetPositioning.vertical,h=d.widgetPositioning.horizontal;if(d.widgetParent)b=d.widgetParent.append(o);else if(c.is("input"))b=c.after(o).parent();else{if(d.inline)return void(b=c.append(o));b=c,c.children().first().after(o)}if("auto"===g&&(g=f.top+1.5*o.height()>=a(window).height()+a(window).scrollTop()&&o.height()+c.outerHeight()<f.top?"top":"bottom"),"auto"===h&&(h=b.width()<f.left+o.outerWidth()/2&&f.left+o.outerWidth()>a(window).width()?"right":"left"),"top"===g?o.addClass("top").removeClass("bottom"):o.addClass("bottom").removeClass("top"),"right"===h?o.addClass("pull-right"):o.removeClass("pull-right"),"static"===b.css("position")&&(b=b.parents().filter(function(){return"static"!==a(this).css("position")}).first()),0===b.length)throw new Error("datetimepicker component should be placed within a non-static positioned container");o.css({top:"top"===g?"auto":e.top+c.outerHeight(),bottom:"top"===g?b.outerHeight()-(b===c?0:e.top):"auto",left:"left"===h?b===c?0:e.left:"auto",right:"left"===h?"auto":b.outerWidth()-c.outerWidth()-(b===c?0:e.left)})},J=function(a){"dp.change"===a.type&&(a.date&&a.date.isSame(a.oldDate)||!a.date&&!a.oldDate)||c.trigger(a)},K=function(a){"y"===a&&(a="YYYY"),J({type:"dp.update",change:a,viewDate:f.clone()})},L=function(a){o&&(a&&(k=Math.max(p,Math.min(3,k+a))),o.find(".datepicker > div").hide().filter(".datepicker-"+q[k].clsName).show())},M=function(){var b=a("<tr>"),c=f.clone().startOf("w").startOf("d");for(d.calendarWeeks===!0&&b.append(a("<th>").addClass("cw").text("#"));c.isBefore(f.clone().endOf("w"));)b.append(a("<th>").addClass("dow").text(c.format("dd"))),c.add(1,"d");o.find(".datepicker-days thead").append(b)},N=function(a){return d.disabledDates[a.format("YYYY-MM-DD")]===!0},O=function(a){return d.enabledDates[a.format("YYYY-MM-DD")]===!0},P=function(a){return d.disabledHours[a.format("H")]===!0},Q=function(a){return d.enabledHours[a.format("H")]===!0},R=function(b,c){if(!b.isValid())return!1;if(d.disabledDates&&"d"===c&&N(b))return!1;if(d.enabledDates&&"d"===c&&!O(b))return!1;if(d.minDate&&b.isBefore(d.minDate,c))return!1;if(d.maxDate&&b.isAfter(d.maxDate,c))return!1;if(d.daysOfWeekDisabled&&"d"===c&&d.daysOfWeekDisabled.indexOf(b.day())!==-1)return!1;if(d.disabledHours&&("h"===c||"m"===c||"s"===c)&&P(b))return!1;if(d.enabledHours&&("h"===c||"m"===c||"s"===c)&&!Q(b))return!1;if(d.disabledTimeIntervals&&("h"===c||"m"===c||"s"===c)){var e=!1;if(a.each(d.disabledTimeIntervals,function(){if(b.isBetween(this[0],this[1]))return e=!0,!1}),e)return!1}return!0},S=function(){for(var b=[],c=f.clone().startOf("y").startOf("d");c.isSame(f,"y");)b.push(a("<span>").attr("data-action","selectMonth").addClass("month").text(c.format("MMM"))),c.add(1,"M");o.find(".datepicker-months td").empty().append(b)},T=function(){var b=o.find(".datepicker-months"),c=b.find("th"),g=b.find("tbody").find("span");c.eq(0).find("span").attr("title",d.tooltips.prevYear),c.eq(1).attr("title",d.tooltips.selectYear),c.eq(2).find("span").attr("title",d.tooltips.nextYear),b.find(".disabled").removeClass("disabled"),R(f.clone().subtract(1,"y"),"y")||c.eq(0).addClass("disabled"),c.eq(1).text(f.year()),R(f.clone().add(1,"y"),"y")||c.eq(2).addClass("disabled"),g.removeClass("active"),e.isSame(f,"y")&&!m&&g.eq(e.month()).addClass("active"),g.each(function(b){R(f.clone().month(b),"M")||a(this).addClass("disabled")})},U=function(){var a=o.find(".datepicker-years"),b=a.find("th"),c=f.clone().subtract(5,"y"),g=f.clone().add(6,"y"),h="";for(b.eq(0).find("span").attr("title",d.tooltips.prevDecade),b.eq(1).attr("title",d.tooltips.selectDecade),b.eq(2).find("span").attr("title",d.tooltips.nextDecade),a.find(".disabled").removeClass("disabled"),d.minDate&&d.minDate.isAfter(c,"y")&&b.eq(0).addClass("disabled"),b.eq(1).text(c.year()+"-"+g.year()),d.maxDate&&d.maxDate.isBefore(g,"y")&&b.eq(2).addClass("disabled");!c.isAfter(g,"y");)h+='<span data-action="selectYear" class="year'+(c.isSame(e,"y")&&!m?" active":"")+(R(c,"y")?"":" disabled")+'">'+c.year()+"</span>",c.add(1,"y");a.find("td").html(h)},V=function(){var a,c=o.find(".datepicker-decades"),g=c.find("th"),h=b({y:f.year()-f.year()%100-1}),i=h.clone().add(100,"y"),j=h.clone(),k=!1,l=!1,m="";for(g.eq(0).find("span").attr("title",d.tooltips.prevCentury),g.eq(2).find("span").attr("title",d.tooltips.nextCentury),c.find(".disabled").removeClass("disabled"),(h.isSame(b({y:1900}))||d.minDate&&d.minDate.isAfter(h,"y"))&&g.eq(0).addClass("disabled"),g.eq(1).text(h.year()+"-"+i.year()),(h.isSame(b({y:2e3}))||d.maxDate&&d.maxDate.isBefore(i,"y"))&&g.eq(2).addClass("disabled");!h.isAfter(i,"y");)a=h.year()+12,k=d.minDate&&d.minDate.isAfter(h,"y")&&d.minDate.year()<=a,l=d.maxDate&&d.maxDate.isAfter(h,"y")&&d.maxDate.year()<=a,m+='<span data-action="selectDecade" class="decade'+(e.isAfter(h)&&e.year()<=a?" active":"")+(R(h,"y")||k||l?"":" disabled")+'" data-selection="'+(h.year()+6)+'">'+(h.year()+1)+" - "+(h.year()+12)+"</span>",h.add(12,"y");m+="<span></span><span></span><span></span>",c.find("td").html(m),g.eq(1).text(j.year()+1+"-"+h.year())},W=function(){var b,c,g,h=o.find(".datepicker-days"),i=h.find("th"),j=[],k=[];if(B()){for(i.eq(0).find("span").attr("title",d.tooltips.prevMonth),i.eq(1).attr("title",d.tooltips.selectMonth),i.eq(2).find("span").attr("title",d.tooltips.nextMonth),h.find(".disabled").removeClass("disabled"),i.eq(1).text(f.format(d.dayViewHeaderFormat)),R(f.clone().subtract(1,"M"),"M")||i.eq(0).addClass("disabled"),R(f.clone().add(1,"M"),"M")||i.eq(2).addClass("disabled"),b=f.clone().startOf("M").startOf("w").startOf("d"),g=0;g<42;g++)0===b.weekday()&&(c=a("<tr>"),d.calendarWeeks&&c.append('<td class="cw">'+b.week()+"</td>"),j.push(c)),k=["day"],b.isBefore(f,"M")&&k.push("old"),b.isAfter(f,"M")&&k.push("new"),b.isSame(e,"d")&&!m&&k.push("active"),R(b,"d")||k.push("disabled"),b.isSame(y(),"d")&&k.push("today"),0!==b.day()&&6!==b.day()||k.push("weekend"),J({type:"dp.classify",date:b,classNames:k}),c.append('<td data-action="selectDay" data-day="'+b.format("L")+'" class="'+k.join(" ")+'">'+b.date()+"</td>"),b.add(1,"d");h.find("tbody").empty().append(j),T(),U(),V()}},X=function(){var b=o.find(".timepicker-hours table"),c=f.clone().startOf("d"),d=[],e=a("<tr>");for(f.hour()>11&&!h&&c.hour(12);c.isSame(f,"d")&&(h||f.hour()<12&&c.hour()<12||f.hour()>11);)c.hour()%4===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectHour" class="hour'+(R(c,"h")?"":" disabled")+'">'+c.format(h?"HH":"hh")+"</td>"),c.add(1,"h");b.empty().append(d)},Y=function(){for(var b=o.find(".timepicker-minutes table"),c=f.clone().startOf("h"),e=[],g=a("<tr>"),h=1===d.stepping?5:d.stepping;f.isSame(c,"h");)c.minute()%(4*h)===0&&(g=a("<tr>"),e.push(g)),g.append('<td data-action="selectMinute" class="minute'+(R(c,"m")?"":" disabled")+'">'+c.format("mm")+"</td>"),c.add(h,"m");b.empty().append(e)},Z=function(){for(var b=o.find(".timepicker-seconds table"),c=f.clone().startOf("m"),d=[],e=a("<tr>");f.isSame(c,"m");)c.second()%20===0&&(e=a("<tr>"),d.push(e)),e.append('<td data-action="selectSecond" class="second'+(R(c,"s")?"":" disabled")+'">'+c.format("ss")+"</td>"),c.add(5,"s");b.empty().append(d)},$=function(){var a,b,c=o.find(".timepicker span[data-time-component]");h||(a=o.find(".timepicker [data-action=togglePeriod]"),b=e.clone().add(e.hours()>=12?-12:12,"h"),a.text(e.format("A")),R(b,"h")?a.removeClass("disabled"):a.addClass("disabled")),c.filter("[data-time-component=hours]").text(e.format(h?"HH":"hh")),c.filter("[data-time-component=minutes]").text(e.format("mm")),c.filter("[data-time-component=seconds]").text(e.format("ss")),X(),Y(),Z()},_=function(){o&&(W(),$())},aa=function(a){var b=m?null:e;if(!a)return m=!0,g.val(""),c.data("date",""),J({type:"dp.change",date:!1,oldDate:b}),void _();if(a=a.clone().locale(d.locale),x()&&a.tz(d.timeZone),1!==d.stepping)for(a.minutes(Math.round(a.minutes()/d.stepping)*d.stepping).seconds(0);d.minDate&&a.isBefore(d.minDate);)a.add(d.stepping,"minutes");R(a)?(e=a,f=e.clone(),g.val(e.format(i)),c.data("date",e.format(i)),m=!1,_(),J({type:"dp.change",date:e.clone(),oldDate:b})):(d.keepInvalid?J({type:"dp.change",date:a,oldDate:b}):g.val(m?"":e.format(i)),J({type:"dp.error",date:a,oldDate:b}))},ba=function(){var b=!1;return o?(o.find(".collapse").each(function(){var c=a(this).data("collapse");return!c||!c.transitioning||(b=!0,!1)}),b?l:(n&&n.hasClass("btn")&&n.toggleClass("active"),o.hide(),a(window).off("resize",I),o.off("click","[data-action]"),o.off("mousedown",!1),o.remove(),o=!1,J({type:"dp.hide",date:e.clone()}),g.blur(),f=e.clone(),l)):l},ca=function(){aa(null)},da=function(a){return void 0===d.parseInputDate?(!b.isMoment(a)||a instanceof Date)&&(a=y(a)):a=d.parseInputDate(a),a},ea={next:function(){var a=q[k].navFnc;f.add(q[k].navStep,a),W(),K(a)},previous:function(){var a=q[k].navFnc;f.subtract(q[k].navStep,a),W(),K(a)},pickerSwitch:function(){L(1)},selectMonth:function(b){var c=a(b.target).closest("tbody").find("span").index(a(b.target));f.month(c),k===p?(aa(e.clone().year(f.year()).month(f.month())),d.inline||ba()):(L(-1),W()),K("M")},selectYear:function(b){var c=parseInt(a(b.target).text(),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDecade:function(b){var c=parseInt(a(b.target).data("selection"),10)||0;f.year(c),k===p?(aa(e.clone().year(f.year())),d.inline||ba()):(L(-1),W()),K("YYYY")},selectDay:function(b){var c=f.clone();a(b.target).is(".old")&&c.subtract(1,"M"),a(b.target).is(".new")&&c.add(1,"M"),aa(c.date(parseInt(a(b.target).text(),10))),A()||d.keepOpen||d.inline||ba()},incrementHours:function(){var a=e.clone().add(1,"h");R(a,"h")&&aa(a)},incrementMinutes:function(){var a=e.clone().add(d.stepping,"m");R(a,"m")&&aa(a)},incrementSeconds:function(){var a=e.clone().add(1,"s");R(a,"s")&&aa(a)},decrementHours:function(){var a=e.clone().subtract(1,"h");R(a,"h")&&aa(a)},decrementMinutes:function(){var a=e.clone().subtract(d.stepping,"m");R(a,"m")&&aa(a)},decrementSeconds:function(){var a=e.clone().subtract(1,"s");R(a,"s")&&aa(a)},togglePeriod:function(){aa(e.clone().add(e.hours()>=12?-12:12,"h"))},togglePicker:function(b){var c,e=a(b.target),f=e.closest("ul"),g=f.find(".in"),h=f.find(".collapse:not(.in)");if(g&&g.length){if(c=g.data("collapse"),c&&c.transitioning)return;g.collapse?(g.collapse("hide"),h.collapse("show")):(g.removeClass("in"),h.addClass("in")),e.is("span")?e.toggleClass(d.icons.time+" "+d.icons.date):e.find("span").toggleClass(d.icons.time+" "+d.icons.date)}},showPicker:function(){o.find(".timepicker > div:not(.timepicker-picker)").hide(),o.find(".timepicker .timepicker-picker").show()},showHours:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-hours").show()},showMinutes:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-minutes").show()},showSeconds:function(){o.find(".timepicker .timepicker-picker").hide(),o.find(".timepicker .timepicker-seconds").show()},selectHour:function(b){var c=parseInt(a(b.target).text(),10);h||(e.hours()>=12?12!==c&&(c+=12):12===c&&(c=0)),aa(e.clone().hours(c)),ea.showPicker.call(l)},selectMinute:function(b){aa(e.clone().minutes(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},selectSecond:function(b){aa(e.clone().seconds(parseInt(a(b.target).text(),10))),ea.showPicker.call(l)},clear:ca,today:function(){var a=y();R(a,"d")&&aa(a)},close:ba},fa=function(b){return!a(b.currentTarget).is(".disabled")&&(ea[a(b.currentTarget).data("action")].apply(l,arguments),!1)},ga=function(){var b,c={year:function(a){return a.month(0).date(1).hours(0).seconds(0).minutes(0)},month:function(a){return a.date(1).hours(0).seconds(0).minutes(0)},day:function(a){return a.hours(0).seconds(0).minutes(0)},hour:function(a){return a.seconds(0).minutes(0)},minute:function(a){return a.seconds(0)}};return g.prop("disabled")||!d.ignoreReadonly&&g.prop("readonly")||o?l:(void 0!==g.val()&&0!==g.val().trim().length?aa(da(g.val().trim())):m&&d.useCurrent&&(d.inline||g.is("input")&&0===g.val().trim().length)&&(b=y(),"string"==typeof d.useCurrent&&(b=c[d.useCurrent](b)),aa(b)),o=G(),M(),S(),o.find(".timepicker-hours").hide(),o.find(".timepicker-minutes").hide(),o.find(".timepicker-seconds").hide(),_(),L(),a(window).on("resize",I),o.on("click","[data-action]",fa),o.on("mousedown",!1),n&&n.hasClass("btn")&&n.toggleClass("active"),I(),o.show(),d.focusOnShow&&!g.is(":focus")&&g.focus(),J({type:"dp.show"}),l)},ha=function(){return o?ba():ga()},ia=function(a){var b,c,e,f,g=null,h=[],i={},j=a.which,k="p";w[j]=k;for(b in w)w.hasOwnProperty(b)&&w[b]===k&&(h.push(b),parseInt(b,10)!==j&&(i[b]=!0));for(b in d.keyBinds)if(d.keyBinds.hasOwnProperty(b)&&"function"==typeof d.keyBinds[b]&&(e=b.split(" "),e.length===h.length&&v[j]===e[e.length-1])){for(f=!0,c=e.length-2;c>=0;c--)if(!(v[e[c]]in i)){f=!1;break}if(f){g=d.keyBinds[b];break}}g&&(g.call(l,o),a.stopPropagation(),a.preventDefault())},ja=function(a){w[a.which]="r",a.stopPropagation(),a.preventDefault()},ka=function(b){var c=a(b.target).val().trim(),d=c?da(c):null;return aa(d),b.stopImmediatePropagation(),!1},la=function(){g.on({change:ka,blur:d.debug?"":ba,keydown:ia,keyup:ja,focus:d.allowInputToggle?ga:""}),c.is("input")?g.on({focus:ga}):n&&(n.on("click",ha),n.on("mousedown",!1))},ma=function(){g.off({change:ka,blur:blur,keydown:ia,keyup:ja,focus:d.allowInputToggle?ba:""}),c.is("input")?g.off({focus:ga}):n&&(n.off("click",ha),n.off("mousedown",!1))},na=function(b){var c={};return a.each(b,function(){var a=da(this);a.isValid()&&(c[a.format("YYYY-MM-DD")]=!0)}),!!Object.keys(c).length&&c},oa=function(b){var c={};return a.each(b,function(){c[this]=!0}),!!Object.keys(c).length&&c},pa=function(){var a=d.format||"L LT";i=a.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){var b=e.localeData().longDateFormat(a)||a;return b.replace(/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,function(a){return e.localeData().longDateFormat(a)||a})}),j=d.extraFormats?d.extraFormats.slice():[],j.indexOf(a)<0&&j.indexOf(i)<0&&j.push(i),h=i.toLowerCase().indexOf("a")<1&&i.replace(/\[.*?\]/g,"").indexOf("h")<1,z("y")&&(p=2),z("M")&&(p=1),z("d")&&(p=0),k=Math.max(p,k),m||aa(e)};if(l.destroy=function(){ba(),ma(),c.removeData("DateTimePicker"),c.removeData("date")},l.toggle=ha,l.show=ga,l.hide=ba,l.disable=function(){return ba(),n&&n.hasClass("btn")&&n.addClass("disabled"),g.prop("disabled",!0),l},l.enable=function(){return n&&n.hasClass("btn")&&n.removeClass("disabled"),g.prop("disabled",!1),l},l.ignoreReadonly=function(a){if(0===arguments.length)return d.ignoreReadonly;if("boolean"!=typeof a)throw new TypeError("ignoreReadonly () expects a boolean parameter");return d.ignoreReadonly=a,l},l.options=function(b){if(0===arguments.length)return a.extend(!0,{},d);if(!(b instanceof Object))throw new TypeError("options() options parameter should be an object");return a.extend(!0,d,b),a.each(d,function(a,b){if(void 0===l[a])throw new TypeError("option "+a+" is not recognized!");l[a](b)}),l},l.date=function(a){if(0===arguments.length)return m?null:e.clone();if(!(null===a||"string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("date() parameter must be one of [null, string, moment or Date]");return aa(null===a?null:da(a)),l},l.format=function(a){if(0===arguments.length)return d.format;if("string"!=typeof a&&("boolean"!=typeof a||a!==!1))throw new TypeError("format() expects a string or boolean:false parameter "+a);return d.format=a,i&&pa(),l},l.timeZone=function(a){if(0===arguments.length)return d.timeZone;if("string"!=typeof a)throw new TypeError("newZone() expects a string parameter");return d.timeZone=a,l},l.dayViewHeaderFormat=function(a){if(0===arguments.length)return d.dayViewHeaderFormat;if("string"!=typeof a)throw new TypeError("dayViewHeaderFormat() expects a string parameter");return d.dayViewHeaderFormat=a,l},l.extraFormats=function(a){if(0===arguments.length)return d.extraFormats;if(a!==!1&&!(a instanceof Array))throw new TypeError("extraFormats() expects an array or false parameter");return d.extraFormats=a,j&&pa(),l},l.disabledDates=function(b){if(0===arguments.length)return d.disabledDates?a.extend({},d.disabledDates):d.disabledDates;if(!b)return d.disabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledDates() expects an array parameter");return d.disabledDates=na(b),d.enabledDates=!1,_(),l},l.enabledDates=function(b){if(0===arguments.length)return d.enabledDates?a.extend({},d.enabledDates):d.enabledDates;if(!b)return d.enabledDates=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledDates() expects an array parameter");return d.enabledDates=na(b),d.disabledDates=!1,_(),l},l.daysOfWeekDisabled=function(a){if(0===arguments.length)return d.daysOfWeekDisabled.splice(0);if("boolean"==typeof a&&!a)return d.daysOfWeekDisabled=!1,_(),l;if(!(a instanceof Array))throw new TypeError("daysOfWeekDisabled() expects an array parameter");if(d.daysOfWeekDisabled=a.reduce(function(a,b){return b=parseInt(b,10),b>6||b<0||isNaN(b)?a:(a.indexOf(b)===-1&&a.push(b),a)},[]).sort(),d.useCurrent&&!d.keepInvalid){for(var b=0;!R(e,"d");){if(e.add(1,"d"),31===b)throw"Tried 31 times to find a valid date";b++}aa(e)}return _(),l},l.maxDate=function(a){if(0===arguments.length)return d.maxDate?d.maxDate.clone():d.maxDate;if("boolean"==typeof a&&a===!1)return d.maxDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("maxDate() Could not parse date parameter: "+a);if(d.minDate&&b.isBefore(d.minDate))throw new TypeError("maxDate() date parameter is before options.minDate: "+b.format(i));return d.maxDate=b,d.useCurrent&&!d.keepInvalid&&e.isAfter(a)&&aa(d.maxDate),f.isAfter(b)&&(f=b.clone().subtract(d.stepping,"m")),_(),l},l.minDate=function(a){if(0===arguments.length)return d.minDate?d.minDate.clone():d.minDate;if("boolean"==typeof a&&a===!1)return d.minDate=!1,_(),l;"string"==typeof a&&("now"!==a&&"moment"!==a||(a=y()));var b=da(a);if(!b.isValid())throw new TypeError("minDate() Could not parse date parameter: "+a);if(d.maxDate&&b.isAfter(d.maxDate))throw new TypeError("minDate() date parameter is after options.maxDate: "+b.format(i));return d.minDate=b,d.useCurrent&&!d.keepInvalid&&e.isBefore(a)&&aa(d.minDate),f.isBefore(b)&&(f=b.clone().add(d.stepping,"m")),_(),l},l.defaultDate=function(a){if(0===arguments.length)return d.defaultDate?d.defaultDate.clone():d.defaultDate;if(!a)return d.defaultDate=!1,l;"string"==typeof a&&(a="now"===a||"moment"===a?y():y(a));var b=da(a);if(!b.isValid())throw new TypeError("defaultDate() Could not parse date parameter: "+a);if(!R(b))throw new TypeError("defaultDate() date passed is invalid according to component setup validations");return d.defaultDate=b,(d.defaultDate&&d.inline||""===g.val().trim())&&aa(d.defaultDate),l},l.locale=function(a){if(0===arguments.length)return d.locale;if(!b.localeData(a))throw new TypeError("locale() locale "+a+" is not loaded from moment locales!");return d.locale=a,e.locale(d.locale),f.locale(d.locale),i&&pa(),o&&(ba(),ga()),l},l.stepping=function(a){return 0===arguments.length?d.stepping:(a=parseInt(a,10),(isNaN(a)||a<1)&&(a=1),d.stepping=a,l)},l.useCurrent=function(a){var b=["year","month","day","hour","minute"];if(0===arguments.length)return d.useCurrent;if("boolean"!=typeof a&&"string"!=typeof a)throw new TypeError("useCurrent() expects a boolean or string parameter");if("string"==typeof a&&b.indexOf(a.toLowerCase())===-1)throw new TypeError("useCurrent() expects a string parameter of "+b.join(", "));return d.useCurrent=a,l},l.collapse=function(a){if(0===arguments.length)return d.collapse;if("boolean"!=typeof a)throw new TypeError("collapse() expects a boolean parameter");return d.collapse===a?l:(d.collapse=a,o&&(ba(),ga()),l)},l.icons=function(b){if(0===arguments.length)return a.extend({},d.icons);if(!(b instanceof Object))throw new TypeError("icons() expects parameter to be an Object");return a.extend(d.icons,b),o&&(ba(),ga()),l},l.tooltips=function(b){if(0===arguments.length)return a.extend({},d.tooltips);if(!(b instanceof Object))throw new TypeError("tooltips() expects parameter to be an Object");return a.extend(d.tooltips,b),o&&(ba(),ga()),l},l.useStrict=function(a){if(0===arguments.length)return d.useStrict;if("boolean"!=typeof a)throw new TypeError("useStrict() expects a boolean parameter");return d.useStrict=a,l},l.sideBySide=function(a){if(0===arguments.length)return d.sideBySide;if("boolean"!=typeof a)throw new TypeError("sideBySide() expects a boolean parameter");return d.sideBySide=a,o&&(ba(),ga()),l},l.viewMode=function(a){if(0===arguments.length)return d.viewMode;if("string"!=typeof a)throw new TypeError("viewMode() expects a string parameter");if(r.indexOf(a)===-1)throw new TypeError("viewMode() parameter must be one of ("+r.join(", ")+") value");return d.viewMode=a,k=Math.max(r.indexOf(a),p),L(),l},l.toolbarPlacement=function(a){if(0===arguments.length)return d.toolbarPlacement;if("string"!=typeof a)throw new TypeError("toolbarPlacement() expects a string parameter");if(u.indexOf(a)===-1)throw new TypeError("toolbarPlacement() parameter must be one of ("+u.join(", ")+") value");return d.toolbarPlacement=a,o&&(ba(),ga()),l},l.widgetPositioning=function(b){if(0===arguments.length)return a.extend({},d.widgetPositioning);if("[object Object]"!=={}.toString.call(b))throw new TypeError("widgetPositioning() expects an object variable");if(b.horizontal){if("string"!=typeof b.horizontal)throw new TypeError("widgetPositioning() horizontal variable must be a string");if(b.horizontal=b.horizontal.toLowerCase(),t.indexOf(b.horizontal)===-1)throw new TypeError("widgetPositioning() expects horizontal parameter to be one of ("+t.join(", ")+")");d.widgetPositioning.horizontal=b.horizontal}if(b.vertical){if("string"!=typeof b.vertical)throw new TypeError("widgetPositioning() vertical variable must be a string");if(b.vertical=b.vertical.toLowerCase(),s.indexOf(b.vertical)===-1)throw new TypeError("widgetPositioning() expects vertical parameter to be one of ("+s.join(", ")+")");d.widgetPositioning.vertical=b.vertical}return _(),l},l.calendarWeeks=function(a){if(0===arguments.length)return d.calendarWeeks;if("boolean"!=typeof a)throw new TypeError("calendarWeeks() expects parameter to be a boolean value");return d.calendarWeeks=a,_(),l},l.showTodayButton=function(a){if(0===arguments.length)return d.showTodayButton;if("boolean"!=typeof a)throw new TypeError("showTodayButton() expects a boolean parameter");return d.showTodayButton=a,o&&(ba(),ga()),l},l.showClear=function(a){if(0===arguments.length)return d.showClear;if("boolean"!=typeof a)throw new TypeError("showClear() expects a boolean parameter");return d.showClear=a,o&&(ba(),ga()),l},l.widgetParent=function(b){if(0===arguments.length)return d.widgetParent;if("string"==typeof b&&(b=a(b)),null!==b&&"string"!=typeof b&&!(b instanceof a))throw new TypeError("widgetParent() expects a string or a jQuery object parameter");return d.widgetParent=b,o&&(ba(),ga()),l},l.keepOpen=function(a){if(0===arguments.length)return d.keepOpen;if("boolean"!=typeof a)throw new TypeError("keepOpen() expects a boolean parameter");return d.keepOpen=a,l},l.focusOnShow=function(a){if(0===arguments.length)return d.focusOnShow;if("boolean"!=typeof a)throw new TypeError("focusOnShow() expects a boolean parameter");return d.focusOnShow=a,l},l.inline=function(a){if(0===arguments.length)return d.inline;if("boolean"!=typeof a)throw new TypeError("inline() expects a boolean parameter");return d.inline=a,l},l.clear=function(){return ca(),l},l.keyBinds=function(a){return 0===arguments.length?d.keyBinds:(d.keyBinds=a,l)},l.getMoment=function(a){return y(a)},l.debug=function(a){if("boolean"!=typeof a)throw new TypeError("debug() expects a boolean parameter");return d.debug=a,l},l.allowInputToggle=function(a){if(0===arguments.length)return d.allowInputToggle;if("boolean"!=typeof a)throw new TypeError("allowInputToggle() expects a boolean parameter");return d.allowInputToggle=a,l},l.showClose=function(a){if(0===arguments.length)return d.showClose;if("boolean"!=typeof a)throw new TypeError("showClose() expects a boolean parameter");return d.showClose=a,l},l.keepInvalid=function(a){if(0===arguments.length)return d.keepInvalid;if("boolean"!=typeof a)throw new TypeError("keepInvalid() expects a boolean parameter");
|
601 |
return d.keepInvalid=a,l},l.datepickerInput=function(a){if(0===arguments.length)return d.datepickerInput;if("string"!=typeof a)throw new TypeError("datepickerInput() expects a string parameter");return d.datepickerInput=a,l},l.parseInputDate=function(a){if(0===arguments.length)return d.parseInputDate;if("function"!=typeof a)throw new TypeError("parseInputDate() sholud be as function");return d.parseInputDate=a,l},l.disabledTimeIntervals=function(b){if(0===arguments.length)return d.disabledTimeIntervals?a.extend({},d.disabledTimeIntervals):d.disabledTimeIntervals;if(!b)return d.disabledTimeIntervals=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledTimeIntervals() expects an array parameter");return d.disabledTimeIntervals=b,_(),l},l.disabledHours=function(b){if(0===arguments.length)return d.disabledHours?a.extend({},d.disabledHours):d.disabledHours;if(!b)return d.disabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("disabledHours() expects an array parameter");if(d.disabledHours=oa(b),d.enabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.enabledHours=function(b){if(0===arguments.length)return d.enabledHours?a.extend({},d.enabledHours):d.enabledHours;if(!b)return d.enabledHours=!1,_(),l;if(!(b instanceof Array))throw new TypeError("enabledHours() expects an array parameter");if(d.enabledHours=oa(b),d.disabledHours=!1,d.useCurrent&&!d.keepInvalid){for(var c=0;!R(e,"h");){if(e.add(1,"h"),24===c)throw"Tried 24 times to find a valid date";c++}aa(e)}return _(),l},l.viewDate=function(a){if(0===arguments.length)return f.clone();if(!a)return f=e.clone(),l;if(!("string"==typeof a||b.isMoment(a)||a instanceof Date))throw new TypeError("viewDate() parameter must be one of [string, moment or Date]");return f=da(a),K(),l},c.is("input"))g=c;else if(g=c.find(d.datepickerInput),0===g.length)g=c.find("input");else if(!g.is("input"))throw new Error('CSS class "'+d.datepickerInput+'" cannot be applied to non input element');if(c.hasClass("input-group")&&(n=0===c.find(".datepickerbutton").length?c.find(".input-group-addon"):c.find(".datepickerbutton")),!d.inline&&!g.is("input"))throw new Error("Could not initialize DateTimePicker without an input element");return e=y(),f=e.clone(),a.extend(!0,d,H()),l.options(d),pa(),la(),g.prop("disabled")&&l.disable(),g.is("input")&&0!==g.val().trim().length?aa(da(g.val().trim())):d.defaultDate&&void 0===g.attr("placeholder")&&aa(d.defaultDate),d.inline&&ga(),l};return a.fn.datetimepicker=function(b){b=b||{};var d,e=Array.prototype.slice.call(arguments,1),f=!0,g=["destroy","hide","show","toggle"];if("object"==typeof b)return this.each(function(){var d,e=a(this);e.data("DateTimePicker")||(d=a.extend(!0,{},a.fn.datetimepicker.defaults,b),e.data("DateTimePicker",c(e,d)))});if("string"==typeof b)return this.each(function(){var c=a(this),g=c.data("DateTimePicker");if(!g)throw new Error('bootstrap-datetimepicker("'+b+'") method was called on an element that is not using DateTimePicker');d=g[b].apply(g,e),f=d===g}),f||a.inArray(b,g)>-1?this:d;throw new TypeError("Invalid arguments for DateTimePicker: "+b)},a.fn.datetimepicker.defaults={timeZone:"",format:!1,dayViewHeaderFormat:"MMMM YYYY",extraFormats:!1,stepping:1,minDate:!1,maxDate:!1,useCurrent:!0,collapse:!0,locale:b.locale(),defaultDate:!1,disabledDates:!1,enabledDates:!1,icons:{time:"glyphicon glyphicon-time",date:"glyphicon glyphicon-calendar",up:"glyphicon glyphicon-chevron-up",down:"glyphicon glyphicon-chevron-down",previous:"glyphicon glyphicon-chevron-left",next:"glyphicon glyphicon-chevron-right",today:"glyphicon glyphicon-screenshot",clear:"glyphicon glyphicon-trash",close:"glyphicon glyphicon-remove"},tooltips:{today:"Go to today",clear:"Clear selection",close:"Close the picker",selectMonth:"Select Month",prevMonth:"Previous Month",nextMonth:"Next Month",selectYear:"Select Year",prevYear:"Previous Year",nextYear:"Next Year",selectDecade:"Select Decade",prevDecade:"Previous Decade",nextDecade:"Next Decade",prevCentury:"Previous Century",nextCentury:"Next Century",pickHour:"Pick Hour",incrementHour:"Increment Hour",decrementHour:"Decrement Hour",pickMinute:"Pick Minute",incrementMinute:"Increment Minute",decrementMinute:"Decrement Minute",pickSecond:"Pick Second",incrementSecond:"Increment Second",decrementSecond:"Decrement Second",togglePeriod:"Toggle Period",selectTime:"Select Time"},useStrict:!1,sideBySide:!1,daysOfWeekDisabled:!1,calendarWeeks:!1,viewMode:"days",toolbarPlacement:"default",showTodayButton:!1,showClear:!1,showClose:!1,widgetPositioning:{horizontal:"auto",vertical:"auto"},widgetParent:null,ignoreReadonly:!1,keepOpen:!1,focusOnShow:!0,inline:!1,keepInvalid:!1,datepickerInput:".datepickerinput",keyBinds:{up:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(7,"d")):this.date(b.clone().add(this.stepping(),"m"))}},down:function(a){if(!a)return void this.show();var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(7,"d")):this.date(b.clone().subtract(this.stepping(),"m"))},"control up":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().subtract(1,"y")):this.date(b.clone().add(1,"h"))}},"control down":function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")?this.date(b.clone().add(1,"y")):this.date(b.clone().subtract(1,"h"))}},left:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"d"))}},right:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"d"))}},pageUp:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().subtract(1,"M"))}},pageDown:function(a){if(a){var b=this.date()||this.getMoment();a.find(".datepicker").is(":visible")&&this.date(b.clone().add(1,"M"))}},enter:function(){this.hide()},escape:function(){this.hide()},"control space":function(a){a&&a.find(".timepicker").is(":visible")&&a.find('.btn[data-action="togglePeriod"]').click()},t:function(){this.date(this.getMoment())},delete:function(){this.clear()}},debug:!1,allowInputToggle:!1,disabledTimeIntervals:!1,disabledHours:!1,enabledHours:!1,viewDate:!1},a.fn.datetimepicker});
|
602 |
|
603 |
+
/**
|
604 |
+
* Copyright Marc J. Schmidt. See the LICENSE file at the top-level
|
605 |
+
* directory of this distribution and at
|
606 |
+
* https://github.com/marcj/css-element-queries/blob/master/LICENSE.
|
607 |
+
*/
|
608 |
+
(function(l,n){"function"===typeof define&&define.amd?define(n):"object"===typeof exports?module.exports=n():l.ResizeSensor=n()})("undefined"!==typeof window?window:this,function(){function l(a,d){var b=Object.prototype.toString.call(a),e=0,h=a.length;if("[object Array]"===b||"[object NodeList]"===b||"[object HTMLCollection]"===b||"[object Object]"===b||"undefined"!==typeof jQuery&&a instanceof jQuery||"undefined"!==typeof Elements&&a instanceof Elements)for(;e<h;e++)d(a[e]);else d(a)}function n(a){if(!a.getBoundingClientRect)return{width:a.offsetWidth,
|
609 |
+
height:a.offsetHeight};a=a.getBoundingClientRect();return{width:Math.round(a.width),height:Math.round(a.height)}}function p(a,d){Object.keys(d).forEach(function(b){a.style[b]=d[b]})}if("undefined"===typeof window)return null;var g="undefined"!=typeof window&&Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")(),t=g.requestAnimationFrame||g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||function(a){return g.setTimeout(a,20)},u=g.cancelAnimationFrame||
|
610 |
+
g.mozCancelAnimationFrame||g.webkitCancelAnimationFrame||function(a){g.clearTimeout(a)},k=function(a,d){function b(){var c=[];this.add=function(a){c.push(a)};var a,b;this.call=function(f){a=0;for(b=c.length;a<b;a++)c[a].call(this,f)};this.remove=function(f){var d=[];a=0;for(b=c.length;a<b;a++)c[a]!==f&&d.push(c[a]);c=d};this.length=function(){return c.length}}function e(a,d){if(a)if(a.resizedAttached)a.resizedAttached.add(d);else{a.resizedAttached=new b;a.resizedAttached.add(d);a.resizeSensor=document.createElement("div");
|
611 |
+
a.resizeSensor.dir="ltr";a.resizeSensor.className="resize-sensor";var c={pointerEvents:"none",position:"absolute",left:"0px",top:"0px",right:"0px",bottom:"0px",overflow:"hidden",zIndex:"-1",visibility:"hidden",maxWidth:"100%"},f={position:"absolute",left:"0px",top:"0px",transition:"0s"};p(a.resizeSensor,c);var e=document.createElement("div");e.className="resize-sensor-expand";p(e,c);var g=document.createElement("div");p(g,f);e.appendChild(g);var m=document.createElement("div");m.className="resize-sensor-shrink";
|
612 |
+
p(m,c);c=document.createElement("div");p(c,f);p(c,{width:"200%",height:"200%"});m.appendChild(c);a.resizeSensor.appendChild(e);a.resizeSensor.appendChild(m);a.appendChild(a.resizeSensor);f=(f=window.getComputedStyle(a))?f.getPropertyValue("position"):null;"absolute"!==f&&"relative"!==f&&"fixed"!==f&&"sticky"!==f&&(a.style.position="relative");var l=!1,k=0,q=n(a),w=0,x=0,y=!0;h=0;var u=function(){var b=a.offsetWidth,c=a.offsetHeight;g.style.width=b+10+"px";g.style.height=c+10+"px";e.scrollLeft=b+10;
|
613 |
+
e.scrollTop=c+10;m.scrollLeft=b+10;m.scrollTop=c+10},r=function(){if(y){if(0===a.offsetWidth&&0===a.offsetHeight){h||(h=t(function(){h=0;r()}));return}y=!1}u()};a.resizeSensor.resetSensor=r;var v=function(){k=0;l&&(w=q.width,x=q.height,a.resizedAttached&&a.resizedAttached.call(q))};f=function(){q=n(a);(l=q.width!==w||q.height!==x)&&!k&&(k=t(v));r()};c=function(a,b,c){a.attachEvent?a.attachEvent("on"+b,c):a.addEventListener(b,c)};c(e,"scroll",f);c(m,"scroll",f);h=t(function(){h=0;r()})}}var h=0;l(a,
|
614 |
+
function(a){e(a,d)});this.detach=function(b){h&&(u(h),h=0);k.detach(a,b)};this.reset=function(){a.resizeSensor.resetSensor&&a.resizeSensor.resetSensor()}};k.reset=function(a){l(a,function(d){a.resizeSensor.resetSensor&&d.resizeSensor.resetSensor()})};k.detach=function(a,d){l(a,function(a){if(a){if(a.resizedAttached&&"function"===typeof d&&(a.resizedAttached.remove(d),a.resizedAttached.length()))return;a.resizeSensor&&(a.contains(a.resizeSensor)&&a.removeChild(a.resizeSensor),delete a.resizeSensor,
|
615 |
+
delete a.resizedAttached)}})};if("undefined"!==typeof MutationObserver){var v=new MutationObserver(function(a){for(var d in a)if(a.hasOwnProperty(d))for(var b=a[d].addedNodes,e=0;e<b.length;e++)b[e].resizeSensor&&k.reset(b[e])});document.addEventListener("DOMContentLoaded",function(a){v.observe(document.body,{childList:!0,subtree:!0})})}return k});
|
616 |
+
|
617 |
/*!
|
618 |
* clipboard.js v2.0.4
|
619 |
* https://zenorocha.github.io/clipboard.js
|
620 |
+
*
|
621 |
* Licensed MIT © Zeno Rocha
|
622 |
*/
|
623 |
!function (t, e) { "object" == typeof exports && "object" == typeof service ? service.exports = e() : "function" == typeof define && define.amd ? define([], e) : "object" == typeof exports ? exports.ClipboardJS = e() : t.ClipboardJS = e() }(this, function () { return function (n) { var o = {}; function r(t) { if (o[t]) return o[t].exports; var e = o[t] = { i: t, l: !1, exports: {} }; return n[t].call(e.exports, e, e.exports, r), e.l = !0, e.exports } return r.m = n, r.c = o, r.d = function (t, e, n) { r.o(t, e) || Object.defineProperty(t, e, { enumerable: !0, get: n }) }, r.r = function (t) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, { value: "Service" }), Object.defineProperty(t, "__esService", { value: !0 }) }, r.t = function (e, t) { if (1 & t && (e = r(e)), 8 & t) return e; if (4 & t && "object" == typeof e && e && e.__esService) return e; var n = Object.create(null); if (r.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: e }), 2 & t && "string" != typeof e) for (var o in e) r.d(n, o, function (t) { return e[t] }.bind(null, o)); return n }, r.n = function (t) { var e = t && t.__esService ? function () { return t.default } : function () { return t }; return r.d(e, "a", e), e }, r.o = function (t, e) { return Object.prototype.hasOwnProperty.call(t, e) }, r.p = "", r(r.s = 0) }([function (t, e, n) { "use strict"; var r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i = function () { function o(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } return function (t, e, n) { return e && o(t.prototype, e), n && o(t, n), t } }(), a = o(n(1)), c = o(n(3)), u = o(n(4)); function o(t) { return t && t.__esService ? t : { default: t } } var l = function (t) { function o(t, e) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, o); var n = function (t, e) { if (!t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !e || "object" != typeof e && "function" != typeof e ? t : e }(this, (o.__proto__ || Object.getPrototypeOf(o)).call(this)); return n.resolveOptions(e), n.listenClick(t), n } return function (t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function, not " + typeof e); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, enumerable: !1, writable: !0, configurable: !0 } }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e) }(o, c.default), i(o, [{ key: "resolveOptions", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = "function" == typeof t.action ? t.action : this.defaultAction, this.target = "function" == typeof t.target ? t.target : this.defaultTarget, this.text = "function" == typeof t.text ? t.text : this.defaultText, this.container = "object" === r(t.container) ? t.container : document.body } }, { key: "listenClick", value: function (t) { var e = this; this.listener = (0, u.default)(t, "click", function (t) { return e.onClick(t) }) } }, { key: "onClick", value: function (t) { var e = t.delegateTarget || t.currentTarget; this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new a.default({ action: this.action(e), target: this.target(e), text: this.text(e), container: this.container, trigger: e, emitter: this }) } }, { key: "defaultAction", value: function (t) { return s("action", t) } }, { key: "defaultTarget", value: function (t) { var e = s("target", t); if (e) return document.querySelector(e) } }, { key: "defaultText", value: function (t) { return s("text", t) } }, { key: "destroy", value: function () { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) } }], [{ key: "isSupported", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], e = "string" == typeof t ? [t] : t, n = !!document.queryCommandSupported; return e.forEach(function (t) { n = n && !!document.queryCommandSupported(t) }), n } }]), o }(); function s(t, e) { var n = "data-clipboard-" + t; if (e.hasAttribute(n)) return e.getAttribute(n) } t.exports = l }, function (t, e, n) { "use strict"; var o, r = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (t) { return typeof t } : function (t) { return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t }, i = function () { function o(t, e) { for (var n = 0; n < e.length; n++) { var o = e[n]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(t, o.key, o) } } return function (t, e, n) { return e && o(t.prototype, e), n && o(t, n), t } }(), a = n(2), c = (o = a) && o.__esService ? o : { default: o }; var u = function () { function e(t) { !function (t, e) { if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") }(this, e), this.resolveOptions(t), this.initSelection() } return i(e, [{ key: "resolveOptions", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this.action = t.action, this.container = t.container, this.emitter = t.emitter, this.target = t.target, this.text = t.text, this.trigger = t.trigger, this.selectedText = "" } }, { key: "initSelection", value: function () { this.text ? this.selectFake() : this.target && this.selectTarget() } }, { key: "selectFake", value: function () { var t = this, e = "rtl" == document.documentElement.getAttribute("dir"); this.removeFake(), this.fakeHandlerCallback = function () { return t.removeFake() }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[e ? "right" : "left"] = "-9999px"; var n = window.pageYOffset || document.documentElement.scrollTop; this.fakeElem.style.top = n + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, c.default)(this.fakeElem), this.copyText() } }, { key: "removeFake", value: function () { this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) } }, { key: "selectTarget", value: function () { this.selectedText = (0, c.default)(this.target), this.copyText() } }, { key: "copyText", value: function () { var e = void 0; try { e = document.execCommand(this.action) } catch (t) { e = !1 } this.handleResult(e) } }, { key: "handleResult", value: function (t) { this.emitter.emit(t ? "success" : "error", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) } }, { key: "clearSelection", value: function () { this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() } }, { key: "destroy", value: function () { this.removeFake() } }, { key: "action", set: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : "copy"; if (this._action = t, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function () { return this._action } }, { key: "target", set: function (t) { if (void 0 !== t) { if (!t || "object" !== (void 0 === t ? "undefined" : r(t)) || 1 !== t.nodeType) throw new Error('Invalid "target" value, use a valid Element'); if ("copy" === this.action && t.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); if ("cut" === this.action && (t.hasAttribute("readonly") || t.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); this._target = t } }, get: function () { return this._target } }]), e }(); t.exports = u }, function (t, e) { t.exports = function (t) { var e; if ("SELECT" === t.nodeName) t.focus(), e = t.value; else if ("INPUT" === t.nodeName || "TEXTAREA" === t.nodeName) { var n = t.hasAttribute("readonly"); n || t.setAttribute("readonly", ""), t.select(), t.setSelectionRange(0, t.value.length), n || t.removeAttribute("readonly"), e = t.value } else { t.hasAttribute("contenteditable") && t.focus(); var o = window.getSelection(), r = document.createRange(); r.selectNodeContents(t), o.removeAllRanges(), o.addRange(r), e = o.toString() } return e } }, function (t, e) { function n() { } n.prototype = { on: function (t, e, n) { var o = this.e || (this.e = {}); return (o[t] || (o[t] = [])).push({ fn: e, ctx: n }), this }, once: function (t, e, n) { var o = this; function r() { o.off(t, r), e.apply(n, arguments) } return r._ = e, this.on(t, r, n) }, emit: function (t) { for (var e = [].slice.call(arguments, 1), n = ((this.e || (this.e = {}))[t] || []).slice(), o = 0, r = n.length; o < r; o++)n[o].fn.apply(n[o].ctx, e); return this }, off: function (t, e) { var n = this.e || (this.e = {}), o = n[t], r = []; if (o && e) for (var i = 0, a = o.length; i < a; i++)o[i].fn !== e && o[i].fn._ !== e && r.push(o[i]); return r.length ? n[t] = r : delete n[t], this } }, t.exports = n }, function (t, e, n) { var d = n(5), h = n(6); t.exports = function (t, e, n) { if (!t && !e && !n) throw new Error("Missing required arguments"); if (!d.string(e)) throw new TypeError("Second argument must be a String"); if (!d.fn(n)) throw new TypeError("Third argument must be a Function"); if (d.node(t)) return s = e, f = n, (l = t).addEventListener(s, f), { destroy: function () { l.removeEventListener(s, f) } }; if (d.nodeList(t)) return a = t, c = e, u = n, Array.prototype.forEach.call(a, function (t) { t.addEventListener(c, u) }), { destroy: function () { Array.prototype.forEach.call(a, function (t) { t.removeEventListener(c, u) }) } }; if (d.string(t)) return o = t, r = e, i = n, h(document.body, o, r, i); throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList"); var o, r, i, a, c, u, l, s, f } }, function (t, n) { n.node = function (t) { return void 0 !== t && t instanceof HTMLElement && 1 === t.nodeType }, n.nodeList = function (t) { var e = Object.prototype.toString.call(t); return void 0 !== t && ("[object NodeList]" === e || "[object HTMLCollection]" === e) && "length" in t && (0 === t.length || n.node(t[0])) }, n.string = function (t) { return "string" == typeof t || t instanceof String }, n.fn = function (t) { return "[object Function]" === Object.prototype.toString.call(t) } }, function (t, e, n) { var a = n(7); function i(t, e, n, o, r) { var i = function (e, n, t, o) { return function (t) { t.delegateTarget = a(t.target, n), t.delegateTarget && o.call(e, t) } }.apply(this, arguments); return t.addEventListener(n, i, r), { destroy: function () { t.removeEventListener(n, i, r) } } } t.exports = function (t, e, n, o, r) { return "function" == typeof t.addEventListener ? i.apply(null, arguments) : "function" == typeof n ? i.bind(null, document).apply(null, arguments) : ("string" == typeof t && (t = document.querySelectorAll(t)), Array.prototype.map.call(t, function (t) { return i(t, e, n, o, r) })) } }, function (t, e) { if ("undefined" != typeof Element && !Element.prototype.matches) { var n = Element.prototype; n.matches = n.matchesSelector || n.mozMatchesSelector || n.msMatchesSelector || n.oMatchesSelector || n.webkitMatchesSelector } t.exports = function (t, e) { for (; t && 9 !== t.nodeType;) { if ("function" == typeof t.matches && t.matches(e)) return t; t = t.parentNode } } }]) });
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: vasyltech
|
|
3 |
Tags: access control, membership, backend menu, user role, restricted content, security, jwt
|
4 |
Requires at least: 4.7.0
|
5 |
Requires PHP: 5.6.0
|
6 |
-
Tested up to: 5.4.
|
7 |
-
Stable tag: 6.
|
8 |
|
9 |
All you need to manage access to WordPress websites on the frontend, backend and API levels for any role, user or visitors.
|
10 |
|
@@ -91,6 +91,22 @@ We take security and privacy very seriously, that is why there are several non-n
|
|
91 |
|
92 |
== Changelog ==
|
93 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
= 6.4.3 =
|
95 |
* Fixed Bug: Invalid AAM notifications [https://github.com/aamplugin/advanced-access-manager/issues/92](https://github.com/aamplugin/advanced-access-manager/issues/92)
|
96 |
* Fixed Bug: HTTP redirect status code must be a redirection code, 3xx [https://github.com/aamplugin/advanced-access-manager/issues/94](https://github.com/aamplugin/advanced-access-manager/issues/94)
|
3 |
Tags: access control, membership, backend menu, user role, restricted content, security, jwt
|
4 |
Requires at least: 4.7.0
|
5 |
Requires PHP: 5.6.0
|
6 |
+
Tested up to: 5.4.1
|
7 |
+
Stable tag: 6.5.0
|
8 |
|
9 |
All you need to manage access to WordPress websites on the frontend, backend and API levels for any role, user or visitors.
|
10 |
|
91 |
|
92 |
== Changelog ==
|
93 |
|
94 |
+
= 6.5.0 =
|
95 |
+
* Fixed Bug: No visual loading process in the Post Access metabox [https://github.com/aamplugin/advanced-access-manager/issues/111](https://github.com/aamplugin/advanced-access-manager/issues/111)
|
96 |
+
* Fixed Bug: Safari browser cropps the modals [https://github.com/aamplugin/advanced-access-manager/issues/107](https://github.com/aamplugin/advanced-access-manager/issues/107)
|
97 |
+
* Fixed Bug: Backend menu IDs with upper-case letters fail to restrict [https://github.com/aamplugin/advanced-access-manager/issues/105](https://github.com/aamplugin/advanced-access-manager/issues/105)
|
98 |
+
* Fixed Bug: Deleting role does not reload the main panel [https://github.com/aamplugin/advanced-access-manager/issues/102](https://github.com/aamplugin/advanced-access-manager/issues/102)
|
99 |
+
* Fixed Bug: Incorrect user login redirect with passworless URL [https://github.com/aamplugin/advanced-access-manager/issues/98](https://github.com/aamplugin/advanced-access-manager/issues/98)
|
100 |
+
* Added New: The ability to reset access settings for any specific subject [https://github.com/aamplugin/advanced-access-manager/issues/109](https://github.com/aamplugin/advanced-access-manager/issues/109)
|
101 |
+
* Added New: Slug to the Posts & Terms tab [https://github.com/aamplugin/advanced-access-manager/issues/108](https://github.com/aamplugin/advanced-access-manager/issues/108)
|
102 |
+
* Added New: Use `Authorization` header with fallback to `Authentication` [https://github.com/aamplugin/advanced-access-manager/issues/99](https://github.com/aamplugin/advanced-access-manager/issues/99)
|
103 |
+
* Added New: Filter post's content with [aam] shortcode and capability [https://github.com/aamplugin/advanced-access-manager/issues/96](https://github.com/aamplugin/advanced-access-manager/issues/96)
|
104 |
+
* Added New: The ability to manage access to navigation menu[https://github.com/aamplugin/advanced-access-manager/issues/89](https://github.com/aamplugin/advanced-access-manager/issues/89)
|
105 |
+
* Changed: Simplify support message payload [https://github.com/aamplugin/advanced-access-manager/issues/106](https://github.com/aamplugin/advanced-access-manager/issues/106)
|
106 |
+
* Changed: Update bootstrap to 3.4.1 [https://github.com/aamplugin/advanced-access-manager/issues/95](https://github.com/aamplugin/advanced-access-manager/issues/95)
|
107 |
+
* Changed: Dynamically adjust AAM iFrame to its content [https://github.com/aamplugin/advanced-access-manager/issues/104](https://github.com/aamplugin/advanced-access-manager/issues/104)
|
108 |
+
* Changed: Enhance role cloning feature [https://github.com/aamplugin/advanced-access-manager/issues/97](https://github.com/aamplugin/advanced-access-manager/issues/97)
|
109 |
+
|
110 |
= 6.4.3 =
|
111 |
* Fixed Bug: Invalid AAM notifications [https://github.com/aamplugin/advanced-access-manager/issues/92](https://github.com/aamplugin/advanced-access-manager/issues/92)
|
112 |
* Fixed Bug: HTTP redirect status code must be a redirection code, 3xx [https://github.com/aamplugin/advanced-access-manager/issues/94](https://github.com/aamplugin/advanced-access-manager/issues/94)
|