Advanced AJAX Product Filters - Version 1.3.1

Version Description

  • Enhancement - Update BeRocket plugin framework 2.1
  • Fix - Hide widgets without values
  • Fix - Hide on mobile/tablet/desktop
Download this release

Release Info

Developer RazyRx
Plugin Icon wp plugin Advanced AJAX Product Filters
Version 1.3.1
Comparing to
See all releases

Code changes from version 1.3.0.2 to 1.3.1

Files changed (70) hide show
  1. addons/filtering_conditions/add_conditions.php +57 -0
  2. addons/filtering_conditions/filtering_conditions.php +15 -0
  3. berocket/{css → assets/css}/admin.css +480 -2
  4. berocket/{css → assets/css}/colpick.css +0 -0
  5. berocket/{css → assets/css}/font-awesome.min.css +0 -0
  6. berocket/{css → assets/css}/fontawesome4-compat.min.css +0 -0
  7. berocket/{css → assets/css}/fontawesome5.css +0 -0
  8. berocket/{css → assets/css}/fontawesome5.min.css +0 -0
  9. berocket/{css → assets/css}/global-admin.css +0 -0
  10. berocket/{css → assets/css}/mail.png +0 -0
  11. berocket/{fonts → assets/fonts}/FontAwesome.otf +0 -0
  12. berocket/{fonts → assets/fonts}/fontawesome-webfont.ttf +0 -0
  13. berocket/{fonts → assets/fonts}/fontawesome-webfont.woff +0 -0
  14. berocket/{fonts → assets/fonts}/fontawesome-webfont.woff2 +0 -0
  15. berocket/{images → assets/images}/Feature-request-form-title.png +0 -0
  16. berocket/{images → assets/images}/Feature-request.png +0 -0
  17. berocket/{images → assets/images}/Thank-you.png +0 -0
  18. berocket/{images → assets/images}/ad_white_on_orange.png +0 -0
  19. berocket/{images → assets/images}/br_logo.png +0 -0
  20. berocket/{images → assets/images}/br_logo_white.png +0 -0
  21. berocket/{images → assets/images}/submenu-icon-a.png +0 -0
  22. berocket/{images → assets/images}/submenu-icon.png +0 -0
  23. berocket/{js → assets/js}/admin.js +190 -1
  24. berocket/{js → assets/js}/colpick.js +0 -0
  25. berocket/assets/popup/animate.css +3623 -0
  26. berocket/assets/popup/br_popup.css +227 -0
  27. berocket/assets/popup/br_popup.js +337 -0
  28. berocket/assets/tippy/tippy.css +5 -0
  29. berocket/assets/tippy/tippy.min.js +2 -0
  30. berocket/{webfonts → assets/webfonts}/fa-regular-400.ttf +0 -0
  31. berocket/{webfonts → assets/webfonts}/fa-regular-400.woff +0 -0
  32. berocket/{webfonts → assets/webfonts}/fa-regular-400.woff2 +0 -0
  33. berocket/{webfonts → assets/webfonts}/fa-solid-900.ttf +0 -0
  34. berocket/{webfonts → assets/webfonts}/fa-solid-900.woff +0 -0
  35. berocket/{webfonts → assets/webfonts}/fa-solid-900.woff2 +0 -0
  36. berocket/framework.php +99 -36
  37. berocket/framework_version.php +6 -0
  38. berocket/includes/admin_notices.php +7 -7
  39. berocket/includes/conditions.php +11 -59
  40. berocket/includes/custom_post.php +95 -4
  41. berocket/includes/libraries.php +34 -0
  42. berocket/includes/updater.php +19 -1
  43. berocket/libraries/addons/addon_lib.php +39 -0
  44. berocket/libraries/addons/addons.php +159 -0
  45. berocket/libraries/addons/default.png +0 -0
  46. berocket/libraries/check_init.php +105 -0
  47. berocket/libraries/popup.php +169 -0
  48. berocket/libraries/templates/default.png +0 -0
  49. berocket/libraries/templates/template_lib.php +75 -0
  50. berocket/libraries/templates/templates.php +172 -0
  51. berocket/libraries/tippy.php +103 -0
  52. berocket/libraries/wpml_compatibility.php +14 -0
  53. berocket/templates/conditions.php +7 -150
  54. css/widget.css +4 -4
  55. includes/addons/seo_meta_title.php +5 -1
  56. includes/addons/woocommerce-variation.php +2 -2
  57. includes/custom_post.php +3 -2
  58. includes/divi-builder.php +3 -11
  59. includes/fixes.php +11 -0
  60. includes/functions.php +79 -23
  61. includes/new_widget.php +8 -3
  62. includes/visual-composer.php +1 -1
  63. includes/widget.php +8 -7
  64. includes/wizard.php +0 -1
  65. js/admin.js +11 -1
  66. js/widget.min.js +35 -7
  67. main.php +60 -29
  68. readme.txt +7 -2
  69. templates/filter_post.php +8 -0
  70. woocommerce-filters.php +3 -3
addons/filtering_conditions/add_conditions.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class BeRocket_filtering_conditions_AAPF extends BeRocket_conditions {
3
+ public static function get_conditions() {
4
+ $conditions = parent::get_conditions();
5
+ $conditions['condition_attribute_filtering'] = array(
6
+ 'func' => 'check_condition_attribute_filtering',
7
+ 'type' => 'attribute_filtering',
8
+ 'name' => __('Attribute', 'BeRocket_domain')
9
+ );
10
+ return $conditions;
11
+ }
12
+ public static function condition_attribute_filtering($html, $name, $options) {
13
+ return self::condition_product_attribute($html, $name, $options);
14
+ }
15
+
16
+ public static function check_condition_attribute_filtering($show, $condition, $additional) {
17
+ $selected_terms = br_get_selected_term($condition['attribute']);
18
+ $show = ( count($selected_terms) && (
19
+ $condition['values'][$condition['attribute']] === ''
20
+ ||
21
+ in_array($condition['values'][$condition['attribute']], $selected_terms)
22
+ ) );
23
+ if( $condition['equal'] == 'not_equal' ) {
24
+ $show = ! $show;
25
+ }
26
+ return $show;
27
+ }
28
+ }
29
+ class BeRocket_aapf_filtering_conditions {
30
+ public $post_name;
31
+ public $AAPF_single_filter;
32
+ public $hook_name = 'berocket_aapf_filtering_conditions';
33
+ public $conditions;
34
+ function __construct() {
35
+ $this->AAPF_single_filter = BeRocket_AAPF_single_filter::getInstance();
36
+ $this->post_name = $this->AAPF_single_filter->post_name;
37
+ add_action('ajax_filters_framework_construct', array($this, 'init_conditions'));
38
+ add_filter('BeRocket_AAPF_widget_old_display_conditions', array($this, 'check_conditions'), 10, 4);
39
+ $this->AAPF_single_filter->add_meta_box('filtering_conditions', __( 'Filtering Conditions (BETA)', 'BeRocket_AJAX_domain' ), array($this, 'conditions'));
40
+ }
41
+ public function init_conditions() {
42
+ $this->conditions = new BeRocket_filtering_conditions_AAPF($this->post_name.'[data2]', $this->hook_name, array(
43
+ 'condition_attribute_filtering'
44
+ ));
45
+ }
46
+ public function conditions($post) {
47
+ echo '<p>'.__( 'Use this to display products only after filtering by some attribute and value', 'BeRocket_AJAX_domain' ).'</p>';
48
+ $options = $this->AAPF_single_filter->get_option( $post->ID );
49
+ echo $this->conditions->build($options['data2']);
50
+ }
51
+ function check_conditions($show, $filter_data, $instance, $args) {
52
+ $options = $this->AAPF_single_filter->get_option( $instance['filter_id'] );
53
+ $show = empty($options['data2']) || $this->conditions->check($options['data2'], $this->hook_name);
54
+ return $show;
55
+ }
56
+ }
57
+ new BeRocket_aapf_filtering_conditions();
addons/filtering_conditions/filtering_conditions.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class BeRocket_aapf_filtering_conditions_addon extends BeRocket_framework_addon_lib {
3
+ public $addon_file = __FILE__;
4
+ public $plugin_name = 'ajax_filters';
5
+ function init_active() {
6
+ include_once('add_conditions.php');
7
+ }
8
+ function get_addon_data() {
9
+ $data = parent::get_addon_data();
10
+ return array_merge($data, array(
11
+ 'addon_name' => 'Filtering Conditions (BETA)'
12
+ ));
13
+ }
14
+ }
15
+ new BeRocket_aapf_filtering_conditions_addon();
berocket/{css → assets/css}/admin.css RENAMED
@@ -98,8 +98,23 @@
98
  }
99
  }
100
 
101
-
102
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
103
 
104
  /* New Design */
105
 
@@ -181,6 +196,7 @@
181
  margin: 0;
182
  padding: 0 0 60px;
183
  list-style-type: none;
 
184
  }
185
 
186
  .br_framework_settings .body .content {
@@ -894,6 +910,23 @@
894
  margin-bottom: 0;
895
  padding: 4px 10px 6px 0;
896
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  }
898
  .berocket_display_block_messages_hide {
899
  position: absolute;
@@ -981,3 +1014,448 @@
981
  padding: 0 10px;
982
  }
983
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  }
99
  }
100
 
101
+ .berocket_framework_sidebar_save_button {
102
+ height: 50px;
103
+ }
104
+ .berocket_framework_sidebar_save_button .button-primary.button {
105
+ display: none;
106
+ padding: 9px 0;
107
+ margin: 0;
108
+ position: absolute;
109
+ width: 150px;
110
+ border-radius: 0;
111
+ min-width: initial;
112
+ z-index: 100;
113
+ transition: 0.2s bottom;
114
+ }
115
+ .br_framework_settings .body ul.side li.berocket_framework_sidebar_save_button {
116
+ position: initial;
117
+ }
118
 
119
  /* New Design */
120
 
196
  margin: 0;
197
  padding: 0 0 60px;
198
  list-style-type: none;
199
+ position: relative;
200
  }
201
 
202
  .br_framework_settings .body .content {
910
  margin-bottom: 0;
911
  padding: 4px 10px 6px 0;
912
  }
913
+ .br_framework_settings {
914
+ margin-right: 0;
915
+ margin-left: -10px;
916
+ }
917
+ .br_framework_settings .body .content {
918
+ padding-left: 0;
919
+ padding-right: 0;
920
+ }
921
+ .br_framework_settings .body .content .title {
922
+ padding-left: 40px;
923
+ margin-left: -10px;
924
+ margin-right: 0;
925
+ }
926
+ .br_framework_settings form .nav-block {
927
+ padding-left: 5px;
928
+ padding-right: 5px;
929
+ }
930
  }
931
  .berocket_display_block_messages_hide {
932
  position: absolute;
1014
  padding: 0 10px;
1015
  }
1016
  }
1017
+ /* SORTABLE CUSTOM POST */
1018
+ .column-berocket_sortable {
1019
+ width: 120px;
1020
+ text-align: right;
1021
+ }
1022
+ .berocket_post_set_new_sortable_input {
1023
+ position: relative;
1024
+ }
1025
+ .berocket_post_set_new_sortable_input input {
1026
+ width: 80px;
1027
+ padding-right: 20px;
1028
+ }
1029
+ .berocket_post_set_new_sortable_input .fa{
1030
+ position: absolute;
1031
+ right: 5px;
1032
+ height: 100%;
1033
+ vertical-align: middle;
1034
+ display: inline-block;
1035
+ font-size: 1.4em;
1036
+ top: -0.1em;
1037
+ }
1038
+
1039
+ /* -------------- */
1040
+ /* ADDON LIST */
1041
+ .berocket_addons_list .berocket_addon_is_active {
1042
+ display: none;
1043
+ }
1044
+ .berocket_addons_list .berocket_addon_label {
1045
+ position: relative;
1046
+ display: inline-block;
1047
+ font-size: 6px;
1048
+ }
1049
+ .berocket_addons_list .berocket_addon_block {
1050
+ display: inline-block;
1051
+ position: relative;
1052
+ padding: 15px;
1053
+ width: 200px;
1054
+ text-align: center;
1055
+ box-sizing: border-box;
1056
+ height: 260px;
1057
+ }
1058
+ .berocket_addons_list .berocket_addon_block .berocket_addon_active {
1059
+ position: absolute;
1060
+ left: 50%;
1061
+ top: calc(50% - 17.5px);
1062
+ transform: translate(-50%,-50%);
1063
+ -moz-transform: translate(-50%,-50%);
1064
+ -o-transform: translate(-50%,-50%);
1065
+ -webkit-transform: translate(-50%,-50%);
1066
+ display: block;
1067
+ z-index: 100;
1068
+ background-color: #009688;
1069
+ width: 10em;
1070
+ height: 10em;
1071
+ border-radius: 50%;
1072
+ border: 2em solid #a4d2ce;
1073
+ line-height: 14em;
1074
+ color: white;
1075
+ transition: 0.3s;
1076
+ opacity: 0;
1077
+ }
1078
+ .berocket_addons_list .berocket_addon_block .berocket_addon_active i {
1079
+ font-size: 6em;
1080
+ }
1081
+ .berocket_addons_list .berocket_addon_block img {
1082
+ display: block;
1083
+ max-width: 100%;
1084
+ opacity: 0.7;
1085
+ max-height: 200px;
1086
+ }
1087
+ .berocket_addons_list .berocket_addon_block .berocket_addon_name {
1088
+ font-size: 24px;
1089
+ margin-top: 15px;
1090
+ display: inline-block;
1091
+ position: absolute;
1092
+ bottom: 15px;
1093
+ left: 15px;
1094
+ right: 15px;
1095
+ line-height: 1em;
1096
+ }
1097
+ .berocket_addons_list .berocket_addon_is_active:checked ~ span .berocket_addon_active {
1098
+ opacity: 1;
1099
+ }
1100
+ .berocket_addons_list .berocket_addon_is_active:checked ~ span img {
1101
+ opacity: 1;
1102
+ }
1103
+ .berocket_addons_list .berocket_addon_paid_sign {
1104
+ position: absolute;
1105
+ right: 20px;
1106
+ top: 20px;
1107
+ font-size: 1em;
1108
+ z-index: 200;
1109
+ }
1110
+ .berocket_addons_list .berocket_addon_paid_sign:before {
1111
+ font-size: 4em;
1112
+ }
1113
+ .berocket_addons_list .berocket_addon_paid_get {
1114
+ transition: all 0.2s ease-out 0s;
1115
+ position: absolute;
1116
+ text-align: center;
1117
+ z-index: 150;
1118
+ top: 0;
1119
+ left: 0;
1120
+ right: 0;
1121
+ bottom: 0;
1122
+ background-color: #2c3b48;
1123
+ color: white;
1124
+ border-radius:10px;
1125
+ opacity: 0;
1126
+ }
1127
+ .berocket_addons_list .berocket_addon_label:hover .berocket_addon_paid_get {
1128
+ opacity: 1;
1129
+ }
1130
+ .berocket_addons_list .berocket_addon_paid_get a {
1131
+ position: absolute;
1132
+ top: 0;
1133
+ left: 0;
1134
+ right: 0;
1135
+ bottom: 0;
1136
+ text-decoration: none;
1137
+ }
1138
+ .berocket_addons_list .berocket_addon_paid_get a span {
1139
+ position: relative;
1140
+ top: 50%;
1141
+ transform: translateY(-50%);
1142
+ font-size: 3.6em;
1143
+ line-height: 1em;
1144
+ display: block;
1145
+ color: gold;
1146
+ }
1147
+ .br_framework_settings .berocket_addon_paid_sign {
1148
+ color: #f16543;
1149
+ }
1150
+ .br_framework_settings .berocket_addon_label:hover .berocket_addon_paid_sign {
1151
+ color: gold;
1152
+ }
1153
+ /* -------------- */
1154
+ /* TEMPLATES LIST */
1155
+ .berocket_templates_list .berocket_template_is_active {
1156
+ display: none;
1157
+ }
1158
+ .berocket_templates_list .berocket_template_label {
1159
+ display: inline-block;
1160
+ width: 33%;
1161
+ position: relative;
1162
+ font-size: 10px;
1163
+ }
1164
+ .berocket_templates_list .berocket_template_block {
1165
+ display: inline-block;
1166
+ position: relative;
1167
+ padding: 15px;
1168
+ width: 100%;
1169
+ text-align: center;
1170
+ box-sizing: border-box;
1171
+ height: auto;
1172
+ padding-bottom: 50px;
1173
+ }
1174
+ .berocket_templates_list .berocket_template_block .berocket_template_active {
1175
+ position: absolute;
1176
+ left: 50%;
1177
+ top: calc(50% - 17.5px);
1178
+ transform: translate(-50%,-50%);
1179
+ -moz-transform: translate(-50%,-50%);
1180
+ -o-transform: translate(-50%,-50%);
1181
+ -webkit-transform: translate(-50%,-50%);
1182
+ display: block;
1183
+ z-index: 100;
1184
+ background-color: #009688;
1185
+ width: 10em;
1186
+ height: 10em;
1187
+ border-radius: 50%;
1188
+ border: 2em solid #a4d2ce;
1189
+ line-height: 14em;
1190
+ color: white;
1191
+ transition: 0.3s;
1192
+ opacity: 0;
1193
+ }
1194
+ .berocket_templates_list .berocket_template_block .berocket_template_active i {
1195
+ font-size: 6em;
1196
+ }
1197
+ .berocket_templates_list .berocket_template_block img {
1198
+ display: block;
1199
+ width: 100%;
1200
+ opacity: 1;
1201
+ height: auto;
1202
+ transition: 0.3s;
1203
+ }
1204
+ .berocket_templates_list .berocket_template_block:hover img {
1205
+ box-shadow: 0 0 15px 0 #5b9691;
1206
+ }
1207
+ .berocket_templates_list .berocket_template_block .berocket_template_name {
1208
+ font-size: 24px;
1209
+ margin-top: 15px;
1210
+ display: inline-block;
1211
+ position: absolute;
1212
+ bottom: 15px;
1213
+ left: 15px;
1214
+ right: 15px;
1215
+ line-height: 1em;
1216
+ }
1217
+ .berocket_templates_list .berocket_template_is_active:checked ~ span .berocket_template_active {
1218
+ opacity: 1;
1219
+ }
1220
+ .berocket_templates_list .berocket_template_is_active:checked ~ span img {
1221
+ opacity: 1;
1222
+ }
1223
+ .berocket_templates_list .berocket_template_paid_sign {
1224
+ position: absolute;
1225
+ left: 20px;
1226
+ top: 17px;
1227
+ font-size: 1em;
1228
+ z-index: 200;
1229
+ }
1230
+ .berocket_templates_list .berocket_template_paid_sign:before {
1231
+ font-size: 4em;
1232
+ }
1233
+ .berocket_templates_list .berocket_template_paid_get {
1234
+ transition: all 0.2s ease-out 0s;
1235
+ position: absolute;
1236
+ text-align: center;
1237
+ z-index: 150;
1238
+ top: 0;
1239
+ left: 0;
1240
+ right: 0;
1241
+ bottom: 0;
1242
+ background-color: #2c3b48;
1243
+ color: white;
1244
+ border-radius:10px;
1245
+ opacity: 0;
1246
+ }
1247
+ .berocket_templates_list .berocket_template_label:hover .berocket_template_paid_get {
1248
+ opacity: 1;
1249
+ }
1250
+ .berocket_templates_list .berocket_template_paid_get a {
1251
+ position: absolute;
1252
+ top: 0;
1253
+ left: 0;
1254
+ right: 0;
1255
+ bottom: 0;
1256
+ text-decoration: none;
1257
+ }
1258
+ .berocket_templates_list .berocket_template_paid_get a span {
1259
+ position: relative;
1260
+ top: 50%;
1261
+ transform: translateY(-50%);
1262
+ font-size: 3.6em;
1263
+ line-height: 1em;
1264
+ display: block;
1265
+ color: gold;
1266
+ }
1267
+ .berocket_templates_list .berocket_template_paid_get a span i {
1268
+ font-size: 0.8em;
1269
+ }
1270
+ .berocket_templates_list .berocket_template_paid_get a span i:first-child,
1271
+ .berocket_templates_list .berocket_template_paid_get a span i:last-child {
1272
+ font-size: 0.4em;
1273
+ }
1274
+ .berocket_templates_list .berocket_template_paid_get a span i:nth-child(2),
1275
+ .berocket_templates_list .berocket_template_paid_get a span i:nth-child(5){
1276
+ font-size: 0.6em;
1277
+ }
1278
+ .br_framework_settings .berocket_template_paid_sign {
1279
+ color: #f16543;
1280
+ }
1281
+ .br_framework_settings .berocket_template_label:hover .berocket_template_paid_sign {
1282
+ color: gold;
1283
+ }
1284
+ @media screen and (min-width: 1450px) and (max-width: 1600px) {
1285
+ .berocket_templates_list .berocket_template_label {
1286
+ font-size: 9px;
1287
+ }
1288
+ }
1289
+ @media screen and (min-width: 1300px) and (max-width: 1450px) {
1290
+ .berocket_templates_list .berocket_template_label {
1291
+ font-size: 8px;
1292
+ }
1293
+ }
1294
+ @media screen and (min-width: 901px) and (max-width: 1300px) {
1295
+ .br_framework_submit_form .berocket_templates_list .berocket_template_label {
1296
+ width: 49%;
1297
+ }
1298
+ .berocket_templates_list .berocket_template_label {
1299
+ font-size: 7px;
1300
+ }
1301
+ }
1302
+ @media screen and (max-width: 900px) {
1303
+ .berocket_templates_list .berocket_template_paid_sign {
1304
+ top: 20px;
1305
+ right: 20px;
1306
+ }
1307
+ .br_framework_submit_form .berocket_templates_list .berocket_template_label {
1308
+ width: 100%;
1309
+ }
1310
+ .berocket_templates_list .berocket_template_label {
1311
+ font-size: 7px;
1312
+ }
1313
+ }
1314
+ @media screen and (max-width: 600px) {
1315
+ .berocket_templates_list .berocket_template_block {
1316
+ padding-left: 0;
1317
+ padding-right: 0;
1318
+ }
1319
+ .berocket_templates_list .berocket_template_block .berocket_template_active {
1320
+ width: 5em;
1321
+ height: 5em;
1322
+ line-height: 6.2em;
1323
+ border-width: 1.5em;
1324
+ }
1325
+ .berocket_templates_list .berocket_template_block .berocket_template_active i {
1326
+ font-size: 3em;
1327
+ }
1328
+ .berocket_templates_list .berocket_template_block .berocket_template_name {
1329
+ font-size: 18px;
1330
+ }
1331
+ .berocket_templates_list .berocket_template_paid_sign {
1332
+ font-size: 9px;
1333
+ }
1334
+ .berocket_templates_list .berocket_template_paid_get a span {
1335
+ font-size: 28px;
1336
+ }
1337
+ }
1338
+
1339
+ @media screen and (max-width: 500px) {
1340
+ .berocket_templates_list .berocket_template_block .berocket_template_active {
1341
+ width: 3em;
1342
+ height: 3em;
1343
+ line-height: 3.3em;
1344
+ border-width: 1em;
1345
+ }
1346
+ .berocket_templates_list .berocket_template_block .berocket_template_active i {
1347
+ font-size: 1.5em;
1348
+ }
1349
+ .berocket_templates_list .berocket_template_block .berocket_template_name {
1350
+ font-size: 14px;
1351
+ }
1352
+ .berocket_templates_list .berocket_template_paid_sign {
1353
+ font-size: 8px;
1354
+ }
1355
+ .berocket_templates_list .berocket_template_paid_get a span {
1356
+ font-size: 18px;
1357
+ }
1358
+ }
1359
+
1360
+ @media screen and (max-width: 400px) {
1361
+ .berocket_templates_list .berocket_template_block .berocket_template_active {
1362
+ width: 2em;
1363
+ height: 2em;
1364
+ line-height: 2em;
1365
+ border-width: 0.5em;
1366
+ }
1367
+ .berocket_templates_list .berocket_template_block .berocket_template_active i {
1368
+ font-size: 1em;
1369
+ }
1370
+ .berocket_templates_list .berocket_template_block .berocket_template_name {
1371
+ font-size: 13px;
1372
+ }
1373
+ .berocket_templates_list .berocket_template_paid_sign {
1374
+ font-size: 6px;
1375
+ }
1376
+ .berocket_templates_list .berocket_template_paid_get a span {
1377
+ font-size: 14px;
1378
+ }
1379
+ }
1380
+
1381
+ /* TEMPLATE FREE ONLY */
1382
+ .show_premium .berocket_templates_list .berocket_template_label {
1383
+ width: 49%;
1384
+ }
1385
+ @media screen and (max-width: 1300px) {
1386
+ .show_premium.br_framework_submit_form .berocket_templates_list .berocket_template_label {
1387
+ width: 100%;
1388
+ }
1389
+ .show_premium .berocket_templates_list .berocket_template_label {
1390
+ font-size: 10px;
1391
+ }
1392
+ }
1393
+ /* -------------- */
1394
+ /* CONDITIONS */
1395
+ .br_conditions .br_html_condition {
1396
+ margin-top: 40px;
1397
+ }
1398
+ .br_conditions .br_html_condition:first-child {
1399
+ margin-top: 0;
1400
+ }
1401
+ .br_conditions .br_html_condition:before {
1402
+ content: "OR";
1403
+ display: block;
1404
+ position: absolute;
1405
+ top: -30px;
1406
+ font-size: 30px;
1407
+ }
1408
+ .br_conditions .br_html_condition:first-child:before {
1409
+ display: none;
1410
+ }
1411
+ .br_html_condition .br_cond_select {
1412
+ margin-top: 40px;
1413
+ position: relative;
1414
+ }
1415
+ .br_html_condition .br_cond_select:first-child {
1416
+ margin-top: 0;
1417
+ }
1418
+ .br_html_condition .br_cond_select:before {
1419
+ content: "AND";
1420
+ display: block;
1421
+ position: absolute;
1422
+ top: -30px;
1423
+ font-size: 30px;
1424
+ }
1425
+ .br_html_condition .br_cond_select:first-child:before {
1426
+ display: none;
1427
+ }
1428
+ .br_html_condition .br_cond_one .br_cond_select:first-child .berocket_remove_condition {
1429
+ display: none;
1430
+ }
1431
+ .br_html_condition {
1432
+ border: 1px solid #999;
1433
+ background-color: #fafafa;
1434
+ padding: 0.5em;
1435
+ margin-bottom: 1em;
1436
+ position: relative;
1437
+ }
1438
+ .br_html_condition .br_remove_group {
1439
+ position: absolute!important;
1440
+ top:-10px;
1441
+ right: -10px;
1442
+ }
1443
+ .br_cond_select {
1444
+ padding-bottom: 1em;
1445
+ }
1446
+ .br_cond_select {
1447
+ border: 1px solid #999;
1448
+ padding: 0.5em;
1449
+ margin-bottom: 0.5em;
1450
+ background-color: #eee;
1451
+ }
1452
+ .br_framework_settings .button.berocket_remove_condition,
1453
+ .br_framework_settings .button.berocket_add_condition,
1454
+ .br_framework_settings .button.br_remove_group,
1455
+ .br_framework_settings .button.br_add_group {
1456
+ padding: 0 10px;
1457
+ margin: 0;
1458
+ width: initial;
1459
+ min-width: initial;
1460
+ }
1461
+ /* ---------- */
berocket/{css → assets/css}/colpick.css RENAMED
File without changes
berocket/{css → assets/css}/font-awesome.min.css RENAMED
File without changes
berocket/{css → assets/css}/fontawesome4-compat.min.css RENAMED
File without changes
berocket/{css → assets/css}/fontawesome5.css RENAMED
File without changes
berocket/{css → assets/css}/fontawesome5.min.css RENAMED
File without changes
berocket/{css → assets/css}/global-admin.css RENAMED
File without changes
berocket/{css → assets/css}/mail.png RENAMED
File without changes
berocket/{fonts → assets/fonts}/FontAwesome.otf RENAMED
File without changes
berocket/{fonts → assets/fonts}/fontawesome-webfont.ttf RENAMED
File without changes
berocket/{fonts → assets/fonts}/fontawesome-webfont.woff RENAMED
File without changes
berocket/{fonts → assets/fonts}/fontawesome-webfont.woff2 RENAMED
File without changes
berocket/{images → assets/images}/Feature-request-form-title.png RENAMED
File without changes
berocket/{images → assets/images}/Feature-request.png RENAMED
File without changes
berocket/{images → assets/images}/Thank-you.png RENAMED
File without changes
berocket/{images → assets/images}/ad_white_on_orange.png RENAMED
File without changes
berocket/{images → assets/images}/br_logo.png RENAMED
File without changes
berocket/{images → assets/images}/br_logo_white.png RENAMED
File without changes
berocket/{images → assets/images}/submenu-icon-a.png RENAMED
File without changes
berocket/{images → assets/images}/submenu-icon.png RENAMED
File without changes
berocket/{js → assets/js}/admin.js RENAMED
@@ -67,6 +67,7 @@ var br_something_changed = false;
67
  $('.br_framework_settings .content .title').html( $(this).html() );
68
  window.history.replaceState(null, null, $(this).attr('href'));
69
  }
 
70
  });
71
 
72
  $(window).on('keydown', function(event) {
@@ -198,6 +199,54 @@ var br_something_changed = false;
198
  wp.codeEditor.initialize(this, {"codeEditor":{"codemirror":{"indentUnit":4,"indentWithTabs":true,"inputStyle":"contenteditable","lineNumbers":true,"lineWrapping":true,"styleActiveLine":true,"continueComments":true,"extraKeys":{"Ctrl-Space":"autocomplete","Ctrl-\/":"toggleComment","Cmd-\/":"toggleComment","Alt-F":"findPersistent"},"direction":"ltr","gutters":[],"mode":"javascript"},"csslint":{"errors":true,"box-model":true,"display-property-grouping":true,"duplicate-properties":true,"known-properties":true,"outline-none":true},"jshint":{"boss":true,"curly":true,"eqeqeq":true,"eqnull":true,"es3":true,"expr":true,"immed":true,"noarg":true,"nonbsp":true,"onevar":true,"quotmark":"single","trailing":true,"undef":true,"unused":true,"browser":true,"globals":{"_":false,"Backbone":false,"jQuery":false,"JSON":false,"wp":false}},"htmlhint":{"tagname-lowercase":true,"attr-lowercase":true,"attr-value-double-quotes":true,"doctype-first":false,"tag-pair":true,"spec-char-escape":true,"id-unique":true,"src-not-empty":true,"attr-no-duplication":true,"alt-require":true,"space-tab-mixed-disabled":"tab","attr-unsafe-chars":true}}});
199
  });
200
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
201
  });
202
  })(jQuery);
203
  /* PRODUCTS SELECTOR */
@@ -250,7 +299,8 @@ var br_something_changed = false;
250
  var data = {
251
  action: $search_block.data('action'),
252
  term: $search_block.val(),
253
- security: berocket_framework_admin.security
 
254
  };
255
  stop_search();
256
  $search_box.find('.berocket_product_search').append($('<span class="berocket_loads"><i class="fa fa-spinner fa-spin"></i></span>'));
@@ -489,3 +539,142 @@ jQuery(document).on('click', '.berocket_display_block_messages_next_button', fun
489
  jQuery(document).on('click', function() {
490
  jQuery('.berocket_display_tooltip.hide_on_click').remove();
491
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
67
  $('.br_framework_settings .content .title').html( $(this).html() );
68
  window.history.replaceState(null, null, $(this).attr('href'));
69
  }
70
+ berocket_save_button_side();
71
  });
72
 
73
  $(window).on('keydown', function(event) {
199
  wp.codeEditor.initialize(this, {"codeEditor":{"codemirror":{"indentUnit":4,"indentWithTabs":true,"inputStyle":"contenteditable","lineNumbers":true,"lineWrapping":true,"styleActiveLine":true,"continueComments":true,"extraKeys":{"Ctrl-Space":"autocomplete","Ctrl-\/":"toggleComment","Cmd-\/":"toggleComment","Alt-F":"findPersistent"},"direction":"ltr","gutters":[],"mode":"javascript"},"csslint":{"errors":true,"box-model":true,"display-property-grouping":true,"duplicate-properties":true,"known-properties":true,"outline-none":true},"jshint":{"boss":true,"curly":true,"eqeqeq":true,"eqnull":true,"es3":true,"expr":true,"immed":true,"noarg":true,"nonbsp":true,"onevar":true,"quotmark":"single","trailing":true,"undef":true,"unused":true,"browser":true,"globals":{"_":false,"Backbone":false,"jQuery":false,"JSON":false,"wp":false}},"htmlhint":{"tagname-lowercase":true,"attr-lowercase":true,"attr-value-double-quotes":true,"doctype-first":false,"tag-pair":true,"spec-char-escape":true,"id-unique":true,"src-not-empty":true,"attr-no-duplication":true,"alt-require":true,"space-tab-mixed-disabled":"tab","attr-unsafe-chars":true}}});
200
  });
201
  }
202
+ var berocket_save_button_side_timeout;
203
+ function berocket_save_button_side() {
204
+ var $button = $('.berocket_framework_sidebar_save_button .button-primary.button');
205
+ if( $button.length ) {
206
+ clearTimeout(berocket_save_button_side_timeout);
207
+ berocket_save_button_side_timeout = setTimeout(function() {
208
+ /*Settings to set*/
209
+ var bottom = '0px';
210
+ var position = 'fixed';
211
+ /*Get parameters*/
212
+ var $side = $button.parents('ul.side').first();
213
+ var sideTop = $side.offset().top;
214
+ var sideHeight = $side.outerHeight();
215
+ var windowScroll = jQuery(window).scrollTop();
216
+ var windowHeight = jQuery(window).height();
217
+ /*Calculate parameters*/
218
+ var sideBottom = sideTop + sideHeight;
219
+ var windowBottom = windowScroll + windowHeight;
220
+ var positionBottom = sideBottom - windowBottom;
221
+ if( positionBottom > (sideHeight - 50) ) {
222
+ bottom = '-100px';
223
+ }
224
+ if( positionBottom < 0 ) {
225
+ position = 'absolute';
226
+ }
227
+ if( $('.berocket_framework_default_save_button:visible').offset().top > windowBottom ) {
228
+ $button.css('display', 'block');
229
+ } else {
230
+ bottom = '-100px';
231
+ if( position == 'absolute' ) {
232
+ $button.css('display', 'none');
233
+ }
234
+ }
235
+ $button
236
+ .css('width', $button.parent().outerWidth())
237
+ .css('position', position)
238
+ .css('bottom', bottom);
239
+ }, 10);
240
+ }
241
+ }
242
+ $('.berocket_framework_sidebar_save_button .button-primary.button').css('display', 'block');
243
+ berocket_save_button_side();
244
+ $(document).scroll(berocket_save_button_side);
245
+ $(window).resize(berocket_save_button_side);
246
+ $(document).on('click', '.berocket_framework_sidebar_save_button .button-primary.button', function(event) {
247
+ event.preventDefault();
248
+ $(this).parents('.br_framework_settings').find('.br_framework_submit_form').submit();
249
+ });
250
  });
251
  })(jQuery);
252
  /* PRODUCTS SELECTOR */
299
  var data = {
300
  action: $search_block.data('action'),
301
  term: $search_block.val(),
302
+ security: berocket_framework_admin.security,
303
+ is_berocket:true
304
  };
305
  stop_search();
306
  $search_box.find('.berocket_product_search').append($('<span class="berocket_loads"><i class="fa fa-spinner fa-spin"></i></span>'));
539
  jQuery(document).on('click', function() {
540
  jQuery('.berocket_display_tooltip.hide_on_click').remove();
541
  });
542
+ //Sortable custom post
543
+ (function ($){
544
+ $(document).ready( function () {
545
+ $(document).on('click', '.berocket_post_set_new_sortable, .berocket_post_set_new_sortable_set', function(event) {
546
+ event.preventDefault();
547
+ var $this = $(this);
548
+ var post_id = $(this).data('post_id');
549
+ if( $this.is('.berocket_post_set_new_sortable_set') ) {
550
+ var order = $this.parents('.berocket_post_set_new_sortable_input').first().find('input').val();
551
+ } else {
552
+ var order = $(this).data('order');
553
+ }
554
+ $.post(location.href, {braction:'berocket_custom_post_sortable', BRsortable_id:post_id, BRorder:order}, function(html) {
555
+ var $html = jQuery(html);
556
+ var $tbody = $html.find('.berocket_post_set_new_sortable').first().parents('tbody').first();
557
+ $('.berocket_post_set_new_sortable').first().parents('tbody').first().replaceWith($tbody);
558
+ });
559
+ });
560
+ });
561
+ })(jQuery);
562
+ //ADDONS RELOAD
563
+ (function ($){
564
+ $(document).ready( function () {
565
+ $(document).on('change', '.berocket_addons_list input', function() {
566
+ $(this).parents('.br_framework_submit_form').addClass('br_reload_form');
567
+ });
568
+ });
569
+ })(jQuery);
570
+ //CONDITIONS
571
+ jQuery(document).on('change', '.br_cond_type', function(event) {
572
+ var $data_block = jQuery(this).parents('.berocket_conditions_block').first().find('.br_condition_data').first();
573
+ var condition_name = $data_block.data('condition_name');
574
+ var $parent = jQuery(this).parents('.br_cond_select');
575
+ $parent.find('.br_cond').remove();
576
+ var id = $parent.parents('.br_html_condition');
577
+ var current_id = $parent.data('current');
578
+ id = id.data('id');
579
+ var html_need = jQuery('.br_cond_example .br_cond_'+jQuery(this).val()).get(0);
580
+ html_need = html_need.outerHTML;
581
+ html_need = html_need.replace(/%id%/g, id);
582
+ html_need = html_need.replace(/%current_id%/g, current_id);
583
+ html_need = html_need.replace(/%name%/g, condition_name);
584
+ $parent.find('.br_current_cond').html(html_need);
585
+ });
586
+ jQuery(document).on('click', '.berocket_add_condition', function() {
587
+ var id = jQuery(this).parents('.br_html_condition');
588
+ var current_id = id.data('current');
589
+ current_id = current_id + 1;
590
+ id.data('current', current_id);
591
+ id = id.data('id');
592
+ var $html = jQuery(this).parents('.berocket_conditions_block').first().find('.br_condition_example .br_cond_select').html();
593
+ $html = '<div class="br_cond_select" data-current="'+current_id+'">'+$html+'</div>';
594
+ $html = $html.replace('%id%', id);
595
+ jQuery(this).before($html);
596
+ $parent = jQuery(this).prev();
597
+ $parent.find('.br_cond_type').trigger('change');
598
+ });
599
+ jQuery(document).on('click', '.br_add_group', function() {
600
+ var $data_block = jQuery(this).parents('.berocket_conditions_block').first().find('.br_condition_data').first();
601
+ var last_id = $data_block.data('last_id');
602
+ last_id++;
603
+ $data_block.data('last_id', last_id);
604
+
605
+ var html = jQuery(this).parents('.berocket_conditions_block').first().find('.br_condition_example').html();
606
+ html = html.replace( '%id%', last_id );
607
+ var html = '<div class="br_html_condition" data-id="'+last_id+'" data-current="1"><div class="br_cond_one">'+html+'</div></div>';
608
+ jQuery(this).before(html);
609
+ $parent = jQuery(this).prev();
610
+ $parent.find('.br_cond_type').trigger('change');
611
+ });
612
+ jQuery(document).on('click', '.berocket_remove_condition', function() {
613
+ $parent = jQuery(this).parents('.br_cond_select');
614
+ $parent.remove();
615
+ });
616
+ jQuery(document).on('click', '.br_remove_group', function() {
617
+ $parent = jQuery(this).parents('.br_html_condition');
618
+ $parent.remove();
619
+ });
620
+ jQuery(document).on('change', '.br_cond_attr_select', function() {
621
+ var $attr_block = jQuery(this).parents('.br_cond').first();
622
+ $attr_block.find('.br_attr_values').hide();
623
+ $attr_block.find('.br_attr_value_'+jQuery(this).val()).show();
624
+ });
625
+ jQuery(document).on('change', '.price_from', function() {
626
+ var val_price_from = jQuery(this).val();
627
+ var val_price_to = jQuery(this).parents('.br_cond').first().find('.price_to').val();
628
+ price_from = parseFloat(val_price_from);
629
+ price_to = parseFloat(val_price_to);
630
+ price_to_int = parseInt(val_price_to);
631
+ if( val_price_from == '' ) {
632
+ jQuery(this).val(0);
633
+ price_from = 0;
634
+ }
635
+ if( price_from > price_to ) {
636
+ jQuery(this).parents('.br_cond').first().find('.price_to').val(jQuery(this).val());
637
+ }
638
+ });
639
+ jQuery(document).on('change', '.price_to', function() {
640
+ var val_price_from = jQuery(this).parents('.br_cond').first().find('.price_from').val();
641
+ var val_price_to = jQuery(this).val();
642
+ price_from = parseFloat(val_price_from);
643
+ price_from_int = parseInt(val_price_from);
644
+ price_to = parseFloat(val_price_to);
645
+ if( val_price_to == '' ) {
646
+ jQuery(this).val(0);
647
+ price_to = 0;
648
+ }
649
+ if( price_from > price_to ) {
650
+ jQuery(this).parents('.br_cond').first().find('.price_from')(jQuery(this).val());
651
+ }
652
+ });
653
+ //TEMPLATES
654
+ jQuery(document).on('mousedown', '.berocket_templates_list .berocket_template_label', function() {
655
+ var $this = jQuery(this).find('.berocket_template_is_active');
656
+ if( $this.prop('checked') ) {
657
+ $this.addClass('berocket_was_checked');
658
+ } else {
659
+ $this.removeClass('berocket_was_checked');
660
+ }
661
+ });
662
+ jQuery(document).on('click', '.berocket_templates_list .berocket_template_label', function(event) {
663
+ if( jQuery(this).find('.berocket_template_paid_sign').length ) {
664
+ event.preventDefault()
665
+ } else {
666
+ var $this = jQuery(this).find('.berocket_template_is_active');
667
+ setTimeout(function() {
668
+ if( $this.is('.berocket_was_checked') ) {
669
+ $this.prop('checked', false);
670
+ }
671
+ }, 10);
672
+ }
673
+ });
674
+ jQuery(document).on('click', '.berocket_templates_list .berocket_template_label .berocket_template_paid_get a', function(event) {
675
+ event.stopPropogation();
676
+ });
677
+ //ADDONS
678
+ jQuery(document).on('click', '.berocket_addons_list .berocket_addon_label .berocket_addon_paid_get a', function(event) {
679
+ event.stopPropogation();
680
+ });
berocket/{js → assets/js}/colpick.js RENAMED
File without changes
berocket/assets/popup/animate.css ADDED
@@ -0,0 +1,3623 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @charset "UTF-8";
2
+
3
+ /*!
4
+ * animate.css -http://daneden.me/animate
5
+ * Version - 3.7.0
6
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
7
+ *
8
+ * Copyright (c) 2018 Daniel Eden
9
+ */
10
+
11
+ @-webkit-keyframes bounce {
12
+ from,
13
+ 20%,
14
+ 53%,
15
+ 80%,
16
+ to {
17
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
18
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
19
+ -webkit-transform: translate3d(0, 0, 0);
20
+ transform: translate3d(0, 0, 0);
21
+ }
22
+
23
+ 40%,
24
+ 43% {
25
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
26
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
27
+ -webkit-transform: translate3d(0, -30px, 0);
28
+ transform: translate3d(0, -30px, 0);
29
+ }
30
+
31
+ 70% {
32
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
33
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
34
+ -webkit-transform: translate3d(0, -15px, 0);
35
+ transform: translate3d(0, -15px, 0);
36
+ }
37
+
38
+ 90% {
39
+ -webkit-transform: translate3d(0, -4px, 0);
40
+ transform: translate3d(0, -4px, 0);
41
+ }
42
+ }
43
+
44
+ @keyframes bounce {
45
+ from,
46
+ 20%,
47
+ 53%,
48
+ 80%,
49
+ to {
50
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
51
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
52
+ -webkit-transform: translate3d(0, 0, 0);
53
+ transform: translate3d(0, 0, 0);
54
+ }
55
+
56
+ 40%,
57
+ 43% {
58
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
59
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
60
+ -webkit-transform: translate3d(0, -30px, 0);
61
+ transform: translate3d(0, -30px, 0);
62
+ }
63
+
64
+ 70% {
65
+ -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
66
+ animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
67
+ -webkit-transform: translate3d(0, -15px, 0);
68
+ transform: translate3d(0, -15px, 0);
69
+ }
70
+
71
+ 90% {
72
+ -webkit-transform: translate3d(0, -4px, 0);
73
+ transform: translate3d(0, -4px, 0);
74
+ }
75
+ }
76
+
77
+ .bounce {
78
+ -webkit-animation-name: bounce;
79
+ animation-name: bounce;
80
+ -webkit-transform-origin: center bottom;
81
+ transform-origin: center bottom;
82
+ }
83
+
84
+ @-webkit-keyframes flash {
85
+ from,
86
+ 50%,
87
+ to {
88
+ opacity: 1;
89
+ }
90
+
91
+ 25%,
92
+ 75% {
93
+ opacity: 0;
94
+ }
95
+ }
96
+
97
+ @keyframes flash {
98
+ from,
99
+ 50%,
100
+ to {
101
+ opacity: 1;
102
+ }
103
+
104
+ 25%,
105
+ 75% {
106
+ opacity: 0;
107
+ }
108
+ }
109
+
110
+ .flash {
111
+ -webkit-animation-name: flash;
112
+ animation-name: flash;
113
+ }
114
+
115
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
116
+
117
+ @-webkit-keyframes pulse {
118
+ from {
119
+ -webkit-transform: scale3d(1, 1, 1);
120
+ transform: scale3d(1, 1, 1);
121
+ }
122
+
123
+ 50% {
124
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
125
+ transform: scale3d(1.05, 1.05, 1.05);
126
+ }
127
+
128
+ to {
129
+ -webkit-transform: scale3d(1, 1, 1);
130
+ transform: scale3d(1, 1, 1);
131
+ }
132
+ }
133
+
134
+ @keyframes pulse {
135
+ from {
136
+ -webkit-transform: scale3d(1, 1, 1);
137
+ transform: scale3d(1, 1, 1);
138
+ }
139
+
140
+ 50% {
141
+ -webkit-transform: scale3d(1.05, 1.05, 1.05);
142
+ transform: scale3d(1.05, 1.05, 1.05);
143
+ }
144
+
145
+ to {
146
+ -webkit-transform: scale3d(1, 1, 1);
147
+ transform: scale3d(1, 1, 1);
148
+ }
149
+ }
150
+
151
+ .pulse {
152
+ -webkit-animation-name: pulse;
153
+ animation-name: pulse;
154
+ }
155
+
156
+ @-webkit-keyframes rubberBand {
157
+ from {
158
+ -webkit-transform: scale3d(1, 1, 1);
159
+ transform: scale3d(1, 1, 1);
160
+ }
161
+
162
+ 30% {
163
+ -webkit-transform: scale3d(1.25, 0.75, 1);
164
+ transform: scale3d(1.25, 0.75, 1);
165
+ }
166
+
167
+ 40% {
168
+ -webkit-transform: scale3d(0.75, 1.25, 1);
169
+ transform: scale3d(0.75, 1.25, 1);
170
+ }
171
+
172
+ 50% {
173
+ -webkit-transform: scale3d(1.15, 0.85, 1);
174
+ transform: scale3d(1.15, 0.85, 1);
175
+ }
176
+
177
+ 65% {
178
+ -webkit-transform: scale3d(0.95, 1.05, 1);
179
+ transform: scale3d(0.95, 1.05, 1);
180
+ }
181
+
182
+ 75% {
183
+ -webkit-transform: scale3d(1.05, 0.95, 1);
184
+ transform: scale3d(1.05, 0.95, 1);
185
+ }
186
+
187
+ to {
188
+ -webkit-transform: scale3d(1, 1, 1);
189
+ transform: scale3d(1, 1, 1);
190
+ }
191
+ }
192
+
193
+ @keyframes rubberBand {
194
+ from {
195
+ -webkit-transform: scale3d(1, 1, 1);
196
+ transform: scale3d(1, 1, 1);
197
+ }
198
+
199
+ 30% {
200
+ -webkit-transform: scale3d(1.25, 0.75, 1);
201
+ transform: scale3d(1.25, 0.75, 1);
202
+ }
203
+
204
+ 40% {
205
+ -webkit-transform: scale3d(0.75, 1.25, 1);
206
+ transform: scale3d(0.75, 1.25, 1);
207
+ }
208
+
209
+ 50% {
210
+ -webkit-transform: scale3d(1.15, 0.85, 1);
211
+ transform: scale3d(1.15, 0.85, 1);
212
+ }
213
+
214
+ 65% {
215
+ -webkit-transform: scale3d(0.95, 1.05, 1);
216
+ transform: scale3d(0.95, 1.05, 1);
217
+ }
218
+
219
+ 75% {
220
+ -webkit-transform: scale3d(1.05, 0.95, 1);
221
+ transform: scale3d(1.05, 0.95, 1);
222
+ }
223
+
224
+ to {
225
+ -webkit-transform: scale3d(1, 1, 1);
226
+ transform: scale3d(1, 1, 1);
227
+ }
228
+ }
229
+
230
+ .rubberBand {
231
+ -webkit-animation-name: rubberBand;
232
+ animation-name: rubberBand;
233
+ }
234
+
235
+ @-webkit-keyframes shake {
236
+ from,
237
+ to {
238
+ -webkit-transform: translate3d(0, 0, 0);
239
+ transform: translate3d(0, 0, 0);
240
+ }
241
+
242
+ 10%,
243
+ 30%,
244
+ 50%,
245
+ 70%,
246
+ 90% {
247
+ -webkit-transform: translate3d(-10px, 0, 0);
248
+ transform: translate3d(-10px, 0, 0);
249
+ }
250
+
251
+ 20%,
252
+ 40%,
253
+ 60%,
254
+ 80% {
255
+ -webkit-transform: translate3d(10px, 0, 0);
256
+ transform: translate3d(10px, 0, 0);
257
+ }
258
+ }
259
+
260
+ @keyframes shake {
261
+ from,
262
+ to {
263
+ -webkit-transform: translate3d(0, 0, 0);
264
+ transform: translate3d(0, 0, 0);
265
+ }
266
+
267
+ 10%,
268
+ 30%,
269
+ 50%,
270
+ 70%,
271
+ 90% {
272
+ -webkit-transform: translate3d(-10px, 0, 0);
273
+ transform: translate3d(-10px, 0, 0);
274
+ }
275
+
276
+ 20%,
277
+ 40%,
278
+ 60%,
279
+ 80% {
280
+ -webkit-transform: translate3d(10px, 0, 0);
281
+ transform: translate3d(10px, 0, 0);
282
+ }
283
+ }
284
+
285
+ .shake {
286
+ -webkit-animation-name: shake;
287
+ animation-name: shake;
288
+ }
289
+
290
+ @-webkit-keyframes headShake {
291
+ 0% {
292
+ -webkit-transform: translateX(0);
293
+ transform: translateX(0);
294
+ }
295
+
296
+ 6.5% {
297
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
298
+ transform: translateX(-6px) rotateY(-9deg);
299
+ }
300
+
301
+ 18.5% {
302
+ -webkit-transform: translateX(5px) rotateY(7deg);
303
+ transform: translateX(5px) rotateY(7deg);
304
+ }
305
+
306
+ 31.5% {
307
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
308
+ transform: translateX(-3px) rotateY(-5deg);
309
+ }
310
+
311
+ 43.5% {
312
+ -webkit-transform: translateX(2px) rotateY(3deg);
313
+ transform: translateX(2px) rotateY(3deg);
314
+ }
315
+
316
+ 50% {
317
+ -webkit-transform: translateX(0);
318
+ transform: translateX(0);
319
+ }
320
+ }
321
+
322
+ @keyframes headShake {
323
+ 0% {
324
+ -webkit-transform: translateX(0);
325
+ transform: translateX(0);
326
+ }
327
+
328
+ 6.5% {
329
+ -webkit-transform: translateX(-6px) rotateY(-9deg);
330
+ transform: translateX(-6px) rotateY(-9deg);
331
+ }
332
+
333
+ 18.5% {
334
+ -webkit-transform: translateX(5px) rotateY(7deg);
335
+ transform: translateX(5px) rotateY(7deg);
336
+ }
337
+
338
+ 31.5% {
339
+ -webkit-transform: translateX(-3px) rotateY(-5deg);
340
+ transform: translateX(-3px) rotateY(-5deg);
341
+ }
342
+
343
+ 43.5% {
344
+ -webkit-transform: translateX(2px) rotateY(3deg);
345
+ transform: translateX(2px) rotateY(3deg);
346
+ }
347
+
348
+ 50% {
349
+ -webkit-transform: translateX(0);
350
+ transform: translateX(0);
351
+ }
352
+ }
353
+
354
+ .headShake {
355
+ -webkit-animation-timing-function: ease-in-out;
356
+ animation-timing-function: ease-in-out;
357
+ -webkit-animation-name: headShake;
358
+ animation-name: headShake;
359
+ }
360
+
361
+ @-webkit-keyframes swing {
362
+ 20% {
363
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
364
+ transform: rotate3d(0, 0, 1, 15deg);
365
+ }
366
+
367
+ 40% {
368
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
369
+ transform: rotate3d(0, 0, 1, -10deg);
370
+ }
371
+
372
+ 60% {
373
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
374
+ transform: rotate3d(0, 0, 1, 5deg);
375
+ }
376
+
377
+ 80% {
378
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
379
+ transform: rotate3d(0, 0, 1, -5deg);
380
+ }
381
+
382
+ to {
383
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
384
+ transform: rotate3d(0, 0, 1, 0deg);
385
+ }
386
+ }
387
+
388
+ @keyframes swing {
389
+ 20% {
390
+ -webkit-transform: rotate3d(0, 0, 1, 15deg);
391
+ transform: rotate3d(0, 0, 1, 15deg);
392
+ }
393
+
394
+ 40% {
395
+ -webkit-transform: rotate3d(0, 0, 1, -10deg);
396
+ transform: rotate3d(0, 0, 1, -10deg);
397
+ }
398
+
399
+ 60% {
400
+ -webkit-transform: rotate3d(0, 0, 1, 5deg);
401
+ transform: rotate3d(0, 0, 1, 5deg);
402
+ }
403
+
404
+ 80% {
405
+ -webkit-transform: rotate3d(0, 0, 1, -5deg);
406
+ transform: rotate3d(0, 0, 1, -5deg);
407
+ }
408
+
409
+ to {
410
+ -webkit-transform: rotate3d(0, 0, 1, 0deg);
411
+ transform: rotate3d(0, 0, 1, 0deg);
412
+ }
413
+ }
414
+
415
+ .swing {
416
+ -webkit-transform-origin: top center;
417
+ transform-origin: top center;
418
+ -webkit-animation-name: swing;
419
+ animation-name: swing;
420
+ }
421
+
422
+ @-webkit-keyframes tada {
423
+ from {
424
+ -webkit-transform: scale3d(1, 1, 1);
425
+ transform: scale3d(1, 1, 1);
426
+ }
427
+
428
+ 10%,
429
+ 20% {
430
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
431
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
432
+ }
433
+
434
+ 30%,
435
+ 50%,
436
+ 70%,
437
+ 90% {
438
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
439
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
440
+ }
441
+
442
+ 40%,
443
+ 60%,
444
+ 80% {
445
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
446
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
447
+ }
448
+
449
+ to {
450
+ -webkit-transform: scale3d(1, 1, 1);
451
+ transform: scale3d(1, 1, 1);
452
+ }
453
+ }
454
+
455
+ @keyframes tada {
456
+ from {
457
+ -webkit-transform: scale3d(1, 1, 1);
458
+ transform: scale3d(1, 1, 1);
459
+ }
460
+
461
+ 10%,
462
+ 20% {
463
+ -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
464
+ transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg);
465
+ }
466
+
467
+ 30%,
468
+ 50%,
469
+ 70%,
470
+ 90% {
471
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
472
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg);
473
+ }
474
+
475
+ 40%,
476
+ 60%,
477
+ 80% {
478
+ -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
479
+ transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg);
480
+ }
481
+
482
+ to {
483
+ -webkit-transform: scale3d(1, 1, 1);
484
+ transform: scale3d(1, 1, 1);
485
+ }
486
+ }
487
+
488
+ .tada {
489
+ -webkit-animation-name: tada;
490
+ animation-name: tada;
491
+ }
492
+
493
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
494
+
495
+ @-webkit-keyframes wobble {
496
+ from {
497
+ -webkit-transform: translate3d(0, 0, 0);
498
+ transform: translate3d(0, 0, 0);
499
+ }
500
+
501
+ 15% {
502
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
503
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
504
+ }
505
+
506
+ 30% {
507
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
508
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
509
+ }
510
+
511
+ 45% {
512
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
513
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
514
+ }
515
+
516
+ 60% {
517
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
518
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
519
+ }
520
+
521
+ 75% {
522
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
523
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
524
+ }
525
+
526
+ to {
527
+ -webkit-transform: translate3d(0, 0, 0);
528
+ transform: translate3d(0, 0, 0);
529
+ }
530
+ }
531
+
532
+ @keyframes wobble {
533
+ from {
534
+ -webkit-transform: translate3d(0, 0, 0);
535
+ transform: translate3d(0, 0, 0);
536
+ }
537
+
538
+ 15% {
539
+ -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
540
+ transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg);
541
+ }
542
+
543
+ 30% {
544
+ -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
545
+ transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg);
546
+ }
547
+
548
+ 45% {
549
+ -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
550
+ transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg);
551
+ }
552
+
553
+ 60% {
554
+ -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
555
+ transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg);
556
+ }
557
+
558
+ 75% {
559
+ -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
560
+ transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg);
561
+ }
562
+
563
+ to {
564
+ -webkit-transform: translate3d(0, 0, 0);
565
+ transform: translate3d(0, 0, 0);
566
+ }
567
+ }
568
+
569
+ .wobble {
570
+ -webkit-animation-name: wobble;
571
+ animation-name: wobble;
572
+ }
573
+
574
+ @-webkit-keyframes jello {
575
+ from,
576
+ 11.1%,
577
+ to {
578
+ -webkit-transform: translate3d(0, 0, 0);
579
+ transform: translate3d(0, 0, 0);
580
+ }
581
+
582
+ 22.2% {
583
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
584
+ transform: skewX(-12.5deg) skewY(-12.5deg);
585
+ }
586
+
587
+ 33.3% {
588
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
589
+ transform: skewX(6.25deg) skewY(6.25deg);
590
+ }
591
+
592
+ 44.4% {
593
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
594
+ transform: skewX(-3.125deg) skewY(-3.125deg);
595
+ }
596
+
597
+ 55.5% {
598
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
599
+ transform: skewX(1.5625deg) skewY(1.5625deg);
600
+ }
601
+
602
+ 66.6% {
603
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
604
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
605
+ }
606
+
607
+ 77.7% {
608
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
609
+ transform: skewX(0.390625deg) skewY(0.390625deg);
610
+ }
611
+
612
+ 88.8% {
613
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
614
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
615
+ }
616
+ }
617
+
618
+ @keyframes jello {
619
+ from,
620
+ 11.1%,
621
+ to {
622
+ -webkit-transform: translate3d(0, 0, 0);
623
+ transform: translate3d(0, 0, 0);
624
+ }
625
+
626
+ 22.2% {
627
+ -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);
628
+ transform: skewX(-12.5deg) skewY(-12.5deg);
629
+ }
630
+
631
+ 33.3% {
632
+ -webkit-transform: skewX(6.25deg) skewY(6.25deg);
633
+ transform: skewX(6.25deg) skewY(6.25deg);
634
+ }
635
+
636
+ 44.4% {
637
+ -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);
638
+ transform: skewX(-3.125deg) skewY(-3.125deg);
639
+ }
640
+
641
+ 55.5% {
642
+ -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);
643
+ transform: skewX(1.5625deg) skewY(1.5625deg);
644
+ }
645
+
646
+ 66.6% {
647
+ -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg);
648
+ transform: skewX(-0.78125deg) skewY(-0.78125deg);
649
+ }
650
+
651
+ 77.7% {
652
+ -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);
653
+ transform: skewX(0.390625deg) skewY(0.390625deg);
654
+ }
655
+
656
+ 88.8% {
657
+ -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
658
+ transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
659
+ }
660
+ }
661
+
662
+ .jello {
663
+ -webkit-animation-name: jello;
664
+ animation-name: jello;
665
+ -webkit-transform-origin: center;
666
+ transform-origin: center;
667
+ }
668
+
669
+ @-webkit-keyframes heartBeat {
670
+ 0% {
671
+ -webkit-transform: scale(1);
672
+ transform: scale(1);
673
+ }
674
+
675
+ 14% {
676
+ -webkit-transform: scale(1.3);
677
+ transform: scale(1.3);
678
+ }
679
+
680
+ 28% {
681
+ -webkit-transform: scale(1);
682
+ transform: scale(1);
683
+ }
684
+
685
+ 42% {
686
+ -webkit-transform: scale(1.3);
687
+ transform: scale(1.3);
688
+ }
689
+
690
+ 70% {
691
+ -webkit-transform: scale(1);
692
+ transform: scale(1);
693
+ }
694
+ }
695
+
696
+ @keyframes heartBeat {
697
+ 0% {
698
+ -webkit-transform: scale(1);
699
+ transform: scale(1);
700
+ }
701
+
702
+ 14% {
703
+ -webkit-transform: scale(1.3);
704
+ transform: scale(1.3);
705
+ }
706
+
707
+ 28% {
708
+ -webkit-transform: scale(1);
709
+ transform: scale(1);
710
+ }
711
+
712
+ 42% {
713
+ -webkit-transform: scale(1.3);
714
+ transform: scale(1.3);
715
+ }
716
+
717
+ 70% {
718
+ -webkit-transform: scale(1);
719
+ transform: scale(1);
720
+ }
721
+ }
722
+
723
+ .heartBeat {
724
+ -webkit-animation-name: heartBeat;
725
+ animation-name: heartBeat;
726
+ -webkit-animation-duration: 1.3s;
727
+ animation-duration: 1.3s;
728
+ -webkit-animation-timing-function: ease-in-out;
729
+ animation-timing-function: ease-in-out;
730
+ }
731
+
732
+ @-webkit-keyframes bounceIn {
733
+ from,
734
+ 20%,
735
+ 40%,
736
+ 60%,
737
+ 80%,
738
+ to {
739
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
740
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
741
+ }
742
+
743
+ 0% {
744
+ opacity: 0;
745
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
746
+ transform: scale3d(0.3, 0.3, 0.3);
747
+ }
748
+
749
+ 20% {
750
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
751
+ transform: scale3d(1.1, 1.1, 1.1);
752
+ }
753
+
754
+ 40% {
755
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
756
+ transform: scale3d(0.9, 0.9, 0.9);
757
+ }
758
+
759
+ 60% {
760
+ opacity: 1;
761
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
762
+ transform: scale3d(1.03, 1.03, 1.03);
763
+ }
764
+
765
+ 80% {
766
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
767
+ transform: scale3d(0.97, 0.97, 0.97);
768
+ }
769
+
770
+ to {
771
+ opacity: 1;
772
+ -webkit-transform: scale3d(1, 1, 1);
773
+ transform: scale3d(1, 1, 1);
774
+ }
775
+ }
776
+
777
+ @keyframes bounceIn {
778
+ from,
779
+ 20%,
780
+ 40%,
781
+ 60%,
782
+ 80%,
783
+ to {
784
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
785
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
786
+ }
787
+
788
+ 0% {
789
+ opacity: 0;
790
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
791
+ transform: scale3d(0.3, 0.3, 0.3);
792
+ }
793
+
794
+ 20% {
795
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
796
+ transform: scale3d(1.1, 1.1, 1.1);
797
+ }
798
+
799
+ 40% {
800
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
801
+ transform: scale3d(0.9, 0.9, 0.9);
802
+ }
803
+
804
+ 60% {
805
+ opacity: 1;
806
+ -webkit-transform: scale3d(1.03, 1.03, 1.03);
807
+ transform: scale3d(1.03, 1.03, 1.03);
808
+ }
809
+
810
+ 80% {
811
+ -webkit-transform: scale3d(0.97, 0.97, 0.97);
812
+ transform: scale3d(0.97, 0.97, 0.97);
813
+ }
814
+
815
+ to {
816
+ opacity: 1;
817
+ -webkit-transform: scale3d(1, 1, 1);
818
+ transform: scale3d(1, 1, 1);
819
+ }
820
+ }
821
+
822
+ .bounceIn {
823
+ -webkit-animation-duration: 0.75s;
824
+ animation-duration: 0.75s;
825
+ -webkit-animation-name: bounceIn;
826
+ animation-name: bounceIn;
827
+ }
828
+
829
+ @-webkit-keyframes bounceInDown {
830
+ from,
831
+ 60%,
832
+ 75%,
833
+ 90%,
834
+ to {
835
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
836
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
837
+ }
838
+
839
+ 0% {
840
+ opacity: 0;
841
+ -webkit-transform: translate3d(0, -3000px, 0);
842
+ transform: translate3d(0, -3000px, 0);
843
+ }
844
+
845
+ 60% {
846
+ opacity: 1;
847
+ -webkit-transform: translate3d(0, 25px, 0);
848
+ transform: translate3d(0, 25px, 0);
849
+ }
850
+
851
+ 75% {
852
+ -webkit-transform: translate3d(0, -10px, 0);
853
+ transform: translate3d(0, -10px, 0);
854
+ }
855
+
856
+ 90% {
857
+ -webkit-transform: translate3d(0, 5px, 0);
858
+ transform: translate3d(0, 5px, 0);
859
+ }
860
+
861
+ to {
862
+ -webkit-transform: translate3d(0, 0, 0);
863
+ transform: translate3d(0, 0, 0);
864
+ }
865
+ }
866
+
867
+ @keyframes bounceInDown {
868
+ from,
869
+ 60%,
870
+ 75%,
871
+ 90%,
872
+ to {
873
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
874
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
875
+ }
876
+
877
+ 0% {
878
+ opacity: 0;
879
+ -webkit-transform: translate3d(0, -3000px, 0);
880
+ transform: translate3d(0, -3000px, 0);
881
+ }
882
+
883
+ 60% {
884
+ opacity: 1;
885
+ -webkit-transform: translate3d(0, 25px, 0);
886
+ transform: translate3d(0, 25px, 0);
887
+ }
888
+
889
+ 75% {
890
+ -webkit-transform: translate3d(0, -10px, 0);
891
+ transform: translate3d(0, -10px, 0);
892
+ }
893
+
894
+ 90% {
895
+ -webkit-transform: translate3d(0, 5px, 0);
896
+ transform: translate3d(0, 5px, 0);
897
+ }
898
+
899
+ to {
900
+ -webkit-transform: translate3d(0, 0, 0);
901
+ transform: translate3d(0, 0, 0);
902
+ }
903
+ }
904
+
905
+ .bounceInDown {
906
+ -webkit-animation-name: bounceInDown;
907
+ animation-name: bounceInDown;
908
+ }
909
+
910
+ @-webkit-keyframes bounceInLeft {
911
+ from,
912
+ 60%,
913
+ 75%,
914
+ 90%,
915
+ to {
916
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
917
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
918
+ }
919
+
920
+ 0% {
921
+ opacity: 0;
922
+ -webkit-transform: translate3d(-3000px, 0, 0);
923
+ transform: translate3d(-3000px, 0, 0);
924
+ }
925
+
926
+ 60% {
927
+ opacity: 1;
928
+ -webkit-transform: translate3d(25px, 0, 0);
929
+ transform: translate3d(25px, 0, 0);
930
+ }
931
+
932
+ 75% {
933
+ -webkit-transform: translate3d(-10px, 0, 0);
934
+ transform: translate3d(-10px, 0, 0);
935
+ }
936
+
937
+ 90% {
938
+ -webkit-transform: translate3d(5px, 0, 0);
939
+ transform: translate3d(5px, 0, 0);
940
+ }
941
+
942
+ to {
943
+ -webkit-transform: translate3d(0, 0, 0);
944
+ transform: translate3d(0, 0, 0);
945
+ }
946
+ }
947
+
948
+ @keyframes bounceInLeft {
949
+ from,
950
+ 60%,
951
+ 75%,
952
+ 90%,
953
+ to {
954
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
955
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
956
+ }
957
+
958
+ 0% {
959
+ opacity: 0;
960
+ -webkit-transform: translate3d(-3000px, 0, 0);
961
+ transform: translate3d(-3000px, 0, 0);
962
+ }
963
+
964
+ 60% {
965
+ opacity: 1;
966
+ -webkit-transform: translate3d(25px, 0, 0);
967
+ transform: translate3d(25px, 0, 0);
968
+ }
969
+
970
+ 75% {
971
+ -webkit-transform: translate3d(-10px, 0, 0);
972
+ transform: translate3d(-10px, 0, 0);
973
+ }
974
+
975
+ 90% {
976
+ -webkit-transform: translate3d(5px, 0, 0);
977
+ transform: translate3d(5px, 0, 0);
978
+ }
979
+
980
+ to {
981
+ -webkit-transform: translate3d(0, 0, 0);
982
+ transform: translate3d(0, 0, 0);
983
+ }
984
+ }
985
+
986
+ .bounceInLeft {
987
+ -webkit-animation-name: bounceInLeft;
988
+ animation-name: bounceInLeft;
989
+ }
990
+
991
+ @-webkit-keyframes bounceInRight {
992
+ from,
993
+ 60%,
994
+ 75%,
995
+ 90%,
996
+ to {
997
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
998
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
999
+ }
1000
+
1001
+ from {
1002
+ opacity: 0;
1003
+ -webkit-transform: translate3d(3000px, 0, 0);
1004
+ transform: translate3d(3000px, 0, 0);
1005
+ }
1006
+
1007
+ 60% {
1008
+ opacity: 1;
1009
+ -webkit-transform: translate3d(-25px, 0, 0);
1010
+ transform: translate3d(-25px, 0, 0);
1011
+ }
1012
+
1013
+ 75% {
1014
+ -webkit-transform: translate3d(10px, 0, 0);
1015
+ transform: translate3d(10px, 0, 0);
1016
+ }
1017
+
1018
+ 90% {
1019
+ -webkit-transform: translate3d(-5px, 0, 0);
1020
+ transform: translate3d(-5px, 0, 0);
1021
+ }
1022
+
1023
+ to {
1024
+ -webkit-transform: translate3d(0, 0, 0);
1025
+ transform: translate3d(0, 0, 0);
1026
+ }
1027
+ }
1028
+
1029
+ @keyframes bounceInRight {
1030
+ from,
1031
+ 60%,
1032
+ 75%,
1033
+ 90%,
1034
+ to {
1035
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1036
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1037
+ }
1038
+
1039
+ from {
1040
+ opacity: 0;
1041
+ -webkit-transform: translate3d(3000px, 0, 0);
1042
+ transform: translate3d(3000px, 0, 0);
1043
+ }
1044
+
1045
+ 60% {
1046
+ opacity: 1;
1047
+ -webkit-transform: translate3d(-25px, 0, 0);
1048
+ transform: translate3d(-25px, 0, 0);
1049
+ }
1050
+
1051
+ 75% {
1052
+ -webkit-transform: translate3d(10px, 0, 0);
1053
+ transform: translate3d(10px, 0, 0);
1054
+ }
1055
+
1056
+ 90% {
1057
+ -webkit-transform: translate3d(-5px, 0, 0);
1058
+ transform: translate3d(-5px, 0, 0);
1059
+ }
1060
+
1061
+ to {
1062
+ -webkit-transform: translate3d(0, 0, 0);
1063
+ transform: translate3d(0, 0, 0);
1064
+ }
1065
+ }
1066
+
1067
+ .bounceInRight {
1068
+ -webkit-animation-name: bounceInRight;
1069
+ animation-name: bounceInRight;
1070
+ }
1071
+
1072
+ @-webkit-keyframes bounceInUp {
1073
+ from,
1074
+ 60%,
1075
+ 75%,
1076
+ 90%,
1077
+ to {
1078
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1079
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1080
+ }
1081
+
1082
+ from {
1083
+ opacity: 0;
1084
+ -webkit-transform: translate3d(0, 3000px, 0);
1085
+ transform: translate3d(0, 3000px, 0);
1086
+ }
1087
+
1088
+ 60% {
1089
+ opacity: 1;
1090
+ -webkit-transform: translate3d(0, -20px, 0);
1091
+ transform: translate3d(0, -20px, 0);
1092
+ }
1093
+
1094
+ 75% {
1095
+ -webkit-transform: translate3d(0, 10px, 0);
1096
+ transform: translate3d(0, 10px, 0);
1097
+ }
1098
+
1099
+ 90% {
1100
+ -webkit-transform: translate3d(0, -5px, 0);
1101
+ transform: translate3d(0, -5px, 0);
1102
+ }
1103
+
1104
+ to {
1105
+ -webkit-transform: translate3d(0, 0, 0);
1106
+ transform: translate3d(0, 0, 0);
1107
+ }
1108
+ }
1109
+
1110
+ @keyframes bounceInUp {
1111
+ from,
1112
+ 60%,
1113
+ 75%,
1114
+ 90%,
1115
+ to {
1116
+ -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1117
+ animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
1118
+ }
1119
+
1120
+ from {
1121
+ opacity: 0;
1122
+ -webkit-transform: translate3d(0, 3000px, 0);
1123
+ transform: translate3d(0, 3000px, 0);
1124
+ }
1125
+
1126
+ 60% {
1127
+ opacity: 1;
1128
+ -webkit-transform: translate3d(0, -20px, 0);
1129
+ transform: translate3d(0, -20px, 0);
1130
+ }
1131
+
1132
+ 75% {
1133
+ -webkit-transform: translate3d(0, 10px, 0);
1134
+ transform: translate3d(0, 10px, 0);
1135
+ }
1136
+
1137
+ 90% {
1138
+ -webkit-transform: translate3d(0, -5px, 0);
1139
+ transform: translate3d(0, -5px, 0);
1140
+ }
1141
+
1142
+ to {
1143
+ -webkit-transform: translate3d(0, 0, 0);
1144
+ transform: translate3d(0, 0, 0);
1145
+ }
1146
+ }
1147
+
1148
+ .bounceInUp {
1149
+ -webkit-animation-name: bounceInUp;
1150
+ animation-name: bounceInUp;
1151
+ }
1152
+
1153
+ @-webkit-keyframes bounceOut {
1154
+ 20% {
1155
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
1156
+ transform: scale3d(0.9, 0.9, 0.9);
1157
+ }
1158
+
1159
+ 50%,
1160
+ 55% {
1161
+ opacity: 1;
1162
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1163
+ transform: scale3d(1.1, 1.1, 1.1);
1164
+ }
1165
+
1166
+ to {
1167
+ opacity: 0;
1168
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
1169
+ transform: scale3d(0.3, 0.3, 0.3);
1170
+ }
1171
+ }
1172
+
1173
+ @keyframes bounceOut {
1174
+ 20% {
1175
+ -webkit-transform: scale3d(0.9, 0.9, 0.9);
1176
+ transform: scale3d(0.9, 0.9, 0.9);
1177
+ }
1178
+
1179
+ 50%,
1180
+ 55% {
1181
+ opacity: 1;
1182
+ -webkit-transform: scale3d(1.1, 1.1, 1.1);
1183
+ transform: scale3d(1.1, 1.1, 1.1);
1184
+ }
1185
+
1186
+ to {
1187
+ opacity: 0;
1188
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
1189
+ transform: scale3d(0.3, 0.3, 0.3);
1190
+ }
1191
+ }
1192
+
1193
+ .bounceOut {
1194
+ -webkit-animation-duration: 0.75s;
1195
+ animation-duration: 0.75s;
1196
+ -webkit-animation-name: bounceOut;
1197
+ animation-name: bounceOut;
1198
+ }
1199
+
1200
+ @-webkit-keyframes bounceOutDown {
1201
+ 20% {
1202
+ -webkit-transform: translate3d(0, 10px, 0);
1203
+ transform: translate3d(0, 10px, 0);
1204
+ }
1205
+
1206
+ 40%,
1207
+ 45% {
1208
+ opacity: 1;
1209
+ -webkit-transform: translate3d(0, -20px, 0);
1210
+ transform: translate3d(0, -20px, 0);
1211
+ }
1212
+
1213
+ to {
1214
+ opacity: 0;
1215
+ -webkit-transform: translate3d(0, 2000px, 0);
1216
+ transform: translate3d(0, 2000px, 0);
1217
+ }
1218
+ }
1219
+
1220
+ @keyframes bounceOutDown {
1221
+ 20% {
1222
+ -webkit-transform: translate3d(0, 10px, 0);
1223
+ transform: translate3d(0, 10px, 0);
1224
+ }
1225
+
1226
+ 40%,
1227
+ 45% {
1228
+ opacity: 1;
1229
+ -webkit-transform: translate3d(0, -20px, 0);
1230
+ transform: translate3d(0, -20px, 0);
1231
+ }
1232
+
1233
+ to {
1234
+ opacity: 0;
1235
+ -webkit-transform: translate3d(0, 2000px, 0);
1236
+ transform: translate3d(0, 2000px, 0);
1237
+ }
1238
+ }
1239
+
1240
+ .bounceOutDown {
1241
+ -webkit-animation-name: bounceOutDown;
1242
+ animation-name: bounceOutDown;
1243
+ }
1244
+
1245
+ @-webkit-keyframes bounceOutLeft {
1246
+ 20% {
1247
+ opacity: 1;
1248
+ -webkit-transform: translate3d(20px, 0, 0);
1249
+ transform: translate3d(20px, 0, 0);
1250
+ }
1251
+
1252
+ to {
1253
+ opacity: 0;
1254
+ -webkit-transform: translate3d(-2000px, 0, 0);
1255
+ transform: translate3d(-2000px, 0, 0);
1256
+ }
1257
+ }
1258
+
1259
+ @keyframes bounceOutLeft {
1260
+ 20% {
1261
+ opacity: 1;
1262
+ -webkit-transform: translate3d(20px, 0, 0);
1263
+ transform: translate3d(20px, 0, 0);
1264
+ }
1265
+
1266
+ to {
1267
+ opacity: 0;
1268
+ -webkit-transform: translate3d(-2000px, 0, 0);
1269
+ transform: translate3d(-2000px, 0, 0);
1270
+ }
1271
+ }
1272
+
1273
+ .bounceOutLeft {
1274
+ -webkit-animation-name: bounceOutLeft;
1275
+ animation-name: bounceOutLeft;
1276
+ }
1277
+
1278
+ @-webkit-keyframes bounceOutRight {
1279
+ 20% {
1280
+ opacity: 1;
1281
+ -webkit-transform: translate3d(-20px, 0, 0);
1282
+ transform: translate3d(-20px, 0, 0);
1283
+ }
1284
+
1285
+ to {
1286
+ opacity: 0;
1287
+ -webkit-transform: translate3d(2000px, 0, 0);
1288
+ transform: translate3d(2000px, 0, 0);
1289
+ }
1290
+ }
1291
+
1292
+ @keyframes bounceOutRight {
1293
+ 20% {
1294
+ opacity: 1;
1295
+ -webkit-transform: translate3d(-20px, 0, 0);
1296
+ transform: translate3d(-20px, 0, 0);
1297
+ }
1298
+
1299
+ to {
1300
+ opacity: 0;
1301
+ -webkit-transform: translate3d(2000px, 0, 0);
1302
+ transform: translate3d(2000px, 0, 0);
1303
+ }
1304
+ }
1305
+
1306
+ .bounceOutRight {
1307
+ -webkit-animation-name: bounceOutRight;
1308
+ animation-name: bounceOutRight;
1309
+ }
1310
+
1311
+ @-webkit-keyframes bounceOutUp {
1312
+ 20% {
1313
+ -webkit-transform: translate3d(0, -10px, 0);
1314
+ transform: translate3d(0, -10px, 0);
1315
+ }
1316
+
1317
+ 40%,
1318
+ 45% {
1319
+ opacity: 1;
1320
+ -webkit-transform: translate3d(0, 20px, 0);
1321
+ transform: translate3d(0, 20px, 0);
1322
+ }
1323
+
1324
+ to {
1325
+ opacity: 0;
1326
+ -webkit-transform: translate3d(0, -2000px, 0);
1327
+ transform: translate3d(0, -2000px, 0);
1328
+ }
1329
+ }
1330
+
1331
+ @keyframes bounceOutUp {
1332
+ 20% {
1333
+ -webkit-transform: translate3d(0, -10px, 0);
1334
+ transform: translate3d(0, -10px, 0);
1335
+ }
1336
+
1337
+ 40%,
1338
+ 45% {
1339
+ opacity: 1;
1340
+ -webkit-transform: translate3d(0, 20px, 0);
1341
+ transform: translate3d(0, 20px, 0);
1342
+ }
1343
+
1344
+ to {
1345
+ opacity: 0;
1346
+ -webkit-transform: translate3d(0, -2000px, 0);
1347
+ transform: translate3d(0, -2000px, 0);
1348
+ }
1349
+ }
1350
+
1351
+ .bounceOutUp {
1352
+ -webkit-animation-name: bounceOutUp;
1353
+ animation-name: bounceOutUp;
1354
+ }
1355
+
1356
+ @-webkit-keyframes fadeIn {
1357
+ from {
1358
+ opacity: 0;
1359
+ }
1360
+
1361
+ to {
1362
+ opacity: 1;
1363
+ }
1364
+ }
1365
+
1366
+ @keyframes fadeIn {
1367
+ from {
1368
+ opacity: 0;
1369
+ }
1370
+
1371
+ to {
1372
+ opacity: 1;
1373
+ }
1374
+ }
1375
+
1376
+ .fadeIn {
1377
+ -webkit-animation-name: fadeIn;
1378
+ animation-name: fadeIn;
1379
+ }
1380
+
1381
+ @-webkit-keyframes fadeInDown {
1382
+ from {
1383
+ opacity: 0;
1384
+ -webkit-transform: translate3d(0, -10%, 0);
1385
+ transform: translate3d(0, -10%, 0);
1386
+ }
1387
+
1388
+ to {
1389
+ opacity: 1;
1390
+ -webkit-transform: translate3d(0, 0, 0);
1391
+ transform: translate3d(0, 0, 0);
1392
+ }
1393
+ }
1394
+
1395
+ @keyframes fadeInDown {
1396
+ from {
1397
+ opacity: 0;
1398
+ -webkit-transform: translate3d(0, -10%, 0);
1399
+ transform: translate3d(0, -10%, 0);
1400
+ }
1401
+
1402
+ to {
1403
+ opacity: 1;
1404
+ -webkit-transform: translate3d(0, 0, 0);
1405
+ transform: translate3d(0, 0, 0);
1406
+ }
1407
+ }
1408
+
1409
+ .fadeInDown {
1410
+ -webkit-animation-name: fadeInDown;
1411
+ animation-name: fadeInDown;
1412
+ }
1413
+
1414
+ @-webkit-keyframes fadeInDownBig {
1415
+ from {
1416
+ opacity: 0;
1417
+ -webkit-transform: translate3d(0, -2000px, 0);
1418
+ transform: translate3d(0, -2000px, 0);
1419
+ }
1420
+
1421
+ to {
1422
+ opacity: 1;
1423
+ -webkit-transform: translate3d(0, 0, 0);
1424
+ transform: translate3d(0, 0, 0);
1425
+ }
1426
+ }
1427
+
1428
+ @keyframes fadeInDownBig {
1429
+ from {
1430
+ opacity: 0;
1431
+ -webkit-transform: translate3d(0, -2000px, 0);
1432
+ transform: translate3d(0, -2000px, 0);
1433
+ }
1434
+
1435
+ to {
1436
+ opacity: 1;
1437
+ -webkit-transform: translate3d(0, 0, 0);
1438
+ transform: translate3d(0, 0, 0);
1439
+ }
1440
+ }
1441
+
1442
+ .fadeInDownBig {
1443
+ -webkit-animation-name: fadeInDownBig;
1444
+ animation-name: fadeInDownBig;
1445
+ }
1446
+
1447
+ @-webkit-keyframes fadeInLeft {
1448
+ from {
1449
+ opacity: 0;
1450
+ -webkit-transform: translate3d(-100%, 0, 0);
1451
+ transform: translate3d(-100%, 0, 0);
1452
+ }
1453
+
1454
+ to {
1455
+ opacity: 1;
1456
+ -webkit-transform: translate3d(0, 0, 0);
1457
+ transform: translate3d(0, 0, 0);
1458
+ }
1459
+ }
1460
+
1461
+ @keyframes fadeInLeft {
1462
+ from {
1463
+ opacity: 0;
1464
+ -webkit-transform: translate3d(-100%, 0, 0);
1465
+ transform: translate3d(-100%, 0, 0);
1466
+ }
1467
+
1468
+ to {
1469
+ opacity: 1;
1470
+ -webkit-transform: translate3d(0, 0, 0);
1471
+ transform: translate3d(0, 0, 0);
1472
+ }
1473
+ }
1474
+
1475
+ .fadeInLeft {
1476
+ -webkit-animation-name: fadeInLeft;
1477
+ animation-name: fadeInLeft;
1478
+ }
1479
+
1480
+ @-webkit-keyframes fadeInLeftBig {
1481
+ from {
1482
+ opacity: 0;
1483
+ -webkit-transform: translate3d(-2000px, 0, 0);
1484
+ transform: translate3d(-2000px, 0, 0);
1485
+ }
1486
+
1487
+ to {
1488
+ opacity: 1;
1489
+ -webkit-transform: translate3d(0, 0, 0);
1490
+ transform: translate3d(0, 0, 0);
1491
+ }
1492
+ }
1493
+
1494
+ @keyframes fadeInLeftBig {
1495
+ from {
1496
+ opacity: 0;
1497
+ -webkit-transform: translate3d(-2000px, 0, 0);
1498
+ transform: translate3d(-2000px, 0, 0);
1499
+ }
1500
+
1501
+ to {
1502
+ opacity: 1;
1503
+ -webkit-transform: translate3d(0, 0, 0);
1504
+ transform: translate3d(0, 0, 0);
1505
+ }
1506
+ }
1507
+
1508
+ .fadeInLeftBig {
1509
+ -webkit-animation-name: fadeInLeftBig;
1510
+ animation-name: fadeInLeftBig;
1511
+ }
1512
+
1513
+ @-webkit-keyframes fadeInRight {
1514
+ from {
1515
+ opacity: 0;
1516
+ -webkit-transform: translate3d(100%, 0, 0);
1517
+ transform: translate3d(100%, 0, 0);
1518
+ }
1519
+
1520
+ to {
1521
+ opacity: 1;
1522
+ -webkit-transform: translate3d(0, 0, 0);
1523
+ transform: translate3d(0, 0, 0);
1524
+ }
1525
+ }
1526
+
1527
+ @keyframes fadeInRight {
1528
+ from {
1529
+ opacity: 0;
1530
+ -webkit-transform: translate3d(100%, 0, 0);
1531
+ transform: translate3d(100%, 0, 0);
1532
+ }
1533
+
1534
+ to {
1535
+ opacity: 1;
1536
+ -webkit-transform: translate3d(0, 0, 0);
1537
+ transform: translate3d(0, 0, 0);
1538
+ }
1539
+ }
1540
+
1541
+ .fadeInRight {
1542
+ -webkit-animation-name: fadeInRight;
1543
+ animation-name: fadeInRight;
1544
+ }
1545
+
1546
+ @-webkit-keyframes fadeInRightBig {
1547
+ from {
1548
+ opacity: 0;
1549
+ -webkit-transform: translate3d(2000px, 0, 0);
1550
+ transform: translate3d(2000px, 0, 0);
1551
+ }
1552
+
1553
+ to {
1554
+ opacity: 1;
1555
+ -webkit-transform: translate3d(0, 0, 0);
1556
+ transform: translate3d(0, 0, 0);
1557
+ }
1558
+ }
1559
+
1560
+ @keyframes fadeInRightBig {
1561
+ from {
1562
+ opacity: 0;
1563
+ -webkit-transform: translate3d(2000px, 0, 0);
1564
+ transform: translate3d(2000px, 0, 0);
1565
+ }
1566
+
1567
+ to {
1568
+ opacity: 1;
1569
+ -webkit-transform: translate3d(0, 0, 0);
1570
+ transform: translate3d(0, 0, 0);
1571
+ }
1572
+ }
1573
+
1574
+ .fadeInRightBig {
1575
+ -webkit-animation-name: fadeInRightBig;
1576
+ animation-name: fadeInRightBig;
1577
+ }
1578
+
1579
+ @-webkit-keyframes fadeInUp {
1580
+ from {
1581
+ opacity: 0;
1582
+ -webkit-transform: translate3d(0, 10%, 0);
1583
+ transform: translate3d(0, 10%, 0);
1584
+ }
1585
+
1586
+ to {
1587
+ opacity: 1;
1588
+ -webkit-transform: translate3d(0, 0, 0);
1589
+ transform: translate3d(0, 0, 0);
1590
+ }
1591
+ }
1592
+
1593
+ @keyframes fadeInUp {
1594
+ from {
1595
+ opacity: 0;
1596
+ -webkit-transform: translate3d(0, 10%, 0);
1597
+ transform: translate3d(0, 10%, 0);
1598
+ }
1599
+
1600
+ to {
1601
+ opacity: 1;
1602
+ -webkit-transform: translate3d(0, 0, 0);
1603
+ transform: translate3d(0, 0, 0);
1604
+ }
1605
+ }
1606
+
1607
+ .fadeInUp {
1608
+ -webkit-animation-name: fadeInUp;
1609
+ animation-name: fadeInUp;
1610
+ }
1611
+
1612
+ @-webkit-keyframes fadeInUpBig {
1613
+ from {
1614
+ opacity: 0;
1615
+ -webkit-transform: translate3d(0, 2000px, 0);
1616
+ transform: translate3d(0, 2000px, 0);
1617
+ }
1618
+
1619
+ to {
1620
+ opacity: 1;
1621
+ -webkit-transform: translate3d(0, 0, 0);
1622
+ transform: translate3d(0, 0, 0);
1623
+ }
1624
+ }
1625
+
1626
+ @keyframes fadeInUpBig {
1627
+ from {
1628
+ opacity: 0;
1629
+ -webkit-transform: translate3d(0, 2000px, 0);
1630
+ transform: translate3d(0, 2000px, 0);
1631
+ }
1632
+
1633
+ to {
1634
+ opacity: 1;
1635
+ -webkit-transform: translate3d(0, 0, 0);
1636
+ transform: translate3d(0, 0, 0);
1637
+ }
1638
+ }
1639
+
1640
+ .fadeInUpBig {
1641
+ -webkit-animation-name: fadeInUpBig;
1642
+ animation-name: fadeInUpBig;
1643
+ }
1644
+
1645
+ @-webkit-keyframes fadeOut {
1646
+ from {
1647
+ opacity: 1;
1648
+ }
1649
+
1650
+ to {
1651
+ opacity: 0;
1652
+ }
1653
+ }
1654
+
1655
+ @keyframes fadeOut {
1656
+ from {
1657
+ opacity: 1;
1658
+ }
1659
+
1660
+ to {
1661
+ opacity: 0;
1662
+ }
1663
+ }
1664
+
1665
+ .fadeOut {
1666
+ -webkit-animation-name: fadeOut;
1667
+ animation-name: fadeOut;
1668
+ }
1669
+
1670
+ @-webkit-keyframes fadeOutDown {
1671
+ from {
1672
+ opacity: 1;
1673
+ }
1674
+
1675
+ to {
1676
+ opacity: 0;
1677
+ -webkit-transform: translate3d(0, 100%, 0);
1678
+ transform: translate3d(0, 100%, 0);
1679
+ }
1680
+ }
1681
+
1682
+ @keyframes fadeOutDown {
1683
+ from {
1684
+ opacity: 1;
1685
+ }
1686
+
1687
+ to {
1688
+ opacity: 0;
1689
+ -webkit-transform: translate3d(0, 100%, 0);
1690
+ transform: translate3d(0, 100%, 0);
1691
+ }
1692
+ }
1693
+
1694
+ .fadeOutDown {
1695
+ -webkit-animation-name: fadeOutDown;
1696
+ animation-name: fadeOutDown;
1697
+ }
1698
+
1699
+ @-webkit-keyframes fadeOutDownBig {
1700
+ from {
1701
+ opacity: 1;
1702
+ }
1703
+
1704
+ to {
1705
+ opacity: 0;
1706
+ -webkit-transform: translate3d(0, 2000px, 0);
1707
+ transform: translate3d(0, 2000px, 0);
1708
+ }
1709
+ }
1710
+
1711
+ @keyframes fadeOutDownBig {
1712
+ from {
1713
+ opacity: 1;
1714
+ }
1715
+
1716
+ to {
1717
+ opacity: 0;
1718
+ -webkit-transform: translate3d(0, 2000px, 0);
1719
+ transform: translate3d(0, 2000px, 0);
1720
+ }
1721
+ }
1722
+
1723
+ .fadeOutDownBig {
1724
+ -webkit-animation-name: fadeOutDownBig;
1725
+ animation-name: fadeOutDownBig;
1726
+ }
1727
+
1728
+ @-webkit-keyframes fadeOutLeft {
1729
+ from {
1730
+ opacity: 1;
1731
+ }
1732
+
1733
+ to {
1734
+ opacity: 0;
1735
+ -webkit-transform: translate3d(-100%, 0, 0);
1736
+ transform: translate3d(-100%, 0, 0);
1737
+ }
1738
+ }
1739
+
1740
+ @keyframes fadeOutLeft {
1741
+ from {
1742
+ opacity: 1;
1743
+ }
1744
+
1745
+ to {
1746
+ opacity: 0;
1747
+ -webkit-transform: translate3d(-100%, 0, 0);
1748
+ transform: translate3d(-100%, 0, 0);
1749
+ }
1750
+ }
1751
+
1752
+ .fadeOutLeft {
1753
+ -webkit-animation-name: fadeOutLeft;
1754
+ animation-name: fadeOutLeft;
1755
+ }
1756
+
1757
+ @-webkit-keyframes fadeOutLeftBig {
1758
+ from {
1759
+ opacity: 1;
1760
+ }
1761
+
1762
+ to {
1763
+ opacity: 0;
1764
+ -webkit-transform: translate3d(-2000px, 0, 0);
1765
+ transform: translate3d(-2000px, 0, 0);
1766
+ }
1767
+ }
1768
+
1769
+ @keyframes fadeOutLeftBig {
1770
+ from {
1771
+ opacity: 1;
1772
+ }
1773
+
1774
+ to {
1775
+ opacity: 0;
1776
+ -webkit-transform: translate3d(-2000px, 0, 0);
1777
+ transform: translate3d(-2000px, 0, 0);
1778
+ }
1779
+ }
1780
+
1781
+ .fadeOutLeftBig {
1782
+ -webkit-animation-name: fadeOutLeftBig;
1783
+ animation-name: fadeOutLeftBig;
1784
+ }
1785
+
1786
+ @-webkit-keyframes fadeOutRight {
1787
+ from {
1788
+ opacity: 1;
1789
+ }
1790
+
1791
+ to {
1792
+ opacity: 0;
1793
+ -webkit-transform: translate3d(100%, 0, 0);
1794
+ transform: translate3d(100%, 0, 0);
1795
+ }
1796
+ }
1797
+
1798
+ @keyframes fadeOutRight {
1799
+ from {
1800
+ opacity: 1;
1801
+ }
1802
+
1803
+ to {
1804
+ opacity: 0;
1805
+ -webkit-transform: translate3d(100%, 0, 0);
1806
+ transform: translate3d(100%, 0, 0);
1807
+ }
1808
+ }
1809
+
1810
+ .fadeOutRight {
1811
+ -webkit-animation-name: fadeOutRight;
1812
+ animation-name: fadeOutRight;
1813
+ }
1814
+
1815
+ @-webkit-keyframes fadeOutRightBig {
1816
+ from {
1817
+ opacity: 1;
1818
+ }
1819
+
1820
+ to {
1821
+ opacity: 0;
1822
+ -webkit-transform: translate3d(2000px, 0, 0);
1823
+ transform: translate3d(2000px, 0, 0);
1824
+ }
1825
+ }
1826
+
1827
+ @keyframes fadeOutRightBig {
1828
+ from {
1829
+ opacity: 1;
1830
+ }
1831
+
1832
+ to {
1833
+ opacity: 0;
1834
+ -webkit-transform: translate3d(2000px, 0, 0);
1835
+ transform: translate3d(2000px, 0, 0);
1836
+ }
1837
+ }
1838
+
1839
+ .fadeOutRightBig {
1840
+ -webkit-animation-name: fadeOutRightBig;
1841
+ animation-name: fadeOutRightBig;
1842
+ }
1843
+
1844
+ @-webkit-keyframes fadeOutUp {
1845
+ from {
1846
+ opacity: 1;
1847
+ }
1848
+
1849
+ to {
1850
+ opacity: 0;
1851
+ -webkit-transform: translate3d(0, -10%, 0);
1852
+ transform: translate3d(0, -10%, 0);
1853
+ }
1854
+ }
1855
+
1856
+ @keyframes fadeOutUp {
1857
+ from {
1858
+ opacity: 1;
1859
+ }
1860
+
1861
+ to {
1862
+ opacity: 0;
1863
+ -webkit-transform: translate3d(0, -10%, 0);
1864
+ transform: translate3d(0, -10%, 0);
1865
+ }
1866
+ }
1867
+
1868
+ .fadeOutUp {
1869
+ -webkit-animation-name: fadeOutUp;
1870
+ animation-name: fadeOutUp;
1871
+ }
1872
+
1873
+ @-webkit-keyframes fadeOutUpBig {
1874
+ from {
1875
+ opacity: 1;
1876
+ }
1877
+
1878
+ to {
1879
+ opacity: 0;
1880
+ -webkit-transform: translate3d(0, -2000px, 0);
1881
+ transform: translate3d(0, -2000px, 0);
1882
+ }
1883
+ }
1884
+
1885
+ @keyframes fadeOutUpBig {
1886
+ from {
1887
+ opacity: 1;
1888
+ }
1889
+
1890
+ to {
1891
+ opacity: 0;
1892
+ -webkit-transform: translate3d(0, -2000px, 0);
1893
+ transform: translate3d(0, -2000px, 0);
1894
+ }
1895
+ }
1896
+
1897
+ .fadeOutUpBig {
1898
+ -webkit-animation-name: fadeOutUpBig;
1899
+ animation-name: fadeOutUpBig;
1900
+ }
1901
+
1902
+ @-webkit-keyframes flip {
1903
+ from {
1904
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1905
+ rotate3d(0, 1, 0, -360deg);
1906
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
1907
+ -webkit-animation-timing-function: ease-out;
1908
+ animation-timing-function: ease-out;
1909
+ }
1910
+
1911
+ 40% {
1912
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1913
+ rotate3d(0, 1, 0, -190deg);
1914
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1915
+ rotate3d(0, 1, 0, -190deg);
1916
+ -webkit-animation-timing-function: ease-out;
1917
+ animation-timing-function: ease-out;
1918
+ }
1919
+
1920
+ 50% {
1921
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1922
+ rotate3d(0, 1, 0, -170deg);
1923
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1924
+ rotate3d(0, 1, 0, -170deg);
1925
+ -webkit-animation-timing-function: ease-in;
1926
+ animation-timing-function: ease-in;
1927
+ }
1928
+
1929
+ 80% {
1930
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1931
+ rotate3d(0, 1, 0, 0deg);
1932
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1933
+ rotate3d(0, 1, 0, 0deg);
1934
+ -webkit-animation-timing-function: ease-in;
1935
+ animation-timing-function: ease-in;
1936
+ }
1937
+
1938
+ to {
1939
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1940
+ rotate3d(0, 1, 0, 0deg);
1941
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
1942
+ -webkit-animation-timing-function: ease-in;
1943
+ animation-timing-function: ease-in;
1944
+ }
1945
+ }
1946
+
1947
+ @keyframes flip {
1948
+ from {
1949
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1950
+ rotate3d(0, 1, 0, -360deg);
1951
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg);
1952
+ -webkit-animation-timing-function: ease-out;
1953
+ animation-timing-function: ease-out;
1954
+ }
1955
+
1956
+ 40% {
1957
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1958
+ rotate3d(0, 1, 0, -190deg);
1959
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1960
+ rotate3d(0, 1, 0, -190deg);
1961
+ -webkit-animation-timing-function: ease-out;
1962
+ animation-timing-function: ease-out;
1963
+ }
1964
+
1965
+ 50% {
1966
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1967
+ rotate3d(0, 1, 0, -170deg);
1968
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px)
1969
+ rotate3d(0, 1, 0, -170deg);
1970
+ -webkit-animation-timing-function: ease-in;
1971
+ animation-timing-function: ease-in;
1972
+ }
1973
+
1974
+ 80% {
1975
+ -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1976
+ rotate3d(0, 1, 0, 0deg);
1977
+ transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0)
1978
+ rotate3d(0, 1, 0, 0deg);
1979
+ -webkit-animation-timing-function: ease-in;
1980
+ animation-timing-function: ease-in;
1981
+ }
1982
+
1983
+ to {
1984
+ -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0)
1985
+ rotate3d(0, 1, 0, 0deg);
1986
+ transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg);
1987
+ -webkit-animation-timing-function: ease-in;
1988
+ animation-timing-function: ease-in;
1989
+ }
1990
+ }
1991
+
1992
+ .animated.flip {
1993
+ -webkit-backface-visibility: visible;
1994
+ backface-visibility: visible;
1995
+ -webkit-animation-name: flip;
1996
+ animation-name: flip;
1997
+ }
1998
+
1999
+ @-webkit-keyframes flipInX {
2000
+ from {
2001
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2002
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2003
+ -webkit-animation-timing-function: ease-in;
2004
+ animation-timing-function: ease-in;
2005
+ opacity: 0;
2006
+ }
2007
+
2008
+ 40% {
2009
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2010
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2011
+ -webkit-animation-timing-function: ease-in;
2012
+ animation-timing-function: ease-in;
2013
+ }
2014
+
2015
+ 60% {
2016
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2017
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2018
+ opacity: 1;
2019
+ }
2020
+
2021
+ 80% {
2022
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2023
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2024
+ }
2025
+
2026
+ to {
2027
+ -webkit-transform: perspective(400px);
2028
+ transform: perspective(400px);
2029
+ }
2030
+ }
2031
+
2032
+ @keyframes flipInX {
2033
+ from {
2034
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2035
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2036
+ -webkit-animation-timing-function: ease-in;
2037
+ animation-timing-function: ease-in;
2038
+ opacity: 0;
2039
+ }
2040
+
2041
+ 40% {
2042
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2043
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2044
+ -webkit-animation-timing-function: ease-in;
2045
+ animation-timing-function: ease-in;
2046
+ }
2047
+
2048
+ 60% {
2049
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2050
+ transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
2051
+ opacity: 1;
2052
+ }
2053
+
2054
+ 80% {
2055
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2056
+ transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
2057
+ }
2058
+
2059
+ to {
2060
+ -webkit-transform: perspective(400px);
2061
+ transform: perspective(400px);
2062
+ }
2063
+ }
2064
+
2065
+ .flipInX {
2066
+ -webkit-backface-visibility: visible !important;
2067
+ backface-visibility: visible !important;
2068
+ -webkit-animation-name: flipInX;
2069
+ animation-name: flipInX;
2070
+ }
2071
+
2072
+ @-webkit-keyframes flipInY {
2073
+ from {
2074
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2075
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2076
+ -webkit-animation-timing-function: ease-in;
2077
+ animation-timing-function: ease-in;
2078
+ opacity: 0;
2079
+ }
2080
+
2081
+ 40% {
2082
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2083
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2084
+ -webkit-animation-timing-function: ease-in;
2085
+ animation-timing-function: ease-in;
2086
+ }
2087
+
2088
+ 60% {
2089
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2090
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2091
+ opacity: 1;
2092
+ }
2093
+
2094
+ 80% {
2095
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2096
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2097
+ }
2098
+
2099
+ to {
2100
+ -webkit-transform: perspective(400px);
2101
+ transform: perspective(400px);
2102
+ }
2103
+ }
2104
+
2105
+ @keyframes flipInY {
2106
+ from {
2107
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2108
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2109
+ -webkit-animation-timing-function: ease-in;
2110
+ animation-timing-function: ease-in;
2111
+ opacity: 0;
2112
+ }
2113
+
2114
+ 40% {
2115
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2116
+ transform: perspective(400px) rotate3d(0, 1, 0, -20deg);
2117
+ -webkit-animation-timing-function: ease-in;
2118
+ animation-timing-function: ease-in;
2119
+ }
2120
+
2121
+ 60% {
2122
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2123
+ transform: perspective(400px) rotate3d(0, 1, 0, 10deg);
2124
+ opacity: 1;
2125
+ }
2126
+
2127
+ 80% {
2128
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2129
+ transform: perspective(400px) rotate3d(0, 1, 0, -5deg);
2130
+ }
2131
+
2132
+ to {
2133
+ -webkit-transform: perspective(400px);
2134
+ transform: perspective(400px);
2135
+ }
2136
+ }
2137
+
2138
+ .flipInY {
2139
+ -webkit-backface-visibility: visible !important;
2140
+ backface-visibility: visible !important;
2141
+ -webkit-animation-name: flipInY;
2142
+ animation-name: flipInY;
2143
+ }
2144
+
2145
+ @-webkit-keyframes flipOutX {
2146
+ from {
2147
+ -webkit-transform: perspective(400px);
2148
+ transform: perspective(400px);
2149
+ }
2150
+
2151
+ 30% {
2152
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2153
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2154
+ opacity: 1;
2155
+ }
2156
+
2157
+ to {
2158
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2159
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2160
+ opacity: 0;
2161
+ }
2162
+ }
2163
+
2164
+ @keyframes flipOutX {
2165
+ from {
2166
+ -webkit-transform: perspective(400px);
2167
+ transform: perspective(400px);
2168
+ }
2169
+
2170
+ 30% {
2171
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2172
+ transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
2173
+ opacity: 1;
2174
+ }
2175
+
2176
+ to {
2177
+ -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2178
+ transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
2179
+ opacity: 0;
2180
+ }
2181
+ }
2182
+
2183
+ .flipOutX {
2184
+ -webkit-animation-duration: 0.75s;
2185
+ animation-duration: 0.75s;
2186
+ -webkit-animation-name: flipOutX;
2187
+ animation-name: flipOutX;
2188
+ -webkit-backface-visibility: visible !important;
2189
+ backface-visibility: visible !important;
2190
+ }
2191
+
2192
+ @-webkit-keyframes flipOutY {
2193
+ from {
2194
+ -webkit-transform: perspective(400px);
2195
+ transform: perspective(400px);
2196
+ }
2197
+
2198
+ 30% {
2199
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2200
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2201
+ opacity: 1;
2202
+ }
2203
+
2204
+ to {
2205
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2206
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2207
+ opacity: 0;
2208
+ }
2209
+ }
2210
+
2211
+ @keyframes flipOutY {
2212
+ from {
2213
+ -webkit-transform: perspective(400px);
2214
+ transform: perspective(400px);
2215
+ }
2216
+
2217
+ 30% {
2218
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2219
+ transform: perspective(400px) rotate3d(0, 1, 0, -15deg);
2220
+ opacity: 1;
2221
+ }
2222
+
2223
+ to {
2224
+ -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2225
+ transform: perspective(400px) rotate3d(0, 1, 0, 90deg);
2226
+ opacity: 0;
2227
+ }
2228
+ }
2229
+
2230
+ .flipOutY {
2231
+ -webkit-animation-duration: 0.75s;
2232
+ animation-duration: 0.75s;
2233
+ -webkit-backface-visibility: visible !important;
2234
+ backface-visibility: visible !important;
2235
+ -webkit-animation-name: flipOutY;
2236
+ animation-name: flipOutY;
2237
+ }
2238
+
2239
+ @-webkit-keyframes lightSpeedIn {
2240
+ from {
2241
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2242
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2243
+ opacity: 0;
2244
+ }
2245
+
2246
+ 60% {
2247
+ -webkit-transform: skewX(20deg);
2248
+ transform: skewX(20deg);
2249
+ opacity: 1;
2250
+ }
2251
+
2252
+ 80% {
2253
+ -webkit-transform: skewX(-5deg);
2254
+ transform: skewX(-5deg);
2255
+ }
2256
+
2257
+ to {
2258
+ -webkit-transform: translate3d(0, 0, 0);
2259
+ transform: translate3d(0, 0, 0);
2260
+ }
2261
+ }
2262
+
2263
+ @keyframes lightSpeedIn {
2264
+ from {
2265
+ -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg);
2266
+ transform: translate3d(100%, 0, 0) skewX(-30deg);
2267
+ opacity: 0;
2268
+ }
2269
+
2270
+ 60% {
2271
+ -webkit-transform: skewX(20deg);
2272
+ transform: skewX(20deg);
2273
+ opacity: 1;
2274
+ }
2275
+
2276
+ 80% {
2277
+ -webkit-transform: skewX(-5deg);
2278
+ transform: skewX(-5deg);
2279
+ }
2280
+
2281
+ to {
2282
+ -webkit-transform: translate3d(0, 0, 0);
2283
+ transform: translate3d(0, 0, 0);
2284
+ }
2285
+ }
2286
+
2287
+ .lightSpeedIn {
2288
+ -webkit-animation-name: lightSpeedIn;
2289
+ animation-name: lightSpeedIn;
2290
+ -webkit-animation-timing-function: ease-out;
2291
+ animation-timing-function: ease-out;
2292
+ }
2293
+
2294
+ @-webkit-keyframes lightSpeedOut {
2295
+ from {
2296
+ opacity: 1;
2297
+ }
2298
+
2299
+ to {
2300
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2301
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2302
+ opacity: 0;
2303
+ }
2304
+ }
2305
+
2306
+ @keyframes lightSpeedOut {
2307
+ from {
2308
+ opacity: 1;
2309
+ }
2310
+
2311
+ to {
2312
+ -webkit-transform: translate3d(100%, 0, 0) skewX(30deg);
2313
+ transform: translate3d(100%, 0, 0) skewX(30deg);
2314
+ opacity: 0;
2315
+ }
2316
+ }
2317
+
2318
+ .lightSpeedOut {
2319
+ -webkit-animation-name: lightSpeedOut;
2320
+ animation-name: lightSpeedOut;
2321
+ -webkit-animation-timing-function: ease-in;
2322
+ animation-timing-function: ease-in;
2323
+ }
2324
+
2325
+ @-webkit-keyframes rotateIn {
2326
+ from {
2327
+ -webkit-transform-origin: center;
2328
+ transform-origin: center;
2329
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2330
+ transform: rotate3d(0, 0, 1, -200deg);
2331
+ opacity: 0;
2332
+ }
2333
+
2334
+ to {
2335
+ -webkit-transform-origin: center;
2336
+ transform-origin: center;
2337
+ -webkit-transform: translate3d(0, 0, 0);
2338
+ transform: translate3d(0, 0, 0);
2339
+ opacity: 1;
2340
+ }
2341
+ }
2342
+
2343
+ @keyframes rotateIn {
2344
+ from {
2345
+ -webkit-transform-origin: center;
2346
+ transform-origin: center;
2347
+ -webkit-transform: rotate3d(0, 0, 1, -200deg);
2348
+ transform: rotate3d(0, 0, 1, -200deg);
2349
+ opacity: 0;
2350
+ }
2351
+
2352
+ to {
2353
+ -webkit-transform-origin: center;
2354
+ transform-origin: center;
2355
+ -webkit-transform: translate3d(0, 0, 0);
2356
+ transform: translate3d(0, 0, 0);
2357
+ opacity: 1;
2358
+ }
2359
+ }
2360
+
2361
+ .rotateIn {
2362
+ -webkit-animation-name: rotateIn;
2363
+ animation-name: rotateIn;
2364
+ }
2365
+
2366
+ @-webkit-keyframes rotateInDownLeft {
2367
+ from {
2368
+ -webkit-transform-origin: left bottom;
2369
+ transform-origin: left bottom;
2370
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2371
+ transform: rotate3d(0, 0, 1, -45deg);
2372
+ opacity: 0;
2373
+ }
2374
+
2375
+ to {
2376
+ -webkit-transform-origin: left bottom;
2377
+ transform-origin: left bottom;
2378
+ -webkit-transform: translate3d(0, 0, 0);
2379
+ transform: translate3d(0, 0, 0);
2380
+ opacity: 1;
2381
+ }
2382
+ }
2383
+
2384
+ @keyframes rotateInDownLeft {
2385
+ from {
2386
+ -webkit-transform-origin: left bottom;
2387
+ transform-origin: left bottom;
2388
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2389
+ transform: rotate3d(0, 0, 1, -45deg);
2390
+ opacity: 0;
2391
+ }
2392
+
2393
+ to {
2394
+ -webkit-transform-origin: left bottom;
2395
+ transform-origin: left bottom;
2396
+ -webkit-transform: translate3d(0, 0, 0);
2397
+ transform: translate3d(0, 0, 0);
2398
+ opacity: 1;
2399
+ }
2400
+ }
2401
+
2402
+ .rotateInDownLeft {
2403
+ -webkit-animation-name: rotateInDownLeft;
2404
+ animation-name: rotateInDownLeft;
2405
+ }
2406
+
2407
+ @-webkit-keyframes rotateInDownRight {
2408
+ from {
2409
+ -webkit-transform-origin: right bottom;
2410
+ transform-origin: right bottom;
2411
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2412
+ transform: rotate3d(0, 0, 1, 45deg);
2413
+ opacity: 0;
2414
+ }
2415
+
2416
+ to {
2417
+ -webkit-transform-origin: right bottom;
2418
+ transform-origin: right bottom;
2419
+ -webkit-transform: translate3d(0, 0, 0);
2420
+ transform: translate3d(0, 0, 0);
2421
+ opacity: 1;
2422
+ }
2423
+ }
2424
+
2425
+ @keyframes rotateInDownRight {
2426
+ from {
2427
+ -webkit-transform-origin: right bottom;
2428
+ transform-origin: right bottom;
2429
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2430
+ transform: rotate3d(0, 0, 1, 45deg);
2431
+ opacity: 0;
2432
+ }
2433
+
2434
+ to {
2435
+ -webkit-transform-origin: right bottom;
2436
+ transform-origin: right bottom;
2437
+ -webkit-transform: translate3d(0, 0, 0);
2438
+ transform: translate3d(0, 0, 0);
2439
+ opacity: 1;
2440
+ }
2441
+ }
2442
+
2443
+ .rotateInDownRight {
2444
+ -webkit-animation-name: rotateInDownRight;
2445
+ animation-name: rotateInDownRight;
2446
+ }
2447
+
2448
+ @-webkit-keyframes rotateInUpLeft {
2449
+ from {
2450
+ -webkit-transform-origin: left bottom;
2451
+ transform-origin: left bottom;
2452
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2453
+ transform: rotate3d(0, 0, 1, 45deg);
2454
+ opacity: 0;
2455
+ }
2456
+
2457
+ to {
2458
+ -webkit-transform-origin: left bottom;
2459
+ transform-origin: left bottom;
2460
+ -webkit-transform: translate3d(0, 0, 0);
2461
+ transform: translate3d(0, 0, 0);
2462
+ opacity: 1;
2463
+ }
2464
+ }
2465
+
2466
+ @keyframes rotateInUpLeft {
2467
+ from {
2468
+ -webkit-transform-origin: left bottom;
2469
+ transform-origin: left bottom;
2470
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2471
+ transform: rotate3d(0, 0, 1, 45deg);
2472
+ opacity: 0;
2473
+ }
2474
+
2475
+ to {
2476
+ -webkit-transform-origin: left bottom;
2477
+ transform-origin: left bottom;
2478
+ -webkit-transform: translate3d(0, 0, 0);
2479
+ transform: translate3d(0, 0, 0);
2480
+ opacity: 1;
2481
+ }
2482
+ }
2483
+
2484
+ .rotateInUpLeft {
2485
+ -webkit-animation-name: rotateInUpLeft;
2486
+ animation-name: rotateInUpLeft;
2487
+ }
2488
+
2489
+ @-webkit-keyframes rotateInUpRight {
2490
+ from {
2491
+ -webkit-transform-origin: right bottom;
2492
+ transform-origin: right bottom;
2493
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2494
+ transform: rotate3d(0, 0, 1, -90deg);
2495
+ opacity: 0;
2496
+ }
2497
+
2498
+ to {
2499
+ -webkit-transform-origin: right bottom;
2500
+ transform-origin: right bottom;
2501
+ -webkit-transform: translate3d(0, 0, 0);
2502
+ transform: translate3d(0, 0, 0);
2503
+ opacity: 1;
2504
+ }
2505
+ }
2506
+
2507
+ @keyframes rotateInUpRight {
2508
+ from {
2509
+ -webkit-transform-origin: right bottom;
2510
+ transform-origin: right bottom;
2511
+ -webkit-transform: rotate3d(0, 0, 1, -90deg);
2512
+ transform: rotate3d(0, 0, 1, -90deg);
2513
+ opacity: 0;
2514
+ }
2515
+
2516
+ to {
2517
+ -webkit-transform-origin: right bottom;
2518
+ transform-origin: right bottom;
2519
+ -webkit-transform: translate3d(0, 0, 0);
2520
+ transform: translate3d(0, 0, 0);
2521
+ opacity: 1;
2522
+ }
2523
+ }
2524
+
2525
+ .rotateInUpRight {
2526
+ -webkit-animation-name: rotateInUpRight;
2527
+ animation-name: rotateInUpRight;
2528
+ }
2529
+
2530
+ @-webkit-keyframes rotateOut {
2531
+ from {
2532
+ -webkit-transform-origin: center;
2533
+ transform-origin: center;
2534
+ opacity: 1;
2535
+ }
2536
+
2537
+ to {
2538
+ -webkit-transform-origin: center;
2539
+ transform-origin: center;
2540
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2541
+ transform: rotate3d(0, 0, 1, 200deg);
2542
+ opacity: 0;
2543
+ }
2544
+ }
2545
+
2546
+ @keyframes rotateOut {
2547
+ from {
2548
+ -webkit-transform-origin: center;
2549
+ transform-origin: center;
2550
+ opacity: 1;
2551
+ }
2552
+
2553
+ to {
2554
+ -webkit-transform-origin: center;
2555
+ transform-origin: center;
2556
+ -webkit-transform: rotate3d(0, 0, 1, 200deg);
2557
+ transform: rotate3d(0, 0, 1, 200deg);
2558
+ opacity: 0;
2559
+ }
2560
+ }
2561
+
2562
+ .rotateOut {
2563
+ -webkit-animation-name: rotateOut;
2564
+ animation-name: rotateOut;
2565
+ }
2566
+
2567
+ @-webkit-keyframes rotateOutDownLeft {
2568
+ from {
2569
+ -webkit-transform-origin: left bottom;
2570
+ transform-origin: left bottom;
2571
+ opacity: 1;
2572
+ }
2573
+
2574
+ to {
2575
+ -webkit-transform-origin: left bottom;
2576
+ transform-origin: left bottom;
2577
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2578
+ transform: rotate3d(0, 0, 1, 45deg);
2579
+ opacity: 0;
2580
+ }
2581
+ }
2582
+
2583
+ @keyframes rotateOutDownLeft {
2584
+ from {
2585
+ -webkit-transform-origin: left bottom;
2586
+ transform-origin: left bottom;
2587
+ opacity: 1;
2588
+ }
2589
+
2590
+ to {
2591
+ -webkit-transform-origin: left bottom;
2592
+ transform-origin: left bottom;
2593
+ -webkit-transform: rotate3d(0, 0, 1, 45deg);
2594
+ transform: rotate3d(0, 0, 1, 45deg);
2595
+ opacity: 0;
2596
+ }
2597
+ }
2598
+
2599
+ .rotateOutDownLeft {
2600
+ -webkit-animation-name: rotateOutDownLeft;
2601
+ animation-name: rotateOutDownLeft;
2602
+ }
2603
+
2604
+ @-webkit-keyframes rotateOutDownRight {
2605
+ from {
2606
+ -webkit-transform-origin: right bottom;
2607
+ transform-origin: right bottom;
2608
+ opacity: 1;
2609
+ }
2610
+
2611
+ to {
2612
+ -webkit-transform-origin: right bottom;
2613
+ transform-origin: right bottom;
2614
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2615
+ transform: rotate3d(0, 0, 1, -45deg);
2616
+ opacity: 0;
2617
+ }
2618
+ }
2619
+
2620
+ @keyframes rotateOutDownRight {
2621
+ from {
2622
+ -webkit-transform-origin: right bottom;
2623
+ transform-origin: right bottom;
2624
+ opacity: 1;
2625
+ }
2626
+
2627
+ to {
2628
+ -webkit-transform-origin: right bottom;
2629
+ transform-origin: right bottom;
2630
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2631
+ transform: rotate3d(0, 0, 1, -45deg);
2632
+ opacity: 0;
2633
+ }
2634
+ }
2635
+
2636
+ .rotateOutDownRight {
2637
+ -webkit-animation-name: rotateOutDownRight;
2638
+ animation-name: rotateOutDownRight;
2639
+ }
2640
+
2641
+ @-webkit-keyframes rotateOutUpLeft {
2642
+ from {
2643
+ -webkit-transform-origin: left bottom;
2644
+ transform-origin: left bottom;
2645
+ opacity: 1;
2646
+ }
2647
+
2648
+ to {
2649
+ -webkit-transform-origin: left bottom;
2650
+ transform-origin: left bottom;
2651
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2652
+ transform: rotate3d(0, 0, 1, -45deg);
2653
+ opacity: 0;
2654
+ }
2655
+ }
2656
+
2657
+ @keyframes rotateOutUpLeft {
2658
+ from {
2659
+ -webkit-transform-origin: left bottom;
2660
+ transform-origin: left bottom;
2661
+ opacity: 1;
2662
+ }
2663
+
2664
+ to {
2665
+ -webkit-transform-origin: left bottom;
2666
+ transform-origin: left bottom;
2667
+ -webkit-transform: rotate3d(0, 0, 1, -45deg);
2668
+ transform: rotate3d(0, 0, 1, -45deg);
2669
+ opacity: 0;
2670
+ }
2671
+ }
2672
+
2673
+ .rotateOutUpLeft {
2674
+ -webkit-animation-name: rotateOutUpLeft;
2675
+ animation-name: rotateOutUpLeft;
2676
+ }
2677
+
2678
+ @-webkit-keyframes rotateOutUpRight {
2679
+ from {
2680
+ -webkit-transform-origin: right bottom;
2681
+ transform-origin: right bottom;
2682
+ opacity: 1;
2683
+ }
2684
+
2685
+ to {
2686
+ -webkit-transform-origin: right bottom;
2687
+ transform-origin: right bottom;
2688
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2689
+ transform: rotate3d(0, 0, 1, 90deg);
2690
+ opacity: 0;
2691
+ }
2692
+ }
2693
+
2694
+ @keyframes rotateOutUpRight {
2695
+ from {
2696
+ -webkit-transform-origin: right bottom;
2697
+ transform-origin: right bottom;
2698
+ opacity: 1;
2699
+ }
2700
+
2701
+ to {
2702
+ -webkit-transform-origin: right bottom;
2703
+ transform-origin: right bottom;
2704
+ -webkit-transform: rotate3d(0, 0, 1, 90deg);
2705
+ transform: rotate3d(0, 0, 1, 90deg);
2706
+ opacity: 0;
2707
+ }
2708
+ }
2709
+
2710
+ .rotateOutUpRight {
2711
+ -webkit-animation-name: rotateOutUpRight;
2712
+ animation-name: rotateOutUpRight;
2713
+ }
2714
+
2715
+ @-webkit-keyframes hinge {
2716
+ 0% {
2717
+ -webkit-transform-origin: top left;
2718
+ transform-origin: top left;
2719
+ -webkit-animation-timing-function: ease-in-out;
2720
+ animation-timing-function: ease-in-out;
2721
+ }
2722
+
2723
+ 20%,
2724
+ 60% {
2725
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2726
+ transform: rotate3d(0, 0, 1, 80deg);
2727
+ -webkit-transform-origin: top left;
2728
+ transform-origin: top left;
2729
+ -webkit-animation-timing-function: ease-in-out;
2730
+ animation-timing-function: ease-in-out;
2731
+ }
2732
+
2733
+ 40%,
2734
+ 80% {
2735
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2736
+ transform: rotate3d(0, 0, 1, 60deg);
2737
+ -webkit-transform-origin: top left;
2738
+ transform-origin: top left;
2739
+ -webkit-animation-timing-function: ease-in-out;
2740
+ animation-timing-function: ease-in-out;
2741
+ opacity: 1;
2742
+ }
2743
+
2744
+ to {
2745
+ -webkit-transform: translate3d(0, 700px, 0);
2746
+ transform: translate3d(0, 700px, 0);
2747
+ opacity: 0;
2748
+ }
2749
+ }
2750
+
2751
+ @keyframes hinge {
2752
+ 0% {
2753
+ -webkit-transform-origin: top left;
2754
+ transform-origin: top left;
2755
+ -webkit-animation-timing-function: ease-in-out;
2756
+ animation-timing-function: ease-in-out;
2757
+ }
2758
+
2759
+ 20%,
2760
+ 60% {
2761
+ -webkit-transform: rotate3d(0, 0, 1, 80deg);
2762
+ transform: rotate3d(0, 0, 1, 80deg);
2763
+ -webkit-transform-origin: top left;
2764
+ transform-origin: top left;
2765
+ -webkit-animation-timing-function: ease-in-out;
2766
+ animation-timing-function: ease-in-out;
2767
+ }
2768
+
2769
+ 40%,
2770
+ 80% {
2771
+ -webkit-transform: rotate3d(0, 0, 1, 60deg);
2772
+ transform: rotate3d(0, 0, 1, 60deg);
2773
+ -webkit-transform-origin: top left;
2774
+ transform-origin: top left;
2775
+ -webkit-animation-timing-function: ease-in-out;
2776
+ animation-timing-function: ease-in-out;
2777
+ opacity: 1;
2778
+ }
2779
+
2780
+ to {
2781
+ -webkit-transform: translate3d(0, 700px, 0);
2782
+ transform: translate3d(0, 700px, 0);
2783
+ opacity: 0;
2784
+ }
2785
+ }
2786
+
2787
+ .hinge {
2788
+ -webkit-animation-duration: 2s;
2789
+ animation-duration: 2s;
2790
+ -webkit-animation-name: hinge;
2791
+ animation-name: hinge;
2792
+ }
2793
+
2794
+ @-webkit-keyframes jackInTheBox {
2795
+ from {
2796
+ opacity: 0;
2797
+ -webkit-transform: scale(0.1) rotate(30deg);
2798
+ transform: scale(0.1) rotate(30deg);
2799
+ -webkit-transform-origin: center bottom;
2800
+ transform-origin: center bottom;
2801
+ }
2802
+
2803
+ 50% {
2804
+ -webkit-transform: rotate(-10deg);
2805
+ transform: rotate(-10deg);
2806
+ }
2807
+
2808
+ 70% {
2809
+ -webkit-transform: rotate(3deg);
2810
+ transform: rotate(3deg);
2811
+ }
2812
+
2813
+ to {
2814
+ opacity: 1;
2815
+ -webkit-transform: scale(1);
2816
+ transform: scale(1);
2817
+ }
2818
+ }
2819
+
2820
+ @keyframes jackInTheBox {
2821
+ from {
2822
+ opacity: 0;
2823
+ -webkit-transform: scale(0.1) rotate(30deg);
2824
+ transform: scale(0.1) rotate(30deg);
2825
+ -webkit-transform-origin: center bottom;
2826
+ transform-origin: center bottom;
2827
+ }
2828
+
2829
+ 50% {
2830
+ -webkit-transform: rotate(-10deg);
2831
+ transform: rotate(-10deg);
2832
+ }
2833
+
2834
+ 70% {
2835
+ -webkit-transform: rotate(3deg);
2836
+ transform: rotate(3deg);
2837
+ }
2838
+
2839
+ to {
2840
+ opacity: 1;
2841
+ -webkit-transform: scale(1);
2842
+ transform: scale(1);
2843
+ }
2844
+ }
2845
+
2846
+ .jackInTheBox {
2847
+ -webkit-animation-name: jackInTheBox;
2848
+ animation-name: jackInTheBox;
2849
+ }
2850
+
2851
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2852
+
2853
+ @-webkit-keyframes rollIn {
2854
+ from {
2855
+ opacity: 0;
2856
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2857
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2858
+ }
2859
+
2860
+ to {
2861
+ opacity: 1;
2862
+ -webkit-transform: translate3d(0, 0, 0);
2863
+ transform: translate3d(0, 0, 0);
2864
+ }
2865
+ }
2866
+
2867
+ @keyframes rollIn {
2868
+ from {
2869
+ opacity: 0;
2870
+ -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2871
+ transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg);
2872
+ }
2873
+
2874
+ to {
2875
+ opacity: 1;
2876
+ -webkit-transform: translate3d(0, 0, 0);
2877
+ transform: translate3d(0, 0, 0);
2878
+ }
2879
+ }
2880
+
2881
+ .rollIn {
2882
+ -webkit-animation-name: rollIn;
2883
+ animation-name: rollIn;
2884
+ }
2885
+
2886
+ /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */
2887
+
2888
+ @-webkit-keyframes rollOut {
2889
+ from {
2890
+ opacity: 1;
2891
+ }
2892
+
2893
+ to {
2894
+ opacity: 0;
2895
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2896
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2897
+ }
2898
+ }
2899
+
2900
+ @keyframes rollOut {
2901
+ from {
2902
+ opacity: 1;
2903
+ }
2904
+
2905
+ to {
2906
+ opacity: 0;
2907
+ -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2908
+ transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg);
2909
+ }
2910
+ }
2911
+
2912
+ .rollOut {
2913
+ -webkit-animation-name: rollOut;
2914
+ animation-name: rollOut;
2915
+ }
2916
+
2917
+ @-webkit-keyframes zoomIn {
2918
+ from {
2919
+ opacity: 0;
2920
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
2921
+ transform: scale3d(0.3, 0.3, 0.3);
2922
+ }
2923
+
2924
+ 50% {
2925
+ opacity: 1;
2926
+ }
2927
+ }
2928
+
2929
+ @keyframes zoomIn {
2930
+ from {
2931
+ opacity: 0;
2932
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
2933
+ transform: scale3d(0.3, 0.3, 0.3);
2934
+ }
2935
+
2936
+ 50% {
2937
+ opacity: 1;
2938
+ }
2939
+ }
2940
+
2941
+ .zoomIn {
2942
+ -webkit-animation-name: zoomIn;
2943
+ animation-name: zoomIn;
2944
+ }
2945
+
2946
+ @-webkit-keyframes zoomInDown {
2947
+ from {
2948
+ opacity: 0;
2949
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2950
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2951
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2952
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2953
+ }
2954
+
2955
+ 60% {
2956
+ opacity: 1;
2957
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2958
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2959
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2960
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2961
+ }
2962
+ }
2963
+
2964
+ @keyframes zoomInDown {
2965
+ from {
2966
+ opacity: 0;
2967
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2968
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
2969
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2970
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2971
+ }
2972
+
2973
+ 60% {
2974
+ opacity: 1;
2975
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2976
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
2977
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2978
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
2979
+ }
2980
+ }
2981
+
2982
+ .zoomInDown {
2983
+ -webkit-animation-name: zoomInDown;
2984
+ animation-name: zoomInDown;
2985
+ }
2986
+
2987
+ @-webkit-keyframes zoomInLeft {
2988
+ from {
2989
+ opacity: 0;
2990
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
2991
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
2992
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2993
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
2994
+ }
2995
+
2996
+ 60% {
2997
+ opacity: 1;
2998
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
2999
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3000
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3001
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3002
+ }
3003
+ }
3004
+
3005
+ @keyframes zoomInLeft {
3006
+ from {
3007
+ opacity: 0;
3008
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
3009
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
3010
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3011
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3012
+ }
3013
+
3014
+ 60% {
3015
+ opacity: 1;
3016
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3017
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
3018
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3019
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3020
+ }
3021
+ }
3022
+
3023
+ .zoomInLeft {
3024
+ -webkit-animation-name: zoomInLeft;
3025
+ animation-name: zoomInLeft;
3026
+ }
3027
+
3028
+ @-webkit-keyframes zoomInRight {
3029
+ from {
3030
+ opacity: 0;
3031
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3032
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3033
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3034
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3035
+ }
3036
+
3037
+ 60% {
3038
+ opacity: 1;
3039
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3040
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3041
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3042
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3043
+ }
3044
+ }
3045
+
3046
+ @keyframes zoomInRight {
3047
+ from {
3048
+ opacity: 0;
3049
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3050
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
3051
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3052
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3053
+ }
3054
+
3055
+ 60% {
3056
+ opacity: 1;
3057
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3058
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
3059
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3060
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3061
+ }
3062
+ }
3063
+
3064
+ .zoomInRight {
3065
+ -webkit-animation-name: zoomInRight;
3066
+ animation-name: zoomInRight;
3067
+ }
3068
+
3069
+ @-webkit-keyframes zoomInUp {
3070
+ from {
3071
+ opacity: 0;
3072
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3073
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3074
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3075
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3076
+ }
3077
+
3078
+ 60% {
3079
+ opacity: 1;
3080
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3081
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3082
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3083
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3084
+ }
3085
+ }
3086
+
3087
+ @keyframes zoomInUp {
3088
+ from {
3089
+ opacity: 0;
3090
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3091
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
3092
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3093
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3094
+ }
3095
+
3096
+ 60% {
3097
+ opacity: 1;
3098
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3099
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3100
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3101
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3102
+ }
3103
+ }
3104
+
3105
+ .zoomInUp {
3106
+ -webkit-animation-name: zoomInUp;
3107
+ animation-name: zoomInUp;
3108
+ }
3109
+
3110
+ @-webkit-keyframes zoomOut {
3111
+ from {
3112
+ opacity: 1;
3113
+ }
3114
+
3115
+ 50% {
3116
+ opacity: 0;
3117
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
3118
+ transform: scale3d(0.3, 0.3, 0.3);
3119
+ }
3120
+
3121
+ to {
3122
+ opacity: 0;
3123
+ }
3124
+ }
3125
+
3126
+ @keyframes zoomOut {
3127
+ from {
3128
+ opacity: 1;
3129
+ }
3130
+
3131
+ 50% {
3132
+ opacity: 0;
3133
+ -webkit-transform: scale3d(0.3, 0.3, 0.3);
3134
+ transform: scale3d(0.3, 0.3, 0.3);
3135
+ }
3136
+
3137
+ to {
3138
+ opacity: 0;
3139
+ }
3140
+ }
3141
+
3142
+ .zoomOut {
3143
+ -webkit-animation-name: zoomOut;
3144
+ animation-name: zoomOut;
3145
+ }
3146
+
3147
+ @-webkit-keyframes zoomOutDown {
3148
+ 40% {
3149
+ opacity: 1;
3150
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3151
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3152
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3153
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3154
+ }
3155
+
3156
+ to {
3157
+ opacity: 0;
3158
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3159
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3160
+ -webkit-transform-origin: center bottom;
3161
+ transform-origin: center bottom;
3162
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3163
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3164
+ }
3165
+ }
3166
+
3167
+ @keyframes zoomOutDown {
3168
+ 40% {
3169
+ opacity: 1;
3170
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3171
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
3172
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3173
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3174
+ }
3175
+
3176
+ to {
3177
+ opacity: 0;
3178
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3179
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
3180
+ -webkit-transform-origin: center bottom;
3181
+ transform-origin: center bottom;
3182
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3183
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3184
+ }
3185
+ }
3186
+
3187
+ .zoomOutDown {
3188
+ -webkit-animation-name: zoomOutDown;
3189
+ animation-name: zoomOutDown;
3190
+ }
3191
+
3192
+ @-webkit-keyframes zoomOutLeft {
3193
+ 40% {
3194
+ opacity: 1;
3195
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3196
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3197
+ }
3198
+
3199
+ to {
3200
+ opacity: 0;
3201
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
3202
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
3203
+ -webkit-transform-origin: left center;
3204
+ transform-origin: left center;
3205
+ }
3206
+ }
3207
+
3208
+ @keyframes zoomOutLeft {
3209
+ 40% {
3210
+ opacity: 1;
3211
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3212
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
3213
+ }
3214
+
3215
+ to {
3216
+ opacity: 0;
3217
+ -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0);
3218
+ transform: scale(0.1) translate3d(-2000px, 0, 0);
3219
+ -webkit-transform-origin: left center;
3220
+ transform-origin: left center;
3221
+ }
3222
+ }
3223
+
3224
+ .zoomOutLeft {
3225
+ -webkit-animation-name: zoomOutLeft;
3226
+ animation-name: zoomOutLeft;
3227
+ }
3228
+
3229
+ @-webkit-keyframes zoomOutRight {
3230
+ 40% {
3231
+ opacity: 1;
3232
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3233
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3234
+ }
3235
+
3236
+ to {
3237
+ opacity: 0;
3238
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
3239
+ transform: scale(0.1) translate3d(2000px, 0, 0);
3240
+ -webkit-transform-origin: right center;
3241
+ transform-origin: right center;
3242
+ }
3243
+ }
3244
+
3245
+ @keyframes zoomOutRight {
3246
+ 40% {
3247
+ opacity: 1;
3248
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3249
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
3250
+ }
3251
+
3252
+ to {
3253
+ opacity: 0;
3254
+ -webkit-transform: scale(0.1) translate3d(2000px, 0, 0);
3255
+ transform: scale(0.1) translate3d(2000px, 0, 0);
3256
+ -webkit-transform-origin: right center;
3257
+ transform-origin: right center;
3258
+ }
3259
+ }
3260
+
3261
+ .zoomOutRight {
3262
+ -webkit-animation-name: zoomOutRight;
3263
+ animation-name: zoomOutRight;
3264
+ }
3265
+
3266
+ @-webkit-keyframes zoomOutUp {
3267
+ 40% {
3268
+ opacity: 1;
3269
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3270
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3271
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3272
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3273
+ }
3274
+
3275
+ to {
3276
+ opacity: 0;
3277
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3278
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3279
+ -webkit-transform-origin: center bottom;
3280
+ transform-origin: center bottom;
3281
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3282
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3283
+ }
3284
+ }
3285
+
3286
+ @keyframes zoomOutUp {
3287
+ 40% {
3288
+ opacity: 1;
3289
+ -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3290
+ transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
3291
+ -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3292
+ animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
3293
+ }
3294
+
3295
+ to {
3296
+ opacity: 0;
3297
+ -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3298
+ transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
3299
+ -webkit-transform-origin: center bottom;
3300
+ transform-origin: center bottom;
3301
+ -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3302
+ animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
3303
+ }
3304
+ }
3305
+
3306
+ .zoomOutUp {
3307
+ -webkit-animation-name: zoomOutUp;
3308
+ animation-name: zoomOutUp;
3309
+ }
3310
+
3311
+ @-webkit-keyframes slideInDown {
3312
+ from {
3313
+ -webkit-transform: translate3d(0, -100%, 0);
3314
+ transform: translate3d(0, -100%, 0);
3315
+ visibility: visible;
3316
+ }
3317
+
3318
+ to {
3319
+ -webkit-transform: translate3d(0, 0, 0);
3320
+ transform: translate3d(0, 0, 0);
3321
+ }
3322
+ }
3323
+
3324
+ @keyframes slideInDown {
3325
+ from {
3326
+ -webkit-transform: translate3d(0, -100%, 0);
3327
+ transform: translate3d(0, -100%, 0);
3328
+ visibility: visible;
3329
+ }
3330
+
3331
+ to {
3332
+ -webkit-transform: translate3d(0, 0, 0);
3333
+ transform: translate3d(0, 0, 0);
3334
+ }
3335
+ }
3336
+
3337
+ .slideInDown {
3338
+ -webkit-animation-name: slideInDown;
3339
+ animation-name: slideInDown;
3340
+ }
3341
+
3342
+ @-webkit-keyframes slideInLeft {
3343
+ from {
3344
+ -webkit-transform: translate3d(-100%, 0, 0);
3345
+ transform: translate3d(-100%, 0, 0);
3346
+ visibility: visible;
3347
+ }
3348
+
3349
+ to {
3350
+ -webkit-transform: translate3d(0, 0, 0);
3351
+ transform: translate3d(0, 0, 0);
3352
+ }
3353
+ }
3354
+
3355
+ @keyframes slideInLeft {
3356
+ from {
3357
+ -webkit-transform: translate3d(-100%, 0, 0);
3358
+ transform: translate3d(-100%, 0, 0);
3359
+ visibility: visible;
3360
+ }
3361
+
3362
+ to {
3363
+ -webkit-transform: translate3d(0, 0, 0);
3364
+ transform: translate3d(0, 0, 0);
3365
+ }
3366
+ }
3367
+
3368
+ .slideInLeft {
3369
+ -webkit-animation-name: slideInLeft;
3370
+ animation-name: slideInLeft;
3371
+ }
3372
+
3373
+ @-webkit-keyframes slideInRight {
3374
+ from {
3375
+ -webkit-transform: translate3d(100%, 0, 0);
3376
+ transform: translate3d(100%, 0, 0);
3377
+ visibility: visible;
3378
+ }
3379
+
3380
+ to {
3381
+ -webkit-transform: translate3d(0, 0, 0);
3382
+ transform: translate3d(0, 0, 0);
3383
+ }
3384
+ }
3385
+
3386
+ @keyframes slideInRight {
3387
+ from {
3388
+ -webkit-transform: translate3d(100%, 0, 0);
3389
+ transform: translate3d(100%, 0, 0);
3390
+ visibility: visible;
3391
+ }
3392
+
3393
+ to {
3394
+ -webkit-transform: translate3d(0, 0, 0);
3395
+ transform: translate3d(0, 0, 0);
3396
+ }
3397
+ }
3398
+
3399
+ .slideInRight {
3400
+ -webkit-animation-name: slideInRight;
3401
+ animation-name: slideInRight;
3402
+ }
3403
+
3404
+ @-webkit-keyframes slideInUp {
3405
+ from {
3406
+ -webkit-transform: translate3d(0, 100%, 0);
3407
+ transform: translate3d(0, 100%, 0);
3408
+ visibility: visible;
3409
+ }
3410
+
3411
+ to {
3412
+ -webkit-transform: translate3d(0, 0, 0);
3413
+ transform: translate3d(0, 0, 0);
3414
+ }
3415
+ }
3416
+
3417
+ @keyframes slideInUp {
3418
+ from {
3419
+ -webkit-transform: translate3d(0, 100%, 0);
3420
+ transform: translate3d(0, 100%, 0);
3421
+ visibility: visible;
3422
+ }
3423
+
3424
+ to {
3425
+ -webkit-transform: translate3d(0, 0, 0);
3426
+ transform: translate3d(0, 0, 0);
3427
+ }
3428
+ }
3429
+
3430
+ .slideInUp {
3431
+ -webkit-animation-name: slideInUp;
3432
+ animation-name: slideInUp;
3433
+ }
3434
+
3435
+ @-webkit-keyframes slideOutDown {
3436
+ from {
3437
+ -webkit-transform: translate3d(0, 0, 0);
3438
+ transform: translate3d(0, 0, 0);
3439
+ }
3440
+
3441
+ to {
3442
+ visibility: hidden;
3443
+ -webkit-transform: translate3d(0, 100%, 0);
3444
+ transform: translate3d(0, 100%, 0);
3445
+ }
3446
+ }
3447
+
3448
+ @keyframes slideOutDown {
3449
+ from {
3450
+ -webkit-transform: translate3d(0, 0, 0);
3451
+ transform: translate3d(0, 0, 0);
3452
+ }
3453
+
3454
+ to {
3455
+ visibility: hidden;
3456
+ -webkit-transform: translate3d(0, 100%, 0);
3457
+ transform: translate3d(0, 100%, 0);
3458
+ }
3459
+ }
3460
+
3461
+ .slideOutDown {
3462
+ -webkit-animation-name: slideOutDown;
3463
+ animation-name: slideOutDown;
3464
+ }
3465
+
3466
+ @-webkit-keyframes slideOutLeft {
3467
+ from {
3468
+ -webkit-transform: translate3d(0, 0, 0);
3469
+ transform: translate3d(0, 0, 0);
3470
+ }
3471
+
3472
+ to {
3473
+ visibility: hidden;
3474
+ -webkit-transform: translate3d(-100%, 0, 0);
3475
+ transform: translate3d(-100%, 0, 0);
3476
+ }
3477
+ }
3478
+
3479
+ @keyframes slideOutLeft {
3480
+ from {
3481
+ -webkit-transform: translate3d(0, 0, 0);
3482
+ transform: translate3d(0, 0, 0);
3483
+ }
3484
+
3485
+ to {
3486
+ visibility: hidden;
3487
+ -webkit-transform: translate3d(-100%, 0, 0);
3488
+ transform: translate3d(-100%, 0, 0);
3489
+ }
3490
+ }
3491
+
3492
+ .slideOutLeft {
3493
+ -webkit-animation-name: slideOutLeft;
3494
+ animation-name: slideOutLeft;
3495
+ }
3496
+
3497
+ @-webkit-keyframes slideOutRight {
3498
+ from {
3499
+ -webkit-transform: translate3d(0, 0, 0);
3500
+ transform: translate3d(0, 0, 0);
3501
+ }
3502
+
3503
+ to {
3504
+ visibility: hidden;
3505
+ -webkit-transform: translate3d(100%, 0, 0);
3506
+ transform: translate3d(100%, 0, 0);
3507
+ }
3508
+ }
3509
+
3510
+ @keyframes slideOutRight {
3511
+ from {
3512
+ -webkit-transform: translate3d(0, 0, 0);
3513
+ transform: translate3d(0, 0, 0);
3514
+ }
3515
+
3516
+ to {
3517
+ visibility: hidden;
3518
+ -webkit-transform: translate3d(100%, 0, 0);
3519
+ transform: translate3d(100%, 0, 0);
3520
+ }
3521
+ }
3522
+
3523
+ .slideOutRight {
3524
+ -webkit-animation-name: slideOutRight;
3525
+ animation-name: slideOutRight;
3526
+ }
3527
+
3528
+ @-webkit-keyframes slideOutUp {
3529
+ from {
3530
+ -webkit-transform: translate3d(0, 0, 0);
3531
+ transform: translate3d(0, 0, 0);
3532
+ }
3533
+
3534
+ to {
3535
+ visibility: hidden;
3536
+ -webkit-transform: translate3d(0, -100%, 0);
3537
+ transform: translate3d(0, -100%, 0);
3538
+ }
3539
+ }
3540
+
3541
+ @keyframes slideOutUp {
3542
+ from {
3543
+ -webkit-transform: translate3d(0, 0, 0);
3544
+ transform: translate3d(0, 0, 0);
3545
+ }
3546
+
3547
+ to {
3548
+ visibility: hidden;
3549
+ -webkit-transform: translate3d(0, -100%, 0);
3550
+ transform: translate3d(0, -100%, 0);
3551
+ }
3552
+ }
3553
+
3554
+ .slideOutUp {
3555
+ -webkit-animation-name: slideOutUp;
3556
+ animation-name: slideOutUp;
3557
+ }
3558
+
3559
+ .animated {
3560
+ -webkit-animation-duration: 1s;
3561
+ animation-duration: 1s;
3562
+ -webkit-animation-fill-mode: both;
3563
+ animation-fill-mode: both;
3564
+ }
3565
+
3566
+ .animated.infinite {
3567
+ -webkit-animation-iteration-count: infinite;
3568
+ animation-iteration-count: infinite;
3569
+ }
3570
+
3571
+ .animated.delay-1s {
3572
+ -webkit-animation-delay: 1s;
3573
+ animation-delay: 1s;
3574
+ }
3575
+
3576
+ .animated.delay-2s {
3577
+ -webkit-animation-delay: 2s;
3578
+ animation-delay: 2s;
3579
+ }
3580
+
3581
+ .animated.delay-3s {
3582
+ -webkit-animation-delay: 3s;
3583
+ animation-delay: 3s;
3584
+ }
3585
+
3586
+ .animated.delay-4s {
3587
+ -webkit-animation-delay: 4s;
3588
+ animation-delay: 4s;
3589
+ }
3590
+
3591
+ .animated.delay-5s {
3592
+ -webkit-animation-delay: 5s;
3593
+ animation-delay: 5s;
3594
+ }
3595
+
3596
+ .animated.fast {
3597
+ -webkit-animation-duration: 800ms;
3598
+ animation-duration: 800ms;
3599
+ }
3600
+
3601
+ .animated.faster {
3602
+ -webkit-animation-duration: 500ms;
3603
+ animation-duration: 500ms;
3604
+ }
3605
+
3606
+ .animated.slow {
3607
+ -webkit-animation-duration: 2s;
3608
+ animation-duration: 2s;
3609
+ }
3610
+
3611
+ .animated.slower {
3612
+ -webkit-animation-duration: 3s;
3613
+ animation-duration: 3s;
3614
+ }
3615
+
3616
+ @media (print), (prefers-reduced-motion) {
3617
+ .animated {
3618
+ -webkit-animation: unset !important;
3619
+ animation: unset !important;
3620
+ -webkit-transition: none !important;
3621
+ transition: none !important;
3622
+ }
3623
+ }
berocket/assets/popup/br_popup.css ADDED
@@ -0,0 +1,227 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ body.hide_scroll {
2
+ overflow: hidden;
3
+ }
4
+ #br_popup * {
5
+ box-sizing: border-box;
6
+ }
7
+ #br_popup {
8
+ display: none;
9
+ position: fixed;
10
+ top: 0;
11
+ right: 0;
12
+ bottom: 0;
13
+ left: 0;
14
+ z-index: 99999;
15
+ animation-duration: 0.3s;
16
+ animation-timing-function: ease;
17
+ animation-delay: 0s;
18
+ animation-iteration-count: 1;
19
+ animation-direction: normal;
20
+ animation-fill-mode: none;
21
+ animation-play-state: running;
22
+ }
23
+ #br_popup.animated {
24
+ opacity: 0;
25
+ }
26
+ #br_popup .br_popup_wrapper {
27
+ max-height: 100%;
28
+ max-width: 100%;
29
+ position: absolute;
30
+ z-index: 99992;
31
+ margin: 0 auto;
32
+ height: 80%;
33
+ width: 80%;
34
+ top: 50vh;
35
+ left: 50vw;
36
+ transform: translate(-50%, -50%);
37
+ box-sizing: border-box;
38
+ }
39
+ #br_popup .br_popup_wrapper .popup_animation {
40
+ position: absolute;
41
+ border: 0 none;
42
+ background: #f0f0f0;
43
+ padding: 30px 15px;
44
+ width: 100%;
45
+ height: 100%;
46
+ animation-duration: 0.3s;
47
+ animation-timing-function: ease;
48
+ animation-delay: 0s;
49
+ animation-iteration-count: 1;
50
+ animation-direction: normal;
51
+ animation-fill-mode: none;
52
+ animation-play-state: running;
53
+ }
54
+ #br_popup .br_popup_wrapper .popup_animation.animated {
55
+ opacity: 0;
56
+ }
57
+ #br_popup .br_popup_close {
58
+ position: absolute;
59
+ top: 0;
60
+ right: 0;
61
+ font-size: 26px;
62
+ color: #888;
63
+ font-family: Helvetica, sans-serif;
64
+ text-decoration: none;
65
+ z-index: 99993;
66
+ line-height: 28px;
67
+ height: 30px;
68
+ width: 30px;
69
+ text-align: center;
70
+ box-sizing: border-box;
71
+ outline: 0 none;
72
+ }
73
+ #br_popup .br_popup_close:hover {
74
+ opacity: 0.80;
75
+ }
76
+ #br_popup.counting .br_popup_close {
77
+ display: none;
78
+ }
79
+ #br_popup .counters.after_close {
80
+ position: absolute;
81
+ top: 0;
82
+ right: 10px;
83
+ font-size: 14px;
84
+ color: #444;
85
+ font-family: Helvetica, sans-serif;
86
+ text-decoration: none;
87
+ z-index: 99993;
88
+ line-height: 30px;
89
+ height: 30px;
90
+ text-align: right;
91
+ box-sizing: border-box;
92
+ }
93
+ #br_popup .br_popup_overlay {
94
+ position: absolute;
95
+ top: 0;
96
+ right: 0;
97
+ bottom: 0;
98
+ left: 0;
99
+ opacity: 0.5;
100
+ background: black;
101
+ z-index: 99991;
102
+ }
103
+ #br_popup .br_popup_inner {
104
+ height: 100%;
105
+ width: 100%;
106
+ padding: 0 15px;
107
+ word-wrap: break-word;
108
+ box-sizing: border-box;
109
+ overflow-y: auto;
110
+ }
111
+ #br_popup .popup_animation.with_yes_no_buttons {
112
+ padding-bottom: 80px;
113
+ }
114
+ #br_popup .with_yes_no_buttons .br_popup_buttons {
115
+ padding: 20px 15px;
116
+ bottom: 0;
117
+ position: absolute;
118
+ left: 0;
119
+ right: 0;
120
+ border-top: 1px solid #444;
121
+ }
122
+ #br_popup .print_button {
123
+ float: left;
124
+ }
125
+ #br_popup .popup_animation.yes_no_buttons_left .br_popup_buttons {
126
+ text-align: left;
127
+ }
128
+ #br_popup .popup_animation.yes_no_buttons_left .print_button {
129
+ float: right;
130
+ }
131
+ #br_popup .popup_animation.yes_no_buttons_right .br_popup_buttons {
132
+ text-align: right;
133
+ }
134
+ #br_popup .popup_animation.yes_no_buttons_center .br_popup_buttons {
135
+ text-align: center;
136
+ }
137
+ #br_popup .br_popup_buttons a {
138
+ margin: 0 15px;
139
+ padding: 5px 20px;
140
+ display: inline-block;
141
+ border: 1px solid #444;
142
+ border-radius: 5px;
143
+ color: #444;
144
+ text-decoration: none;
145
+ background: transparent;
146
+ height: auto!important;
147
+ }
148
+ #br_popup .counters {
149
+ display: none;
150
+ }
151
+ #br_popup.counting .counters {
152
+ display: block;
153
+ }
154
+ /* HEADER START*/
155
+ #br_popup .popup_animation.with_header {
156
+ padding-top: 70px;
157
+ }
158
+ #br_popup .br_popup_header {
159
+ padding: 0 30px;
160
+ position: absolute;
161
+ top: 0;
162
+ left: 0;
163
+ right: 0;
164
+ height: 60px;
165
+ line-height: 60px;
166
+ font-weight: bold;
167
+ font-size: 1.2em;
168
+ white-space: nowrap;
169
+ overflow: hidden;
170
+ text-overflow: ellipsis;
171
+ }
172
+ #br_popup .with_header .br_popup_close {
173
+ top: 8px;
174
+ right: 8px;
175
+ }
176
+ /* HEADER END*/
177
+
178
+ @media (max-width: 1200px) {
179
+ #br_popup .br_popup_wrapper {
180
+ width: 90%;
181
+ height: 90%;
182
+ }
183
+ }
184
+ @media (max-width: 900px) {
185
+ #br_popup .br_popup_wrapper {
186
+ width: 97%;
187
+ height: 97%;
188
+ }
189
+ }
190
+ @media (max-width: 768px) {
191
+ html #br_popup.br_popup .br_popup_buttons a {
192
+ margin: 0 5px;
193
+ padding: 6px 20px;
194
+ }
195
+ #br_popup .br_popup_buttons .print_button {
196
+ display: none;
197
+ }
198
+ }
199
+ @media print {
200
+ body.print > * {
201
+ visibility: hidden!important;
202
+ height: 0;
203
+ }
204
+ body.print #br_popup,
205
+ body.print #br_popup .br_popup_wrapper,
206
+ body.print #br_popup .br_popup_wrapper .popup_animation{
207
+ height: auto;
208
+ position: relative;
209
+ }
210
+ body.print #br_popup .br_popup_inner {
211
+ visibility: visible!important;
212
+ overflow-y: initial;
213
+ }
214
+ body.print #br_popup .br_popup_inner * {
215
+ visibility: visible!important;
216
+ }
217
+ body.print #br_popup .br_popup_wrapper {
218
+ top: 0;
219
+ left: 0;
220
+ transform: none;
221
+ height: auto;
222
+ width: 100%;
223
+ }
224
+ body.print.hide_scroll {
225
+ overflow: initial;
226
+ }
227
+ }
berocket/assets/popup/br_popup.js ADDED
@@ -0,0 +1,337 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ;(function ( $ ) {
2
+ $.br_popup_list = [];
3
+ $.fn.br_popup = function( options ) {
4
+ if (this.length > 1){
5
+ this.each(function() { $(this).br_popup(options) });
6
+ return this;
7
+ }
8
+ this.open_popup = function () {
9
+ var popup_data = this.data('br_popup_data');
10
+ if( ! popup_data.opened ) {
11
+ this.reset_option();
12
+ this.create_popup();
13
+ this.add_content();
14
+ this.add_events();
15
+ this.show_popup();
16
+ }
17
+ };
18
+ this.reset_option = function () {
19
+ var popup_data = {timer_interval: undefined, close_delay: undefined, can_close_popup: true, opened:false};
20
+ this.data('br_popup_data', popup_data);
21
+ };
22
+ this.create_popup = function() {
23
+ var settings = this.data('br_popup_settings');
24
+ $header = settings.title;
25
+
26
+ $popup_html = '<div id="br_popup" class="br_popup animated';
27
+ if ( settings.theme != 'default' && settings.theme != '' ) {
28
+ $popup_html += ' ' + settings.theme;
29
+ }
30
+ $popup_html += '"><div class="br_popup_wrapper" style="';
31
+ if ( settings.width ) {
32
+ $popup_html += 'width: '+settings.width+';';
33
+ }
34
+ if ( settings.height ) {
35
+ $popup_html += 'height: '+settings.height+';';
36
+ }
37
+
38
+ $popup_html += '"><div class="animated popup_animation';
39
+ if ( settings.yes_no_buttons.show == true
40
+ && settings.yes_no_buttons.custom == false
41
+ && settings.yes_no_buttons.location == 'popup'
42
+ || settings.print_button == true
43
+ ) {
44
+ $popup_html += ' with_yes_no_buttons';
45
+ }
46
+ $popup_html += ' yes_no_buttons_'+settings.yes_no_buttons.align;
47
+ if ( $header != '' ) {
48
+ $popup_html += ' with_header';
49
+ }
50
+ if ( settings.print_button == true ) {
51
+ $popup_html += ' with_print_button';
52
+ }
53
+ $popup_html += '">';
54
+
55
+ if ( settings.no_x_button == false ) {
56
+ $popup_html += '<a href="#" class="br_popup_close">×</a>';
57
+ }
58
+
59
+ if ( settings.close_delay * 1 > 0 ) {
60
+ $popup_html += '<span class="counters after_close"><span>' + ( settings.close_delay * 1 ) + '</span> second(s) before close</span>';
61
+ }
62
+
63
+ if ( $header != '' ) {
64
+ $popup_html += '<div class="br_popup_header popup_header_' + settings.header_align + '">' + $header + '</div>';
65
+ }
66
+
67
+ $popup_html += '<div class="br_popup_inner">';
68
+ if (
69
+ ( settings.yes_no_buttons.show == true
70
+ && settings.yes_no_buttons.custom == false
71
+ || settings.print_button == true
72
+ )
73
+ && settings.yes_no_buttons.location == 'content'
74
+ ) {
75
+ $popup_html += '<div class="br_popup_buttons">';
76
+ if ( settings.yes_no_buttons.show == true && settings.yes_no_buttons.custom == false ) {
77
+ $popup_html += '<a href="' + settings.yes_no_buttons.yes_text + '" class="br_yes_button ' +
78
+ settings.yes_no_buttons.yes_classes + '">' + settings.yes_no_buttons.yes_text + '</a><a href="' +
79
+ settings.yes_no_buttons.no_text + '" class="br_no_button ' + settings.yes_no_buttons.no_classes + '">' +
80
+ settings.yes_no_buttons.no_text + '</a>';
81
+ }
82
+ if ( settings.print_button == true ) {
83
+ $popup_html += '<a href="Print" class="print_button">Print</a>';
84
+ }
85
+ $popup_html += '</div>';
86
+ }
87
+ $popup_html += '</div>';
88
+
89
+ if (
90
+ ( settings.yes_no_buttons.show == true
91
+ && settings.yes_no_buttons.custom == false
92
+ || settings.print_button == true
93
+ )
94
+ && settings.yes_no_buttons.location == 'popup'
95
+ ) {
96
+ $popup_html += '<div class="br_popup_buttons">';
97
+ if ( settings.yes_no_buttons.show == true && settings.yes_no_buttons.custom == false ) {
98
+ $popup_html += '<a href="' + settings.yes_no_buttons.yes_text +'" class="br_yes_button ' +
99
+ settings.yes_no_buttons.yes_classes + '">' + settings.yes_no_buttons.yes_text + '</a><a href="' +
100
+ settings.yes_no_buttons.no_text +'" class="br_no_button ' +
101
+ settings.yes_no_buttons.no_classes + '">' + settings.yes_no_buttons.no_text + '</a>';
102
+ }
103
+ if ( settings.print_button == true ) {
104
+ $popup_html += '<a href="Print" class="print_button">Print</a>';
105
+ }
106
+ $popup_html += '</div>';
107
+ }
108
+
109
+ $popup_html += '</div></div>';
110
+
111
+ if ( settings.no_overlay == false ) {
112
+ $popup_html += '<div class="br_popup_overlay"></div>';
113
+ }
114
+
115
+ $popup_html += '</div>';
116
+ $popup_html = $($popup_html);
117
+ $popup_html.appendTo('body');
118
+ this.data('br_popup_object', $popup_html);
119
+ };
120
+ this.add_content = function() {
121
+ var settings = this.data('br_popup_settings');
122
+ if( settings.content ) {
123
+ this.data('br_popup_object').find('.br_popup_inner').prepend( settings.content );
124
+ } else {
125
+ this.data('br_popup_object').find('.br_popup_inner').prepend( this.html() );
126
+ }
127
+ };
128
+ this.add_events = function() {
129
+ var settings = this.data('br_popup_settings');
130
+ var $this = this;
131
+ if ( settings.close_with.includes('overlay') ) {
132
+ $(this.data('br_popup_object')).on("click", ".br_popup_overlay", function (event){
133
+ event.preventDefault();
134
+ $this.hide_popup();
135
+ });
136
+ }
137
+
138
+ if ( settings.close_with.includes('x_button') ) {
139
+ $(this.data('br_popup_object')).on("click", ".br_popup_close", function (event){
140
+ event.preventDefault();
141
+ $this.hide_popup();
142
+ });
143
+ }
144
+
145
+ if ( settings.close_with.includes('esc_button') ) {
146
+ $(document).on("keydown", function (event){
147
+ if ( event.keyCode === 27 ) {
148
+ $this.hide_popup();
149
+ }
150
+ });
151
+ }
152
+
153
+ if ( settings.yes_no_buttons.show == true && settings.yes_no_buttons.custom == false ) {
154
+ $(this.data('br_popup_object')).on("click", settings.yes_no_buttons.yes_button, function (event){
155
+ event.preventDefault();
156
+ var popup_data = $this.data('br_popup_data');
157
+ if( popup_data.can_close_popup == false ) {
158
+ return;
159
+ }
160
+ if ( settings.close_with.includes('yes_button') ) {
161
+ $this.hide_popup();
162
+ }
163
+
164
+ $this.data('br_popup_object').trigger('br_popup-yes_button', $this);
165
+ if ( typeof settings.yes_no_buttons.yes_func === 'function' ) {
166
+ settings.yes_no_buttons.yes_func();
167
+ } else if( settings.yes_no_buttons.yes_func) {
168
+ try {
169
+ eval(settings.yes_no_buttons.yes_func);
170
+ } catch( error ) {
171
+ console.log('Incorrect function settings.yes_no_buttons.yes_func');
172
+ }
173
+ }
174
+ });
175
+ }
176
+
177
+ if ( settings.yes_no_buttons.show == true && settings.yes_no_buttons.custom == false ) {
178
+ $(this.data('br_popup_object')).on("click", settings.yes_no_buttons.no_button, function (event){
179
+ event.preventDefault();
180
+ var popup_data = $this.data('br_popup_data');
181
+ if( popup_data.can_close_popup == false ) {
182
+ return;
183
+ }
184
+ if ( settings.close_with.includes('no_button') ) {
185
+ $this.hide_popup();
186
+ }
187
+
188
+ $this.data('br_popup_object').trigger('br_popup-no_button', $this);
189
+ if ( typeof settings.yes_no_buttons.no_func === 'function' ) {
190
+ settings.yes_no_buttons.no_func();
191
+ } else if( settings.yes_no_buttons.no_func) {
192
+ try {
193
+ eval(settings.yes_no_buttons.no_func);
194
+ } catch( error ) {
195
+ console.log('Incorrect function settings.yes_no_buttons.no_func');
196
+ }
197
+ }
198
+ });
199
+ }
200
+
201
+ if ( settings.print_button == true ) {
202
+ $(this.data('br_popup_object')).on("click", '.print_button', function (event){
203
+ event.preventDefault();
204
+ $this.print();
205
+ });
206
+ }
207
+ };
208
+ this.show_popup = function() {
209
+ var settings = this.data('br_popup_settings');
210
+ var popup_data = this.data('br_popup_data');
211
+ if ( this.data('br_popup_object') && this.data('br_popup_object').is(':hidden') ) {
212
+ var $this = this;
213
+ popup_data.opened = true;
214
+
215
+ $('body').addClass('br_popup_opened');
216
+
217
+ if ( settings.hide_body_scroll ) {
218
+ $('body').addClass('hide_scroll');
219
+ }
220
+
221
+ this.data('br_popup_object').trigger('br_popup-show_popup', this);
222
+ this.data('br_popup_object').css({display:'block'});
223
+ this.animateCss(this.data('br_popup_object'), 'fadeIn');
224
+ this.animateCss(this.data('br_popup_object').find('.popup_animation'), 'fadeInDown');
225
+
226
+ if ( settings.close_delay * 1 > 0 ) {
227
+ this.data('br_popup_object').addClass('counting');
228
+ popup_data.can_close_popup = false;
229
+
230
+ popup_data.close_delay = settings.close_delay * 1 - 1;
231
+ popup_data.timer_interval = setInterval(function (){
232
+ if ( popup_data.close_delay <= 0 ) {
233
+ popup_data.can_close_popup = true;
234
+ clearInterval(popup_data.timer_interval);
235
+ $this.data('br_popup_object').removeClass('counting');
236
+ } else {
237
+ $this.data('br_popup_object').find('.counters span').text(popup_data.close_delay);
238
+ }
239
+ popup_data.close_delay--;
240
+ $this.data('br_popup_data', popup_data);
241
+ }, 1000);
242
+ }
243
+ this.data('br_popup_data', popup_data);
244
+ }
245
+ };
246
+ this.hide_popup = function () {
247
+ var $this = this;
248
+ var popup_data = this.data('br_popup_data');
249
+ if ( popup_data.can_close_popup == true && this.data('br_popup_object').hasClass('br_popup') && this.data('br_popup_object').is(':visible') ) {
250
+ var $this = this;
251
+ this.data('br_popup_object').trigger('br_popup-hide_popup', this);
252
+ clearInterval(popup_data.timer_interval);
253
+ this.animateCss(this.data('br_popup_object').find('.popup_animation'), 'fadeOutUp');
254
+ this.animateCss(this.data('br_popup_object'), 'fadeOut', function (){
255
+ $this.data('br_popup_object').remove();
256
+ popup_data.opened = false;
257
+ popup_data.can_close_popup = true;
258
+ $('body').removeClass('br_popup_opened hide_scroll');
259
+ $this.data('br_popup_data', popup_data);
260
+ });
261
+ }
262
+ };
263
+ this.animateCss = function (element, animationName, callback) {
264
+ element = $(element);
265
+ element.addClass('animated').addClass(animationName);
266
+
267
+ function handleAnimationEnd() {
268
+ element.removeClass('animated').removeClass(animationName);
269
+ element.off('animationend', handleAnimationEnd);
270
+
271
+ if ( typeof callback === 'function' ) callback()
272
+ }
273
+
274
+ element.on('animationend', handleAnimationEnd);
275
+ };
276
+ this.print = function() {
277
+ $('body').addClass('print');
278
+ window.print();
279
+ $('body').removeClass('print');
280
+ };
281
+
282
+ var settings = this.data('br_popup_settings');
283
+ if ( settings ) {
284
+ settings = $.extend( true, settings, options );
285
+ } else {
286
+ this.reset_option();
287
+ $.br_popup_list.push(this);
288
+ settings = $.extend( true, {
289
+ title: '', // title for popup header
290
+ content: '', // html from this element will be duplicated to the popup
291
+ height: '', // popup height ( with px or %)
292
+ width: '', // popup weight ( with px or %)
293
+ no_overlay: false, // don't use overlay
294
+ no_x_button: false, // don't show x button
295
+ header_align: 'left', // align header text
296
+ yes_no_buttons: { // yes and no buttons to catch the action from user
297
+ custom: false, // show own buttons or use default
298
+ show: false, // show buttons
299
+ yes_button: '.br_yes_button', // class or id for the yes button. Don't change it unless custom is true
300
+ no_button: '.br_no_button', // class or id for the no button. Don't change it unless custom is true
301
+ yes_func: '', // your function to run when yes is clicked
302
+ no_func: '', // your function to run when no is clicked
303
+ yes_text: 'Accept', // text shown on yes button
304
+ no_text: 'Decline', // text shown on no button
305
+ yes_classes:'', // text shown on yes button
306
+ no_classes: '', // text shown on no button
307
+ location: 'popup', // where to show buttons: 'content' - under the content, 'popup' - bottom of popup
308
+ align: 'right' // align text: 'right', 'left', 'center'
309
+ },
310
+ print_button: false, // show print button for popup
311
+ close_with: [
312
+ 'overlay', // popup will be closed if catch click on overlay
313
+ 'x_button', // popup will be closed if catch click on x button
314
+ 'yes_button', // popup will be closed if catch click on yes overlay
315
+ 'no_button', // popup will be closed if catch click on no overlay
316
+ 'esc_button' // popup will be closed if catch esc mouse down
317
+ ],
318
+ close_delay: 0, // don't allow popup close for X seconds
319
+ effects: { // effects list is here - https://github.com/daneden/animate.css
320
+ open: { // when popup is opening
321
+ effect: 'fadeInDown'
322
+ },
323
+ close: { // when popup is closing
324
+ effect: 'fadeOutUp'
325
+ }
326
+ },
327
+ theme: "default", // default, sweet-alert, simple-shadow
328
+ themes_folder_url: "./themes/", // url where themes are located if you want popup to load theme
329
+ hide_body_scroll: false // if true body will get overflow hidden on popup opened
330
+ }, options );
331
+ settings = $.extend( true, settings, $(this).data());
332
+ }
333
+ this.data('br_popup_settings', settings);
334
+ return this;
335
+ }
336
+
337
+ }( jQuery ));
berocket/assets/tippy/tippy.css ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
1
+ .tippy-touch{cursor:pointer!important}.tippy-notransition{transition:none!important}.tippy-popper{max-width:350px;-webkit-perspective:700px;perspective:700px;z-index:9999;outline:0;transition-timing-function:cubic-bezier(.165,.84,.44,1);pointer-events:none;line-height:1.4}.tippy-popper[data-html]{max-width:96%;max-width:calc(100% - 20px)}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 90%;transform-origin:0 90%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,25%);transform:scale(6) translate(-50%,25%);opacity:1}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,25%);transform:scale(1) translate(-50%,25%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) rotateX(0);transform:translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(90deg);transform:translateY(0) rotateX(90deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:7px solid #333;border-right:7px solid transparent;border-left:7px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -90%;transform-origin:0 -90%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-50%,-125%);transform:scale(6) translate(-50%,-125%);opacity:1}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1) translate(-50%,-125%);transform:scale(1) translate(-50%,-125%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) rotateX(0);transform:translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) rotateX(-90deg);transform:translateY(0) rotateX(-90deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(0) scale(0);transform:translateY(0) scale(0)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:100% 0;transform-origin:100% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(40%,-50%);transform:scale(6) translate(40%,-50%);opacity:1}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(40%,-50%);transform:scale(1.5) translate(40%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) rotateY(0);transform:translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(-90deg);transform:translateX(0) rotateY(-90deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:7px solid #333;border-top:7px solid transparent;border-bottom:7px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-100% 0;transform-origin:-100% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(6) translate(-140%,-50%);transform:scale(6) translate(-140%,-50%);opacity:1}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(1.5) translate(-140%,-50%);transform:scale(1.5) translate(-140%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) rotateY(0);transform:translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) rotateY(90deg);transform:translateX(0) rotateY(90deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{opacity:1;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{opacity:1;-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(0) scale(0);transform:translateX(0) scale(0)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;text-align:center;will-change:transform;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-animatefill] .tippy-content{transition:-webkit-clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98);transition:clip-path cubic-bezier(.46,.1,.52,.98),-webkit-clip-path cubic-bezier(.46,.1,.52,.98)}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.53,2,.36,.85)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:26%;left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(100% 100% at 50% 50%);clip-path:ellipse(100% 100% at 50% 50%)}body:not(.tippy-touch) .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(5% 50% at 50% 50%);clip-path:ellipse(5% 50% at 50% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 0 50%);clip-path:ellipse(135% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=right] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 0 50%);clip-path:ellipse(40% 100% at 0 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=visible] .tippy-content{-webkit-clip-path:ellipse(135% 100% at 100% 50%);clip-path:ellipse(135% 100% at 100% 50%)}body:not(.tippy-touch) .tippy-popper[x-placement=left] .tippy-tooltip[data-animatefill][data-state=hidden] .tippy-content{-webkit-clip-path:ellipse(40% 100% at 100% 50%);clip-path:ellipse(40% 100% at 100% 50%)}@media (max-width:360px){.tippy-popper{max-width:96%;max-width:calc(100% - 20px)}}
2
+ /*LIGHT*/
3
+ .tippy-popper[x-placement^=top] .tippy-tooltip.light-theme .tippy-arrow{border-top:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme .tippy-arrow{border-bottom:7px solid #fff;border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme .tippy-arrow{border-left:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme .tippy-arrow{border-right:7px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-tooltip.light-theme{color:#26323d;box-shadow:0 0 20px 4px rgba(154,161,177,.15),0 4px 80px -8px rgba(36,40,47,.25),0 4px 4px -2px rgba(91,94,105,.15);background-color:#fff}.tippy-tooltip.light-theme .tippy-backdrop{background-color:#fff}.tippy-tooltip.light-theme .tippy-roundarrow{fill:#fff}.tippy-tooltip.light-theme[data-animatefill]{background-color:transparent}
4
+ /*TRANSLUCENT*/
5
+ .tippy-popper[x-placement^=top] .tippy-tooltip.translucent-theme .tippy-arrow{border-top:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=bottom] .tippy-tooltip.translucent-theme .tippy-arrow{border-bottom:7px solid rgba(0,0,0,.7);border-right:7px solid transparent;border-left:7px solid transparent}.tippy-popper[x-placement^=left] .tippy-tooltip.translucent-theme .tippy-arrow{border-left:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-popper[x-placement^=right] .tippy-tooltip.translucent-theme .tippy-arrow{border-right:7px solid rgba(0,0,0,.7);border-top:7px solid transparent;border-bottom:7px solid transparent}.tippy-tooltip.translucent-theme,.tippy-tooltip.translucent-theme .tippy-backdrop{background-color:rgba(0,0,0,.7)}.tippy-tooltip.translucent-theme .tippy-roundarrow{fill:rgba(0,0,0,.7)}.tippy-tooltip.translucent-theme[data-animatefill]{background-color:transparent}
berocket/assets/tippy/tippy.min.js ADDED
@@ -0,0 +1,2 @@
 
 
1
+ (function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function r(e){return 11===e?pe:10===e?se:pe||se}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'],10)+parseFloat(e['border'+n+'Width'],10)}function h(e,t,o,n){return ee(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return fe({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.right-p.left,a=s.height||e.clientHeight||p.bottom-p.top,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth,10),c=parseFloat(m.borderLeftWidth,10);i&&s&&(a.top=ee(a.top,0),a.left=ee(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var w=parseFloat(m.marginTop,10),y=parseFloat(m.marginLeft,10);b.top-=h-w,b.bottom-=h-w,b.left-=c-y,b.right-=c-y,b.marginTop=w,b.marginLeft=y}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function w(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=ee(o.clientWidth,window.innerWidth||0),r=ee(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function y(e){var n=e.nodeName;if('BODY'===n||'HTML'===n)return!1;if('fixed'===t(e,'position'))return!0;var i=o(e);return!!i&&y(i)}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,i,r){var p=4<arguments.length&&void 0!==arguments[4]&&arguments[4],s={top:0,left:0},d=p?E(e):a(e,t);if('viewport'===r)s=w(d,p);else{var l;'scrollParent'===r?(l=n(o(t)),'BODY'===l.nodeName&&(l=e.ownerDocument.documentElement)):'window'===r?l=e.ownerDocument.documentElement:l=r;var f=b(l,d,p);if('HTML'===l.nodeName&&!y(d)){var m=c(e.ownerDocument),h=m.height,g=m.width;s.top+=f.top-f.marginTop,s.bottom=h+f.top,s.left+=f.left-f.marginLeft,s.right=g+f.left}else s=f}i=i||0;var u='number'==typeof i;return s.left+=u?i:i.left||0,s.top+=u?i:i.top||0,s.right-=u?i:i.right||0,s.bottom-=u?i:i.bottom||0,s}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return fe({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=n?E(t):a(t,o);return b(o,i,n)}function S(e){var t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop||0)+parseFloat(o.marginBottom||0),i=parseFloat(o.marginLeft||0)+parseFloat(o.marginRight||0),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function D(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function C(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=C(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=D(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function H(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function B(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[H('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function j(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function V(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t){var o=e.offsets,n=o.popper,i=o.reference,r=$,p=function(e){return e},s=r(i.width),d=r(n.width),a=-1!==['left','right'].indexOf(e.placement),l=-1!==e.placement.indexOf('-'),f=t?a||l||s%2==d%2?r:Z:p,m=t?r:p;return{left:f(1==s%2&&1==d%2&&!l&&t?n.left-1:n.left),top:m(n.top),bottom:m(n.bottom),right:f(n.right)}}function K(e,t,o){var n=C(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function z(e){return'end'===e?'start':'start'===e?'end':e}function G(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=ce.indexOf(e),n=ce.slice(o+1).concat(ce.slice(0,o));return t?n.reverse():n}function _(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?ee(document.documentElement.clientHeight,window.innerHeight||0):ee(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function X(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(C(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return _(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function J(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:X(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}for(var Q=Math.min,Z=Math.floor,$=Math.round,ee=Math.max,te='undefined'!=typeof window&&'undefined'!=typeof document,oe=['Edge','Trident','Firefox'],ne=0,ie=0;ie<oe.length;ie+=1)if(te&&0<=navigator.userAgent.indexOf(oe[ie])){ne=1;break}var i=te&&window.Promise,re=i?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},ne))}},pe=te&&!!(window.MSInputMethodContext&&document.documentMode),se=te&&/MSIE 10/.test(navigator.userAgent),de=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},ae=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),le=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},fe=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},me=te&&/Firefox/i.test(navigator.userAgent),he=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],ce=he.slice(3),ge={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ue=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};de(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=re(this.update.bind(this)),this.options=fe({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(fe({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=fe({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return fe({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return ae(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return B.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ue.Utils=('undefined'==typeof window?global:window).PopperUtils,ue.placements=he,ue.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:le({},d,r[d]),end:le({},d,r[d]+r[a]-p[a])};e.offsets.popper=fe({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:J,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=H('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=ee(f[e],a[e])),le({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u);(m||b||y)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),y&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,D(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport'},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=C(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=C(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h=q(e,2>window.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=H('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return j(e.instance.popper,e.styles),V(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&j(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),j(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue});
2
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).tippy=e(t.Popper)}(this,function(t){"use strict";t=t&&t.hasOwnProperty("default")?t.default:t;function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var r in a)Object.prototype.hasOwnProperty.call(a,r)&&(t[r]=a[r])}return t}).apply(this,arguments)}var a="undefined"!=typeof window,r=a&&navigator.userAgent,n=/MSIE |Trident\//.test(r),i=/UCBrowser\//.test(r),p=a&&/iPhone|iPad|iPod/.test(navigator.platform)&&!window.MSStream,o={a11y:!0,allowHTML:!0,animateFill:!0,animation:"shift-away",appendTo:function(){return document.body},aria:"describedby",arrow:!1,arrowType:"sharp",boundary:"scrollParent",content:"",delay:[0,20],distance:10,duration:[325,275],flip:!0,flipBehavior:"flip",flipOnUpdate:!1,followCursor:!1,hideOnClick:!0,ignoreAttributes:!1,inertia:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,lazy:!0,maxWidth:350,multiple:!1,offset:0,onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},placement:"top",popperOptions:{},role:"tooltip",showOnInit:!1,size:"regular",sticky:!1,target:"",theme:"dark",touch:!0,touchHold:!1,trigger:"mouseenter focus",updateDuration:0,wait:null,zIndex:9999},s=["arrow","arrowType","boundary","distance","flip","flipBehavior","flipOnUpdate","offset","placement","popperOptions"],l={POPPER:".tippy-popper",TOOLTIP:".tippy-tooltip",CONTENT:".tippy-content",BACKDROP:".tippy-backdrop",ARROW:".tippy-arrow",ROUND_ARROW:".tippy-roundarrow"},c=a?Element.prototype:{},d=c.matches||c.matchesSelector||c.webkitMatchesSelector||c.mozMatchesSelector||c.msMatchesSelector;function f(t){return[].slice.call(t)}function m(t,e){return(c.closest||function(t){for(var e=this;e;){if(d.call(e,t))return e;e=e.parentElement}}).call(t,e)}function u(t,e){for(;t;){if(e(t))return t;t=t.parentElement}}function b(t){return"[object Object]"==={}.toString.call(t)}function y(t,e){return{}.hasOwnProperty.call(t,e)}function h(t,e,a){if(Array.isArray(t)){var r=t[e];return null==r?a:r}return t}function v(t,e){var a;return function(){var r=this,n=arguments;clearTimeout(a),a=setTimeout(function(){return t.apply(r,n)},e)}}function x(t,e){return t&&t.modifiers&&t.modifiers[e]}function w(t,e){return t.indexOf(e)>-1}function g(t){return b(t)||t instanceof Element}function k(t,e){return"function"==typeof t?t.apply(null,e):t}function E(t,e){t.filter(function(t){return"flip"===t.name})[0].enabled=e}function A(){return document.createElement("div")}function C(t,e){t.innerHTML=e instanceof Element?e.innerHTML:e}function O(t,e){e.content instanceof Element?(C(t,""),t.appendChild(e.content)):t[e.allowHTML?"innerHTML":"textContent"]=e.content}function X(t){return{tooltip:t.querySelector(l.TOOLTIP),backdrop:t.querySelector(l.BACKDROP),content:t.querySelector(l.CONTENT),arrow:t.querySelector(l.ARROW)||t.querySelector(l.ROUND_ARROW)}}function Y(t){t.setAttribute("data-inertia","")}function L(t){var e=A();return"round"===t?(e.className="tippy-roundarrow",C(e,'<svg viewBox="0 0 24 8" xmlns="http://www.w3.org/2000/svg"><path d="M3 8s2.021-.015 5.253-4.218C9.584 2.051 10.797 1.007 12 1c1.203-.007 2.416 1.035 3.761 2.782C19.012 8.005 21 8 21 8H3z"/></svg>')):e.className="tippy-arrow",e}function T(){var t=A();return t.className="tippy-backdrop",t.setAttribute("data-state","hidden"),t}function I(t,e){t.setAttribute("tabindex","-1"),e.setAttribute("data-interactive","")}function S(t,e){t.forEach(function(t){t&&(t.style.transitionDuration="".concat(e,"ms"))})}function P(t,e,a){var r=i&&void 0!==document.body.style.WebkitTransition?"webkitTransitionEnd":"transitionend";t[e+"EventListener"](r,a)}function z(t){var e=t.getAttribute("x-placement");return e?e.split("-")[0]:""}function H(t,e){t.forEach(function(t){t&&t.setAttribute("data-state",e)})}function M(t,e,a){a.split(" ").forEach(function(a){t.classList[e](a+"-theme")})}function _(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.checkHideOnClick,a=t.exclude,r=t.duration;f(document.querySelectorAll(l.POPPER)).forEach(function(t){var n=t._tippy;!n||e&&!0!==n.props.hideOnClick||a&&t===a.popper||n.hide(r)})}var D={passive:!0},N=3,R=!1;function V(){R||(R=!0,p&&document.body.classList.add("tippy-iOS"),window.performance&&document.addEventListener("mousemove",B))}var W=0;function B(){var t=performance.now();t-W<20&&(R=!1,document.removeEventListener("mousemove",B),p||document.body.classList.remove("tippy-iOS")),W=t}function U(t){var e=t.target;if(!(e instanceof Element))return _();var a=m(e,l.POPPER);if(!(a&&a._tippy&&a._tippy.props.interactive)){var r=u(e,function(t){return t._tippy&&t._tippy.reference===t});if(r){var n=r._tippy,i=w(n.props.trigger,"click");if(R||i)return _({exclude:n,checkHideOnClick:!0});if(!0!==n.props.hideOnClick||i)return;n.clearDelayTimeouts()}_({checkHideOnClick:!0})}}function q(){var t=document.activeElement;t&&t.blur&&t._tippy&&t.blur()}var j=Object.keys(o);function F(t,a){var r=e({},a,{content:k(a.content,[t])},a.ignoreAttributes?{}:function(t){return j.reduce(function(e,a){var r=(t.getAttribute("data-tippy-".concat(a))||"").trim();if(!r)return e;if("content"===a)e[a]=r;else try{e[a]=JSON.parse(r)}catch(t){e[a]=r}return e},{})}(t));return(r.arrow||i)&&(r.animateFill=!1),r}function K(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=arguments.length>1?arguments[1]:void 0;Object.keys(t).forEach(function(t){if(!y(e,t))throw new Error("[tippy]: `".concat(t,"` is not a valid option"))})}var J=1;function G(a,r){var i=F(a,r);if(!i.multiple&&a._tippy)return null;var p={},c=null,b=0,g=0,C=!1,_=function(){},V=[],W=i.interactiveDebounce>0?v(nt,i.interactiveDebounce):nt,B=null,U=J++,q=function(t,e){var a=A();a.className="tippy-popper",a.id="tippy-".concat(t),a.style.zIndex=e.zIndex,e.role&&a.setAttribute("role",e.role);var r=A();r.className="tippy-tooltip",r.style.maxWidth=e.maxWidth+("number"==typeof e.maxWidth?"px":""),r.setAttribute("data-size",e.size),r.setAttribute("data-animation",e.animation),r.setAttribute("data-state","hidden"),M(r,"add",e.theme);var n=A();return n.className="tippy-content",n.setAttribute("data-state","hidden"),e.interactive&&I(a,r),e.arrow&&r.appendChild(L(e.arrowType)),e.animateFill&&(r.appendChild(T()),r.setAttribute("data-animatefill","")),e.inertia&&Y(r),O(n,e),r.appendChild(n),a.appendChild(r),a}(U,i);q.addEventListener("mouseenter",function(t){Q.props.interactive&&Q.state.isVisible&&"mouseenter"===p.type&&$(t)}),q.addEventListener("mouseleave",function(){Q.props.interactive&&"mouseenter"===p.type&&document.addEventListener("mousemove",W)});var j,Q={id:U,reference:a,popper:q,popperChildren:X(q),popperInstance:null,props:i,state:{isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},clearDelayTimeouts:ht,set:vt,setContent:function(t){vt({content:t})},show:xt,hide:wt,enable:function(){Q.state.isEnabled=!0},disable:function(){Q.state.isEnabled=!1},destroy:gt};return ut(),i.lazy||(ct(),Q.popperInstance.disableEventListeners()),i.showOnInit&&$(),i.a11y&&!i.target&&((j=a)instanceof Element&&(!d.call(j,"a[href],area[href],button,details,input,textarea,select,iframe,[tabindex]")||j.hasAttribute("disabled")))&&a.setAttribute("tabindex","0"),a._tippy=Q,q._tippy=Q,Q;function Z(t){var e=c=t,a=e.clientX,r=e.clientY;if(Q.popperInstance){var n=z(Q.popper),i=Q.popperChildren.arrow?N+16:N,p=w(["top","bottom"],n),o=w(["left","right"],n),s=p?Math.max(i,a):a,l=o?Math.max(i,r):r;p&&s>i&&(s=Math.min(a,window.innerWidth-i)),o&&l>i&&(l=Math.min(r,window.innerHeight-i));var d=Q.reference.getBoundingClientRect(),f=Q.props.followCursor,m="horizontal"===f,u="vertical"===f;Q.popperInstance.reference={getBoundingClientRect:function(){return{width:0,height:0,top:m?d.top:l,bottom:m?d.bottom:l,left:u?d.left:s,right:u?d.right:s}},clientWidth:0,clientHeight:0},Q.popperInstance.scheduleUpdate(),"initial"===f&&Q.state.isVisible&&et()}}function $(t){if(ht(),!Q.state.isVisible){if(Q.props.target)return function(t){var a=m(t.target,Q.props.target);a&&!a._tippy&&(G(a,e({},Q.props,{content:k(r.content,[a]),appendTo:r.appendTo,target:"",showOnInit:!0})),$(t))}(t);if(C=!0,Q.props.wait)return Q.props.wait(Q,t);dt()&&!Q.state.isMounted&&document.addEventListener("mousemove",Z);var a=h(Q.props.delay,0,o.delay);a?b=setTimeout(function(){xt()},a):xt()}}function tt(){if(ht(),!Q.state.isVisible)return et();C=!1;var t=h(Q.props.delay,1,o.delay);t?g=setTimeout(function(){Q.state.isVisible&&wt()},t):wt()}function et(){document.removeEventListener("mousemove",Z),c=null}function at(){document.body.removeEventListener("mouseleave",tt),document.removeEventListener("mousemove",W)}function rt(t){Q.state.isEnabled&&!lt(t)&&(Q.state.isVisible||(p=t,R&&w(t.type,"mouse")&&(c=t)),"click"===t.type&&!1!==Q.props.hideOnClick&&Q.state.isVisible?tt():$(t))}function nt(t){var e=u(t.target,function(t){return t._tippy}),a=m(t.target,l.POPPER)===Q.popper,r=e===Q.reference;a||r||function(t,e,a,r){if(!t)return!0;var n=a.clientX,i=a.clientY,p=r.interactiveBorder,o=r.distance,s=e.top-i>("top"===t?p+o:p),l=i-e.bottom>("bottom"===t?p+o:p),c=e.left-n>("left"===t?p+o:p),d=n-e.right>("right"===t?p+o:p);return s||l||c||d}(z(Q.popper),Q.popper.getBoundingClientRect(),t,Q.props)&&(at(),tt())}function it(t){if(!lt(t))return Q.props.interactive?(document.body.addEventListener("mouseleave",tt),void document.addEventListener("mousemove",W)):void tt()}function pt(t){t.target===Q.reference&&(Q.props.interactive&&t.relatedTarget&&Q.popper.contains(t.relatedTarget)||tt())}function ot(t){m(t.target,Q.props.target)&&$(t)}function st(t){m(t.target,Q.props.target)&&tt()}function lt(t){var e="ontouchstart"in window,a=w(t.type,"touch"),r=Q.props.touchHold;return e&&R&&r&&!a||R&&!r&&a}function ct(){var a=Q.props.popperOptions,r=Q.popperChildren,n=r.tooltip,i=r.arrow;Q.popperInstance=new t(Q.reference,Q.popper,e({placement:Q.props.placement},a,{modifiers:e({},a?a.modifiers:{},{preventOverflow:e({boundariesElement:Q.props.boundary,padding:N},x(a,"preventOverflow")),arrow:e({element:i,enabled:!!i},x(a,"arrow")),flip:e({enabled:Q.props.flip,padding:Q.props.distance+N,behavior:Q.props.flipBehavior},x(a,"flip")),offset:e({offset:Q.props.offset},x(a,"offset"))}),onUpdate:function(t){Q.props.flipOnUpdate||(t.flipped&&(Q.popperInstance.options.placement=t.placement),E(Q.popperInstance.modifiers,!1));var e=n.style;e.top="",e.bottom="",e.left="",e.right="",e[z(Q.popper)]=-(Q.props.distance-10)+"px"}}))}function dt(){return Q.props.followCursor&&!R&&"focus"!==p.type}function ft(t,e){if(0===t)return e();var a=Q.popperChildren.tooltip,r=function t(r){r.target===a&&(P(a,"remove",t),e())};P(a,"remove",_),P(a,"add",r),_=r}function mt(t,e){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2];Q.reference.addEventListener(t,e,a),V.push({eventType:t,handler:e,options:a})}function ut(){Q.props.touchHold&&!Q.props.target&&(mt("touchstart",rt,D),mt("touchend",it,D)),Q.props.trigger.trim().split(" ").forEach(function(t){if("manual"!==t)if(Q.props.target)switch(t){case"mouseenter":mt("mouseover",ot),mt("mouseout",st);break;case"focus":mt("focusin",ot),mt("focusout",st);break;case"click":mt(t,ot)}else switch(mt(t,rt),t){case"mouseenter":mt("mouseleave",it);break;case"focus":mt(n?"focusout":"blur",pt)}})}function bt(){V.forEach(function(t){var e=t.eventType,a=t.handler,r=t.options;Q.reference.removeEventListener(e,a,r)}),V=[]}function yt(){return[Q.popperChildren.tooltip,Q.popperChildren.backdrop,Q.popperChildren.content]}function ht(){clearTimeout(b),clearTimeout(g)}function vt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};K(t,o);var a=Q.props,r=F(Q.reference,e({},Q.props,t,{ignoreAttributes:!0}));r.ignoreAttributes=y(t,"ignoreAttributes")?t.ignoreAttributes:a.ignoreAttributes,Q.props=r,(y(t,"trigger")||y(t,"touchHold"))&&(bt(),ut()),y(t,"interactiveDebounce")&&(at(),W=v(nt,t.interactiveDebounce)),function(t,e,a){var r=X(t),n=r.tooltip,i=r.content,p=r.backdrop,o=r.arrow;t.style.zIndex=a.zIndex,n.setAttribute("data-size",a.size),n.setAttribute("data-animation",a.animation),n.style.maxWidth=a.maxWidth+("number"==typeof a.maxWidth?"px":""),a.role?t.setAttribute("role",a.role):t.removeAttribute("role"),e.content!==a.content&&O(i,a),!e.animateFill&&a.animateFill?(n.appendChild(T()),n.setAttribute("data-animatefill","")):e.animateFill&&!a.animateFill&&(n.removeChild(p),n.removeAttribute("data-animatefill")),!e.arrow&&a.arrow?n.appendChild(L(a.arrowType)):e.arrow&&!a.arrow&&n.removeChild(o),e.arrow&&a.arrow&&e.arrowType!==a.arrowType&&n.replaceChild(L(a.arrowType),o),!e.interactive&&a.interactive?I(t,n):e.interactive&&!a.interactive&&function(t,e){t.removeAttribute("tabindex"),e.removeAttribute("data-interactive")}(t,n),!e.inertia&&a.inertia?Y(n):e.inertia&&!a.inertia&&function(t){t.removeAttribute("data-inertia")}(n),e.theme!==a.theme&&(M(n,"remove",e.theme),M(n,"add",a.theme))}(Q.popper,a,r),Q.popperChildren=X(Q.popper),Q.popperInstance&&(Q.popperInstance.update(),s.some(function(e){return y(t,e)})&&(Q.popperInstance.destroy(),ct(),Q.state.isVisible||Q.popperInstance.disableEventListeners(),Q.props.followCursor&&c&&Z(c)))}function xt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h(Q.props.duration,0,o.duration[0]);if(!Q.state.isDestroyed&&Q.state.isEnabled&&(!R||Q.props.touch))return Q.reference.isVirtual||document.documentElement.contains(Q.reference)?void(Q.reference.hasAttribute("disabled")||!1!==Q.props.onShow(Q)&&(Q.popper.style.visibility="visible",Q.state.isVisible=!0,Q.props.interactive&&Q.reference.classList.add("tippy-active"),S([Q.popper,Q.popperChildren.tooltip,Q.popperChildren.backdrop],0),function(t){var e=!(dt()||"initial"===Q.props.followCursor&&R);Q.popperInstance?(dt()||(Q.popperInstance.scheduleUpdate(),e&&Q.popperInstance.enableEventListeners()),E(Q.popperInstance.modifiers,!0)):(ct(),e||Q.popperInstance.disableEventListeners()),Q.popperInstance.reference=Q.reference;var a=Q.popperChildren.arrow;if(dt()){a&&(a.style.margin="0");var r=h(Q.props.delay,0,o.delay);p.type&&Z(r&&c?c:p)}else a&&(a.style.margin="");!function(t,e){var a=t.popper,r=t.options,n=r.onCreate,i=r.onUpdate;r.onCreate=r.onUpdate=function(t){!function(t){t.offsetHeight}(a),e(),i(t),r.onCreate=n,r.onUpdate=i}}(Q.popperInstance,t);var n=Q.props.appendTo;(B="parent"===n?Q.reference.parentNode:k(n,[Q.reference])).contains(Q.popper)||(B.appendChild(Q.popper),Q.props.onMount(Q),Q.state.isMounted=!0)}(function(){Q.state.isVisible&&(dt()||Q.popperInstance.update(),R&&"initial"===Q.props.followCursor&&Z(c),S([Q.popper],i.updateDuration),S(yt(),t),Q.popperChildren.backdrop&&(Q.popperChildren.content.style.transitionDelay=Math.round(t/12)+"ms"),Q.props.sticky&&(S([Q.popper],n?0:Q.props.updateDuration),function t(){Q.popperInstance&&Q.popperInstance.scheduleUpdate(),Q.state.isMounted?requestAnimationFrame(t):S([Q.popper],0)}()),H(yt(),"visible"),function(t,e){ft(t,e)}(t,function(){Q.popperChildren.tooltip.classList.add("tippy-notransition"),Q.props.aria&&Q.reference.setAttribute("aria-".concat(Q.props.aria),Q.popper.id),Q.props.onShown(Q),Q.state.isShown=!0}))}))):gt()}function wt(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:h(Q.props.duration,1,o.duration[1]);!Q.state.isDestroyed&&Q.state.isEnabled&&!1!==Q.props.onHide(Q)&&(Q.popperChildren.tooltip.classList.remove("tippy-notransition"),Q.props.interactive&&Q.reference.classList.remove("tippy-active"),Q.popper.style.visibility="hidden",Q.state.isVisible=!1,Q.state.isShown=!1,S(yt(),t),H(yt(),"hidden"),function(t,e){ft(t,function(){!Q.state.isVisible&&B&&B.contains(Q.popper)&&e()})}(t,function(){C||et(),Q.props.aria&&Q.reference.removeAttribute("aria-".concat(Q.props.aria)),Q.popperInstance.disableEventListeners(),Q.popperInstance.options.placement=Q.props.placement,B.removeChild(Q.popper),Q.props.onHidden(Q),Q.state.isMounted=!1}))}function gt(t){Q.state.isDestroyed||(Q.state.isMounted&&wt(0),bt(),delete Q.reference._tippy,Q.props.target&&t&&f(Q.reference.querySelectorAll(Q.props.target)).forEach(function(t){t._tippy&&t._tippy.destroy()}),Q.popperInstance&&Q.popperInstance.destroy(),Q.state.isDestroyed=!0)}}var Q=!1;function Z(t,a){K(a,o),Q||(document.addEventListener("click",U,!0),document.addEventListener("touchstart",V,D),window.addEventListener("blur",q),Q=!0);var r=e({},o,a);b(t)&&function(t){var e={isVirtual:!0,attributes:t.attributes||{},setAttribute:function(e,a){t.attributes[e]=a},getAttribute:function(e){return t.attributes[e]},removeAttribute:function(e){delete t.attributes[e]},hasAttribute:function(e){return e in t.attributes},addEventListener:function(){},removeEventListener:function(){},classList:{classNames:{},add:function(e){t.classList.classNames[e]=!0},remove:function(e){delete t.classList.classNames[e]},contains:function(e){return e in t.classList.classNames}}};for(var a in e)t[a]=e[a]}(t);var n=function(t){if(g(t))return[t];if(t instanceof NodeList)return f(t);if(Array.isArray(t))return t;try{return f(document.querySelectorAll(t))}catch(t){return[]}}(t).reduce(function(t,e){var a=e&&G(e,r);return a&&t.push(a),t},[]);return g(t)?n[0]:n}return Z.version="4.0.2",Z.defaults=o,Z.setDefaults=function(t){Object.keys(t).forEach(function(e){o[e]=t[e]})},Z.hideAll=_,Z.group=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.delay,r=void 0===a?t[0].props.delay:a,n=e.duration,i=void 0===n?0:n,p=!1;function o(t){p=t,d()}function s(e){e._originalProps.onShow(e),t.forEach(function(t){t.set({duration:i}),t.hide()}),o(!0)}function l(t){t._originalProps.onHide(t),o(!1)}function c(t){t._originalProps.onShown(t),t.set({duration:t._originalProps.duration})}function d(){t.forEach(function(t){t.set({onShow:s,onShown:c,onHide:l,delay:p?[0,Array.isArray(r)?r[1]:r]:r,duration:p?i:t._originalProps.duration})})}t.forEach(function(t){t._originalProps={duration:t.props.duration,onHide:t.props.onHide,onShow:t.props.onShow,onShown:t.props.onShown}}),d()},a&&setTimeout(function(){f(document.querySelectorAll("[data-tippy]")).forEach(function(t){var e=t.getAttribute("data-tippy");e&&Z(t,{content:e})})}),function(t){if(a){var e=document.createElement("style");e.type="text/css",e.textContent=t;var r=document.head,n=r.firstChild;n?r.insertBefore(e,n):r.appendChild(e)}}('.tippy-iOS{cursor:pointer!important}.tippy-notransition{transition:none}.tippy-popper{transition-timing-function:cubic-bezier(.165,.84,.44,1);max-width:calc(100% - 10px);pointer-events:none;outline:0}.tippy-popper[x-placement^=top] .tippy-backdrop{border-radius:40% 40% 0 0}.tippy-popper[x-placement^=top] .tippy-roundarrow{bottom:-8px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.tippy-popper[x-placement^=top] .tippy-arrow{border-top:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;bottom:-7px;margin:0 6px;-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=top] .tippy-backdrop{-webkit-transform-origin:0 25%;transform-origin:0 25%}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-55%);transform:scale(1) translate(-50%,-55%)}.tippy-popper[x-placement^=top] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%,-45%);transform:scale(.2) translate(-50%,-45%);opacity:0}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(-20px);transform:translateY(-20px)}.tippy-popper[x-placement^=top] [data-animation=perspective]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(-10px) rotateX(0);transform:perspective(700px) translateY(-10px) rotateX(0)}.tippy-popper[x-placement^=top] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(60deg);transform:perspective(700px) translateY(0) rotateX(60deg)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(-10px);transform:translateY(-10px)}.tippy-popper[x-placement^=top] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=top] [data-animation=scale]{-webkit-transform-origin:bottom;transform-origin:bottom}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(-10px) scale(1);transform:translateY(-10px) scale(1)}.tippy-popper[x-placement^=top] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(-10px) scale(.5);transform:translateY(-10px) scale(.5)}.tippy-popper[x-placement^=bottom] .tippy-backdrop{border-radius:0 0 30% 30%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow{top:-8px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(0);transform:rotate(0)}.tippy-popper[x-placement^=bottom] .tippy-arrow{border-bottom:8px solid #333;border-right:8px solid transparent;border-left:8px solid transparent;top:-7px;margin:0 6px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%}.tippy-popper[x-placement^=bottom] .tippy-backdrop{-webkit-transform-origin:0 -50%;transform-origin:0 -50%}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-45%);transform:scale(1) translate(-50%,-45%)}.tippy-popper[x-placement^=bottom] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-50%);transform:scale(.2) translate(-50%);opacity:0}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateY(20px);transform:translateY(20px)}.tippy-popper[x-placement^=bottom] [data-animation=perspective]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateY(10px) rotateX(0);transform:perspective(700px) translateY(10px) rotateX(0)}.tippy-popper[x-placement^=bottom] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateY(0) rotateX(-60deg);transform:perspective(700px) translateY(0) rotateX(-60deg)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateY(10px);transform:translateY(10px)}.tippy-popper[x-placement^=bottom] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateY(0);transform:translateY(0)}.tippy-popper[x-placement^=bottom] [data-animation=scale]{-webkit-transform-origin:top;transform-origin:top}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=visible]{-webkit-transform:translateY(10px) scale(1);transform:translateY(10px) scale(1)}.tippy-popper[x-placement^=bottom] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateY(10px) scale(.5);transform:translateY(10px) scale(.5)}.tippy-popper[x-placement^=left] .tippy-backdrop{border-radius:50% 0 0 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow{right:-16px;-webkit-transform-origin:33.33333333% 50%;transform-origin:33.33333333% 50%}.tippy-popper[x-placement^=left] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.tippy-popper[x-placement^=left] .tippy-arrow{border-left:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;right:-7px;margin:3px 0;-webkit-transform-origin:0 50%;transform-origin:0 50%}.tippy-popper[x-placement^=left] .tippy-backdrop{-webkit-transform-origin:50% 0;transform-origin:50% 0}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=left] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-75%,-50%);transform:scale(.2) translate(-75%,-50%);opacity:0}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(-20px);transform:translateX(-20px)}.tippy-popper[x-placement^=left] [data-animation=perspective]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(-10px) rotateY(0);transform:perspective(700px) translateX(-10px) rotateY(0)}.tippy-popper[x-placement^=left] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(-60deg);transform:perspective(700px) translateX(0) rotateY(-60deg)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(-10px);transform:translateX(-10px)}.tippy-popper[x-placement^=left] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=left] [data-animation=scale]{-webkit-transform-origin:right;transform-origin:right}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(-10px) scale(1);transform:translateX(-10px) scale(1)}.tippy-popper[x-placement^=left] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(-10px) scale(.5);transform:translateX(-10px) scale(.5)}.tippy-popper[x-placement^=right] .tippy-backdrop{border-radius:0 50% 50% 0}.tippy-popper[x-placement^=right] .tippy-roundarrow{left:-16px;-webkit-transform-origin:66.66666666% 50%;transform-origin:66.66666666% 50%}.tippy-popper[x-placement^=right] .tippy-roundarrow svg{position:absolute;left:0;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.tippy-popper[x-placement^=right] .tippy-arrow{border-right:8px solid #333;border-top:8px solid transparent;border-bottom:8px solid transparent;left:-7px;margin:3px 0;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.tippy-popper[x-placement^=right] .tippy-backdrop{-webkit-transform-origin:-50% 0;transform-origin:-50% 0}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=visible]{-webkit-transform:scale(1) translate(-50%,-50%);transform:scale(1) translate(-50%,-50%)}.tippy-popper[x-placement^=right] .tippy-backdrop[data-state=hidden]{-webkit-transform:scale(.2) translate(-25%,-50%);transform:scale(.2) translate(-25%,-50%);opacity:0}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-toward][data-state=hidden]{opacity:0;-webkit-transform:translateX(20px);transform:translateX(20px)}.tippy-popper[x-placement^=right] [data-animation=perspective]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=visible]{-webkit-transform:perspective(700px) translateX(10px) rotateY(0);transform:perspective(700px) translateX(10px) rotateY(0)}.tippy-popper[x-placement^=right] [data-animation=perspective][data-state=hidden]{opacity:0;-webkit-transform:perspective(700px) translateX(0) rotateY(60deg);transform:perspective(700px) translateX(0) rotateY(60deg)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=fade][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=visible]{-webkit-transform:translateX(10px);transform:translateX(10px)}.tippy-popper[x-placement^=right] [data-animation=shift-away][data-state=hidden]{opacity:0;-webkit-transform:translateX(0);transform:translateX(0)}.tippy-popper[x-placement^=right] [data-animation=scale]{-webkit-transform-origin:left;transform-origin:left}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=visible]{-webkit-transform:translateX(10px) scale(1);transform:translateX(10px) scale(1)}.tippy-popper[x-placement^=right] [data-animation=scale][data-state=hidden]{opacity:0;-webkit-transform:translateX(10px) scale(.5);transform:translateX(10px) scale(.5)}.tippy-tooltip{position:relative;color:#fff;border-radius:4px;font-size:.9rem;padding:.3rem .6rem;line-height:1.4;text-align:center;will-change:transform;background-color:#333}.tippy-tooltip[data-size=small]{padding:.2rem .4rem;font-size:.75rem}.tippy-tooltip[data-size=large]{padding:.4rem .8rem;font-size:1rem}.tippy-tooltip[data-animatefill]{overflow:hidden;background-color:transparent}.tippy-tooltip[data-interactive],.tippy-tooltip[data-interactive] path{pointer-events:auto}.tippy-tooltip[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-tooltip[data-inertia][data-state=hidden]{transition-timing-function:ease}.tippy-arrow,.tippy-roundarrow{position:absolute;width:0;height:0}.tippy-roundarrow{width:24px;height:8px;fill:#333;pointer-events:none}.tippy-backdrop{position:absolute;will-change:transform;background-color:#333;border-radius:50%;width:calc(110% + 2rem);left:50%;top:50%;z-index:-1;transition:all cubic-bezier(.46,.1,.52,.98);-webkit-backface-visibility:hidden;backface-visibility:hidden}.tippy-backdrop:after{content:"";float:left;padding-top:100%}.tippy-backdrop+.tippy-content{transition-property:opacity;will-change:opacity}.tippy-backdrop+.tippy-content[data-state=visible]{opacity:1}.tippy-backdrop+.tippy-content[data-state=hidden]{opacity:0}'),Z});
berocket/{webfonts → assets/webfonts}/fa-regular-400.ttf RENAMED
File without changes
berocket/{webfonts → assets/webfonts}/fa-regular-400.woff RENAMED
File without changes
berocket/{webfonts → assets/webfonts}/fa-regular-400.woff2 RENAMED
File without changes
berocket/{webfonts → assets/webfonts}/fa-solid-900.ttf RENAMED
File without changes
berocket/{webfonts → assets/webfonts}/fa-solid-900.woff RENAMED
File without changes
berocket/{webfonts → assets/webfonts}/fa-solid-900.woff2 RENAMED
File without changes
berocket/framework.php CHANGED
@@ -1,31 +1,43 @@
1
  <?php
2
-
3
- /*$BeRocket_framework_this_version = 1;
4
- $BeRocket_framework_latest_version_exist = get_option('BeRocket_framework_latest_version_exist');
5
- if( empty($BeRocket_framework_latest_version_exist) || empty($BeRocket_framework_latest_version_exist['version']) || $BeRocket_framework_latest_version_exist['version'] < $BeRocket_framework_this_version ) {
6
- $BeRocket_framework_latest_version_exist = array('version' => $BeRocket_framework_this_version, 'file' => __FILE__);
7
- update_option('BeRocket_framework_latest_version_exist', $BeRocket_framework_latest_version_exist);
8
- } elseif( file_exists($BeRocket_framework_latest_version_exist['file']) && $BeRocket_framework_latest_version_exist['file'] != __FILE__ ) {
9
- require_once($BeRocket_framework_latest_version_exist['file']);
10
- }*/
11
- require_once( plugin_dir_path( __FILE__ ) . 'includes/functions.php');
12
- require_once( plugin_dir_path( __FILE__ ) . 'includes/updater.php');
13
- require_once( plugin_dir_path( __FILE__ ) . 'includes/widget.php');
14
- require_once( plugin_dir_path( __FILE__ ) . 'includes/admin_notices.php');
15
- require_once( plugin_dir_path( __FILE__ ) . 'includes/custom_post.php');
16
- require_once( plugin_dir_path( __FILE__ ) . 'includes/conditions.php');
17
- require_once( plugin_dir_path( __FILE__ ) . 'includes/plugin-variation.php');
18
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
19
- load_plugin_textdomain('BeRocket_domain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/');
20
- foreach (glob(plugin_dir_path( __FILE__ ) . "../includes/*.php") as $filename)
21
- {
22
- include_once($filename);
23
  }
24
-
25
  if( ! class_exists( 'BeRocket_Framework' ) ) {
26
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  class BeRocket_Framework {
 
28
  public static $settings_name = '';
 
 
29
  private $post;
30
  private $cc;
31
  protected static $instance;
@@ -33,10 +45,13 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
33
  protected $framework_data = array(
34
  'fontawesome_frontend' => false,
35
  );
 
36
  protected $global_settings = array(
37
  'fontawesome_frontend_disable',
38
  'fontawesome_frontend_version',
39
  );
 
 
40
  public static function getInstance()
41
  {
42
  if (null === static::$instance)
@@ -51,6 +66,7 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
51
  {
52
  static::$instance = $child;
53
  }
 
54
  $this->cc = $child; // Child Class object
55
  do_action('BeRocket_framework_init_plugin', $this->cc->info);
56
  $this->plugin_version_capability = apply_filters('brfr_plugin_version_capability_'.$this->cc->info['plugin_name'], $this->plugin_version_capability, $this);
@@ -84,8 +100,28 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
84
  if( empty($this->plugin_version_capability) || $this->plugin_version_capability < 10 ) {
85
  add_filter('berocket_admin_notices_subscribe_plugins', array($this, 'admin_notices_subscribe_plugins'));
86
  }
 
87
  }
88
  do_action($this->info[ 'plugin_name' ].'_framework_construct', $this->cc);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  }
90
  public function admin_notices_subscribe_plugins($plugins) {
91
  $plugins[] = $this->info['id'];
@@ -95,7 +131,8 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
95
  wp_print_styles('font-awesome');
96
  }
97
  public function init_validation() {
98
- return true;
 
99
  }
100
 
101
  public function plugins_loaded() {
@@ -174,6 +211,9 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
174
  $this->cc->info[ 'plugin' ] = plugin_basename( $this->cc->info[ 'plugin_file' ] );
175
  $this->cc->info[ 'name' ] = $info[ 'Name' ];
176
  $this->cc->info[ 'version_capability' ] = $this->plugin_version_capability;
 
 
 
177
 
178
  $plugins[] = $this->cc->info;
179
 
@@ -268,6 +308,9 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
268
  }
269
  }"
270
  );
 
 
 
271
  }
272
 
273
  public function enqueue_fontawesome($force = false) {
@@ -318,39 +361,39 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
318
  require_once( plugin_dir_path( __FILE__ ) . 'includes/settings_fields.php');
319
  wp_register_script(
320
  'berocket_framework_admin',
321
- plugins_url( 'berocket/js/admin.js', $this->cc->info[ 'plugin_file' ] ),
322
  array( 'jquery' ),
323
  $this->cc->info[ 'version' ]
324
  );
325
 
326
  wp_register_style(
327
  'berocket_framework_admin_style',
328
- plugins_url( 'berocket/css/admin.css', $this->cc->info[ 'plugin_file' ] ),
329
  "",
330
  $this->cc->info[ 'version' ]
331
  );
332
 
333
  wp_register_style(
334
  'berocket_framework_global_admin_style',
335
- plugins_url( 'berocket/css/global-admin.css', $this->cc->info[ 'plugin_file' ] ),
336
  "",
337
  $this->cc->info[ 'version' ]
338
  );
339
 
340
  wp_register_script(
341
  'berocket_widget-colorpicker',
342
- plugins_url( 'berocket/js/colpick.js', $this->cc->info[ 'plugin_file' ] ),
343
  array( 'jquery' )
344
  );
345
 
346
  wp_register_style(
347
  'berocket_widget-colorpicker-style',
348
- plugins_url( 'berocket/css/colpick.css', $this->cc->info[ 'plugin_file' ] )
349
  );
350
 
351
  wp_register_style(
352
  'berocket_font_awesome',
353
- plugins_url( 'berocket/css/font-awesome.min.css', $this->cc->info[ 'plugin_file' ] )
354
  );
355
  wp_localize_script( 'berocket_framework_admin', 'berocket_framework_admin', array(
356
  'security' => wp_create_nonce("search-products")
@@ -486,7 +529,7 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
486
 
487
  $page_menu .= '</li>';
488
 
489
- if ( $is_first ) {
490
  if ( $tab_info['icon'] ) {
491
  $title .= '<span class="fa fa-' . $tab_info['icon'] . '"></span>';
492
  }
@@ -495,6 +538,9 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
495
 
496
  $is_first = false;
497
  }
 
 
 
498
  if( $setup_style['use_filters_hook'] ) {
499
  $page_menu = apply_filters('brfr_page_menu_' . $setup_style['name_for_filters'], $page_menu, $tabs_info);
500
  }
@@ -664,7 +710,7 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
664
  echo "
665
  <header>
666
  <div class='br_logo_white'>
667
- <a href='https://berocket.com/products/' title='BeRocket' target='_blank'><img src='" . ( plugins_url( 'berocket/images/br_logo_white.png', $this->cc->info[ 'plugin_file' ] ) ) . "' /></a>
668
  </div>
669
  <nav class='premium'>";
670
  if( ! $setup_style['hide_header_links'] ) {
@@ -714,7 +760,7 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
714
  echo $page_content;
715
  echo '<div class="clear-both"></div>';
716
  if( ! $setup_style['hide_save_button'] ) {
717
- echo '<input type="submit" class="button-primary button" value="' . __( 'Save Changes', 'BeRocket_domain' ) . '" />';
718
  echo '<div class="br_save_error"></div>';
719
  }
720
  if( ! $setup_style['hide_form'] ) {
@@ -914,14 +960,31 @@ if( ! class_exists( 'BeRocket_Framework' ) ) {
914
 
915
  public static function register_font_awesome($type = 'all') {
916
  if( $type == 'all' || $type == 'fa4' ) {
917
- wp_register_style( 'font-awesome', plugins_url( 'css/font-awesome.min.css', __FILE__ ) );
918
  }
919
  if( $type == 'all' || $type == 'fa5' ) {
920
- wp_register_style( 'font-awesome-5', plugins_url( 'css/fontawesome5.min.css', __FILE__ ) );
921
  }
922
  if( $type == 'all' || $type == 'fa5c' ) {
923
- wp_register_style( 'font-awesome-5-compat', plugins_url( 'css/fontawesome4-compat.min.css', __FILE__ ) );
924
  }
925
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
926
  }
927
  }
1
  <?php
2
+ if( ! class_exists( 'BeRocket_Framework' ) && ! function_exists('BeRocket_Framework_load_newest') ) {
3
+ function BeRocket_Framework_load_newest() {
4
+ $active_plugins = get_option('active_plugins');
5
+ $framework_version = '0';
6
+ $framework_dir = false;
7
+ foreach($active_plugins as $active_plugin) {
8
+ $version_file = plugin_dir_path(WP_PLUGIN_DIR . '/' . $active_plugin) . 'berocket/framework_version.php';
9
+ if( file_exists($version_file) ) {
10
+ include_once($version_file);
11
+ }
12
+ }
13
+ if( ! empty($framework_version) && ! empty($framework_dir) ) {
14
+ include_once($framework_dir . '/framework.php');
15
+ }
16
+ }
17
+ BeRocket_Framework_load_newest();
 
 
 
 
 
18
  }
 
19
  if( ! class_exists( 'BeRocket_Framework' ) ) {
20
+ if( ! defined('BeRocket_framework_file') ) {
21
+ define( "BeRocket_framework_file", __FILE__ );
22
+ }
23
+ if( ! defined('BeRocket_framework_dir') ) {
24
+ define( "BeRocket_framework_dir", __DIR__ );
25
+ }
26
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/functions.php');
27
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/updater.php');
28
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/widget.php');
29
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/admin_notices.php');
30
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/custom_post.php');
31
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/conditions.php');
32
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/plugin-variation.php');
33
+ require_once( plugin_dir_path( __FILE__ ) . 'includes/libraries.php');
34
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
35
+ load_plugin_textdomain('BeRocket_domain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/');
36
  class BeRocket_Framework {
37
+ public static $framework_version = '2.1';
38
  public static $settings_name = '';
39
+ public $addons;
40
+ public $libraries;
41
  private $post;
42
  private $cc;
43
  protected static $instance;
45
  protected $framework_data = array(
46
  'fontawesome_frontend' => false,
47
  );
48
+ protected $active_libraries = array();
49
  protected $global_settings = array(
50
  'fontawesome_frontend_disable',
51
  'fontawesome_frontend_version',
52
  );
53
+ public $check_lib = null;
54
+ protected $check_init_array = array();
55
  public static function getInstance()
56
  {
57
  if (null === static::$instance)
66
  {
67
  static::$instance = $child;
68
  }
69
+ $this->include_once_files();
70
  $this->cc = $child; // Child Class object
71
  do_action('BeRocket_framework_init_plugin', $this->cc->info);
72
  $this->plugin_version_capability = apply_filters('brfr_plugin_version_capability_'.$this->cc->info['plugin_name'], $this->plugin_version_capability, $this);
100
  if( empty($this->plugin_version_capability) || $this->plugin_version_capability < 10 ) {
101
  add_filter('berocket_admin_notices_subscribe_plugins', array($this, 'admin_notices_subscribe_plugins'));
102
  }
103
+ $this->libraries = new BeRocket_framework_libraries($this->active_libraries, $this->info, $this->values, $this->get_option());
104
  }
105
  do_action($this->info[ 'plugin_name' ].'_framework_construct', $this->cc);
106
+ add_filter('brfr_get_plugin_version_capability_'.$this->cc->info['plugin_name'], array($this, 'get_plugin_version_capability'));
107
+ if( is_admin() ) {
108
+ $this->plugin_version_check();
109
+ }
110
+ }
111
+ public function include_once_files() {
112
+ foreach (glob($this->info['plugin_dir'] . "/includes/*.php") as $filename)
113
+ {
114
+ include_once($filename);
115
+ }
116
+ }
117
+ public function init_check_lib() {
118
+ if( empty($this->check_lib) ) {
119
+ include_once('libraries/check_init.php');
120
+ $this->check_lib = new BeRocket_framework_check_init_lib($this->check_init_array);
121
+ }
122
+ }
123
+ public function get_plugin_version_capability($version) {
124
+ return $this->plugin_version_capability;
125
  }
126
  public function admin_notices_subscribe_plugins($plugins) {
127
  $plugins[] = $this->info['id'];
131
  wp_print_styles('font-awesome');
132
  }
133
  public function init_validation() {
134
+ $this->init_check_lib();
135
+ return $this->check_lib->check();
136
  }
137
 
138
  public function plugins_loaded() {
211
  $this->cc->info[ 'plugin' ] = plugin_basename( $this->cc->info[ 'plugin_file' ] );
212
  $this->cc->info[ 'name' ] = $info[ 'Name' ];
213
  $this->cc->info[ 'version_capability' ] = $this->plugin_version_capability;
214
+ if( ! empty($this->cc->values['free_slug']) ) {
215
+ $this->cc->info[ 'free_slug' ] = $this->cc->values['free_slug'];
216
+ }
217
 
218
  $plugins[] = $this->cc->info;
219
 
308
  }
309
  }"
310
  );
311
+ if ( function_exists('icl_object_id') ) {
312
+ include_once('libraries/wpml_compatibility.php');
313
+ }
314
  }
315
 
316
  public function enqueue_fontawesome($force = false) {
361
  require_once( plugin_dir_path( __FILE__ ) . 'includes/settings_fields.php');
362
  wp_register_script(
363
  'berocket_framework_admin',
364
+ plugins_url( 'assets/js/admin.js', __FILE__ ),
365
  array( 'jquery' ),
366
  $this->cc->info[ 'version' ]
367
  );
368
 
369
  wp_register_style(
370
  'berocket_framework_admin_style',
371
+ plugins_url( 'assets/css/admin.css', __FILE__ ),
372
  "",
373
  $this->cc->info[ 'version' ]
374
  );
375
 
376
  wp_register_style(
377
  'berocket_framework_global_admin_style',
378
+ plugins_url( 'assets/css/global-admin.css', __FILE__ ),
379
  "",
380
  $this->cc->info[ 'version' ]
381
  );
382
 
383
  wp_register_script(
384
  'berocket_widget-colorpicker',
385
+ plugins_url( 'assets/js/colpick.js', __FILE__ ),
386
  array( 'jquery' )
387
  );
388
 
389
  wp_register_style(
390
  'berocket_widget-colorpicker-style',
391
+ plugins_url( 'assets/css/colpick.css', __FILE__ )
392
  );
393
 
394
  wp_register_style(
395
  'berocket_font_awesome',
396
+ plugins_url( 'assets/css/font-awesome.min.css', __FILE__ )
397
  );
398
  wp_localize_script( 'berocket_framework_admin', 'berocket_framework_admin', array(
399
  'security' => wp_create_nonce("search-products")
529
 
530
  $page_menu .= '</li>';
531
 
532
+ if ( ($selected_tab && sanitize_title( $tab_name ) == $_GET['tab'] ) || ( ! $selected_tab && $is_first ) ) {
533
  if ( $tab_info['icon'] ) {
534
  $title .= '<span class="fa fa-' . $tab_info['icon'] . '"></span>';
535
  }
538
 
539
  $is_first = false;
540
  }
541
+ if( ! $setup_style['hide_save_button'] ) {
542
+ $page_menu .= '<li class="berocket_framework_sidebar_save_button"><input type="submit" class="button-primary button" value="' . __( 'Save Changes', 'BeRocket_domain' ) . '" /></li>';
543
+ }
544
  if( $setup_style['use_filters_hook'] ) {
545
  $page_menu = apply_filters('brfr_page_menu_' . $setup_style['name_for_filters'], $page_menu, $tabs_info);
546
  }
710
  echo "
711
  <header>
712
  <div class='br_logo_white'>
713
+ <a href='https://berocket.com/products/' title='BeRocket' target='_blank'><img src='" . ( plugins_url( 'assets/images/br_logo_white.png', __FILE__ ) ) . "' /></a>
714
  </div>
715
  <nav class='premium'>";
716
  if( ! $setup_style['hide_header_links'] ) {
760
  echo $page_content;
761
  echo '<div class="clear-both"></div>';
762
  if( ! $setup_style['hide_save_button'] ) {
763
+ echo '<input type="submit" class="berocket_framework_default_save_button button-primary button" value="' . __( 'Save Changes', 'BeRocket_domain' ) . '" />';
764
  echo '<div class="br_save_error"></div>';
765
  }
766
  if( ! $setup_style['hide_form'] ) {
960
 
961
  public static function register_font_awesome($type = 'all') {
962
  if( $type == 'all' || $type == 'fa4' ) {
963
+ wp_register_style( 'font-awesome', plugins_url( 'assets/css/font-awesome.min.css', __FILE__ ) );
964
  }
965
  if( $type == 'all' || $type == 'fa5' ) {
966
+ wp_register_style( 'font-awesome-5', plugins_url( 'assets/css/fontawesome5.min.css', __FILE__ ) );
967
  }
968
  if( $type == 'all' || $type == 'fa5c' ) {
969
+ wp_register_style( 'font-awesome-5-compat', plugins_url( 'assets/css/fontawesome4-compat.min.css', __FILE__ ) );
970
  }
971
  }
972
+ public function plugin_version_check() {
973
+ $plugins = get_option('BeRocket_Framework_plugins_version_check');
974
+ if( empty($plugins) || ! is_array($plugins) ) {
975
+ $plugins = array();
976
+ }
977
+ if( ! isset($plugins[$this->info['plugin_name']]) ) {
978
+ $plugins[$this->info['plugin_name']] = '0';
979
+ }
980
+ if( $this->info['version'] != $plugins[$this->info['plugin_name']] ) {
981
+ $this->update_version($plugins[$this->info['plugin_name']], $this->info['version']);
982
+ $plugins[$this->info['plugin_name']] = $this->info['version'];
983
+ }
984
+ update_option('BeRocket_Framework_plugins_version_check', $plugins);
985
+ }
986
+ public function update_version($previous, $current) {
987
+
988
+ }
989
  }
990
  }
berocket/framework_version.php ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
1
+ <?php
2
+ $framework_version_current = '2.1';
3
+ if( version_compare($framework_version_current, $framework_version, '>') ) {
4
+ $framework_version = $framework_version_current;
5
+ $framework_dir = __DIR__;
6
+ }
berocket/includes/admin_notices.php CHANGED
@@ -771,7 +771,7 @@ if( ! class_exists( 'berocket_admin_notices' ) ) {
771
  'html' => 'Subscribe to get latest BeRocket news and updates, plugin recommendations and configuration help, promotional email with discount codes.',
772
  'subscribe' => true,
773
  'image' => array(
774
- 'local' => plugin_dir_url( __FILE__ ) . '../images/ad_white_on_orange.png',
775
  ),
776
  ));
777
  }
@@ -825,7 +825,7 @@ if( ! class_exists( 'berocket_admin_notices_rate_stars' ) ) {
825
  data-prevent="0"
826
  data-function="berocket_rate_star_close_notice"
827
  data-later="0"
828
- data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
829
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
830
  target="_blank">'.__('Ok, you deserved it', 'BeRocket_domain').'</a>
831
  <span class="brfirts"> | </span>
@@ -967,7 +967,7 @@ if( ! class_exists( 'berocket_admin_notices_rate_stars' ) ) {
967
  data-prevent="0"
968
  data-later="0"
969
  data-function="berocket_rate_star_close_notice"
970
- data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
971
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
972
  target="_blank">'.__('Ok, you deserved it', 'BeRocket_domain').'</a>
973
  <p>'.__('Support the plugin by setting good feedback.<br>We really need this.', 'BeRocket_domain').'</p>
@@ -1070,9 +1070,9 @@ if( ! class_exists( 'berocket_admin_notices_rate_stars' ) ) {
1070
  add_action('admin_footer', array($this, 'wp_footer_js'));
1071
  $html .= '
1072
  <div class="berocket_feature_request berocket-feature-request berocket-feature-request-'.$plugin['id'].'">
1073
- <a class="berocket_feature_request_button" href="#feature_request"><img src="'.plugin_dir_url( __FILE__ ).'../images/Feature-request.png" alt="Feature Request"></a>
1074
  <div class="berocket_feature_request_form" style="display: none;">
1075
- <img src="'.plugin_dir_url( __FILE__ ).'../images/Feature-request-form-title.png" alt="Feature Request">
1076
  <form class="berocket_feature_request_inside">
1077
  <input name="brfeature_plugin" type="hidden" value="'.$plugin['id'].'">
1078
  <input name="brfeature_title" placeholder="'.__('Feature Title', 'BeRocket_domain').'">
@@ -1083,7 +1083,7 @@ if( ! class_exists( 'berocket_admin_notices_rate_stars' ) ) {
1083
  <div style="margin-bottom: 10px;">* <small>This form will be sended to <a target="_blank" href="https://berocket.com">berocket.com</a></small></div>
1084
  </div>
1085
  <div class="berocket_feature_request_thanks" style="display: none;">
1086
- <img src="'.plugin_dir_url( __FILE__ ).'../images/Thank-you.png">';
1087
  if( empty($disabled[$plugin_id]) || $disabled[$plugin_id]['time'] != 0 ) {
1088
  $html .= '
1089
  <div class="berocket_feature_request_rate berocket-rate-stars-plugin-feature-'.$plugin_id.'">
@@ -1095,7 +1095,7 @@ if( ! class_exists( 'berocket_admin_notices_rate_stars' ) ) {
1095
  data-prevent="0"
1096
  data-later="0"
1097
  data-function="berocket_rate_star_close_notice"
1098
- data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
1099
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
1100
  target="_blank">'.__('This plugin deserves 5 stars', 'BeRocket_domain').'</a></li>
1101
  <li><a class="berocket_rate_next_time brsecond"
771
  'html' => 'Subscribe to get latest BeRocket news and updates, plugin recommendations and configuration help, promotional email with discount codes.',
772
  'subscribe' => true,
773
  'image' => array(
774
+ 'local' => plugin_dir_url( __FILE__ ) . '../assets/images/ad_white_on_orange.png',
775
  ),
776
  ));
777
  }
825
  data-prevent="0"
826
  data-function="berocket_rate_star_close_notice"
827
  data-later="0"
828
+ data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
829
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
830
  target="_blank">'.__('Ok, you deserved it', 'BeRocket_domain').'</a>
831
  <span class="brfirts"> | </span>
967
  data-prevent="0"
968
  data-later="0"
969
  data-function="berocket_rate_star_close_notice"
970
+ data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
971
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
972
  target="_blank">'.__('Ok, you deserved it', 'BeRocket_domain').'</a>
973
  <p>'.__('Support the plugin by setting good feedback.<br>We really need this.', 'BeRocket_domain').'</p>
1070
  add_action('admin_footer', array($this, 'wp_footer_js'));
1071
  $html .= '
1072
  <div class="berocket_feature_request berocket-feature-request berocket-feature-request-'.$plugin['id'].'">
1073
+ <a class="berocket_feature_request_button" href="#feature_request"><img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Feature-request.png" alt="Feature Request"></a>
1074
  <div class="berocket_feature_request_form" style="display: none;">
1075
+ <img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Feature-request-form-title.png" alt="Feature Request">
1076
  <form class="berocket_feature_request_inside">
1077
  <input name="brfeature_plugin" type="hidden" value="'.$plugin['id'].'">
1078
  <input name="brfeature_title" placeholder="'.__('Feature Title', 'BeRocket_domain').'">
1083
  <div style="margin-bottom: 10px;">* <small>This form will be sended to <a target="_blank" href="https://berocket.com">berocket.com</a></small></div>
1084
  </div>
1085
  <div class="berocket_feature_request_thanks" style="display: none;">
1086
+ <img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Thank-you.png">';
1087
  if( empty($disabled[$plugin_id]) || $disabled[$plugin_id]['time'] != 0 ) {
1088
  $html .= '
1089
  <div class="berocket_feature_request_rate berocket-rate-stars-plugin-feature-'.$plugin_id.'">
1095
  data-prevent="0"
1096
  data-later="0"
1097
  data-function="berocket_rate_star_close_notice"
1098
+ data-thanks_html=\'<img src="'.plugin_dir_url( __FILE__ ).'../assets/images/Thank-you.png"><h3 class="berocket_thank_you_rate_us">'.__('Each good feedback is very important for plugin growth', 'BeRocket_domain').'</h3>\'
1099
  href="https://wordpress.org/support/plugin/'.$plugin['free_slug'].'/reviews/?filter=5#new-post"
1100
  target="_blank">'.__('This plugin deserves 5 stars', 'BeRocket_domain').'</a></li>
1101
  <li><a class="berocket_rate_next_time brsecond"
berocket/includes/conditions.php CHANGED
@@ -43,7 +43,7 @@ if( ! class_exists('BeRocket_conditions') ) {
43
  $value = array();
44
  }
45
  ob_start();
46
- include_once(plugin_dir_path( __DIR__ ) . "templates/conditions.php");
47
  $html = ob_get_clean();
48
  return $html;
49
  }
@@ -190,7 +190,10 @@ if( ! class_exists('BeRocket_conditions') ) {
190
  public static function condition_product_shippingclass($html, $name, $options) {
191
  $def_options = array('term' => '');
192
  $options = array_merge($def_options, $options);
193
- $terms = get_terms('product_shipping_class');
 
 
 
194
  $terms_i = array();
195
  if( ! empty($terms) ) {
196
  foreach($terms as $term) {
@@ -287,7 +290,7 @@ if( ! class_exists('BeRocket_conditions') ) {
287
  $options = array_merge($def_options, $options);
288
  $html .= static::supcondition($name, $options);
289
  $html .= '<label><input type="checkbox" name="' . $name . '[subcats]" value="1"' . (empty($options['subcats']) ? '' : ' checked') . '>' . __('Include subcategories', 'BeRocket_domain') . '</label>';
290
- $html .= '<div style="max-height:70px;overflow:auto;border:1px solid #ccc;padding: 5px;">';
291
  foreach($product_categories as $category) {
292
  $html .= '<div><label>
293
  <input type="checkbox" name="' . $name . '[category][]" value="' . $category->term_id . '"' . ( (! empty($options['category']) && is_array($options['category']) && in_array($category->term_id, $options['category']) ) ? ' checked' : '' ) . '>
@@ -332,6 +335,7 @@ if( ! class_exists('BeRocket_conditions') ) {
332
  $is_first_attr = ! $has_selected_attr;
333
  foreach($product_attributes as $attribute) {
334
  $html .= '<select class="br_attr_values br_attr_value_' . $attribute['name'] . '" name="' . $name . '[values][' . $attribute['name'] . ']"' . ($is_first_attr || $attribute['name'] == $options['attribute'] ? '' : ' style="display:none;"') . '>';
 
335
  foreach($attribute['value'] as $term_id => $term_name) {
336
  $html .= '<option value="' . $term_id . '"' . (! empty($options['values'][$attribute['name']]) && $options['values'][$attribute['name']] == $term_id ? ' selected' : '') . '>' . $term_name . '</option>';
337
  }
@@ -571,9 +575,10 @@ if( ! class_exists('BeRocket_conditions') ) {
571
 
572
  public static function check_condition_product_attribute($show, $condition, $additional) {
573
  $terms = get_the_terms( $additional['product_id'], $condition['attribute'] );
 
574
  if( is_array( $terms ) ) {
575
  foreach( $terms as $term ) {
576
- if( $term->term_id == $condition['values'][$condition['attribute']]) {
577
  $show = true;
578
  break;
579
  }
@@ -704,45 +709,7 @@ if( ! class_exists('BeRocket_conditions') ) {
704
  }
705
 
706
  public static function condition_page_woo_attribute($html, $name, $options) {
707
- $def_options = array('attribute' => '');
708
- $options = array_merge($def_options, $options);
709
- $attributes = get_object_taxonomies( 'product', 'objects');
710
- $product_attributes = array();
711
- foreach( $attributes as $attribute ) {
712
- $attribute_i = array();
713
- $attribute_i['name'] = $attribute->name;
714
- $attribute_i['label'] = $attribute->label;
715
- $attribute_i['value'] = array();
716
- $terms = get_terms(array(
717
- 'taxonomy' => $attribute->name,
718
- 'hide_empty' => false,
719
- ));
720
- foreach($terms as $term) {
721
- $attribute_i['value'][$term->term_id] = $term->name;
722
- }
723
- $product_attributes[] = $attribute_i;
724
- }
725
- $html .= br_supcondition_equal($name, $options);
726
- $html .= '<label>' . __('Select attribute', 'BeRocket_domain') . '</label>';
727
- $html .= '<select name="' . $name . '[attribute]" class="br_cond_attr_select">';
728
- $has_selected_attr = false;
729
- foreach($product_attributes as $attribute) {
730
- $html .= '<option value="' . $attribute['name'] . '"' . ( isset($options['attribute']) && $attribute['name'] == $options['attribute'] ? ' selected' : '' ) . '>' . $attribute['label'] . '</option>';
731
- if( $attribute['name'] == $options['attribute'] ) {
732
- $has_selected_attr = true;
733
- }
734
- }
735
- $html .= '</select>';
736
- $is_first_attr = ! $has_selected_attr;
737
- foreach($product_attributes as $attribute) {
738
- $html .= '<select class="br_attr_values br_attr_value_' . $attribute['name'] . '" name="' . $name . '[values][' . $attribute['name'] . ']"' . ($is_first_attr || $attribute['name'] == $options['attribute'] ? '' : ' style="display:none;"') . '>';
739
- foreach($attribute['value'] as $term_id => $term_name) {
740
- $html .= '<option value="' . $term_id . '"' . (! empty($options['values'][$attribute['name']]) && $options['values'][$attribute['name']] == $term_id ? ' selected' : '') . '>' . $term_name . '</option>';
741
- }
742
- $html .= '</select>';
743
- $is_first_attr = false;
744
- }
745
- return $html;
746
  }
747
 
748
  public static function condition_page_woo_search($html, $name, $options) {
@@ -753,22 +720,7 @@ if( ! class_exists('BeRocket_conditions') ) {
753
  }
754
 
755
  public static function condition_page_woo_category($html, $name, $options) {
756
- $product_categories = get_terms( 'product_cat' );
757
- if( is_array($product_categories) && count($product_categories) > 0 ) {
758
- $def_options = array('category' => '');
759
- $options = array_merge($def_options, $options);
760
- $html .= br_supcondition_equal($name, $options);
761
- $html .= '<label><input type="checkbox" name="' . $name . '[subcats]" value="1"' . (empty($options['subcats']) ? '' : ' checked') . '>' . __('Include subcategories', 'BeRocket_AJAX_domain') . '</label>';
762
- $html .= '<div style="max-height:150px;overflow:auto;border:1px solid #ccc;padding: 5px;">';
763
- foreach($product_categories as $category) {
764
- $html .= '<div><label>
765
- <input type="checkbox" name="' . $name . '[category][]" value="' . $category->term_id . '"' . ( (! empty($options['category']) && is_array($options['category']) && in_array($category->term_id, $options['category']) ) ? ' checked' : '' ) . '>
766
- ' . $category->name . '
767
- </label></div>';
768
- }
769
- $html .= '</div>';
770
- }
771
- return $html;
772
  }
773
 
774
  //CHECK PAGE CONDITIONS
43
  $value = array();
44
  }
45
  ob_start();
46
+ include(plugin_dir_path( __DIR__ ) . "templates/conditions.php");
47
  $html = ob_get_clean();
48
  return $html;
49
  }
190
  public static function condition_product_shippingclass($html, $name, $options) {
191
  $def_options = array('term' => '');
192
  $options = array_merge($def_options, $options);
193
+ $terms = get_terms(array(
194
+ 'taxonomy' => 'product_shipping_class',
195
+ 'hide_empty' => false,
196
+ ));
197
  $terms_i = array();
198
  if( ! empty($terms) ) {
199
  foreach($terms as $term) {
290
  $options = array_merge($def_options, $options);
291
  $html .= static::supcondition($name, $options);
292
  $html .= '<label><input type="checkbox" name="' . $name . '[subcats]" value="1"' . (empty($options['subcats']) ? '' : ' checked') . '>' . __('Include subcategories', 'BeRocket_domain') . '</label>';
293
+ $html .= '<div style="max-height:150px;overflow:auto;border:1px solid #ccc;padding: 5px;">';
294
  foreach($product_categories as $category) {
295
  $html .= '<div><label>
296
  <input type="checkbox" name="' . $name . '[category][]" value="' . $category->term_id . '"' . ( (! empty($options['category']) && is_array($options['category']) && in_array($category->term_id, $options['category']) ) ? ' checked' : '' ) . '>
335
  $is_first_attr = ! $has_selected_attr;
336
  foreach($product_attributes as $attribute) {
337
  $html .= '<select class="br_attr_values br_attr_value_' . $attribute['name'] . '" name="' . $name . '[values][' . $attribute['name'] . ']"' . ($is_first_attr || $attribute['name'] == $options['attribute'] ? '' : ' style="display:none;"') . '>';
338
+ $html .= '<option value="">==Any==</option>';
339
  foreach($attribute['value'] as $term_id => $term_name) {
340
  $html .= '<option value="' . $term_id . '"' . (! empty($options['values'][$attribute['name']]) && $options['values'][$attribute['name']] == $term_id ? ' selected' : '') . '>' . $term_name . '</option>';
341
  }
575
 
576
  public static function check_condition_product_attribute($show, $condition, $additional) {
577
  $terms = get_the_terms( $additional['product_id'], $condition['attribute'] );
578
+ $show = false;
579
  if( is_array( $terms ) ) {
580
  foreach( $terms as $term ) {
581
+ if( $term->term_id == $condition['values'][$condition['attribute']] || $condition['values'][$condition['attribute']] === '') {
582
  $show = true;
583
  break;
584
  }
709
  }
710
 
711
  public static function condition_page_woo_attribute($html, $name, $options) {
712
+ return self::condition_product_attribute($html, $name, $options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
713
  }
714
 
715
  public static function condition_page_woo_search($html, $name, $options) {
720
  }
721
 
722
  public static function condition_page_woo_category($html, $name, $options) {
723
+ return self::condition_product_category($html, $name, $options);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
724
  }
725
 
726
  //CHECK PAGE CONDITIONS
berocket/includes/custom_post.php CHANGED
@@ -33,6 +33,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
33
  public $meta_boxes = array();
34
  public $default_settings = array();
35
  public $post_settings, $post_name;
 
36
  protected static $instance;
37
 
38
  public static function getInstance() {
@@ -48,8 +49,22 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
48
  {
49
  static::$instance = $this;
50
  }
 
 
 
51
  add_filter( 'init', array( $this, 'init' ) );
52
- add_filter( 'admin_init', array( $this, 'admin_init' ) );
 
 
 
 
 
 
 
 
 
 
 
53
  }
54
 
55
  function init() {
@@ -58,7 +73,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
58
  }
59
 
60
  public function get_custom_posts($args = array()) {
61
- $args = array_merge(array(
62
  'posts_per_page' => -1,
63
  'offset' => 0,
64
  'category' => '',
@@ -74,7 +89,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
74
  'post_status' => 'publish',
75
  'fields' => 'ids',
76
  'suppress_filters' => false
77
- ), $args);
78
  $posts_array = new WP_Query($args);
79
  $posts_array = $posts_array->posts;
80
  return $posts_array;
@@ -88,6 +103,11 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
88
  }
89
 
90
  public function admin_init() {
 
 
 
 
 
91
  add_filter( 'bulk_actions-edit-'.$this->post_name, array( $this, 'bulk_actions_edit' ) );
92
  add_filter( 'views_edit-'.$this->post_name, array( $this, 'views_edit' ) );
93
  add_filter( 'manage_edit-'.$this->post_name.'_columns', array( $this, 'manage_edit_columns' ) );
@@ -98,12 +118,13 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
98
  add_filter( 'list_table_primary_column', array( $this, 'list_table_primary_column' ), 10, 2 );
99
 
100
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
 
101
  }
102
 
103
  public function admin_enqueue_scripts() {
104
  global $post;
105
  if ( ! empty( $post ) and $post->post_type == $this->post_name ) {
106
- wp_register_style( 'font-awesome', plugins_url( '../css/font-awesome.min.css', __FILE__ ) );
107
  }
108
  }
109
 
@@ -137,6 +158,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
137
  $columns = array();
138
  $columns["cb"] = '<input type="checkbox" />';
139
  $columns["name"] = __( "Name", 'BeRocket_domain' );
 
140
  return $columns;
141
  }
142
 
@@ -152,6 +174,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
152
 
153
  break;
154
  }
 
155
  }
156
 
157
  public function add_meta_boxes () {
@@ -261,12 +284,15 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
261
  }
262
 
263
  public function wc_save_product( $post_id, $post ) {
 
264
  if ( ! $this->wc_save_check( $post_id, $post ) ) {
265
  return false;
266
  }
267
  $this->wc_save_product_without_check($post_id, $post);
 
268
  }
269
  public function wc_save_product_without_check( $post_id, $post ) {
 
270
  if ( isset( $_POST[$this->post_name] ) ) {
271
  $post_data = berocket_sanitize_array($_POST[$this->post_name]);
272
 
@@ -288,6 +314,7 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
288
  do_action('berocket_copy_from_custom_post', $this->post_name, $post_id, $post);
289
  }
290
  }
 
291
  }
292
 
293
  public function get_option( $post_id ) {
@@ -316,5 +343,69 @@ if ( ! class_exists('BeRocket_custom_post_class') ) {
316
  $this->wc_save_product_without_check($post_id, $post);
317
  return $post_id;
318
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
319
  }
320
  }
33
  public $meta_boxes = array();
34
  public $default_settings = array();
35
  public $post_settings, $post_name;
36
+ public $post_type_parameters = array();
37
  protected static $instance;
38
 
39
  public static function getInstance() {
49
  {
50
  static::$instance = $this;
51
  }
52
+ $this->post_type_parameters = array_merge(array(
53
+ 'sortable' => false
54
+ ), $this->post_type_parameters);
55
  add_filter( 'init', array( $this, 'init' ) );
56
+ add_filter( 'admin_init', array( $this, 'admin_init' ), 15 );
57
+ add_filter( 'wp_insert_post_data', array( $this, 'wp_insert_post_data' ), 30, 2 );
58
+ if( $this->post_type_parameters['sortable'] ) {
59
+ if( is_admin() ) {
60
+ add_action('berocket_custom_post_'.$this->post_name.'_admin_init', array($this, 'sortable_admin_init'));
61
+ add_action('berocket_custom_post_'.$this->post_name.'_wc_save_product_before', array($this, 'sortable_wc_save_product_before'), 10, 2);
62
+ add_action('berocket_custom_post_'.$this->post_name.'_wc_save_product_without_check_before', array($this, 'sortable_wc_save_product_before'), 10, 2);
63
+ add_action('berocket_custom_post_'.$this->post_name.'_columns_replace', array($this, 'sortable_columns_replace'), 10, 1);
64
+ add_filter('berocket_custom_post_'.$this->post_name.'_manage_edit_columns', array($this, 'sortable_manage_edit_columns'));
65
+ }
66
+ add_filter('berocket_custom_post_'.$this->post_name.'_get_custom_posts_args_default', array($this, 'sortable_get_custom_post'));
67
+ }
68
  }
69
 
70
  function init() {
73
  }
74
 
75
  public function get_custom_posts($args = array()) {
76
+ $args = array_merge(apply_filters( 'berocket_custom_post_'.$this->post_name.'_get_custom_posts_args_default', array(
77
  'posts_per_page' => -1,
78
  'offset' => 0,
79
  'category' => '',
89
  'post_status' => 'publish',
90
  'fields' => 'ids',
91
  'suppress_filters' => false
92
+ ) ), $args);
93
  $posts_array = new WP_Query($args);
94
  $posts_array = $posts_array->posts;
95
  return $posts_array;
103
  }
104
 
105
  public function admin_init() {
106
+ global $pagenow;
107
+ if( 'edit.php' == $pagenow && isset( $_GET['post_type'] ) && $_GET['post_type'] == $this->post_name ){
108
+ wp_enqueue_script( 'berocket_framework_admin' );
109
+ wp_enqueue_style( 'berocket_framework_admin_style' );
110
+ }
111
  add_filter( 'bulk_actions-edit-'.$this->post_name, array( $this, 'bulk_actions_edit' ) );
112
  add_filter( 'views_edit-'.$this->post_name, array( $this, 'views_edit' ) );
113
  add_filter( 'manage_edit-'.$this->post_name.'_columns', array( $this, 'manage_edit_columns' ) );
118
  add_filter( 'list_table_primary_column', array( $this, 'list_table_primary_column' ), 10, 2 );
119
 
120
  add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
121
+ do_action( 'berocket_custom_post_'.$this->post_name.'_admin_init', $this->post_type_parameters);
122
  }
123
 
124
  public function admin_enqueue_scripts() {
125
  global $post;
126
  if ( ! empty( $post ) and $post->post_type == $this->post_name ) {
127
+ wp_register_style( 'font-awesome', plugins_url( '../assets/css/font-awesome.min.css', __FILE__ ) );
128
  }
129
  }
130
 
158
  $columns = array();
159
  $columns["cb"] = '<input type="checkbox" />';
160
  $columns["name"] = __( "Name", 'BeRocket_domain' );
161
+ $columns = apply_filters( 'berocket_custom_post_'.$this->post_name.'_manage_edit_columns', $columns, $this->post_type_parameters);
162
  return $columns;
163
  }
164
 
174
 
175
  break;
176
  }
177
+ do_action( 'berocket_custom_post_'.$this->post_name.'_columns_replace', $column, $this->post_type_parameters);
178
  }
179
 
180
  public function add_meta_boxes () {
284
  }
285
 
286
  public function wc_save_product( $post_id, $post ) {
287
+ do_action( 'berocket_custom_post_'.$this->post_name.'_wc_save_product_before', $post_id, $post, $this->post_type_parameters);
288
  if ( ! $this->wc_save_check( $post_id, $post ) ) {
289
  return false;
290
  }
291
  $this->wc_save_product_without_check($post_id, $post);
292
+ do_action( 'berocket_custom_post_'.$this->post_name.'_wc_save_product_after', $post_id, $post, $this->post_type_parameters);
293
  }
294
  public function wc_save_product_without_check( $post_id, $post ) {
295
+ do_action( 'berocket_custom_post_'.$this->post_name.'_wc_save_product_without_check_before', $post_id, $post, $this->post_type_parameters);
296
  if ( isset( $_POST[$this->post_name] ) ) {
297
  $post_data = berocket_sanitize_array($_POST[$this->post_name]);
298
 
314
  do_action('berocket_copy_from_custom_post', $this->post_name, $post_id, $post);
315
  }
316
  }
317
+ do_action( 'berocket_custom_post_'.$this->post_name.'_wc_save_product_without_check_after', $post_id, $post, $this->post_type_parameters);
318
  }
319
 
320
  public function get_option( $post_id ) {
343
  $this->wc_save_product_without_check($post_id, $post);
344
  return $post_id;
345
  }
346
+ public function wp_insert_post_data($data, $post) {
347
+ if ( ! isset($post['ID']) || ! $post['ID'] ) return $data;
348
+ if ( $post['post_type'] !== $this->post_name ) return $data;
349
+ if( ! in_array($data['post_status'], array('publish', 'trash')) ) {
350
+ $data['post_status'] = 'publish';
351
+ }
352
+ return $data;
353
+ }
354
+ //SORTABLE CUSTOM POST
355
+ public function sortable_admin_init() {
356
+ add_action( 'pre_get_posts', array($this, 'sortable_get_posts') );
357
+ if( ! empty($_POST['braction']) && $_POST['braction'] == 'berocket_custom_post_sortable' ) {
358
+ $this->sortable_change();
359
+ }
360
+ }
361
+ public function sortable_change() {
362
+ if( ! empty($_POST['BRsortable_id']) && isset($_POST['BRorder']) && current_user_can('edit_post', $_POST['BRsortable_id']) ) {
363
+ update_post_meta($_POST['BRsortable_id'], 'berocket_post_order', $_POST['BRorder']);
364
+ }
365
+ }
366
+ public function sortable_get_posts( $query ){
367
+ global $pagenow;
368
+ if( 'edit.php' == $pagenow && isset( $_GET['post_type'] ) && $_GET['post_type'] == $this->post_name ){
369
+ $query->set( 'meta_key', 'berocket_post_order' );
370
+ $query->set( 'orderby', 'meta_value_num' );
371
+ $query->set( 'order', 'ASC' );
372
+ }
373
+ }
374
+ public function sortable_get_custom_post($args) {
375
+ $args = array_merge($args, array(
376
+ 'meta_key' => 'berocket_post_order',
377
+ 'orderby' => 'meta_value_num',
378
+ 'order' => 'ASC',
379
+ ));
380
+ return $args;
381
+ }
382
+ public function sortable_wc_save_product_before( $post_id, $post ) {
383
+ $order_position = get_post_meta( $post_id, 'berocket_post_order', true );
384
+ $order_position = (int)$order_position;
385
+ update_post_meta( $post_id, 'berocket_post_order', $order_position );
386
+ }
387
+ public function sortable_columns_replace($column) {
388
+ global $post;
389
+ $post_id = $post->ID;
390
+ $order_position = get_post_meta( $post_id, 'berocket_post_order', true );
391
+ switch ( $column ) {
392
+ case "berocket_sortable":
393
+ echo $this->sortable_html_position($post_id, $order_position);
394
+ break;
395
+ }
396
+ }
397
+ public function sortable_html_position($post_id, $order) {
398
+ $html = '';
399
+ if( $order > 0 ) {
400
+ $html .= '<a href="#order-up" class="berocket_post_set_new_sortable" data-post_id="'.$post_id.'" data-order="'.($order - 1).'"><i class="fa fa-arrow-up"></i></a>';
401
+ }
402
+ $html .= '<span class="berocket_post_set_new_sortable_input"><input type="number" min="0" value="'.$order.'"><a class="berocket_post_set_new_sortable_set fa fa-arrow-circle-right" data-post_id="'.$post_id.'" href="#order-set"></a></span>';
403
+ $html .= '<a href="#order-up" class="berocket_post_set_new_sortable" data-post_id="'.$post_id.'" data-order="'.($order + 1).'"><i class="fa fa-arrow-down"></i></a>';
404
+ return $html;
405
+ }
406
+ public function sortable_manage_edit_columns($columns) {
407
+ $columns["berocket_sortable"] = __( "Order", 'BeRocket_domain' );
408
+ return $columns;
409
+ }
410
  }
411
  }
berocket/includes/libraries.php ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_framework_libraries') ) {
3
+ class BeRocket_framework_libraries {
4
+ public $libraries_name = array(
5
+ 'addons' => 'addons/addons.php',
6
+ 'templates' => 'templates/templates.php',
7
+ 'popup' => 'popup.php',
8
+ 'tooltip' => 'tippy.php',
9
+ 'tippy' => 'tippy.php',
10
+ );
11
+ public $info, $values, $options;
12
+ public $libraries_class = array();
13
+ function __construct($libraries, $info, $values, $options) {
14
+ $this->info = $info;
15
+ $this->values = $values;
16
+ $this->options = $options;
17
+ foreach($libraries as $library) {
18
+ $library_file = (isset($this->libraries_name[$library]) ? $this->libraries_name[$library] : $library);
19
+ if( file_exists(BeRocket_framework_dir.'/libraries/'.$library_file) ) {
20
+ include_once(BeRocket_framework_dir.'/libraries/'.$library_file);
21
+ if( method_exists($this, $library) ) {
22
+ $this->libraries_class[$library] = $this->$library();
23
+ }
24
+ }
25
+ }
26
+ }
27
+ function addons() {
28
+ return new BeRocket_framework_addons($this->info, $this->values, $this->options);
29
+ }
30
+ function templates() {
31
+ return new BeRocket_framework_templates($this->info, $this->values, $this->options);
32
+ }
33
+ }
34
+ }
berocket/includes/updater.php CHANGED
@@ -633,7 +633,7 @@ if ( ! class_exists( 'BeRocket_updater' ) ) {
633
  $active_plugin[ $plugin[ 'id' ] ] = true;
634
  if ( version_compare( $plugin[ 'version' ], $version, '<' ) && ! empty($value) ) {
635
  $value->checked[ $plugin[ 'plugin' ] ] = $version;
636
- $val = (object) array(
637
  'id' => 'br_' . $plugin[ 'id' ],
638
  'new_version' => $version,
639
  'package' => BeRocket_update_path . 'main/update_product/' . $plugin[ 'id' ] . '/' . $key,
@@ -641,6 +641,24 @@ if ( ! class_exists( 'BeRocket_updater' ) ) {
641
  'plugin' => $plugin[ 'plugin' ],
642
  'slug' => $plugin[ 'slug' ]
643
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
644
  $value->response[ $plugin[ 'plugin' ] ] = $val;
645
  $responsed = true;
646
  }
633
  $active_plugin[ $plugin[ 'id' ] ] = true;
634
  if ( version_compare( $plugin[ 'version' ], $version, '<' ) && ! empty($value) ) {
635
  $value->checked[ $plugin[ 'plugin' ] ] = $version;
636
+ $val = array(
637
  'id' => 'br_' . $plugin[ 'id' ],
638
  'new_version' => $version,
639
  'package' => BeRocket_update_path . 'main/update_product/' . $plugin[ 'id' ] . '/' . $key,
641
  'plugin' => $plugin[ 'plugin' ],
642
  'slug' => $plugin[ 'slug' ]
643
  );
644
+
645
+ if( ! empty($plugin['free_slug']) ) {
646
+ include_once( ABSPATH . 'wp-admin/includes/plugin-install.php' );
647
+ $api = plugins_api( 'plugin_information', array(
648
+ 'slug' => wp_unslash( $plugin['free_slug'] ),
649
+ 'is_ssl' => is_ssl(),
650
+ 'fields' => array(
651
+ 'banners' => true,
652
+ 'reviews' => false,
653
+ 'downloaded' => false,
654
+ 'active_installs' => true,
655
+ 'icons' => true
656
+ )
657
+ ) );
658
+ $api = (array)$api;
659
+ $val = array_merge($api, $val);
660
+ }
661
+ $val = (object)$val;
662
  $value->response[ $plugin[ 'plugin' ] ] = $val;
663
  $responsed = true;
664
  }
berocket/libraries/addons/addon_lib.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_framework_addon_lib') ) {
3
+ class BeRocket_framework_addon_lib {
4
+ public $addon_file = '';
5
+ public $plugin_name = '';
6
+ public $php_file_name = '';
7
+ public $absolute_file = '';
8
+ function __construct() {
9
+ if(empty($this->addon_file)) return;
10
+ $this->absolute_file = $this->addon_file;
11
+ $this->addon_file = explode('addons', $this->addon_file);
12
+ $this->addon_file = array_pop($this->addon_file);
13
+ $active_addons = apply_filters('berocket_addons_active_'.$this->plugin_name, array());
14
+ add_filter('berocket_addons_info_'.$this->plugin_name, array($this, 'addon_info'));
15
+ if( in_array($this->addon_file, $active_addons) ) {
16
+ $this->check_init();
17
+ }
18
+ }
19
+ function check_init() {
20
+ if ( ! empty( $this->php_file_name ) && file_exists( dirname( $this->absolute_file ) . '/' . $this->php_file_name . '.php' ) ) {
21
+ $this->init_active();
22
+ }
23
+ }
24
+ function init_active() {
25
+ include_once(dirname( $this->absolute_file ) . '/' . $this->php_file_name . '.php');
26
+ }
27
+ function get_addon_data() {
28
+ return array(
29
+ 'addon_file' => $this->addon_file,
30
+ 'addon_name' => 'Addon',
31
+ 'image' => plugins_url('/default.png', __FILE__),
32
+ );
33
+ }
34
+ function addon_info($addon_info) {
35
+ $addon_info[] = $this->get_addon_data();
36
+ return $addon_info;
37
+ }
38
+ }
39
+ }
berocket/libraries/addons/addons.php ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_framework_addons') ) {
3
+ class BeRocket_framework_addons {
4
+ public $info;
5
+ public $values;
6
+ public $options;
7
+ public $hook_name;
8
+ function __construct($info, $values, $options) {
9
+ include_once('addon_lib.php');
10
+ $this->info = $info;
11
+ $this->values = $values;
12
+ $this->options = $options;
13
+ $this->hook_name = $info['plugin_name'];
14
+ add_filter('berocket_addons_active_'.$this->hook_name, array($this, 'active_addons'));
15
+ add_filter('brfr_'.$this->hook_name.'_addons', array($this, 'section'), 10, 4);
16
+ add_filter('berocket_addons_info_'.$this->hook_name, array($this, 'sort_deprecated_addons'), 9001, 1);
17
+ add_filter('berocket_addons_info_'.$this->hook_name, array($this, 'sort_paid_addons'), 9000, 1);
18
+ $this->load_addons();
19
+
20
+ new BeRocket_framework_libraries(array('tooltip'), $info, $values, $options);
21
+
22
+ add_action( 'admin_init', array( $this, 'admin_init' ) );
23
+ }
24
+
25
+ function admin_init() {
26
+ add_filter( 'BeRocket_style_addon_library_additional_html_' . $this->hook_name, array(
27
+ $this,
28
+ 'paid_only_sign'
29
+ ), 10, 2 );
30
+ }
31
+ function load_addons() {
32
+ if( ! empty($this->options['addons']) && is_array($this->options['addons']) ) {
33
+ foreach($this->options['addons'] as $addon) {
34
+ if( file_exists($this->info['plugin_dir'].'/addons'.$addon) ) {
35
+ include_once($this->info['plugin_dir'].'/addons'.$addon);
36
+ }
37
+ }
38
+ }
39
+ }
40
+ function get_addons() {
41
+ $addon_files = array();
42
+ if( is_dir($this->info['plugin_dir'].'/addons/') ) {
43
+ foreach (glob($this->info['plugin_dir'].'/addons/*.php') as $filename) {
44
+ $addon_files[] = str_replace($this->info['plugin_dir'].'/addons', '', $filename);
45
+ }
46
+ foreach(glob($this->info['plugin_dir'].'/addons/*', GLOB_ONLYDIR ) as $path) {
47
+ $dir_name = basename($path);
48
+ $filename = $path.'/'.$dir_name.'.php';
49
+ if( file_exists($filename) ) {
50
+ $addon_files[] = str_replace($this->info['plugin_dir'].'/addons', '', $filename);
51
+ }
52
+ }
53
+ }
54
+ return $addon_files;
55
+ }
56
+ function get_addons_info() {
57
+ $addons = $this->get_addons();
58
+ foreach($addons as $addon) {
59
+ if( file_exists($this->info['plugin_dir'].'/addons/'.$addon) ) {
60
+ include_once($this->info['plugin_dir'].'/addons/'.$addon);
61
+ }
62
+ }
63
+ $addon_info = apply_filters('berocket_addons_info_'.$this->hook_name, array());
64
+ return $addon_info;
65
+ }
66
+ function sort_paid_addons($addon_info) {
67
+ $plugin_version_capability = apply_filters( 'brfr_get_plugin_version_capability_' . $this->hook_name, 0 );
68
+ if ( empty( $plugin_version_capability ) || $plugin_version_capability < 10 ) {
69
+ $sorted_addon_info = array();
70
+ foreach ( $addon_info as $addon_i => $addon ) {
71
+ if ( ! empty( $addon[ 'paid' ] ) ) {
72
+ $sorted_addon_info[] = $addon;
73
+ unset( $addon_info[ $addon_i ] );
74
+ }
75
+ }
76
+
77
+ $addon_info = array_merge( $addon_info, $sorted_addon_info );
78
+ }
79
+ return $addon_info;
80
+ }
81
+ function sort_deprecated_addons($addon_info) {
82
+ $sorted_addon_info = array();
83
+ foreach($addon_info as $addon_i => $addon) {
84
+ if( ! empty($addon['deprecated']) ) {
85
+ $sorted_addon_info[] = $addon;
86
+ unset($addon_info[$addon_i]);
87
+ }
88
+ }
89
+ $addon_info = array_merge($addon_info, $sorted_addon_info);
90
+ $addon_info = array_values($addon_info);
91
+ return $addon_info;
92
+ }
93
+ function active_addons($addons = array()) {
94
+ if( ! empty($this->options['addons']) && is_array($this->options['addons']) ) {
95
+ $addons = array_merge($addons, $this->options['addons']);
96
+ }
97
+ return $addons;
98
+ }
99
+ function section($html, $item, $options, $settings_name) {
100
+ $addons = $this->get_addons();
101
+ $addons_info = $this->get_addons_info();
102
+ $html .= '<td colspan="2" class="berocket_addons_list">';
103
+ $elements = array(
104
+ 'active' => array(
105
+ 'title' => __( 'Active Addons', 'BeRocket_domain' ),
106
+ 'html' => array()
107
+ ),
108
+ 'inactive' => array(
109
+ 'title' => __( 'Inactive Addons', 'BeRocket_domain' ),
110
+ 'html' => array()
111
+ )
112
+ );
113
+ foreach($addons_info as $addon_i => $addon_info) {
114
+ $checked = isset($options['addons']) && is_array($options['addons']) && in_array($addon_info['addon_file'], $options['addons']);
115
+ $html_array = array(
116
+ 'open_label' => '<label class="berocket_addon_label" id="berocket_addon_label_'.$addon_i.'">',
117
+ 'input' => '<input autocomplete="off" class="berocket_addon_is_active" name="'.$settings_name.'[addons][]" type="checkbox" value="'.$addon_info['addon_file'].'"'.($checked ? ' checked' : '').'>',
118
+ 'open_addon_block' => '<span class="berocket_addon_block">',
119
+ 'active' => '<span class="berocket_addon_active"><i class="fa fa-check"></i></span>',
120
+ 'image' => '<img src="'.$addon_info['image'].'">',
121
+ 'addon_name' => '<span class="berocket_addon_name">'.$addon_info['addon_name'].'</span>',
122
+ 'close_addon_block' => '</span>',
123
+ 'close_label' => '</label>',
124
+ );
125
+ $html_array = apply_filters( 'BeRocket_style_addon_library_additional_html_' . $this->hook_name, $html_array, $addon_info, $item, $options, $settings_name );
126
+ $elements[($checked ? 'active' : 'inactive')]['html'][$addon_info['addon_file']] = implode($html_array);
127
+ if( ! empty($addon_info['tooltip']) ) {
128
+ BeRocket_tooltip_display::add_tooltip(array('boundary' => 'window', 'arrow' => true, 'interactive' => true, 'placement' => 'top'), $addon_info['tooltip'], '#berocket_addon_label_'.$addon_i);
129
+ }
130
+ }
131
+ foreach($elements as $element) {
132
+ if( count($element['html']) ) {
133
+ $html .= '<div>';
134
+ if( ! empty($element['title']) ) {
135
+ $html .= '<h3>'.$element['title'].'</h3>';
136
+ }
137
+ $html .= implode($element['html']);
138
+ $html .= '</div>';
139
+ }
140
+ }
141
+ $html .= '</td>';
142
+ return $html;
143
+ }
144
+
145
+ function paid_only_sign( $html_array, $addon_info ) {
146
+ $plugin_version_capability = apply_filters( 'brfr_get_plugin_version_capability_' . $this->hook_name, 0 );
147
+
148
+ if ( ! empty( $addon_info[ 'paid' ] ) && ( empty( $plugin_version_capability ) || $plugin_version_capability < 10 ) ) {
149
+ $html = '<i class="berocket_addon_paid_sign fa fa-lock"></i>';
150
+ $html .= '<div class="berocket_addon_paid_get"><a target="_blank" href="https://berocket.com/product/' . $this->values[ 'premium_slug' ] . '"><span>
151
+ ' . __( 'Go Premium', 'BeRocket_domain' ) . '
152
+ </span></a></div>';
153
+ $html_array = berocket_insert_to_array($html_array, 'close_addon_block', array('paid_only' => $html));
154
+ }
155
+
156
+ return $html_array;
157
+ }
158
+ }
159
+ }
berocket/libraries/addons/default.png ADDED
Binary file
berocket/libraries/check_init.php ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_framework_check_init_lib') ) {
3
+ class BeRocket_framework_check_init_lib {
4
+ public $check_array = array();
5
+ public $notices = array();
6
+ public $check_result = array('exist' => false, 'result' => true);
7
+ function __construct($check_array = array()) {
8
+ $this->check_array = $check_array;
9
+ add_filter( 'berocket_display_additional_notices', array(
10
+ $this,
11
+ 'framework_notice'
12
+ ) );
13
+ }
14
+ function check() {
15
+ $result = true;
16
+ if( ! empty($this->check_result['exist']) ) {
17
+ return $this->check_result['result'];
18
+ }
19
+ if( is_array($this->check_array) && count($this->check_array) ) {
20
+ $result = false;
21
+ foreach($this->check_array as $check_or) {
22
+ $break = false;
23
+ if( isset($check_or['check']) ) {
24
+ $check_or = $this->check_array;
25
+ $break = true;
26
+ }
27
+
28
+ if( is_array($check_or) ) {
29
+ $result_and = true;
30
+ foreach($check_or as $check_and) {
31
+ if( isset($check_and['check']) ) {
32
+ if( method_exists($this, 'check_'.$check_and['check']) ) {
33
+ $result_and = $result_and && $this->{'check_'.$check_and['check']}( (isset($check_and['data']) ? $check_and['data'] : array()) );
34
+ }
35
+ $result_and = apply_filters('BeRocket_framework_check_init_'.$check_and['check'], $result_and, $check_and);
36
+ }
37
+ }
38
+ $result = $result_and;
39
+ if( $result_and ) {
40
+ $break = true;
41
+ }
42
+ }
43
+
44
+ if( $break ) break;
45
+ }
46
+ }
47
+ $this->check_result = array('exist' => true, 'result' => $result);
48
+ return $result;
49
+ }
50
+ function check_woocommerce_version($data = array()) {
51
+ $result = ( is_plugin_active( 'woocommerce/woocommerce.php' ) || is_plugin_active_for_network( 'woocommerce/woocommerce.php' ) );
52
+ $result = $result && $this->version_compare(br_get_woocommerce_version(), $data);
53
+ $this->show_notice($result, $data);
54
+ return $result;
55
+ }
56
+ function check_framework_version($data = array()) {
57
+ $framework_version = ( ( ! class_exists('BeRocket_Framework') || empty(BeRocket_Framework::$framework_version) ) ? '0' : BeRocket_Framework::$framework_version );
58
+ $result = $this->version_compare($framework_version, $data);
59
+ $this->show_notice($result, $data);
60
+ return $result;
61
+ }
62
+ function check_wordpress_version($data = array()) {
63
+ global $wp_version;
64
+ $result = $this->version_compare($wp_version, $data);
65
+ $this->show_notice($result, $data);
66
+ return $result;
67
+ }
68
+ function version_compare($version, $data) {
69
+ if( ! empty($data['version']) && ! empty($data['operator']) ) {
70
+ return version_compare($version, $data['version'], $data['operator']);
71
+ } else {
72
+ return true;
73
+ }
74
+ }
75
+ function show_notice($result, $data) {
76
+ if( ! $result && ! empty($data['notice']) ) {
77
+ $this->notices[] = array(
78
+ 'start' => 0,
79
+ 'end' => 0,
80
+ 'name' => 'framework_init_check_'.md5($data['notice']),
81
+ 'html' => '<strong>'.$data['notice'].'</strong>',
82
+ 'righthtml' => '',
83
+ 'rightwidth' => 0,
84
+ 'nothankswidth' => 0,
85
+ 'contentwidth' => 1600,
86
+ 'subscribe' => false,
87
+ 'priority' => 10,
88
+ 'height' => 50,
89
+ 'repeat' => false,
90
+ 'repeatcount' => 1,
91
+ 'image' => array(
92
+ 'local' => '',
93
+ 'width' => 0,
94
+ 'height' => 0,
95
+ 'scale' => 1,
96
+ )
97
+ );
98
+ }
99
+ }
100
+ function framework_notice($notices) {
101
+ $notices = array_merge($this->notices, $notices);
102
+ return $notices;
103
+ }
104
+ }
105
+ }
berocket/libraries/popup.php ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_popup_display') ) {
3
+ class BeRocket_popup_display {
4
+ public static $elements = array();
5
+ public static $load_popup = false;
6
+ function __construct() {
7
+ add_action('wp_footer', array($this, 'wp_footer'), 9);
8
+ add_action('wp_footer', array($this, 'wp_footer2'), 90000);
9
+ $open_types = array('click', 'page_open', 'scroll_px', 'scroll_block', 'leave_page');
10
+ foreach($open_types as $open_type) {
11
+ add_filter('BeRocket_popup_open_type_'.$open_type, array($this, 'popup_open_type_'.$open_type), 10, 5);
12
+ }
13
+ }
14
+ public static function include_assets() {
15
+ self::$load_popup = true;
16
+ }
17
+ public static function add_popup($options, $html = '', $popup_open = false) {
18
+ self::include_assets();
19
+ if( count(self::$elements) ) {
20
+ $max_id = array_keys(self::$elements);
21
+ $max_id = max($max_id);
22
+ $max_id++;
23
+ } else {
24
+ $max_id = 1;
25
+ }
26
+ self::$elements[$max_id] = array(
27
+ 'popup_open' => $popup_open,
28
+ 'options' => $options,
29
+ 'html' => $html
30
+ );
31
+ return $max_id;
32
+ }
33
+ public function wp_footer() {
34
+ if( self::$load_popup ) {
35
+ wp_register_script(
36
+ 'berocket_framework_popup',
37
+ plugins_url( '../assets/popup/br_popup.js', __FILE__ ),
38
+ array( 'jquery' )
39
+ );
40
+ wp_register_style(
41
+ 'berocket_framework_popup',
42
+ plugins_url( '../assets/popup/br_popup.css', __FILE__ )
43
+ );
44
+ wp_register_style(
45
+ 'berocket_framework_popup-animate',
46
+ plugins_url( '../assets/popup/animate.css', __FILE__ )
47
+ );
48
+ wp_enqueue_script( 'berocket_framework_popup' );
49
+ wp_enqueue_style( 'berocket_framework_popup' );
50
+ wp_enqueue_style( 'berocket_framework_popup-animate' );
51
+ }
52
+ }
53
+ public function wp_footer2() {
54
+ if( count(self::$elements) ) {
55
+ $page_elements = array(
56
+ 'html_content' => '',
57
+ 'ajax_update' => '',
58
+ 'page_load' => ''
59
+ );
60
+ $popup_list = array();
61
+ foreach(self::$elements as $element_i => $element) {
62
+ $element_id = 'br_popup_'.$element_i;
63
+ //ADD BLOCK WITH CONTENT
64
+ $page_elements['html_content'] .= '<div id="'.$element_id.'" style="display: none!important;">'.$element['html'].'</div>';
65
+ //ADD SCRIPT TO INIT POPUP
66
+ $page_elements['ajax_update'] .= '
67
+ jQuery("#'.$element_id.'").br_popup('.json_encode($element['options']).');';
68
+ //ADD SCRIPT FOR BUTTONS
69
+ if( ! empty($element['popup_open']) && is_array($element['popup_open']) && count($element['popup_open']) ) {
70
+ if( ! empty($element['popup_open']['type']) ) {
71
+ $element['popup_open'] = array($element['popup_open']);
72
+ }
73
+ foreach($element['popup_open'] as $popup_open) {
74
+ if( is_array($popup_open) && ! empty($popup_open['type']) ) {
75
+ $page_elements = apply_filters('BeRocket_popup_open_type_'.$popup_open['type'], $page_elements, $popup_open, $element, $element_i, $element_id);
76
+ }
77
+ }
78
+ }
79
+ }
80
+ $page_elements = apply_filters('BeRocket_popup_open_page_elements', $page_elements, self::$elements);
81
+ echo $page_elements['html_content'];
82
+ echo '<script>
83
+ jQuery(document).ready(function() {
84
+ function berocket_popup_run_script() {
85
+ '.$page_elements['ajax_update'].'
86
+ }
87
+ berocket_popup_run_script();
88
+ jQuery(document).ajaxComplete(function() {
89
+ berocket_popup_run_script();
90
+ });
91
+ '.$page_elements['page_load'].'
92
+ });
93
+ </script>';
94
+ }
95
+ }
96
+ public function popup_open_type_click($page_elements, $popup_open, $element, $element_i, $element_id) {
97
+ if( ! empty($popup_open['selector']) ) {
98
+ $page_elements['ajax_update'] .= '
99
+ if( ! jQuery("'.$popup_open['selector'].'").data("br_popup_event") ) {
100
+ jQuery("'.$popup_open['selector'].'").data("br_popup_event", true);
101
+ jQuery("'.$popup_open['selector'].'").on("click", function(event) {
102
+ event.preventDefault();
103
+ jQuery("#'.$element_id.'").br_popup().open_popup();
104
+ });
105
+ }';
106
+ }
107
+ return $page_elements;
108
+ }
109
+ public function popup_open_type_page_open($page_elements, $popup_open, $element, $element_i, $element_id) {
110
+ $popup_open_script = 'jQuery("#'.$element_id.'").br_popup().open_popup();';
111
+ if( empty($popup_open['timer']) ) {
112
+ $page_elements['page_load'] .= $popup_open_script;
113
+ } else {
114
+ $page_elements['page_load'] .= 'setTimeout(function() {'.$popup_open_script.'}, '.$popup_open['timer'].');';
115
+ }
116
+ return $page_elements;
117
+ }
118
+ public function popup_open_type_scroll_px($page_elements, $popup_open, $element, $element_i, $element_id) {
119
+ $popup_open = array_merge(array(
120
+ 'scroll' => '0'
121
+ ), $popup_open);
122
+ $function_name = 'berocket_popup_open_type_scroll_px_'.$element_i.'_'.$popup_open['scroll'];
123
+ $page_elements['page_load'] .= '
124
+ function '.$function_name.'() {
125
+ if( ! jQuery("#'.$element_id.'").data("scroll_px_'.$popup_open['scroll'].'") && jQuery(document).scrollTop() > '.$popup_open['scroll'].' ) {
126
+ jQuery("#'.$element_id.'").br_popup().open_popup();
127
+ jQuery("#'.$element_id.'").data("scroll_px_'.$popup_open['scroll'].'", true);
128
+ }
129
+ }
130
+ '.$function_name.'();
131
+ jQuery(document).on("scroll", '.$function_name.');';
132
+ return $page_elements;
133
+ }
134
+ public function popup_open_type_scroll_block($page_elements, $popup_open, $element, $element_i, $element_id) {
135
+ $popup_open = array_merge(array(
136
+ 'selector' => ''
137
+ ), $popup_open);
138
+ $md5hash = md5($popup_open['selector']);
139
+ $function_name = 'berocket_popup_open_type_scroll_px_'.$element_i.'_'.$md5hash;
140
+ if( ! empty($popup_open['selector']) ) {
141
+ $page_elements['page_load'] .= '
142
+ function '.$function_name.'() {
143
+ if( jQuery("'.$popup_open['selector'].'").filter(":visible").length && ! jQuery("#'.$element_id.'").data("scroll_block_'.$md5hash.'") ) {
144
+ var window_pos = jQuery(document).scrollTop()+jQuery(window).height();
145
+ var block_pos = jQuery("'.$popup_open['selector'].'").filter(":visible").offset().top;
146
+ if( window_pos > block_pos ) {
147
+ jQuery("#'.$element_id.'").br_popup().open_popup();
148
+ jQuery("#'.$element_id.'").data("scroll_block_'.$md5hash.'", true);
149
+ }
150
+ }
151
+ }
152
+ '.$function_name.'();
153
+ jQuery(document).on("scroll", '.$function_name.');';
154
+ }
155
+ return $page_elements;
156
+ }
157
+ public function popup_open_type_leave_page($page_elements, $popup_open, $element, $element_i, $element_id) {
158
+ $page_elements['page_load'] .= '
159
+ jQuery(document).mouseleave(function(event){
160
+ if( ! jQuery("#'.$element_id.'").data("leave_page_'.$element_i.'") && event.clientY < 50 ) {
161
+ jQuery("#'.$element_id.'").br_popup().open_popup();
162
+ jQuery("#'.$element_id.'").data("leave_page_'.$element_i.'", true);
163
+ }
164
+ });';
165
+ return $page_elements;
166
+ }
167
+ }
168
+ new BeRocket_popup_display();
169
+ }
berocket/libraries/templates/default.png ADDED
Binary file
berocket/libraries/templates/template_lib.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists('BeRocket_framework_template_lib') ) {
3
+ class BeRocket_framework_template_lib {
4
+ public $template_file = '';
5
+ public $plugin_name = '';
6
+ public $active_template = '';
7
+ public $css_file_name = '';
8
+ public $js_file_name = '';
9
+ public $absolute_file = '';
10
+
11
+ function __construct() {
12
+ if ( empty( $this->template_file ) ) {
13
+ return;
14
+ }
15
+
16
+ $this->absolute_file = $this->template_file;
17
+ $this->template_file = explode( 'style_templates', $this->template_file );
18
+ $this->template_file = array_pop( $this->template_file );
19
+ $active_templates = apply_filters( 'berocket_templates_active_' . $this->plugin_name, array() );
20
+
21
+ add_filter( 'berocket_templates_info_' . $this->plugin_name, array( $this, 'template_info' ) );
22
+
23
+ if ( $this->template_file == $active_templates ) {
24
+ add_filter( 'berocket_selected_templates_info_' . $this->plugin_name, array( $this, 'template_info' ) );
25
+ add_action( 'berocket_init_template_' . $this->plugin_name, array( $this, 'check_active' ) );
26
+ }
27
+ }
28
+
29
+ function check_active( $template_activate ) {
30
+ if ( $template_activate == $this->template_file ) {
31
+ $this->init_active();
32
+ }
33
+ }
34
+
35
+ function init_active() {
36
+ if ( ! empty( $this->css_file_name ) && file_exists( dirname( $this->absolute_file ) . '/' . $this->css_file_name . '.css' ) ) {
37
+ add_action( 'wp_footer', array( $this, 'enqueue_styles' ), 5 );
38
+ }
39
+
40
+ if ( ! empty( $this->js_file_name ) && file_exists( dirname( $this->absolute_file ) . '/' . $this->js_file_name . '.js' ) ) {
41
+ add_action( 'wp_footer', array( $this, 'enqueue_scripts' ), 5 );
42
+ }
43
+ }
44
+
45
+ function enqueue_styles() {
46
+ $style_name = 'berocket_' . $this->plugin_name . '_' . $this->css_file_name;
47
+ wp_register_style( $style_name, plugins_url( '/' . $this->css_file_name . '.css', $this->absolute_file ) );
48
+ wp_enqueue_style( $style_name );
49
+ }
50
+
51
+ function enqueue_scripts() {
52
+ $script_name = 'berocket_' . $this->plugin_name . '_' . $this->js_file_name;
53
+ wp_register_script( $script_name, plugins_url( '/' . $this->js_file_name . '.js', $this->absolute_file ) );
54
+ wp_enqueue_script( $script_name );
55
+ }
56
+
57
+ function get_template_data() {
58
+ return array(
59
+ 'template_file' => $this->template_file,
60
+ 'template_name' => 'Template',
61
+ 'image' => plugins_url( '/default.png', __FILE__ ),
62
+ 'class' => 'template1',
63
+ 'instance' => $this,
64
+ 'paid' => false
65
+ );
66
+ }
67
+
68
+ function template_info( $template_info ) {
69
+ $template_data = $this->get_template_data();
70
+ $template_info[ $template_data[ 'template_file' ] ] = $template_data;
71
+
72
+ return $template_info;
73
+ }
74
+ }
75
+ }
berocket/libraries/templates/templates.php ADDED
@@ -0,0 +1,172 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! class_exists('BeRocket_framework_templates') ) {
3
+ class BeRocket_framework_templates {
4
+ public $info;
5
+ public $values;
6
+ public $options;
7
+ public $hook_name;
8
+
9
+ function __construct( $info, $values, $options ) {
10
+ include_once( 'template_lib.php' );
11
+ $this->info = $info;
12
+ $this->values = $values;
13
+ $this->options = $options;
14
+ $this->hook_name = $info[ 'plugin_name' ];
15
+
16
+ add_filter( 'berocket_templates_active_' . $this->hook_name, array( $this, 'active_template' ) );
17
+ add_filter( 'brfr_' . $this->hook_name . '_templates', array( $this, 'section' ), 10, 4 );
18
+ add_filter( 'berocket_templates_info_' . $this->hook_name, array( $this, 'sort_paid_templates' ), 9000, 1 );
19
+
20
+ $this->load_template();
21
+
22
+ new BeRocket_framework_libraries( array( 'tooltip' ), $info, $values, $options );
23
+
24
+ add_action( 'admin_init', array( $this, 'admin_init' ) );
25
+ }
26
+
27
+ function admin_init() {
28
+ add_filter( 'BeRocket_style_template_library_additional_html_' . $this->hook_name, array(
29
+ $this,
30
+ 'paid_only_sign'
31
+ ), 10, 2 );
32
+ }
33
+
34
+ function load_template() {
35
+ if ( ! empty( $this->options[ 'template' ] ) ) {
36
+ if( file_exists($this->info[ 'plugin_dir' ] . '/style_templates' . $this->options[ 'template' ]) ) {
37
+ include_once( $this->info[ 'plugin_dir' ] . '/style_templates' . $this->options[ 'template' ] );
38
+ }
39
+ }
40
+ }
41
+
42
+ function get_templates() {
43
+ $template_files = array();
44
+ if ( is_dir( $this->info[ 'plugin_dir' ] . '/templates/' ) ) {
45
+ foreach ( glob( $this->info[ 'plugin_dir' ] . '/style_templates/*.php' ) as $filename ) {
46
+ $template_files[] = str_replace( $this->info[ 'plugin_dir' ] . '/style_templates', '', $filename );
47
+ }
48
+ foreach ( glob( $this->info[ 'plugin_dir' ] . '/style_templates/*', GLOB_ONLYDIR ) as $path ) {
49
+ $dir_name = basename( $path );
50
+ $filename = $path . '/' . $dir_name . '.php';
51
+ if ( file_exists( $filename ) ) {
52
+ $template_files[] = str_replace( $this->info[ 'plugin_dir' ] . '/style_templates', '', $filename );
53
+ }
54
+ }
55
+ }
56
+
57
+ return $template_files;
58
+ }
59
+
60
+ function get_active_template_info( $template_file ) {
61
+ $template_info = apply_filters( 'berocket_selected_templates_info_' . $this->hook_name, array() );
62
+
63
+ return ( isset( $template_info[ $template_file ] ) ? $template_info[ $template_file ] : false );
64
+ }
65
+
66
+ function get_templates_info() {
67
+ $templates = $this->get_templates();
68
+ foreach ( $templates as $template ) {
69
+ if( file_exists($this->info[ 'plugin_dir' ] . '/style_templates' . $template) ) {
70
+ include_once( $this->info[ 'plugin_dir' ] . '/style_templates' . $template );
71
+ }
72
+ }
73
+ $template_info = apply_filters( 'berocket_templates_info_' . $this->hook_name, array() );
74
+
75
+ return $template_info;
76
+ }
77
+
78
+ function sort_paid_templates( $template_info ) {
79
+ $sorted_template_info = array();
80
+ foreach ( $template_info as $template_i => $template ) {
81
+ if ( ! empty( $template[ 'paid' ] ) ) {
82
+ $sorted_template_info[] = $template;
83
+ unset( $template_info[ $template_i ] );
84
+ }
85
+ }
86
+
87
+ $plugin_version_capability = apply_filters( 'brfr_get_plugin_version_capability_' . $this->hook_name, 0 );
88
+ if ( empty( $plugin_version_capability ) || $plugin_version_capability < 10 ) {
89
+ $template_info = array_merge( $template_info, $sorted_template_info );
90
+ } else {
91
+ $template_info = array_merge( $sorted_template_info, $template_info );
92
+ }
93
+ $template_info = array_values( $template_info );
94
+
95
+ return $template_info;
96
+ }
97
+
98
+ function active_template( $template = '' ) {
99
+ if ( ! empty( $this->options[ 'template' ] ) ) {
100
+ $template = $this->options[ 'template' ];
101
+ }
102
+
103
+ return $template;
104
+ }
105
+
106
+ function section( $html, $item, $options, $settings_name ) {
107
+ $templates = $this->get_templates();
108
+ $templates_info = $this->get_templates_info();
109
+ $html .= '<td colspan="2" class="berocket_templates_list">';
110
+ $elements = array(
111
+ 'main' => array(
112
+ 'title' => '',
113
+ 'html' => array()
114
+ ),
115
+ );
116
+
117
+ foreach ( $templates_info as $template_i => $template_info ) {
118
+ $checked = isset( $options[ 'template' ] ) && $template_info[ 'template_file' ] == $options[ 'template' ];
119
+ $html_array = array(
120
+ 'open_label' => '<label class="berocket_template_label" id="berocket_template_label_' . $template_i . '">',
121
+ 'input' => '<input autocomplete="off" class="berocket_template_is_active" name="' . $settings_name . '[template]" type="radio" value="' . $template_info[ 'template_file' ] . '"' . ( $checked ? ' checked' : '' ) . '>',
122
+ 'open_template_block' => '<span class="berocket_template_block">',
123
+ 'active' => '<span class="berocket_template_active"><i class="fa fa-check"></i></span>',
124
+ 'image' => '<img src="' . $template_info[ 'image' ] . '">',
125
+ 'template_name' => '<span class="berocket_template_name">' . $template_info[ 'template_name' ] . '</span>',
126
+ 'close_template_block' => '</span>',
127
+ 'close_label' => '</label>',
128
+ );
129
+ $html_array = apply_filters( 'BeRocket_style_template_library_additional_html_' . $this->hook_name, $html_array, $template_info, $item, $options, $settings_name );
130
+ $elements[ 'main' ][ 'html' ][ $template_info[ 'template_file' ] ] = implode($html_array);
131
+ if ( ! empty( $template_info[ 'tooltip' ] ) ) {
132
+ BeRocket_tooltip_display::add_tooltip( array(
133
+ 'boundary' => 'window',
134
+ 'arrow' => true,
135
+ 'interactive' => true,
136
+ 'placement' => 'top'
137
+ ), $template_info[ 'tooltip' ], '#berocket_template_label_' . $template_i );
138
+ }
139
+ }
140
+
141
+ foreach ( $elements as $element ) {
142
+ if ( count( $element[ 'html' ] ) ) {
143
+ $html .= '<div>';
144
+ if ( ! empty( $element[ 'title' ] ) ) {
145
+ $html .= '<h3>' . $element[ 'title' ] . '</h3>';
146
+ }
147
+ $html .= implode( $element[ 'html' ] );
148
+ $html .= '</div>';
149
+ }
150
+ }
151
+ $html .= '</td>';
152
+
153
+ return $html;
154
+ }
155
+
156
+ function paid_only_sign( $html_array, $template_info ) {
157
+ $plugin_version_capability = apply_filters( 'brfr_get_plugin_version_capability_' . $this->hook_name, 0 );
158
+
159
+ if ( ! empty( $template_info[ 'paid' ] ) && ( empty( $plugin_version_capability ) || $plugin_version_capability < 10 ) ) {
160
+ $html = '<i class="berocket_template_paid_sign fa fa-lock"></i>';
161
+ $html .= '<div class="berocket_template_paid_get"><a target="_blank" href="https://berocket.com/product/' . $this->values[ 'premium_slug' ] . '"><span>
162
+ <i class="fa fa-star" aria-hidden="true"></i><i class="fa fa-star" aria-hidden="true"></i><i class="fa fa-star" aria-hidden="true"></i>
163
+ ' . __( 'Go Premium', 'BeRocket_domain' ) . '
164
+ <i class="fa fa-star" aria-hidden="true"></i><i class="fa fa-star" aria-hidden="true"></i><i class="fa fa-star" aria-hidden="true"></i>
165
+ </span></a></div>';
166
+ $html_array = berocket_insert_to_array($html_array, 'close_template_block', array('paid_only' => $html));
167
+ }
168
+
169
+ return $html_array;
170
+ }
171
+ }
172
+ }
berocket/libraries/tippy.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if( ! class_exists('BeRocket_tooltip_display') ) {
3
+ class BeRocket_tooltip_display {
4
+ public static $elements = array();
5
+ public static $load_tippy = false;
6
+ function __construct() {
7
+ add_action('wp_footer', array($this, 'wp_footer'), 9);
8
+ add_action('wp_footer', array($this, 'wp_footer2'), 90000);
9
+ add_action('admin_footer', array($this, 'wp_footer'), 9);
10
+ add_action('admin_footer', array($this, 'wp_footer2'), 90000);
11
+ }
12
+ public static function include_assets() {
13
+ self::$load_tippy = true;
14
+ }
15
+ public static function add_tooltip($options = array(), $html = '', $selector = '') {
16
+ self::include_assets();
17
+ if( count(self::$elements) ) {
18
+ $max_id = array_keys(self::$elements);
19
+ $max_id = max($max_id);
20
+ $max_id++;
21
+ } else {
22
+ $max_id = 1;
23
+ }
24
+ if( ! is_array($options) ) {
25
+ $options = array();
26
+ }
27
+ self::$elements[$max_id] = array(
28
+ 'options' => $options,
29
+ 'html' => $html,
30
+ 'selector' => $selector
31
+ );
32
+ return $max_id;
33
+ }
34
+ public function wp_footer() {
35
+ if( count(self::$elements) ) {
36
+ $themes = array();
37
+ foreach(self::$elements as $element) {
38
+ if( ! empty($element['options']['theme']) ) {
39
+ $themes[$element['options']['theme']] = true;
40
+ }
41
+ }
42
+ foreach($themes as $theme_name => $import_it) {
43
+ wp_register_style(
44
+ 'berocket_framework_popup_theme-'.$theme_name,
45
+ plugins_url( '../assets/popup/themes/berocket-'.$theme_name.'.css', __FILE__ )
46
+ );
47
+ wp_enqueue_style( 'berocket_framework_popup_theme-'.$theme_name );
48
+ }
49
+ }
50
+ if( self::$load_tippy ) {
51
+ wp_register_script(
52
+ 'berocket_framework_tippy',
53
+ plugins_url( '../assets/tippy/tippy.min.js', __FILE__ ),
54
+ array( 'jquery' )
55
+ );
56
+ wp_register_style(
57
+ 'berocket_framework_tippy',
58
+ plugins_url( '../assets/tippy/tippy.css', __FILE__ )
59
+ );
60
+ wp_register_style(
61
+ 'berocket_framework_popup-animate',
62
+ plugins_url( '../assets/popup/animate.css', __FILE__ )
63
+ );
64
+ wp_enqueue_script( 'berocket_framework_tippy' );
65
+ wp_enqueue_style( 'berocket_framework_tippy' );
66
+ wp_enqueue_style( 'berocket_framework_popup-animate' );
67
+ }
68
+ }
69
+ public function wp_footer2() {
70
+ if( count(self::$elements) ) {
71
+ $page_elements = array(
72
+ 'html_content' => '',
73
+ 'ajax_update' => '',
74
+ 'page_load' => ''
75
+ );
76
+ $popup_list = array();
77
+ foreach(self::$elements as $element_i => $element) {
78
+ $element_id = 'br_tooltip_'.$element_i;
79
+ //ADD BLOCK WITH CONTENT
80
+ $element['options']['content'] = $element['html'];
81
+ //ADD SCRIPT TO INIT POPUP
82
+ $page_elements['page_load'] .= '
83
+ tippy("'.$element['selector'].'", '.json_encode($element['options']).');';
84
+ }
85
+ $page_elements = apply_filters('BeRocket_tooltip_tippy_page_elements', $page_elements, self::$elements);
86
+ echo $page_elements['html_content'];
87
+ echo '<script>
88
+ jQuery(document).ready(function() {
89
+ function berocket_popup_run_script() {
90
+ '.$page_elements['ajax_update'].'
91
+ }
92
+ berocket_popup_run_script();
93
+ jQuery(document).ajaxComplete(function() {
94
+ berocket_popup_run_script();
95
+ });
96
+ '.$page_elements['page_load'].'
97
+ });
98
+ </script>';
99
+ }
100
+ }
101
+ }
102
+ new BeRocket_tooltip_display();
103
+ }
berocket/libraries/wpml_compatibility.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ add_filter('woocommerce_json_search_found_products', 'BR_woocommerce_json_search_found_products');
3
+ function BR_woocommerce_json_search_found_products($products) {
4
+ if( ! empty($_GET['is_berocket']) ) {
5
+ $new_products = $products;
6
+ $products = array();
7
+ $current_language = apply_filters( 'wpml_current_language', NULL );
8
+ foreach($new_products as $product_id => $product_name) {
9
+ $product_id = apply_filters( 'wpml_object_id', $product_id, 'product', true, $current_language );
10
+ $products[$product_id] = get_the_title($product_id). ' (#'.$product_id.')';
11
+ }
12
+ }
13
+ return $products;
14
+ }
berocket/templates/conditions.php CHANGED
@@ -8,7 +8,7 @@ if( ! empty($additional['hook_name']) ) {
8
  echo '<div class="submitbox" id="submitpost">';
9
  $condition_types = apply_filters($hook_name.'_types', array());
10
  ?>
11
- <div class="">
12
  <div class="br_condition_example" style="display:none;">
13
  <div class="br_cond_select" data-current="1">
14
  <span>
@@ -91,155 +91,12 @@ $condition_types = apply_filters($hook_name.'_types', array());
91
  $last_id++;
92
  ?>
93
  <span class="button br_add_group"><i class="fa fa-plus"></i></span>
 
 
 
 
 
 
94
  </div>
95
- <script>
96
- var last_id = <?php echo $last_id; ?>;
97
- var condition_name = '<?php echo $name_for_condition; ?>';
98
- var $html = jQuery('.br_condition_example').html();
99
- $html = '<div class="br_cond_one">'+$html+'</div>';
100
- jQuery(document).on('change', '.br_cond_type', function(event) {
101
- var $parent = jQuery(this).parents('.br_cond_select');
102
- $parent.find('.br_cond').remove();
103
- var id = $parent.parents('.br_html_condition');
104
- var current_id = $parent.data('current');
105
- id = id.data('id');
106
- var html_need = jQuery('.br_cond_example .br_cond_'+jQuery(this).val()).get(0);
107
- html_need = html_need.outerHTML;
108
- html_need = html_need.replace(/%id%/g, id);
109
- html_need = html_need.replace(/%current_id%/g, current_id);
110
- html_need = html_need.replace(/%name%/g, condition_name);
111
- $parent.find('.br_current_cond').html(html_need);
112
- });
113
- jQuery(document).on('click', '.berocket_add_condition', function() {
114
- var id = jQuery(this).parents('.br_html_condition');
115
- var current_id = id.data('current');
116
- current_id = current_id + 1;
117
- id.data('current', current_id);
118
- id = id.data('id');
119
- var $html = jQuery('.br_condition_example .br_cond_select').html();
120
- $html = '<div class="br_cond_select" data-current="'+current_id+'">'+$html+'</div>';
121
- $html = $html.replace('%id%', id);
122
- jQuery(this).before($html);
123
- $parent = jQuery(this).prev();
124
- $parent.find('.br_cond_type').trigger('change');
125
- });
126
- jQuery(document).on('click', '.berocket_remove_condition', function() {
127
- $parent = jQuery(this).parents('.br_cond_select');
128
- $parent.remove();
129
- });
130
- jQuery(document).on('click', '.br_add_group', function() {
131
- last_id++;
132
- var html = $html.replace( '%id%', last_id );
133
- var html = '<div class="br_html_condition" data-id="'+last_id+'" data-current="1">'+html+'</div>';
134
- jQuery(this).before(html);
135
- $parent = jQuery(this).prev();
136
- $parent.find('.br_cond_type').trigger('change');
137
- });
138
- jQuery(document).on('click', '.br_remove_group', function() {
139
- $parent = jQuery(this).parents('.br_html_condition');
140
- $parent.remove();
141
- });
142
- jQuery(document).on('change', '.br_cond_attr_select', function() {
143
- var $attr_block = jQuery(this).parents('.br_cond_attribute, .br_cond_woo_attribute');
144
- $attr_block.find('.br_attr_values').hide();
145
- $attr_block.find('.br_attr_value_'+jQuery(this).val()).show();
146
- });
147
- jQuery(document).on('change', '.price_from', function() {
148
- var val_price_from = jQuery(this).val();
149
- var val_price_to = jQuery(this).parents('.br_cond').first().find('.price_to').val();
150
- price_from = parseFloat(val_price_from);
151
- price_to = parseFloat(val_price_to);
152
- price_to_int = parseInt(val_price_to);
153
- if( val_price_from == '' ) {
154
- jQuery(this).val(0);
155
- price_from = 0;
156
- }
157
- if( price_from > price_to ) {
158
- jQuery(this).val(price_to_int);
159
- }
160
- });
161
- jQuery(document).on('change', '.price_to', function() {
162
- var val_price_from = jQuery(this).parents('.br_cond').first().find('.price_from').val();
163
- var val_price_to = jQuery(this).val();
164
- price_from = parseFloat(val_price_from);
165
- price_from_int = parseInt(val_price_from);
166
- price_to = parseFloat(val_price_to);
167
- if( val_price_to == '' ) {
168
- jQuery(this).val(0);
169
- price_to = 0;
170
- }
171
- if( price_from > price_to ) {
172
- jQuery(this).val(price_from_int);
173
- }
174
- });
175
- </script>
176
- <style>
177
- .br_conditions .br_html_condition {
178
- margin-top: 40px;
179
- }
180
- .br_conditions .br_html_condition:first-child {
181
- margin-top: 0;
182
- }
183
- .br_conditions .br_html_condition:before {
184
- content: "OR";
185
- display: block;
186
- position: absolute;
187
- top: -30px;
188
- font-size: 30px;
189
- }
190
- .br_conditions .br_html_condition:first-child:before {
191
- display: none;
192
- }
193
- .br_html_condition .br_cond_select {
194
- margin-top: 40px;
195
- position: relative;
196
- }
197
- .br_html_condition .br_cond_select:first-child {
198
- margin-top: 0;
199
- }
200
- .br_html_condition .br_cond_select:before {
201
- content: "AND";
202
- display: block;
203
- position: absolute;
204
- top: -30px;
205
- font-size: 30px;
206
- }
207
- .br_html_condition .br_cond_select:first-child:before {
208
- display: none;
209
- }
210
- .br_html_condition .br_cond_one .br_cond_select:first-child .berocket_remove_condition {
211
- display: none;
212
- }
213
- .br_html_condition {
214
- border: 1px solid #999;
215
- background-color: #fafafa;
216
- padding: 0.5em;
217
- margin-bottom: 1em;
218
- position: relative;
219
- }
220
- .br_html_condition .br_remove_group {
221
- position: absolute!important;
222
- top:-10px;
223
- right: -10px;
224
- }
225
- .br_cond_select {
226
- padding-bottom: 1em;
227
- }
228
- .br_cond_select {
229
- border: 1px solid #999;
230
- padding: 0.5em;
231
- margin-bottom: 0.5em;
232
- background-color: #eee;
233
- }
234
- .br_framework_settings .button.berocket_remove_condition,
235
- .br_framework_settings .button.berocket_add_condition,
236
- .br_framework_settings .button.br_remove_group,
237
- .br_framework_settings .button.br_add_group {
238
- padding: 0 10px;
239
- margin: 0;
240
- width: initial;
241
- min-width: initial;
242
- }
243
- </style>
244
  </div>
245
  </div>
8
  echo '<div class="submitbox" id="submitpost">';
9
  $condition_types = apply_filters($hook_name.'_types', array());
10
  ?>
11
+ <div class="berocket_conditions_block">
12
  <div class="br_condition_example" style="display:none;">
13
  <div class="br_cond_select" data-current="1">
14
  <span>
91
  $last_id++;
92
  ?>
93
  <span class="button br_add_group"><i class="fa fa-plus"></i></span>
94
+ <?php
95
+ echo '<span class="br_condition_data"y
96
+ data-last_id="'.$last_id.'"
97
+ data-condition_name="'.$name_for_condition.'">
98
+ </span>';
99
+ ?>
100
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
101
  </div>
102
  </div>
css/widget.css CHANGED
@@ -786,7 +786,7 @@ ul.berocket_aapf_widget li.berocket_tag_cloud_element > span label
786
  padding: 0;
787
  cursor: pointer;
788
  }
789
- @media only screen and (max-device-width: 768px) {
790
  .berocket_aapf_hide_mobile {
791
  display: none !important;
792
  }
@@ -1188,7 +1188,7 @@ html .widget_berocket_aapf .ui-button.ui-state-disabled:active{
1188
  .berocket_single_filter_widget.berocket_hidden_clickable.berocket_hidden_clickable_right .berocket_aapf_widget {
1189
  right: 0!important;
1190
  }
1191
- @media screen and (max-width: 768px){
1192
  .berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible {
1193
  position: fixed!important;
1194
  top: 0!important;
@@ -1230,12 +1230,12 @@ html .widget_berocket_aapf .ui-button.ui-state-disabled:active{
1230
  div.berocket_single_filter_widget div.berocket_aapf_widget-wrapper * {
1231
  opacity:1;
1232
  }
1233
- @media screen and (max-width: 768px){
1234
  .berocket_hide_single_widget_on_mobile {
1235
  display: none!important;
1236
  }
1237
  }
1238
- @media screen and (min-width: 769px) and (max-width: 1024px){
1239
  .berocket_hide_single_widget_on_tablet {
1240
  display: none!important;
1241
  }
786
  padding: 0;
787
  cursor: pointer;
788
  }
789
+ @media only screen and (max-device-width: 767px) {
790
  .berocket_aapf_hide_mobile {
791
  display: none !important;
792
  }
1188
  .berocket_single_filter_widget.berocket_hidden_clickable.berocket_hidden_clickable_right .berocket_aapf_widget {
1189
  right: 0!important;
1190
  }
1191
+ @media screen and (max-width: 767px){
1192
  .berocket_single_filter_widget.berocket_hidden_clickable.berocket_single_filter_visible {
1193
  position: fixed!important;
1194
  top: 0!important;
1230
  div.berocket_single_filter_widget div.berocket_aapf_widget-wrapper * {
1231
  opacity:1;
1232
  }
1233
+ @media screen and (max-width: 767px){
1234
  .berocket_hide_single_widget_on_mobile {
1235
  display: none!important;
1236
  }
1237
  }
1238
+ @media screen and (min-width: 768px) and (max-width: 1024px){
1239
  .berocket_hide_single_widget_on_tablet {
1240
  display: none!important;
1241
  }
includes/addons/seo_meta_title.php CHANGED
@@ -175,7 +175,11 @@ if( ! class_exists('BeRocket_AAPF_addon_woocommerce_seo_title') ) {
175
  'values' => array()
176
  );
177
  }
178
- $terms_name[$taxonomy->name]['values'][$term1->slug.'_'.$term2->slug] = apply_filters('berocket_aapf_seo_meta_filtered_term_label', sprintf( _x( '%1$s &ndash; %2$s', 'Price range: from-to', 'woocommerce' ), $term1->name, $term2->name ), array($term1, $term2), $taxonomy, $term_parsed);
 
 
 
 
179
  $terms_name[$taxonomy->name]['has_slider'] = TRUE;
180
  }
181
  }
175
  'values' => array()
176
  );
177
  }
178
+ if( ! $term1 || ! $term2 ) {
179
+ $terms_name[$taxonomy->name]['values'][$term_parsed[1].'_'.$term_parsed[2]] = apply_filters('berocket_aapf_seo_meta_filtered_term_label', sprintf( _x( '%1$s &ndash; %2$s', 'Price range: from-to', 'woocommerce' ), $term_parsed[1], $term_parsed[2] ), array($term1, $term2), $taxonomy, $term_parsed);
180
+ } else {
181
+ $terms_name[$taxonomy->name]['values'][$term1->slug.'_'.$term2->slug] = apply_filters('berocket_aapf_seo_meta_filtered_term_label', sprintf( _x( '%1$s &ndash; %2$s', 'Price range: from-to', 'woocommerce' ), $term1->name, $term2->name ), array($term1, $term2), $taxonomy, $term_parsed);
182
+ }
183
  $terms_name[$taxonomy->name]['has_slider'] = TRUE;
184
  }
185
  }
includes/addons/woocommerce-variation.php CHANGED
@@ -69,7 +69,7 @@ class BeRocket_AAPF_compat_woocommerce_variation {
69
  $query = sprintf( '
70
  SELECT filtered_post.id, filtered_post.out_of_stock, COUNT(filtered_post.ID) as post_count FROM
71
  (
72
- SELECT filtered_post.*, max_filtered_post.max_meta_count, COALESCE(stock_table.out_of_stock, "0") as out_of_stock FROM
73
  (
74
  SELECT %1$s.id as var_id, %1$s.post_parent as ID, COUNT(%1$s.id) as meta_count FROM %1$s
75
  INNER JOIN %2$s AS pf1 ON (%1$s.ID = pf1.post_id)
@@ -91,7 +91,7 @@ SELECT filtered_post.id, filtered_post.out_of_stock, COUNT(filtered_post.ID) as
91
  ) as max_filtered_post ON max_filtered_post.ID = filtered_post.ID AND max_filtered_post.max_meta_count = filtered_post.meta_count
92
  LEFT JOIN
93
  (
94
- SELECT %1$s.id as id, "1" as out_of_stock
95
  FROM %1$s
96
  ' . apply_filters('brAAPFcompat_WCvariation_out_of_stock_where', 'WHERE %1$s.id IN
97
  (
69
  $query = sprintf( '
70
  SELECT filtered_post.id, filtered_post.out_of_stock, COUNT(filtered_post.ID) as post_count FROM
71
  (
72
+ SELECT filtered_post.*, max_filtered_post.max_meta_count, COALESCE(stock_table.out_of_stock_init, "0") as out_of_stock FROM
73
  (
74
  SELECT %1$s.id as var_id, %1$s.post_parent as ID, COUNT(%1$s.id) as meta_count FROM %1$s
75
  INNER JOIN %2$s AS pf1 ON (%1$s.ID = pf1.post_id)
91
  ) as max_filtered_post ON max_filtered_post.ID = filtered_post.ID AND max_filtered_post.max_meta_count = filtered_post.meta_count
92
  LEFT JOIN
93
  (
94
+ SELECT %1$s.id as id, "1" as out_of_stock_init
95
  FROM %1$s
96
  ' . apply_filters('brAAPFcompat_WCvariation_out_of_stock_where', 'WHERE %1$s.id IN
97
  (
includes/custom_post.php CHANGED
@@ -71,6 +71,7 @@ class BeRocket_AAPF_single_filter extends BeRocket_custom_post_class {
71
  'data' => array(),
72
  'br_wp_footer' => false,
73
  'widget_type' => 'filter',
 
74
  'title' => '',
75
  'filter_type' => 'attribute',
76
  'attribute' => 'price',
@@ -493,7 +494,7 @@ class BeRocket_AAPF_single_filter extends BeRocket_custom_post_class {
493
  }
494
  }
495
  }
496
- new BeRocket_AAPF_single_filter();
497
 
498
  class BeRocket_AAPF_group_filters extends BeRocket_custom_post_class {
499
  public $hook_name = 'berocket_aapf_group_filters';
@@ -698,4 +699,4 @@ class BeRocket_AAPF_group_filters extends BeRocket_custom_post_class {
698
  update_option('br_filters_options', $options);
699
  }
700
  }
701
- new BeRocket_AAPF_group_filters();
71
  'data' => array(),
72
  'br_wp_footer' => false,
73
  'widget_type' => 'filter',
74
+ 'reset_hide' => 'berocket_no_filters',
75
  'title' => '',
76
  'filter_type' => 'attribute',
77
  'attribute' => 'price',
494
  }
495
  }
496
  }
497
+
498
 
499
  class BeRocket_AAPF_group_filters extends BeRocket_custom_post_class {
500
  public $hook_name = 'berocket_aapf_group_filters';
699
  update_option('br_filters_options', $options);
700
  }
701
  }
702
+
includes/divi-builder.php CHANGED
@@ -6,10 +6,6 @@ function berocket_filter_et_builder_ready() {
6
  $this->name = __( 'Single Filter', 'BeRocket_AJAX_domain' );
7
  $this->slug = 'et_pb_br_filter_single';
8
 
9
- $this->whitelisted_fields = array(
10
- 'filter_id',
11
- );
12
-
13
  $this->fields_defaults = array(
14
  'filter_id' => array(''),
15
  );
@@ -36,7 +32,7 @@ function berocket_filter_et_builder_ready() {
36
  return $fields;
37
  }
38
 
39
- function shortcode_callback( $atts, $content = null, $function_name ) {
40
  $html = '';
41
  if( ! empty($atts['filter_id']) ) {
42
  $html = do_shortcode('[br_filter_single filter_id='.$atts['filter_id'].']');
@@ -63,10 +59,6 @@ function berocket_filter_et_builder_ready() {
63
  $this->name = __( 'Group Filter', 'BeRocket_AJAX_domain' );
64
  $this->slug = 'et_pb_br_filters_group';
65
 
66
- $this->whitelisted_fields = array(
67
- 'group_id',
68
- );
69
-
70
  $this->fields_defaults = array(
71
  'group_id' => array(''),
72
  );
@@ -93,7 +85,7 @@ function berocket_filter_et_builder_ready() {
93
  return $fields;
94
  }
95
 
96
- function shortcode_callback( $atts, $content = null, $function_name ) {
97
  $html = '';
98
  if( ! empty($atts['group_id']) ) {
99
  $html = do_shortcode('[br_filters_group group_id='.$atts['group_id'].']');
@@ -117,4 +109,4 @@ function berocket_filter_et_builder_ready() {
117
  new ET_Builder_Module_br_filters_group;
118
  }
119
  }
120
- add_action('et_builder_modules_load', 'berocket_filter_et_builder_ready');
6
  $this->name = __( 'Single Filter', 'BeRocket_AJAX_domain' );
7
  $this->slug = 'et_pb_br_filter_single';
8
 
 
 
 
 
9
  $this->fields_defaults = array(
10
  'filter_id' => array(''),
11
  );
32
  return $fields;
33
  }
34
 
35
+ function render( $atts, $content = null, $function_name ) {
36
  $html = '';
37
  if( ! empty($atts['filter_id']) ) {
38
  $html = do_shortcode('[br_filter_single filter_id='.$atts['filter_id'].']');
59
  $this->name = __( 'Group Filter', 'BeRocket_AJAX_domain' );
60
  $this->slug = 'et_pb_br_filters_group';
61
 
 
 
 
 
62
  $this->fields_defaults = array(
63
  'group_id' => array(''),
64
  );
85
  return $fields;
86
  }
87
 
88
+ function render( $atts, $content = null, $function_name ) {
89
  $html = '';
90
  if( ! empty($atts['group_id']) ) {
91
  $html = do_shortcode('[br_filters_group group_id='.$atts['group_id'].']');
109
  new ET_Builder_Module_br_filters_group;
110
  }
111
  }
112
+
includes/fixes.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ //Fix for theme that not support WooCommerce
3
+ if( ! function_exists('berocket_aapf_wcshortcode_is_filtering_fix_custom') ) {
4
+ function berocket_aapf_wcshortcode_is_filtering_fix_custom($is_filtering) {
5
+ if( has_filter( 'woocommerce_shortcode_products_query', array( 'WC_Template_Loader', 'unsupported_archive_layered_nav_compatibility' ) ) ) {
6
+ $is_filtering = true;
7
+ }
8
+ return $is_filtering;
9
+ }
10
+ }
11
+ add_filter('berocket_aapf_wcshortcode_is_filtering', 'berocket_aapf_wcshortcode_is_filtering_fix_custom');
includes/functions.php CHANGED
@@ -180,44 +180,97 @@ if ( ! function_exists( 'br_get_selected_term' ) ) {
180
  * @return array selected terms
181
  */
182
  function br_get_selected_term( $taxonomy ) {
183
- $term = array();
184
  if ( ! empty($_POST['terms']) ) {
185
  foreach ( $_POST['terms'] as $p_term ) {
186
  if ( ! empty($p_term[0]) and $p_term[0] == $taxonomy ) {
187
- $term[] = ( empty($p_term[1]) ? '' : $p_term[1] );
188
  }
189
  }
190
  }
191
  if ( ! empty($_POST['limits']) ) {
192
- foreach ( $_POST['limits'] as $p_term ) {
193
- if ( ! empty($p_term[0]) && $p_term[0] == $taxonomy ) {
194
- if ( ! is_numeric( $p_term[1] ) || ! is_numeric( $p_term[2] ) ) {
195
- $all_terms_name = array();
196
- $terms = get_terms( $p_term[0] );
197
- $is_numeric = true;
198
- foreach ( $terms as $term_ar ) {
199
- array_push( $all_terms_name, $term_ar->name );
200
- if( ! is_numeric( substr( $term_ar->name[0], 0, 1 ) ) ) {
201
- $is_numeric = false;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
  }
 
203
  }
204
- if( $is_numeric ) {
205
- sort( $all_terms_name, SORT_NUMERIC );
 
 
206
  } else {
207
- sort( $all_terms_name );
208
  }
209
- $start_terms = array_search( $p_term[1], $all_terms_name );
210
- $end_terms = array_search( $p_term[2], $all_terms_name );
211
- $all_terms_name = array_slice( $all_terms_name, $start_terms, ( $end_terms - $start_terms + 1 ) );
212
- foreach ( $all_terms_name as $term_name ) {
213
- $term_id = get_term_by ( 'name', $term_name, $taxonomy );
214
- $term[] = $term_id->term_id;
215
  }
216
  }
217
  }
218
  }
219
  }
220
- return $term;
221
  }
222
  }
223
 
@@ -609,7 +662,10 @@ if( ! function_exists( 'br_aapf_args_converter' ) ) {
609
  }
610
  }
611
  } else {
612
- $_POST['limits'][] = array( "pa_" . $attribute, $min, $max );
 
 
 
613
  }
614
  }
615
  }
180
  * @return array selected terms
181
  */
182
  function br_get_selected_term( $taxonomy ) {
183
+ $term_ids = array();
184
  if ( ! empty($_POST['terms']) ) {
185
  foreach ( $_POST['terms'] as $p_term ) {
186
  if ( ! empty($p_term[0]) and $p_term[0] == $taxonomy ) {
187
+ $term_ids[] = ( empty($p_term[1]) ? '' : $p_term[1] );
188
  }
189
  }
190
  }
191
  if ( ! empty($_POST['limits']) ) {
192
+ foreach ( $_POST['limits'] as $v ) {
193
+ if ( ! empty($v[0]) && $v[0] == $taxonomy ) {
194
+ $v[1] = urldecode( $v[1] );
195
+ $v[2] = urldecode( $v[2] );
196
+ $all_terms_name = array();
197
+ $all_terms_slug = array();
198
+ $terms = get_terms( $v[0] );
199
+
200
+ $wc_order_by = wc_attribute_orderby( $v[0] );
201
+ BeRocket_AAPF_Widget::sort_terms( $terms, array(
202
+ "wc_order_by" => $wc_order_by,
203
+ "order_values_by" => '',
204
+ "filter_type" => 'attribute',
205
+ "order_values_type"=> SORT_ASC
206
+ ) );
207
+ $is_numeric = true;
208
+ $is_with_string = false;
209
+ if( is_wp_error ( $all_terms_name ) ) {
210
+ BeRocket_updater::$error_log[] = $all_terms_name->errors;
211
+ }
212
+ if( ! is_numeric($v[1]) || ! is_numeric($v[2]) ) {
213
+ $is_with_string = true;
214
+ }
215
+ foreach ( $terms as $term ) {
216
+ if( ! is_numeric( substr( $term->name[0], 0, 1 ) ) ) {
217
+ $is_numeric = false;
218
+ }
219
+ if( ! is_numeric( $term->name ) ) {
220
+ $is_with_string = true;
221
+ }
222
+ array_push( $all_terms_name, $term->slug );
223
+ array_push( $all_terms_slug, $term->name );
224
+ }
225
+ if( $is_numeric ) {
226
+ array_multisort( $all_terms_slug, SORT_NUMERIC, $all_terms_name, $all_terms_slug );
227
+ } else {
228
+ //array_multisort( $all_terms_name, $all_terms_name, $all_terms_slug );
229
+ }
230
+ $taxonomy_terms = get_terms(array('fields' => 'id=>slug', 'taxonomy' => $v[0]));
231
+ if( $is_with_string ) {
232
+ $start_terms = array_search( $v[1], $all_terms_name );
233
+ $end_terms = array_search( $v[2], $all_terms_name );
234
+ $all_terms_name = array_slice( $all_terms_name, $start_terms, ( $end_terms - $start_terms + 1 ) );
235
+ $search = $all_terms_name;
236
+ } else {
237
+ $start_terms = false;
238
+ $end_terms = false;
239
+ $previous_pos = false;
240
+ $search = array();
241
+ foreach($all_terms_slug as $term_pos => $term) {
242
+ if( $term >= $v[1] && $start_terms === false ) {
243
+ $start_terms = $term_pos;
244
+ }
245
+ if( $end_terms === false ) {
246
+ if( $term > $v[2] ) {
247
+ if( $previous_pos !== false ) {
248
+ $end_terms = $previous_pos;
249
+ }
250
+ } elseif( $term == $v[2] ) {
251
+ $end_terms = $term_pos;
252
+ }
253
  }
254
+ $previous_pos = $term_pos;
255
  }
256
+ if( $start_terms > $end_terms ) {
257
+ $search = array();
258
+ } elseif( $v[1] > $v[2] ) {
259
+ $search = array();
260
  } else {
261
+ $search = array_slice( $all_terms_name, $start_terms, ( $end_terms - $start_terms + 1 ) );
262
  }
263
+ }
264
+ foreach($search as $search_el) {
265
+ $id = array_search($search_el, $taxonomy_terms);
266
+ if( $id !== FALSE ) {
267
+ $term_ids[] = $id;
 
268
  }
269
  }
270
  }
271
  }
272
  }
273
+ return $term_ids;
274
  }
275
  }
276
 
662
  }
663
  }
664
  } else {
665
+ if( taxonomy_exists('pa_'.$attribute) ) {
666
+ $attribute = 'pa_'.$attribute;
667
+ }
668
+ $_POST['limits'][] = array( $attribute, $min, $max );
669
  }
670
  }
671
  }
includes/new_widget.php CHANGED
@@ -178,23 +178,28 @@ class BeRocket_new_AAPF_Widget_single extends WP_Widget
178
  if( ! empty($filter_data['hide_group']['desktop']) ) {
179
  $additional_class[] = 'berocket_hide_single_widget_on_desktop';
180
  }
 
 
 
181
  $additional_class = array_unique($additional_class);
182
  if( ! empty($filter_data['widget_type']) && ($filter_data['widget_type'] == 'update_button' || $filter_data['widget_type'] == 'reset_button' ) ) {
183
  $search_berocket_hidden_clickable = array_search('berocket_hidden_clickable', $additional_class);
184
  if( $search_berocket_hidden_clickable !== FALSE ) {
185
  unset($additional_class[$search_berocket_hidden_clickable]);
186
  }
187
- echo '<div class="berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . implode(' ', $additional_class) . '" data-id="' . $instance['filter_id'] . '">';
188
  } else {
189
  if( ! empty($args['widget_inline_style']) ) {
190
- $classes_arr = 'berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . ' '.implode(' ', $additional_class);
191
  $classes_arr = explode(' ', preg_replace('!\s+!', ' ', $classes_arr));
192
  $classes_arr = '.' . implode('.', $classes_arr);
193
  echo '<style>'.$classes_arr.' .berocket_aapf_widget {' . $args['widget_inline_style'] . '}</style>';
194
  }
195
  echo '<div class="berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . ' '.implode(' ', $additional_class).'" data-id="' . $instance['filter_id'] . '" style="'.br_get_value_from_array($args, 'inline_style').'">';
196
  }
197
- the_widget( 'BeRocket_AAPF_widget', $filter_data, $args);
 
 
198
  echo '</div>';
199
  }
200
  public static function check_widget_by_instance($instance) {
178
  if( ! empty($filter_data['hide_group']['desktop']) ) {
179
  $additional_class[] = 'berocket_hide_single_widget_on_desktop';
180
  }
181
+ if( ! empty($filter_data['reset_hide']) && $filter_data['widget_type'] == 'reset_button' ) {
182
+ $additional_class[] = $filter_data['reset_hide'];
183
+ }
184
  $additional_class = array_unique($additional_class);
185
  if( ! empty($filter_data['widget_type']) && ($filter_data['widget_type'] == 'update_button' || $filter_data['widget_type'] == 'reset_button' ) ) {
186
  $search_berocket_hidden_clickable = array_search('berocket_hidden_clickable', $additional_class);
187
  if( $search_berocket_hidden_clickable !== FALSE ) {
188
  unset($additional_class[$search_berocket_hidden_clickable]);
189
  }
190
+ echo '<div class="berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . ' ' . implode(' ', $additional_class) . '" data-id="' . $instance['filter_id'] . '">';
191
  } else {
192
  if( ! empty($args['widget_inline_style']) ) {
193
+ $classes_arr = 'berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . ' ' . implode(' ', $additional_class);
194
  $classes_arr = explode(' ', preg_replace('!\s+!', ' ', $classes_arr));
195
  $classes_arr = '.' . implode('.', $classes_arr);
196
  echo '<style>'.$classes_arr.' .berocket_aapf_widget {' . $args['widget_inline_style'] . '}</style>';
197
  }
198
  echo '<div class="berocket_single_filter_widget berocket_single_filter_widget_' . $instance['filter_id'] . ' ' . $custom_class . ' '.implode(' ', $additional_class).'" data-id="' . $instance['filter_id'] . '" style="'.br_get_value_from_array($args, 'inline_style').'">';
199
  }
200
+ if( apply_filters('BeRocket_AAPF_widget_old_display_conditions', true, $filter_data, $instance, $args) ) {
201
+ the_widget( 'BeRocket_AAPF_widget', $filter_data, $args);
202
+ }
203
  echo '</div>';
204
  }
205
  public static function check_widget_by_instance($instance) {
includes/visual-composer.php CHANGED
@@ -57,4 +57,4 @@ if( class_exists('WPBakeryShortCode') && function_exists('vc_map') ) {
57
  ) );
58
  }
59
  }
60
- add_action('vc_before_init', 'berocket_filter_vc_before_init', 100000);
57
  ) );
58
  }
59
  }
60
+
includes/widget.php CHANGED
@@ -471,6 +471,11 @@ class BeRocket_AAPF_Widget extends WP_Widget {
471
  }
472
  }
473
 
 
 
 
 
 
474
  if( apply_filters( 'berocket_aapf_widget_display_custom_filter', false, berocket_isset($widget_type), $instance, $args, $this ) ) return '';
475
 
476
  if ( ! empty($widget_type) && $widget_type == 'update_button' ) {
@@ -529,6 +534,8 @@ class BeRocket_AAPF_Widget extends WP_Widget {
529
 
530
  if( $type == "slider" ) {
531
  $operator = 'OR';
 
 
532
  }
533
 
534
  $terms = $sort_terms = $price_range = array();
@@ -789,12 +796,6 @@ class BeRocket_AAPF_Widget extends WP_Widget {
789
  if( !$scroll_theme ) $scroll_theme = 'dark';
790
  if( $filter_type == 'custom_taxonomy' )
791
  $attribute = $custom_taxonomy;
792
-
793
- if( empty($br_options['ajax_site']) ) {
794
- do_action('br_footer_script');
795
- } else {
796
- echo '<script>jQuery(document).ready(function() {if(typeof(berocket_filters_first_load) == "function") {berocket_filters_first_load();}});</script>';
797
- }
798
  if( ! isset($attribute_count) || $attribute_count == '' ) {
799
  $attribute_count = br_get_value_from_array($br_options,'attribute_count');
800
  }
@@ -977,7 +978,7 @@ class BeRocket_AAPF_Widget extends WP_Widget {
977
  if( ! empty($stringed_is_numeric) ) {
978
  array_multisort( $all_terms_slug, SORT_NUMERIC, $all_terms_slug, $all_terms_name );
979
  } else {
980
- array_multisort( $all_terms_name, $all_terms_name, $all_terms_slug );
981
  }
982
  }
983
  $widget_error_log['all_terms_slug'] = (isset($all_terms_slug) ? $all_terms_slug : null);
471
  }
472
  }
473
 
474
+ if( empty($br_options['ajax_site']) ) {
475
+ do_action('br_footer_script');
476
+ } else {
477
+ echo '<script>jQuery(document).ready(function() {if(typeof(berocket_filters_first_load) == "function") {berocket_filters_first_load();}});</script>';
478
+ }
479
  if( apply_filters( 'berocket_aapf_widget_display_custom_filter', false, berocket_isset($widget_type), $instance, $args, $this ) ) return '';
480
 
481
  if ( ! empty($widget_type) && $widget_type == 'update_button' ) {
534
 
535
  if( $type == "slider" ) {
536
  $operator = 'OR';
537
+ $order_values_by = '';
538
+ $order_values_type = 'asc';
539
  }
540
 
541
  $terms = $sort_terms = $price_range = array();
796
  if( !$scroll_theme ) $scroll_theme = 'dark';
797
  if( $filter_type == 'custom_taxonomy' )
798
  $attribute = $custom_taxonomy;
 
 
 
 
 
 
799
  if( ! isset($attribute_count) || $attribute_count == '' ) {
800
  $attribute_count = br_get_value_from_array($br_options,'attribute_count');
801
  }
978
  if( ! empty($stringed_is_numeric) ) {
979
  array_multisort( $all_terms_slug, SORT_NUMERIC, $all_terms_slug, $all_terms_name );
980
  } else {
981
+ //array_multisort( $all_terms_name, $all_terms_name, $all_terms_slug );
982
  }
983
  }
984
  $widget_error_log['all_terms_slug'] = (isset($all_terms_slug) ? $all_terms_slug : null);
includes/wizard.php CHANGED
@@ -560,4 +560,3 @@ class BeRocket_AAPF_Wizard {
560
  wp_redirect( admin_url( 'post-new.php?post_type=br_product_filter&aapf=singlewizard' ) );
561
  }
562
  }
563
- new BeRocket_AAPF_Wizard();
560
  wp_redirect( admin_url( 'post-new.php?post_type=br_product_filter&aapf=singlewizard' ) );
561
  }
562
  }
 
js/admin.js CHANGED
@@ -514,21 +514,31 @@ var berocket_admin_filter_types_by_attr = {
514
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
515
  $('.berocket_aapf_admin_search_box', $parent).hide();
516
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).show();
517
- } else if( $(this).val() == 'update_button' || $(this).val() == 'reset_button' ) {
 
518
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
519
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
520
  $('.berocket_aapf_admin_search_box', $parent).hide();
521
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
 
 
 
 
 
 
 
522
  } else if( $(this).val() == 'selected_area' ) {
523
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
524
  $('.berocket_aapf_admin_search_box', $parent).hide();
525
  $('.berocket_aapf_admin_widget_selected_area', $parent).show();
526
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
 
527
  } else if( $(this).val() == 'search_box' ) {
528
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
529
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
530
  $('.berocket_aapf_admin_search_box', $parent).show();
531
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
 
532
  }
533
  });
534
 
514
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
515
  $('.berocket_aapf_admin_search_box', $parent).hide();
516
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).show();
517
+ $('.berocket_widget_reset_button_block', $parent).hide();
518
+ } else if( $(this).val() == 'update_button' ) {
519
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
520
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
521
  $('.berocket_aapf_admin_search_box', $parent).hide();
522
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
523
+ $('.berocket_widget_reset_button_block', $parent).hide();
524
+ } else if( $(this).val() == 'reset_button' ) {
525
+ $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
526
+ $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
527
+ $('.berocket_aapf_admin_search_box', $parent).hide();
528
+ $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
529
+ $('.berocket_widget_reset_button_block', $parent).show();
530
  } else if( $(this).val() == 'selected_area' ) {
531
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
532
  $('.berocket_aapf_admin_search_box', $parent).hide();
533
  $('.berocket_aapf_admin_widget_selected_area', $parent).show();
534
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
535
+ $('.berocket_widget_reset_button_block', $parent).hide();
536
  } else if( $(this).val() == 'search_box' ) {
537
  $('.berocket_aapf_admin_filter_widget_content', $parent).hide();
538
  $('.berocket_aapf_admin_widget_selected_area', $parent).hide();
539
  $('.berocket_aapf_admin_search_box', $parent).show();
540
  $('.berocket_product_category_value_limit, .berocket_widget_output_limitation_block', $parent).hide();
541
+ $('.berocket_widget_reset_button_block', $parent).hide();
542
  }
543
  });
544
 
js/widget.min.js CHANGED
@@ -301,7 +301,7 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
301
  }
302
  }
303
 
304
- function get_widget_selected_filters() {
305
  search_box = false;
306
  search_block = $(document);
307
  check_berocket_aapf_widget_product_filters = [];
@@ -656,6 +656,7 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
656
  }
657
  berocket_aapf_attribute_data.loaded = true;
658
  berocket_product_recount();
 
659
  $('.berocket_aapf_widget_loading').remove();
660
  berocket_aapf_widget_first_page_jump = true;
661
  berocket_aapf_404_jump_fail = false;
@@ -940,11 +941,14 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
940
  }
941
  if( the_ajax_script.hide_empty_value ) {
942
  jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
943
- if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').not('.berocket_term_depth_0').length ) {
944
- jQuery(o).parents('.berocket_aapf_widget-wrapper').parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').hide();
 
 
945
  }
946
  });
947
  }
 
948
  update_data_containers();
949
  update_selected_area();
950
  }
@@ -1421,6 +1425,7 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
1421
  berocket_aapf_child_parent_loaded = true;
1422
  berocket_product_recount();
1423
  }
 
1424
  }
1425
  }
1426
 
@@ -1486,6 +1491,7 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
1486
  berocket_aapf_child_parent_loaded = true;
1487
  berocket_product_recount();
1488
  }
 
1489
  }
1490
  }).on('slide', function( event, ui ) {
1491
  $o = $(ui.handle).parents('div.berocket_filter_slider');
@@ -1836,7 +1842,28 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
1836
  });
1837
  }
1838
 
 
 
 
 
 
 
 
 
 
 
 
 
1839
  berocket_filters_first_load = function() {
 
 
 
 
 
 
 
 
 
1840
  if( $('.berocket_wc_shortcode_fix').length ) {
1841
  berocket_new_product_recount($('.berocket_wc_shortcode_fix'));
1842
  $('.berocket_wc_shortcode_fix').html('');
@@ -1873,11 +1900,11 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
1873
 
1874
  if( the_ajax_script.hide_empty_value ) {
1875
  jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
1876
- if( jQuery(o).parents('.berocket_search_box_block').parents('.berocket_search_box_block').length == 0 ) {
1877
- if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').not('.berocket_term_depth_0').length ) {
1878
- jQuery(o).parents('.berocket_aapf_widget-wrapper').hide();
1879
  } else {
1880
- jQuery(o).parents('.berocket_aapf_widget-wrapper').show();
1881
  }
1882
  }
1883
  });
@@ -1885,6 +1912,7 @@ var updateProducts, berocket_set_slider, berocket_product_recount, global_ajax_d
1885
  if( the_ajax_script.use_select2 && $(".berocket_aapf_widget select").length && typeof $(".berocket_aapf_widget select").select2 == 'function' ) {
1886
  $(".berocket_aapf_widget select").select2({width:'100%'});
1887
  }
 
1888
  }
1889
  berocket_filters_first_load();
1890
  $(document).on('click', '.br_child_toggle', function() {
301
  }
302
  }
303
 
304
+ get_widget_selected_filters = function() {
305
  search_box = false;
306
  search_block = $(document);
307
  check_berocket_aapf_widget_product_filters = [];
656
  }
657
  berocket_aapf_attribute_data.loaded = true;
658
  berocket_product_recount();
659
+ berocket_reset_button_hide_not();
660
  $('.berocket_aapf_widget_loading').remove();
661
  berocket_aapf_widget_first_page_jump = true;
662
  berocket_aapf_404_jump_fail = false;
941
  }
942
  if( the_ajax_script.hide_empty_value ) {
943
  jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
944
+ if( jQuery(o).parents('.berocket_search_box_block').parents('.berocket_search_box_block').length == 0 && jQuery(o).parents('.br_child_parent_wrapper').length == 0 ) {
945
+ if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').length ) {
946
+ jQuery(o).parents('.berocket_aapf_widget-wrapper').addClass('berocket_hiden_without_visible_values').hide().parents('.widget.widget_berocket_aapf, .widget.widget_berocket_aapf_single').hide();
947
+ }
948
  }
949
  });
950
  }
951
+ berocket_reset_button_hide_not();
952
  update_data_containers();
953
  update_selected_area();
954
  }
1425
  berocket_aapf_child_parent_loaded = true;
1426
  berocket_product_recount();
1427
  }
1428
+ berocket_reset_button_hide_not();
1429
  }
1430
  }
1431
 
1491
  berocket_aapf_child_parent_loaded = true;
1492
  berocket_product_recount();
1493
  }
1494
+ berocket_reset_button_hide_not();
1495
  }
1496
  }).on('slide', function( event, ui ) {
1497
  $o = $(ui.handle).parents('div.berocket_filter_slider');
1842
  });
1843
  }
1844
 
1845
+ berocket_reset_button_hide_not = function() {
1846
+ jQuery('.berocket_single_filter_widget .berocket_aapf_reset_button').parents('.berocket_aapf_widget').show();
1847
+ if( ! jQuery('.berocket_aapf_widget-wrapper:not(".berocket_hiden_without_visible_values")').length ) {
1848
+ jQuery('.berocket_single_filter_widget.berocket_no_filters .berocket_aapf_reset_button').parents('.berocket_aapf_widget').hide();
1849
+ }
1850
+ if( get_widget_selected_filters().length ) {
1851
+ jQuery('.berocket_single_filter_widget .berocket_aapf_reset_button').parents('.berocket_aapf_widget').show();
1852
+ } else {
1853
+ jQuery('.berocket_single_filter_widget.berocket_not_selected .berocket_aapf_reset_button').parents('.berocket_aapf_widget').hide();
1854
+ }
1855
+ }
1856
+
1857
  berocket_filters_first_load = function() {
1858
+ if( $(window).width() <= 767 ) {
1859
+ $('.berocket_hide_single_widget_on_mobile').remove();
1860
+ }
1861
+ if( $(window).width() > 767 && $(window).width() <= 1024 ) {
1862
+ $('.berocket_hide_single_widget_on_tablet').remove();
1863
+ }
1864
+ if( $(window).width() > 1024 ) {
1865
+ $('.berocket_hide_single_widget_on_desktop').remove();
1866
+ }
1867
  if( $('.berocket_wc_shortcode_fix').length ) {
1868
  berocket_new_product_recount($('.berocket_wc_shortcode_fix'));
1869
  $('.berocket_wc_shortcode_fix').html('');
1900
 
1901
  if( the_ajax_script.hide_empty_value ) {
1902
  jQuery('.berocket_aapf_widget:not(.berocket_aapf_widget_selected_area)').each(function(i, o) {
1903
+ if( jQuery(o).parents('.berocket_search_box_block').parents('.berocket_search_box_block').length == 0 && jQuery(o).parents('.br_child_parent_wrapper').length == 0 ) {
1904
+ if( jQuery(o).find('li').not('.berocket_widget_show_values').length == jQuery(o).find('li.berocket_hide_o_value').length ) {
1905
+ jQuery(o).parents('.berocket_aapf_widget-wrapper').addClass('berocket_hiden_without_visible_values').hide();
1906
  } else {
1907
+ jQuery(o).parents('.berocket_aapf_widget-wrapper').removeClass('berocket_hiden_without_visible_values').show();
1908
  }
1909
  }
1910
  });
1912
  if( the_ajax_script.use_select2 && $(".berocket_aapf_widget select").length && typeof $(".berocket_aapf_widget select").select2 == 'function' ) {
1913
  $(".berocket_aapf_widget select").select2({width:'100%'});
1914
  }
1915
+ berocket_reset_button_hide_not();
1916
  }
1917
  berocket_filters_first_load();
1918
  $(document).on('click', '.br_child_toggle', function() {
main.php CHANGED
@@ -4,6 +4,10 @@ define( "BeRocket_AJAX_cache_expire", '21600' );
4
  define( "AAPF_TEMPLATE_PATH", plugin_dir_path( __FILE__ ) . "templates/" );
5
  load_plugin_textdomain('BeRocket_AJAX_domain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/');
6
  require_once(plugin_dir_path( __FILE__ ).'berocket/framework.php');
 
 
 
 
7
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
8
  require_once dirname( __FILE__ ) . '/wizard/main.php';
9
  include_once(plugin_dir_path( __FILE__ ) . "includes/compatibility/product-table.php");
@@ -20,9 +24,6 @@ class BeRocket_AAPF extends BeRocket_Framework {
20
  'split' => '/',
21
  );
22
  function __construct () {
23
- if( is_admin() ) {
24
- require_once dirname( __FILE__ ) . '/includes/wizard.php';
25
- }
26
  $this->info = array(
27
  'id' => 1,
28
  'version' => BeRocket_AJAX_filters_version,
@@ -138,6 +139,23 @@ class BeRocket_AAPF extends BeRocket_Framework {
138
  );
139
  $this->feature_list = array();
140
  $this->framework_data['fontawesome_frontend'] = true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
141
  parent::__construct( $this );
142
 
143
  if ( ! function_exists('is_network_admin') || ! is_network_admin() ) {
@@ -241,6 +259,12 @@ class BeRocket_AAPF extends BeRocket_Framework {
241
  if( ! empty($option['disable_font_awesome']) ) {
242
  wp_dequeue_style( 'font-awesome' );
243
  }
 
 
 
 
 
 
244
  }
245
  public function plugins_loaded() {
246
  if( function_exists('wmc_get_price') ) {
@@ -297,6 +321,9 @@ class BeRocket_AAPF extends BeRocket_Framework {
297
  'icon' => 'unlock-alt',
298
  'link' => admin_url( 'admin.php?page=berocket_account' )
299
  ),
 
 
 
300
  ),
301
  array(
302
  'General' => array(
@@ -782,6 +809,12 @@ class BeRocket_AAPF extends BeRocket_Framework {
782
  "value" => "",
783
  ),
784
  ),
 
 
 
 
 
 
785
  )
786
  );
787
  }
@@ -1019,6 +1052,7 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
1019
  }
1020
  public function admin_init () {
1021
  parent::admin_init();
 
1022
  if ( is_admin() ) {
1023
  /* BeRocket WordPress Admin menu styles */
1024
  wp_register_style(
@@ -1483,6 +1517,7 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
1483
  global $br_wc_query;
1484
  $br_wc_query = $query_vars;
1485
  add_action( 'wp_footer', array( $this, 'wp_footer_widget'), 99999 );
 
1486
  return $query_vars;
1487
  }
1488
  public function display_products() {
@@ -1645,9 +1680,6 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
1645
  self::$error_log['3_user_filters'] = $args;
1646
  }
1647
 
1648
- if(!session_id()) {
1649
- session_start();
1650
- }
1651
  global $berocket_filters_session;
1652
  if( ! empty($args['tax_query']) ) {
1653
  $_SESSION['BeRocket_filters'] = array('terms' => $_POST['terms']);
@@ -2176,34 +2208,33 @@ jQuery(document).on('change', '.br_selected_area_show', br_selected_area_show);
2176
  wp_register_style( 'jquery-ui-datepick', plugins_url( 'css/jquery-ui.min.css', __FILE__ ) );
2177
 
2178
  global $wpdb;
2179
- $is_database = get_option( 'br_filters_color_database' );
2180
  $type = 'berocket_term';
2181
  $table_name = $wpdb->prefix . $type . 'meta';
2182
- if ( ! $is_database ) {
2183
- if ( ! empty ( $wpdb->charset ) ) {
2184
- $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
2185
- }
2186
- if ( ! empty ( $wpdb->collate ) ) {
2187
- $charset_collate .= " COLLATE {$wpdb->collate}";
2188
- }
2189
-
2190
- $sql = "CREATE TABLE IF NOT EXISTS {$table_name} (
2191
- meta_id bigint(20) NOT NULL AUTO_INCREMENT,
2192
- {$type}_id bigint(20) NOT NULL default 0,
2193
-
2194
- meta_key varchar(255) DEFAULT NULL,
2195
- meta_value longtext DEFAULT NULL,
2196
-
2197
- UNIQUE KEY meta_id (meta_id)
2198
- ) {$charset_collate};";
2199
-
2200
- require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
2201
- dbDelta( $sql );
2202
- update_option( 'br_filters_color_database', true );
2203
- }
2204
  $variable_name = $type . 'meta';
2205
  $wpdb->$variable_name = $table_name;
2206
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2207
  public function wp_print_footer_scripts() {
2208
  $br_options = $this->get_option();
2209
  wp_enqueue_style( 'berocket_aapf_widget-style' );
4
  define( "AAPF_TEMPLATE_PATH", plugin_dir_path( __FILE__ ) . "templates/" );
5
  load_plugin_textdomain('BeRocket_AJAX_domain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/');
6
  require_once(plugin_dir_path( __FILE__ ).'berocket/framework.php');
7
+ foreach (glob(__DIR__ . "/includes/*.php") as $filename)
8
+ {
9
+ include_once($filename);
10
+ }
11
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
12
  require_once dirname( __FILE__ ) . '/wizard/main.php';
13
  include_once(plugin_dir_path( __FILE__ ) . "includes/compatibility/product-table.php");
24
  'split' => '/',
25
  );
26
  function __construct () {
 
 
 
27
  $this->info = array(
28
  'id' => 1,
29
  'version' => BeRocket_AJAX_filters_version,
139
  );
140
  $this->feature_list = array();
141
  $this->framework_data['fontawesome_frontend'] = true;
142
+ $this->active_libraries = array('addons');
143
+
144
+ if( is_admin() ) {
145
+ require_once dirname( __FILE__ ) . '/includes/wizard.php';
146
+ }
147
+ if( method_exists($this, 'include_once_files') ) {
148
+ $this->include_once_files();
149
+ }
150
+ if ( $this->init_validation() ) {
151
+ //INIT ADITIONAL CLASSES
152
+ BeRocket_AAPF_single_filter::getInstance();
153
+ BeRocket_AAPF_group_filters::getInstance();
154
+ new BeRocket_AAPF_Wizard();
155
+ add_action('et_builder_modules_load', 'berocket_filter_et_builder_ready');
156
+ add_action('vc_before_init', 'berocket_filter_vc_before_init', 100000);
157
+ //----------------------
158
+ }
159
  parent::__construct( $this );
160
 
161
  if ( ! function_exists('is_network_admin') || ! is_network_admin() ) {
259
  if( ! empty($option['disable_font_awesome']) ) {
260
  wp_dequeue_style( 'font-awesome' );
261
  }
262
+ global $wp_query;
263
+ if ( apply_filters( 'berocket_aapf_is_filtered_page_check', ! empty($_GET['filters']), 'get_filter_args', $wp_query ) ) {
264
+ if(!session_id()) {
265
+ session_start();
266
+ }
267
+ }
268
  }
269
  public function plugins_loaded() {
270
  if( function_exists('wmc_get_price') ) {
321
  'icon' => 'unlock-alt',
322
  'link' => admin_url( 'admin.php?page=berocket_account' )
323
  ),
324
+ 'Addons' => array(
325
+ 'icon' => 'plus',
326
+ ),
327
  ),
328
  array(
329
  'General' => array(
809
  "value" => "",
810
  ),
811
  ),
812
+ 'Addons' => array(
813
+ 'addons' => array(
814
+ 'section' => 'addons',
815
+ "value" => "",
816
+ ),
817
+ ),
818
  )
819
  );
820
  }
1052
  }
1053
  public function admin_init () {
1054
  parent::admin_init();
1055
+ $this->create_berocket_term_table();
1056
  if ( is_admin() ) {
1057
  /* BeRocket WordPress Admin menu styles */
1058
  wp_register_style(
1517
  global $br_wc_query;
1518
  $br_wc_query = $query_vars;
1519
  add_action( 'wp_footer', array( $this, 'wp_footer_widget'), 99999 );
1520
+ $query_vars = apply_filters('berocket_filters_query_vars_already_filtered', $query_vars, berocket_isset($_POST['terms']), berocket_isset($_POST['limits_arr']));
1521
  return $query_vars;
1522
  }
1523
  public function display_products() {
1680
  self::$error_log['3_user_filters'] = $args;
1681
  }
1682
 
 
 
 
1683
  global $berocket_filters_session;
1684
  if( ! empty($args['tax_query']) ) {
1685
  $_SESSION['BeRocket_filters'] = array('terms' => $_POST['terms']);
2208
  wp_register_style( 'jquery-ui-datepick', plugins_url( 'css/jquery-ui.min.css', __FILE__ ) );
2209
 
2210
  global $wpdb;
 
2211
  $type = 'berocket_term';
2212
  $table_name = $wpdb->prefix . $type . 'meta';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2213
  $variable_name = $type . 'meta';
2214
  $wpdb->$variable_name = $table_name;
2215
  }
2216
+ public function create_berocket_term_table() {
2217
+ global $wpdb;
2218
+ $type = 'berocket_term';
2219
+ $table_name = $wpdb->prefix . $type . 'meta';
2220
+ if ( ! empty ( $wpdb->charset ) ) {
2221
+ $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
2222
+ }
2223
+ if ( ! empty ( $wpdb->collate ) ) {
2224
+ $charset_collate .= " COLLATE {$wpdb->collate}";
2225
+ }
2226
+
2227
+ $sql = "CREATE TABLE {$table_name} (
2228
+ meta_id bigint(20) NOT NULL AUTO_INCREMENT,
2229
+ {$type}_id bigint(20) NOT NULL default 0,
2230
+ meta_key varchar(255) DEFAULT NULL,
2231
+ meta_value longtext DEFAULT NULL,
2232
+ UNIQUE KEY meta_id (meta_id)
2233
+ ) {$charset_collate};";
2234
+
2235
+ require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
2236
+ dbDelta( $sql );
2237
+ }
2238
  public function wp_print_footer_scripts() {
2239
  $br_options = $this->get_option();
2240
  wp_enqueue_style( 'berocket_aapf_widget-style' );
readme.txt CHANGED
@@ -4,8 +4,8 @@ Contributors: dholovnia, berocket
4
  Donate link: http://berocket.com/product/woocommerce-ajax-products-filter
5
  Tags: filters, product filters, ajax product filters, ajax filter, ajax filter widget, color filter, size filter, product onsale filter, product preview, product category filter, product reset filter, product sort by filter, stock filter, product tag filter, price range filter, price box filter, advanced product filters, woocommerce filters, woocommerce product filters, woocommerce products filter, woocommerce ajax product filters, widget, plugin, woocommerce item filters, filters plugin, ajax filters plugin, filter woocommerce products, filter woocommerce products plugin, wc filters, wc filters products, wc products filters, wc ajax products filters, wc product filters, wc advanced product filters, woocommerce layered nav, woocommerce layered navigation, ajax filtered nav, ajax filtered navigation, price filter, ajax price filter, woocommerce product sorting, sidebar filter, sidebar ajax filter, taxonomy filter, category filter, attribute filter, attributes filter, woocommerce product sort, ajax products filter plugin for woocommerce, rocket, berocket, berocket woocommerce ajax products filter
6
  Requires at least: 4.0
7
- Tested up to: 5.0.3
8
- Stable tag: 1.3.0.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -187,6 +187,11 @@ You can try this plugin's admin side [here](http://berocket.com/product/woocomme
187
 
188
  == Changelog ==
189
 
 
 
 
 
 
190
  = 1.3.0.2 =
191
  * Enhancement - Features tab added
192
  * Fix - Font Awesome 5 on some themes
4
  Donate link: http://berocket.com/product/woocommerce-ajax-products-filter
5
  Tags: filters, product filters, ajax product filters, ajax filter, ajax filter widget, color filter, size filter, product onsale filter, product preview, product category filter, product reset filter, product sort by filter, stock filter, product tag filter, price range filter, price box filter, advanced product filters, woocommerce filters, woocommerce product filters, woocommerce products filter, woocommerce ajax product filters, widget, plugin, woocommerce item filters, filters plugin, ajax filters plugin, filter woocommerce products, filter woocommerce products plugin, wc filters, wc filters products, wc products filters, wc ajax products filters, wc product filters, wc advanced product filters, woocommerce layered nav, woocommerce layered navigation, ajax filtered nav, ajax filtered navigation, price filter, ajax price filter, woocommerce product sorting, sidebar filter, sidebar ajax filter, taxonomy filter, category filter, attribute filter, attributes filter, woocommerce product sort, ajax products filter plugin for woocommerce, rocket, berocket, berocket woocommerce ajax products filter
6
  Requires at least: 4.0
7
+ Tested up to: 5.1
8
+ Stable tag: 1.3.1
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
187
 
188
  == Changelog ==
189
 
190
+ = 1.3.1 =
191
+ * Enhancement - Update BeRocket plugin framework 2.1
192
+ * Fix - Hide widgets without values
193
+ * Fix - Hide on mobile/tablet/desktop
194
+
195
  = 1.3.0.2 =
196
  * Enhancement - Features tab added
197
  * Fix - Font Awesome 5 on some themes
templates/filter_post.php CHANGED
@@ -618,6 +618,14 @@ $custom_taxonomies = get_taxonomies( array( "_builtin" => false, "public" => tru
618
  </div>
619
  <?php do_action( 'berocket_widget_filter_output_limitation_end', $post_name, $instance); ?>
620
  </div>
 
 
 
 
 
 
 
 
621
  <script>
622
  if( typeof(br_widget_set) == 'function' )
623
  br_widget_set();
618
  </div>
619
  <?php do_action( 'berocket_widget_filter_output_limitation_end', $post_name, $instance); ?>
620
  </div>
621
+ <div class="berocket_widget_reset_button_block"<?php if( empty($instance['widget_type']) || $instance['widget_type'] != 'reset_button' ) echo ' style="display: none";'?>>
622
+ <label class="br_admin_center"><?php _e('Hide button', 'BeRocket_AJAX_domain') ?></label>
623
+ <select id="<?php echo 'operator'; ?>" name="<?php echo $post_name.'[reset_hide]'; ?>" class="br_select_menu_left">
624
+ <option <?php if ( empty($instance['reset_hide']) ) echo 'selected'; ?> value="">Do not hide</option>
625
+ <option <?php if ( $instance['reset_hide'] == 'berocket_no_filters' ) echo 'selected'; ?> value="berocket_no_filters">Hide only when no filters on page</option>
626
+ <option <?php if ( $instance['reset_hide'] == 'berocket_no_filters berocket_not_selected' ) echo 'selected'; ?> value="berocket_no_filters berocket_not_selected">Hide when no filters on page or page not filtered</option>
627
+ </select>
628
+ </div>
629
  <script>
630
  if( typeof(br_widget_set) == 'function' )
631
  br_widget_set();
woocommerce-filters.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Advanced AJAX Product Filters for WooCommerce
4
  * Plugin URI: https://wordpress.org/plugins/woocommerce-ajax-filters/
5
  * Description: Unlimited AJAX products filters to make your shop perfect
6
- * Version: 1.3.0.2
7
  * Author: BeRocket
8
  * Requires at least: 4.0
9
  * Author URI: http://berocket.com
@@ -11,8 +11,8 @@
11
  * License URI: http://berocket.com/license
12
  * Text Domain: BeRocket_AJAX_domain
13
  * Domain Path: /languages/
14
- * WC tested up to: 3.5.3
15
  */
16
- define( "BeRocket_AJAX_filters_version", '1.3.0.2' );
17
  define( "BeRocket_AJAX_filters_file", __FILE__ );
18
  include_once('main.php');
3
  * Plugin Name: Advanced AJAX Product Filters for WooCommerce
4
  * Plugin URI: https://wordpress.org/plugins/woocommerce-ajax-filters/
5
  * Description: Unlimited AJAX products filters to make your shop perfect
6
+ * Version: 1.3.1
7
  * Author: BeRocket
8
  * Requires at least: 4.0
9
  * Author URI: http://berocket.com
11
  * License URI: http://berocket.com/license
12
  * Text Domain: BeRocket_AJAX_domain
13
  * Domain Path: /languages/
14
+ * WC tested up to: 3.5.5
15
  */
16
+ define( "BeRocket_AJAX_filters_version", '1.3.1' );
17
  define( "BeRocket_AJAX_filters_file", __FILE__ );
18
  include_once('main.php');