Royal Elementor Addons (Header Footer Builder, Mega Menu Builder, Popups, Post Grid, Woocommerce Product Grid, Slider, Parallax Image, Free Elementor Widgets & Elementor Templates. Elementor WooCommerce Builder) - Version 1.3.55

Version Description

Download this release

Release Info

Developer wproyal
Plugin Icon wp plugin Royal Elementor Addons (Header Footer Builder, Mega Menu Builder, Popups, Post Grid, Woocommerce Product Grid, Slider, Parallax Image, Free Elementor Widgets & Elementor Templates. Elementor WooCommerce Builder)
Version 1.3.55
Comparing to
See all releases

Code changes from version 1.3.54 to 1.3.55

admin/import/class-parsers.php CHANGED
@@ -1,1041 +1,1041 @@
1
- <?php
2
- if ( ! defined( 'ABSPATH' ) ) {
3
- exit; // Exit if accessed directly.
4
- }
5
-
6
- /**
7
- * WordPress eXtended RSS file parser implementations
8
- *
9
- * @package WordPress
10
- * @subpackage Importer
11
- */
12
-
13
- /**
14
- * WXR Parser that uses regular expressions. Fallback for installs without an XML parser.
15
- */
16
- class WXR_Parser_Regex {
17
- /**
18
- * @var bool
19
- */
20
- private $has_gzip;
21
-
22
- private $authors = [];
23
- private $posts = [];
24
- private $categories = [];
25
- private $tags = [];
26
- private $terms = [];
27
- private $base_url = '';
28
- private $base_blog_url = '';
29
-
30
- /**
31
- * @param string $file
32
- *
33
- * @return array|\WP_Error
34
- */
35
- public function parse( $file ) {
36
- $wxr_version = '';
37
- $in_multiline = false;
38
-
39
- $multiline_content = '';
40
-
41
- $multiline_tags = [
42
- 'item' => [
43
- 'posts',
44
- function ( $post ) {
45
- return $this->process_post( $post );
46
- },
47
- ],
48
- 'wp:category' => [
49
- 'categories',
50
- function ( $category ) {
51
- return $this->process_category( $category );
52
- },
53
- ],
54
- 'wp:tag' => [
55
- 'tags',
56
- function ( $tag ) {
57
- return $this->process_tag( $tag );
58
- },
59
- ],
60
- 'wp:term' => [
61
- 'terms',
62
- function ( $term ) {
63
- return $this->process_term( $term );
64
- },
65
- ],
66
- ];
67
-
68
- $fp = $this->fopen( $file, 'r' );
69
- if ( $fp ) {
70
- while ( ! $this->feof( $fp ) ) {
71
- $importline = rtrim( $this->fgets( $fp ) );
72
-
73
- if ( ! $wxr_version && preg_match( '|<wp:wxr_version>(\d+\.\d+)</wp:wxr_version>|', $importline, $version ) ) {
74
- $wxr_version = $version[1];
75
- }
76
-
77
- if ( false !== strpos( $importline, '<wp:base_site_url>' ) ) {
78
- preg_match( '|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url );
79
- $this->base_url = $url[1];
80
- continue;
81
- }
82
-
83
- if ( false !== strpos( $importline, '<wp:base_blog_url>' ) ) {
84
- preg_match( '|<wp:base_blog_url>(.*?)</wp:base_blog_url>|is', $importline, $blog_url );
85
- $this->base_blog_url = $blog_url[1];
86
- continue;
87
- } else {
88
- $this->base_blog_url = $this->base_url;
89
- }
90
-
91
- if ( false !== strpos( $importline, '<wp:author>' ) ) {
92
- preg_match( '|<wp:author>(.*?)</wp:author>|is', $importline, $author );
93
- $a = $this->process_author( $author[1] );
94
- $this->authors[ $a['author_login'] ] = $a;
95
- continue;
96
- }
97
-
98
- foreach ( $multiline_tags as $tag => $handler ) {
99
- // Handle multi-line tags on a singular line.
100
- if ( preg_match( '|<'. $tag .'>(.*?)</'. $tag .'>|is', $importline, $matches ) ) {
101
- $this->{$handler[0]}[] = call_user_func( $handler[1], $matches[1] );
102
-
103
- continue;
104
- }
105
-
106
- $pos = strpos( $importline, "<$tag>" );
107
-
108
- if ( false !== $pos ) {
109
- // Take note of any content after the opening tag.
110
- $multiline_content = trim( substr( $importline, $pos + strlen( $tag ) + 2 ) );
111
-
112
- // We don't want to have this line added to `$is_multiline` below.
113
- $importline = '';
114
- $in_multiline = $tag;
115
-
116
- continue;
117
- }
118
-
119
- $pos = strpos( $importline, "</$tag>" );
120
-
121
- if ( false !== $pos ) {
122
- $in_multiline = false;
123
- $multiline_content .= trim( substr( $importline, 0, $pos ) );
124
-
125
- $this->{$handler[0]}[] = call_user_func( $handler[1], $multiline_content );
126
- }
127
- }
128
-
129
- if ( $in_multiline && $importline ) {
130
- $multiline_content .= $importline . "\n";
131
- }
132
- }
133
-
134
- $this->fclose( $fp );
135
- }
136
-
137
- if ( ! $wxr_version ) {
138
- return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
139
- }
140
-
141
- return [
142
- 'authors' => $this->authors,
143
- 'posts' => $this->posts,
144
- 'categories' => $this->categories,
145
- 'tags' => $this->tags,
146
- 'terms' => $this->terms,
147
- 'base_url' => $this->base_url,
148
- 'base_blog_url' => $this->base_blog_url,
149
- 'version' => $wxr_version,
150
- ];
151
- }
152
-
153
- private function process_category( $category ) {
154
- $term = [
155
- 'term_id' => $this->get_tag( $category, 'wp:term_id' ),
156
- 'cat_name' => $this->get_tag( $category, 'wp:cat_name' ),
157
- 'category_nicename' => $this->get_tag( $category, 'wp:category_nicename' ),
158
- 'category_parent' => $this->get_tag( $category, 'wp:category_parent' ),
159
- 'category_description' => $this->get_tag( $category, 'wp:category_description' ),
160
- ];
161
-
162
- $term_meta = $this->process_meta( $category, 'wp:termmeta' );
163
- if ( ! empty( $term_meta ) ) {
164
- $term['termmeta'] = $term_meta;
165
- }
166
-
167
- return $term;
168
- }
169
-
170
- private function process_tag( $tag ) {
171
- $term = [
172
- 'term_id' => $this->get_tag( $tag, 'wp:term_id' ),
173
- 'tag_name' => $this->get_tag( $tag, 'wp:tag_name' ),
174
- 'tag_slug' => $this->get_tag( $tag, 'wp:tag_slug' ),
175
- 'tag_description' => $this->get_tag( $tag, 'wp:tag_description' ),
176
- ];
177
-
178
- $term_meta = $this->process_meta( $tag, 'wp:termmeta' );
179
- if ( ! empty( $term_meta ) ) {
180
- $term['termmeta'] = $term_meta;
181
- }
182
-
183
- return $term;
184
- }
185
-
186
- private function process_term( $term ) {
187
- $term_data = [
188
- 'term_id' => $this->get_tag( $term, 'wp:term_id' ),
189
- 'term_taxonomy' => $this->get_tag( $term, 'wp:term_taxonomy' ),
190
- 'slug' => $this->get_tag( $term, 'wp:term_slug' ),
191
- 'term_parent' => $this->get_tag( $term, 'wp:term_parent' ),
192
- 'term_name' => $this->get_tag( $term, 'wp:term_name' ),
193
- 'term_description' => $this->get_tag( $term, 'wp:term_description' ),
194
- ];
195
-
196
- $term_meta = $this->process_meta( $term, 'wp:termmeta' );
197
- if ( ! empty( $term_meta ) ) {
198
- $term_data['termmeta'] = $term_meta;
199
- }
200
-
201
- return $term_data;
202
- }
203
-
204
- private function process_meta( $string, $tag ) {
205
- $parsed_meta = [];
206
-
207
- preg_match_all( "|<$tag>(.+?)</$tag>|is", $string, $meta );
208
-
209
- if ( ! isset( $meta[1] ) ) {
210
- return $parsed_meta;
211
- }
212
-
213
- foreach ( $meta[1] as $m ) {
214
- $parsed_meta[] = [
215
- 'key' => $this->get_tag( $m, 'wp:meta_key' ),
216
- 'value' => $this->get_tag( $m, 'wp:meta_value' ),
217
- ];
218
- }
219
-
220
- return $parsed_meta;
221
- }
222
-
223
- private function process_author( $a ) {
224
- return [
225
- 'author_id' => $this->get_tag( $a, 'wp:author_id' ),
226
- 'author_login' => $this->get_tag( $a, 'wp:author_login' ),
227
- 'author_email' => $this->get_tag( $a, 'wp:author_email' ),
228
- 'author_display_name' => $this->get_tag( $a, 'wp:author_display_name' ),
229
- 'author_first_name' => $this->get_tag( $a, 'wp:author_first_name' ),
230
- 'author_last_name' => $this->get_tag( $a, 'wp:author_last_name' ),
231
- ];
232
- }
233
-
234
- private function process_post( $post ) {
235
- $normalize_tag_callback = function ( $matches ) {
236
- return $this->normalize_tag( $matches );
237
- };
238
-
239
- $post_id = $this->get_tag( $post, 'wp:post_id' );
240
- $post_title = $this->get_tag( $post, 'title' );
241
- $post_date = $this->get_tag( $post, 'wp:post_date' );
242
- $post_date_gmt = $this->get_tag( $post, 'wp:post_date_gmt' );
243
- $comment_status = $this->get_tag( $post, 'wp:comment_status' );
244
- $ping_status = $this->get_tag( $post, 'wp:ping_status' );
245
- $status = $this->get_tag( $post, 'wp:status' );
246
- $post_name = $this->get_tag( $post, 'wp:post_name' );
247
- $post_parent = $this->get_tag( $post, 'wp:post_parent' );
248
- $menu_order = $this->get_tag( $post, 'wp:menu_order' );
249
- $post_type = $this->get_tag( $post, 'wp:post_type' );
250
- $post_password = $this->get_tag( $post, 'wp:post_password' );
251
- $is_sticky = $this->get_tag( $post, 'wp:is_sticky' );
252
- $guid = $this->get_tag( $post, 'guid' );
253
- $post_author = $this->get_tag( $post, 'dc:creator' );
254
-
255
- $post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
256
- $post_excerpt = preg_replace_callback( '|<(/?[A-Z]+)|', $normalize_tag_callback, $post_excerpt );
257
- $post_excerpt = str_replace( '<br>', '<br />', $post_excerpt );
258
- $post_excerpt = str_replace( '<hr>', '<hr />', $post_excerpt );
259
-
260
- $post_content = $this->get_tag( $post, 'content:encoded' );
261
- $post_content = preg_replace_callback( '|<(/?[A-Z]+)|', $normalize_tag_callback, $post_content );
262
- $post_content = str_replace( '<br>', '<br />', $post_content );
263
- $post_content = str_replace( '<hr>', '<hr />', $post_content );
264
-
265
- $postdata = compact( 'post_id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt', 'post_title', 'status', 'post_name', 'comment_status', 'ping_status', 'guid', 'post_parent', 'menu_order', 'post_type', 'post_password', 'is_sticky' );
266
-
267
- $attachment_url = $this->get_tag( $post, 'wp:attachment_url' );
268
- if ( $attachment_url ) {
269
- $postdata['attachment_url'] = $attachment_url;
270
- }
271
-
272
- preg_match_all( '|<category domain="([^"]+?)" nicename="([^"]+?)">(.+?)</category>|is', $post, $terms, PREG_SET_ORDER );
273
- foreach ( $terms as $t ) {
274
- $post_terms[] = [
275
- 'slug' => $t[2],
276
- 'domain' => $t[1],
277
- 'name' => str_replace( [ '<![CDATA[', ']]>' ], '', $t[3] ),
278
- ];
279
- }
280
- if ( ! empty( $post_terms ) ) {
281
- $postdata['terms'] = $post_terms;
282
- }
283
-
284
- preg_match_all( '|<wp:comment>(.+?)</wp:comment>|is', $post, $comments );
285
- $comments = $comments[1];
286
- if ( $comments ) {
287
- foreach ( $comments as $comment ) {
288
- $post_comments[] = [
289
- 'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
290
- 'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
291
- 'comment_author_email' => $this->get_tag( $comment, 'wp:comment_author_email' ),
292
- 'comment_author_IP' => $this->get_tag( $comment, 'wp:comment_author_IP' ),
293
- 'comment_author_url' => $this->get_tag( $comment, 'wp:comment_author_url' ),
294
- 'comment_date' => $this->get_tag( $comment, 'wp:comment_date' ),
295
- 'comment_date_gmt' => $this->get_tag( $comment, 'wp:comment_date_gmt' ),
296
- 'comment_content' => $this->get_tag( $comment, 'wp:comment_content' ),
297
- 'comment_approved' => $this->get_tag( $comment, 'wp:comment_approved' ),
298
- 'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
299
- 'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
300
- 'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
301
- 'commentmeta' => $this->process_meta( $comment, 'wp:commentmeta' ),
302
- ];
303
- }
304
- }
305
- if ( ! empty( $post_comments ) ) {
306
- $postdata['comments'] = $post_comments;
307
- }
308
-
309
- $post_meta = $this->process_meta( $post, 'wp:postmeta' );
310
- if ( ! empty( $post_meta ) ) {
311
- $postdata['postmeta'] = $post_meta;
312
- }
313
-
314
- return $postdata;
315
- }
316
-
317
- private function get_tag( $string, $tag ) {
318
- preg_match( "|<$tag.*?>(.*?)</$tag>|is", $string, $return );
319
- if ( isset( $return[1] ) ) {
320
- if ( substr( $return[1], 0, 9 ) == '<![CDATA[' ) {
321
- if ( strpos( $return[1], ']]]]><![CDATA[>' ) !== false ) {
322
- preg_match_all( '|<!\[CDATA\[(.*?)\]\]>|s', $return[1], $matches );
323
- $return = '';
324
- foreach ( $matches[1] as $match ) {
325
- $return .= $match;
326
- }
327
- } else {
328
- $return = preg_replace( '|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1] );
329
- }
330
- } else {
331
- $return = $return[1];
332
- }
333
- } else {
334
- $return = '';
335
- }
336
-
337
- return $return;
338
- }
339
-
340
- private function normalize_tag( $matches ) {
341
- return '<' . strtolower( $matches[1] );
342
- }
343
-
344
- private function fopen( $filename, $mode = 'r' ) {
345
- if ( $this->has_gzip ) {
346
- return gzopen( $filename, $mode );
347
- }
348
-
349
- return fopen( $filename, $mode );
350
- }
351
-
352
- private function feof( $fp ) {
353
- if ( $this->has_gzip ) {
354
- return gzeof( $fp );
355
- }
356
-
357
- return feof( $fp );
358
- }
359
-
360
- private function fgets( $fp, $len = 8192 ) {
361
- if ( $this->has_gzip ) {
362
- return gzgets( $fp, $len );
363
- }
364
-
365
- return fgets( $fp, $len );
366
- }
367
-
368
- private function fclose( $fp ) {
369
- if ( $this->has_gzip ) {
370
- return gzclose( $fp );
371
- }
372
-
373
- return fclose( $fp );
374
- }
375
-
376
- public function __construct() {
377
- $this->has_gzip = is_callable( 'gzopen' );
378
- }
379
- }
380
-
381
- /**
382
- * WordPress eXtended RSS file parser implementations,
383
- * Originally made by WordPress part of WordPress/Importer.
384
- * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser-simplexml.php
385
- *
386
- * What was done:
387
- * Reformat of the code.
388
- * Removed variable '$internal_errors'.
389
- * Changed text domain.
390
- */
391
-
392
- /**
393
- * WXR Parser that makes use of the SimpleXML PHP extension.
394
- */
395
- class WXR_Parser_SimpleXML {
396
-
397
- /**
398
- * @param string $file
399
- *
400
- * @return array|\WP_Error
401
- */
402
- public function parse( $file ) {
403
- $authors = [];
404
- $posts = [];
405
- $categories = [];
406
- $tags = [];
407
- $terms = [];
408
-
409
- libxml_use_internal_errors( true );
410
-
411
- $dom = new \DOMDocument();
412
- $old_value = null;
413
-
414
- $libxml_disable_entity_loader_exists = function_exists( 'libxml_disable_entity_loader' );
415
-
416
- if ( $libxml_disable_entity_loader_exists ) {
417
- $old_value = libxml_disable_entity_loader( true ); // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated
418
- }
419
-
420
- $success = $dom->loadXML( file_get_contents( $file ) );
421
-
422
- if ( $libxml_disable_entity_loader_exists && ! is_null( $old_value ) ) {
423
- libxml_disable_entity_loader( $old_value ); // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated
424
- }
425
-
426
- if ( ! $success || isset( $dom->doctype ) ) {
427
- return new WP_Error( 'SimpleXML_parse_error', esc_html__( 'There was an error when reading this WXR file', 'wpr-addons' ), libxml_get_errors() );
428
- }
429
-
430
- $xml = simplexml_import_dom( $dom );
431
- unset( $dom );
432
-
433
- // Halt if loading produces an error.
434
- if ( ! $xml ) {
435
- return new WP_Error( 'SimpleXML_parse_error', esc_html__( 'There was an error when reading this WXR file', 'wpr-addons' ), libxml_get_errors() );
436
- }
437
-
438
- $wxr_version = $xml->xpath( '/rss/channel/wp:wxr_version' );
439
- if ( ! $wxr_version ) {
440
- return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
441
- }
442
-
443
- $wxr_version = (string) trim( $wxr_version[0] );
444
- // Confirm that we are dealing with the correct file format.
445
- if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) ) {
446
- return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
447
- }
448
-
449
- $base_url = $xml->xpath( '/rss/channel/wp:base_site_url' );
450
- $base_url = (string) trim( isset( $base_url[0] ) ? $base_url[0] : '' );
451
-
452
- $base_blog_url = $xml->xpath( '/rss/channel/wp:base_blog_url' );
453
- if ( $base_blog_url ) {
454
- $base_blog_url = (string) trim( $base_blog_url[0] );
455
- } else {
456
- $base_blog_url = $base_url;
457
- }
458
-
459
- $page_on_front = $xml->xpath( '/rss/channel/wp:page_on_front' );
460
-
461
- if ( $page_on_front ) {
462
- $page_on_front = (int) $page_on_front[0];
463
- }
464
-
465
- $namespaces = $xml->getDocNamespaces();
466
- if ( ! isset( $namespaces['wp'] ) ) {
467
- $namespaces['wp'] = 'http://wordpress.org/export/1.1/';
468
- }
469
- if ( ! isset( $namespaces['excerpt'] ) ) {
470
- $namespaces['excerpt'] = 'http://wordpress.org/export/1.1/excerpt/';
471
- }
472
-
473
- // Grab authors.
474
- foreach ( $xml->xpath( '/rss/channel/wp:author' ) as $author_arr ) {
475
- $a = $author_arr->children( $namespaces['wp'] );
476
- $login = (string) $a->author_login;
477
- $authors[ $login ] = [
478
- 'author_id' => (int) $a->author_id,
479
- 'author_login' => $login,
480
- 'author_email' => (string) $a->author_email,
481
- 'author_display_name' => (string) $a->author_display_name,
482
- 'author_first_name' => (string) $a->author_first_name,
483
- 'author_last_name' => (string) $a->author_last_name,
484
- ];
485
- }
486
-
487
- // Grab cats, tags and terms.
488
- foreach ( $xml->xpath( '/rss/channel/wp:category' ) as $term_arr ) {
489
- $t = $term_arr->children( $namespaces['wp'] );
490
- $category = [
491
- 'term_id' => (int) $t->term_id,
492
- 'category_nicename' => (string) $t->category_nicename,
493
- 'category_parent' => (string) $t->category_parent,
494
- 'cat_name' => (string) $t->cat_name,
495
- 'category_description' => (string) $t->category_description,
496
- ];
497
-
498
- foreach ( $t->termmeta as $meta ) {
499
- $category['termmeta'][] = [
500
- 'key' => (string) $meta->meta_key,
501
- 'value' => (string) $meta->meta_value,
502
- ];
503
- }
504
-
505
- $categories[] = $category;
506
- }
507
-
508
- foreach ( $xml->xpath( '/rss/channel/wp:tag' ) as $term_arr ) {
509
- $t = $term_arr->children( $namespaces['wp'] );
510
- $tag = [
511
- 'term_id' => (int) $t->term_id,
512
- 'tag_slug' => (string) $t->tag_slug,
513
- 'tag_name' => (string) $t->tag_name,
514
- 'tag_description' => (string) $t->tag_description,
515
- ];
516
-
517
- foreach ( $t->termmeta as $meta ) {
518
- $tag['termmeta'][] = [
519
- 'key' => (string) $meta->meta_key,
520
- 'value' => (string) $meta->meta_value,
521
- ];
522
- }
523
-
524
- $tags[] = $tag;
525
- }
526
-
527
- foreach ( $xml->xpath( '/rss/channel/wp:term' ) as $term_arr ) {
528
- $t = $term_arr->children( $namespaces['wp'] );
529
- $term = [
530
- 'term_id' => (int) $t->term_id,
531
- 'term_taxonomy' => (string) $t->term_taxonomy,
532
- 'slug' => (string) $t->term_slug,
533
- 'term_parent' => (string) $t->term_parent,
534
- 'term_name' => (string) $t->term_name,
535
- 'term_description' => (string) $t->term_description,
536
- ];
537
-
538
- foreach ( $t->termmeta as $meta ) {
539
- $term['termmeta'][] = [
540
- 'key' => (string) $meta->meta_key,
541
- 'value' => (string) $meta->meta_value,
542
- ];
543
- }
544
-
545
- $terms[] = $term;
546
- }
547
-
548
- // Grab posts.
549
- foreach ( $xml->channel->item as $item ) {
550
- $post = [
551
- 'post_title' => (string) $item->title,
552
- 'guid' => (string) $item->guid,
553
- ];
554
-
555
- $dc = $item->children( 'http://purl.org/dc/elements/1.1/' );
556
- $post['post_author'] = (string) $dc->creator;
557
-
558
- $content = $item->children( 'http://purl.org/rss/1.0/modules/content/' );
559
- $excerpt = $item->children( $namespaces['excerpt'] );
560
- $post['post_content'] = (string) $content->encoded;
561
- $post['post_excerpt'] = (string) $excerpt->encoded;
562
-
563
- $wp = $item->children( $namespaces['wp'] );
564
- $post['post_id'] = (int) $wp->post_id;
565
- $post['post_date'] = (string) $wp->post_date;
566
- $post['post_date_gmt'] = (string) $wp->post_date_gmt;
567
- $post['comment_status'] = (string) $wp->comment_status;
568
- $post['ping_status'] = (string) $wp->ping_status;
569
- $post['post_name'] = (string) $wp->post_name;
570
- $post['status'] = (string) $wp->status;
571
- $post['post_parent'] = (int) $wp->post_parent;
572
- $post['menu_order'] = (int) $wp->menu_order;
573
- $post['post_type'] = (string) $wp->post_type;
574
- $post['post_password'] = (string) $wp->post_password;
575
- $post['is_sticky'] = (int) $wp->is_sticky;
576
-
577
- if ( isset( $wp->attachment_url ) ) {
578
- $post['attachment_url'] = (string) $wp->attachment_url;
579
- }
580
-
581
- foreach ( $item->category as $c ) {
582
- $att = $c->attributes();
583
- if ( isset( $att['nicename'] ) ) {
584
- $post['terms'][] = [
585
- 'name' => (string) $c,
586
- 'slug' => (string) $att['nicename'],
587
- 'domain' => (string) $att['domain'],
588
- ];
589
- }
590
- }
591
-
592
- foreach ( $wp->postmeta as $meta ) {
593
- $post['postmeta'][] = [
594
- 'key' => (string) $meta->meta_key,
595
- 'value' => (string) $meta->meta_value,
596
- ];
597
- }
598
-
599
- foreach ( $wp->comment as $comment ) {
600
- $meta = [];
601
- if ( isset( $comment->commentmeta ) ) {
602
- foreach ( $comment->commentmeta as $m ) {
603
- $meta[] = [
604
- 'key' => (string) $m->meta_key,
605
- 'value' => (string) $m->meta_value,
606
- ];
607
- }
608
- }
609
-
610
- $post['comments'][] = [
611
- 'comment_id' => (int) $comment->comment_id,
612
- 'comment_author' => (string) $comment->comment_author,
613
- 'comment_author_email' => (string) $comment->comment_author_email,
614
- 'comment_author_IP' => (string) $comment->comment_author_IP,
615
- 'comment_author_url' => (string) $comment->comment_author_url,
616
- 'comment_date' => (string) $comment->comment_date,
617
- 'comment_date_gmt' => (string) $comment->comment_date_gmt,
618
- 'comment_content' => (string) $comment->comment_content,
619
- 'comment_approved' => (string) $comment->comment_approved,
620
- 'comment_type' => (string) $comment->comment_type,
621
- 'comment_parent' => (string) $comment->comment_parent,
622
- 'comment_user_id' => (int) $comment->comment_user_id,
623
- 'commentmeta' => $meta,
624
- ];
625
- }
626
-
627
- $posts[] = $post;
628
- }
629
-
630
- return [
631
- 'authors' => $authors,
632
- 'posts' => $posts,
633
- 'categories' => $categories,
634
- 'tags' => $tags,
635
- 'terms' => $terms,
636
- 'base_url' => $base_url,
637
- 'base_blog_url' => $base_blog_url,
638
- 'page_on_front' => $page_on_front,
639
- 'version' => $wxr_version,
640
- ];
641
- }
642
- }
643
-
644
-
645
- /**
646
- * WordPress eXtended RSS file parser implementations,
647
- * Originally made by WordPress part of WordPress/Importer.
648
- * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser-xml.php
649
- *
650
- * What was done:
651
- * Reformat of the code.
652
- * Added PHPDOC.
653
- * Changed text domain.
654
- * Added clear() method.
655
- * Added undeclared class properties.
656
- * Changed methods visibility.
657
- */
658
-
659
- /**
660
- * WXR Parser that makes use of the XML Parser PHP extension.
661
- */
662
- class WXR_Parser_XML {
663
- private static $wp_tags = [
664
- 'wp:post_id',
665
- 'wp:post_date',
666
- 'wp:post_date_gmt',
667
- 'wp:comment_status',
668
- 'wp:ping_status',
669
- 'wp:attachment_url',
670
- 'wp:status',
671
- 'wp:post_name',
672
- 'wp:post_parent',
673
- 'wp:menu_order',
674
- 'wp:post_type',
675
- 'wp:post_password',
676
- 'wp:is_sticky',
677
- 'wp:term_id',
678
- 'wp:category_nicename',
679
- 'wp:category_parent',
680
- 'wp:cat_name',
681
- 'wp:category_description',
682
- 'wp:tag_slug',
683
- 'wp:tag_name',
684
- 'wp:tag_description',
685
- 'wp:term_taxonomy',
686
- 'wp:term_parent',
687
- 'wp:term_name',
688
- 'wp:term_description',
689
- 'wp:author_id',
690
- 'wp:author_login',
691
- 'wp:author_email',
692
- 'wp:author_display_name',
693
- 'wp:author_first_name',
694
- 'wp:author_last_name',
695
- ];
696
-
697
- private static $wp_sub_tags = [
698
- 'wp:comment_id',
699
- 'wp:comment_author',
700
- 'wp:comment_author_email',
701
- 'wp:comment_author_url',
702
- 'wp:comment_author_IP',
703
- 'wp:comment_date',
704
- 'wp:comment_date_gmt',
705
- 'wp:comment_content',
706
- 'wp:comment_approved',
707
- 'wp:comment_type',
708
- 'wp:comment_parent',
709
- 'wp:comment_user_id',
710
- ];
711
-
712
- /**
713
- * @var string
714
- */
715
- private $wxr_version;
716
-
717
- /**
718
- * @var string
719
- */
720
- private $cdata;
721
-
722
- /**
723
- * @var array
724
- */
725
- private $data;
726
-
727
- /**
728
- * @var array
729
- */
730
- private $sub_data;
731
-
732
- /**
733
- * @var boolean
734
- */
735
- private $in_post;
736
-
737
- /**
738
- * @var boolean
739
- */
740
- private $in_tag;
741
-
742
- /**
743
- * @var boolean
744
- */
745
- private $in_sub_tag;
746
-
747
- /**
748
- * @var array
749
- */
750
- private $authors;
751
-
752
- /**
753
- * @var array
754
- */
755
- private $posts;
756
-
757
- /**
758
- * @var array
759
- */
760
- private $term;
761
-
762
- /**
763
- * @var array
764
- */
765
- private $category;
766
-
767
- /**
768
- * @var array
769
- */
770
- private $tag;
771
-
772
- /**
773
- * @var string
774
- */
775
- private $base_url;
776
-
777
- /**
778
- * @var string
779
- */
780
- private $base_blog_url;
781
-
782
- /**
783
- * @param string $file
784
- *
785
- * @return array|WP_Error
786
- */
787
- public function parse( $file ) {
788
- $this->clear();
789
-
790
- $xml = xml_parser_create( 'UTF-8' );
791
- xml_parser_set_option( $xml, XML_OPTION_SKIP_WHITE, 1 );
792
- xml_parser_set_option( $xml, XML_OPTION_CASE_FOLDING, 0 );
793
- xml_set_object( $xml, $this );
794
-
795
- xml_set_character_data_handler( $xml, function ( $parser, $cdata ) {
796
- $this->cdata( $cdata );
797
- } );
798
-
799
- $tag_open_callback = function ( $parse, $tag, $attr ) {
800
- $this->tag_open( $tag, $attr );
801
- };
802
-
803
- $tag_close_callback = function ( $parser, $tag ) {
804
- $this->tag_close( $tag );
805
- };
806
-
807
- xml_set_element_handler( $xml, $tag_open_callback, $tag_close_callback );
808
-
809
- if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
810
- $current_line = xml_get_current_line_number( $xml );
811
- $current_column = xml_get_current_column_number( $xml );
812
- $error_code = xml_get_error_code( $xml );
813
- $error_string = xml_error_string( $error_code );
814
-
815
- return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', [
816
- $current_line,
817
- $current_column,
818
- $error_string,
819
- ] );
820
- }
821
- xml_parser_free( $xml );
822
-
823
- if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) ) {
824
- return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
825
- }
826
-
827
- return array(
828
- 'authors' => $this->authors,
829
- 'posts' => $this->posts,
830
- 'categories' => $this->category,
831
- 'tags' => $this->tag,
832
- 'terms' => $this->term,
833
- 'base_url' => $this->base_url,
834
- 'base_blog_url' => $this->base_blog_url,
835
- 'version' => $this->wxr_version,
836
- );
837
- }
838
-
839
- private function tag_open( $tag, $attr ) {
840
- if ( in_array( $tag, self::$wp_tags ) ) {
841
- $this->in_tag = substr( $tag, 3 );
842
-
843
- return;
844
- }
845
-
846
- if ( in_array( $tag, self::$wp_sub_tags ) ) {
847
- $this->in_sub_tag = substr( $tag, 3 );
848
-
849
- return;
850
- }
851
-
852
- switch ( $tag ) {
853
- case 'category':
854
- if ( isset( $attr['domain'], $attr['nicename'] ) ) {
855
- $this->sub_data['domain'] = $attr['domain'];
856
- $this->sub_data['slug'] = $attr['nicename'];
857
- }
858
- break;
859
- case 'item':
860
- $this->in_post = true;
861
- // No break !!!.
862
- case 'title':
863
- if ( $this->in_post ) {
864
- $this->in_tag = 'post_title';
865
- }
866
- break;
867
- case 'guid':
868
- $this->in_tag = 'guid';
869
- break;
870
- case 'dc:creator':
871
- $this->in_tag = 'post_author';
872
- break;
873
- case 'content:encoded':
874
- $this->in_tag = 'post_content';
875
- break;
876
- case 'excerpt:encoded':
877
- $this->in_tag = 'post_excerpt';
878
- break;
879
-
880
- case 'wp:term_slug':
881
- $this->in_tag = 'slug';
882
- break;
883
- case 'wp:meta_key':
884
- $this->in_sub_tag = 'key';
885
- break;
886
- case 'wp:meta_value':
887
- $this->in_sub_tag = 'value';
888
- break;
889
- }
890
- }
891
-
892
- private function cdata( $cdata ) {
893
- if ( ! trim( $cdata ) ) {
894
- return;
895
- }
896
-
897
- if ( false !== $this->in_tag || false !== $this->in_sub_tag ) {
898
- $this->cdata .= $cdata;
899
- } else {
900
- $this->cdata .= trim( $cdata );
901
- }
902
- }
903
-
904
- private function tag_close( $tag ) {
905
- switch ( $tag ) {
906
- case 'wp:comment':
907
- unset( $this->sub_data['key'], $this->sub_data['value'] ); // Remove meta sub_data.
908
- if ( ! empty( $this->sub_data ) ) {
909
- $this->data['comments'][] = $this->sub_data;
910
- }
911
- $this->sub_data = [];
912
- break;
913
- case 'wp:commentmeta':
914
- $this->sub_data['commentmeta'][] = [
915
- 'key' => $this->sub_data['key'],
916
- 'value' => $this->sub_data['value'],
917
- ];
918
- break;
919
- case 'category':
920
- if ( ! empty( $this->sub_data ) ) {
921
- $this->sub_data['name'] = $this->cdata;
922
- $this->data['terms'][] = $this->sub_data;
923
- }
924
- $this->sub_data = [];
925
- break;
926
- case 'wp:postmeta':
927
- if ( ! empty( $this->sub_data ) ) {
928
- $this->data['postmeta'][] = $this->sub_data;
929
- }
930
- $this->sub_data = [];
931
- break;
932
- case 'item':
933
- $this->posts[] = $this->data;
934
- $this->data = [];
935
- break;
936
- case 'wp:category':
937
- case 'wp:tag':
938
- case 'wp:term':
939
- $n = substr( $tag, 3 );
940
- array_push( $this->$n, $this->data );
941
- $this->data = [];
942
- break;
943
- case 'wp:termmeta':
944
- if ( ! empty( $this->sub_data ) ) {
945
- $this->data['termmeta'][] = $this->sub_data;
946
- }
947
- $this->sub_data = [];
948
- break;
949
- case 'wp:author':
950
- if ( ! empty( $this->data['author_login'] ) ) {
951
- $this->authors[ $this->data['author_login'] ] = $this->data;
952
- }
953
- $this->data = [];
954
- break;
955
- case 'wp:base_site_url':
956
- $this->base_url = $this->cdata;
957
- if ( ! isset( $this->base_blog_url ) ) {
958
- $this->base_blog_url = $this->cdata;
959
- }
960
- break;
961
- case 'wp:base_blog_url':
962
- $this->base_blog_url = $this->cdata;
963
- break;
964
- case 'wp:wxr_version':
965
- $this->wxr_version = $this->cdata;
966
- break;
967
-
968
- default:
969
- if ( $this->in_sub_tag ) {
970
- $this->sub_data[ $this->in_sub_tag ] = $this->cdata;
971
- $this->in_sub_tag = false;
972
- } elseif ( $this->in_tag ) {
973
- $this->data[ $this->in_tag ] = $this->cdata;
974
- $this->in_tag = false;
975
- }
976
- }
977
-
978
- $this->cdata = '';
979
- }
980
-
981
- private function clear() {
982
- $this->wxr_version = '';
983
-
984
- $this->cdata = '';
985
- $this->data = [];
986
- $this->sub_data = [];
987
-
988
- $this->in_post = false;
989
- $this->in_tag = false;
990
- $this->in_sub_tag = false;
991
-
992
- $this->authors = [];
993
- $this->posts = [];
994
- $this->term = [];
995
- $this->category = [];
996
- $this->tag = [];
997
- }
998
- }
999
-
1000
-
1001
- /**
1002
- * WordPress eXtended RSS file parser implementations,
1003
- * Originally made by WordPress part of WordPress/Importer.
1004
- * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser.php
1005
- *
1006
- * What was done:
1007
- * Reformat of the code.
1008
- * Changed text domain.
1009
- */
1010
-
1011
- /**
1012
- * WordPress Importer class for managing parsing of WXR files.
1013
- */
1014
- class WXR_Parser {
1015
-
1016
- public function parse( $file ) {
1017
- // Attempt to use proper XML parsers first.
1018
- if ( extension_loaded( 'simplexml' ) ) {
1019
- $parser = new WXR_Parser_SimpleXML();
1020
- $result = $parser->parse( $file );
1021
-
1022
- // If SimpleXML succeeds or this is an invalid WXR file then return the results.
1023
- if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() ) {
1024
- return $result;
1025
- }
1026
- } elseif ( extension_loaded( 'xml' ) ) {
1027
- $parser = new WXR_Parser_XML();
1028
- $result = $parser->parse( $file );
1029
-
1030
- // If XMLParser succeeds or this is an invalid WXR file then return the results.
1031
- if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() ) {
1032
- return $result;
1033
- }
1034
- }
1035
-
1036
- // Use regular expressions if nothing else available or this is bad XML.
1037
- $parser = new WXR_Parser_Regex();
1038
-
1039
- return $parser->parse( $file );
1040
- }
1041
- }
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit; // Exit if accessed directly.
4
+ }
5
+
6
+ /**
7
+ * WordPress eXtended RSS file parser implementations
8
+ *
9
+ * @package WordPress
10
+ * @subpackage Importer
11
+ */
12
+
13
+ /**
14
+ * WXR Parser that uses regular expressions. Fallback for installs without an XML parser.
15
+ */
16
+ class WXR_Parser_Regex {
17
+ /**
18
+ * @var bool
19
+ */
20
+ private $has_gzip;
21
+
22
+ private $authors = [];
23
+ private $posts = [];
24
+ private $categories = [];
25
+ private $tags = [];
26
+ private $terms = [];
27
+ private $base_url = '';
28
+ private $base_blog_url = '';
29
+
30
+ /**
31
+ * @param string $file
32
+ *
33
+ * @return array|\WP_Error
34
+ */
35
+ public function parse( $file ) {
36
+ $wxr_version = '';
37
+ $in_multiline = false;
38
+
39
+ $multiline_content = '';
40
+
41
+ $multiline_tags = [
42
+ 'item' => [
43
+ 'posts',
44
+ function ( $post ) {
45
+ return $this->process_post( $post );
46
+ },
47
+ ],
48
+ 'wp:category' => [
49
+ 'categories',
50
+ function ( $category ) {
51
+ return $this->process_category( $category );
52
+ },
53
+ ],
54
+ 'wp:tag' => [
55
+ 'tags',
56
+ function ( $tag ) {
57
+ return $this->process_tag( $tag );
58
+ },
59
+ ],
60
+ 'wp:term' => [
61
+ 'terms',
62
+ function ( $term ) {
63
+ return $this->process_term( $term );
64
+ },
65
+ ],
66
+ ];
67
+
68
+ $fp = $this->fopen( $file, 'r' );
69
+ if ( $fp ) {
70
+ while ( ! $this->feof( $fp ) ) {
71
+ $importline = rtrim( $this->fgets( $fp ) );
72
+
73
+ if ( ! $wxr_version && preg_match( '|<wp:wxr_version>(\d+\.\d+)</wp:wxr_version>|', $importline, $version ) ) {
74
+ $wxr_version = $version[1];
75
+ }
76
+
77
+ if ( false !== strpos( $importline, '<wp:base_site_url>' ) ) {
78
+ preg_match( '|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url );
79
+ $this->base_url = $url[1];
80
+ continue;
81
+ }
82
+
83
+ if ( false !== strpos( $importline, '<wp:base_blog_url>' ) ) {
84
+ preg_match( '|<wp:base_blog_url>(.*?)</wp:base_blog_url>|is', $importline, $blog_url );
85
+ $this->base_blog_url = $blog_url[1];
86
+ continue;
87
+ } else {
88
+ $this->base_blog_url = $this->base_url;
89
+ }
90
+
91
+ if ( false !== strpos( $importline, '<wp:author>' ) ) {
92
+ preg_match( '|<wp:author>(.*?)</wp:author>|is', $importline, $author );
93
+ $a = $this->process_author( $author[1] );
94
+ $this->authors[ $a['author_login'] ] = $a;
95
+ continue;
96
+ }
97
+
98
+ foreach ( $multiline_tags as $tag => $handler ) {
99
+ // Handle multi-line tags on a singular line.
100
+ if ( preg_match( '|<'. $tag .'>(.*?)</'. $tag .'>|is', $importline, $matches ) ) {
101
+ $this->{$handler[0]}[] = call_user_func( $handler[1], $matches[1] );
102
+
103
+ continue;
104
+ }
105
+
106
+ $pos = strpos( $importline, "<$tag>" );
107
+
108
+ if ( false !== $pos ) {
109
+ // Take note of any content after the opening tag.
110
+ $multiline_content = trim( substr( $importline, $pos + strlen( $tag ) + 2 ) );
111
+
112
+ // We don't want to have this line added to `$is_multiline` below.
113
+ $importline = '';
114
+ $in_multiline = $tag;
115
+
116
+ continue;
117
+ }
118
+
119
+ $pos = strpos( $importline, "</$tag>" );
120
+
121
+ if ( false !== $pos ) {
122
+ $in_multiline = false;
123
+ $multiline_content .= trim( substr( $importline, 0, $pos ) );
124
+
125
+ $this->{$handler[0]}[] = call_user_func( $handler[1], $multiline_content );
126
+ }
127
+ }
128
+
129
+ if ( $in_multiline && $importline ) {
130
+ $multiline_content .= $importline . "\n";
131
+ }
132
+ }
133
+
134
+ $this->fclose( $fp );
135
+ }
136
+
137
+ if ( ! $wxr_version ) {
138
+ return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
139
+ }
140
+
141
+ return [
142
+ 'authors' => $this->authors,
143
+ 'posts' => $this->posts,
144
+ 'categories' => $this->categories,
145
+ 'tags' => $this->tags,
146
+ 'terms' => $this->terms,
147
+ 'base_url' => $this->base_url,
148
+ 'base_blog_url' => $this->base_blog_url,
149
+ 'version' => $wxr_version,
150
+ ];
151
+ }
152
+
153
+ private function process_category( $category ) {
154
+ $term = [
155
+ 'term_id' => $this->get_tag( $category, 'wp:term_id' ),
156
+ 'cat_name' => $this->get_tag( $category, 'wp:cat_name' ),
157
+ 'category_nicename' => $this->get_tag( $category, 'wp:category_nicename' ),
158
+ 'category_parent' => $this->get_tag( $category, 'wp:category_parent' ),
159
+ 'category_description' => $this->get_tag( $category, 'wp:category_description' ),
160
+ ];
161
+
162
+ $term_meta = $this->process_meta( $category, 'wp:termmeta' );
163
+ if ( ! empty( $term_meta ) ) {
164
+ $term['termmeta'] = $term_meta;
165
+ }
166
+
167
+ return $term;
168
+ }
169
+
170
+ private function process_tag( $tag ) {
171
+ $term = [
172
+ 'term_id' => $this->get_tag( $tag, 'wp:term_id' ),
173
+ 'tag_name' => $this->get_tag( $tag, 'wp:tag_name' ),
174
+ 'tag_slug' => $this->get_tag( $tag, 'wp:tag_slug' ),
175
+ 'tag_description' => $this->get_tag( $tag, 'wp:tag_description' ),
176
+ ];
177
+
178
+ $term_meta = $this->process_meta( $tag, 'wp:termmeta' );
179
+ if ( ! empty( $term_meta ) ) {
180
+ $term['termmeta'] = $term_meta;
181
+ }
182
+
183
+ return $term;
184
+ }
185
+
186
+ private function process_term( $term ) {
187
+ $term_data = [
188
+ 'term_id' => $this->get_tag( $term, 'wp:term_id' ),
189
+ 'term_taxonomy' => $this->get_tag( $term, 'wp:term_taxonomy' ),
190
+ 'slug' => $this->get_tag( $term, 'wp:term_slug' ),
191
+ 'term_parent' => $this->get_tag( $term, 'wp:term_parent' ),
192
+ 'term_name' => $this->get_tag( $term, 'wp:term_name' ),
193
+ 'term_description' => $this->get_tag( $term, 'wp:term_description' ),
194
+ ];
195
+
196
+ $term_meta = $this->process_meta( $term, 'wp:termmeta' );
197
+ if ( ! empty( $term_meta ) ) {
198
+ $term_data['termmeta'] = $term_meta;
199
+ }
200
+
201
+ return $term_data;
202
+ }
203
+
204
+ private function process_meta( $string, $tag ) {
205
+ $parsed_meta = [];
206
+
207
+ preg_match_all( "|<$tag>(.+?)</$tag>|is", $string, $meta );
208
+
209
+ if ( ! isset( $meta[1] ) ) {
210
+ return $parsed_meta;
211
+ }
212
+
213
+ foreach ( $meta[1] as $m ) {
214
+ $parsed_meta[] = [
215
+ 'key' => $this->get_tag( $m, 'wp:meta_key' ),
216
+ 'value' => $this->get_tag( $m, 'wp:meta_value' ),
217
+ ];
218
+ }
219
+
220
+ return $parsed_meta;
221
+ }
222
+
223
+ private function process_author( $a ) {
224
+ return [
225
+ 'author_id' => $this->get_tag( $a, 'wp:author_id' ),
226
+ 'author_login' => $this->get_tag( $a, 'wp:author_login' ),
227
+ 'author_email' => $this->get_tag( $a, 'wp:author_email' ),
228
+ 'author_display_name' => $this->get_tag( $a, 'wp:author_display_name' ),
229
+ 'author_first_name' => $this->get_tag( $a, 'wp:author_first_name' ),
230
+ 'author_last_name' => $this->get_tag( $a, 'wp:author_last_name' ),
231
+ ];
232
+ }
233
+
234
+ private function process_post( $post ) {
235
+ $normalize_tag_callback = function ( $matches ) {
236
+ return $this->normalize_tag( $matches );
237
+ };
238
+
239
+ $post_id = $this->get_tag( $post, 'wp:post_id' );
240
+ $post_title = $this->get_tag( $post, 'title' );
241
+ $post_date = $this->get_tag( $post, 'wp:post_date' );
242
+ $post_date_gmt = $this->get_tag( $post, 'wp:post_date_gmt' );
243
+ $comment_status = $this->get_tag( $post, 'wp:comment_status' );
244
+ $ping_status = $this->get_tag( $post, 'wp:ping_status' );
245
+ $status = $this->get_tag( $post, 'wp:status' );
246
+ $post_name = $this->get_tag( $post, 'wp:post_name' );
247
+ $post_parent = $this->get_tag( $post, 'wp:post_parent' );
248
+ $menu_order = $this->get_tag( $post, 'wp:menu_order' );
249
+ $post_type = $this->get_tag( $post, 'wp:post_type' );
250
+ $post_password = $this->get_tag( $post, 'wp:post_password' );
251
+ $is_sticky = $this->get_tag( $post, 'wp:is_sticky' );
252
+ $guid = $this->get_tag( $post, 'guid' );
253
+ $post_author = $this->get_tag( $post, 'dc:creator' );
254
+
255
+ $post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
256
+ $post_excerpt = preg_replace_callback( '|<(/?[A-Z]+)|', $normalize_tag_callback, $post_excerpt );
257
+ $post_excerpt = str_replace( '<br>', '<br />', $post_excerpt );
258
+ $post_excerpt = str_replace( '<hr>', '<hr />', $post_excerpt );
259
+
260
+ $post_content = $this->get_tag( $post, 'content:encoded' );
261
+ $post_content = preg_replace_callback( '|<(/?[A-Z]+)|', $normalize_tag_callback, $post_content );
262
+ $post_content = str_replace( '<br>', '<br />', $post_content );
263
+ $post_content = str_replace( '<hr>', '<hr />', $post_content );
264
+
265
+ $postdata = compact( 'post_id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt', 'post_title', 'status', 'post_name', 'comment_status', 'ping_status', 'guid', 'post_parent', 'menu_order', 'post_type', 'post_password', 'is_sticky' );
266
+
267
+ $attachment_url = $this->get_tag( $post, 'wp:attachment_url' );
268
+ if ( $attachment_url ) {
269
+ $postdata['attachment_url'] = $attachment_url;
270
+ }
271
+
272
+ preg_match_all( '|<category domain="([^"]+?)" nicename="([^"]+?)">(.+?)</category>|is', $post, $terms, PREG_SET_ORDER );
273
+ foreach ( $terms as $t ) {
274
+ $post_terms[] = [
275
+ 'slug' => $t[2],
276
+ 'domain' => $t[1],
277
+ 'name' => str_replace( [ '<![CDATA[', ']]>' ], '', $t[3] ),
278
+ ];
279
+ }
280
+ if ( ! empty( $post_terms ) ) {
281
+ $postdata['terms'] = $post_terms;
282
+ }
283
+
284
+ preg_match_all( '|<wp:comment>(.+?)</wp:comment>|is', $post, $comments );
285
+ $comments = $comments[1];
286
+ if ( $comments ) {
287
+ foreach ( $comments as $comment ) {
288
+ $post_comments[] = [
289
+ 'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
290
+ 'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
291
+ 'comment_author_email' => $this->get_tag( $comment, 'wp:comment_author_email' ),
292
+ 'comment_author_IP' => $this->get_tag( $comment, 'wp:comment_author_IP' ),
293
+ 'comment_author_url' => $this->get_tag( $comment, 'wp:comment_author_url' ),
294
+ 'comment_date' => $this->get_tag( $comment, 'wp:comment_date' ),
295
+ 'comment_date_gmt' => $this->get_tag( $comment, 'wp:comment_date_gmt' ),
296
+ 'comment_content' => $this->get_tag( $comment, 'wp:comment_content' ),
297
+ 'comment_approved' => $this->get_tag( $comment, 'wp:comment_approved' ),
298
+ 'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
299
+ 'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
300
+ 'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
301
+ 'commentmeta' => $this->process_meta( $comment, 'wp:commentmeta' ),
302
+ ];
303
+ }
304
+ }
305
+ if ( ! empty( $post_comments ) ) {
306
+ $postdata['comments'] = $post_comments;
307
+ }
308
+
309
+ $post_meta = $this->process_meta( $post, 'wp:postmeta' );
310
+ if ( ! empty( $post_meta ) ) {
311
+ $postdata['postmeta'] = $post_meta;
312
+ }
313
+
314
+ return $postdata;
315
+ }
316
+
317
+ private function get_tag( $string, $tag ) {
318
+ preg_match( "|<$tag.*?>(.*?)</$tag>|is", $string, $return );
319
+ if ( isset( $return[1] ) ) {
320
+ if ( substr( $return[1], 0, 9 ) == '<![CDATA[' ) {
321
+ if ( strpos( $return[1], ']]]]><![CDATA[>' ) !== false ) {
322
+ preg_match_all( '|<!\[CDATA\[(.*?)\]\]>|s', $return[1], $matches );
323
+ $return = '';
324
+ foreach ( $matches[1] as $match ) {
325
+ $return .= $match;
326
+ }
327
+ } else {
328
+ $return = preg_replace( '|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1] );
329
+ }
330
+ } else {
331
+ $return = $return[1];
332
+ }
333
+ } else {
334
+ $return = '';
335
+ }
336
+
337
+ return $return;
338
+ }
339
+
340
+ private function normalize_tag( $matches ) {
341
+ return '<' . strtolower( $matches[1] );
342
+ }
343
+
344
+ private function fopen( $filename, $mode = 'r' ) {
345
+ if ( $this->has_gzip ) {
346
+ return gzopen( $filename, $mode );
347
+ }
348
+
349
+ return fopen( $filename, $mode );
350
+ }
351
+
352
+ private function feof( $fp ) {
353
+ if ( $this->has_gzip ) {
354
+ return gzeof( $fp );
355
+ }
356
+
357
+ return feof( $fp );
358
+ }
359
+
360
+ private function fgets( $fp, $len = 8192 ) {
361
+ if ( $this->has_gzip ) {
362
+ return gzgets( $fp, $len );
363
+ }
364
+
365
+ return fgets( $fp, $len );
366
+ }
367
+
368
+ private function fclose( $fp ) {
369
+ if ( $this->has_gzip ) {
370
+ return gzclose( $fp );
371
+ }
372
+
373
+ return fclose( $fp );
374
+ }
375
+
376
+ public function __construct() {
377
+ $this->has_gzip = is_callable( 'gzopen' );
378
+ }
379
+ }
380
+
381
+ /**
382
+ * WordPress eXtended RSS file parser implementations,
383
+ * Originally made by WordPress part of WordPress/Importer.
384
+ * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser-simplexml.php
385
+ *
386
+ * What was done:
387
+ * Reformat of the code.
388
+ * Removed variable '$internal_errors'.
389
+ * Changed text domain.
390
+ */
391
+
392
+ /**
393
+ * WXR Parser that makes use of the SimpleXML PHP extension.
394
+ */
395
+ class WXR_Parser_SimpleXML {
396
+
397
+ /**
398
+ * @param string $file
399
+ *
400
+ * @return array|\WP_Error
401
+ */
402
+ public function parse( $file ) {
403
+ $authors = [];
404
+ $posts = [];
405
+ $categories = [];
406
+ $tags = [];
407
+ $terms = [];
408
+
409
+ libxml_use_internal_errors( true );
410
+
411
+ $dom = new \DOMDocument();
412
+ $old_value = null;
413
+
414
+ $libxml_disable_entity_loader_exists = function_exists( 'libxml_disable_entity_loader' );
415
+
416
+ if ( $libxml_disable_entity_loader_exists ) {
417
+ $old_value = libxml_disable_entity_loader( true ); // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated
418
+ }
419
+
420
+ $success = $dom->loadXML( file_get_contents( $file ) );
421
+
422
+ if ( $libxml_disable_entity_loader_exists && ! is_null( $old_value ) ) {
423
+ libxml_disable_entity_loader( $old_value ); // phpcs:ignore Generic.PHP.DeprecatedFunctions.Deprecated
424
+ }
425
+
426
+ if ( ! $success || isset( $dom->doctype ) ) {
427
+ return new WP_Error( 'SimpleXML_parse_error', esc_html__( 'There was an error when reading this WXR file', 'wpr-addons' ), libxml_get_errors() );
428
+ }
429
+
430
+ $xml = simplexml_import_dom( $dom );
431
+ unset( $dom );
432
+
433
+ // Halt if loading produces an error.
434
+ if ( ! $xml ) {
435
+ return new WP_Error( 'SimpleXML_parse_error', esc_html__( 'There was an error when reading this WXR file', 'wpr-addons' ), libxml_get_errors() );
436
+ }
437
+
438
+ $wxr_version = $xml->xpath( '/rss/channel/wp:wxr_version' );
439
+ if ( ! $wxr_version ) {
440
+ return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
441
+ }
442
+
443
+ $wxr_version = (string) trim( $wxr_version[0] );
444
+ // Confirm that we are dealing with the correct file format.
445
+ if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) ) {
446
+ return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
447
+ }
448
+
449
+ $base_url = $xml->xpath( '/rss/channel/wp:base_site_url' );
450
+ $base_url = (string) trim( isset( $base_url[0] ) ? $base_url[0] : '' );
451
+
452
+ $base_blog_url = $xml->xpath( '/rss/channel/wp:base_blog_url' );
453
+ if ( $base_blog_url ) {
454
+ $base_blog_url = (string) trim( $base_blog_url[0] );
455
+ } else {
456
+ $base_blog_url = $base_url;
457
+ }
458
+
459
+ $page_on_front = $xml->xpath( '/rss/channel/wp:page_on_front' );
460
+
461
+ if ( $page_on_front ) {
462
+ $page_on_front = (int) $page_on_front[0];
463
+ }
464
+
465
+ $namespaces = $xml->getDocNamespaces();
466
+ if ( ! isset( $namespaces['wp'] ) ) {
467
+ $namespaces['wp'] = 'http://wordpress.org/export/1.1/';
468
+ }
469
+ if ( ! isset( $namespaces['excerpt'] ) ) {
470
+ $namespaces['excerpt'] = 'http://wordpress.org/export/1.1/excerpt/';
471
+ }
472
+
473
+ // Grab authors.
474
+ foreach ( $xml->xpath( '/rss/channel/wp:author' ) as $author_arr ) {
475
+ $a = $author_arr->children( $namespaces['wp'] );
476
+ $login = (string) $a->author_login;
477
+ $authors[ $login ] = [
478
+ 'author_id' => (int) $a->author_id,
479
+ 'author_login' => $login,
480
+ 'author_email' => (string) $a->author_email,
481
+ 'author_display_name' => (string) $a->author_display_name,
482
+ 'author_first_name' => (string) $a->author_first_name,
483
+ 'author_last_name' => (string) $a->author_last_name,
484
+ ];
485
+ }
486
+
487
+ // Grab cats, tags and terms.
488
+ foreach ( $xml->xpath( '/rss/channel/wp:category' ) as $term_arr ) {
489
+ $t = $term_arr->children( $namespaces['wp'] );
490
+ $category = [
491
+ 'term_id' => (int) $t->term_id,
492
+ 'category_nicename' => (string) $t->category_nicename,
493
+ 'category_parent' => (string) $t->category_parent,
494
+ 'cat_name' => (string) $t->cat_name,
495
+ 'category_description' => (string) $t->category_description,
496
+ ];
497
+
498
+ foreach ( $t->termmeta as $meta ) {
499
+ $category['termmeta'][] = [
500
+ 'key' => (string) $meta->meta_key,
501
+ 'value' => (string) $meta->meta_value,
502
+ ];
503
+ }
504
+
505
+ $categories[] = $category;
506
+ }
507
+
508
+ foreach ( $xml->xpath( '/rss/channel/wp:tag' ) as $term_arr ) {
509
+ $t = $term_arr->children( $namespaces['wp'] );
510
+ $tag = [
511
+ 'term_id' => (int) $t->term_id,
512
+ 'tag_slug' => (string) $t->tag_slug,
513
+ 'tag_name' => (string) $t->tag_name,
514
+ 'tag_description' => (string) $t->tag_description,
515
+ ];
516
+
517
+ foreach ( $t->termmeta as $meta ) {
518
+ $tag['termmeta'][] = [
519
+ 'key' => (string) $meta->meta_key,
520
+ 'value' => (string) $meta->meta_value,
521
+ ];
522
+ }
523
+
524
+ $tags[] = $tag;
525
+ }
526
+
527
+ foreach ( $xml->xpath( '/rss/channel/wp:term' ) as $term_arr ) {
528
+ $t = $term_arr->children( $namespaces['wp'] );
529
+ $term = [
530
+ 'term_id' => (int) $t->term_id,
531
+ 'term_taxonomy' => (string) $t->term_taxonomy,
532
+ 'slug' => (string) $t->term_slug,
533
+ 'term_parent' => (string) $t->term_parent,
534
+ 'term_name' => (string) $t->term_name,
535
+ 'term_description' => (string) $t->term_description,
536
+ ];
537
+
538
+ foreach ( $t->termmeta as $meta ) {
539
+ $term['termmeta'][] = [
540
+ 'key' => (string) $meta->meta_key,
541
+ 'value' => (string) $meta->meta_value,
542
+ ];
543
+ }
544
+
545
+ $terms[] = $term;
546
+ }
547
+
548
+ // Grab posts.
549
+ foreach ( $xml->channel->item as $item ) {
550
+ $post = [
551
+ 'post_title' => (string) $item->title,
552
+ 'guid' => (string) $item->guid,
553
+ ];
554
+
555
+ $dc = $item->children( 'http://purl.org/dc/elements/1.1/' );
556
+ $post['post_author'] = (string) $dc->creator;
557
+
558
+ $content = $item->children( 'http://purl.org/rss/1.0/modules/content/' );
559
+ $excerpt = $item->children( $namespaces['excerpt'] );
560
+ $post['post_content'] = (string) $content->encoded;
561
+ $post['post_excerpt'] = (string) $excerpt->encoded;
562
+
563
+ $wp = $item->children( $namespaces['wp'] );
564
+ $post['post_id'] = (int) $wp->post_id;
565
+ $post['post_date'] = (string) $wp->post_date;
566
+ $post['post_date_gmt'] = (string) $wp->post_date_gmt;
567
+ $post['comment_status'] = (string) $wp->comment_status;
568
+ $post['ping_status'] = (string) $wp->ping_status;
569
+ $post['post_name'] = (string) $wp->post_name;
570
+ $post['status'] = (string) $wp->status;
571
+ $post['post_parent'] = (int) $wp->post_parent;
572
+ $post['menu_order'] = (int) $wp->menu_order;
573
+ $post['post_type'] = (string) $wp->post_type;
574
+ $post['post_password'] = (string) $wp->post_password;
575
+ $post['is_sticky'] = (int) $wp->is_sticky;
576
+
577
+ if ( isset( $wp->attachment_url ) ) {
578
+ $post['attachment_url'] = (string) $wp->attachment_url;
579
+ }
580
+
581
+ foreach ( $item->category as $c ) {
582
+ $att = $c->attributes();
583
+ if ( isset( $att['nicename'] ) ) {
584
+ $post['terms'][] = [
585
+ 'name' => (string) $c,
586
+ 'slug' => (string) $att['nicename'],
587
+ 'domain' => (string) $att['domain'],
588
+ ];
589
+ }
590
+ }
591
+
592
+ foreach ( $wp->postmeta as $meta ) {
593
+ $post['postmeta'][] = [
594
+ 'key' => (string) $meta->meta_key,
595
+ 'value' => (string) $meta->meta_value,
596
+ ];
597
+ }
598
+
599
+ foreach ( $wp->comment as $comment ) {
600
+ $meta = [];
601
+ if ( isset( $comment->commentmeta ) ) {
602
+ foreach ( $comment->commentmeta as $m ) {
603
+ $meta[] = [
604
+ 'key' => (string) $m->meta_key,
605
+ 'value' => (string) $m->meta_value,
606
+ ];
607
+ }
608
+ }
609
+
610
+ $post['comments'][] = [
611
+ 'comment_id' => (int) $comment->comment_id,
612
+ 'comment_author' => (string) $comment->comment_author,
613
+ 'comment_author_email' => (string) $comment->comment_author_email,
614
+ 'comment_author_IP' => (string) $comment->comment_author_IP,
615
+ 'comment_author_url' => (string) $comment->comment_author_url,
616
+ 'comment_date' => (string) $comment->comment_date,
617
+ 'comment_date_gmt' => (string) $comment->comment_date_gmt,
618
+ 'comment_content' => (string) $comment->comment_content,
619
+ 'comment_approved' => (string) $comment->comment_approved,
620
+ 'comment_type' => (string) $comment->comment_type,
621
+ 'comment_parent' => (string) $comment->comment_parent,
622
+ 'comment_user_id' => (int) $comment->comment_user_id,
623
+ 'commentmeta' => $meta,
624
+ ];
625
+ }
626
+
627
+ $posts[] = $post;
628
+ }
629
+
630
+ return [
631
+ 'authors' => $authors,
632
+ 'posts' => $posts,
633
+ 'categories' => $categories,
634
+ 'tags' => $tags,
635
+ 'terms' => $terms,
636
+ 'base_url' => $base_url,
637
+ 'base_blog_url' => $base_blog_url,
638
+ 'page_on_front' => $page_on_front,
639
+ 'version' => $wxr_version,
640
+ ];
641
+ }
642
+ }
643
+
644
+
645
+ /**
646
+ * WordPress eXtended RSS file parser implementations,
647
+ * Originally made by WordPress part of WordPress/Importer.
648
+ * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser-xml.php
649
+ *
650
+ * What was done:
651
+ * Reformat of the code.
652
+ * Added PHPDOC.
653
+ * Changed text domain.
654
+ * Added clear() method.
655
+ * Added undeclared class properties.
656
+ * Changed methods visibility.
657
+ */
658
+
659
+ /**
660
+ * WXR Parser that makes use of the XML Parser PHP extension.
661
+ */
662
+ class WXR_Parser_XML {
663
+ private static $wp_tags = [
664
+ 'wp:post_id',
665
+ 'wp:post_date',
666
+ 'wp:post_date_gmt',
667
+ 'wp:comment_status',
668
+ 'wp:ping_status',
669
+ 'wp:attachment_url',
670
+ 'wp:status',
671
+ 'wp:post_name',
672
+ 'wp:post_parent',
673
+ 'wp:menu_order',
674
+ 'wp:post_type',
675
+ 'wp:post_password',
676
+ 'wp:is_sticky',
677
+ 'wp:term_id',
678
+ 'wp:category_nicename',
679
+ 'wp:category_parent',
680
+ 'wp:cat_name',
681
+ 'wp:category_description',
682
+ 'wp:tag_slug',
683
+ 'wp:tag_name',
684
+ 'wp:tag_description',
685
+ 'wp:term_taxonomy',
686
+ 'wp:term_parent',
687
+ 'wp:term_name',
688
+ 'wp:term_description',
689
+ 'wp:author_id',
690
+ 'wp:author_login',
691
+ 'wp:author_email',
692
+ 'wp:author_display_name',
693
+ 'wp:author_first_name',
694
+ 'wp:author_last_name',
695
+ ];
696
+
697
+ private static $wp_sub_tags = [
698
+ 'wp:comment_id',
699
+ 'wp:comment_author',
700
+ 'wp:comment_author_email',
701
+ 'wp:comment_author_url',
702
+ 'wp:comment_author_IP',
703
+ 'wp:comment_date',
704
+ 'wp:comment_date_gmt',
705
+ 'wp:comment_content',
706
+ 'wp:comment_approved',
707
+ 'wp:comment_type',
708
+ 'wp:comment_parent',
709
+ 'wp:comment_user_id',
710
+ ];
711
+
712
+ /**
713
+ * @var string
714
+ */
715
+ private $wxr_version;
716
+
717
+ /**
718
+ * @var string
719
+ */
720
+ private $cdata;
721
+
722
+ /**
723
+ * @var array
724
+ */
725
+ private $data;
726
+
727
+ /**
728
+ * @var array
729
+ */
730
+ private $sub_data;
731
+
732
+ /**
733
+ * @var boolean
734
+ */
735
+ private $in_post;
736
+
737
+ /**
738
+ * @var boolean
739
+ */
740
+ private $in_tag;
741
+
742
+ /**
743
+ * @var boolean
744
+ */
745
+ private $in_sub_tag;
746
+
747
+ /**
748
+ * @var array
749
+ */
750
+ private $authors;
751
+
752
+ /**
753
+ * @var array
754
+ */
755
+ private $posts;
756
+
757
+ /**
758
+ * @var array
759
+ */
760
+ private $term;
761
+
762
+ /**
763
+ * @var array
764
+ */
765
+ private $category;
766
+
767
+ /**
768
+ * @var array
769
+ */
770
+ private $tag;
771
+
772
+ /**
773
+ * @var string
774
+ */
775
+ private $base_url;
776
+
777
+ /**
778
+ * @var string
779
+ */
780
+ private $base_blog_url;
781
+
782
+ /**
783
+ * @param string $file
784
+ *
785
+ * @return array|WP_Error
786
+ */
787
+ public function parse( $file ) {
788
+ $this->clear();
789
+
790
+ $xml = xml_parser_create( 'UTF-8' );
791
+ xml_parser_set_option( $xml, XML_OPTION_SKIP_WHITE, 1 );
792
+ xml_parser_set_option( $xml, XML_OPTION_CASE_FOLDING, 0 );
793
+ xml_set_object( $xml, $this );
794
+
795
+ xml_set_character_data_handler( $xml, function ( $parser, $cdata ) {
796
+ $this->cdata( $cdata );
797
+ } );
798
+
799
+ $tag_open_callback = function ( $parse, $tag, $attr ) {
800
+ $this->tag_open( $tag, $attr );
801
+ };
802
+
803
+ $tag_close_callback = function ( $parser, $tag ) {
804
+ $this->tag_close( $tag );
805
+ };
806
+
807
+ xml_set_element_handler( $xml, $tag_open_callback, $tag_close_callback );
808
+
809
+ if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
810
+ $current_line = xml_get_current_line_number( $xml );
811
+ $current_column = xml_get_current_column_number( $xml );
812
+ $error_code = xml_get_error_code( $xml );
813
+ $error_string = xml_error_string( $error_code );
814
+
815
+ return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', [
816
+ $current_line,
817
+ $current_column,
818
+ $error_string,
819
+ ] );
820
+ }
821
+ xml_parser_free( $xml );
822
+
823
+ if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) ) {
824
+ return new WP_Error( 'WXR_parse_error', esc_html__( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wpr-addons' ) );
825
+ }
826
+
827
+ return array(
828
+ 'authors' => $this->authors,
829
+ 'posts' => $this->posts,
830
+ 'categories' => $this->category,
831
+ 'tags' => $this->tag,
832
+ 'terms' => $this->term,
833
+ 'base_url' => $this->base_url,
834
+ 'base_blog_url' => $this->base_blog_url,
835
+ 'version' => $this->wxr_version,
836
+ );
837
+ }
838
+
839
+ private function tag_open( $tag, $attr ) {
840
+ if ( in_array( $tag, self::$wp_tags ) ) {
841
+ $this->in_tag = substr( $tag, 3 );
842
+
843
+ return;
844
+ }
845
+
846
+ if ( in_array( $tag, self::$wp_sub_tags ) ) {
847
+ $this->in_sub_tag = substr( $tag, 3 );
848
+
849
+ return;
850
+ }
851
+
852
+ switch ( $tag ) {
853
+ case 'category':
854
+ if ( isset( $attr['domain'], $attr['nicename'] ) ) {
855
+ $this->sub_data['domain'] = $attr['domain'];
856
+ $this->sub_data['slug'] = $attr['nicename'];
857
+ }
858
+ break;
859
+ case 'item':
860
+ $this->in_post = true;
861
+ // No break !!!.
862
+ case 'title':
863
+ if ( $this->in_post ) {
864
+ $this->in_tag = 'post_title';
865
+ }
866
+ break;
867
+ case 'guid':
868
+ $this->in_tag = 'guid';
869
+ break;
870
+ case 'dc:creator':
871
+ $this->in_tag = 'post_author';
872
+ break;
873
+ case 'content:encoded':
874
+ $this->in_tag = 'post_content';
875
+ break;
876
+ case 'excerpt:encoded':
877
+ $this->in_tag = 'post_excerpt';
878
+ break;
879
+
880
+ case 'wp:term_slug':
881
+ $this->in_tag = 'slug';
882
+ break;
883
+ case 'wp:meta_key':
884
+ $this->in_sub_tag = 'key';
885
+ break;
886
+ case 'wp:meta_value':
887
+ $this->in_sub_tag = 'value';
888
+ break;
889
+ }
890
+ }
891
+
892
+ private function cdata( $cdata ) {
893
+ if ( ! trim( $cdata ) ) {
894
+ return;
895
+ }
896
+
897
+ if ( false !== $this->in_tag || false !== $this->in_sub_tag ) {
898
+ $this->cdata .= $cdata;
899
+ } else {
900
+ $this->cdata .= trim( $cdata );
901
+ }
902
+ }
903
+
904
+ private function tag_close( $tag ) {
905
+ switch ( $tag ) {
906
+ case 'wp:comment':
907
+ unset( $this->sub_data['key'], $this->sub_data['value'] ); // Remove meta sub_data.
908
+ if ( ! empty( $this->sub_data ) ) {
909
+ $this->data['comments'][] = $this->sub_data;
910
+ }
911
+ $this->sub_data = [];
912
+ break;
913
+ case 'wp:commentmeta':
914
+ $this->sub_data['commentmeta'][] = [
915
+ 'key' => $this->sub_data['key'],
916
+ 'value' => $this->sub_data['value'],
917
+ ];
918
+ break;
919
+ case 'category':
920
+ if ( ! empty( $this->sub_data ) ) {
921
+ $this->sub_data['name'] = $this->cdata;
922
+ $this->data['terms'][] = $this->sub_data;
923
+ }
924
+ $this->sub_data = [];
925
+ break;
926
+ case 'wp:postmeta':
927
+ if ( ! empty( $this->sub_data ) ) {
928
+ $this->data['postmeta'][] = $this->sub_data;
929
+ }
930
+ $this->sub_data = [];
931
+ break;
932
+ case 'item':
933
+ $this->posts[] = $this->data;
934
+ $this->data = [];
935
+ break;
936
+ case 'wp:category':
937
+ case 'wp:tag':
938
+ case 'wp:term':
939
+ $n = substr( $tag, 3 );
940
+ array_push( $this->$n, $this->data );
941
+ $this->data = [];
942
+ break;
943
+ case 'wp:termmeta':
944
+ if ( ! empty( $this->sub_data ) ) {
945
+ $this->data['termmeta'][] = $this->sub_data;
946
+ }
947
+ $this->sub_data = [];
948
+ break;
949
+ case 'wp:author':
950
+ if ( ! empty( $this->data['author_login'] ) ) {
951
+ $this->authors[ $this->data['author_login'] ] = $this->data;
952
+ }
953
+ $this->data = [];
954
+ break;
955
+ case 'wp:base_site_url':
956
+ $this->base_url = $this->cdata;
957
+ if ( ! isset( $this->base_blog_url ) ) {
958
+ $this->base_blog_url = $this->cdata;
959
+ }
960
+ break;
961
+ case 'wp:base_blog_url':
962
+ $this->base_blog_url = $this->cdata;
963
+ break;
964
+ case 'wp:wxr_version':
965
+ $this->wxr_version = $this->cdata;
966
+ break;
967
+
968
+ default:
969
+ if ( $this->in_sub_tag ) {
970
+ $this->sub_data[ $this->in_sub_tag ] = $this->cdata;
971
+ $this->in_sub_tag = false;
972
+ } elseif ( $this->in_tag ) {
973
+ $this->data[ $this->in_tag ] = $this->cdata;
974
+ $this->in_tag = false;
975
+ }
976
+ }
977
+
978
+ $this->cdata = '';
979
+ }
980
+
981
+ private function clear() {
982
+ $this->wxr_version = '';
983
+
984
+ $this->cdata = '';
985
+ $this->data = [];
986
+ $this->sub_data = [];
987
+
988
+ $this->in_post = false;
989
+ $this->in_tag = false;
990
+ $this->in_sub_tag = false;
991
+
992
+ $this->authors = [];
993
+ $this->posts = [];
994
+ $this->term = [];
995
+ $this->category = [];
996
+ $this->tag = [];
997
+ }
998
+ }
999
+
1000
+
1001
+ /**
1002
+ * WordPress eXtended RSS file parser implementations,
1003
+ * Originally made by WordPress part of WordPress/Importer.
1004
+ * https://plugins.trac.wordpress.org/browser/wordpress-importer/trunk/parsers/class-wxr-parser.php
1005
+ *
1006
+ * What was done:
1007
+ * Reformat of the code.
1008
+ * Changed text domain.
1009
+ */
1010
+
1011
+ /**
1012
+ * WordPress Importer class for managing parsing of WXR files.
1013
+ */
1014
+ class WXR_Parser {
1015
+
1016
+ public function parse( $file ) {
1017
+ // Attempt to use proper XML parsers first.
1018
+ if ( extension_loaded( 'simplexml' ) ) {
1019
+ $parser = new WXR_Parser_SimpleXML();
1020
+ $result = $parser->parse( $file );
1021
+
1022
+ // If SimpleXML succeeds or this is an invalid WXR file then return the results.
1023
+ if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() ) {
1024
+ return $result;
1025
+ }
1026
+ } elseif ( extension_loaded( 'xml' ) ) {
1027
+ $parser = new WXR_Parser_XML();
1028
+ $result = $parser->parse( $file );
1029
+
1030
+ // If XMLParser succeeds or this is an invalid WXR file then return the results.
1031
+ if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() ) {
1032
+ return $result;
1033
+ }
1034
+ }
1035
+
1036
+ // Use regular expressions if nothing else available or this is bad XML.
1037
+ $parser = new WXR_Parser_Regex();
1038
+
1039
+ return $parser->parse( $file );
1040
+ }
1041
+ }
admin/import/class-wordpress-importer.php CHANGED
@@ -1,1370 +1,1370 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- if ( ! defined( 'WP_LOAD_IMPORTERS' ) )
8
- return;
9
-
10
- /** Display verbose errors */
11
- define( 'IMPORT_DEBUG', false );
12
-
13
- // Load Importer API
14
- require_once ABSPATH . 'wp-admin/includes/import.php';
15
-
16
- if ( ! class_exists( 'WP_Importer' ) ) {
17
- $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
18
- if ( file_exists( $class_wp_importer ) )
19
- require $class_wp_importer;
20
- }
21
-
22
- // include WXR file parsers
23
- require WPR_ADDONS_PATH .'admin/import/class-parsers.php';
24
-
25
- class WP_Import extends WP_Importer {
26
- const DEFAULT_BUMP_REQUEST_TIMEOUT = 60;
27
- const DEFAULT_ALLOW_CREATE_USERS = true;
28
- const DEFAULT_IMPORT_ATTACHMENT_SIZE_LIMIT = 0; // 0 = unlimited.
29
-
30
- /**
31
- * @var string
32
- */
33
- private $requested_file_path;
34
-
35
- /**
36
- * @var array
37
- */
38
- private $args;
39
-
40
- /**
41
- * @var array
42
- */
43
- private $output = [
44
- 'status' => 'failed',
45
- 'errors' => [],
46
- ];
47
-
48
- /*
49
- * WXR attachment ID
50
- */
51
- private $id;
52
-
53
- // Information to import from WXR file.
54
- private $version;
55
- private $authors = [];
56
- private $posts = [];
57
- private $terms = [];
58
- private $categories = [];
59
- private $tags = [];
60
- private $base_url = '';
61
- private $page_on_front;
62
-
63
- // Mappings from old information to new.
64
- private $processed_authors = [];
65
- private $author_mapping = [];
66
- private $processed_terms = [];
67
- private $processed_posts = [];
68
- private $post_orphans = [];
69
- private $processed_menu_items = [];
70
- private $menu_item_orphans = [];
71
- private $missing_menu_items = [];
72
-
73
- private $fetch_attachments = false;
74
- private $url_remap = [];
75
- private $featured_images = [];
76
-
77
- /**
78
- * Parses filename from a Content-Disposition header value.
79
- *
80
- * As per RFC6266:
81
- *
82
- * content-disposition = "Content-Disposition" ":"
83
- * disposition-type *( ";" disposition-parm )
84
- *
85
- * disposition-type = "inline" | "attachment" | disp-ext-type
86
- * ; case-insensitive
87
- * disp-ext-type = token
88
- *
89
- * disposition-parm = filename-parm | disp-ext-parm
90
- *
91
- * filename-parm = "filename" "=" value
92
- * | "filename*" "=" ext-value
93
- *
94
- * disp-ext-parm = token "=" value
95
- * | ext-token "=" ext-value
96
- * ext-token = <the characters in token, followed by "*">
97
- *
98
- * @param string[] $disposition_header List of Content-Disposition header values.
99
- *
100
- * @return string|null Filename if available, or null if not found.
101
- * @link http://tools.ietf.org/html/rfc2388
102
- * @link http://tools.ietf.org/html/rfc6266
103
- *
104
- * @see WP_REST_Attachments_Controller::get_filename_from_disposition()
105
- *
106
- */
107
- protected static function get_filename_from_disposition( $disposition_header ) {
108
- // Get the filename.
109
- $filename = null;
110
-
111
- foreach ( $disposition_header as $value ) {
112
- $value = trim( $value );
113
-
114
- if ( strpos( $value, ';' ) === false ) {
115
- continue;
116
- }
117
-
118
- list( $type, $attr_parts ) = explode( ';', $value, 2 );
119
-
120
- $attr_parts = explode( ';', $attr_parts );
121
- $attributes = [];
122
-
123
- foreach ( $attr_parts as $part ) {
124
- if ( strpos( $part, '=' ) === false ) {
125
- continue;
126
- }
127
-
128
- list( $key, $value ) = explode( '=', $part, 2 );
129
-
130
- $attributes[ trim( $key ) ] = trim( $value );
131
- }
132
-
133
- if ( empty( $attributes['filename'] ) ) {
134
- continue;
135
- }
136
-
137
- $filename = trim( $attributes['filename'] );
138
-
139
- // Unquote quoted filename, but after trimming.
140
- if ( substr( $filename, 0, 1 ) === '"' && substr( $filename, -1, 1 ) === '"' ) {
141
- $filename = substr( $filename, 1, -1 );
142
- }
143
- }
144
-
145
- return $filename;
146
- }
147
-
148
- /**
149
- * Retrieves file extension by mime type.
150
- *
151
- * @param string $mime_type Mime type to search extension for.
152
- *
153
- * @return string|null File extension if available, or null if not found.
154
- */
155
- protected static function get_file_extension_by_mime_type( $mime_type ) {
156
- static $map = null;
157
-
158
- if ( is_array( $map ) ) {
159
- return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
160
- }
161
-
162
- $mime_types = wp_get_mime_types();
163
- $map = array_flip( $mime_types );
164
-
165
- // Some types have multiple extensions, use only the first one.
166
- foreach ( $map as $type => $extensions ) {
167
- $map[ $type ] = strtok( $extensions, '|' );
168
- }
169
-
170
- return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
171
- }
172
-
173
- /**
174
- * The main controller for the actual import stage.
175
- *
176
- * @param string $file Path to the WXR file for importing
177
- */
178
- private function import( $file ) {
179
- add_filter( 'import_post_meta_key', function ( $key ) {
180
- return $this->is_valid_meta_key( $key );
181
- } );
182
- add_filter( 'http_request_timeout', function () {
183
- return self::DEFAULT_BUMP_REQUEST_TIMEOUT;
184
- } );
185
-
186
- if ( ! $this->import_start( $file ) ) {
187
- return;
188
- }
189
-
190
- $this->set_author_mapping();
191
-
192
- wp_suspend_cache_invalidation( true );
193
- $imported_summary = [
194
- 'categories' => $this->process_categories(),
195
- 'tags' => $this->process_tags(),
196
- 'terms' => $this->process_terms(),
197
- 'posts' => $this->process_posts(),
198
- ];
199
- wp_suspend_cache_invalidation( false );
200
-
201
- // Update incorrect/missing information in the DB.
202
- $this->backfill_parents();
203
- $this->backfill_attachment_urls();
204
- $this->remap_featured_images();
205
-
206
- $this->import_end();
207
-
208
- $is_some_succeed = false;
209
- foreach ( $imported_summary as $item ) {
210
- if ( $item > 0 ) {
211
- $is_some_succeed = true;
212
- break;
213
- }
214
- }
215
-
216
- if ( $is_some_succeed ) {
217
- $this->output['status'] = 'success';
218
- $this->output['summary'] = $imported_summary;
219
- }
220
- }
221
-
222
- /**
223
- * Parses the WXR file and prepares us for the task of processing parsed data.
224
- *
225
- * @param string $file Path to the WXR file for importing
226
- */
227
- private function import_start( $file ) {
228
- if ( ! is_file( $file ) ) {
229
- $this->output['errors'] = [ esc_html__( 'The file does not exist, please try again.', 'wpr-addons' ) ];
230
-
231
- return false;
232
- }
233
-
234
- $import_data = $this->parse( $file );
235
-
236
- if ( is_wp_error( $import_data ) ) {
237
- $this->output['errors'] = [ $import_data->get_error_message() ];
238
-
239
- return false;
240
- }
241
-
242
- $this->version = $import_data['version'];
243
- $this->set_authors_from_import( $import_data );
244
- $this->posts = $import_data['posts'];
245
- $this->terms = $import_data['terms'];
246
- $this->categories = $import_data['categories'];
247
- $this->tags = $import_data['tags'];
248
- $this->base_url = esc_url( $import_data['base_url'] );
249
- $this->page_on_front = $import_data['page_on_front'];
250
-
251
- wp_defer_term_counting( true );
252
- wp_defer_comment_counting( true );
253
-
254
- do_action( 'import_start' );
255
-
256
- return true;
257
- }
258
-
259
- /**
260
- * Performs post-import cleanup of files and the cache
261
- */
262
- private function import_end() {
263
- wp_import_cleanup( $this->id );
264
-
265
- wp_cache_flush();
266
-
267
- foreach ( get_taxonomies() as $tax ) {
268
- delete_option( "{$tax}_children" );
269
- _get_term_hierarchy( $tax );
270
- }
271
-
272
- wp_defer_term_counting( false );
273
- wp_defer_comment_counting( false );
274
-
275
- do_action( 'import_end' );
276
- }
277
-
278
- /**
279
- * Retrieve authors from parsed WXR data and set it to `$this->>authors`.
280
- *
281
- * Uses the provided author information from WXR 1.1 files
282
- * or extracts info from each post for WXR 1.0 files
283
- *
284
- * @param array $import_data Data returned by a WXR parser
285
- */
286
- private function set_authors_from_import( $import_data ) {
287
- if ( ! empty( $import_data['authors'] ) ) {
288
- $this->authors = $import_data['authors'];
289
- // No author information, grab it from the posts.
290
- } else {
291
- foreach ( $import_data['posts'] as $post ) {
292
- $login = sanitize_user( $post['post_author'], true );
293
-
294
- if ( empty( $login ) ) {
295
- /* translators: %s: Post author. */
296
- $this->output['errors'][] = sprintf( esc_html__( 'Failed to import author %s. Their posts will be attributed to the current user.', 'wpr-addons' ), $post['post_author'] );
297
- continue;
298
- }
299
-
300
- if ( ! isset( $this->authors[ $login ] ) ) {
301
- $this->authors[ $login ] = [
302
- 'author_login' => $login,
303
- 'author_display_name' => $post['post_author'],
304
- ];
305
- }
306
- }
307
- }
308
- }
309
-
310
- /**
311
- * Map old author logins to local user IDs based on decisions made
312
- * in import options form. Can map to an existing user, create a new user
313
- * or falls back to the current user in case of error with either of the previous
314
- */
315
- private function set_author_mapping() {
316
- if ( ! isset( $this->args['imported_authors'] ) ) {
317
- return;
318
- }
319
-
320
- $create_users = apply_filters( 'import_allow_create_users', self::DEFAULT_ALLOW_CREATE_USERS );
321
-
322
- foreach ( (array) $this->args['imported_authors'] as $i => $old_login ) {
323
- // Multisite adds strtolower to sanitize_user. Need to sanitize here to stop breakage in process_posts.
324
- $santized_old_login = sanitize_user( $old_login, true );
325
- $old_id = isset( $this->authors[ $old_login ]['author_id'] ) ? intval( $this->authors[ $old_login ]['author_id'] ) : false;
326
-
327
- if ( ! empty( $this->args['user_map'][ $i ] ) ) {
328
- $user = get_userdata( intval( $this->args['user_map'][ $i ] ) );
329
- if ( isset( $user->ID ) ) {
330
- if ( $old_id ) {
331
- $this->processed_authors[ $old_id ] = $user->ID;
332
- }
333
- $this->author_mapping[ $santized_old_login ] = $user->ID;
334
- }
335
- } elseif ( $create_users ) {
336
- $user_id = 0;
337
- if ( ! empty( $this->args['user_new'][ $i ] ) ) {
338
- $user_id = wp_create_user( $this->args['user_new'][ $i ], wp_generate_password() );
339
- } elseif ( '1.0' !== $this->version ) {
340
- $user_data = [
341
- 'user_login' => $old_login,
342
- 'user_pass' => wp_generate_password(),
343
- 'user_email' => isset( $this->authors[ $old_login ]['author_email'] ) ? $this->authors[ $old_login ]['author_email'] : '',
344
- 'display_name' => $this->authors[ $old_login ]['author_display_name'],
345
- 'first_name' => isset( $this->authors[ $old_login ]['author_first_name'] ) ? $this->authors[ $old_login ]['author_first_name'] : '',
346
- 'last_name' => isset( $this->authors[ $old_login ]['author_last_name'] ) ? $this->authors[ $old_login ]['author_last_name'] : '',
347
- ];
348
- $user_id = wp_insert_user( $user_data );
349
- }
350
-
351
- if ( ! is_wp_error( $user_id ) ) {
352
- if ( $old_id ) {
353
- $this->processed_authors[ $old_id ] = $user_id;
354
- }
355
- $this->author_mapping[ $santized_old_login ] = $user_id;
356
- } else {
357
- /* translators: %s: Author display name. */
358
- $error = sprintf( esc_html__( 'Failed to create new user for %s. Their posts will be attributed to the current user.', 'wpr-addons' ), $this->authors[ $old_login ]['author_display_name'] );
359
-
360
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
361
- $error .= PHP_EOL . $user_id->get_error_message();
362
- }
363
-
364
- $this->output['errors'][] = $error;
365
- }
366
- }
367
-
368
- // Failsafe: if the user_id was invalid, default to the current user.
369
- if ( ! isset( $this->author_mapping[ $santized_old_login ] ) ) {
370
- if ( $old_id ) {
371
- $this->processed_authors[ $old_id ] = (int) get_current_user_id();
372
- }
373
- $this->author_mapping[ $santized_old_login ] = (int) get_current_user_id();
374
- }
375
- }
376
- }
377
-
378
- /**
379
- * Create new categories based on import information
380
- *
381
- * Doesn't create a new category if its slug already exists
382
- *
383
- * @return int number of imported categories.
384
- */
385
- private function process_categories() {
386
- $result = 0;
387
-
388
- $this->categories = apply_filters( 'wp_import_categories', $this->categories );
389
-
390
- if ( empty( $this->categories ) ) {
391
- return $result;
392
- }
393
-
394
- foreach ( $this->categories as $cat ) {
395
- // if the category already exists leave it alone
396
- $term_id = term_exists( $cat['category_nicename'], 'category' );
397
- if ( $term_id ) {
398
- if ( is_array( $term_id ) ) {
399
- $term_id = $term_id['term_id'];
400
- }
401
- if ( isset( $cat['term_id'] ) ) {
402
- $this->processed_terms[ intval( $cat['term_id'] ) ] = (int) $term_id;
403
- }
404
- continue;
405
- }
406
-
407
- $parent = empty( $cat['category_parent'] ) ? 0 : category_exists( $cat['category_parent'] );
408
- $description = isset( $cat['category_description'] ) ? $cat['category_description'] : '';
409
-
410
- $data = [
411
- 'category_nicename' => $cat['category_nicename'],
412
- 'category_parent' => $parent,
413
- 'cat_name' => wp_slash( $cat['cat_name'] ),
414
- 'category_description' => wp_slash( $description ),
415
- ];
416
-
417
- $id = wp_insert_category( $data );
418
- if ( ! is_wp_error( $id ) && $id > 0 ) {
419
- if ( isset( $cat['term_id'] ) ) {
420
- $this->processed_terms[ intval( $cat['term_id'] ) ] = $id;
421
- }
422
- $result++;
423
- } else {
424
- /* translators: %s: Category name. */
425
- $error = sprintf( esc_html__( 'Failed to import category %s', 'wpr-addons' ), $cat['category_nicename'] );
426
-
427
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
428
- $error .= PHP_EOL . $id->get_error_message();
429
- }
430
-
431
- $this->output['errors'][] = $error;
432
- continue;
433
- }
434
-
435
- $this->process_termmeta( $cat, $id );
436
- }
437
-
438
- unset( $this->categories );
439
-
440
- return $result;
441
- }
442
-
443
- /**
444
- * Create new post tags based on import information
445
- *
446
- * Doesn't create a tag if its slug already exists
447
- *
448
- * @return int number of imported tags.
449
- */
450
- private function process_tags() {
451
- $result = 0;
452
-
453
- $this->tags = apply_filters( 'wp_import_tags', $this->tags );
454
-
455
- if ( empty( $this->tags ) ) {
456
- return $result;
457
- }
458
-
459
- foreach ( $this->tags as $tag ) {
460
- // if the tag already exists leave it alone
461
- $term_id = term_exists( $tag['tag_slug'], 'post_tag' );
462
- if ( $term_id ) {
463
- if ( is_array( $term_id ) ) {
464
- $term_id = $term_id['term_id'];
465
- }
466
- if ( isset( $tag['term_id'] ) ) {
467
- $this->processed_terms[ intval( $tag['term_id'] ) ] = (int) $term_id;
468
- }
469
- continue;
470
- }
471
-
472
- $description = isset( $tag['tag_description'] ) ? $tag['tag_description'] : '';
473
- $args = [
474
- 'slug' => $tag['tag_slug'],
475
- 'description' => wp_slash( $description ),
476
- ];
477
-
478
- $id = wp_insert_term( wp_slash( $tag['tag_name'] ), 'post_tag', $args );
479
- if ( ! is_wp_error( $id ) ) {
480
- if ( isset( $tag['term_id'] ) ) {
481
- $this->processed_terms[ intval( $tag['term_id'] ) ] = $id['term_id'];
482
- }
483
- $result++;
484
- } else {
485
- /* translators: %s: Tag name. */
486
- $error = sprintf( esc_html__( 'Failed to import post tag %s', 'wpr-addons' ), $tag['tag_name'] );
487
-
488
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
489
- $error .= PHP_EOL . $id->get_error_message();
490
- }
491
-
492
- $this->output['errors'][] = $error;
493
- continue;
494
- }
495
-
496
- $this->process_termmeta( $tag, $id['term_id'] );
497
- }
498
-
499
- unset( $this->tags );
500
-
501
- return $result;
502
- }
503
-
504
- /**
505
- * Create new terms based on import information
506
- *
507
- * Doesn't create a term its slug already exists
508
- *
509
- * @return int number of imported terms.
510
- */
511
- private function process_terms() {
512
- $result = 0;
513
-
514
- $this->terms = apply_filters( 'wp_import_terms', $this->terms );
515
-
516
- if ( empty( $this->terms ) ) {
517
- return $result;
518
- }
519
-
520
- foreach ( $this->terms as $term ) {
521
- // if the term already exists in the correct taxonomy leave it alone
522
- $term_id = term_exists( $term['slug'], $term['term_taxonomy'] );
523
- if ( $term_id ) {
524
- if ( is_array( $term_id ) ) {
525
- $term_id = $term_id['term_id'];
526
- }
527
- if ( isset( $term['term_id'] ) ) {
528
- $this->processed_terms[ intval( $term['term_id'] ) ] = (int) $term_id;
529
- }
530
- continue;
531
- }
532
-
533
- if ( empty( $term['term_parent'] ) ) {
534
- $parent = 0;
535
- } else {
536
- $parent = term_exists( $term['term_parent'], $term['term_taxonomy'] );
537
- if ( is_array( $parent ) ) {
538
- $parent = $parent['term_id'];
539
- }
540
- }
541
-
542
- $description = isset( $term['term_description'] ) ? $term['term_description'] : '';
543
- $args = [
544
- 'slug' => $term['slug'],
545
- 'description' => wp_slash( $description ),
546
- 'parent' => (int) $parent,
547
- ];
548
-
549
- $id = wp_insert_term( wp_slash( $term['term_name'] ), $term['term_taxonomy'], $args );
550
- if ( ! is_wp_error( $id ) ) {
551
- if ( isset( $term['term_id'] ) ) {
552
- $this->processed_terms[ intval( $term['term_id'] ) ] = $id['term_id'];
553
- }
554
- $result++;
555
- } else {
556
- /* translators: 1: Term taxonomy, 2: Term name. */
557
- $error = sprintf( esc_html__( 'Failed to import %1$s %2$s', 'wpr-addons' ), $term['term_taxonomy'], $term['term_name'] );
558
-
559
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
560
- $error .= PHP_EOL . $id->get_error_message();
561
- }
562
-
563
- $this->output['errors'][] = $error;
564
- continue;
565
- }
566
-
567
- $this->process_termmeta( $term, $id['term_id'] );
568
- }
569
-
570
- unset( $this->terms );
571
-
572
- return $result;
573
- }
574
-
575
- /**
576
- * Add metadata to imported term.
577
- *
578
- * @param array $term Term data from WXR import.
579
- * @param int $term_id ID of the newly created term.
580
- */
581
- private function process_termmeta( $term, $term_id ) {
582
- if ( ! function_exists( 'add_term_meta' ) ) {
583
- return;
584
- }
585
-
586
- if ( ! isset( $term['termmeta'] ) ) {
587
- $term['termmeta'] = [];
588
- }
589
-
590
- /**
591
- * Filters the metadata attached to an imported term.
592
- *
593
- * @param array $termmeta Array of term meta.
594
- * @param int $term_id ID of the newly created term.
595
- * @param array $term Term data from the WXR import.
596
- */
597
- $term['termmeta'] = apply_filters( 'wp_import_term_meta', $term['termmeta'], $term_id, $term );
598
-
599
- if ( empty( $term['termmeta'] ) ) {
600
- return;
601
- }
602
-
603
- foreach ( $term['termmeta'] as $meta ) {
604
- /**
605
- * Filters the meta key for an imported piece of term meta.
606
- *
607
- * @param string $meta_key Meta key.
608
- * @param int $term_id ID of the newly created term.
609
- * @param array $term Term data from the WXR import.
610
- */
611
- $key = apply_filters( 'import_term_meta_key', $meta['key'], $term_id, $term );
612
- if ( ! $key ) {
613
- continue;
614
- }
615
-
616
- // Export gets meta straight from the DB so could have a serialized string
617
- $value = maybe_unserialize( $meta['value'] );
618
-
619
- add_term_meta( $term_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
620
-
621
- /**
622
- * Fires after term meta is imported.
623
- *
624
- * @param int $term_id ID of the newly created term.
625
- * @param string $key Meta key.
626
- * @param mixed $value Meta value.
627
- */
628
- do_action( 'import_term_meta', $term_id, $key, $value );
629
- }
630
- }
631
-
632
- /**
633
- * Create new posts based on import information
634
- *
635
- * Posts marked as having a parent which doesn't exist will become top level items.
636
- * Doesn't create a new post if: the post type doesn't exist, the given post ID
637
- * is already noted as imported or a post with the same title and date already exists.
638
- * Note that new/updated terms, comments and meta are imported for the last of the above.
639
- *
640
- * @return array the ids of succeed/failed imported posts.
641
- */
642
- private function process_posts() {
643
- $result = [
644
- 'succeed' => [],
645
- 'failed' => [],
646
- ];
647
-
648
- $this->posts = apply_filters( 'wp_import_posts', $this->posts );
649
-
650
- foreach ( $this->posts as $post ) {
651
- $post = apply_filters( 'wp_import_post_data_raw', $post );
652
-
653
- if ( ! post_type_exists( $post['post_type'] ) ) {
654
- /* translators: 1: Post title, 2: Post type. */
655
- $this->output['errors'][] = sprintf( esc_html__( 'Failed to import %1$s: Invalid post type %2$s', 'wpr-addons' ), $post['post_title'], $post['post_type'] );
656
- do_action( 'wp_import_post_exists', $post );
657
- continue;
658
- }
659
-
660
- if ( isset( $this->processed_posts[ $post['post_id'] ] ) && ! empty( $post['post_id'] ) ) {
661
- continue;
662
- }
663
-
664
- if ( 'auto-draft' === $post['status'] ) {
665
- continue;
666
- }
667
-
668
- if ( 'nav_menu_item' === $post['post_type'] ) {
669
- $this->process_menu_item( $post );
670
- continue;
671
- }
672
-
673
- $post_type_object = get_post_type_object( $post['post_type'] );
674
-
675
- $post_parent = (int) $post['post_parent'];
676
- if ( $post_parent ) {
677
- // if we already know the parent, map it to the new local ID.
678
- if ( isset( $this->processed_posts[ $post_parent ] ) ) {
679
- $post_parent = $this->processed_posts[ $post_parent ];
680
- // otherwise record the parent for later.
681
- } else {
682
- $this->post_orphans[ intval( $post['post_id'] ) ] = $post_parent;
683
- $post_parent = 0;
684
- }
685
- }
686
-
687
- // Map the post author.
688
- $author = sanitize_user( $post['post_author'], true );
689
- if ( isset( $this->author_mapping[ $author ] ) ) {
690
- $author = $this->author_mapping[ $author ];
691
- } else {
692
- $author = (int) get_current_user_id();
693
- }
694
-
695
- $postdata = [
696
- 'import_id' => $post['post_id'],
697
- 'post_author' => $author,
698
- 'post_content' => $post['post_content'],
699
- 'post_excerpt' => $post['post_excerpt'],
700
- 'post_title' => $post['post_title'],
701
- 'post_status' => $post['status'],
702
- 'post_name' => $post['post_name'],
703
- 'comment_status' => $post['comment_status'],
704
- 'ping_status' => $post['ping_status'],
705
- 'guid' => $post['guid'],
706
- 'post_parent' => $post_parent,
707
- 'menu_order' => $post['menu_order'],
708
- 'post_type' => $post['post_type'],
709
- 'post_password' => $post['post_password'],
710
- 'post_date' => $post['post_date'],
711
- ];
712
-
713
- $original_post_id = $post['post_id'];
714
- $postdata = apply_filters( 'wp_import_post_data_processed', $postdata, $post );
715
-
716
- $postdata = wp_slash( $postdata );
717
-
718
- if ( 'attachment' === $postdata['post_type'] ) {
719
- $remote_url = ! empty( $post['attachment_url'] ) ? $post['attachment_url'] : $post['guid'];
720
-
721
- // try to use _wp_attached file for upload folder placement to ensure the same location as the export site
722
- // e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
723
- $postdata['upload_date'] = $post['post_date'];
724
- if ( isset( $post['postmeta'] ) ) {
725
- foreach ( $post['postmeta'] as $meta ) {
726
- if ( '_wp_attached_file' === $meta['key'] ) {
727
- if ( preg_match( '%^[0-9]{4}/[0-9]{2}%', $meta['value'], $matches ) ) {
728
- $postdata['upload_date'] = $matches[0];
729
- }
730
- break;
731
- }
732
- }
733
- }
734
-
735
- $post_id = $this->process_attachment( $postdata, $remote_url );
736
- $comment_post_id = $post_id;
737
- } else {
738
- $post_id = wp_insert_post( $postdata, true );
739
- $comment_post_id = $post_id;
740
- do_action( 'wp_import_insert_post', $post_id, $original_post_id, $postdata, $post );
741
- }
742
-
743
- if ( is_wp_error( $post_id ) ) {
744
- /* translators: 1: Post type singular label, 2: Post title. */
745
- $error = sprintf( __( 'Failed to import %1$s %2$s', 'wpr-addons' ), $post_type_object->labels->singular_name, $post['post_title'] );
746
-
747
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
748
- $error .= PHP_EOL . $post_id->get_error_message();
749
- }
750
-
751
- $result['failed'][] = $original_post_id;
752
-
753
- $this->output['errors'][] = $error;
754
-
755
- continue;
756
- }
757
-
758
- $result['succeed'][ $original_post_id ] = $post_id;
759
-
760
- if ( 1 === $post['is_sticky'] ) {
761
- stick_post( $post_id );
762
- }
763
-
764
- if ( $this->page_on_front === $original_post_id ) {
765
- update_option( 'page_on_front', $post_id );
766
- }
767
-
768
- // Map pre-import ID to local ID.
769
- $this->processed_posts[ intval( $post['post_id'] ) ] = (int) $post_id;
770
-
771
- if ( ! isset( $post['terms'] ) ) {
772
- $post['terms'] = [];
773
- }
774
-
775
- $post['terms'] = apply_filters( 'wp_import_post_terms', $post['terms'], $post_id, $post );
776
-
777
- // add categories, tags and other terms
778
- if ( ! empty( $post['terms'] ) ) {
779
- $terms_to_set = [];
780
- foreach ( $post['terms'] as $term ) {
781
- // back compat with WXR 1.0 map 'tag' to 'post_tag'
782
- $taxonomy = ( 'tag' === $term['domain'] ) ? 'post_tag' : $term['domain'];
783
- $term_exists = term_exists( $term['slug'], $taxonomy );
784
- $term_id = is_array( $term_exists ) ? $term_exists['term_id'] : $term_exists;
785
- if ( ! $term_id ) {
786
- $t = wp_insert_term( $term['name'], $taxonomy, [ 'slug' => $term['slug'] ] );
787
- if ( ! is_wp_error( $t ) ) {
788
- $term_id = $t['term_id'];
789
- do_action( 'wp_import_insert_term', $t, $term, $post_id, $post );
790
- } else {
791
- /* translators: 1: Taxonomy name, 2: Term name. */
792
- $error = sprintf( esc_html__( 'Failed to import %1$s %2$s', 'wpr-addons' ), $taxonomy, $term['name'] );
793
-
794
- if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
795
- $error .= PHP_EOL . $t->get_error_message();
796
- }
797
-
798
- $this->output['errors'][] = $error;
799
-
800
- do_action( 'wp_import_insert_term_failed', $t, $term, $post_id, $post );
801
- continue;
802
- }
803
- }
804
- $terms_to_set[ $taxonomy ][] = intval( $term_id );
805
- }
806
-
807
- foreach ( $terms_to_set as $tax => $ids ) {
808
- $tt_ids = wp_set_post_terms( $post_id, $ids, $tax );
809
- do_action( 'wp_import_set_post_terms', $tt_ids, $ids, $tax, $post_id, $post );
810
- }
811
- unset( $post['terms'], $terms_to_set );
812
- }
813
-
814
- if ( ! isset( $post['comments'] ) ) {
815
- $post['comments'] = [];
816
- }
817
-
818
- $post['comments'] = apply_filters( 'wp_import_post_comments', $post['comments'], $post_id, $post );
819
-
820
- // Add/update comments.
821
- if ( ! empty( $post['comments'] ) ) {
822
- $num_comments = 0;
823
- $inserted_comments = [];
824
- foreach ( $post['comments'] as $comment ) {
825
- $comment_id = $comment['comment_id'];
826
- $newcomments[ $comment_id ]['comment_post_ID'] = $comment_post_id;
827
- $newcomments[ $comment_id ]['comment_author'] = $comment['comment_author'];
828
- $newcomments[ $comment_id ]['comment_author_email'] = $comment['comment_author_email'];
829
- $newcomments[ $comment_id ]['comment_author_IP'] = $comment['comment_author_IP'];
830
- $newcomments[ $comment_id ]['comment_author_url'] = $comment['comment_author_url'];
831
- $newcomments[ $comment_id ]['comment_date'] = $comment['comment_date'];
832
- $newcomments[ $comment_id ]['comment_date_gmt'] = $comment['comment_date_gmt'];
833
- $newcomments[ $comment_id ]['comment_content'] = $comment['comment_content'];
834
- $newcomments[ $comment_id ]['comment_approved'] = $comment['comment_approved'];
835
- $newcomments[ $comment_id ]['comment_type'] = $comment['comment_type'];
836
- $newcomments[ $comment_id ]['comment_parent'] = $comment['comment_parent'];
837
- $newcomments[ $comment_id ]['commentmeta'] = isset( $comment['commentmeta'] ) ? $comment['commentmeta'] : [];
838
- if ( isset( $this->processed_authors[ $comment['comment_user_id'] ] ) ) {
839
- $newcomments[ $comment_id ]['user_id'] = $this->processed_authors[ $comment['comment_user_id'] ];
840
- }
841
- }
842
-
843
- ksort( $newcomments );
844
-
845
- foreach ( $newcomments as $key => $comment ) {
846
- if ( isset( $inserted_comments[ $comment['comment_parent'] ] ) ) {
847
- $comment['comment_parent'] = $inserted_comments[ $comment['comment_parent'] ];
848
- }
849
-
850
- $comment_data = wp_slash( $comment );
851
- unset( $comment_data['commentmeta'] ); // Handled separately, wp_insert_comment() also expects `comment_meta`.
852
- $comment_data = wp_filter_comment( $comment_data );
853
-
854
- $inserted_comments[ $key ] = wp_insert_comment( $comment_data );
855
-
856
- do_action( 'wp_import_insert_comment', $inserted_comments[ $key ], $comment, $comment_post_id, $post );
857
-
858
- foreach ( $comment['commentmeta'] as $meta ) {
859
- $value = maybe_unserialize( $meta['value'] );
860
-
861
- add_comment_meta( $inserted_comments[ $key ], wp_slash( $meta['key'] ), wp_slash_strings_only( $value ) );
862
- }
863
-
864
- $num_comments++;
865
- }
866
- unset( $newcomments, $inserted_comments, $post['comments'] );
867
- }
868
-
869
- if ( ! isset( $post['postmeta'] ) ) {
870
- $post['postmeta'] = [];
871
- }
872
-
873
- $post['postmeta'] = apply_filters( 'wp_import_post_meta', $post['postmeta'], $post_id, $post );
874
-
875
- // Add/update post meta.
876
- if ( ! empty( $post['postmeta'] ) ) {
877
- foreach ( $post['postmeta'] as $meta ) {
878
- $key = apply_filters( 'import_post_meta_key', $meta['key'], $post_id, $post );
879
- $value = false;
880
-
881
- if ( '_edit_last' === $key ) {
882
- if ( isset( $this->processed_authors[ intval( $meta['value'] ) ] ) ) {
883
- $value = $this->processed_authors[ intval( $meta['value'] ) ];
884
- } else {
885
- $key = false;
886
- }
887
- }
888
-
889
- if ( $key ) {
890
- // Export gets meta straight from the DB so could have a serialized string.
891
- if ( ! $value ) {
892
- $value = maybe_unserialize( $meta['value'] );
893
- }
894
-
895
- add_post_meta( $post_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
896
-
897
- do_action( 'import_post_meta', $post_id, $key, $value );
898
-
899
- // If the post has a featured image, take note of this in case of remap.
900
- if ( '_thumbnail_id' === $key ) {
901
- $this->featured_images[ $post_id ] = (int) $value;
902
- }
903
- }
904
- }
905
- }
906
- }
907
-
908
- unset( $this->posts );
909
-
910
- return $result;
911
- }
912
-
913
- /**
914
- * Attempt to create a new menu item from import data
915
- *
916
- * Fails for draft, orphaned menu items and those without an associated nav_menu
917
- * or an invalid nav_menu term. If the post type or term object which the menu item
918
- * represents doesn't exist then the menu item will not be imported (waits until the
919
- * end of the import to retry again before discarding).
920
- *
921
- * @param array $item Menu item details from WXR file
922
- */
923
- private function process_menu_item( $item ) {
924
- // Skip draft, orphaned menu items.
925
- if ( 'draft' === $item['status'] ) {
926
- return;
927
- }
928
-
929
- $menu_slug = false;
930
- if ( isset( $item['terms'] ) ) {
931
- // Loop through terms, assume first nav_menu term is correct menu.
932
- foreach ( $item['terms'] as $term ) {
933
- if ( 'nav_menu' === $term['domain'] ) {
934
- $menu_slug = $term['slug'];
935
- break;
936
- }
937
- }
938
- }
939
-
940
- // No nav_menu term associated with this menu item.
941
- if ( ! $menu_slug ) {
942
- $this->output['errors'][] = esc_html__( 'Menu item skipped due to missing menu slug', 'wpr-addons' );
943
-
944
- return;
945
- }
946
-
947
- $menu_id = term_exists( $menu_slug, 'nav_menu' );
948
- if ( ! $menu_id ) {
949
- /* translators: %s: Menu slug. */
950
- $this->output['errors'][] = sprintf( esc_html__( 'Menu item skipped due to invalid menu slug: %s', 'wpr-addons' ), $menu_slug );
951
-
952
- return;
953
- } else {
954
- $menu_id = is_array( $menu_id ) ? $menu_id['term_id'] : $menu_id;
955
- }
956
-
957
- $post_meta_key_value = [];
958
- foreach ( $item['postmeta'] as $meta ) {
959
- $post_meta_key_value[ $meta['key'] ] = $meta['value'];
960
- }
961
-
962
- // Duke - Import Menu Items Post Meta
963
- $backup_menu_item_meta = [];
964
- $backup_menu_item_meta['postmeta'] = $item['postmeta'];
965
-
966
- foreach ( $item['postmeta'] as $meta ) {
967
- ${$meta['key']} = $meta['value'];
968
- }
969
- // End.
970
-
971
- $_menu_item_object_id = $post_meta_key_value['_menu_item_object_id'];
972
- if ( 'taxonomy' === $post_meta_key_value['_menu_item_type'] && isset( $this->processed_terms[ intval( $_menu_item_object_id ) ] ) ) {
973
- $_menu_item_object_id = $this->processed_terms[ intval( $_menu_item_object_id ) ];
974
- } elseif ( 'post_type' === $post_meta_key_value['_menu_item_type'] && isset( $this->processed_posts[ intval( $_menu_item_object_id ) ] ) ) {
975
- $_menu_item_object_id = $this->processed_posts[ intval( $_menu_item_object_id ) ];
976
- } elseif ( 'custom' !== $post_meta_key_value['_menu_item_type'] ) {
977
- // Associated object is missing or not imported yet, we'll retry later.
978
- $this->missing_menu_items[] = $item;
979
-
980
- return;
981
- }
982
-
983
- $_menu_item_menu_item_parent = $post_meta_key_value['_menu_item_menu_item_parent']; // Duke - fix "_menu_item_menu_item_parent" dash was added
984
- if ( isset( $this->processed_menu_items[ intval( $_menu_item_menu_item_parent ) ] ) ) {
985
- $_menu_item_menu_item_parent = $this->processed_menu_items[ intval( $_menu_item_menu_item_parent ) ];
986
- } elseif ( $_menu_item_menu_item_parent ) {
987
- $this->menu_item_orphans[ intval( $item['post_id'] ) ] = (int) $_menu_item_menu_item_parent;
988
- $_menu_item_menu_item_parent = 0;
989
- }
990
-
991
- // wp_update_nav_menu_item expects CSS classes as a space separated string
992
- $_menu_item_classes = maybe_unserialize( $post_meta_key_value['_menu_item_classes'] );
993
- if ( is_array( $_menu_item_classes ) ) {
994
- $_menu_item_classes = implode( ' ', $_menu_item_classes );
995
- }
996
-
997
- $args = [
998
- 'menu-item-object-id' => $_menu_item_object_id,
999
- 'menu-item-object' => $post_meta_key_value['_menu_item_object'],
1000
- 'menu-item-parent-id' => $_menu_item_menu_item_parent,
1001
- 'menu-item-position' => intval( $item['menu_order'] ),
1002
- 'menu-item-type' => $post_meta_key_value['_menu_item_type'],
1003
- 'menu-item-title' => $item['post_title'],
1004
- 'menu-item-url' => $post_meta_key_value['_menu_item_url'],
1005
- 'menu-item-description' => $item['post_content'],
1006
- 'menu-item-attr-title' => $item['post_excerpt'],
1007
- 'menu-item-target' => $post_meta_key_value['_menu_item_target'],
1008
- 'menu-item-classes' => $_menu_item_classes,
1009
- 'menu-item-xfn' => $post_meta_key_value['_menu_item_xfn'],
1010
- 'menu-item-status' => $item['status'],
1011
- ];
1012
-
1013
- $id = wp_update_nav_menu_item( $menu_id, 0, $args );
1014
- if ( $id && ! is_wp_error( $id ) ) {
1015
- // Duke - Import Menu Items Post Meta
1016
- $menu_item_db_id = $id;
1017
- $backup_menu_item_meta['postmeta'] = apply_filters('wordpress_importer_menu_items_meta_import', $backup_menu_item_meta['postmeta'], $id);
1018
- $skip_meta_items = [
1019
- '_menu_item_type',
1020
- '_menu_item_menu_item_parent',
1021
- '_menu_item_object_id',
1022
- '_menu_item_object',
1023
- '_menu_item_target',
1024
- '_menu_item_classes',
1025
- '_menu_item_xfn',
1026
- '_menu_item_url'
1027
- ];
1028
- if ( is_array($backup_menu_item_meta['postmeta']) && !empty($backup_menu_item_meta['postmeta']) ) {
1029
- foreach ( $backup_menu_item_meta['postmeta'] as $meta ) {
1030
- if ( !in_array($meta['key'], $skip_meta_items) ) {
1031
- update_post_meta( $menu_item_db_id, $meta['key'], maybe_unserialize($meta['value']));
1032
- }
1033
- }
1034
- }
1035
- // End.
1036
-
1037
- $this->processed_menu_items[ intval( $item['post_id'] ) ] = (int) $id;
1038
- }
1039
- }
1040
-
1041
- /**
1042
- * If fetching attachments is enabled then attempt to create a new attachment
1043
- *
1044
- * @param array $post Attachment post details from WXR
1045
- * @param string $url URL to fetch attachment from
1046
- *
1047
- * @return int|WP_Error Post ID on success, WP_Error otherwise
1048
- */
1049
- private function process_attachment( $post, $url ) {
1050
-
1051
- if ( ! $this->fetch_attachments ) {
1052
- return new WP_Error( 'attachment_processing_error', esc_html__( 'Fetching attachments is not enabled', 'wpr-addons' ) );
1053
- }
1054
-
1055
- // if the URL is absolute, but does not contain address, then upload it assuming base_site_url.
1056
- if ( preg_match( '|^/[\w\W]+$|', $url ) ) {
1057
- $url = rtrim( $this->base_url, '/' ) . $url;
1058
- }
1059
-
1060
- $upload = $this->fetch_remote_file( $url, $post );
1061
- if ( is_wp_error( $upload ) ) {
1062
- return $upload;
1063
- }
1064
-
1065
- $info = wp_check_filetype( $upload['file'] );
1066
- if ( $info ) {
1067
- $post['post_mime_type'] = $info['type'];
1068
- } else {
1069
- return new WP_Error( 'attachment_processing_error', esc_html__( 'Invalid file type', 'wpr-addons' ) );
1070
- }
1071
-
1072
- $post['guid'] = $upload['url'];
1073
-
1074
- // As per wp-admin/includes/upload.php.
1075
- $post_id = wp_insert_attachment( $post, $upload['file'] );
1076
- wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) );
1077
-
1078
- // Remap resized image URLs, works by stripping the extension and remapping the URL stub.
1079
- if ( preg_match( '!^image/!', $info['type'] ) ) {
1080
- $parts = pathinfo( $url );
1081
- $name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2
1082
-
1083
- $parts_new = pathinfo( $upload['url'] );
1084
- $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" );
1085
-
1086
- $this->url_remap[ $parts['dirname'] . '/' . $name ] = $parts_new['dirname'] . '/' . $name_new;
1087
- }
1088
-
1089
- return $post_id;
1090
- }
1091
-
1092
- /**
1093
- * Attempt to download a remote file attachment
1094
- *
1095
- * @param string $url URL of item to fetch
1096
- * @param array $post Attachment details
1097
- *
1098
- * @return array|WP_Error Local file location details on success, WP_Error otherwise
1099
- */
1100
- private function fetch_remote_file( $url, $post ) {
1101
- // Extract the file name from the URL.
1102
- $file_name = basename( parse_url( $url, PHP_URL_PATH ) );
1103
-
1104
- if ( ! $file_name ) {
1105
- $file_name = md5( $url );
1106
- }
1107
-
1108
- $tmp_file_name = wp_tempnam( $file_name );
1109
- if ( ! $tmp_file_name ) {
1110
- return new WP_Error( 'import_no_file', esc_html__( 'Could not create temporary file.', 'wpr-addons' ) );
1111
- }
1112
-
1113
- // Fetch the remote URL and write it to the placeholder file.
1114
- $remote_response = wp_safe_remote_get( $url, [
1115
- 'timeout' => 300,
1116
- 'stream' => true,
1117
- 'filename' => $tmp_file_name,
1118
- 'headers' => [
1119
- 'Accept-Encoding' => 'identity',
1120
- ],
1121
- ] );
1122
-
1123
- if ( is_wp_error( $remote_response ) ) {
1124
- @unlink( $tmp_file_name );
1125
-
1126
- return new WP_Error( 'import_file_error', sprintf( /* translators: 1: WordPress error message, 2: WordPress error code. */ esc_html__( 'Request failed due to an error: %1$s (%2$s)', 'wpr-addons' ), esc_html( $remote_response->get_error_message() ), esc_html( $remote_response->get_error_code() ) ) );
1127
- }
1128
-
1129
- $remote_response_code = (int) wp_remote_retrieve_response_code( $remote_response );
1130
-
1131
- // Make sure the fetch was successful.
1132
- if ( 200 !== $remote_response_code ) {
1133
- @unlink( $tmp_file_name );
1134
-
1135
- return new WP_Error( 'import_file_error', sprintf( /* translators: 1: HTTP error message, 2: HTTP error code. */ esc_html__( 'Remote server returned the following unexpected result: %1$s (%2$s)', 'wpr-addons' ), get_status_header_desc( $remote_response_code ), esc_html( $remote_response_code ) ) );
1136
- }
1137
-
1138
- $headers = wp_remote_retrieve_headers( $remote_response );
1139
-
1140
- // Request failed.
1141
- if ( ! $headers ) {
1142
- @unlink( $tmp_file_name );
1143
-
1144
- return new WP_Error( 'import_file_error', esc_html__( 'Remote server did not respond', 'wpr-addons' ) );
1145
- }
1146
-
1147
- $filesize = (int) filesize( $tmp_file_name );
1148
-
1149
- if ( 0 === $filesize ) {
1150
- @unlink( $tmp_file_name );
1151
-
1152
- return new WP_Error( 'import_file_error', esc_html__( 'Zero size file downloaded', 'wpr-addons' ) );
1153
- }
1154
-
1155
- if ( ! isset( $headers['content-encoding'] ) && isset( $headers['content-length'] ) && $filesize !== (int) $headers['content-length'] ) {
1156
- @unlink( $tmp_file_name );
1157
-
1158
- return new WP_Error( 'import_file_error', esc_html__( 'Downloaded file has incorrect size', 'wpr-addons' ) );
1159
- }
1160
-
1161
- $max_size = (int) apply_filters( 'import_attachment_size_limit', self::DEFAULT_IMPORT_ATTACHMENT_SIZE_LIMIT );
1162
- if ( ! empty( $max_size ) && $filesize > $max_size ) {
1163
- @unlink( $tmp_file_name );
1164
-
1165
- /* translators: %s: Max file size. */
1166
- return new WP_Error( 'import_file_error', sprintf( esc_html__( 'Remote file is too large, limit is %s', 'wpr-addons' ), size_format( $max_size ) ) );
1167
- }
1168
-
1169
- // Override file name with Content-Disposition header value.
1170
- if ( ! empty( $headers['content-disposition'] ) ) {
1171
- $file_name_from_disposition = self::get_filename_from_disposition( (array) $headers['content-disposition'] );
1172
- if ( $file_name_from_disposition ) {
1173
- $file_name = $file_name_from_disposition;
1174
- }
1175
- }
1176
-
1177
- // Set file extension if missing.
1178
- $file_ext = pathinfo( $file_name, PATHINFO_EXTENSION );
1179
- if ( ! $file_ext && ! empty( $headers['content-type'] ) ) {
1180
- $extension = self::get_file_extension_by_mime_type( $headers['content-type'] );
1181
- if ( $extension ) {
1182
- $file_name = "{$file_name}.{$extension}";
1183
- }
1184
- }
1185
-
1186
- // Handle the upload like _wp_handle_upload() does.
1187
- $wp_filetype = wp_check_filetype_and_ext( $tmp_file_name, $file_name );
1188
- $ext = empty( $wp_filetype['ext'] ) ? '' : $wp_filetype['ext'];
1189
- $type = empty( $wp_filetype['type'] ) ? '' : $wp_filetype['type'];
1190
- $proper_filename = empty( $wp_filetype['proper_filename'] ) ? '' : $wp_filetype['proper_filename'];
1191
-
1192
- // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect.
1193
- if ( $proper_filename ) {
1194
- $file_name = $proper_filename;
1195
- }
1196
-
1197
- if ( ( ! $type || ! $ext ) && ! current_user_can( 'unfiltered_upload' ) ) {
1198
- return new WP_Error( 'import_file_error', esc_html__( 'Sorry, this file type is not permitted for security reasons.', 'wpr-addons' ) );
1199
- }
1200
-
1201
- $uploads = wp_upload_dir( $post['upload_date'] );
1202
- if ( ! ( $uploads && false === $uploads['error'] ) ) {
1203
- return new WP_Error( 'upload_dir_error', $uploads['error'] );
1204
- }
1205
-
1206
- // Move the file to the uploads dir.
1207
- $file_name = wp_unique_filename( $uploads['path'], $file_name );
1208
- $new_file = $uploads['path'] . "/$file_name";
1209
- $move_new_file = copy( $tmp_file_name, $new_file );
1210
-
1211
- if ( ! $move_new_file ) {
1212
- @unlink( $tmp_file_name );
1213
-
1214
- return new WP_Error( 'import_file_error', esc_html__( 'The uploaded file could not be moved', 'wpr-addons' ) );
1215
- }
1216
-
1217
- // Set correct file permissions.
1218
- $stat = stat( dirname( $new_file ) );
1219
- $perms = $stat['mode'] & 0000666;
1220
- chmod( $new_file, $perms );
1221
-
1222
- $upload = [
1223
- 'file' => $new_file,
1224
- 'url' => $uploads['url'] . "/$file_name",
1225
- 'type' => $wp_filetype['type'],
1226
- 'error' => false,
1227
- ];
1228
-
1229
- // Keep track of the old and new urls so we can substitute them later.
1230
- $this->url_remap[ $url ] = $upload['url'];
1231
- $this->url_remap[ $post['guid'] ] = $upload['url']; // r13735, really needed?
1232
- // Keep track of the destination if the remote url is redirected somewhere else.
1233
- if ( isset( $headers['x-final-location'] ) && $headers['x-final-location'] !== $url ) {
1234
- $this->url_remap[ $headers['x-final-location'] ] = $upload['url'];
1235
- }
1236
-
1237
- return $upload;
1238
- }
1239
-
1240
- /**
1241
- * Attempt to associate posts and menu items with previously missing parents
1242
- *
1243
- * An imported post's parent may not have been imported when it was first created
1244
- * so try again. Similarly for child menu items and menu items which were missing
1245
- * the object (e.g. post) they represent in the menu
1246
- */
1247
- private function backfill_parents() {
1248
- global $wpdb;
1249
-
1250
- // Find parents for post orphans.
1251
- foreach ( $this->post_orphans as $child_id => $parent_id ) {
1252
- $local_child_id = false;
1253
- $local_parent_id = false;
1254
-
1255
- if ( isset( $this->processed_posts[ $child_id ] ) ) {
1256
- $local_child_id = $this->processed_posts[ $child_id ];
1257
- }
1258
- if ( isset( $this->processed_posts[ $parent_id ] ) ) {
1259
- $local_parent_id = $this->processed_posts[ $parent_id ];
1260
- }
1261
-
1262
- if ( $local_child_id && $local_parent_id ) {
1263
- $wpdb->update( $wpdb->posts, [ 'post_parent' => $local_parent_id ], [ 'ID' => $local_child_id ], '%d', '%d' );
1264
- clean_post_cache( $local_child_id );
1265
- }
1266
- }
1267
-
1268
- // All other posts/terms are imported, retry menu items with missing associated object.
1269
- $missing_menu_items = $this->missing_menu_items;
1270
- foreach ( $missing_menu_items as $item ) {
1271
- $this->process_menu_item( $item );
1272
- }
1273
-
1274
- // Find parents for menu item orphans.
1275
- foreach ( $this->menu_item_orphans as $child_id => $parent_id ) {
1276
- $local_child_id = 0;
1277
- $local_parent_id = 0;
1278
- if ( isset( $this->processed_menu_items[ $child_id ] ) ) {
1279
- $local_child_id = $this->processed_menu_items[ $child_id ];
1280
- }
1281
- if ( isset( $this->processed_menu_items[ $parent_id ] ) ) {
1282
- $local_parent_id = $this->processed_menu_items[ $parent_id ];
1283
- }
1284
-
1285
- if ( $local_child_id && $local_parent_id ) {
1286
- update_post_meta( $local_child_id, '_menu_item_menu_item_parent', (int) $local_parent_id );
1287
- }
1288
- }
1289
- }
1290
-
1291
- /**
1292
- * Use stored mapping information to update old attachment URLs
1293
- */
1294
- private function backfill_attachment_urls() {
1295
- global $wpdb;
1296
- // Make sure we do the longest urls first, in case one is a substring of another.
1297
- uksort( $this->url_remap, function ( $a, $b ) {
1298
- // Return the difference in length between two strings.
1299
- return strlen( $b ) - strlen( $a );
1300
- } );
1301
-
1302
- foreach ( $this->url_remap as $from_url => $to_url ) {
1303
- // Remap urls in post_content.
1304
- $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s)", $from_url, $to_url ) );
1305
- // Remap enclosure urls.
1306
- $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key='enclosure'", $from_url, $to_url ) );
1307
- }
1308
- }
1309
-
1310
- /**
1311
- * Update _thumbnail_id meta to new, imported attachment IDs
1312
- */
1313
- private function remap_featured_images() {
1314
- // Cycle through posts that have a featured image.
1315
- foreach ( $this->featured_images as $post_id => $value ) {
1316
- if ( isset( $this->processed_posts[ $value ] ) ) {
1317
- $new_id = $this->processed_posts[ $value ];
1318
- // Only update if there's a difference.
1319
- if ( $new_id !== $value ) {
1320
- update_post_meta( $post_id, '_thumbnail_id', $new_id );
1321
- }
1322
- }
1323
- }
1324
- }
1325
-
1326
- /**
1327
- * Parse a WXR file
1328
- *
1329
- * @param string $file Path to WXR file for parsing
1330
- *
1331
- * @return array Information gathered from the WXR file
1332
- */
1333
- private function parse( $file ) {
1334
- $parser = new WXR_Parser();
1335
-
1336
- return $parser->parse( $file );
1337
- }
1338
-
1339
- /**
1340
- * Decide if the given meta key maps to information we will want to import
1341
- *
1342
- * @param string $key The meta key to check
1343
- *
1344
- * @return string|bool The key if we do want to import, false if not
1345
- */
1346
- private function is_valid_meta_key( $key ) {
1347
- // Skip attachment metadata since we'll regenerate it from scratch.
1348
- // Skip _edit_lock as not relevant for import
1349
- if ( in_array( $key, [ '_wp_attached_file', '_wp_attachment_metadata', '_edit_lock' ] ) ) {
1350
- return false;
1351
- }
1352
-
1353
- return $key;
1354
- }
1355
-
1356
- public function run() {
1357
- $this->import( $this->requested_file_path );
1358
-
1359
- return $this->output;
1360
- }
1361
-
1362
- public function __construct( $file, $args = [] ) {
1363
- $this->requested_file_path = $file;
1364
- $this->args = $args;
1365
-
1366
- if ( ! empty( $this->args['fetch_attachments'] ) ) {
1367
- $this->fetch_attachments = true;
1368
- }
1369
- }
1370
- }
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ if ( ! defined( 'WP_LOAD_IMPORTERS' ) )
8
+ return;
9
+
10
+ /** Display verbose errors */
11
+ define( 'IMPORT_DEBUG', false );
12
+
13
+ // Load Importer API
14
+ require_once ABSPATH . 'wp-admin/includes/import.php';
15
+
16
+ if ( ! class_exists( 'WP_Importer' ) ) {
17
+ $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
18
+ if ( file_exists( $class_wp_importer ) )
19
+ require $class_wp_importer;
20
+ }
21
+
22
+ // include WXR file parsers
23
+ require WPR_ADDONS_PATH .'admin/import/class-parsers.php';
24
+
25
+ class WP_Import extends WP_Importer {
26
+ const DEFAULT_BUMP_REQUEST_TIMEOUT = 60;
27
+ const DEFAULT_ALLOW_CREATE_USERS = true;
28
+ const DEFAULT_IMPORT_ATTACHMENT_SIZE_LIMIT = 0; // 0 = unlimited.
29
+
30
+ /**
31
+ * @var string
32
+ */
33
+ private $requested_file_path;
34
+
35
+ /**
36
+ * @var array
37
+ */
38
+ private $args;
39
+
40
+ /**
41
+ * @var array
42
+ */
43
+ private $output = [
44
+ 'status' => 'failed',
45
+ 'errors' => [],
46
+ ];
47
+
48
+ /*
49
+ * WXR attachment ID
50
+ */
51
+ private $id;
52
+
53
+ // Information to import from WXR file.
54
+ private $version;
55
+ private $authors = [];
56
+ private $posts = [];
57
+ private $terms = [];
58
+ private $categories = [];
59
+ private $tags = [];
60
+ private $base_url = '';
61
+ private $page_on_front;
62
+
63
+ // Mappings from old information to new.
64
+ private $processed_authors = [];
65
+ private $author_mapping = [];
66
+ private $processed_terms = [];
67
+ private $processed_posts = [];
68
+ private $post_orphans = [];
69
+ private $processed_menu_items = [];
70
+ private $menu_item_orphans = [];
71
+ private $missing_menu_items = [];
72
+
73
+ private $fetch_attachments = false;
74
+ private $url_remap = [];
75
+ private $featured_images = [];
76
+
77
+ /**
78
+ * Parses filename from a Content-Disposition header value.
79
+ *
80
+ * As per RFC6266:
81
+ *
82
+ * content-disposition = "Content-Disposition" ":"
83
+ * disposition-type *( ";" disposition-parm )
84
+ *
85
+ * disposition-type = "inline" | "attachment" | disp-ext-type
86
+ * ; case-insensitive
87
+ * disp-ext-type = token
88
+ *
89
+ * disposition-parm = filename-parm | disp-ext-parm
90
+ *
91
+ * filename-parm = "filename" "=" value
92
+ * | "filename*" "=" ext-value
93
+ *
94
+ * disp-ext-parm = token "=" value
95
+ * | ext-token "=" ext-value
96
+ * ext-token = <the characters in token, followed by "*">
97
+ *
98
+ * @param string[] $disposition_header List of Content-Disposition header values.
99
+ *
100
+ * @return string|null Filename if available, or null if not found.
101
+ * @link http://tools.ietf.org/html/rfc2388
102
+ * @link http://tools.ietf.org/html/rfc6266
103
+ *
104
+ * @see WP_REST_Attachments_Controller::get_filename_from_disposition()
105
+ *
106
+ */
107
+ protected static function get_filename_from_disposition( $disposition_header ) {
108
+ // Get the filename.
109
+ $filename = null;
110
+
111
+ foreach ( $disposition_header as $value ) {
112
+ $value = trim( $value );
113
+
114
+ if ( strpos( $value, ';' ) === false ) {
115
+ continue;
116
+ }
117
+
118
+ list( $type, $attr_parts ) = explode( ';', $value, 2 );
119
+
120
+ $attr_parts = explode( ';', $attr_parts );
121
+ $attributes = [];
122
+
123
+ foreach ( $attr_parts as $part ) {
124
+ if ( strpos( $part, '=' ) === false ) {
125
+ continue;
126
+ }
127
+
128
+ list( $key, $value ) = explode( '=', $part, 2 );
129
+
130
+ $attributes[ trim( $key ) ] = trim( $value );
131
+ }
132
+
133
+ if ( empty( $attributes['filename'] ) ) {
134
+ continue;
135
+ }
136
+
137
+ $filename = trim( $attributes['filename'] );
138
+
139
+ // Unquote quoted filename, but after trimming.
140
+ if ( substr( $filename, 0, 1 ) === '"' && substr( $filename, -1, 1 ) === '"' ) {
141
+ $filename = substr( $filename, 1, -1 );
142
+ }
143
+ }
144
+
145
+ return $filename;
146
+ }
147
+
148
+ /**
149
+ * Retrieves file extension by mime type.
150
+ *
151
+ * @param string $mime_type Mime type to search extension for.
152
+ *
153
+ * @return string|null File extension if available, or null if not found.
154
+ */
155
+ protected static function get_file_extension_by_mime_type( $mime_type ) {
156
+ static $map = null;
157
+
158
+ if ( is_array( $map ) ) {
159
+ return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
160
+ }
161
+
162
+ $mime_types = wp_get_mime_types();
163
+ $map = array_flip( $mime_types );
164
+
165
+ // Some types have multiple extensions, use only the first one.
166
+ foreach ( $map as $type => $extensions ) {
167
+ $map[ $type ] = strtok( $extensions, '|' );
168
+ }
169
+
170
+ return isset( $map[ $mime_type ] ) ? $map[ $mime_type ] : null;
171
+ }
172
+
173
+ /**
174
+ * The main controller for the actual import stage.
175
+ *
176
+ * @param string $file Path to the WXR file for importing
177
+ */
178
+ private function import( $file ) {
179
+ add_filter( 'import_post_meta_key', function ( $key ) {
180
+ return $this->is_valid_meta_key( $key );
181
+ } );
182
+ add_filter( 'http_request_timeout', function () {
183
+ return self::DEFAULT_BUMP_REQUEST_TIMEOUT;
184
+ } );
185
+
186
+ if ( ! $this->import_start( $file ) ) {
187
+ return;
188
+ }
189
+
190
+ $this->set_author_mapping();
191
+
192
+ wp_suspend_cache_invalidation( true );
193
+ $imported_summary = [
194
+ 'categories' => $this->process_categories(),
195
+ 'tags' => $this->process_tags(),
196
+ 'terms' => $this->process_terms(),
197
+ 'posts' => $this->process_posts(),
198
+ ];
199
+ wp_suspend_cache_invalidation( false );
200
+
201
+ // Update incorrect/missing information in the DB.
202
+ $this->backfill_parents();
203
+ $this->backfill_attachment_urls();
204
+ $this->remap_featured_images();
205
+
206
+ $this->import_end();
207
+
208
+ $is_some_succeed = false;
209
+ foreach ( $imported_summary as $item ) {
210
+ if ( $item > 0 ) {
211
+ $is_some_succeed = true;
212
+ break;
213
+ }
214
+ }
215
+
216
+ if ( $is_some_succeed ) {
217
+ $this->output['status'] = 'success';
218
+ $this->output['summary'] = $imported_summary;
219
+ }
220
+ }
221
+
222
+ /**
223
+ * Parses the WXR file and prepares us for the task of processing parsed data.
224
+ *
225
+ * @param string $file Path to the WXR file for importing
226
+ */
227
+ private function import_start( $file ) {
228
+ if ( ! is_file( $file ) ) {
229
+ $this->output['errors'] = [ esc_html__( 'The file does not exist, please try again.', 'wpr-addons' ) ];
230
+
231
+ return false;
232
+ }
233
+
234
+ $import_data = $this->parse( $file );
235
+
236
+ if ( is_wp_error( $import_data ) ) {
237
+ $this->output['errors'] = [ $import_data->get_error_message() ];
238
+
239
+ return false;
240
+ }
241
+
242
+ $this->version = $import_data['version'];
243
+ $this->set_authors_from_import( $import_data );
244
+ $this->posts = $import_data['posts'];
245
+ $this->terms = $import_data['terms'];
246
+ $this->categories = $import_data['categories'];
247
+ $this->tags = $import_data['tags'];
248
+ $this->base_url = esc_url( $import_data['base_url'] );
249
+ $this->page_on_front = $import_data['page_on_front'];
250
+
251
+ wp_defer_term_counting( true );
252
+ wp_defer_comment_counting( true );
253
+
254
+ do_action( 'import_start' );
255
+
256
+ return true;
257
+ }
258
+
259
+ /**
260
+ * Performs post-import cleanup of files and the cache
261
+ */
262
+ private function import_end() {
263
+ wp_import_cleanup( $this->id );
264
+
265
+ wp_cache_flush();
266
+
267
+ foreach ( get_taxonomies() as $tax ) {
268
+ delete_option( "{$tax}_children" );
269
+ _get_term_hierarchy( $tax );
270
+ }
271
+
272
+ wp_defer_term_counting( false );
273
+ wp_defer_comment_counting( false );
274
+
275
+ do_action( 'import_end' );
276
+ }
277
+
278
+ /**
279
+ * Retrieve authors from parsed WXR data and set it to `$this->>authors`.
280
+ *
281
+ * Uses the provided author information from WXR 1.1 files
282
+ * or extracts info from each post for WXR 1.0 files
283
+ *
284
+ * @param array $import_data Data returned by a WXR parser
285
+ */
286
+ private function set_authors_from_import( $import_data ) {
287
+ if ( ! empty( $import_data['authors'] ) ) {
288
+ $this->authors = $import_data['authors'];
289
+ // No author information, grab it from the posts.
290
+ } else {
291
+ foreach ( $import_data['posts'] as $post ) {
292
+ $login = sanitize_user( $post['post_author'], true );
293
+
294
+ if ( empty( $login ) ) {
295
+ /* translators: %s: Post author. */
296
+ $this->output['errors'][] = sprintf( esc_html__( 'Failed to import author %s. Their posts will be attributed to the current user.', 'wpr-addons' ), $post['post_author'] );
297
+ continue;
298
+ }
299
+
300
+ if ( ! isset( $this->authors[ $login ] ) ) {
301
+ $this->authors[ $login ] = [
302
+ 'author_login' => $login,
303
+ 'author_display_name' => $post['post_author'],
304
+ ];
305
+ }
306
+ }
307
+ }
308
+ }
309
+
310
+ /**
311
+ * Map old author logins to local user IDs based on decisions made
312
+ * in import options form. Can map to an existing user, create a new user
313
+ * or falls back to the current user in case of error with either of the previous
314
+ */
315
+ private function set_author_mapping() {
316
+ if ( ! isset( $this->args['imported_authors'] ) ) {
317
+ return;
318
+ }
319
+
320
+ $create_users = apply_filters( 'import_allow_create_users', self::DEFAULT_ALLOW_CREATE_USERS );
321
+
322
+ foreach ( (array) $this->args['imported_authors'] as $i => $old_login ) {
323
+ // Multisite adds strtolower to sanitize_user. Need to sanitize here to stop breakage in process_posts.
324
+ $santized_old_login = sanitize_user( $old_login, true );
325
+ $old_id = isset( $this->authors[ $old_login ]['author_id'] ) ? intval( $this->authors[ $old_login ]['author_id'] ) : false;
326
+
327
+ if ( ! empty( $this->args['user_map'][ $i ] ) ) {
328
+ $user = get_userdata( intval( $this->args['user_map'][ $i ] ) );
329
+ if ( isset( $user->ID ) ) {
330
+ if ( $old_id ) {
331
+ $this->processed_authors[ $old_id ] = $user->ID;
332
+ }
333
+ $this->author_mapping[ $santized_old_login ] = $user->ID;
334
+ }
335
+ } elseif ( $create_users ) {
336
+ $user_id = 0;
337
+ if ( ! empty( $this->args['user_new'][ $i ] ) ) {
338
+ $user_id = wp_create_user( $this->args['user_new'][ $i ], wp_generate_password() );
339
+ } elseif ( '1.0' !== $this->version ) {
340
+ $user_data = [
341
+ 'user_login' => $old_login,
342
+ 'user_pass' => wp_generate_password(),
343
+ 'user_email' => isset( $this->authors[ $old_login ]['author_email'] ) ? $this->authors[ $old_login ]['author_email'] : '',
344
+ 'display_name' => $this->authors[ $old_login ]['author_display_name'],
345
+ 'first_name' => isset( $this->authors[ $old_login ]['author_first_name'] ) ? $this->authors[ $old_login ]['author_first_name'] : '',
346
+ 'last_name' => isset( $this->authors[ $old_login ]['author_last_name'] ) ? $this->authors[ $old_login ]['author_last_name'] : '',
347
+ ];
348
+ $user_id = wp_insert_user( $user_data );
349
+ }
350
+
351
+ if ( ! is_wp_error( $user_id ) ) {
352
+ if ( $old_id ) {
353
+ $this->processed_authors[ $old_id ] = $user_id;
354
+ }
355
+ $this->author_mapping[ $santized_old_login ] = $user_id;
356
+ } else {
357
+ /* translators: %s: Author display name. */
358
+ $error = sprintf( esc_html__( 'Failed to create new user for %s. Their posts will be attributed to the current user.', 'wpr-addons' ), $this->authors[ $old_login ]['author_display_name'] );
359
+
360
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
361
+ $error .= PHP_EOL . $user_id->get_error_message();
362
+ }
363
+
364
+ $this->output['errors'][] = $error;
365
+ }
366
+ }
367
+
368
+ // Failsafe: if the user_id was invalid, default to the current user.
369
+ if ( ! isset( $this->author_mapping[ $santized_old_login ] ) ) {
370
+ if ( $old_id ) {
371
+ $this->processed_authors[ $old_id ] = (int) get_current_user_id();
372
+ }
373
+ $this->author_mapping[ $santized_old_login ] = (int) get_current_user_id();
374
+ }
375
+ }
376
+ }
377
+
378
+ /**
379
+ * Create new categories based on import information
380
+ *
381
+ * Doesn't create a new category if its slug already exists
382
+ *
383
+ * @return int number of imported categories.
384
+ */
385
+ private function process_categories() {
386
+ $result = 0;
387
+
388
+ $this->categories = apply_filters( 'wp_import_categories', $this->categories );
389
+
390
+ if ( empty( $this->categories ) ) {
391
+ return $result;
392
+ }
393
+
394
+ foreach ( $this->categories as $cat ) {
395
+ // if the category already exists leave it alone
396
+ $term_id = term_exists( $cat['category_nicename'], 'category' );
397
+ if ( $term_id ) {
398
+ if ( is_array( $term_id ) ) {
399
+ $term_id = $term_id['term_id'];
400
+ }
401
+ if ( isset( $cat['term_id'] ) ) {
402
+ $this->processed_terms[ intval( $cat['term_id'] ) ] = (int) $term_id;
403
+ }
404
+ continue;
405
+ }
406
+
407
+ $parent = empty( $cat['category_parent'] ) ? 0 : category_exists( $cat['category_parent'] );
408
+ $description = isset( $cat['category_description'] ) ? $cat['category_description'] : '';
409
+
410
+ $data = [
411
+ 'category_nicename' => $cat['category_nicename'],
412
+ 'category_parent' => $parent,
413
+ 'cat_name' => wp_slash( $cat['cat_name'] ),
414
+ 'category_description' => wp_slash( $description ),
415
+ ];
416
+
417
+ $id = wp_insert_category( $data );
418
+ if ( ! is_wp_error( $id ) && $id > 0 ) {
419
+ if ( isset( $cat['term_id'] ) ) {
420
+ $this->processed_terms[ intval( $cat['term_id'] ) ] = $id;
421
+ }
422
+ $result++;
423
+ } else {
424
+ /* translators: %s: Category name. */
425
+ $error = sprintf( esc_html__( 'Failed to import category %s', 'wpr-addons' ), $cat['category_nicename'] );
426
+
427
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
428
+ $error .= PHP_EOL . $id->get_error_message();
429
+ }
430
+
431
+ $this->output['errors'][] = $error;
432
+ continue;
433
+ }
434
+
435
+ $this->process_termmeta( $cat, $id );
436
+ }
437
+
438
+ unset( $this->categories );
439
+
440
+ return $result;
441
+ }
442
+
443
+ /**
444
+ * Create new post tags based on import information
445
+ *
446
+ * Doesn't create a tag if its slug already exists
447
+ *
448
+ * @return int number of imported tags.
449
+ */
450
+ private function process_tags() {
451
+ $result = 0;
452
+
453
+ $this->tags = apply_filters( 'wp_import_tags', $this->tags );
454
+
455
+ if ( empty( $this->tags ) ) {
456
+ return $result;
457
+ }
458
+
459
+ foreach ( $this->tags as $tag ) {
460
+ // if the tag already exists leave it alone
461
+ $term_id = term_exists( $tag['tag_slug'], 'post_tag' );
462
+ if ( $term_id ) {
463
+ if ( is_array( $term_id ) ) {
464
+ $term_id = $term_id['term_id'];
465
+ }
466
+ if ( isset( $tag['term_id'] ) ) {
467
+ $this->processed_terms[ intval( $tag['term_id'] ) ] = (int) $term_id;
468
+ }
469
+ continue;
470
+ }
471
+
472
+ $description = isset( $tag['tag_description'] ) ? $tag['tag_description'] : '';
473
+ $args = [
474
+ 'slug' => $tag['tag_slug'],
475
+ 'description' => wp_slash( $description ),
476
+ ];
477
+
478
+ $id = wp_insert_term( wp_slash( $tag['tag_name'] ), 'post_tag', $args );
479
+ if ( ! is_wp_error( $id ) ) {
480
+ if ( isset( $tag['term_id'] ) ) {
481
+ $this->processed_terms[ intval( $tag['term_id'] ) ] = $id['term_id'];
482
+ }
483
+ $result++;
484
+ } else {
485
+ /* translators: %s: Tag name. */
486
+ $error = sprintf( esc_html__( 'Failed to import post tag %s', 'wpr-addons' ), $tag['tag_name'] );
487
+
488
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
489
+ $error .= PHP_EOL . $id->get_error_message();
490
+ }
491
+
492
+ $this->output['errors'][] = $error;
493
+ continue;
494
+ }
495
+
496
+ $this->process_termmeta( $tag, $id['term_id'] );
497
+ }
498
+
499
+ unset( $this->tags );
500
+
501
+ return $result;
502
+ }
503
+
504
+ /**
505
+ * Create new terms based on import information
506
+ *
507
+ * Doesn't create a term its slug already exists
508
+ *
509
+ * @return int number of imported terms.
510
+ */
511
+ private function process_terms() {
512
+ $result = 0;
513
+
514
+ $this->terms = apply_filters( 'wp_import_terms', $this->terms );
515
+
516
+ if ( empty( $this->terms ) ) {
517
+ return $result;
518
+ }
519
+
520
+ foreach ( $this->terms as $term ) {
521
+ // if the term already exists in the correct taxonomy leave it alone
522
+ $term_id = term_exists( $term['slug'], $term['term_taxonomy'] );
523
+ if ( $term_id ) {
524
+ if ( is_array( $term_id ) ) {
525
+ $term_id = $term_id['term_id'];
526
+ }
527
+ if ( isset( $term['term_id'] ) ) {
528
+ $this->processed_terms[ intval( $term['term_id'] ) ] = (int) $term_id;
529
+ }
530
+ continue;
531
+ }
532
+
533
+ if ( empty( $term['term_parent'] ) ) {
534
+ $parent = 0;
535
+ } else {
536
+ $parent = term_exists( $term['term_parent'], $term['term_taxonomy'] );
537
+ if ( is_array( $parent ) ) {
538
+ $parent = $parent['term_id'];
539
+ }
540
+ }
541
+
542
+ $description = isset( $term['term_description'] ) ? $term['term_description'] : '';
543
+ $args = [
544
+ 'slug' => $term['slug'],
545
+ 'description' => wp_slash( $description ),
546
+ 'parent' => (int) $parent,
547
+ ];
548
+
549
+ $id = wp_insert_term( wp_slash( $term['term_name'] ), $term['term_taxonomy'], $args );
550
+ if ( ! is_wp_error( $id ) ) {
551
+ if ( isset( $term['term_id'] ) ) {
552
+ $this->processed_terms[ intval( $term['term_id'] ) ] = $id['term_id'];
553
+ }
554
+ $result++;
555
+ } else {
556
+ /* translators: 1: Term taxonomy, 2: Term name. */
557
+ $error = sprintf( esc_html__( 'Failed to import %1$s %2$s', 'wpr-addons' ), $term['term_taxonomy'], $term['term_name'] );
558
+
559
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
560
+ $error .= PHP_EOL . $id->get_error_message();
561
+ }
562
+
563
+ $this->output['errors'][] = $error;
564
+ continue;
565
+ }
566
+
567
+ $this->process_termmeta( $term, $id['term_id'] );
568
+ }
569
+
570
+ unset( $this->terms );
571
+
572
+ return $result;
573
+ }
574
+
575
+ /**
576
+ * Add metadata to imported term.
577
+ *
578
+ * @param array $term Term data from WXR import.
579
+ * @param int $term_id ID of the newly created term.
580
+ */
581
+ private function process_termmeta( $term, $term_id ) {
582
+ if ( ! function_exists( 'add_term_meta' ) ) {
583
+ return;
584
+ }
585
+
586
+ if ( ! isset( $term['termmeta'] ) ) {
587
+ $term['termmeta'] = [];
588
+ }
589
+
590
+ /**
591
+ * Filters the metadata attached to an imported term.
592
+ *
593
+ * @param array $termmeta Array of term meta.
594
+ * @param int $term_id ID of the newly created term.
595
+ * @param array $term Term data from the WXR import.
596
+ */
597
+ $term['termmeta'] = apply_filters( 'wp_import_term_meta', $term['termmeta'], $term_id, $term );
598
+
599
+ if ( empty( $term['termmeta'] ) ) {
600
+ return;
601
+ }
602
+
603
+ foreach ( $term['termmeta'] as $meta ) {
604
+ /**
605
+ * Filters the meta key for an imported piece of term meta.
606
+ *
607
+ * @param string $meta_key Meta key.
608
+ * @param int $term_id ID of the newly created term.
609
+ * @param array $term Term data from the WXR import.
610
+ */
611
+ $key = apply_filters( 'import_term_meta_key', $meta['key'], $term_id, $term );
612
+ if ( ! $key ) {
613
+ continue;
614
+ }
615
+
616
+ // Export gets meta straight from the DB so could have a serialized string
617
+ $value = maybe_unserialize( $meta['value'] );
618
+
619
+ add_term_meta( $term_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
620
+
621
+ /**
622
+ * Fires after term meta is imported.
623
+ *
624
+ * @param int $term_id ID of the newly created term.
625
+ * @param string $key Meta key.
626
+ * @param mixed $value Meta value.
627
+ */
628
+ do_action( 'import_term_meta', $term_id, $key, $value );
629
+ }
630
+ }
631
+
632
+ /**
633
+ * Create new posts based on import information
634
+ *
635
+ * Posts marked as having a parent which doesn't exist will become top level items.
636
+ * Doesn't create a new post if: the post type doesn't exist, the given post ID
637
+ * is already noted as imported or a post with the same title and date already exists.
638
+ * Note that new/updated terms, comments and meta are imported for the last of the above.
639
+ *
640
+ * @return array the ids of succeed/failed imported posts.
641
+ */
642
+ private function process_posts() {
643
+ $result = [
644
+ 'succeed' => [],
645
+ 'failed' => [],
646
+ ];
647
+
648
+ $this->posts = apply_filters( 'wp_import_posts', $this->posts );
649
+
650
+ foreach ( $this->posts as $post ) {
651
+ $post = apply_filters( 'wp_import_post_data_raw', $post );
652
+
653
+ if ( ! post_type_exists( $post['post_type'] ) ) {
654
+ /* translators: 1: Post title, 2: Post type. */
655
+ $this->output['errors'][] = sprintf( esc_html__( 'Failed to import %1$s: Invalid post type %2$s', 'wpr-addons' ), $post['post_title'], $post['post_type'] );
656
+ do_action( 'wp_import_post_exists', $post );
657
+ continue;
658
+ }
659
+
660
+ if ( isset( $this->processed_posts[ $post['post_id'] ] ) && ! empty( $post['post_id'] ) ) {
661
+ continue;
662
+ }
663
+
664
+ if ( 'auto-draft' === $post['status'] ) {
665
+ continue;
666
+ }
667
+
668
+ if ( 'nav_menu_item' === $post['post_type'] ) {
669
+ $this->process_menu_item( $post );
670
+ continue;
671
+ }
672
+
673
+ $post_type_object = get_post_type_object( $post['post_type'] );
674
+
675
+ $post_parent = (int) $post['post_parent'];
676
+ if ( $post_parent ) {
677
+ // if we already know the parent, map it to the new local ID.
678
+ if ( isset( $this->processed_posts[ $post_parent ] ) ) {
679
+ $post_parent = $this->processed_posts[ $post_parent ];
680
+ // otherwise record the parent for later.
681
+ } else {
682
+ $this->post_orphans[ intval( $post['post_id'] ) ] = $post_parent;
683
+ $post_parent = 0;
684
+ }
685
+ }
686
+
687
+ // Map the post author.
688
+ $author = sanitize_user( $post['post_author'], true );
689
+ if ( isset( $this->author_mapping[ $author ] ) ) {
690
+ $author = $this->author_mapping[ $author ];
691
+ } else {
692
+ $author = (int) get_current_user_id();
693
+ }
694
+
695
+ $postdata = [
696
+ 'import_id' => $post['post_id'],
697
+ 'post_author' => $author,
698
+ 'post_content' => $post['post_content'],
699
+ 'post_excerpt' => $post['post_excerpt'],
700
+ 'post_title' => $post['post_title'],
701
+ 'post_status' => $post['status'],
702
+ 'post_name' => $post['post_name'],
703
+ 'comment_status' => $post['comment_status'],
704
+ 'ping_status' => $post['ping_status'],
705
+ 'guid' => $post['guid'],
706
+ 'post_parent' => $post_parent,
707
+ 'menu_order' => $post['menu_order'],
708
+ 'post_type' => $post['post_type'],
709
+ 'post_password' => $post['post_password'],
710
+ 'post_date' => $post['post_date'],
711
+ ];
712
+
713
+ $original_post_id = $post['post_id'];
714
+ $postdata = apply_filters( 'wp_import_post_data_processed', $postdata, $post );
715
+
716
+ $postdata = wp_slash( $postdata );
717
+
718
+ if ( 'attachment' === $postdata['post_type'] ) {
719
+ $remote_url = ! empty( $post['attachment_url'] ) ? $post['attachment_url'] : $post['guid'];
720
+
721
+ // try to use _wp_attached file for upload folder placement to ensure the same location as the export site
722
+ // e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
723
+ $postdata['upload_date'] = $post['post_date'];
724
+ if ( isset( $post['postmeta'] ) ) {
725
+ foreach ( $post['postmeta'] as $meta ) {
726
+ if ( '_wp_attached_file' === $meta['key'] ) {
727
+ if ( preg_match( '%^[0-9]{4}/[0-9]{2}%', $meta['value'], $matches ) ) {
728
+ $postdata['upload_date'] = $matches[0];
729
+ }
730
+ break;
731
+ }
732
+ }
733
+ }
734
+
735
+ $post_id = $this->process_attachment( $postdata, $remote_url );
736
+ $comment_post_id = $post_id;
737
+ } else {
738
+ $post_id = wp_insert_post( $postdata, true );
739
+ $comment_post_id = $post_id;
740
+ do_action( 'wp_import_insert_post', $post_id, $original_post_id, $postdata, $post );
741
+ }
742
+
743
+ if ( is_wp_error( $post_id ) ) {
744
+ /* translators: 1: Post type singular label, 2: Post title. */
745
+ $error = sprintf( __( 'Failed to import %1$s %2$s', 'wpr-addons' ), $post_type_object->labels->singular_name, $post['post_title'] );
746
+
747
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
748
+ $error .= PHP_EOL . $post_id->get_error_message();
749
+ }
750
+
751
+ $result['failed'][] = $original_post_id;
752
+
753
+ $this->output['errors'][] = $error;
754
+
755
+ continue;
756
+ }
757
+
758
+ $result['succeed'][ $original_post_id ] = $post_id;
759
+
760
+ if ( 1 === $post['is_sticky'] ) {
761
+ stick_post( $post_id );
762
+ }
763
+
764
+ if ( $this->page_on_front === $original_post_id ) {
765
+ update_option( 'page_on_front', $post_id );
766
+ }
767
+
768
+ // Map pre-import ID to local ID.
769
+ $this->processed_posts[ intval( $post['post_id'] ) ] = (int) $post_id;
770
+
771
+ if ( ! isset( $post['terms'] ) ) {
772
+ $post['terms'] = [];
773
+ }
774
+
775
+ $post['terms'] = apply_filters( 'wp_import_post_terms', $post['terms'], $post_id, $post );
776
+
777
+ // add categories, tags and other terms
778
+ if ( ! empty( $post['terms'] ) ) {
779
+ $terms_to_set = [];
780
+ foreach ( $post['terms'] as $term ) {
781
+ // back compat with WXR 1.0 map 'tag' to 'post_tag'
782
+ $taxonomy = ( 'tag' === $term['domain'] ) ? 'post_tag' : $term['domain'];
783
+ $term_exists = term_exists( $term['slug'], $taxonomy );
784
+ $term_id = is_array( $term_exists ) ? $term_exists['term_id'] : $term_exists;
785
+ if ( ! $term_id ) {
786
+ $t = wp_insert_term( $term['name'], $taxonomy, [ 'slug' => $term['slug'] ] );
787
+ if ( ! is_wp_error( $t ) ) {
788
+ $term_id = $t['term_id'];
789
+ do_action( 'wp_import_insert_term', $t, $term, $post_id, $post );
790
+ } else {
791
+ /* translators: 1: Taxonomy name, 2: Term name. */
792
+ $error = sprintf( esc_html__( 'Failed to import %1$s %2$s', 'wpr-addons' ), $taxonomy, $term['name'] );
793
+
794
+ if ( defined( 'IMPORT_DEBUG' ) && IMPORT_DEBUG ) {
795
+ $error .= PHP_EOL . $t->get_error_message();
796
+ }
797
+
798
+ $this->output['errors'][] = $error;
799
+
800
+ do_action( 'wp_import_insert_term_failed', $t, $term, $post_id, $post );
801
+ continue;
802
+ }
803
+ }
804
+ $terms_to_set[ $taxonomy ][] = intval( $term_id );
805
+ }
806
+
807
+ foreach ( $terms_to_set as $tax => $ids ) {
808
+ $tt_ids = wp_set_post_terms( $post_id, $ids, $tax );
809
+ do_action( 'wp_import_set_post_terms', $tt_ids, $ids, $tax, $post_id, $post );
810
+ }
811
+ unset( $post['terms'], $terms_to_set );
812
+ }
813
+
814
+ if ( ! isset( $post['comments'] ) ) {
815
+ $post['comments'] = [];
816
+ }
817
+
818
+ $post['comments'] = apply_filters( 'wp_import_post_comments', $post['comments'], $post_id, $post );
819
+
820
+ // Add/update comments.
821
+ if ( ! empty( $post['comments'] ) ) {
822
+ $num_comments = 0;
823
+ $inserted_comments = [];
824
+ foreach ( $post['comments'] as $comment ) {
825
+ $comment_id = $comment['comment_id'];
826
+ $newcomments[ $comment_id ]['comment_post_ID'] = $comment_post_id;
827
+ $newcomments[ $comment_id ]['comment_author'] = $comment['comment_author'];
828
+ $newcomments[ $comment_id ]['comment_author_email'] = $comment['comment_author_email'];
829
+ $newcomments[ $comment_id ]['comment_author_IP'] = $comment['comment_author_IP'];
830
+ $newcomments[ $comment_id ]['comment_author_url'] = $comment['comment_author_url'];
831
+ $newcomments[ $comment_id ]['comment_date'] = $comment['comment_date'];
832
+ $newcomments[ $comment_id ]['comment_date_gmt'] = $comment['comment_date_gmt'];
833
+ $newcomments[ $comment_id ]['comment_content'] = $comment['comment_content'];
834
+ $newcomments[ $comment_id ]['comment_approved'] = $comment['comment_approved'];
835
+ $newcomments[ $comment_id ]['comment_type'] = $comment['comment_type'];
836
+ $newcomments[ $comment_id ]['comment_parent'] = $comment['comment_parent'];
837
+ $newcomments[ $comment_id ]['commentmeta'] = isset( $comment['commentmeta'] ) ? $comment['commentmeta'] : [];
838
+ if ( isset( $this->processed_authors[ $comment['comment_user_id'] ] ) ) {
839
+ $newcomments[ $comment_id ]['user_id'] = $this->processed_authors[ $comment['comment_user_id'] ];
840
+ }
841
+ }
842
+
843
+ ksort( $newcomments );
844
+
845
+ foreach ( $newcomments as $key => $comment ) {
846
+ if ( isset( $inserted_comments[ $comment['comment_parent'] ] ) ) {
847
+ $comment['comment_parent'] = $inserted_comments[ $comment['comment_parent'] ];
848
+ }
849
+
850
+ $comment_data = wp_slash( $comment );
851
+ unset( $comment_data['commentmeta'] ); // Handled separately, wp_insert_comment() also expects `comment_meta`.
852
+ $comment_data = wp_filter_comment( $comment_data );
853
+
854
+ $inserted_comments[ $key ] = wp_insert_comment( $comment_data );
855
+
856
+ do_action( 'wp_import_insert_comment', $inserted_comments[ $key ], $comment, $comment_post_id, $post );
857
+
858
+ foreach ( $comment['commentmeta'] as $meta ) {
859
+ $value = maybe_unserialize( $meta['value'] );
860
+
861
+ add_comment_meta( $inserted_comments[ $key ], wp_slash( $meta['key'] ), wp_slash_strings_only( $value ) );
862
+ }
863
+
864
+ $num_comments++;
865
+ }
866
+ unset( $newcomments, $inserted_comments, $post['comments'] );
867
+ }
868
+
869
+ if ( ! isset( $post['postmeta'] ) ) {
870
+ $post['postmeta'] = [];
871
+ }
872
+
873
+ $post['postmeta'] = apply_filters( 'wp_import_post_meta', $post['postmeta'], $post_id, $post );
874
+
875
+ // Add/update post meta.
876
+ if ( ! empty( $post['postmeta'] ) ) {
877
+ foreach ( $post['postmeta'] as $meta ) {
878
+ $key = apply_filters( 'import_post_meta_key', $meta['key'], $post_id, $post );
879
+ $value = false;
880
+
881
+ if ( '_edit_last' === $key ) {
882
+ if ( isset( $this->processed_authors[ intval( $meta['value'] ) ] ) ) {
883
+ $value = $this->processed_authors[ intval( $meta['value'] ) ];
884
+ } else {
885
+ $key = false;
886
+ }
887
+ }
888
+
889
+ if ( $key ) {
890
+ // Export gets meta straight from the DB so could have a serialized string.
891
+ if ( ! $value ) {
892
+ $value = maybe_unserialize( $meta['value'] );
893
+ }
894
+
895
+ add_post_meta( $post_id, wp_slash( $key ), wp_slash_strings_only( $value ) );
896
+
897
+ do_action( 'import_post_meta', $post_id, $key, $value );
898
+
899
+ // If the post has a featured image, take note of this in case of remap.
900
+ if ( '_thumbnail_id' === $key ) {
901
+ $this->featured_images[ $post_id ] = (int) $value;
902
+ }
903
+ }
904
+ }
905
+ }
906
+ }
907
+
908
+ unset( $this->posts );
909
+
910
+ return $result;
911
+ }
912
+
913
+ /**
914
+ * Attempt to create a new menu item from import data
915
+ *
916
+ * Fails for draft, orphaned menu items and those without an associated nav_menu
917
+ * or an invalid nav_menu term. If the post type or term object which the menu item
918
+ * represents doesn't exist then the menu item will not be imported (waits until the
919
+ * end of the import to retry again before discarding).
920
+ *
921
+ * @param array $item Menu item details from WXR file
922
+ */
923
+ private function process_menu_item( $item ) {
924
+ // Skip draft, orphaned menu items.
925
+ if ( 'draft' === $item['status'] ) {
926
+ return;
927
+ }
928
+
929
+ $menu_slug = false;
930
+ if ( isset( $item['terms'] ) ) {
931
+ // Loop through terms, assume first nav_menu term is correct menu.
932
+ foreach ( $item['terms'] as $term ) {
933
+ if ( 'nav_menu' === $term['domain'] ) {
934
+ $menu_slug = $term['slug'];
935
+ break;
936
+ }
937
+ }
938
+ }
939
+
940
+ // No nav_menu term associated with this menu item.
941
+ if ( ! $menu_slug ) {
942
+ $this->output['errors'][] = esc_html__( 'Menu item skipped due to missing menu slug', 'wpr-addons' );
943
+
944
+ return;
945
+ }
946
+
947
+ $menu_id = term_exists( $menu_slug, 'nav_menu' );
948
+ if ( ! $menu_id ) {
949
+ /* translators: %s: Menu slug. */
950
+ $this->output['errors'][] = sprintf( esc_html__( 'Menu item skipped due to invalid menu slug: %s', 'wpr-addons' ), $menu_slug );
951
+
952
+ return;
953
+ } else {
954
+ $menu_id = is_array( $menu_id ) ? $menu_id['term_id'] : $menu_id;
955
+ }
956
+
957
+ $post_meta_key_value = [];
958
+ foreach ( $item['postmeta'] as $meta ) {
959
+ $post_meta_key_value[ $meta['key'] ] = $meta['value'];
960
+ }
961
+
962
+ // Duke - Import Menu Items Post Meta
963
+ $backup_menu_item_meta = [];
964
+ $backup_menu_item_meta['postmeta'] = $item['postmeta'];
965
+
966
+ foreach ( $item['postmeta'] as $meta ) {
967
+ ${$meta['key']} = $meta['value'];
968
+ }
969
+ // End.
970
+
971
+ $_menu_item_object_id = $post_meta_key_value['_menu_item_object_id'];
972
+ if ( 'taxonomy' === $post_meta_key_value['_menu_item_type'] && isset( $this->processed_terms[ intval( $_menu_item_object_id ) ] ) ) {
973
+ $_menu_item_object_id = $this->processed_terms[ intval( $_menu_item_object_id ) ];
974
+ } elseif ( 'post_type' === $post_meta_key_value['_menu_item_type'] && isset( $this->processed_posts[ intval( $_menu_item_object_id ) ] ) ) {
975
+ $_menu_item_object_id = $this->processed_posts[ intval( $_menu_item_object_id ) ];
976
+ } elseif ( 'custom' !== $post_meta_key_value['_menu_item_type'] ) {
977
+ // Associated object is missing or not imported yet, we'll retry later.
978
+ $this->missing_menu_items[] = $item;
979
+
980
+ return;
981
+ }
982
+
983
+ $_menu_item_menu_item_parent = $post_meta_key_value['_menu_item_menu_item_parent']; // Duke - fix "_menu_item_menu_item_parent" dash was added
984
+ if ( isset( $this->processed_menu_items[ intval( $_menu_item_menu_item_parent ) ] ) ) {
985
+ $_menu_item_menu_item_parent = $this->processed_menu_items[ intval( $_menu_item_menu_item_parent ) ];
986
+ } elseif ( $_menu_item_menu_item_parent ) {
987
+ $this->menu_item_orphans[ intval( $item['post_id'] ) ] = (int) $_menu_item_menu_item_parent;
988
+ $_menu_item_menu_item_parent = 0;
989
+ }
990
+
991
+ // wp_update_nav_menu_item expects CSS classes as a space separated string
992
+ $_menu_item_classes = maybe_unserialize( $post_meta_key_value['_menu_item_classes'] );
993
+ if ( is_array( $_menu_item_classes ) ) {
994
+ $_menu_item_classes = implode( ' ', $_menu_item_classes );
995
+ }
996
+
997
+ $args = [
998
+ 'menu-item-object-id' => $_menu_item_object_id,
999
+ 'menu-item-object' => $post_meta_key_value['_menu_item_object'],
1000
+ 'menu-item-parent-id' => $_menu_item_menu_item_parent,
1001
+ 'menu-item-position' => intval( $item['menu_order'] ),
1002
+ 'menu-item-type' => $post_meta_key_value['_menu_item_type'],
1003
+ 'menu-item-title' => $item['post_title'],
1004
+ 'menu-item-url' => $post_meta_key_value['_menu_item_url'],
1005
+ 'menu-item-description' => $item['post_content'],
1006
+ 'menu-item-attr-title' => $item['post_excerpt'],
1007
+ 'menu-item-target' => $post_meta_key_value['_menu_item_target'],
1008
+ 'menu-item-classes' => $_menu_item_classes,
1009
+ 'menu-item-xfn' => $post_meta_key_value['_menu_item_xfn'],
1010
+ 'menu-item-status' => $item['status'],
1011
+ ];
1012
+
1013
+ $id = wp_update_nav_menu_item( $menu_id, 0, $args );
1014
+ if ( $id && ! is_wp_error( $id ) ) {
1015
+ // Duke - Import Menu Items Post Meta
1016
+ $menu_item_db_id = $id;
1017
+ $backup_menu_item_meta['postmeta'] = apply_filters('wordpress_importer_menu_items_meta_import', $backup_menu_item_meta['postmeta'], $id);
1018
+ $skip_meta_items = [
1019
+ '_menu_item_type',
1020
+ '_menu_item_menu_item_parent',
1021
+ '_menu_item_object_id',
1022
+ '_menu_item_object',
1023
+ '_menu_item_target',
1024
+ '_menu_item_classes',
1025
+ '_menu_item_xfn',
1026
+ '_menu_item_url'
1027
+ ];
1028
+ if ( is_array($backup_menu_item_meta['postmeta']) && !empty($backup_menu_item_meta['postmeta']) ) {
1029
+ foreach ( $backup_menu_item_meta['postmeta'] as $meta ) {
1030
+ if ( !in_array($meta['key'], $skip_meta_items) ) {
1031
+ update_post_meta( $menu_item_db_id, $meta['key'], maybe_unserialize($meta['value']));
1032
+ }
1033
+ }
1034
+ }
1035
+ // End.
1036
+
1037
+ $this->processed_menu_items[ intval( $item['post_id'] ) ] = (int) $id;
1038
+ }
1039
+ }
1040
+
1041
+ /**
1042
+ * If fetching attachments is enabled then attempt to create a new attachment
1043
+ *
1044
+ * @param array $post Attachment post details from WXR
1045
+ * @param string $url URL to fetch attachment from
1046
+ *
1047
+ * @return int|WP_Error Post ID on success, WP_Error otherwise
1048
+ */
1049
+ private function process_attachment( $post, $url ) {
1050
+
1051
+ if ( ! $this->fetch_attachments ) {
1052
+ return new WP_Error( 'attachment_processing_error', esc_html__( 'Fetching attachments is not enabled', 'wpr-addons' ) );
1053
+ }
1054
+
1055
+ // if the URL is absolute, but does not contain address, then upload it assuming base_site_url.
1056
+ if ( preg_match( '|^/[\w\W]+$|', $url ) ) {
1057
+ $url = rtrim( $this->base_url, '/' ) . $url;
1058
+ }
1059
+
1060
+ $upload = $this->fetch_remote_file( $url, $post );
1061
+ if ( is_wp_error( $upload ) ) {
1062
+ return $upload;
1063
+ }
1064
+
1065
+ $info = wp_check_filetype( $upload['file'] );
1066
+ if ( $info ) {
1067
+ $post['post_mime_type'] = $info['type'];
1068
+ } else {
1069
+ return new WP_Error( 'attachment_processing_error', esc_html__( 'Invalid file type', 'wpr-addons' ) );
1070
+ }
1071
+
1072
+ $post['guid'] = $upload['url'];
1073
+
1074
+ // As per wp-admin/includes/upload.php.
1075
+ $post_id = wp_insert_attachment( $post, $upload['file'] );
1076
+ wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) );
1077
+
1078
+ // Remap resized image URLs, works by stripping the extension and remapping the URL stub.
1079
+ if ( preg_match( '!^image/!', $info['type'] ) ) {
1080
+ $parts = pathinfo( $url );
1081
+ $name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2
1082
+
1083
+ $parts_new = pathinfo( $upload['url'] );
1084
+ $name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" );
1085
+
1086
+ $this->url_remap[ $parts['dirname'] . '/' . $name ] = $parts_new['dirname'] . '/' . $name_new;
1087
+ }
1088
+
1089
+ return $post_id;
1090
+ }
1091
+
1092
+ /**
1093
+ * Attempt to download a remote file attachment
1094
+ *
1095
+ * @param string $url URL of item to fetch
1096
+ * @param array $post Attachment details
1097
+ *
1098
+ * @return array|WP_Error Local file location details on success, WP_Error otherwise
1099
+ */
1100
+ private function fetch_remote_file( $url, $post ) {
1101
+ // Extract the file name from the URL.
1102
+ $file_name = basename( parse_url( $url, PHP_URL_PATH ) );
1103
+
1104
+ if ( ! $file_name ) {
1105
+ $file_name = md5( $url );
1106
+ }
1107
+
1108
+ $tmp_file_name = wp_tempnam( $file_name );
1109
+ if ( ! $tmp_file_name ) {
1110
+ return new WP_Error( 'import_no_file', esc_html__( 'Could not create temporary file.', 'wpr-addons' ) );
1111
+ }
1112
+
1113
+ // Fetch the remote URL and write it to the placeholder file.
1114
+ $remote_response = wp_safe_remote_get( $url, [
1115
+ 'timeout' => 300,
1116
+ 'stream' => true,
1117
+ 'filename' => $tmp_file_name,
1118
+ 'headers' => [
1119
+ 'Accept-Encoding' => 'identity',
1120
+ ],
1121
+ ] );
1122
+
1123
+ if ( is_wp_error( $remote_response ) ) {
1124
+ @unlink( $tmp_file_name );
1125
+
1126
+ return new WP_Error( 'import_file_error', sprintf( /* translators: 1: WordPress error message, 2: WordPress error code. */ esc_html__( 'Request failed due to an error: %1$s (%2$s)', 'wpr-addons' ), esc_html( $remote_response->get_error_message() ), esc_html( $remote_response->get_error_code() ) ) );
1127
+ }
1128
+
1129
+ $remote_response_code = (int) wp_remote_retrieve_response_code( $remote_response );
1130
+
1131
+ // Make sure the fetch was successful.
1132
+ if ( 200 !== $remote_response_code ) {
1133
+ @unlink( $tmp_file_name );
1134
+
1135
+ return new WP_Error( 'import_file_error', sprintf( /* translators: 1: HTTP error message, 2: HTTP error code. */ esc_html__( 'Remote server returned the following unexpected result: %1$s (%2$s)', 'wpr-addons' ), get_status_header_desc( $remote_response_code ), esc_html( $remote_response_code ) ) );
1136
+ }
1137
+
1138
+ $headers = wp_remote_retrieve_headers( $remote_response );
1139
+
1140
+ // Request failed.
1141
+ if ( ! $headers ) {
1142
+ @unlink( $tmp_file_name );
1143
+
1144
+ return new WP_Error( 'import_file_error', esc_html__( 'Remote server did not respond', 'wpr-addons' ) );
1145
+ }
1146
+
1147
+ $filesize = (int) filesize( $tmp_file_name );
1148
+
1149
+ if ( 0 === $filesize ) {
1150
+ @unlink( $tmp_file_name );
1151
+
1152
+ return new WP_Error( 'import_file_error', esc_html__( 'Zero size file downloaded', 'wpr-addons' ) );
1153
+ }
1154
+
1155
+ if ( ! isset( $headers['content-encoding'] ) && isset( $headers['content-length'] ) && $filesize !== (int) $headers['content-length'] ) {
1156
+ @unlink( $tmp_file_name );
1157
+
1158
+ return new WP_Error( 'import_file_error', esc_html__( 'Downloaded file has incorrect size', 'wpr-addons' ) );
1159
+ }
1160
+
1161
+ $max_size = (int) apply_filters( 'import_attachment_size_limit', self::DEFAULT_IMPORT_ATTACHMENT_SIZE_LIMIT );
1162
+ if ( ! empty( $max_size ) && $filesize > $max_size ) {
1163
+ @unlink( $tmp_file_name );
1164
+
1165
+ /* translators: %s: Max file size. */
1166
+ return new WP_Error( 'import_file_error', sprintf( esc_html__( 'Remote file is too large, limit is %s', 'wpr-addons' ), size_format( $max_size ) ) );
1167
+ }
1168
+
1169
+ // Override file name with Content-Disposition header value.
1170
+ if ( ! empty( $headers['content-disposition'] ) ) {
1171
+ $file_name_from_disposition = self::get_filename_from_disposition( (array) $headers['content-disposition'] );
1172
+ if ( $file_name_from_disposition ) {
1173
+ $file_name = $file_name_from_disposition;
1174
+ }
1175
+ }
1176
+
1177
+ // Set file extension if missing.
1178
+ $file_ext = pathinfo( $file_name, PATHINFO_EXTENSION );
1179
+ if ( ! $file_ext && ! empty( $headers['content-type'] ) ) {
1180
+ $extension = self::get_file_extension_by_mime_type( $headers['content-type'] );
1181
+ if ( $extension ) {
1182
+ $file_name = "{$file_name}.{$extension}";
1183
+ }
1184
+ }
1185
+
1186
+ // Handle the upload like _wp_handle_upload() does.
1187
+ $wp_filetype = wp_check_filetype_and_ext( $tmp_file_name, $file_name );
1188
+ $ext = empty( $wp_filetype['ext'] ) ? '' : $wp_filetype['ext'];
1189
+ $type = empty( $wp_filetype['type'] ) ? '' : $wp_filetype['type'];
1190
+ $proper_filename = empty( $wp_filetype['proper_filename'] ) ? '' : $wp_filetype['proper_filename'];
1191
+
1192
+ // Check to see if wp_check_filetype_and_ext() determined the filename was incorrect.
1193
+ if ( $proper_filename ) {
1194
+ $file_name = $proper_filename;
1195
+ }
1196
+
1197
+ if ( ( ! $type || ! $ext ) && ! current_user_can( 'unfiltered_upload' ) ) {
1198
+ return new WP_Error( 'import_file_error', esc_html__( 'Sorry, this file type is not permitted for security reasons.', 'wpr-addons' ) );
1199
+ }
1200
+
1201
+ $uploads = wp_upload_dir( $post['upload_date'] );
1202
+ if ( ! ( $uploads && false === $uploads['error'] ) ) {
1203
+ return new WP_Error( 'upload_dir_error', $uploads['error'] );
1204
+ }
1205
+
1206
+ // Move the file to the uploads dir.
1207
+ $file_name = wp_unique_filename( $uploads['path'], $file_name );
1208
+ $new_file = $uploads['path'] . "/$file_name";
1209
+ $move_new_file = copy( $tmp_file_name, $new_file );
1210
+
1211
+ if ( ! $move_new_file ) {
1212
+ @unlink( $tmp_file_name );
1213
+
1214
+ return new WP_Error( 'import_file_error', esc_html__( 'The uploaded file could not be moved', 'wpr-addons' ) );
1215
+ }
1216
+
1217
+ // Set correct file permissions.
1218
+ $stat = stat( dirname( $new_file ) );
1219
+ $perms = $stat['mode'] & 0000666;
1220
+ chmod( $new_file, $perms );
1221
+
1222
+ $upload = [
1223
+ 'file' => $new_file,
1224
+ 'url' => $uploads['url'] . "/$file_name",
1225
+ 'type' => $wp_filetype['type'],
1226
+ 'error' => false,
1227
+ ];
1228
+
1229
+ // Keep track of the old and new urls so we can substitute them later.
1230
+ $this->url_remap[ $url ] = $upload['url'];
1231
+ $this->url_remap[ $post['guid'] ] = $upload['url']; // r13735, really needed?
1232
+ // Keep track of the destination if the remote url is redirected somewhere else.
1233
+ if ( isset( $headers['x-final-location'] ) && $headers['x-final-location'] !== $url ) {
1234
+ $this->url_remap[ $headers['x-final-location'] ] = $upload['url'];
1235
+ }
1236
+
1237
+ return $upload;
1238
+ }
1239
+
1240
+ /**
1241
+ * Attempt to associate posts and menu items with previously missing parents
1242
+ *
1243
+ * An imported post's parent may not have been imported when it was first created
1244
+ * so try again. Similarly for child menu items and menu items which were missing
1245
+ * the object (e.g. post) they represent in the menu
1246
+ */
1247
+ private function backfill_parents() {
1248
+ global $wpdb;
1249
+
1250
+ // Find parents for post orphans.
1251
+ foreach ( $this->post_orphans as $child_id => $parent_id ) {
1252
+ $local_child_id = false;
1253
+ $local_parent_id = false;
1254
+
1255
+ if ( isset( $this->processed_posts[ $child_id ] ) ) {
1256
+ $local_child_id = $this->processed_posts[ $child_id ];
1257
+ }
1258
+ if ( isset( $this->processed_posts[ $parent_id ] ) ) {
1259
+ $local_parent_id = $this->processed_posts[ $parent_id ];
1260
+ }
1261
+
1262
+ if ( $local_child_id && $local_parent_id ) {
1263
+ $wpdb->update( $wpdb->posts, [ 'post_parent' => $local_parent_id ], [ 'ID' => $local_child_id ], '%d', '%d' );
1264
+ clean_post_cache( $local_child_id );
1265
+ }
1266
+ }
1267
+
1268
+ // All other posts/terms are imported, retry menu items with missing associated object.
1269
+ $missing_menu_items = $this->missing_menu_items;
1270
+ foreach ( $missing_menu_items as $item ) {
1271
+ $this->process_menu_item( $item );
1272
+ }
1273
+
1274
+ // Find parents for menu item orphans.
1275
+ foreach ( $this->menu_item_orphans as $child_id => $parent_id ) {
1276
+ $local_child_id = 0;
1277
+ $local_parent_id = 0;
1278
+ if ( isset( $this->processed_menu_items[ $child_id ] ) ) {
1279
+ $local_child_id = $this->processed_menu_items[ $child_id ];
1280
+ }
1281
+ if ( isset( $this->processed_menu_items[ $parent_id ] ) ) {
1282
+ $local_parent_id = $this->processed_menu_items[ $parent_id ];
1283
+ }
1284
+
1285
+ if ( $local_child_id && $local_parent_id ) {
1286
+ update_post_meta( $local_child_id, '_menu_item_menu_item_parent', (int) $local_parent_id );
1287
+ }
1288
+ }
1289
+ }
1290
+
1291
+ /**
1292
+ * Use stored mapping information to update old attachment URLs
1293
+ */
1294
+ private function backfill_attachment_urls() {
1295
+ global $wpdb;
1296
+ // Make sure we do the longest urls first, in case one is a substring of another.
1297
+ uksort( $this->url_remap, function ( $a, $b ) {
1298
+ // Return the difference in length between two strings.
1299
+ return strlen( $b ) - strlen( $a );
1300
+ } );
1301
+
1302
+ foreach ( $this->url_remap as $from_url => $to_url ) {
1303
+ // Remap urls in post_content.
1304
+ $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s)", $from_url, $to_url ) );
1305
+ // Remap enclosure urls.
1306
+ $wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key='enclosure'", $from_url, $to_url ) );
1307
+ }
1308
+ }
1309
+
1310
+ /**
1311
+ * Update _thumbnail_id meta to new, imported attachment IDs
1312
+ */
1313
+ private function remap_featured_images() {
1314
+ // Cycle through posts that have a featured image.
1315
+ foreach ( $this->featured_images as $post_id => $value ) {
1316
+ if ( isset( $this->processed_posts[ $value ] ) ) {
1317
+ $new_id = $this->processed_posts[ $value ];
1318
+ // Only update if there's a difference.
1319
+ if ( $new_id !== $value ) {
1320
+ update_post_meta( $post_id, '_thumbnail_id', $new_id );
1321
+ }
1322
+ }
1323
+ }
1324
+ }
1325
+
1326
+ /**
1327
+ * Parse a WXR file
1328
+ *
1329
+ * @param string $file Path to WXR file for parsing
1330
+ *
1331
+ * @return array Information gathered from the WXR file
1332
+ */
1333
+ private function parse( $file ) {
1334
+ $parser = new WXR_Parser();
1335
+
1336
+ return $parser->parse( $file );
1337
+ }
1338
+
1339
+ /**
1340
+ * Decide if the given meta key maps to information we will want to import
1341
+ *
1342
+ * @param string $key The meta key to check
1343
+ *
1344
+ * @return string|bool The key if we do want to import, false if not
1345
+ */
1346
+ private function is_valid_meta_key( $key ) {
1347
+ // Skip attachment metadata since we'll regenerate it from scratch.
1348
+ // Skip _edit_lock as not relevant for import
1349
+ if ( in_array( $key, [ '_wp_attached_file', '_wp_attachment_metadata', '_edit_lock' ] ) ) {
1350
+ return false;
1351
+ }
1352
+
1353
+ return $key;
1354
+ }
1355
+
1356
+ public function run() {
1357
+ $this->import( $this->requested_file_path );
1358
+
1359
+ return $this->output;
1360
+ }
1361
+
1362
+ public function __construct( $file, $args = [] ) {
1363
+ $this->requested_file_path = $file;
1364
+ $this->args = $args;
1365
+
1366
+ if ( ! empty( $this->args['fetch_attachments'] ) ) {
1367
+ $this->fetch_attachments = true;
1368
+ }
1369
+ }
1370
+ }
admin/includes/wpr-templates-actions.php CHANGED
@@ -1,314 +1,314 @@
1
- <?php
2
- namespace WprAddons\Admin\Includes;
3
-
4
- use WprAddons\Plugin;
5
- use Elementor\TemplateLibrary\Source_Base;
6
- use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
7
- use WprAddons\Classes\Utilities;
8
-
9
- if ( ! defined( 'ABSPATH' ) ) {
10
- exit; // Exit if accessed directly.
11
- }
12
-
13
-
14
- /**
15
- * WPR_Templates_Actions setup
16
- *
17
- * @since 1.0
18
- */
19
- class WPR_Templates_Actions {
20
-
21
- /**
22
- ** Constructor
23
- */
24
- public function __construct() {
25
-
26
- // Save Conditions
27
- add_action( 'wp_ajax_wpr_save_template_conditions', [ $this, 'wpr_save_template_conditions' ] );
28
-
29
- // Create Template
30
- add_action( 'wp_ajax_wpr_create_template', [ $this, 'wpr_create_template' ] );
31
-
32
- // Import Library Template
33
- add_action( 'wp_ajax_wpr_import_library_template', [ $this, 'wpr_import_library_template' ] );
34
-
35
- // Reset Template
36
- add_action( 'wp_ajax_wpr_delete_template', [ $this, 'wpr_delete_template' ] );
37
-
38
- // Register Elementor AJAX Actions
39
- add_action( 'elementor/ajax/register_actions', [ $this, 'register_elementor_ajax_actions' ] );
40
-
41
- // Enqueue Scripts
42
- add_action( 'admin_enqueue_scripts', [ $this, 'templates_library_scripts' ] );
43
-
44
- }
45
-
46
- /**
47
- ** Save Template Conditions
48
- */
49
- public function wpr_save_template_conditions() {
50
- $template = isset($_POST['template']) ? sanitize_text_field(wp_unslash($_POST['template'])): false;
51
-
52
- // Header
53
- if ( isset($_POST['wpr_header_conditions']) ) {
54
- update_option( 'wpr_header_conditions', $this->sanitize_conditions($_POST['wpr_header_conditions']) ); // phpcs:ignore
55
-
56
- $wpr_header_show_on_canvas = isset($_POST['wpr_header_show_on_canvas']) ? sanitize_text_field(wp_unslash($_POST['wpr_header_show_on_canvas'])): false;
57
- if ( $wpr_header_show_on_canvas && $template ) {
58
- update_post_meta( Utilities::get_template_id($template), 'wpr_header_show_on_canvas', $wpr_header_show_on_canvas );
59
- }
60
- }
61
-
62
- // Footer
63
- if ( isset($_POST['wpr_footer_conditions']) ) {
64
- update_option( 'wpr_footer_conditions', $this->sanitize_conditions($_POST['wpr_footer_conditions']) ); // phpcs:ignore
65
-
66
- $wpr_footer_show_on_canvas = isset($_POST['wpr_footer_show_on_canvas']) ? sanitize_text_field(wp_unslash($_POST['wpr_footer_show_on_canvas'])): false;
67
- if ( $wpr_footer_show_on_canvas && $template ) {
68
- update_post_meta( Utilities::get_template_id($template), 'wpr_footer_show_on_canvas', $wpr_footer_show_on_canvas );
69
- }
70
- }
71
-
72
- // Archive
73
- if ( isset($_POST['wpr_archive_conditions']) ) {
74
- update_option( 'wpr_archive_conditions', $this->sanitize_conditions($_POST['wpr_archive_conditions']) ); // phpcs:ignore
75
- }
76
-
77
- // Single
78
- if ( isset($_POST['wpr_single_conditions']) ) {
79
- update_option( 'wpr_single_conditions', $this->sanitize_conditions($_POST['wpr_single_conditions']) ); // phpcs:ignore
80
- }
81
-
82
- // Product Archive
83
- if ( isset($_POST['wpr_product_archive_conditions']) ) {
84
- update_option( 'wpr_product_archive_conditions', $this->sanitize_conditions($_POST['wpr_product_archive_conditions']) ); // phpcs:ignore
85
- }
86
-
87
- // Product Single
88
- if ( isset($_POST['wpr_product_single_conditions']) ) {
89
- update_option( 'wpr_product_single_conditions', $this->sanitize_conditions($_POST['wpr_product_single_conditions']) ); // phpcs:ignore
90
- }
91
-
92
- // Popup
93
- if ( isset($_POST['wpr_popup_conditions']) ) {
94
- update_option( 'wpr_popup_conditions', $this->sanitize_conditions($_POST['wpr_popup_conditions']) ); // phpcs:ignore
95
- }
96
- }
97
-
98
- public function sanitize_conditions( $data ) {
99
- return wp_unslash( json_encode( array_filter( json_decode(stripcslashes($data), true) ) ) );
100
- }
101
-
102
- /**
103
- ** Create Template
104
- */
105
- public function wpr_create_template() {
106
- $user_template_type = isset($_POST['user_template_type']) ? sanitize_text_field(wp_unslash($_POST['user_template_type'])): false;
107
- $user_template_library = isset($_POST['user_template_library']) ? sanitize_text_field(wp_unslash($_POST['user_template_library'])): false;
108
- $user_template_title = isset($_POST['user_template_title']) ? sanitize_text_field(wp_unslash($_POST['user_template_title'])): false;
109
- $user_template_slug = isset($_POST['user_template_slug']) ? sanitize_text_field(wp_unslash($_POST['user_template_slug'])): false;
110
-
111
- if ( $user_template_title ) {
112
- // Create
113
- $template_id = wp_insert_post(array (
114
- 'post_type' => $user_template_library,
115
- 'post_title' => $user_template_title,
116
- 'post_name' => $user_template_slug,
117
- 'post_content' => '',
118
- 'post_status' => 'publish'
119
- ));
120
-
121
- // Set Types
122
- if ( 'wpr_templates' === $_POST['user_template_library'] ) {
123
-
124
- wp_set_object_terms( $template_id, [$user_template_type, 'user'], 'wpr_template_type' );
125
-
126
- if ( 'popup' === $_POST['user_template_type'] ) {
127
- update_post_meta( $template_id, '_elementor_template_type', 'wpr-popups' );
128
- } else {
129
- if ( 'header' === $_POST['user_template_type'] ) {
130
- update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder-header' );
131
- } elseif ( 'footer' === $_POST['user_template_type'] ) {
132
- update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder-footer' );
133
- } else {
134
- update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder' );
135
- }
136
-
137
- update_post_meta( $template_id, '_wpr_template_type', $user_template_type );
138
- }
139
- } else {
140
- update_post_meta( $template_id, '_elementor_template_type', 'page' );
141
- }
142
-
143
- // Set Canvas Template
144
- update_post_meta( $template_id, '_wp_page_template', 'elementor_canvas' ); //tmp - maybe set for wpr_templates only
145
-
146
- // Send ID to JS
147
- echo esc_html($template_id);
148
- }
149
- }
150
-
151
- /**
152
- ** Import Library Template
153
- */
154
- public function wpr_import_library_template() {
155
- $source = new WPR_Library_Source();
156
- $slug = isset($_POST['slug']) ? sanitize_text_field(wp_unslash($_POST['slug'])) : '';
157
-
158
- $data = $source->get_data([
159
- 'template_id' => $slug
160
- ]);
161
-
162
- echo json_encode($data);
163
- }
164
-
165
- /**
166
- ** Reset Template
167
- */
168
- public function wpr_delete_template() {
169
- $template_slug = isset($_POST['template_slug']) ? sanitize_text_field(wp_unslash($_POST['template_slug'])): '';
170
- $template_library = isset($_POST['template_library']) ? sanitize_text_field(wp_unslash($_POST['template_library'])): '';
171
-
172
- $post = get_page_by_path( $template_slug, OBJECT, $template_library );
173
- wp_delete_post( $post->ID, true );
174
- }
175
-
176
- /**
177
- ** Enqueue Scripts and Styles
178
- */
179
- public function templates_library_scripts( $hook ) {
180
-
181
- // Get Plugin Version
182
- $version = Plugin::instance()->get_version();
183
-
184
- // Deny if NOT Plugin Page
185
- if ( 'toplevel_page_wpr-addons' == $hook || strpos($hook, 'wpr-theme-builder') || strpos($hook, 'wpr-popups') ) {
186
-
187
- // Color Picker
188
- wp_enqueue_style( 'wp-color-picker' );
189
- wp_enqueue_script( 'wp-color-picker-alpha', WPR_ADDONS_URL .'assets/js/admin/lib/wp-color-picker-alpha.min.js', ['jquery', 'wp-color-picker'], $version, true );
190
-
191
- // Media Upload
192
- if ( ! did_action( 'wp_enqueue_media' ) ) {
193
- wp_enqueue_media();
194
- }
195
-
196
- // enqueue CSS
197
- wp_enqueue_style( 'wpr-plugin-options-css', WPR_ADDONS_URL .'assets/css/admin/plugin-options.css', [], $version );
198
-
199
- // enqueue JS
200
- wp_enqueue_script( 'wpr-plugin-options-js', WPR_ADDONS_URL .'assets/js/admin/plugin-options.js', ['jquery'], $version );
201
-
202
- }
203
-
204
- if ( strpos($hook, 'wpr-templates-kit') ) {
205
- wp_enqueue_style( 'wpr-templates-kit-css', WPR_ADDONS_URL .'assets/css/admin/templates-kit.css', [], $version );
206
- wp_enqueue_script( 'wpr-templates-kit-js', WPR_ADDONS_URL .'assets/js/admin/templates-kit.js', ['jquery', 'updates'], $version );
207
- }
208
-
209
- if ( strpos($hook, 'wpr-premade-blocks') ) {
210
- wp_enqueue_style( 'wpr-premade-blocks-css', WPR_ADDONS_URL .'assets/css/admin/premade-blocks.css', [], $version );
211
-
212
- wp_enqueue_script( 'wpr-macy-js', WPR_ADDONS_URL .'assets/js/lib/macy/macy.js', ['jquery'], $version );
213
- wp_enqueue_script( 'wpr-premade-blocks-js', WPR_ADDONS_URL .'assets/js/admin/premade-blocks.js', ['jquery'], $version );
214
- }
215
- }
216
-
217
- /**
218
- ** Register Elementor AJAX Actions
219
- */
220
- public function register_elementor_ajax_actions( Ajax $ajax ) {
221
-
222
- // Elementor Search Data
223
- $ajax->register_ajax_action( 'wpr_elementor_search_data', function( $data ) {
224
- // Freemius OptIn
225
- if ( ! (wpr_fs()->is_registered() && wpr_fs()->is_tracking_allowed() || wpr_fs()->is_pending_activation() )) {
226
- return;
227
- }
228
-
229
- if ( strlen($data['search_query']) > 25 ) {
230
- return;
231
- }
232
-
233
- // Send Search Query
234
- wp_remote_post( 'https://reastats.kinsta.cloud/wp-json/elementor-search/data', [
235
- 'body' => [
236
- 'search_query' => $data['search_query']
237
- ]
238
- ] );
239
- } );
240
- }
241
- }
242
-
243
- /**
244
- * WPR_Templates_Actions setup
245
- *
246
- * @since 1.0
247
- */
248
- class WPR_Library_Source extends \Elementor\TemplateLibrary\Source_Base {
249
-
250
- public function get_id() {
251
- return 'wpr-layout-manager';
252
- }
253
-
254
- public function get_title() {
255
- return 'WPR Layout Manager';
256
- }
257
-
258
- public function register_data() {}
259
-
260
- public function save_item( $template_data ) {
261
- return new \WP_Error( 'invalid_request', 'Cannot save template to a WPR layout manager' );
262
- }
263
-
264
- public function update_item( $new_data ) {
265
- return new \WP_Error( 'invalid_request', 'Cannot update template to a WPR layout manager' );
266
- }
267
-
268
- public function delete_template( $template_id ) {
269
- return new \WP_Error( 'invalid_request', 'Cannot delete template from a WPR layout manager' );
270
- }
271
-
272
- public function export_template( $template_id ) {
273
- return new \WP_Error( 'invalid_request', 'Cannot export template from a WPR layout manager' );
274
- }
275
-
276
- public function get_items( $args = [] ) {
277
- return [];
278
- }
279
-
280
- public function get_item( $template_id ) {
281
- $templates = $this->get_items();
282
-
283
- return $templates[ $template_id ];
284
- }
285
-
286
- public function request_template_data( $template_id ) {
287
- if ( empty( $template_id ) ) {
288
- return;
289
- }
290
-
291
- $response = wp_remote_get( 'https://royal-elementor-addons.com/library/premade-styles/'. $template_id .'.json', [
292
- 'timeout' => 60,
293
- 'sslverify' => false
294
- ] );
295
-
296
- return wp_remote_retrieve_body( $response );
297
- }
298
-
299
- public function get_data( array $args ) {//TODO: FIX - This function imports placeholder images in library
300
- $data = $this->request_template_data( $args['template_id'] );
301
-
302
- $data = json_decode( $data, true );
303
-
304
- if ( empty( $data ) || empty( $data['content'] ) ) {
305
- throw new \Exception( 'Template does not have any content' );
306
- }
307
-
308
- $data['content'] = $this->replace_elements_ids( $data['content'] );
309
- $data['content'] = $this->process_export_import_content( $data['content'], 'on_import' );
310
-
311
- return $data;
312
- }
313
-
314
  }
1
+ <?php
2
+ namespace WprAddons\Admin\Includes;
3
+
4
+ use WprAddons\Plugin;
5
+ use Elementor\TemplateLibrary\Source_Base;
6
+ use Elementor\Core\Common\Modules\Ajax\Module as Ajax;
7
+ use WprAddons\Classes\Utilities;
8
+
9
+ if ( ! defined( 'ABSPATH' ) ) {
10
+ exit; // Exit if accessed directly.
11
+ }
12
+
13
+
14
+ /**
15
+ * WPR_Templates_Actions setup
16
+ *
17
+ * @since 1.0
18
+ */
19
+ class WPR_Templates_Actions {
20
+
21
+ /**
22
+ ** Constructor
23
+ */
24
+ public function __construct() {
25
+
26
+ // Save Conditions
27
+ add_action( 'wp_ajax_wpr_save_template_conditions', [ $this, 'wpr_save_template_conditions' ] );
28
+
29
+ // Create Template
30
+ add_action( 'wp_ajax_wpr_create_template', [ $this, 'wpr_create_template' ] );
31
+
32
+ // Import Library Template
33
+ add_action( 'wp_ajax_wpr_import_library_template', [ $this, 'wpr_import_library_template' ] );
34
+
35
+ // Reset Template
36
+ add_action( 'wp_ajax_wpr_delete_template', [ $this, 'wpr_delete_template' ] );
37
+
38
+ // Register Elementor AJAX Actions
39
+ add_action( 'elementor/ajax/register_actions', [ $this, 'register_elementor_ajax_actions' ] );
40
+
41
+ // Enqueue Scripts
42
+ add_action( 'admin_enqueue_scripts', [ $this, 'templates_library_scripts' ] );
43
+
44
+ }
45
+
46
+ /**
47
+ ** Save Template Conditions
48
+ */
49
+ public function wpr_save_template_conditions() {
50
+ $template = isset($_POST['template']) ? sanitize_text_field(wp_unslash($_POST['template'])): false;
51
+
52
+ // Header
53
+ if ( isset($_POST['wpr_header_conditions']) ) {
54
+ update_option( 'wpr_header_conditions', $this->sanitize_conditions($_POST['wpr_header_conditions']) ); // phpcs:ignore
55
+
56
+ $wpr_header_show_on_canvas = isset($_POST['wpr_header_show_on_canvas']) ? sanitize_text_field(wp_unslash($_POST['wpr_header_show_on_canvas'])): false;
57
+ if ( $wpr_header_show_on_canvas && $template ) {
58
+ update_post_meta( Utilities::get_template_id($template), 'wpr_header_show_on_canvas', $wpr_header_show_on_canvas );
59
+ }
60
+ }
61
+
62
+ // Footer
63
+ if ( isset($_POST['wpr_footer_conditions']) ) {
64
+ update_option( 'wpr_footer_conditions', $this->sanitize_conditions($_POST['wpr_footer_conditions']) ); // phpcs:ignore
65
+
66
+ $wpr_footer_show_on_canvas = isset($_POST['wpr_footer_show_on_canvas']) ? sanitize_text_field(wp_unslash($_POST['wpr_footer_show_on_canvas'])): false;
67
+ if ( $wpr_footer_show_on_canvas && $template ) {
68
+ update_post_meta( Utilities::get_template_id($template), 'wpr_footer_show_on_canvas', $wpr_footer_show_on_canvas );
69
+ }
70
+ }
71
+
72
+ // Archive
73
+ if ( isset($_POST['wpr_archive_conditions']) ) {
74
+ update_option( 'wpr_archive_conditions', $this->sanitize_conditions($_POST['wpr_archive_conditions']) ); // phpcs:ignore
75
+ }
76
+
77
+ // Single
78
+ if ( isset($_POST['wpr_single_conditions']) ) {
79
+ update_option( 'wpr_single_conditions', $this->sanitize_conditions($_POST['wpr_single_conditions']) ); // phpcs:ignore
80
+ }
81
+
82
+ // Product Archive
83
+ if ( isset($_POST['wpr_product_archive_conditions']) ) {
84
+ update_option( 'wpr_product_archive_conditions', $this->sanitize_conditions($_POST['wpr_product_archive_conditions']) ); // phpcs:ignore
85
+ }
86
+
87
+ // Product Single
88
+ if ( isset($_POST['wpr_product_single_conditions']) ) {
89
+ update_option( 'wpr_product_single_conditions', $this->sanitize_conditions($_POST['wpr_product_single_conditions']) ); // phpcs:ignore
90
+ }
91
+
92
+ // Popup
93
+ if ( isset($_POST['wpr_popup_conditions']) ) {
94
+ update_option( 'wpr_popup_conditions', $this->sanitize_conditions($_POST['wpr_popup_conditions']) ); // phpcs:ignore
95
+ }
96
+ }
97
+
98
+ public function sanitize_conditions( $data ) {
99
+ return wp_unslash( json_encode( array_filter( json_decode(stripcslashes($data), true) ) ) );
100
+ }
101
+
102
+ /**
103
+ ** Create Template
104
+ */
105
+ public function wpr_create_template() {
106
+ $user_template_type = isset($_POST['user_template_type']) ? sanitize_text_field(wp_unslash($_POST['user_template_type'])): false;
107
+ $user_template_library = isset($_POST['user_template_library']) ? sanitize_text_field(wp_unslash($_POST['user_template_library'])): false;
108
+ $user_template_title = isset($_POST['user_template_title']) ? sanitize_text_field(wp_unslash($_POST['user_template_title'])): false;
109
+ $user_template_slug = isset($_POST['user_template_slug']) ? sanitize_text_field(wp_unslash($_POST['user_template_slug'])): false;
110
+
111
+ if ( $user_template_title ) {
112
+ // Create
113
+ $template_id = wp_insert_post(array (
114
+ 'post_type' => $user_template_library,
115
+ 'post_title' => $user_template_title,
116
+ 'post_name' => $user_template_slug,
117
+ 'post_content' => '',
118
+ 'post_status' => 'publish'
119
+ ));
120
+
121
+ // Set Types
122
+ if ( 'wpr_templates' === $_POST['user_template_library'] ) {
123
+
124
+ wp_set_object_terms( $template_id, [$user_template_type, 'user'], 'wpr_template_type' );
125
+
126
+ if ( 'popup' === $_POST['user_template_type'] ) {
127
+ update_post_meta( $template_id, '_elementor_template_type', 'wpr-popups' );
128
+ } else {
129
+ if ( 'header' === $_POST['user_template_type'] ) {
130
+ update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder-header' );
131
+ } elseif ( 'footer' === $_POST['user_template_type'] ) {
132
+ update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder-footer' );
133
+ } else {
134
+ update_post_meta( $template_id, '_elementor_template_type', 'wpr-theme-builder' );
135
+ }
136
+
137
+ update_post_meta( $template_id, '_wpr_template_type', $user_template_type );
138
+ }
139
+ } else {
140
+ update_post_meta( $template_id, '_elementor_template_type', 'page' );
141
+ }
142
+
143
+ // Set Canvas Template
144
+ update_post_meta( $template_id, '_wp_page_template', 'elementor_canvas' ); //tmp - maybe set for wpr_templates only
145
+
146
+ // Send ID to JS
147
+ echo esc_html($template_id);
148
+ }
149
+ }
150
+
151
+ /**
152
+ ** Import Library Template
153
+ */
154
+ public function wpr_import_library_template() {
155
+ $source = new WPR_Library_Source();
156
+ $slug = isset($_POST['slug']) ? sanitize_text_field(wp_unslash($_POST['slug'])) : '';
157
+
158
+ $data = $source->get_data([
159
+ 'template_id' => $slug
160
+ ]);
161
+
162
+ echo json_encode($data);
163
+ }
164
+
165
+ /**
166
+ ** Reset Template
167
+ */
168
+ public function wpr_delete_template() {
169
+ $template_slug = isset($_POST['template_slug']) ? sanitize_text_field(wp_unslash($_POST['template_slug'])): '';
170
+ $template_library = isset($_POST['template_library']) ? sanitize_text_field(wp_unslash($_POST['template_library'])): '';
171
+
172
+ $post = get_page_by_path( $template_slug, OBJECT, $template_library );
173
+ wp_delete_post( $post->ID, true );
174
+ }
175
+
176
+ /**
177
+ ** Enqueue Scripts and Styles
178
+ */
179
+ public function templates_library_scripts( $hook ) {
180
+
181
+ // Get Plugin Version
182
+ $version = Plugin::instance()->get_version();
183
+
184
+ // Deny if NOT Plugin Page
185
+ if ( 'toplevel_page_wpr-addons' == $hook || strpos($hook, 'wpr-theme-builder') || strpos($hook, 'wpr-popups') ) {
186
+
187
+ // Color Picker
188
+ wp_enqueue_style( 'wp-color-picker' );
189
+ wp_enqueue_script( 'wp-color-picker-alpha', WPR_ADDONS_URL .'assets/js/admin/lib/wp-color-picker-alpha.min.js', ['jquery', 'wp-color-picker'], $version, true );
190
+
191
+ // Media Upload
192
+ if ( ! did_action( 'wp_enqueue_media' ) ) {
193
+ wp_enqueue_media();
194
+ }
195
+
196
+ // enqueue CSS
197
+ wp_enqueue_style( 'wpr-plugin-options-css', WPR_ADDONS_URL .'assets/css/admin/plugin-options.css', [], $version );
198
+
199
+ // enqueue JS
200
+ wp_enqueue_script( 'wpr-plugin-options-js', WPR_ADDONS_URL .'assets/js/admin/plugin-options.js', ['jquery'], $version );
201
+
202
+ }
203
+
204
+ if ( strpos($hook, 'wpr-templates-kit') ) {
205
+ wp_enqueue_style( 'wpr-templates-kit-css', WPR_ADDONS_URL .'assets/css/admin/templates-kit.css', [], $version );
206
+ wp_enqueue_script( 'wpr-templates-kit-js', WPR_ADDONS_URL .'assets/js/admin/templates-kit.js', ['jquery', 'updates'], $version );
207
+ }
208
+
209
+ if ( strpos($hook, 'wpr-premade-blocks') ) {
210
+ wp_enqueue_style( 'wpr-premade-blocks-css', WPR_ADDONS_URL .'assets/css/admin/premade-blocks.css', [], $version );
211
+
212
+ wp_enqueue_script( 'wpr-macy-js', WPR_ADDONS_URL .'assets/js/lib/macy/macy.js', ['jquery'], $version );
213
+ wp_enqueue_script( 'wpr-premade-blocks-js', WPR_ADDONS_URL .'assets/js/admin/premade-blocks.js', ['jquery'], $version );
214
+ }
215
+ }
216
+
217
+ /**
218
+ ** Register Elementor AJAX Actions
219
+ */
220
+ public function register_elementor_ajax_actions( Ajax $ajax ) {
221
+
222
+ // Elementor Search Data
223
+ $ajax->register_ajax_action( 'wpr_elementor_search_data', function( $data ) {
224
+ // Freemius OptIn
225
+ if ( ! (wpr_fs()->is_registered() && wpr_fs()->is_tracking_allowed() || wpr_fs()->is_pending_activation() )) {
226
+ return;
227
+ }
228
+
229
+ if ( strlen($data['search_query']) > 25 ) {
230
+ return;
231
+ }
232
+
233
+ // Send Search Query
234
+ wp_remote_post( 'https://reastats.kinsta.cloud/wp-json/elementor-search/data', [
235
+ 'body' => [
236
+ 'search_query' => $data['search_query']
237
+ ]
238
+ ] );
239
+ } );
240
+ }
241
+ }
242
+
243
+ /**
244
+ * WPR_Templates_Actions setup
245
+ *
246
+ * @since 1.0
247
+ */
248
+ class WPR_Library_Source extends \Elementor\TemplateLibrary\Source_Base {
249
+
250
+ public function get_id() {
251
+ return 'wpr-layout-manager';
252
+ }
253
+
254
+ public function get_title() {
255
+ return 'WPR Layout Manager';
256
+ }
257
+
258
+ public function register_data() {}
259
+
260
+ public function save_item( $template_data ) {
261
+ return new \WP_Error( 'invalid_request', 'Cannot save template to a WPR layout manager' );
262
+ }
263
+
264
+ public function update_item( $new_data ) {
265
+ return new \WP_Error( 'invalid_request', 'Cannot update template to a WPR layout manager' );
266
+ }
267
+
268
+ public function delete_template( $template_id ) {
269
+ return new \WP_Error( 'invalid_request', 'Cannot delete template from a WPR layout manager' );
270
+ }
271
+
272
+ public function export_template( $template_id ) {
273
+ return new \WP_Error( 'invalid_request', 'Cannot export template from a WPR layout manager' );
274
+ }
275
+
276
+ public function get_items( $args = [] ) {
277
+ return [];
278
+ }
279
+
280
+ public function get_item( $template_id ) {
281
+ $templates = $this->get_items();
282
+
283
+ return $templates[ $template_id ];
284
+ }
285
+
286
+ public function request_template_data( $template_id ) {
287
+ if ( empty( $template_id ) ) {
288
+ return;
289
+ }
290
+
291
+ $response = wp_remote_get( 'https://royal-elementor-addons.com/library/premade-styles/'. $template_id .'.json', [
292
+ 'timeout' => 60,
293
+ 'sslverify' => false
294
+ ] );
295
+
296
+ return wp_remote_retrieve_body( $response );
297
+ }
298
+
299
+ public function get_data( array $args ) {//TODO: FIX - This function imports placeholder images in library
300
+ $data = $this->request_template_data( $args['template_id'] );
301
+
302
+ $data = json_decode( $data, true );
303
+
304
+ if ( empty( $data ) || empty( $data['content'] ) ) {
305
+ throw new \Exception( 'Template does not have any content' );
306
+ }
307
+
308
+ $data['content'] = $this->replace_elements_ids( $data['content'] );
309
+ $data['content'] = $this->process_export_import_content( $data['content'], 'on_import' );
310
+
311
+ return $data;
312
+ }
313
+
314
  }
admin/mega-menu.php CHANGED
@@ -1,376 +1,376 @@
1
- <?php
2
- use WprAddons\Plugin;
3
-
4
- // Register Post Type
5
- function register_mega_menu_cpt() {
6
- $args = array(
7
- 'label' => esc_html__( 'Royal Mega Menu', 'wpr-addons' ),
8
- 'public' => true,
9
- 'publicly_queryable' => true,
10
- 'rewrite' => false,
11
- 'show_ui' => true,
12
- 'show_in_menu' => false,
13
- 'show_in_nav_menus' => false,
14
- 'exclude_from_search' => true,
15
- 'capability_type' => 'post',
16
- 'supports' => array( 'title', 'editor', 'elementor' ),
17
- 'hierarchical' => false,
18
- );
19
-
20
- register_post_type( 'wpr_mega_menu', $args );
21
- }
22
-
23
- // Convert to Canvas Template
24
- function convert_to_canvas_template( $template ) {
25
- if ( is_singular('wpr_mega_menu') ) {
26
- $template = WPR_ADDONS_PATH . 'admin/templates/wpr-canvas.php';
27
- }
28
-
29
- return $template;
30
- }
31
-
32
- // Init Mega Menu
33
- function init_mega_menu() {
34
- register_mega_menu_cpt();
35
- add_action( 'template_include', 'convert_to_canvas_template', 9999 );
36
- }
37
-
38
- add_action('init', 'init_mega_menu', 999);
39
-
40
-
41
- // Confinue only for Dashboard Screen
42
- if ( !is_admin() ) return;
43
-
44
- // Init Actions
45
- add_filter( 'option_elementor_cpt_support', 'add_mega_menu_cpt_support' );
46
- add_filter( 'default_option_elementor_cpt_support', 'add_mega_menu_cpt_support' );
47
- add_action( 'admin_footer', 'render_settings_popup', 10 );
48
- add_action( 'wp_ajax_wpr_create_mega_menu_template', 'wpr_create_mega_menu_template' );
49
- add_action( 'wp_ajax_wpr_save_mega_menu_settings', 'wpr_save_mega_menu_settings' );
50
- add_action( 'admin_enqueue_scripts', 'enqueue_scripts' );
51
-
52
- // Add Elementor Editor Support
53
- function add_mega_menu_cpt_support( $value ) {
54
- if ( empty( $value ) ) {
55
- $value = [];
56
- }
57
-
58
- return array_merge( $value, ['wpr_mega_menu'] );
59
- }
60
-
61
- // Create Menu Template
62
- function wpr_create_mega_menu_template() {
63
- if ( ! current_user_can( 'manage_options' ) ) {
64
- return;
65
- }
66
-
67
- // $menu_id = intval( $_REQUEST['menu'] );
68
- // $menu_item_id = intval( $_REQUEST['item'] );
69
- $menu_item_id = intval( $_POST['item_id'] );
70
- $mega_menu_id = get_post_meta( $menu_item_id, 'wpr-mega-menu-item', true );
71
-
72
- if ( ! $mega_menu_id ) {
73
-
74
- $mega_menu_id = wp_insert_post( array(
75
- 'post_title' => 'wpr-mega-menu-item-' . $menu_item_id,
76
- 'post_status' => 'publish',
77
- 'post_type' => 'wpr_mega_menu',
78
- ) );
79
-
80
- update_post_meta( $menu_item_id, 'wpr-mega-menu-item', $mega_menu_id );
81
-
82
- }
83
-
84
- $edit_link = add_query_arg(
85
- array(
86
- 'post' => $mega_menu_id,
87
- 'action' => 'elementor',
88
- ),
89
- admin_url( 'post.php' )
90
- );
91
-
92
- wp_send_json([
93
- 'data' => [
94
- 'edit_link' => $edit_link
95
- ]
96
- ]);
97
- }
98
-
99
- // Render Settings Popup
100
- function render_settings_popup() {
101
- $screen = get_current_screen();
102
-
103
- if ( 'nav-menus' !== $screen->base ) {
104
- return;
105
- }
106
-
107
- ?>
108
-
109
- <div class="wpr-mm-settings-popup-wrap">
110
- <div class="wpr-mm-settings-popup">
111
- <div class="wpr-mm-settings-popup-header">
112
- <span class="wpr-mm-popup-logo" style="background:url('<?php echo WPR_ADDONS_ASSETS_URL .'img/logo-40x40.png'; ?>') no-repeat center center / contain;">RE</span>
113
- <span><?php esc_html_e('Royal Mega Menu', 'wpr-addons'); ?></span>
114
- <span class="wpr-mm-popup-title"><?php esc_html_e('Menu Item: ', 'wpr-addons'); ?><span></span></span>
115
- <span class="dashicons dashicons-no-alt wpr-mm-settings-close-popup-btn"></span>
116
- </div>
117
-
118
- <?php $pro_active = wpr_fs()->can_use_premium_code() ? 'data-pro-active="true"' : 'data-pro-active="false"'; ?>
119
-
120
- <div class="wpr-mm-settings-wrap" <?php echo $pro_active; ?>>
121
- <h4><?php esc_html_e('General', 'wpr-addons'); ?></h4>
122
- <div class="wpr-mm-setting wpr-mm-setting-switcher">
123
- <h4><?php esc_html_e('Enable Mega Menu', 'wpr-addons'); ?></h4>
124
- <input type="checkbox" id="wpr_mm_enable">
125
- <label for="wpr_mm_enable"></label>
126
- </div>
127
- <div class="wpr-mm-setting">
128
- <h4><?php esc_html_e('Mega Menu Content', 'wpr-addons'); ?></h4>
129
- <button class="button button-primary wpr-edit-mega-menu-btn">
130
- <i class="eicon-elementor-square" aria-hidden="true"></i>
131
- <?php esc_html_e('Edit with Elementor', 'wpr-addons'); ?>
132
- </button>
133
- </div>
134
- <div class="wpr-mm-setting">
135
- <h4><?php esc_html_e('Dropdown Position', 'wpr-addons'); ?></h4>
136
- <select id="wpr_mm_position">
137
- <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
138
- <option value="relative"><?php esc_html_e('Relative', 'wpr-addons'); ?></option>
139
- </select>
140
- </div>
141
- <div class="wpr-mm-setting">
142
- <h4><?php esc_html_e('Dropdown Width', 'wpr-addons'); ?></h4>
143
- <select id="wpr_mm_width">
144
- <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
145
- <?php if ( ! wpr_fs()->can_use_premium_code() ) : ?>
146
- <option value="pro-st"><?php esc_html_e('Fit to Section (Pro)', 'wpr-addons'); ?></option>
147
- <?php else: ?>
148
- <option value="stretch"><?php esc_html_e('Fit to Section', 'wpr-addons'); ?></option>
149
- <?php endif; ?>
150
- <option value="full"><?php esc_html_e('Full Width', 'wpr-addons'); ?></option>
151
- <option value="custom"><?php esc_html_e('Custom', 'wpr-addons'); ?></option>
152
- </select>
153
- </div>
154
- <div class="wpr-mm-setting">
155
- <h4><?php esc_html_e('Custom Width (px)', 'wpr-addons'); ?></h4>
156
- <input type="number" id="wpr_mm_custom_width" value="600">
157
- </div>
158
- <div class="wpr-mm-setting <?php echo !wpr_fs()->can_use_premium_code() ? 'wpr-mm-pro-setting' : ''; ?>">
159
- <h4><?php esc_html_e('Mobile Sub Content', 'wpr-addons'); ?></h4>
160
- <div>
161
- <select id="wpr_mm_mobile_content">
162
- <option value="mega"><?php esc_html_e('Mega Menu', 'wpr-addons'); ?></option>
163
- <option value="wp-sub"><?php esc_html_e('WordPress Sub Items', 'wpr-addons'); ?></option>
164
- </select>
165
-
166
- <div class="wpr-mm-pro-radio">
167
- <input type="radio" name="mc" checked="checked">
168
- <label>Mega Menu</label><br>
169
- <input type="radio" name="mc">
170
- <label>WordPress Sub Items</label>
171
- </div>
172
- </div>
173
- </div>
174
- <div class="wpr-mm-setting <?php echo !wpr_fs()->can_use_premium_code() ? 'wpr-mm-pro-setting' : ''; ?>">
175
- <h4><?php esc_html_e('Mobile Sub Render', 'wpr-addons'); ?></h4>
176
- <div>
177
- <select id="wpr_mm_render">
178
- <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
179
- <option value="ajax"><?php esc_html_e('Load with AJAX', 'wpr-addons'); ?></option>
180
- </select>
181
-
182
- <div class="wpr-mm-pro-radio">
183
- <input type="radio" name="mr" checked="checked">
184
- <label>Default</label><br>
185
- <input type="radio" name="mr">
186
- <label>Load with AJAX</label>
187
- </div>
188
- </div>
189
- </div>
190
-
191
- <br>
192
-
193
- <h4 <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-heading"' : ''; ?>>
194
- <?php esc_html_e('Icon', 'wpr-addons'); ?>
195
- </h4>
196
- <div <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-section"' : ''; ?>>
197
- <div class="wpr-mm-setting wpr-mm-setting-icon">
198
- <h4><?php esc_html_e('Icon Select', 'wpr-addons'); ?></h4>
199
- <div><span class="wpr-mm-active-icon"><i class="fas fa-ban"></i></span><span><i class="fas fa-angle-down"></i></span></div>
200
- <input type="text" id="wpr_mm_icon_picker" data-alpha="true" value="">
201
- </div>
202
- <div class="wpr-mm-setting wpr-mm-setting-color">
203
- <h4><?php esc_html_e('Icon Color', 'wpr-addons'); ?></h4>
204
- <input type="text" id="wpr_mm_icon_color" data-alpha="true" value="rgba(0,0,0,0.6);">
205
- </div>
206
- <div class="wpr-mm-setting">
207
- <h4><?php esc_html_e('Icon Size (px)', 'wpr-addons'); ?></h4>
208
- <input type="number" id="wpr_mm_icon_size" value="14">
209
- </div>
210
- </div>
211
-
212
- <br>
213
-
214
- <h4 <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-heading"' : ''; ?>>
215
- <?php esc_html_e('Badge', 'wpr-addons'); ?>
216
- </h4>
217
- <div <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-section"' : ''; ?>>
218
- <div class="wpr-mm-setting">
219
- <h4><?php esc_html_e('Badge Text', 'wpr-addons'); ?></h4>
220
- <input type="text" id="wpr_mm_badge_text" value="">
221
- </div>
222
- <div class="wpr-mm-setting wpr-mm-setting-color">
223
- <h4><?php esc_html_e('Badge Text Color', 'wpr-addons'); ?></h4>
224
- <input type="text" id="wpr_mm_badge_color" data-alpha="true" value="rgba(0,0,0,0.6);">
225
- </div>
226
- <div class="wpr-mm-setting wpr-mm-setting-color">
227
- <h4><?php esc_html_e('Badge Background Color', 'wpr-addons'); ?></h4>
228
- <input type="text" id="wpr_mm_badge_bg_color" data-alpha="true" value="rgba(0,0,0,0.6);">
229
- </div>
230
- <div class="wpr-mm-setting wpr-mm-setting-switcher">
231
- <h4><?php esc_html_e('Enable Animation', 'wpr-addons'); ?></h4>
232
- <input type="checkbox" id="wpr_mm_badge_animation">
233
- <label for="wpr_mm_badge_animation"></label>
234
- </div>
235
- </div>
236
- </div>
237
-
238
- <div class="wpr-mm-settings-popup-footer">
239
- <button class="button wpr-save-mega-menu-btn"><?php esc_html_e('Save', 'wpr-addons'); ?></button>
240
- </div>
241
- </div>
242
- </div>
243
-
244
- <!-- Iframe Popup -->
245
- <div class="wpr-mm-editor-popup-wrap">
246
- <div class="wpr-mm-editor-close-popup-btn"><span class="dashicons dashicons-no-alt"></span></div>
247
- <div class="wpr-mm-editor-popup-iframe"></div>
248
- </div>
249
- <?php
250
- }
251
-
252
- // Save Mega Menu Settings
253
- function wpr_save_mega_menu_settings() {
254
- if ( isset($_POST['item_settings']) ) {
255
- update_post_meta( $_POST['item_id'], 'wpr-mega-menu-settings', $_POST['item_settings'] );
256
- }
257
-
258
- wp_send_json_success($_POST['item_settings']);
259
- }
260
-
261
- // Get Menu Items Data
262
- function get_menu_items_data( $menu_id = false ) {
263
-
264
- if ( ! $menu_id ) {
265
- return false;
266
- }
267
-
268
- $menu = wp_get_nav_menu_object( $menu_id );
269
-
270
- $menu_items = wp_get_nav_menu_items( $menu );
271
-
272
- if ( ! $menu_items ) {
273
- return false;
274
- }
275
-
276
- return $menu_items;
277
- }
278
-
279
- // Get Mega Menu Item Settings
280
- function get_menu_items_settings() {
281
- $menu_items = get_menu_items_data( get_selected_menu_id() );
282
-
283
- $settings = [];
284
-
285
- if ( ! $menu_items ) {
286
- return [];
287
- } else {
288
- foreach ( $menu_items as $key => $item_object ) {
289
- $item_id = $item_object->ID;
290
-
291
- $item_meta = get_post_meta( $item_id, 'wpr-mega-menu-settings', true );
292
-
293
- if ( !empty($item_meta) ) {
294
- $settings[ $item_id ] = $item_meta;
295
- } else {
296
- $settings[ $item_id ] = [];
297
- }
298
- }
299
-
300
- return $settings;
301
- }
302
- }
303
-
304
- /**
305
- * Get the Selected menu ID
306
- * @author Tom Hemsley (https://wordpress.org/plugins/megamenu/)
307
- */
308
- function get_selected_menu_id() {
309
- $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
310
- $menu_count = count( $nav_menus );
311
- $nav_menu_selected_id = isset( $_REQUEST['menu'] ) ? (int) $_REQUEST['menu'] : 0;
312
- $add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : false;
313
-
314
- $current_menu_id = $nav_menu_selected_id;
315
-
316
- // If we have one theme location, and zero menus, we take them right into editing their first menu
317
- $page_count = wp_count_posts( 'page' );
318
- $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false;
319
-
320
- // Get recently edited nav menu
321
- $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
322
- if ( empty( $recently_edited ) && is_nav_menu( $current_menu_id ) ) {
323
- $recently_edited = $current_menu_id;
324
- }
325
-
326
- // Use $recently_edited if none are selected
327
- if ( empty( $current_menu_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) ) {
328
- $current_menu_id = $recently_edited;
329
- }
330
-
331
- // On deletion of menu, if another menu exists, show it
332
- if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] ) {
333
- $current_menu_id = $nav_menus[0]->term_id;
334
- }
335
-
336
- // Set $current_menu_id to 0 if no menus
337
- if ( $one_theme_location_no_menus ) {
338
- $current_menu_id = 0;
339
- } elseif ( empty( $current_menu_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) {
340
- // if we have no selection yet, and we have menus, set to the first one in the list
341
- $current_menu_id = $nav_menus[0]->term_id;
342
- }
343
-
344
- return $current_menu_id;
345
-
346
- }
347
-
348
- // Enqueue Scripts and Styles
349
- function enqueue_scripts( $hook ) {
350
-
351
- // Get Plugin Version
352
- $version = Plugin::instance()->get_version();
353
-
354
- // Deny if NOT a Menu Page
355
- if ( 'nav-menus.php' == $hook ) {
356
-
357
- // Color Picker
358
- wp_enqueue_style( 'wp-color-picker' );
359
- wp_enqueue_script( 'wp-color-picker-alpha', WPR_ADDONS_URL .'assets/js/admin/lib/wp-color-picker-alpha.min.js', ['jquery', 'wp-color-picker'], $version, true );
360
-
361
- // Icon Picker
362
- wp_enqueue_script( 'wpr-iconpicker-js', WPR_ADDONS_URL .'assets/js/admin/lib/iconpicker/fontawesome-iconpicker.min.js', ['jquery'], $version, true );
363
- wp_enqueue_style( 'wpr-iconpicker-css', WPR_ADDONS_URL .'assets/js/admin/lib/iconpicker/fontawesome-iconpicker.min.css', $version, true );
364
- wp_enqueue_style( 'wpr-el-fontawesome-css', ELEMENTOR_URL .'assets/lib/font-awesome/css/all.min.css', [], $version );
365
-
366
- // enqueue CSS
367
- wp_enqueue_style( 'wpr-mega-menu-css', WPR_ADDONS_URL .'assets/css/admin/mega-menu.css', [], $version );
368
-
369
- // enqueue JS
370
- wp_enqueue_script( 'wpr-mega-menu-js', WPR_ADDONS_URL .'assets/js/admin/mega-menu.js', ['jquery'], $version );
371
-
372
- wp_localize_script( 'wpr-mega-menu-js', 'WprMegaMenuSettingsData', get_menu_items_settings() );
373
-
374
- }
375
-
376
  }
1
+ <?php
2
+ use WprAddons\Plugin;
3
+
4
+ // Register Post Type
5
+ function register_mega_menu_cpt() {
6
+ $args = array(
7
+ 'label' => esc_html__( 'Royal Mega Menu', 'wpr-addons' ),
8
+ 'public' => true,
9
+ 'publicly_queryable' => true,
10
+ 'rewrite' => false,
11
+ 'show_ui' => true,
12
+ 'show_in_menu' => false,
13
+ 'show_in_nav_menus' => false,
14
+ 'exclude_from_search' => true,
15
+ 'capability_type' => 'post',
16
+ 'supports' => array( 'title', 'editor', 'elementor' ),
17
+ 'hierarchical' => false,
18
+ );
19
+
20
+ register_post_type( 'wpr_mega_menu', $args );
21
+ }
22
+
23
+ // Convert to Canvas Template
24
+ function convert_to_canvas_template( $template ) {
25
+ if ( is_singular('wpr_mega_menu') ) {
26
+ $template = WPR_ADDONS_PATH . 'admin/templates/wpr-canvas.php';
27
+ }
28
+
29
+ return $template;
30
+ }
31
+
32
+ // Init Mega Menu
33
+ function init_mega_menu() {
34
+ register_mega_menu_cpt();
35
+ add_action( 'template_include', 'convert_to_canvas_template', 9999 );
36
+ }
37
+
38
+ add_action('init', 'init_mega_menu', 999);
39
+
40
+
41
+ // Confinue only for Dashboard Screen
42
+ if ( !is_admin() ) return;
43
+
44
+ // Init Actions
45
+ add_filter( 'option_elementor_cpt_support', 'add_mega_menu_cpt_support' );
46
+ add_filter( 'default_option_elementor_cpt_support', 'add_mega_menu_cpt_support' );
47
+ add_action( 'admin_footer', 'render_settings_popup', 10 );
48
+ add_action( 'wp_ajax_wpr_create_mega_menu_template', 'wpr_create_mega_menu_template' );
49
+ add_action( 'wp_ajax_wpr_save_mega_menu_settings', 'wpr_save_mega_menu_settings' );
50
+ add_action( 'admin_enqueue_scripts', 'enqueue_scripts' );
51
+
52
+ // Add Elementor Editor Support
53
+ function add_mega_menu_cpt_support( $value ) {
54
+ if ( empty( $value ) ) {
55
+ $value = [];
56
+ }
57
+
58
+ return array_merge( $value, ['wpr_mega_menu'] );
59
+ }
60
+
61
+ // Create Menu Template
62
+ function wpr_create_mega_menu_template() {
63
+ if ( ! current_user_can( 'manage_options' ) ) {
64
+ return;
65
+ }
66
+
67
+ // $menu_id = intval( $_REQUEST['menu'] );
68
+ // $menu_item_id = intval( $_REQUEST['item'] );
69
+ $menu_item_id = intval( $_POST['item_id'] );
70
+ $mega_menu_id = get_post_meta( $menu_item_id, 'wpr-mega-menu-item', true );
71
+
72
+ if ( ! $mega_menu_id ) {
73
+
74
+ $mega_menu_id = wp_insert_post( array(
75
+ 'post_title' => 'wpr-mega-menu-item-' . $menu_item_id,
76
+ 'post_status' => 'publish',
77
+ 'post_type' => 'wpr_mega_menu',
78
+ ) );
79
+
80
+ update_post_meta( $menu_item_id, 'wpr-mega-menu-item', $mega_menu_id );
81
+
82
+ }
83
+
84
+ $edit_link = add_query_arg(
85
+ array(
86
+ 'post' => $mega_menu_id,
87
+ 'action' => 'elementor',
88
+ ),
89
+ admin_url( 'post.php' )
90
+ );
91
+
92
+ wp_send_json([
93
+ 'data' => [
94
+ 'edit_link' => $edit_link
95
+ ]
96
+ ]);
97
+ }
98
+
99
+ // Render Settings Popup
100
+ function render_settings_popup() {
101
+ $screen = get_current_screen();
102
+
103
+ if ( 'nav-menus' !== $screen->base ) {
104
+ return;
105
+ }
106
+
107
+ ?>
108
+
109
+ <div class="wpr-mm-settings-popup-wrap">
110
+ <div class="wpr-mm-settings-popup">
111
+ <div class="wpr-mm-settings-popup-header">
112
+ <span class="wpr-mm-popup-logo" style="background:url('<?php echo WPR_ADDONS_ASSETS_URL .'img/logo-40x40.png'; ?>') no-repeat center center / contain;">RE</span>
113
+ <span><?php esc_html_e('Royal Mega Menu', 'wpr-addons'); ?></span>
114
+ <span class="wpr-mm-popup-title"><?php esc_html_e('Menu Item: ', 'wpr-addons'); ?><span></span></span>
115
+ <span class="dashicons dashicons-no-alt wpr-mm-settings-close-popup-btn"></span>
116
+ </div>
117
+
118
+ <?php $pro_active = wpr_fs()->can_use_premium_code() ? 'data-pro-active="true"' : 'data-pro-active="false"'; ?>
119
+
120
+ <div class="wpr-mm-settings-wrap" <?php echo $pro_active; ?>>
121
+ <h4><?php esc_html_e('General', 'wpr-addons'); ?></h4>
122
+ <div class="wpr-mm-setting wpr-mm-setting-switcher">
123
+ <h4><?php esc_html_e('Enable Mega Menu', 'wpr-addons'); ?></h4>
124
+ <input type="checkbox" id="wpr_mm_enable">
125
+ <label for="wpr_mm_enable"></label>
126
+ </div>
127
+ <div class="wpr-mm-setting">
128
+ <h4><?php esc_html_e('Mega Menu Content', 'wpr-addons'); ?></h4>
129
+ <button class="button button-primary wpr-edit-mega-menu-btn">
130
+ <i class="eicon-elementor-square" aria-hidden="true"></i>
131
+ <?php esc_html_e('Edit with Elementor', 'wpr-addons'); ?>
132
+ </button>
133
+ </div>
134
+ <div class="wpr-mm-setting">
135
+ <h4><?php esc_html_e('Dropdown Position', 'wpr-addons'); ?></h4>
136
+ <select id="wpr_mm_position">
137
+ <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
138
+ <option value="relative"><?php esc_html_e('Relative', 'wpr-addons'); ?></option>
139
+ </select>
140
+ </div>
141
+ <div class="wpr-mm-setting">
142
+ <h4><?php esc_html_e('Dropdown Width', 'wpr-addons'); ?></h4>
143
+ <select id="wpr_mm_width">
144
+ <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
145
+ <?php if ( ! wpr_fs()->can_use_premium_code() ) : ?>
146
+ <option value="pro-st"><?php esc_html_e('Fit to Section (Pro)', 'wpr-addons'); ?></option>
147
+ <?php else: ?>
148
+ <option value="stretch"><?php esc_html_e('Fit to Section', 'wpr-addons'); ?></option>
149
+ <?php endif; ?>
150
+ <option value="full"><?php esc_html_e('Full Width', 'wpr-addons'); ?></option>
151
+ <option value="custom"><?php esc_html_e('Custom', 'wpr-addons'); ?></option>
152
+ </select>
153
+ </div>
154
+ <div class="wpr-mm-setting">
155
+ <h4><?php esc_html_e('Custom Width (px)', 'wpr-addons'); ?></h4>
156
+ <input type="number" id="wpr_mm_custom_width" value="600">
157
+ </div>
158
+ <div class="wpr-mm-setting <?php echo !wpr_fs()->can_use_premium_code() ? 'wpr-mm-pro-setting' : ''; ?>">
159
+ <h4><?php esc_html_e('Mobile Sub Content', 'wpr-addons'); ?></h4>
160
+ <div>
161
+ <select id="wpr_mm_mobile_content">
162
+ <option value="mega"><?php esc_html_e('Mega Menu', 'wpr-addons'); ?></option>
163
+ <option value="wp-sub"><?php esc_html_e('WordPress Sub Items', 'wpr-addons'); ?></option>
164
+ </select>
165
+
166
+ <div class="wpr-mm-pro-radio">
167
+ <input type="radio" name="mc" checked="checked">
168
+ <label>Mega Menu</label><br>
169
+ <input type="radio" name="mc">
170
+ <label>WordPress Sub Items</label>
171
+ </div>
172
+ </div>
173
+ </div>
174
+ <div class="wpr-mm-setting <?php echo !wpr_fs()->can_use_premium_code() ? 'wpr-mm-pro-setting' : ''; ?>">
175
+ <h4><?php esc_html_e('Mobile Sub Render', 'wpr-addons'); ?></h4>
176
+ <div>
177
+ <select id="wpr_mm_render">
178
+ <option value="default"><?php esc_html_e('Default', 'wpr-addons'); ?></option>
179
+ <option value="ajax"><?php esc_html_e('Load with AJAX', 'wpr-addons'); ?></option>
180
+ </select>
181
+
182
+ <div class="wpr-mm-pro-radio">
183
+ <input type="radio" name="mr" checked="checked">
184
+ <label>Default</label><br>
185
+ <input type="radio" name="mr">
186
+ <label>Load with AJAX</label>
187
+ </div>
188
+ </div>
189
+ </div>
190
+
191
+ <br>
192
+
193
+ <h4 <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-heading"' : ''; ?>>
194
+ <?php esc_html_e('Icon', 'wpr-addons'); ?>
195
+ </h4>
196
+ <div <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-section"' : ''; ?>>
197
+ <div class="wpr-mm-setting wpr-mm-setting-icon">
198
+ <h4><?php esc_html_e('Icon Select', 'wpr-addons'); ?></h4>
199
+ <div><span class="wpr-mm-active-icon"><i class="fas fa-ban"></i></span><span><i class="fas fa-angle-down"></i></span></div>
200
+ <input type="text" id="wpr_mm_icon_picker" data-alpha="true" value="">
201
+ </div>
202
+ <div class="wpr-mm-setting wpr-mm-setting-color">
203
+ <h4><?php esc_html_e('Icon Color', 'wpr-addons'); ?></h4>
204
+ <input type="text" id="wpr_mm_icon_color" data-alpha="true" value="rgba(0,0,0,0.6);">
205
+ </div>
206
+ <div class="wpr-mm-setting">
207
+ <h4><?php esc_html_e('Icon Size (px)', 'wpr-addons'); ?></h4>
208
+ <input type="number" id="wpr_mm_icon_size" value="14">
209
+ </div>
210
+ </div>
211
+
212
+ <br>
213
+
214
+ <h4 <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-heading"' : ''; ?>>
215
+ <?php esc_html_e('Badge', 'wpr-addons'); ?>
216
+ </h4>
217
+ <div <?php echo !wpr_fs()->can_use_premium_code() ? 'class="wpr-mm-pro-section"' : ''; ?>>
218
+ <div class="wpr-mm-setting">
219
+ <h4><?php esc_html_e('Badge Text', 'wpr-addons'); ?></h4>
220
+ <input type="text" id="wpr_mm_badge_text" value="">
221
+ </div>
222
+ <div class="wpr-mm-setting wpr-mm-setting-color">
223
+ <h4><?php esc_html_e('Badge Text Color', 'wpr-addons'); ?></h4>
224
+ <input type="text" id="wpr_mm_badge_color" data-alpha="true" value="rgba(0,0,0,0.6);">
225
+ </div>
226
+ <div class="wpr-mm-setting wpr-mm-setting-color">
227
+ <h4><?php esc_html_e('Badge Background Color', 'wpr-addons'); ?></h4>
228
+ <input type="text" id="wpr_mm_badge_bg_color" data-alpha="true" value="rgba(0,0,0,0.6);">
229
+ </div>
230
+ <div class="wpr-mm-setting wpr-mm-setting-switcher">
231
+ <h4><?php esc_html_e('Enable Animation', 'wpr-addons'); ?></h4>
232
+ <input type="checkbox" id="wpr_mm_badge_animation">
233
+ <label for="wpr_mm_badge_animation"></label>
234
+ </div>
235
+ </div>
236
+ </div>
237
+
238
+ <div class="wpr-mm-settings-popup-footer">
239
+ <button class="button wpr-save-mega-menu-btn"><?php esc_html_e('Save', 'wpr-addons'); ?></button>
240
+ </div>
241
+ </div>
242
+ </div>
243
+
244
+ <!-- Iframe Popup -->
245
+ <div class="wpr-mm-editor-popup-wrap">
246
+ <div class="wpr-mm-editor-close-popup-btn"><span class="dashicons dashicons-no-alt"></span></div>
247
+ <div class="wpr-mm-editor-popup-iframe"></div>
248
+ </div>
249
+ <?php
250
+ }
251
+
252
+ // Save Mega Menu Settings
253
+ function wpr_save_mega_menu_settings() {
254
+ if ( isset($_POST['item_settings']) ) {
255
+ update_post_meta( $_POST['item_id'], 'wpr-mega-menu-settings', $_POST['item_settings'] );
256
+ }
257
+
258
+ wp_send_json_success($_POST['item_settings']);
259
+ }
260
+
261
+ // Get Menu Items Data
262
+ function get_menu_items_data( $menu_id = false ) {
263
+
264
+ if ( ! $menu_id ) {
265
+ return false;
266
+ }
267
+
268
+ $menu = wp_get_nav_menu_object( $menu_id );
269
+
270
+ $menu_items = wp_get_nav_menu_items( $menu );
271
+
272
+ if ( ! $menu_items ) {
273
+ return false;
274
+ }
275
+
276
+ return $menu_items;
277
+ }
278
+
279
+ // Get Mega Menu Item Settings
280
+ function get_menu_items_settings() {
281
+ $menu_items = get_menu_items_data( get_selected_menu_id() );
282
+
283
+ $settings = [];
284
+
285
+ if ( ! $menu_items ) {
286
+ return [];
287
+ } else {
288
+ foreach ( $menu_items as $key => $item_object ) {
289
+ $item_id = $item_object->ID;
290
+
291
+ $item_meta = get_post_meta( $item_id, 'wpr-mega-menu-settings', true );
292
+
293
+ if ( !empty($item_meta) ) {
294
+ $settings[ $item_id ] = $item_meta;
295
+ } else {
296
+ $settings[ $item_id ] = [];
297
+ }
298
+ }
299
+
300
+ return $settings;
301
+ }
302
+ }
303
+
304
+ /**
305
+ * Get the Selected menu ID
306
+ * @author Tom Hemsley (https://wordpress.org/plugins/megamenu/)
307
+ */
308
+ function get_selected_menu_id() {
309
+ $nav_menus = wp_get_nav_menus( array('orderby' => 'name') );
310
+ $menu_count = count( $nav_menus );
311
+ $nav_menu_selected_id = isset( $_REQUEST['menu'] ) ? (int) $_REQUEST['menu'] : 0;
312
+ $add_new_screen = ( isset( $_GET['menu'] ) && 0 == $_GET['menu'] ) ? true : false;
313
+
314
+ $current_menu_id = $nav_menu_selected_id;
315
+
316
+ // If we have one theme location, and zero menus, we take them right into editing their first menu
317
+ $page_count = wp_count_posts( 'page' );
318
+ $one_theme_location_no_menus = ( 1 == count( get_registered_nav_menus() ) && ! $add_new_screen && empty( $nav_menus ) && ! empty( $page_count->publish ) ) ? true : false;
319
+
320
+ // Get recently edited nav menu
321
+ $recently_edited = absint( get_user_option( 'nav_menu_recently_edited' ) );
322
+ if ( empty( $recently_edited ) && is_nav_menu( $current_menu_id ) ) {
323
+ $recently_edited = $current_menu_id;
324
+ }
325
+
326
+ // Use $recently_edited if none are selected
327
+ if ( empty( $current_menu_id ) && ! isset( $_GET['menu'] ) && is_nav_menu( $recently_edited ) ) {
328
+ $current_menu_id = $recently_edited;
329
+ }
330
+
331
+ // On deletion of menu, if another menu exists, show it
332
+ if ( ! $add_new_screen && 0 < $menu_count && isset( $_GET['action'] ) && 'delete' == $_GET['action'] ) {
333
+ $current_menu_id = $nav_menus[0]->term_id;
334
+ }
335
+
336
+ // Set $current_menu_id to 0 if no menus
337
+ if ( $one_theme_location_no_menus ) {
338
+ $current_menu_id = 0;
339
+ } elseif ( empty( $current_menu_id ) && ! empty( $nav_menus ) && ! $add_new_screen ) {
340
+ // if we have no selection yet, and we have menus, set to the first one in the list
341
+ $current_menu_id = $nav_menus[0]->term_id;
342
+ }
343
+
344
+ return $current_menu_id;
345
+
346
+ }
347
+
348
+ // Enqueue Scripts and Styles
349
+ function enqueue_scripts( $hook ) {
350
+
351
+ // Get Plugin Version
352
+ $version = Plugin::instance()->get_version();
353
+
354
+ // Deny if NOT a Menu Page
355
+ if ( 'nav-menus.php' == $hook ) {
356
+
357
+ // Color Picker
358
+ wp_enqueue_style( 'wp-color-picker' );
359
+ wp_enqueue_script( 'wp-color-picker-alpha', WPR_ADDONS_URL .'assets/js/admin/lib/wp-color-picker-alpha.min.js', ['jquery', 'wp-color-picker'], $version, true );
360
+
361
+ // Icon Picker
362
+ wp_enqueue_script( 'wpr-iconpicker-js', WPR_ADDONS_URL .'assets/js/admin/lib/iconpicker/fontawesome-iconpicker.min.js', ['jquery'], $version, true );
363
+ wp_enqueue_style( 'wpr-iconpicker-css', WPR_ADDONS_URL .'assets/js/admin/lib/iconpicker/fontawesome-iconpicker.min.css', $version, true );
364
+ wp_enqueue_style( 'wpr-el-fontawesome-css', ELEMENTOR_URL .'assets/lib/font-awesome/css/all.min.css', [], $version );
365
+
366
+ // enqueue CSS
367
+ wp_enqueue_style( 'wpr-mega-menu-css', WPR_ADDONS_URL .'assets/css/admin/mega-menu.css', [], $version );
368
+
369
+ // enqueue JS
370
+ wp_enqueue_script( 'wpr-mega-menu-js', WPR_ADDONS_URL .'assets/js/admin/mega-menu.js', ['jquery'], $version );
371
+
372
+ wp_localize_script( 'wpr-mega-menu-js', 'WprMegaMenuSettingsData', get_menu_items_settings() );
373
+
374
+ }
375
+
376
  }
admin/plugin-options.php CHANGED
@@ -1,571 +1,571 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- use WprAddons\Admin\Includes\WPR_Templates_Loop;
8
- use WprAddonsPro\Admin\Wpr_White_Label;
9
- use WprAddons\Classes\Utilities;
10
-
11
- // Register Menus
12
- function wpr_addons_add_admin_menu() {
13
- $menu_icon = !empty(get_option('wpr_wl_plugin_logo')) ? 'dashicons-admin-generic' : 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTciIGhlaWdodD0iNzUiIHZpZXdCb3g9IjAgMCA5NyA3NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMDM2NDA4NiAyMy4yODlDLTAuNTc1NDkgMTguNTIxIDYuNjg4NzMgMTYuMzY2NiA5LjU0OSAyMC40Njc4TDQyLjgzNjUgNjguMTk3MkM0NC45MTgxIDcxLjE4MiA0Mi40NDk0IDc1IDM4LjQzNzggNzVIMTEuMjc1NkM4LjY1NDc1IDc1IDYuNDUyNjQgNzMuMjg1NSA2LjE2MTcgNzEuMDE4NEwwLjAzNjQwODYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTk2Ljk2MzYgMjMuMjg5Qzk3LjU3NTUgMTguNTIxIDkwLjMxMTMgMTYuMzY2NiA4Ny40NTEgMjAuNDY3OEw1NC4xNjM1IDY4LjE5NzJDNTIuMDgxOCA3MS4xODIgNTQuNTUwNiA3NSA1OC41NjIyIDc1SDg1LjcyNDRDODguMzQ1MiA3NSA5MC41NDc0IDczLjI4NTUgOTAuODM4MyA3MS4wMTg0TDk2Ljk2MzYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTUzLjI0MTIgNC40ODUyN0M1My4yNDEyIC0wLjI3MDc2MSA0NS44NDg1IC0xLjc0ODAzIDQzLjQ2NTEgMi41MzE3NEw2LjY4OTkxIDY4LjU2NzdDNS4wMzM0OSA3MS41NDIxIDcuNTIyNzIgNzUgMTEuMzIwMyA3NUg0OC4wOTU1QzUwLjkzNzQgNzUgNTMuMjQxMiA3Mi45OTQ4IDUzLjI0MTIgNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjc1ODggNC40ODUyN0M0My43NTg4IC0wLjI3MDc2MSA1MS4xNTE1IC0xLjc0ODAzIDUzLjUzNDkgMi41MzE3NEw5MC4zMTAxIDY4LjU2NzdDOTEuOTY2NSA3MS41NDIxIDg5LjQ3NzMgNzUgODUuNjc5NyA3NUg0OC45MDQ1QzQ2LjA2MjYgNzUgNDMuNzU4OCA3Mi45OTQ4IDQzLjc1ODggNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==';
14
- add_menu_page( Utilities::get_plugin_name(), Utilities::get_plugin_name(), 'manage_options', 'wpr-addons', 'wpr_addons_settings_page', $menu_icon, '58.6' );
15
-
16
- add_action( 'admin_init', 'wpr_register_addons_settings' );
17
- add_filter( 'plugin_action_links_'. WPR_ADDONS_PLUGIN_BASE, 'wpr_settings_link' );
18
- }
19
- add_action( 'admin_menu', 'wpr_addons_add_admin_menu' );
20
-
21
- // Add Settings page link to plugins screen
22
- function wpr_settings_link( $links ) {
23
- $settings_link = '<a href="admin.php?page=wpr-addons">Settings</a>';
24
- array_push( $links, $settings_link );
25
-
26
- if ( !is_plugin_installed('wpr-addons-pro/wpr-addons-pro.php') ) {
27
- $links[] = '<a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-wpplugindashboard-upgrade-pro#purchasepro" style="color:#93003c;font-weight:700" target="_blank">' . esc_html__('Go Pro', 'wpr-addons') . '</a>';
28
- }
29
-
30
- return $links;
31
- }
32
-
33
- function is_plugin_installed($file) {
34
- $installed_plugins = [];
35
-
36
- foreach( get_plugins() as $slug => $plugin_info ) {
37
- array_push($installed_plugins, $slug);
38
- }
39
-
40
- if ( in_array($file, $installed_plugins) ) {
41
- return true;
42
- } else {
43
- return false;
44
- }
45
- }
46
-
47
- // Register Settings
48
- function wpr_register_addons_settings() {
49
- // WooCommerce
50
- register_setting( 'wpr-settings', 'wpr_override_woo_templates' );
51
- register_setting( 'wpr-settings', 'wpr_enable_product_image_zoom' );
52
- register_setting( 'wpr-settings', 'wpr_enable_woo_flexslider_navigation' );
53
- register_setting( 'wpr-settings', 'wpr_woo_shop_ppp' );
54
- register_setting( 'wpr-settings', 'wpr_woo_shop_cat_ppp' );
55
- register_setting( 'wpr-settings', 'wpr_woo_shop_tag_ppp' );
56
-
57
- // Integrations
58
- register_setting( 'wpr-settings', 'wpr_google_map_api_key' );
59
- register_setting( 'wpr-settings', 'wpr_mailchimp_api_key' );
60
-
61
- // Lightbox
62
- register_setting( 'wpr-settings', 'wpr_lb_bg_color' );
63
- register_setting( 'wpr-settings', 'wpr_lb_toolbar_color' );
64
- register_setting( 'wpr-settings', 'wpr_lb_caption_color' );
65
- register_setting( 'wpr-settings', 'wpr_lb_gallery_color' );
66
- register_setting( 'wpr-settings', 'wpr_lb_pb_color' );
67
- register_setting( 'wpr-settings', 'wpr_lb_ui_color' );
68
- register_setting( 'wpr-settings', 'wpr_lb_ui_hr_color' );
69
- register_setting( 'wpr-settings', 'wpr_lb_text_color' );
70
- register_setting( 'wpr-settings', 'wpr_lb_icon_size' );
71
- register_setting( 'wpr-settings', 'wpr_lb_arrow_size' );
72
- register_setting( 'wpr-settings', 'wpr_lb_text_size' );
73
-
74
- // White Label
75
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_logo' );
76
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_name' );
77
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_desc' );
78
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_author' );
79
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_website' );
80
- register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_links' );
81
- register_setting( 'wpr-wh-settings', 'wpr_wl_hide_elements_tab' );
82
- register_setting( 'wpr-wh-settings', 'wpr_wl_hide_extensions_tab' );
83
- register_setting( 'wpr-wh-settings', 'wpr_wl_hide_settings_tab' );
84
- register_setting( 'wpr-wh-settings', 'wpr_wl_hide_white_label_tab' );
85
-
86
- // Extensions
87
- register_setting('wpr-extension-settings', 'wpr-particles');
88
- register_setting('wpr-extension-settings', 'wpr-parallax-background');
89
- register_setting('wpr-extension-settings', 'wpr-parallax-multi-layer');
90
- register_setting('wpr-extension-settings', 'wpr-sticky-section');
91
-
92
- // Element Toggle
93
- register_setting( 'wpr-elements-settings', 'wpr-element-toggle-all', [ 'default' => 'on' ] );
94
-
95
- // Widgets
96
- foreach ( Utilities::get_registered_modules() as $title => $data ) {
97
- $slug = $data[0];
98
- register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
99
- }
100
-
101
- // Theme Builder
102
- foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
103
- $slug = $data[0];
104
- register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
105
- }
106
-
107
-
108
- // WooCommerce Builder
109
- foreach ( Utilities::get_woocommerce_builder_modules() as $title => $data ) {
110
- $slug = $data[0];
111
- register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
112
- }
113
-
114
- }
115
-
116
- function wpr_addons_settings_page() {
117
-
118
- ?>
119
-
120
- <div class="wrap wpr-settings-page-wrap">
121
-
122
- <div class="wpr-settings-page-header">
123
- <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
124
- <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
125
-
126
- <?php if ( empty(get_option('wpr_wl_plugin_links')) ) : ?>
127
- <div class="wpr-preview-buttons">
128
- <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-plugin-prev-btn#widgets" target="_blank" class="button wpr-options-button">
129
- <span><?php echo esc_html__( 'View Plugin Demo', 'wpr-addons' ); ?></span>
130
- <span class="dashicons dashicons-external"></span>
131
- </a>
132
-
133
- <a href="https://www.youtube.com/watch?v=rkYQfn3tUc0" class="wpr-options-button button" target="_blank">
134
- <?php echo esc_html__( 'How to use Widgets', 'wpr-addons' ); ?>
135
- <span class="dashicons dashicons-video-alt3"></span>
136
- </a>
137
-
138
- <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" class="wpr-options-button button" target="_blank">
139
- <?php echo esc_html__( 'Request New Feature', 'wpr-addons' ); ?>
140
- <span class="dashicons dashicons-star-empty"></span>
141
- </a>
142
- </div>
143
- <?php endif; ?>
144
- </div>
145
-
146
- <div class="wpr-settings-page">
147
- <form method="post" action="options.php">
148
- <?php
149
-
150
- // Active Tab
151
- if ( empty(get_option('wpr_wl_hide_elements_tab')) ) {
152
- $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_elements';
153
- } elseif ( empty(get_option('wpr_wl_hide_extensions_tab')) ) {
154
- $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_extensions';
155
- } elseif ( empty(get_option('wpr_wl_hide_settings_tab')) ) {
156
- $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_settings';
157
- } elseif ( empty(get_option('wpr_wl_hide_white_label_tab')) ) {
158
- $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_white_label';
159
- }
160
-
161
-
162
- // Render Create Templte Popup
163
- WPR_Templates_Loop::render_create_template_popup();
164
-
165
- ?>
166
-
167
- <!-- Tabs -->
168
- <div class="nav-tab-wrapper wpr-nav-tab-wrapper">
169
- <?php if ( empty(get_option('wpr_wl_hide_elements_tab')) ) : ?>
170
- <a href="?page=wpr-addons&tab=wpr_tab_elements" data-title="Elements" class="nav-tab <?php echo ($active_tab == 'wpr_tab_elements') ? 'nav-tab-active' : ''; ?>">
171
- <?php esc_html_e( 'Widgets', 'wpr-addons' ); ?>
172
- </a>
173
- <?php endif; ?>
174
-
175
- <?php if ( empty(get_option('wpr_wl_hide_extensions_tab')) ) : ?>
176
- <a href="?page=wpr-addons&tab=wpr_tab_extensions" data-title="Extensions" class="nav-tab <?php echo ($active_tab == 'wpr_tab_extensions') ? 'nav-tab-active' : ''; ?>">
177
- <?php esc_html_e( 'Extensions', 'wpr-addons' ); ?>
178
- </a>
179
- <?php endif; ?>
180
-
181
- <?php if ( empty(get_option('wpr_wl_hide_settings_tab')) ) : ?>
182
- <a href="?page=wpr-addons&tab=wpr_tab_settings" data-title="Settings" class="nav-tab <?php echo ($active_tab == 'wpr_tab_settings') ? 'nav-tab-active' : ''; ?>">
183
- <?php esc_html_e( 'Settings', 'wpr-addons' ); ?>
184
- </a>
185
- <?php endif; ?>
186
-
187
- <?php // White Label
188
- echo !empty(get_option('wpr_wl_hide_white_label_tab')) ? '<div style="display: none;">' : '<div>';
189
- do_action('wpr_white_label_tab');
190
- echo '</div>';
191
- ?>
192
- </div>
193
-
194
- <?php if ( $active_tab == 'wpr_tab_elements' ) : ?>
195
-
196
- <?php
197
-
198
- // Settings
199
- settings_fields( 'wpr-elements-settings' );
200
- do_settings_sections( 'wpr-elements-settings' );
201
-
202
- ?>
203
-
204
- <div class="wpr-elements-toggle">
205
- <div>
206
- <h3><?php esc_html_e( 'Toggle all Widgets', 'wpr-addons' ); ?></h3>
207
- <input type="checkbox" name="wpr-element-toggle-all" id="wpr-element-toggle-all" <?php checked( get_option('wpr-element-toggle-all', 'on'), 'on', true ); ?>>
208
- <label for="wpr-element-toggle-all"></label>
209
- </div>
210
- <p><?php esc_html_e( 'You can disable some widgets for faster page speed.', 'wpr-addons' ); ?></p>
211
- </div>
212
- <div class="wpr-elements">
213
- <?php
214
- foreach ( Utilities::get_registered_modules() as $title => $data ) {
215
- $slug = $data[0];
216
- $url = $data[1];
217
- $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
218
- $class = 'new' === $data[3] ? ' wpr-new-element' : '';
219
-
220
- echo '<div class="wpr-element'. esc_attr($class) .'">';
221
- echo '<div class="wpr-element-info">';
222
- echo '<h3>'. esc_html($title) .'</h3>';
223
- echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, 'on'), 'on', false ) .'>';
224
- echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
225
- echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
226
- echo '</div>';
227
- echo '</div>';
228
- }
229
- ?>
230
- </div>
231
-
232
- <div class="wpr-elements-heading">
233
- <h3><?php esc_html_e( 'Theme Builder Widgets', 'wpr-addons' ); ?></h3>
234
- <p><?php esc_html_e( 'Post (CPT) Archive Pages, Post (CPT) Single Pages', 'wpr-addons' ); ?></p>
235
- </div>
236
- <div class="wpr-elements">
237
- <?php
238
- foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
239
- $slug = $data[0];
240
- $url = $data[1];
241
- $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
242
- $class = 'new' === $data[3] ? ' wpr-new-element' : '';
243
-
244
- echo '<div class="wpr-element'. esc_attr($class) .'">';
245
- echo '<div class="wpr-element-info">';
246
- echo '<h3>'. esc_html($title) .'</h3>';
247
- echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, 'on'), 'on', false ) .'>';
248
- echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
249
- echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
250
- echo '</div>';
251
- echo '</div>';
252
- }
253
- ?>
254
- </div>
255
-
256
- <div class="wpr-elements-heading">
257
- <h3><?php esc_html_e( 'WooCommerce Builder Widgets', 'wpr-addons' ); ?></h3>
258
- <p><?php esc_html_e( 'Product Archive Pages, Product Single Pages. Cart, Checkout and My Account Pages', 'wpr-addons' ); ?></p>
259
- <?php if (!class_exists('WooCommerce')) : ?>
260
- <p class='wpr-install-activate-woocommerce'><span class="dashicons dashicons-info-outline"></span> <?php esc_html_e( 'Install/Activate WooCommerce to use these widgets', 'wpr-addons' ); ?></p>
261
- <?php endif; ?>
262
- </div>
263
- <div class="wpr-elements">
264
- <?php
265
- $woocommerce_builder_modules = Utilities::get_woocommerce_builder_modules();
266
- $premium_woo_modules = [
267
- 'Product Filters' => ['product-filters-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-prodfilter-widgets-pro#purchasepro', '', 'pro'],
268
- 'Product Breadcrumbs' => ['product-breadcrumbs-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-breadcru-widgets-pro#purchasepro', '', 'pro'],
269
- 'Page My Account' => ['page-my-account-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-myacc-widgets-pro#purchasepro', '', 'pro'],
270
- 'Woo Category Grid' => ['woo-category-grid-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-catgrid-widgets-pro#purchasepro', '', 'pro'],
271
- ];
272
-
273
- foreach ( array_merge($woocommerce_builder_modules, $premium_woo_modules) as $title => $data ) {
274
- $slug = $data[0];
275
- $url = $data[1];
276
- $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[1];
277
- $class = 'new' === $data[3] ? 'wpr-new-element' : '';
278
- $class = ('pro' === $data[3] && !wpr_fs()->can_use_premium_code()) ? 'wpr-pro-element' : '';
279
- $default_value = class_exists( 'WooCommerce' ) ? 'on' : 'off';
280
-
281
- if ( 'wpr-pro-element' === $class ) {
282
- $default_value = 'off';
283
- $reff = '';
284
- }
285
-
286
- echo '<div class="wpr-element '. esc_attr($class) .'">';
287
- echo '<a href="'. esc_url($url . $reff) .'" target="_blank"></a>';
288
- echo '<div class="wpr-element-info">';
289
- echo '<h3>'. esc_html($title) .'</h3>';
290
- echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, $default_value), 'on', false ) .'>';
291
- echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
292
- // echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
293
- echo '</div>';
294
- echo '</div>';
295
- }
296
- ?>
297
- </div>
298
-
299
- <?php submit_button( '', 'wpr-options-button' ); ?>
300
-
301
- <?php elseif ( $active_tab == 'wpr_tab_settings' ) : ?>
302
-
303
- <?php
304
-
305
- // Settings
306
- settings_fields( 'wpr-settings' );
307
- do_settings_sections( 'wpr-settings' );
308
-
309
- ?>
310
-
311
- <div class="wpr-settings">
312
-
313
- <?php submit_button( '', 'wpr-options-button' ); ?>
314
-
315
- <div class="wpr-settings-group wpr-settings-group-woo">
316
- <h3 class="wpr-settings-group-title"><?php esc_html_e( 'WooCommerce', 'wpr-addons' ); ?></h3>
317
-
318
- <div class="wpr-settings-group-inner">
319
-
320
- <?php if ( !wpr_fs()->can_use_premium_code() ) : ?>
321
- <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-settings-woo-pro#purchasepro" class="wpr-settings-pro-overlay" target="_blank">
322
- <span class="dashicons dashicons-lock"></span>
323
- <span class="dashicons dashicons-unlock"></span>
324
- <span><?php esc_html_e( 'Upgrade to Pro', 'wpr-addons' ); ?></span>
325
- </a>
326
- <div class="wpr-setting">
327
- <h4>
328
- <span><?php esc_html_e( 'Shop Page: Products Per Page', 'wpr-addons' ); ?></span>
329
- <br>
330
- </h4>
331
- <input type="text" value="9">
332
- </div>
333
- <div class="wpr-setting">
334
- <h4>
335
- <span><?php esc_html_e( 'Product Category: Products Per Page', 'wpr-addons' ); ?></span>
336
- <br>
337
- </h4>
338
- <input type="text" value="9">
339
- </div>
340
- <div class="wpr-setting">
341
- <h4>
342
- <span><?php esc_html_e( 'Product Tag: Products Per Page', 'wpr-addons' ); ?></span>
343
- <br>
344
- </h4>
345
- <input type="text" value="9">
346
- </div>
347
- <?php else: ?>
348
- <?php do_action('wpr_woocommerce_settings'); ?>
349
- <?php endif; ?>
350
-
351
- </div>
352
-
353
- <div class="wpr-woo-template-info">
354
- <div class="wpr-woo-template-title">
355
- <h4>Royal Templates</h4>
356
- <span>Enable/Disable Royal addons Cart, Minicart, Notifications Templates, Product Lightbox</span>
357
- </div>
358
- <input type="checkbox" name="wpr_override_woo_templates" id="wpr_override_woo_templates" <?php echo checked( get_option('wpr_override_woo_templates', 'on'), 'on', false ); ?>>
359
- <label for="wpr_override_woo_templates"></label>
360
- </div>
361
-
362
- <div class="wpr-woo-template-info">
363
- <div class="wpr-woo-template-title">
364
- <h4>Product Image Zoom</h4>
365
- <span>Enable/Disable Image Zoom Effect on Woocommerce products</span>
366
- </div>
367
- <input type="checkbox" name="wpr_enable_product_image_zoom" id="wpr_enable_product_image_zoom" <?php echo checked( get_option('wpr_enable_product_image_zoom', 'on'), 'on', false ); ?>>
368
- <label for="wpr_enable_product_image_zoom"></label>
369
- </div>
370
-
371
- <div class="wpr-woo-template-info">
372
- <div class="wpr-woo-template-title">
373
- <h4>Product Slider Nav</h4>
374
- <span>Enable/Disable Navigation Arrows on Woocommerce products slider</span>
375
- </div>
376
- <input type="checkbox" name="wpr_enable_woo_flexslider_navigation" id="wpr_enable_woo_flexslider_navigation" <?php echo checked( get_option('wpr_enable_woo_flexslider_navigation', 'on'), 'on', false ); ?>>
377
- <label for="wpr_enable_woo_flexslider_navigation"></label>
378
- </div>
379
-
380
- </div>
381
-
382
- <div class="wpr-settings-group">
383
- <h3 class="wpr-settings-group-title"><?php esc_html_e( 'Integrations', 'wpr-addons' ); ?></h3>
384
-
385
- <div class="wpr-setting">
386
- <h4>
387
- <span><?php esc_html_e( 'Google Map API Key', 'wpr-addons' ); ?></span>
388
- <br>
389
- <a href="https://www.youtube.com/watch?v=O5cUoVpVUjU" target="_blank"><?php esc_html_e( 'How to get Google Map API Key?', 'wpr-addons' ); ?></a>
390
- </h4>
391
-
392
- <input type="text" name="wpr_google_map_api_key" id="wpr_google_map_api_key" value="<?php echo esc_attr(get_option('wpr_google_map_api_key')); ?>">
393
- </div>
394
-
395
- <div class="wpr-setting">
396
- <h4>
397
- <span><?php esc_html_e( 'MailChimp API Key', 'wpr-addons' ); ?></span>
398
- <br>
399
- <a href="https://mailchimp.com/help/about-api-keys/" target="_blank"><?php esc_html_e( 'How to get MailChimp API Key?', 'wpr-addons' ); ?></a>
400
- </h4>
401
-
402
- <input type="text" name="wpr_mailchimp_api_key" id="wpr_mailchimp_api_key" value="<?php echo esc_attr(get_option('wpr_mailchimp_api_key')); ?>">
403
- </div>
404
- </div>
405
-
406
- <div class="wpr-settings-group">
407
- <h3 class="wpr-settings-group-title"><?php esc_html_e( 'Lightbox', 'wpr-addons' ); ?></h3>
408
-
409
- <div class="wpr-setting">
410
- <h4><?php esc_html_e( 'Background Color', 'wpr-addons' ); ?></h4>
411
- <input type="text" name="wpr_lb_bg_color" id="wpr_lb_bg_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_bg_color','rgba(0,0,0,0.6)')); ?>">
412
- </div>
413
-
414
- <div class="wpr-setting">
415
- <h4><?php esc_html_e( 'Toolbar BG Color', 'wpr-addons' ); ?></h4>
416
- <input type="text" name="wpr_lb_toolbar_color" id="wpr_lb_toolbar_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_toolbar_color','rgba(0,0,0,0.8)')); ?>">
417
- </div>
418
-
419
- <div class="wpr-setting">
420
- <h4><?php esc_html_e( 'Caption BG Color', 'wpr-addons' ); ?></h4>
421
- <input type="text" name="wpr_lb_caption_color" id="wpr_lb_caption_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_caption_color','rgba(0,0,0,0.8)')); ?>">
422
- </div>
423
-
424
- <div class="wpr-setting">
425
- <h4><?php esc_html_e( 'Gallery BG Color', 'wpr-addons' ); ?></h4>
426
- <input type="text" name="wpr_lb_gallery_color" id="wpr_lb_gallery_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_gallery_color','#444444')); ?>">
427
- </div>
428
-
429
- <div class="wpr-setting">
430
- <h4><?php esc_html_e( 'Progress Bar Color', 'wpr-addons' ); ?></h4>
431
- <input type="text" name="wpr_lb_pb_color" id="wpr_lb_pb_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_pb_color','#a90707')); ?>">
432
- </div>
433
-
434
- <div class="wpr-setting">
435
- <h4><?php esc_html_e( 'UI Color', 'wpr-addons' ); ?></h4>
436
- <input type="text" name="wpr_lb_ui_color" id="wpr_lb_ui_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_color','#efefef')); ?>">
437
- </div>
438
-
439
- <div class="wpr-setting">
440
- <h4><?php esc_html_e( 'UI Hover Color', 'wpr-addons' ); ?></h4>
441
- <input type="text" name="wpr_lb_ui_hr_color" id="wpr_lb_ui_hr_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_hr_color','#ffffff')); ?>">
442
- </div>
443
-
444
- <div class="wpr-setting">
445
- <h4><?php esc_html_e( 'Text Color', 'wpr-addons' ); ?></h4>
446
- <input type="text" name="wpr_lb_text_color" id="wpr_lb_text_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_text_color','#efefef')); ?>">
447
- </div>
448
-
449
- <div class="wpr-setting">
450
- <h4><?php esc_html_e( 'UI Icon Size', 'wpr-addons' ); ?></h4>
451
- <input type="number" name="wpr_lb_icon_size" id="wpr_lb_icon_size" value="<?php echo esc_attr(get_option('wpr_lb_icon_size','20')); ?>">
452
- </div>
453
-
454
- <div class="wpr-setting">
455
- <h4><?php esc_html_e( 'Navigation Arrow Size', 'wpr-addons' ); ?></h4>
456
- <input type="number" name="wpr_lb_arrow_size" id="wpr_lb_arrow_size" value="<?php echo esc_attr(get_option('wpr_lb_arrow_size','35')); ?>">
457
- </div>
458
-
459
- <div class="wpr-setting">
460
- <h4><?php esc_html_e( 'Text Size', 'wpr-addons' ); ?></h4>
461
- <input type="number" name="wpr_lb_text_size" id="wpr_lb_text_size" value="<?php echo esc_attr(get_option('wpr_lb_text_size','14')); ?>">
462
- </div>
463
- </div>
464
-
465
- <?php submit_button( '', 'wpr-options-button' ); ?>
466
-
467
- </div>
468
-
469
- <?php elseif ( $active_tab == 'wpr_tab_extensions' ) :
470
-
471
- // Extensions
472
- settings_fields( 'wpr-extension-settings' );
473
- do_settings_sections( 'wpr-extension-settings' );
474
-
475
- global $new_allowed_options;
476
-
477
- // array of option names
478
- $option_names = $new_allowed_options[ 'wpr-extension-settings' ];
479
-
480
- echo '<div class="wpr-elements">';
481
-
482
- foreach ($option_names as $option_name) {
483
- $option_title = ucwords( preg_replace( '/-/i', ' ', preg_replace('/wpr-||-toggle/i', '', $option_name ) ));
484
-
485
- echo '<div class="wpr-element">';
486
- echo '<div class="wpr-element-info">';
487
- echo '<h3>'. esc_html($option_title) .'</h3>';
488
- echo '<input type="checkbox" name="'. esc_attr($option_name) .'" id="'. esc_attr($option_name) .'" '. checked( get_option(''. $option_name .'', 'on'), 'on', false ) .'>';
489
- echo '<label for="'. esc_attr($option_name) .'"></label>';
490
-
491
- if ( 'wpr-parallax-background' === $option_name ) {
492
- echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
493
- echo '<a href="https://www.youtube.com/watch?v=DcDeQ__lJbw" target="_blank">Watch Video Tutorial</a>';
494
- } elseif ( 'wpr-parallax-multi-layer' === $option_name ) {
495
- echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
496
- echo '<a href="https://youtu.be/DcDeQ__lJbw?t=121" target="_blank">Watch Video Tutorial</a>';
497
- } elseif ( 'wpr-particles' === $option_name ) {
498
- echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
499
- echo '<a href="https://www.youtube.com/watch?v=8OdnaoFSj94" target="_blank">Watch Video Tutorial</a>';
500
- } elseif ( 'wpr-sticky-section' === $option_name ) {
501
- echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
502
- echo '<a href="https://www.youtube.com/watch?v=at0CPKtklF0&t=375s" target="_blank">Watch Video Tutorial</a>';
503
- }
504
-
505
- // echo '<a href="https://royal-elementor-addons.com/elementor-particle-effects/?ref=rea-plugin-backend-extentions-prev">'. esc_html('View Extension Demo', 'wpr-addons') .'</a>';
506
- echo '</div>';
507
- echo '</div>';
508
- }
509
-
510
- echo '</div>';
511
-
512
- submit_button( '', 'wpr-options-button' );
513
-
514
- elseif ( $active_tab == 'wpr_tab_white_label' ) :
515
-
516
- do_action('wpr_white_label_tab_content');
517
-
518
- endif; ?>
519
-
520
- </form>
521
- </div>
522
-
523
- </div>
524
-
525
-
526
- <?php
527
-
528
- } // End wpr_addons_settings_page()
529
-
530
-
531
-
532
- // Add Support Sub Menu item that will redirect to wp.org
533
- function wpr_addons_add_support_menu() {
534
- add_submenu_page( 'wpr-addons', 'Support', 'Support', 'manage_options', 'wpr-support', 'wpr_addons_support_page', 99 );
535
- }
536
- add_action( 'admin_menu', 'wpr_addons_add_support_menu', 99 );
537
-
538
- function wpr_addons_support_page() {}
539
-
540
- function wpr_redirect_support_page() {
541
- ?>
542
- <script type="text/javascript">
543
- jQuery(document).ready( function($) {
544
- $( 'ul#adminmenu a[href*="page=wpr-support"]' ).attr('href', 'https://wordpress.org/support/plugin/royal-elementor-addons/').attr( 'target', '_blank' );
545
- });
546
- </script>
547
- <?php
548
- }
549
- add_action( 'admin_head', 'wpr_redirect_support_page' );
550
-
551
-
552
- // Add Upgrade Sub Menu item that will redirect to royal-elementor-addons.com
553
- function wpr_addons_add_upgrade_menu() {
554
- if ( defined('WPR_ADDONS_PRO_VERSION') ) return;
555
- add_submenu_page( 'wpr-addons', 'Upgrade', 'Upgrade', 'manage_options', 'wpr-upgrade', 'wpr_addons_upgrade_page', 99 );
556
- }
557
- add_action( 'admin_menu', 'wpr_addons_add_upgrade_menu', 99 );
558
-
559
- function wpr_addons_upgrade_page() {}
560
-
561
- function wpr_redirect_upgrade_page() {
562
- ?>
563
- <script type="text/javascript">
564
- jQuery(document).ready( function($) {
565
- $( 'ul#adminmenu a[href*="page=wpr-upgrade"]' ).attr('href', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-menu-upgrade-pro#purchasepro').attr( 'target', '_blank' );
566
- $( 'ul#adminmenu a[href*="#purchasepro"]' ).css('color', 'greenyellow');
567
- });
568
- </script>
569
- <?php
570
- }
571
  add_action( 'admin_head', 'wpr_redirect_upgrade_page' );
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ use WprAddons\Admin\Includes\WPR_Templates_Loop;
8
+ use WprAddonsPro\Admin\Wpr_White_Label;
9
+ use WprAddons\Classes\Utilities;
10
+
11
+ // Register Menus
12
+ function wpr_addons_add_admin_menu() {
13
+ $menu_icon = !empty(get_option('wpr_wl_plugin_logo')) ? 'dashicons-admin-generic' : 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOTciIGhlaWdodD0iNzUiIHZpZXdCb3g9IjAgMCA5NyA3NSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTAuMDM2NDA4NiAyMy4yODlDLTAuNTc1NDkgMTguNTIxIDYuNjg4NzMgMTYuMzY2NiA5LjU0OSAyMC40Njc4TDQyLjgzNjUgNjguMTk3MkM0NC45MTgxIDcxLjE4MiA0Mi40NDk0IDc1IDM4LjQzNzggNzVIMTEuMjc1NkM4LjY1NDc1IDc1IDYuNDUyNjQgNzMuMjg1NSA2LjE2MTcgNzEuMDE4NEwwLjAzNjQwODYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTk2Ljk2MzYgMjMuMjg5Qzk3LjU3NTUgMTguNTIxIDkwLjMxMTMgMTYuMzY2NiA4Ny40NTEgMjAuNDY3OEw1NC4xNjM1IDY4LjE5NzJDNTIuMDgxOCA3MS4xODIgNTQuNTUwNiA3NSA1OC41NjIyIDc1SDg1LjcyNDRDODguMzQ1MiA3NSA5MC41NDc0IDczLjI4NTUgOTAuODM4MyA3MS4wMTg0TDk2Ljk2MzYgMjMuMjg5WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTUzLjI0MTIgNC40ODUyN0M1My4yNDEyIC0wLjI3MDc2MSA0NS44NDg1IC0xLjc0ODAzIDQzLjQ2NTEgMi41MzE3NEw2LjY4OTkxIDY4LjU2NzdDNS4wMzM0OSA3MS41NDIxIDcuNTIyNzIgNzUgMTEuMzIwMyA3NUg0OC4wOTU1QzUwLjkzNzQgNzUgNTMuMjQxMiA3Mi45OTQ4IDUzLjI0MTIgNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTQzLjc1ODggNC40ODUyN0M0My43NTg4IC0wLjI3MDc2MSA1MS4xNTE1IC0xLjc0ODAzIDUzLjUzNDkgMi41MzE3NEw5MC4zMTAxIDY4LjU2NzdDOTEuOTY2NSA3MS41NDIxIDg5LjQ3NzMgNzUgODUuNjc5NyA3NUg0OC45MDQ1QzQ2LjA2MjYgNzUgNDMuNzU4OCA3Mi45OTQ4IDQzLjc1ODggNzAuNTIxMlY0LjQ4NTI3WiIgZmlsbD0id2hpdGUiLz4KPC9zdmc+Cg==';
14
+ add_menu_page( Utilities::get_plugin_name(), Utilities::get_plugin_name(), 'manage_options', 'wpr-addons', 'wpr_addons_settings_page', $menu_icon, '58.6' );
15
+
16
+ add_action( 'admin_init', 'wpr_register_addons_settings' );
17
+ add_filter( 'plugin_action_links_'. WPR_ADDONS_PLUGIN_BASE, 'wpr_settings_link' );
18
+ }
19
+ add_action( 'admin_menu', 'wpr_addons_add_admin_menu' );
20
+
21
+ // Add Settings page link to plugins screen
22
+ function wpr_settings_link( $links ) {
23
+ $settings_link = '<a href="admin.php?page=wpr-addons">Settings</a>';
24
+ array_push( $links, $settings_link );
25
+
26
+ if ( !is_plugin_installed('wpr-addons-pro/wpr-addons-pro.php') ) {
27
+ $links[] = '<a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-wpplugindashboard-upgrade-pro#purchasepro" style="color:#93003c;font-weight:700" target="_blank">' . esc_html__('Go Pro', 'wpr-addons') . '</a>';
28
+ }
29
+
30
+ return $links;
31
+ }
32
+
33
+ function is_plugin_installed($file) {
34
+ $installed_plugins = [];
35
+
36
+ foreach( get_plugins() as $slug => $plugin_info ) {
37
+ array_push($installed_plugins, $slug);
38
+ }
39
+
40
+ if ( in_array($file, $installed_plugins) ) {
41
+ return true;
42
+ } else {
43
+ return false;
44
+ }
45
+ }
46
+
47
+ // Register Settings
48
+ function wpr_register_addons_settings() {
49
+ // WooCommerce
50
+ register_setting( 'wpr-settings', 'wpr_override_woo_templates' );
51
+ register_setting( 'wpr-settings', 'wpr_enable_product_image_zoom' );
52
+ register_setting( 'wpr-settings', 'wpr_enable_woo_flexslider_navigation' );
53
+ register_setting( 'wpr-settings', 'wpr_woo_shop_ppp' );
54
+ register_setting( 'wpr-settings', 'wpr_woo_shop_cat_ppp' );
55
+ register_setting( 'wpr-settings', 'wpr_woo_shop_tag_ppp' );
56
+
57
+ // Integrations
58
+ register_setting( 'wpr-settings', 'wpr_google_map_api_key' );
59
+ register_setting( 'wpr-settings', 'wpr_mailchimp_api_key' );
60
+
61
+ // Lightbox
62
+ register_setting( 'wpr-settings', 'wpr_lb_bg_color' );
63
+ register_setting( 'wpr-settings', 'wpr_lb_toolbar_color' );
64
+ register_setting( 'wpr-settings', 'wpr_lb_caption_color' );
65
+ register_setting( 'wpr-settings', 'wpr_lb_gallery_color' );
66
+ register_setting( 'wpr-settings', 'wpr_lb_pb_color' );
67
+ register_setting( 'wpr-settings', 'wpr_lb_ui_color' );
68
+ register_setting( 'wpr-settings', 'wpr_lb_ui_hr_color' );
69
+ register_setting( 'wpr-settings', 'wpr_lb_text_color' );
70
+ register_setting( 'wpr-settings', 'wpr_lb_icon_size' );
71
+ register_setting( 'wpr-settings', 'wpr_lb_arrow_size' );
72
+ register_setting( 'wpr-settings', 'wpr_lb_text_size' );
73
+
74
+ // White Label
75
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_logo' );
76
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_name' );
77
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_desc' );
78
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_author' );
79
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_website' );
80
+ register_setting( 'wpr-wh-settings', 'wpr_wl_plugin_links' );
81
+ register_setting( 'wpr-wh-settings', 'wpr_wl_hide_elements_tab' );
82
+ register_setting( 'wpr-wh-settings', 'wpr_wl_hide_extensions_tab' );
83
+ register_setting( 'wpr-wh-settings', 'wpr_wl_hide_settings_tab' );
84
+ register_setting( 'wpr-wh-settings', 'wpr_wl_hide_white_label_tab' );
85
+
86
+ // Extensions
87
+ register_setting('wpr-extension-settings', 'wpr-particles');
88
+ register_setting('wpr-extension-settings', 'wpr-parallax-background');
89
+ register_setting('wpr-extension-settings', 'wpr-parallax-multi-layer');
90
+ register_setting('wpr-extension-settings', 'wpr-sticky-section');
91
+
92
+ // Element Toggle
93
+ register_setting( 'wpr-elements-settings', 'wpr-element-toggle-all', [ 'default' => 'on' ] );
94
+
95
+ // Widgets
96
+ foreach ( Utilities::get_registered_modules() as $title => $data ) {
97
+ $slug = $data[0];
98
+ register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
99
+ }
100
+
101
+ // Theme Builder
102
+ foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
103
+ $slug = $data[0];
104
+ register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
105
+ }
106
+
107
+
108
+ // WooCommerce Builder
109
+ foreach ( Utilities::get_woocommerce_builder_modules() as $title => $data ) {
110
+ $slug = $data[0];
111
+ register_setting( 'wpr-elements-settings', 'wpr-element-'. $slug, [ 'default' => 'on' ] );
112
+ }
113
+
114
+ }
115
+
116
+ function wpr_addons_settings_page() {
117
+
118
+ ?>
119
+
120
+ <div class="wrap wpr-settings-page-wrap">
121
+
122
+ <div class="wpr-settings-page-header">
123
+ <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
124
+ <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
125
+
126
+ <?php if ( empty(get_option('wpr_wl_plugin_links')) ) : ?>
127
+ <div class="wpr-preview-buttons">
128
+ <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-plugin-prev-btn#widgets" target="_blank" class="button wpr-options-button">
129
+ <span><?php echo esc_html__( 'View Plugin Demo', 'wpr-addons' ); ?></span>
130
+ <span class="dashicons dashicons-external"></span>
131
+ </a>
132
+
133
+ <a href="https://www.youtube.com/watch?v=rkYQfn3tUc0" class="wpr-options-button button" target="_blank">
134
+ <?php echo esc_html__( 'How to use Widgets', 'wpr-addons' ); ?>
135
+ <span class="dashicons dashicons-video-alt3"></span>
136
+ </a>
137
+
138
+ <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" class="wpr-options-button button" target="_blank">
139
+ <?php echo esc_html__( 'Request New Feature', 'wpr-addons' ); ?>
140
+ <span class="dashicons dashicons-star-empty"></span>
141
+ </a>
142
+ </div>
143
+ <?php endif; ?>
144
+ </div>
145
+
146
+ <div class="wpr-settings-page">
147
+ <form method="post" action="options.php">
148
+ <?php
149
+
150
+ // Active Tab
151
+ if ( empty(get_option('wpr_wl_hide_elements_tab')) ) {
152
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_elements';
153
+ } elseif ( empty(get_option('wpr_wl_hide_extensions_tab')) ) {
154
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_extensions';
155
+ } elseif ( empty(get_option('wpr_wl_hide_settings_tab')) ) {
156
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_settings';
157
+ } elseif ( empty(get_option('wpr_wl_hide_white_label_tab')) ) {
158
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_white_label';
159
+ }
160
+
161
+
162
+ // Render Create Templte Popup
163
+ WPR_Templates_Loop::render_create_template_popup();
164
+
165
+ ?>
166
+
167
+ <!-- Tabs -->
168
+ <div class="nav-tab-wrapper wpr-nav-tab-wrapper">
169
+ <?php if ( empty(get_option('wpr_wl_hide_elements_tab')) ) : ?>
170
+ <a href="?page=wpr-addons&tab=wpr_tab_elements" data-title="Elements" class="nav-tab <?php echo ($active_tab == 'wpr_tab_elements') ? 'nav-tab-active' : ''; ?>">
171
+ <?php esc_html_e( 'Widgets', 'wpr-addons' ); ?>
172
+ </a>
173
+ <?php endif; ?>
174
+
175
+ <?php if ( empty(get_option('wpr_wl_hide_extensions_tab')) ) : ?>
176
+ <a href="?page=wpr-addons&tab=wpr_tab_extensions" data-title="Extensions" class="nav-tab <?php echo ($active_tab == 'wpr_tab_extensions') ? 'nav-tab-active' : ''; ?>">
177
+ <?php esc_html_e( 'Extensions', 'wpr-addons' ); ?>
178
+ </a>
179
+ <?php endif; ?>
180
+
181
+ <?php if ( empty(get_option('wpr_wl_hide_settings_tab')) ) : ?>
182
+ <a href="?page=wpr-addons&tab=wpr_tab_settings" data-title="Settings" class="nav-tab <?php echo ($active_tab == 'wpr_tab_settings') ? 'nav-tab-active' : ''; ?>">
183
+ <?php esc_html_e( 'Settings', 'wpr-addons' ); ?>
184
+ </a>
185
+ <?php endif; ?>
186
+
187
+ <?php // White Label
188
+ echo !empty(get_option('wpr_wl_hide_white_label_tab')) ? '<div style="display: none;">' : '<div>';
189
+ do_action('wpr_white_label_tab');
190
+ echo '</div>';
191
+ ?>
192
+ </div>
193
+
194
+ <?php if ( $active_tab == 'wpr_tab_elements' ) : ?>
195
+
196
+ <?php
197
+
198
+ // Settings
199
+ settings_fields( 'wpr-elements-settings' );
200
+ do_settings_sections( 'wpr-elements-settings' );
201
+
202
+ ?>
203
+
204
+ <div class="wpr-elements-toggle">
205
+ <div>
206
+ <h3><?php esc_html_e( 'Toggle all Widgets', 'wpr-addons' ); ?></h3>
207
+ <input type="checkbox" name="wpr-element-toggle-all" id="wpr-element-toggle-all" <?php checked( get_option('wpr-element-toggle-all', 'on'), 'on', true ); ?>>
208
+ <label for="wpr-element-toggle-all"></label>
209
+ </div>
210
+ <p><?php esc_html_e( 'You can disable some widgets for faster page speed.', 'wpr-addons' ); ?></p>
211
+ </div>
212
+ <div class="wpr-elements">
213
+ <?php
214
+ foreach ( Utilities::get_registered_modules() as $title => $data ) {
215
+ $slug = $data[0];
216
+ $url = $data[1];
217
+ $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
218
+ $class = 'new' === $data[3] ? ' wpr-new-element' : '';
219
+
220
+ echo '<div class="wpr-element'. esc_attr($class) .'">';
221
+ echo '<div class="wpr-element-info">';
222
+ echo '<h3>'. esc_html($title) .'</h3>';
223
+ echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, 'on'), 'on', false ) .'>';
224
+ echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
225
+ echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
226
+ echo '</div>';
227
+ echo '</div>';
228
+ }
229
+ ?>
230
+ </div>
231
+
232
+ <div class="wpr-elements-heading">
233
+ <h3><?php esc_html_e( 'Theme Builder Widgets', 'wpr-addons' ); ?></h3>
234
+ <p><?php esc_html_e( 'Post (CPT) Archive Pages, Post (CPT) Single Pages', 'wpr-addons' ); ?></p>
235
+ </div>
236
+ <div class="wpr-elements">
237
+ <?php
238
+ foreach ( Utilities::get_theme_builder_modules() as $title => $data ) {
239
+ $slug = $data[0];
240
+ $url = $data[1];
241
+ $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[2];
242
+ $class = 'new' === $data[3] ? ' wpr-new-element' : '';
243
+
244
+ echo '<div class="wpr-element'. esc_attr($class) .'">';
245
+ echo '<div class="wpr-element-info">';
246
+ echo '<h3>'. esc_html($title) .'</h3>';
247
+ echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, 'on'), 'on', false ) .'>';
248
+ echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
249
+ echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
250
+ echo '</div>';
251
+ echo '</div>';
252
+ }
253
+ ?>
254
+ </div>
255
+
256
+ <div class="wpr-elements-heading">
257
+ <h3><?php esc_html_e( 'WooCommerce Builder Widgets', 'wpr-addons' ); ?></h3>
258
+ <p><?php esc_html_e( 'Product Archive Pages, Product Single Pages. Cart, Checkout and My Account Pages', 'wpr-addons' ); ?></p>
259
+ <?php if (!class_exists('WooCommerce')) : ?>
260
+ <p class='wpr-install-activate-woocommerce'><span class="dashicons dashicons-info-outline"></span> <?php esc_html_e( 'Install/Activate WooCommerce to use these widgets', 'wpr-addons' ); ?></p>
261
+ <?php endif; ?>
262
+ </div>
263
+ <div class="wpr-elements">
264
+ <?php
265
+ $woocommerce_builder_modules = Utilities::get_woocommerce_builder_modules();
266
+ $premium_woo_modules = [
267
+ 'Product Filters' => ['product-filters-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-prodfilter-widgets-pro#purchasepro', '', 'pro'],
268
+ 'Product Breadcrumbs' => ['product-breadcrumbs-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-breadcru-widgets-pro#purchasepro', '', 'pro'],
269
+ 'Page My Account' => ['page-my-account-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-myacc-widgets-pro#purchasepro', '', 'pro'],
270
+ 'Woo Category Grid' => ['woo-category-grid-pro', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-elements-woo-catgrid-widgets-pro#purchasepro', '', 'pro'],
271
+ ];
272
+
273
+ foreach ( array_merge($woocommerce_builder_modules, $premium_woo_modules) as $title => $data ) {
274
+ $slug = $data[0];
275
+ $url = $data[1];
276
+ $reff = '?ref=rea-plugin-backend-elements-widget-prev'. $data[1];
277
+ $class = 'new' === $data[3] ? 'wpr-new-element' : '';
278
+ $class = ('pro' === $data[3] && !wpr_fs()->can_use_premium_code()) ? 'wpr-pro-element' : '';
279
+ $default_value = class_exists( 'WooCommerce' ) ? 'on' : 'off';
280
+
281
+ if ( 'wpr-pro-element' === $class ) {
282
+ $default_value = 'off';
283
+ $reff = '';
284
+ }
285
+
286
+ echo '<div class="wpr-element '. esc_attr($class) .'">';
287
+ echo '<a href="'. esc_url($url . $reff) .'" target="_blank"></a>';
288
+ echo '<div class="wpr-element-info">';
289
+ echo '<h3>'. esc_html($title) .'</h3>';
290
+ echo '<input type="checkbox" name="wpr-element-'. esc_attr($slug) .'" id="wpr-element-'. esc_attr($slug) .'" '. checked( get_option('wpr-element-'. $slug, $default_value), 'on', false ) .'>';
291
+ echo '<label for="wpr-element-'. esc_attr($slug) .'"></label>';
292
+ // echo ( '' !== $url && empty(get_option('wpr_wl_plugin_links')) ) ? '<a href="'. esc_url($url . $reff) .'" target="_blank">'. esc_html__('View Widget Demo', 'wpr-addons') .'</a>' : '';
293
+ echo '</div>';
294
+ echo '</div>';
295
+ }
296
+ ?>
297
+ </div>
298
+
299
+ <?php submit_button( '', 'wpr-options-button' ); ?>
300
+
301
+ <?php elseif ( $active_tab == 'wpr_tab_settings' ) : ?>
302
+
303
+ <?php
304
+
305
+ // Settings
306
+ settings_fields( 'wpr-settings' );
307
+ do_settings_sections( 'wpr-settings' );
308
+
309
+ ?>
310
+
311
+ <div class="wpr-settings">
312
+
313
+ <?php submit_button( '', 'wpr-options-button' ); ?>
314
+
315
+ <div class="wpr-settings-group wpr-settings-group-woo">
316
+ <h3 class="wpr-settings-group-title"><?php esc_html_e( 'WooCommerce', 'wpr-addons' ); ?></h3>
317
+
318
+ <div class="wpr-settings-group-inner">
319
+
320
+ <?php if ( !wpr_fs()->can_use_premium_code() ) : ?>
321
+ <a href="https://royal-elementor-addons.com/?ref=rea-plugin-backend-settings-woo-pro#purchasepro" class="wpr-settings-pro-overlay" target="_blank">
322
+ <span class="dashicons dashicons-lock"></span>
323
+ <span class="dashicons dashicons-unlock"></span>
324
+ <span><?php esc_html_e( 'Upgrade to Pro', 'wpr-addons' ); ?></span>
325
+ </a>
326
+ <div class="wpr-setting">
327
+ <h4>
328
+ <span><?php esc_html_e( 'Shop Page: Products Per Page', 'wpr-addons' ); ?></span>
329
+ <br>
330
+ </h4>
331
+ <input type="text" value="9">
332
+ </div>
333
+ <div class="wpr-setting">
334
+ <h4>
335
+ <span><?php esc_html_e( 'Product Category: Products Per Page', 'wpr-addons' ); ?></span>
336
+ <br>
337
+ </h4>
338
+ <input type="text" value="9">
339
+ </div>
340
+ <div class="wpr-setting">
341
+ <h4>
342
+ <span><?php esc_html_e( 'Product Tag: Products Per Page', 'wpr-addons' ); ?></span>
343
+ <br>
344
+ </h4>
345
+ <input type="text" value="9">
346
+ </div>
347
+ <?php else: ?>
348
+ <?php do_action('wpr_woocommerce_settings'); ?>
349
+ <?php endif; ?>
350
+
351
+ </div>
352
+
353
+ <div class="wpr-woo-template-info">
354
+ <div class="wpr-woo-template-title">
355
+ <h4>Royal Templates</h4>
356
+ <span>Enable/Disable Royal addons Cart, Minicart, Notifications Templates, Product Lightbox</span>
357
+ </div>
358
+ <input type="checkbox" name="wpr_override_woo_templates" id="wpr_override_woo_templates" <?php echo checked( get_option('wpr_override_woo_templates', 'on'), 'on', false ); ?>>
359
+ <label for="wpr_override_woo_templates"></label>
360
+ </div>
361
+
362
+ <div class="wpr-woo-template-info">
363
+ <div class="wpr-woo-template-title">
364
+ <h4>Product Image Zoom</h4>
365
+ <span>Enable/Disable Image Zoom Effect on Woocommerce products</span>
366
+ </div>
367
+ <input type="checkbox" name="wpr_enable_product_image_zoom" id="wpr_enable_product_image_zoom" <?php echo checked( get_option('wpr_enable_product_image_zoom', 'on'), 'on', false ); ?>>
368
+ <label for="wpr_enable_product_image_zoom"></label>
369
+ </div>
370
+
371
+ <div class="wpr-woo-template-info">
372
+ <div class="wpr-woo-template-title">
373
+ <h4>Product Slider Nav</h4>
374
+ <span>Enable/Disable Navigation Arrows on Woocommerce products slider</span>
375
+ </div>
376
+ <input type="checkbox" name="wpr_enable_woo_flexslider_navigation" id="wpr_enable_woo_flexslider_navigation" <?php echo checked( get_option('wpr_enable_woo_flexslider_navigation', 'on'), 'on', false ); ?>>
377
+ <label for="wpr_enable_woo_flexslider_navigation"></label>
378
+ </div>
379
+
380
+ </div>
381
+
382
+ <div class="wpr-settings-group">
383
+ <h3 class="wpr-settings-group-title"><?php esc_html_e( 'Integrations', 'wpr-addons' ); ?></h3>
384
+
385
+ <div class="wpr-setting">
386
+ <h4>
387
+ <span><?php esc_html_e( 'Google Map API Key', 'wpr-addons' ); ?></span>
388
+ <br>
389
+ <a href="https://www.youtube.com/watch?v=O5cUoVpVUjU" target="_blank"><?php esc_html_e( 'How to get Google Map API Key?', 'wpr-addons' ); ?></a>
390
+ </h4>
391
+
392
+ <input type="text" name="wpr_google_map_api_key" id="wpr_google_map_api_key" value="<?php echo esc_attr(get_option('wpr_google_map_api_key')); ?>">
393
+ </div>
394
+
395
+ <div class="wpr-setting">
396
+ <h4>
397
+ <span><?php esc_html_e( 'MailChimp API Key', 'wpr-addons' ); ?></span>
398
+ <br>
399
+ <a href="https://mailchimp.com/help/about-api-keys/" target="_blank"><?php esc_html_e( 'How to get MailChimp API Key?', 'wpr-addons' ); ?></a>
400
+ </h4>
401
+
402
+ <input type="text" name="wpr_mailchimp_api_key" id="wpr_mailchimp_api_key" value="<?php echo esc_attr(get_option('wpr_mailchimp_api_key')); ?>">
403
+ </div>
404
+ </div>
405
+
406
+ <div class="wpr-settings-group">
407
+ <h3 class="wpr-settings-group-title"><?php esc_html_e( 'Lightbox', 'wpr-addons' ); ?></h3>
408
+
409
+ <div class="wpr-setting">
410
+ <h4><?php esc_html_e( 'Background Color', 'wpr-addons' ); ?></h4>
411
+ <input type="text" name="wpr_lb_bg_color" id="wpr_lb_bg_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_bg_color','rgba(0,0,0,0.6)')); ?>">
412
+ </div>
413
+
414
+ <div class="wpr-setting">
415
+ <h4><?php esc_html_e( 'Toolbar BG Color', 'wpr-addons' ); ?></h4>
416
+ <input type="text" name="wpr_lb_toolbar_color" id="wpr_lb_toolbar_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_toolbar_color','rgba(0,0,0,0.8)')); ?>">
417
+ </div>
418
+
419
+ <div class="wpr-setting">
420
+ <h4><?php esc_html_e( 'Caption BG Color', 'wpr-addons' ); ?></h4>
421
+ <input type="text" name="wpr_lb_caption_color" id="wpr_lb_caption_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_caption_color','rgba(0,0,0,0.8)')); ?>">
422
+ </div>
423
+
424
+ <div class="wpr-setting">
425
+ <h4><?php esc_html_e( 'Gallery BG Color', 'wpr-addons' ); ?></h4>
426
+ <input type="text" name="wpr_lb_gallery_color" id="wpr_lb_gallery_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_gallery_color','#444444')); ?>">
427
+ </div>
428
+
429
+ <div class="wpr-setting">
430
+ <h4><?php esc_html_e( 'Progress Bar Color', 'wpr-addons' ); ?></h4>
431
+ <input type="text" name="wpr_lb_pb_color" id="wpr_lb_pb_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_pb_color','#a90707')); ?>">
432
+ </div>
433
+
434
+ <div class="wpr-setting">
435
+ <h4><?php esc_html_e( 'UI Color', 'wpr-addons' ); ?></h4>
436
+ <input type="text" name="wpr_lb_ui_color" id="wpr_lb_ui_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_color','#efefef')); ?>">
437
+ </div>
438
+
439
+ <div class="wpr-setting">
440
+ <h4><?php esc_html_e( 'UI Hover Color', 'wpr-addons' ); ?></h4>
441
+ <input type="text" name="wpr_lb_ui_hr_color" id="wpr_lb_ui_hr_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_ui_hr_color','#ffffff')); ?>">
442
+ </div>
443
+
444
+ <div class="wpr-setting">
445
+ <h4><?php esc_html_e( 'Text Color', 'wpr-addons' ); ?></h4>
446
+ <input type="text" name="wpr_lb_text_color" id="wpr_lb_text_color" data-alpha="true" value="<?php echo esc_attr(get_option('wpr_lb_text_color','#efefef')); ?>">
447
+ </div>
448
+
449
+ <div class="wpr-setting">
450
+ <h4><?php esc_html_e( 'UI Icon Size', 'wpr-addons' ); ?></h4>
451
+ <input type="number" name="wpr_lb_icon_size" id="wpr_lb_icon_size" value="<?php echo esc_attr(get_option('wpr_lb_icon_size','20')); ?>">
452
+ </div>
453
+
454
+ <div class="wpr-setting">
455
+ <h4><?php esc_html_e( 'Navigation Arrow Size', 'wpr-addons' ); ?></h4>
456
+ <input type="number" name="wpr_lb_arrow_size" id="wpr_lb_arrow_size" value="<?php echo esc_attr(get_option('wpr_lb_arrow_size','35')); ?>">
457
+ </div>
458
+
459
+ <div class="wpr-setting">
460
+ <h4><?php esc_html_e( 'Text Size', 'wpr-addons' ); ?></h4>
461
+ <input type="number" name="wpr_lb_text_size" id="wpr_lb_text_size" value="<?php echo esc_attr(get_option('wpr_lb_text_size','14')); ?>">
462
+ </div>
463
+ </div>
464
+
465
+ <?php submit_button( '', 'wpr-options-button' ); ?>
466
+
467
+ </div>
468
+
469
+ <?php elseif ( $active_tab == 'wpr_tab_extensions' ) :
470
+
471
+ // Extensions
472
+ settings_fields( 'wpr-extension-settings' );
473
+ do_settings_sections( 'wpr-extension-settings' );
474
+
475
+ global $new_allowed_options;
476
+
477
+ // array of option names
478
+ $option_names = $new_allowed_options[ 'wpr-extension-settings' ];
479
+
480
+ echo '<div class="wpr-elements">';
481
+
482
+ foreach ($option_names as $option_name) {
483
+ $option_title = ucwords( preg_replace( '/-/i', ' ', preg_replace('/wpr-||-toggle/i', '', $option_name ) ));
484
+
485
+ echo '<div class="wpr-element">';
486
+ echo '<div class="wpr-element-info">';
487
+ echo '<h3>'. esc_html($option_title) .'</h3>';
488
+ echo '<input type="checkbox" name="'. esc_attr($option_name) .'" id="'. esc_attr($option_name) .'" '. checked( get_option(''. $option_name .'', 'on'), 'on', false ) .'>';
489
+ echo '<label for="'. esc_attr($option_name) .'"></label>';
490
+
491
+ if ( 'wpr-parallax-background' === $option_name ) {
492
+ echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
493
+ echo '<a href="https://www.youtube.com/watch?v=DcDeQ__lJbw" target="_blank">Watch Video Tutorial</a>';
494
+ } elseif ( 'wpr-parallax-multi-layer' === $option_name ) {
495
+ echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
496
+ echo '<a href="https://youtu.be/DcDeQ__lJbw?t=121" target="_blank">Watch Video Tutorial</a>';
497
+ } elseif ( 'wpr-particles' === $option_name ) {
498
+ echo '<br><span>Tip: Edit any Section > Navigate to Style tab</span>';
499
+ echo '<a href="https://www.youtube.com/watch?v=8OdnaoFSj94" target="_blank">Watch Video Tutorial</a>';
500
+ } elseif ( 'wpr-sticky-section' === $option_name ) {
501
+ echo '<br><span>Tip: Edit any Section > Navigate to Advanced tab</span>';
502
+ echo '<a href="https://www.youtube.com/watch?v=at0CPKtklF0&t=375s" target="_blank">Watch Video Tutorial</a>';
503
+ }
504
+
505
+ // echo '<a href="https://royal-elementor-addons.com/elementor-particle-effects/?ref=rea-plugin-backend-extentions-prev">'. esc_html('View Extension Demo', 'wpr-addons') .'</a>';
506
+ echo '</div>';
507
+ echo '</div>';
508
+ }
509
+
510
+ echo '</div>';
511
+
512
+ submit_button( '', 'wpr-options-button' );
513
+
514
+ elseif ( $active_tab == 'wpr_tab_white_label' ) :
515
+
516
+ do_action('wpr_white_label_tab_content');
517
+
518
+ endif; ?>
519
+
520
+ </form>
521
+ </div>
522
+
523
+ </div>
524
+
525
+
526
+ <?php
527
+
528
+ } // End wpr_addons_settings_page()
529
+
530
+
531
+
532
+ // Add Support Sub Menu item that will redirect to wp.org
533
+ function wpr_addons_add_support_menu() {
534
+ add_submenu_page( 'wpr-addons', 'Support', 'Support', 'manage_options', 'wpr-support', 'wpr_addons_support_page', 99 );
535
+ }
536
+ add_action( 'admin_menu', 'wpr_addons_add_support_menu', 99 );
537
+
538
+ function wpr_addons_support_page() {}
539
+
540
+ function wpr_redirect_support_page() {
541
+ ?>
542
+ <script type="text/javascript">
543
+ jQuery(document).ready( function($) {
544
+ $( 'ul#adminmenu a[href*="page=wpr-support"]' ).attr('href', 'https://wordpress.org/support/plugin/royal-elementor-addons/').attr( 'target', '_blank' );
545
+ });
546
+ </script>
547
+ <?php
548
+ }
549
+ add_action( 'admin_head', 'wpr_redirect_support_page' );
550
+
551
+
552
+ // Add Upgrade Sub Menu item that will redirect to royal-elementor-addons.com
553
+ function wpr_addons_add_upgrade_menu() {
554
+ if ( defined('WPR_ADDONS_PRO_VERSION') ) return;
555
+ add_submenu_page( 'wpr-addons', 'Upgrade', 'Upgrade', 'manage_options', 'wpr-upgrade', 'wpr_addons_upgrade_page', 99 );
556
+ }
557
+ add_action( 'admin_menu', 'wpr_addons_add_upgrade_menu', 99 );
558
+
559
+ function wpr_addons_upgrade_page() {}
560
+
561
+ function wpr_redirect_upgrade_page() {
562
+ ?>
563
+ <script type="text/javascript">
564
+ jQuery(document).ready( function($) {
565
+ $( 'ul#adminmenu a[href*="page=wpr-upgrade"]' ).attr('href', 'https://royal-elementor-addons.com/?ref=rea-plugin-backend-menu-upgrade-pro#purchasepro').attr( 'target', '_blank' );
566
+ $( 'ul#adminmenu a[href*="#purchasepro"]' ).css('color', 'greenyellow');
567
+ });
568
+ </script>
569
+ <?php
570
+ }
571
  add_action( 'admin_head', 'wpr_redirect_upgrade_page' );
admin/popups.php CHANGED
@@ -1,87 +1,87 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- use WprAddons\Admin\Includes\WPR_Templates_Loop;
8
- use WprAddons\Classes\Utilities;
9
-
10
- // Register Menus
11
- function wpr_addons_add_popups_menu() {
12
- add_submenu_page( 'wpr-addons', 'Popups', 'Popups', 'manage_options', 'wpr-popups', 'wpr_addons_popups_page' );
13
- }
14
- add_action( 'admin_menu', 'wpr_addons_add_popups_menu' );
15
-
16
- function wpr_addons_popups_page() {
17
-
18
- ?>
19
-
20
- <div class="wrap wpr-settings-page-wrap">
21
-
22
- <div class="wpr-settings-page-header">
23
- <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
24
- <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
25
-
26
- <!-- Custom Template -->
27
- <div class="wpr-preview-buttons">
28
- <div class="wpr-user-template">
29
- <span><?php esc_html_e( 'Create Template', 'wpr-addons' ); ?></span>
30
- <span class="plus-icon">+</span>
31
- </div>
32
-
33
- <a href="https://www.youtube.com/watch?v=TbKTNpuXM68" class="wpr-options-button button" target="_blank" style="padding: 10px 22px;">
34
- <?php echo esc_html__( 'How to use Popups', 'wpr-addons' ); ?>
35
- <span class="dashicons dashicons-video-alt3"></span>
36
- </a>
37
-
38
- <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" class="wpr-options-button button" target="_blank" style="padding: 8px 22px;">
39
- <?php echo esc_html__( 'Request New Feature', 'wpr-addons' ); ?>
40
- <span class="dashicons dashicons-star-empty"></span>
41
- </a>
42
- </div>
43
- </div>
44
-
45
- <div class="wpr-settings-page">
46
- <form method="post" action="options.php">
47
- <?php
48
-
49
- // Active Tab
50
- $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_popups';
51
-
52
- ?>
53
-
54
- <!-- Template ID Holder -->
55
- <input type="hidden" name="wpr_template" id="wpr_template" value="">
56
-
57
- <!-- Conditions Popup -->
58
- <?php WPR_Templates_Loop::render_conditions_popup(); ?>
59
-
60
- <!-- Create Templte Popup -->
61
- <?php WPR_Templates_Loop::render_create_template_popup(); ?>
62
-
63
- <!-- Tabs -->
64
- <div class="nav-tab-wrapper wpr-nav-tab-wrapper">
65
- <a href="?page=wpr-theme-builder&tab=wpr_tab_popups" data-title="popup" class="nav-tab <?php echo ($active_tab == 'wpr_tab_popups') ? 'nav-tab-active' : ''; ?>">
66
- <?php esc_html_e( 'Popups', 'wpr-addons' ); ?>
67
- </a>
68
- </div>
69
-
70
- <?php if ( $active_tab == 'wpr_tab_popups' ) : ?>
71
-
72
- <!-- Save Conditions -->
73
- <input type="hidden" name="wpr_popup_conditions" id="wpr_popup_conditions" value="<?php echo esc_attr(get_option('wpr_popup_conditions', '[]')); ?>">
74
-
75
- <?php WPR_Templates_Loop::render_theme_builder_templates( 'popup' ); ?>
76
-
77
- <?php endif; ?>
78
-
79
- </form>
80
- </div>
81
-
82
- </div>
83
-
84
-
85
- <?php
86
-
87
  } // End wpr_addons_popups_page()
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ use WprAddons\Admin\Includes\WPR_Templates_Loop;
8
+ use WprAddons\Classes\Utilities;
9
+
10
+ // Register Menus
11
+ function wpr_addons_add_popups_menu() {
12
+ add_submenu_page( 'wpr-addons', 'Popups', 'Popups', 'manage_options', 'wpr-popups', 'wpr_addons_popups_page' );
13
+ }
14
+ add_action( 'admin_menu', 'wpr_addons_add_popups_menu' );
15
+
16
+ function wpr_addons_popups_page() {
17
+
18
+ ?>
19
+
20
+ <div class="wrap wpr-settings-page-wrap">
21
+
22
+ <div class="wpr-settings-page-header">
23
+ <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
24
+ <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
25
+
26
+ <!-- Custom Template -->
27
+ <div class="wpr-preview-buttons">
28
+ <div class="wpr-user-template">
29
+ <span><?php esc_html_e( 'Create Template', 'wpr-addons' ); ?></span>
30
+ <span class="plus-icon">+</span>
31
+ </div>
32
+
33
+ <a href="https://www.youtube.com/watch?v=TbKTNpuXM68" class="wpr-options-button button" target="_blank" style="padding: 10px 22px;">
34
+ <?php echo esc_html__( 'How to use Popups', 'wpr-addons' ); ?>
35
+ <span class="dashicons dashicons-video-alt3"></span>
36
+ </a>
37
+
38
+ <a href="https://royaladdons.frill.co/b/6m4d5qm4/feature-ideas" class="wpr-options-button button" target="_blank" style="padding: 8px 22px;">
39
+ <?php echo esc_html__( 'Request New Feature', 'wpr-addons' ); ?>
40
+ <span class="dashicons dashicons-star-empty"></span>
41
+ </a>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="wpr-settings-page">
46
+ <form method="post" action="options.php">
47
+ <?php
48
+
49
+ // Active Tab
50
+ $active_tab = isset( $_GET['tab'] ) ? sanitize_text_field( wp_unslash( $_GET['tab'] ) ) : 'wpr_tab_popups';
51
+
52
+ ?>
53
+
54
+ <!-- Template ID Holder -->
55
+ <input type="hidden" name="wpr_template" id="wpr_template" value="">
56
+
57
+ <!-- Conditions Popup -->
58
+ <?php WPR_Templates_Loop::render_conditions_popup(); ?>
59
+
60
+ <!-- Create Templte Popup -->
61
+ <?php WPR_Templates_Loop::render_create_template_popup(); ?>
62
+
63
+ <!-- Tabs -->
64
+ <div class="nav-tab-wrapper wpr-nav-tab-wrapper">
65
+ <a href="?page=wpr-theme-builder&tab=wpr_tab_popups" data-title="popup" class="nav-tab <?php echo ($active_tab == 'wpr_tab_popups') ? 'nav-tab-active' : ''; ?>">
66
+ <?php esc_html_e( 'Popups', 'wpr-addons' ); ?>
67
+ </a>
68
+ </div>
69
+
70
+ <?php if ( $active_tab == 'wpr_tab_popups' ) : ?>
71
+
72
+ <!-- Save Conditions -->
73
+ <input type="hidden" name="wpr_popup_conditions" id="wpr_popup_conditions" value="<?php echo esc_attr(get_option('wpr_popup_conditions', '[]')); ?>">
74
+
75
+ <?php WPR_Templates_Loop::render_theme_builder_templates( 'popup' ); ?>
76
+
77
+ <?php endif; ?>
78
+
79
+ </form>
80
+ </div>
81
+
82
+ </div>
83
+
84
+
85
+ <?php
86
+
87
  } // End wpr_addons_popups_page()
admin/premade-blocks.php CHANGED
@@ -1,39 +1,39 @@
1
- <?php
2
-
3
- if ( ! defined( 'ABSPATH' ) ) {
4
- exit; // Exit if accessed directly.
5
- }
6
-
7
- use WprAddons\Admin\Templates\WPR_Templates_Data;
8
- use WprAddons\Admin\Templates\WPR_Templates_Library_Blocks;
9
- use WprAddons\Classes\Utilities;
10
- use Elementor\Plugin;
11
-
12
- // Register Menus
13
- function wpr_addons_add_premade_blocks_menu() {
14
- add_submenu_page( 'wpr-addons', 'Premade Blocks', 'Premade Blocks', 'manage_options', 'wpr-premade-blocks', 'wpr_addons_premade_blocks_page' );
15
- }
16
- add_action( 'admin_menu', 'wpr_addons_add_premade_blocks_menu' );
17
-
18
- /**
19
- ** Render Premade Blocks Page
20
- */
21
- function wpr_addons_premade_blocks_page() {
22
-
23
- ?>
24
-
25
- <div class="wpr-premade-blocks-page">
26
-
27
- <div class="wpr-settings-page-header">
28
- <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
29
- <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
30
- </div>
31
-
32
- <?php WPR_Templates_Library_Blocks::render_library_templates_blocks(); ?>
33
-
34
- </div>
35
-
36
-
37
- <?php
38
-
39
- } // End wpr_addons_premade_blocks_page()
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit; // Exit if accessed directly.
5
+ }
6
+
7
+ use WprAddons\Admin\Templates\WPR_Templates_Data;
8
+ use WprAddons\Admin\Templates\WPR_Templates_Library_Blocks;
9
+ use WprAddons\Classes\Utilities;
10
+ use Elementor\Plugin;
11
+
12
+ // Register Menus
13
+ function wpr_addons_add_premade_blocks_menu() {
14
+ add_submenu_page( 'wpr-addons', 'Premade Blocks', 'Premade Blocks', 'manage_options', 'wpr-premade-blocks', 'wpr_addons_premade_blocks_page' );
15
+ }
16
+ add_action( 'admin_menu', 'wpr_addons_add_premade_blocks_menu' );
17
+
18
+ /**
19
+ ** Render Premade Blocks Page
20
+ */
21
+ function wpr_addons_premade_blocks_page() {
22
+
23
+ ?>
24
+
25
+ <div class="wpr-premade-blocks-page">
26
+
27
+ <div class="wpr-settings-page-header">
28
+ <h1><?php echo esc_html(Utilities::get_plugin_name(true)); ?></h1>
29
+ <p><?php esc_html_e( 'The most powerful Elementor Addons in the universe.', 'wpr-addons' ); ?></p>
30
+ </div>
31
+
32
+ <?php WPR_Templates_Library_Blocks::render_library_templates_blocks(); ?>
33
+
34
+ </div>
35
+
36
+
37
+ <?php
38
+
39
+ } // End wpr_addons_premade_blocks_page()
admin/templates/views/oceanwp/class-oceanwp-compat.php CHANGED
@@ -1,72 +1,72 @@
1
- <?php
2
-
3
- use WprAddons\Admin\Includes\WPR_Render_Templates;
4
-
5
- /**
6
- * OceanWP theme compatibility.
7
- */
8
- class Wpr_OceanWP_Compat {
9
-
10
- /**
11
- * Instance of Wpr_OceanWP_Compat.
12
- *
13
- * @var Wpr_OceanWP_Compat
14
- */
15
- private static $instance;
16
-
17
- /**
18
- * WPR_Render_Templates() Class
19
- */
20
- private $render_templates;
21
-
22
- /**
23
- * Initiator
24
- */
25
- public static function instance() {
26
- if ( ! isset( self::$instance ) ) {
27
- self::$instance = new Wpr_OceanWP_Compat();
28
-
29
- add_action( 'wp', [ self::$instance, 'hooks' ] );
30
- }
31
-
32
- return self::$instance;
33
- }
34
-
35
- /**
36
- * Run all the Actions / Filters.
37
- */
38
- public function hooks() {
39
- $this->render_templates = new WPR_Render_Templates( true );
40
-
41
- if ( $this->render_templates->is_template_available('header') ) {
42
- add_action( 'template_redirect', [ $this, 'setup_header' ], 10 );
43
- add_action( 'ocean_header', [$this->render_templates, 'replace_header'] );
44
- add_action( 'elementor/page_templates/canvas/before_content', [ $this->render_templates, 'add_canvas_header' ] );
45
- }
46
-
47
- if ( $this->render_templates->is_template_available('footer') ) {
48
- add_action( 'template_redirect', [ $this, 'setup_footer' ], 10 );
49
- add_action( 'ocean_footer', [$this->render_templates, 'replace_footer'] );
50
- add_action( 'elementor/page_templates/canvas/after_content', [ $this->render_templates, 'add_canvas_footer' ] );
51
- }
52
- }
53
-
54
- /**
55
- * Disable header from the theme.
56
- */
57
- public function setup_header() {
58
- remove_action( 'ocean_top_bar', 'oceanwp_top_bar_template' );
59
- remove_action( 'ocean_header', 'oceanwp_header_template' );
60
- remove_action( 'ocean_page_header', 'oceanwp_page_header_template' );
61
- }
62
-
63
- /**
64
- * Disable footer from the theme.
65
- */
66
- public function setup_footer() {
67
- remove_action( 'ocean_footer', 'oceanwp_footer_template' );
68
- }
69
-
70
- }
71
-
72
- Wpr_OceanWP_Compat::instance();
1
+ <?php
2
+
3
+ use WprAddons\Admin\Includes\WPR_Render_Templates;
4
+
5
+ /**
6
+ * OceanWP theme compatibility.
7
+ */
8
+ class Wpr_OceanWP_Compat {
9
+
10
+ /**
11
+ * Instance of Wpr_OceanWP_Compat.
12
+ *
13
+ * @var Wpr_OceanWP_Compat
14
+ */
15
+ private static $instance;
16
+
17
+ /**
18
+ * WPR_Render_Templates() Class
19
+ */
20
+ private $render_templates;
21
+
22
+ /**
23
+ * Initiator
24
+ */
25
+ public static function instance() {
26
+ if ( ! isset( self::$instance ) ) {
27
+ self::$instance = new Wpr_OceanWP_Compat();
28
+
29
+ add_action( 'wp', [ self::$instance, 'hooks' ] );
30
+ }
31
+
32
+ return self::$instance;
33
+ }
34
+
35
+ /**
36
+ * Run all the Actions / Filters.
37
+ */
38
+ public function hooks() {
39
+ $this->render_templates = new WPR_Render_Templates( true );
40
+
41
+ if ( $this->render_templates->is_template_available('header') ) {
42
+ add_action( 'template_redirect', [ $this, 'setup_header' ], 10 );
43
+ add_action( 'ocean_header', [$this->render_templates, 'replace_header'] );
44
+ add_action( 'elementor/page_templates/canvas/before_content', [ $this->render_templates, 'add_canvas_header' ] );
45
+ }
46
+
47
+ if ( $this->render_templates->is_template_available('footer') ) {
48
+ add_action( 'template_redirect', [ $this, 'setup_footer' ], 10 );
49
+ add_action( 'ocean_footer', [$this->render_templates, 'replace_footer'] );
50
+ add_action( 'elementor/page_templates/canvas/after_content', [ $this->render_templates, 'add_canvas_footer' ] );
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Disable header from the theme.
56
+ */
57
+ public function setup_header() {
58
+ remove_action( 'ocean_top_bar', 'oceanwp_top_bar_template' );
59
+ remove_action( 'ocean_header', 'oceanwp_header_template' );
60
+ remove_action( 'ocean_page_header', 'oceanwp_page_header_template' );
61
+ }
62
+
63
+ /**
64
+ * Disable footer from the theme.
65
+ */
66
+ public function setup_footer() {
67
+ remove_action( 'ocean_footer', 'oceanwp_footer_template' );
68
+ }
69
+
70
+ }
71
+
72
+ Wpr_OceanWP_Compat::instance();
admin/templates/views/royal/theme-footer-royal.php CHANGED
@@ -1,24 +1,24 @@
1
- <?php
2
- use WprAddons\Admin\Includes\WPR_Conditions_Manager;
3
- use WprAddons\Classes\Utilities;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- $conditions = json_decode( get_option('wpr_footer_conditions', '[]'), true );
10
- $template_slug = WPR_Conditions_Manager::header_footer_display_conditions($conditions);
11
-
12
- // Render WPR Header
13
- Utilities::render_elementor_template($template_slug);
14
-
15
- wp_footer();
16
-
17
- // Royal themes compatibility
18
- echo '</div>'; // .page-content
19
- echo '</div>'; // #page-wrap
20
-
21
- ?>
22
-
23
- </body>
24
  </html>
1
+ <?php
2
+ use WprAddons\Admin\Includes\WPR_Conditions_Manager;
3
+ use WprAddons\Classes\Utilities;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ $conditions = json_decode( get_option('wpr_footer_conditions', '[]'), true );
10
+ $template_slug = WPR_Conditions_Manager::header_footer_display_conditions($conditions);
11
+
12
+ // Render WPR Header
13
+ Utilities::render_elementor_template($template_slug);
14
+
15
+ wp_footer();
16
+
17
+ // Royal themes compatibility
18
+ echo '</div>'; // .page-content
19
+ echo '</div>'; // #page-wrap
20
+
21
+ ?>
22
+
23
+ </body>
24
  </html>
admin/templates/views/storefront/class-storefront-compat.php CHANGED
@@ -1,105 +1,105 @@
1
- <?php
2
-
3
- use WprAddons\Admin\Includes\WPR_Render_Templates;
4
-
5
- /**
6
- * Astra theme compatibility.
7
- */
8
- class Wpr_Storefront_Compat {
9
-
10
- /**
11
- * Instance of Wpr_Storefront_Compat.
12
- *
13
- * @var Wpr_Storefront_Compat
14
- */
15
- private static $instance;
16
-
17
- /**
18
- * WPR_Render_Templates() Class
19
- */
20
- private $render_templates;
21
-
22
- /**
23
- * Initiator
24
- */
25
- public static function instance() {
26
- if ( ! isset( self::$instance ) ) {
27
- self::$instance = new Wpr_Storefront_Compat();
28
-
29
- add_action( 'wp', [ self::$instance, 'hooks' ] );
30
- }
31
-
32
- return self::$instance;
33
- }
34
-
35
- /**
36
- * Run all the Actions / Filters.
37
- */
38
- public function hooks() {
39
- $this->render_templates = new WPR_Render_Templates( true );
40
-
41
- if ( $this->render_templates->is_template_available('header') ) {
42
- add_action( 'template_redirect', [ $this, 'setup_header' ], 10 );
43
- add_action( 'storefront_before_header', [$this->render_templates, 'replace_header'], 500 );
44
- add_action( 'elementor/page_templates/canvas/before_content', [ $this->render_templates, 'add_canvas_header' ] );
45
- }
46
-
47
- if ( $this->render_templates->is_template_available('footer') ) {
48
- add_action( 'template_redirect', [ $this, 'setup_footer' ], 10 );
49
- add_action( 'storefront_after_footer', [$this->render_templates, 'replace_footer'], 500 );
50
- add_action( 'elementor/page_templates/canvas/after_content', [ $this->render_templates, 'add_canvas_footer' ] );
51
- }
52
-
53
- if ( $this->render_templates->is_template_available('header') || $this->render_templates->is_template_available('footer') ) {
54
- add_action( 'wp_head', [ $this, 'styles' ] );
55
- }
56
- }
57
-
58
- /**
59
- * Add inline CSS to hide empty divs for header and footer in storefront
60
- *
61
- * @since 1.2.0
62
- * @return void
63
- */
64
- public function styles() {
65
- $css = '<style id="wpr-disable-storefront-hf">';
66
-
67
- if ( $this->render_templates->is_template_available('header') ) {
68
- $css .= '.site-header {
69
- display: none;
70
- }';
71
- }
72
-
73
- if ( $this->render_templates->is_template_available('footer') ) {
74
- $css .= '.site-footer {
75
- display: none;
76
- }';
77
- }
78
-
79
- $css .= '</style>';
80
-
81
- // Echo plain CSS (no user input or variables)
82
- echo ''. $css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
83
- }
84
-
85
- /**
86
- * Disable header from the theme.
87
- */
88
- public function setup_header() {
89
- for ( $priority = 0; $priority < 200; $priority ++ ) {
90
- remove_all_actions( 'storefront_header', $priority );
91
- }
92
- }
93
-
94
- /**
95
- * Disable footer from the theme.
96
- */
97
- public function setup_footer() {
98
- for ( $priority = 0; $priority < 200; $priority ++ ) {
99
- remove_all_actions( 'storefront_footer', $priority );
100
- }
101
- }
102
-
103
- }
104
-
105
- Wpr_Storefront_Compat::instance();
1
+ <?php
2
+
3
+ use WprAddons\Admin\Includes\WPR_Render_Templates;
4
+
5
+ /**
6
+ * Astra theme compatibility.
7
+ */
8
+ class Wpr_Storefront_Compat {
9
+
10
+ /**
11
+ * Instance of Wpr_Storefront_Compat.
12
+ *
13
+ * @var Wpr_Storefront_Compat
14
+ */
15
+ private static $instance;
16
+
17
+ /**
18
+ * WPR_Render_Templates() Class
19
+ */
20
+ private $render_templates;
21
+
22
+ /**
23
+ * Initiator
24
+ */
25
+ public static function instance() {
26
+ if ( ! isset( self::$instance ) ) {
27
+ self::$instance = new Wpr_Storefront_Compat();
28
+
29
+ add_action( 'wp', [ self::$instance, 'hooks' ] );
30
+ }
31
+
32
+ return self::$instance;
33
+ }
34
+
35
+ /**
36
+ * Run all the Actions / Filters.
37
+ */
38
+ public function hooks() {
39
+ $this->render_templates = new WPR_Render_Templates( true );
40
+
41
+ if ( $this->render_templates->is_template_available('header') ) {
42
+ add_action( 'template_redirect', [ $this, 'setup_header' ], 10 );
43
+ add_action( 'storefront_before_header', [$this->render_templates, 'replace_header'], 500 );
44
+ add_action( 'elementor/page_templates/canvas/before_content', [ $this->render_templates, 'add_canvas_header' ] );
45
+ }
46
+
47
+ if ( $this->render_templates->is_template_available('footer') ) {
48
+ add_action( 'template_redirect', [ $this, 'setup_footer' ], 10 );
49
+ add_action( 'storefront_after_footer', [$this->render_templates, 'replace_footer'], 500 );
50
+ add_action( 'elementor/page_templates/canvas/after_content', [ $this->render_templates, 'add_canvas_footer' ] );
51
+ }
52
+
53
+ if ( $this->render_templates->is_template_available('header') || $this->render_templates->is_template_available('footer') ) {
54
+ add_action( 'wp_head', [ $this, 'styles' ] );
55
+ }
56
+ }
57
+
58
+ /**
59
+ * Add inline CSS to hide empty divs for header and footer in storefront
60
+ *
61
+ * @since 1.2.0
62
+ * @return void
63
+ */
64
+ public function styles() {
65
+ $css = '<style id="wpr-disable-storefront-hf">';
66
+
67
+ if ( $this->render_templates->is_template_available('header') ) {
68
+ $css .= '.site-header {
69
+ display: none;
70
+ }';
71
+ }
72
+
73
+ if ( $this->render_templates->is_template_available('footer') ) {
74
+ $css .= '.site-footer {
75
+ display: none;
76
+ }';
77
+ }
78
+
79
+ $css .= '</style>';
80
+
81
+ // Echo plain CSS (no user input or variables)
82
+ echo ''. $css; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
83
+ }
84
+
85
+ /**
86
+ * Disable header from the theme.
87
+ */
88
+ public function setup_header() {
89
+ for ( $priority = 0; $priority < 200; $priority ++ ) {
90
+ remove_all_actions( 'storefront_header', $priority );
91
+ }
92
+ }
93
+
94
+ /**
95
+ * Disable footer from the theme.
96
+ */
97
+ public function setup_footer() {
98
+ for ( $priority = 0; $priority < 200; $priority ++ ) {
99
+ remove_all_actions( 'storefront_footer', $priority );
100
+ }
101
+ }
102
+
103
+ }
104
+
105
+ Wpr_Storefront_Compat::instance();
admin/templates/views/theme-header.php CHANGED
@@ -1,32 +1,32 @@
1
- <?php
2
- use WprAddons\Admin\Includes\WPR_Conditions_Manager;
3
- use WprAddons\Classes\Utilities;
4
-
5
- if ( ! defined( 'ABSPATH' ) ) {
6
- exit; // Exit if accessed directly.
7
- }
8
-
9
- $conditions = json_decode( get_option('wpr_header_conditions', '[]'), true );
10
- $template_slug = WPR_Conditions_Manager::header_footer_display_conditions($conditions);
11
-
12
- ?><!DOCTYPE html>
13
- <html <?php language_attributes(); ?>>
14
- <head>
15
- <meta charset="<?php bloginfo( 'charset' ); ?>">
16
- <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
17
- <?php if ( ! current_theme_supports( 'title-tag' ) ) : ?>
18
- <title>
19
- <?php echo esc_html(wp_get_document_title()); ?>
20
- </title>
21
- <?php endif; ?>
22
- <?php wp_head(); ?>
23
- </head>
24
-
25
- <body <?php body_class(); ?>>
26
-
27
- <?php
28
-
29
- do_action( 'wp_body_open' );
30
-
31
- // Render WPR Header
32
- Utilities::render_elementor_template($template_slug);
1
+ <?php
2
+ use WprAddons\Admin\Includes\WPR_Conditions_Manager;
3
+ use WprAddons\Classes\Utilities;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit; // Exit if accessed directly.
7
+ }
8
+
9
+ $conditions = json_decode( get_option('wpr_header_conditions', '[]'), true );
10
+ $template_slug = WPR_Conditions_Manager::header_footer_display_conditions($conditions);
11
+
12
+ ?><!DOCTYPE html>
13
+ <html <?php language_attributes(); ?>>
14
+ <head>
15
+ <meta charset="<?php bloginfo( 'charset' ); ?>">
16
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
17
+ <?php if ( ! current_theme_supports( 'title-tag' ) ) : ?>
18
+ <title>
19
+ <?php echo esc_html(wp_get_document_title()); ?>
20
+ </title>
21
+ <?php endif; ?>
22
+ <?php wp_head(); ?>
23
+ </head>
24
+
25
+ <body <?php body_class(); ?>>
26
+
27
+ <?php
28
+
29
+ do_action( 'wp_body_open' );
30
+
31
+ // Render WPR Header
32
+ Utilities::render_elementor_template($template_slug);
admin/templates/wpr-canvas.php CHANGED
@@ -1,66 +1,66 @@
1
- <?php
2
-
3
- use Elementor\Utils;
4
- use WprAddons\Classes\Utilities;
5
-
6
- if ( ! defined( 'ABSPATH' ) ) {
7
- exit; // Exit if accessed directly.
8
- }
9
-
10
- \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-canvas' );
11
-
12
- $is_preview_mode = \Elementor\Plugin::$instance->preview->is_preview_mode();
13
- // $woocommerce_class = $is_preview_mode && class_exists( 'WooCommerce' ) ? 'woocommerce woocommerce-page woocommerce-shop canvas-test' : '';
14
- $woocommerce_class = $is_preview_mode && class_exists( 'WooCommerce' ) ? 'woocommerce woocommerce-page' : '';
15
-
16
- ?>
17
- <!DOCTYPE html>
18
- <html <?php language_attributes(); ?>>
19
- <head>
20
- <meta charset="<?php bloginfo( 'charset' ); ?>">
21
- <?php if ( ! current_theme_supports( 'title-tag' ) ) : ?>
22
- <title><?php echo wp_get_document_title(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></title>
23
- <?php endif; ?>
24
- <?php wp_head(); ?>
25
- <?php
26
-
27
- // Keep the following line after `wp_head()` call, to ensure it's not overridden by another templates.
28
- Utils::print_unescaped_internal_string( Utils::get_meta_viewport( 'canvas' ) );
29
- ?>
30
- </head>
31
-
32
- <body <?php body_class($woocommerce_class); ?>>
33
- <?php
34
- Elementor\Modules\PageTemplates\Module::body_open();
35
- /**
36
- * Before canvas page template content.
37
- *
38
- * Fires before the content of Elementor canvas page template.
39
- *
40
- * @since 1.0.0
41
- */
42
- do_action( 'elementor/page_templates/canvas/before_content' );
43
-
44
- // Elementor Editor
45
- if (( \Elementor\Plugin::$instance->preview->is_preview_mode() && Utilities::is_theme_builder_template()) || is_singular('wpr_mega_menu') ) {
46
- \Elementor\Plugin::$instance->modules_manager->get_modules( 'page-templates' )->print_content();
47
-
48
- // Frontend
49
- } else {
50
- // Display Custom Elementor Templates
51
- do_action( 'elementor/page_templates/canvas/wpr_print_content' );
52
- }
53
-
54
- /**
55
- * After canvas page template content.
56
- *
57
- * Fires after the content of Elementor canvas page template.
58
- *
59
- * @since 1.0.0
60
- */
61
- do_action( 'elementor/page_templates/canvas/after_content' );
62
-
63
- wp_footer();
64
- ?>
65
- </body>
66
- </html>
1
+ <?php
2
+
3
+ use Elementor\Utils;
4
+ use WprAddons\Classes\Utilities;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ \Elementor\Plugin::$instance->frontend->add_body_class( 'elementor-template-canvas' );
11
+
12
+ $is_preview_mode = \Elementor\Plugin::$instance->preview->is_preview_mode();
13
+ // $woocommerce_class = $is_preview_mode && class_exists( 'WooCommerce' ) ? 'woocommerce woocommerce-page woocommerce-shop canvas-test' : '';
14
+ $woocommerce_class = $is_preview_mode && class_exists( 'WooCommerce' ) ? 'woocommerce woocommerce-page' : '';
15
+
16
+ ?>
17
+ <!DOCTYPE html>
18
+ <html <?php language_attributes(); ?>>
19
+ <head>
20
+ <meta charset="<?php bloginfo( 'charset' ); ?>">
21
+ <?php if ( ! current_theme_supports( 'title-tag' ) ) : ?>
22
+ <title><?php echo wp_get_document_title(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?></title>
23
+ <?php endif; ?>
24
+ <?php wp_head(); ?>
25
+ <?php
26
+
27
+ // Keep the following line after `wp_head()` call, to ensure it's not overridden by another templates.
28
+ Utils::print_unescaped_internal_string( Utils::get_meta_viewport( 'canvas' ) );
29
+ ?>
30
+ </head>
31
+
32
+ <body <?php body_class($woocommerce_class); ?>>
33
+ <?php
34
+ Elementor\Modules\PageTemplates\Module::body_open();
35
+ /**
36
+ * Before canvas page template content.
37
+ *
38
+ * Fires before the content of Elementor canvas page template.
39
+ *
40
+ * @since 1.0.0
41
+ */
42
+ do_action( 'elementor/page_templates/canvas/before_content' );
43
+
44
+ // Elementor Editor
45
+ if (( \Elementor\Plugin::$instance->preview->is_preview_mode() && Utilities::is_theme_builder_template()) || is_singular('wpr_mega_menu') ) {
46
+ \Elementor\Plugin::$instance->modules_manager->get_modules( 'page-templates' )->print_content();
47
+
48
+ // Frontend
49
+ } else {
50
+ // Display Custom Elementor Templates
51
+ do_action( 'elementor/page_templates/canvas/wpr_print_content' );
52
+ }
53
+
54
+ /**
55
+ * After canvas page template content.
56
+ *
57
+ * Fires after the content of Elementor canvas page template.
58
+ *
59
+ * @since 1.0.0
60
+ */
61
+ do_action( 'elementor/page_templates/canvas/after_content' );
62
+
63
+ wp_footer();
64
+ ?>
65
+ </body>
66
+ </html>
admin/templates/wpr-templates-data.php CHANGED
@@ -201,6 +201,17 @@ class WPR_Templates_Data {
201
  'price' => $is_pro_active ? 'free' : 'free',
202
  'priority' => 1,
203
  ],
 
 
 
 
 
 
 
 
 
 
 
204
  ],
205
  'digital-agency-dark' => [
206
  'v1' => [
201
  'price' => $is_pro_active ? 'free' : 'free',
202
  'priority' => 1,
203
  ],
204
+ 'v2' => [
205
+ 'name' => 'Digital Marketing Agency 2',
206
+ 'pages' => 'home,seo,social,web,email,blog,about,team,contact,pricing1,pricing2,pricing3,casestudy,',
207
+ 'plugins' => '{"contact-form-7":'. $is_cf7_active .'}',
208
+ 'tags' => 'digital agency company corporate digital services office agency web digital marketing seo social media branding',
209
+ 'theme-builder' => true,
210
+ 'woo-builder' => false,
211
+ 'off-canvas' => false,
212
+ 'price' => $is_pro_active ? 'free' : 'pro',
213
+ 'priority' => 1,
214
+ ],
215
  ],
216
  'digital-agency-dark' => [
217
  'v1' => [
assets/css/admin/mega-menu.css CHANGED
@@ -1,444 +1,444 @@
1
- .wpr-mm-settings-btn {
2
- visibility: hidden;
3
- opacity: 0;
4
- }
5
-
6
- .menu-item-depth-0:hover .wpr-mm-settings-btn {
7
- visibility: visible;
8
- opacity: 1;
9
- }
10
-
11
- .wpr-mm-settings-btn {
12
- position: absolute;
13
- top: 5px;
14
- left: 260px;
15
- display: -webkit-box;
16
- display: -ms-flexbox;
17
- display: flex;
18
- -webkit-box-align: center;
19
- -ms-flex-align: center;
20
- align-items: center;
21
- padding: 5px 14px 7px;
22
- color: #fff;
23
- background: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
24
- background: -o-linear-gradient(#6A4BFF, #7E94FE);
25
- background: linear-gradient(#6A4BFF, #7E94FE);
26
- font-weight: 500;
27
- border-radius: 3px;
28
- cursor: pointer;
29
- }
30
-
31
- .wpr-mm-settings-btn span {
32
- content: 'R';
33
- display: inline-block;
34
- font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
35
- font-size: 8px;
36
- font-weight: bold;
37
- text-align: center;
38
- color: #ffffff;
39
- background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
40
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
41
- background-image: linear-gradient(#6A4BFF, #7E94FE);
42
- -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
43
- box-shadow: 0 0 2px 2px #b8c7ff;
44
- width: 16px;
45
- height: 16px;
46
- line-height: 16px;
47
- border-radius: 15px;
48
- margin-right: 7px;
49
- }
50
-
51
- .wpr-mm-settings-popup-wrap {
52
- display: none;
53
- position: absolute;
54
- top: 0;
55
- left: 0;
56
- right: 0;
57
- bottom: 0;
58
- z-index: 9999999;
59
- background-color: rgba(0,0,0,0.3);
60
- }
61
-
62
- .wpr-mm-settings-popup {
63
- position: fixed;
64
- top: 50%;
65
- left: 50%;
66
- -webkit-transform: translate(-50%,-50%);
67
- -ms-transform: translate(-50%,-50%);
68
- transform: translate(-50%,-50%);
69
- width: 100%;
70
- max-width: 700px;
71
- margin-left: 80px;
72
- background-color: #fff;
73
- -webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
74
- box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
75
- }
76
-
77
- .wpr-mm-popup-title {
78
- margin-left: auto;
79
- margin-right: 10px;
80
- border: 1px solid #dcdcde;
81
- background-color: #f6f7f7;
82
- padding: 2px 10px 4px;
83
- }
84
-
85
- .wpr-mm-settings-close-popup-btn {
86
- cursor: pointer;
87
- }
88
-
89
- .wpr-mm-settings-popup-header {
90
- display: -webkit-box;
91
- display: -ms-flexbox;
92
- display: flex;
93
- -webkit-box-align: center;
94
- -ms-flex-align: center;
95
- align-items: center;
96
- padding: 10px;
97
- border-bottom: 1px solid #e8e8e8;
98
- font-weight: 500;
99
- }
100
-
101
- .wpr-mm-popup-logo {
102
- padding: 3px;
103
- margin-right: 10px;
104
- border-radius: 50%;
105
- color: transparent;
106
- font-family: Arial,Helvetica,sans-serif;
107
- font-size: 14px;
108
- font-weight: bold;
109
- letter-spacing: 0.3px;
110
- }
111
-
112
- .wpr-mm-settings-popup-footer {
113
- display: -webkit-box;
114
- display: -ms-flexbox;
115
- display: flex;
116
- -webkit-box-pack: end;
117
- -ms-flex-pack: end;
118
- justify-content: flex-end;
119
- padding: 10px;
120
- border-top: 1px solid #e8e8e8;
121
- }
122
-
123
- .button.wpr-save-mega-menu-btn {
124
- min-height: 0;
125
- padding: 6px 18px 7px;
126
- color: #fff;
127
- background: #6A4BFF;
128
- border-radius: 3px;
129
- font-size: 12px;
130
- text-transform: uppercase;
131
- letter-spacing: 0.5px;
132
- font-weight: 600;
133
- cursor: pointer;
134
- line-height: 1;
135
- -webkit-box-shadow: none !important;
136
- box-shadow: none !important;
137
- }
138
-
139
- .button.wpr-save-mega-menu-btn:hover {
140
- color: #fff;
141
- background: #5537e1;
142
- }
143
-
144
- .wpr-save-mega-menu-btn .dashicons {
145
- display: inline;
146
- line-height: 8px;
147
- font-size: 14px;
148
- vertical-align: sub;
149
- }
150
-
151
- .wpr-mm-settings-wrap {
152
- height: 60vh;
153
- overflow-y: scroll;
154
- padding: 20px;
155
- }
156
-
157
- .wpr-mm-settings-wrap > h4 {
158
- padding: 5px 10px 7px;
159
- background-color: #f5f3f3;
160
- margin: 5px 0;
161
- }
162
-
163
- .wpr-mm-setting {
164
- display: -webkit-box;
165
- display: -ms-flexbox;
166
- display: flex;
167
- -webkit-box-align: center;
168
- -ms-flex-align: center;
169
- align-items: center;
170
- padding: 10px;
171
- }
172
-
173
- .wpr-mm-setting h4 {
174
- width: 200px;
175
- margin: 0;
176
- }
177
-
178
- .wpr-mm-setting > div,
179
- .wpr-mm-setting select,
180
- .wpr-mm-setting input[type="text"] {
181
- width: 168px;
182
- }
183
-
184
- .wpr-mm-setting input[type="number"] {
185
- width: 103px;
186
- }
187
-
188
- .wpr-mm-setting-switcher input {
189
- position: absolute;
190
- z-index: -1000;
191
- left: -1000px;
192
- overflow: hidden;
193
- clip: rect(0 0 0 0);
194
- height: 1px;
195
- width: 1px;
196
- margin: -1px;
197
- padding: 0;
198
- border: 0;
199
- }
200
-
201
- .wpr-mm-setting-switcher label {
202
- position: relative;
203
- display: block;
204
- width: 45px;
205
- height: 23px;
206
- border-radius: 20px;
207
- background: #e8e8e8;
208
- cursor: pointer;
209
- -webkit-touch-callout: none;
210
- -webkit-user-select: none;
211
- -moz-user-select: none;
212
- -ms-user-select: none;
213
- user-select: none;
214
- -webkit-transition: all 0.2s ease-in;
215
- -o-transition: all 0.2s ease-in;
216
- transition: all 0.2s ease-in;
217
- }
218
-
219
- .wpr-mm-setting-switcher input + label:after {
220
- content: ' ';
221
- display: block;
222
- position: absolute;
223
- top: 3px;
224
- left: 3px;
225
- width: 17px;
226
- height: 17px;
227
- border-radius: 50%;
228
- background: #fff;
229
- -webkit-transition: all 0.2s ease-in;
230
- -o-transition: all 0.2s ease-in;
231
- transition: all 0.2s ease-in;
232
- }
233
-
234
- .wpr-mm-setting-switcher input:checked + label {
235
- background: #6A4BFF;
236
- }
237
-
238
- .wpr-mm-setting-switcher input:checked + label:after {
239
- left: 24px;
240
- }
241
-
242
- button.wpr-edit-mega-menu-btn {
243
- padding: 3px 22px !important;
244
- font-size: 12px !important;
245
- }
246
-
247
- .wpr-edit-mega-menu-btn i {
248
- font-size: 125%;
249
- margin-right: 3px;
250
- }
251
-
252
- .wpr-mm-editor-popup-wrap {
253
- display: none;
254
- position: fixed;
255
- top: 0;
256
- left: 0;
257
- width: 100%;
258
- height: 100%;
259
- background: rgba(0,0,0,0.5);
260
- z-index: 99999999;
261
- }
262
-
263
- .wpr-mm-editor-popup-iframe {
264
- width: calc(100vw - 70px);
265
- height: calc(100vh - 70px);
266
- margin: 35px 25px;
267
- background-color: #f9f9f9;
268
- -webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
269
- box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
270
- }
271
-
272
- .wpr-mm-editor-close-popup-btn {
273
- position: absolute;
274
- top: 40px;
275
- right: 55px;
276
- font-size: 50px !important;
277
- }
278
-
279
- .wpr-mm-editor-close-popup-btn span {
280
- color: #444;
281
- font-size: 25px;
282
- cursor: pointer;
283
- }
284
-
285
- .wpr-mm-editor-close-popup-btn span:hover {
286
- color: #888;
287
- }
288
-
289
- .wpr-mm-setting-radius div {
290
- display: -webkit-box;
291
- display: -ms-flexbox;
292
- display: flex;
293
- }
294
-
295
- .wpr-mm-setting-icon div span {
296
- display: -webkit-inline-box;
297
- display: -ms-inline-flexbox;
298
- display: inline-flex;
299
- -webkit-box-align: center;
300
- -ms-flex-align: center;
301
- align-items: center;
302
- -webkit-box-pack: center;
303
- -ms-flex-pack: center;
304
- justify-content: center;
305
- width: 30px;
306
- height: 30px;
307
- border: 1px solid #a4afb7;
308
- cursor: pointer;
309
- }
310
-
311
- .wpr-mm-setting-icon div span.wpr-mm-active-icon {
312
- background-color: #a4afb7;
313
- color: #fff;
314
- }
315
-
316
- .wpr-mm-setting-icon div span:first-child {
317
- border-radius: 3px 0 0 3px;
318
- }
319
-
320
- .wpr-mm-setting-icon div span:last-child {
321
- border-radius: 0 3px 3px 0;
322
- }
323
-
324
- .wpr-mm-setting-icon input[type="text"] {
325
- width: 0;
326
- padding: 0;
327
- border: 0;
328
- -webkit-box-shadow: none !important;
329
- box-shadow: none !important;
330
- margin-left: -15px;
331
- }
332
-
333
- .wpr-mm-setting.iconpicker-container .iconpicker-popover {
334
- padding: 5px;
335
- }
336
-
337
- .wpr-mm-setting.iconpicker-container .popover-title {
338
- padding: 0;
339
- }
340
-
341
- .wpr-mm-setting.iconpicker-container input[type="search"] {
342
- padding: 5px 10px;
343
- margin: 0 !important;
344
- border: 0;
345
- width: 100%;
346
- }
347
-
348
- .wpr-mm-setting.iconpicker-container .arrow {
349
- border-bottom-color: #f7f7f7 !important;
350
- top: -8px !important;
351
- }
352
-
353
- .wp-picker-input-wrap .wp-picker-container {
354
- display: none;
355
- }
356
-
357
- .wpr-mm-setting select,
358
- .wpr-mm-setting input:not(.iconpicker-input),
359
- .wpr-mm-setting button {
360
- border: 1px solid #e5e5e5 !important;
361
- }
362
-
363
- /* Pro Options */
364
- .wpr-mm-pro-setting h4:after,
365
- h4.wpr-mm-pro-heading:after {
366
- content: 'PRO';
367
- margin-left: 5px;
368
- padding: 1px 7px 2px;
369
- color: #fff;
370
- background-color: #f44;
371
- border-radius: 3px;
372
- font-size: 10px;
373
- font-weight: bold;
374
- letter-spacing: 1px;
375
- }
376
-
377
- .wpr-mm-pro-section,
378
- .wpr-mm-pro-setting > div {
379
- position: relative;
380
- }
381
-
382
- .wpr-mm-pro-section:before,
383
- .wpr-mm-pro-setting > div:before {
384
- content: 'Please upgrade to the Pro Version to access this options.';
385
- display: none;
386
- position: absolute;
387
- left: -20px;
388
- top: -65px;
389
- z-index: 2;
390
- width: 210px;
391
- padding: 10px;
392
- font-size: 12px;
393
- background-color: #fff;
394
- -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
395
- box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
396
- border: 1px solid #e8e8e8;
397
- border-radius: 4px;
398
- text-align: center;
399
- }
400
-
401
- .wpr-mm-pro-section:before {
402
- content: 'Please upgrade to the Pro Version to access these options.';
403
- top: 50%;
404
- left: 50%;
405
- -webkit-transform: translateX(-50%) translateY(-50%);
406
- -ms-transform: translateX(-50%) translateY(-50%);
407
- transform: translateX(-50%) translateY(-50%);
408
- padding: 20px 30px;
409
- font-size: 13px;
410
- }
411
-
412
- .wpr-mm-pro-section:hover:before,
413
- .wpr-mm-pro-setting > div:hover:before {
414
- display: block;
415
- }
416
-
417
- .wpr-mm-pro-setting > div:after,
418
- .wpr-mm-pro-section:after {
419
- content: '';
420
- position: absolute;
421
- top: 0;
422
- left: 0;
423
- z-index: 1;
424
- width: 100%;
425
- height: 100%;
426
- background: rgba(0,0,0,0.1);
427
- }
428
-
429
- .wpr-mm-pro-setting select {
430
- display: none;
431
- }
432
-
433
- .wpr-mm-pro-setting .wpr-mm-pro-radio {
434
- display: block;
435
- }
436
-
437
- .wpr-mm-pro-radio {
438
- display: none;
439
- padding: 5px 10px;
440
- }
441
-
442
- .wpr-mm-setting select option[value*="pro-"] {
443
- background-color: rgba(0,0,0,0.2);
444
  }
1
+ .wpr-mm-settings-btn {
2
+ visibility: hidden;
3
+ opacity: 0;
4
+ }
5
+
6
+ .menu-item-depth-0:hover .wpr-mm-settings-btn {
7
+ visibility: visible;
8
+ opacity: 1;
9
+ }
10
+
11
+ .wpr-mm-settings-btn {
12
+ position: absolute;
13
+ top: 5px;
14
+ left: 260px;
15
+ display: -webkit-box;
16
+ display: -ms-flexbox;
17
+ display: flex;
18
+ -webkit-box-align: center;
19
+ -ms-flex-align: center;
20
+ align-items: center;
21
+ padding: 5px 14px 7px;
22
+ color: #fff;
23
+ background: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
24
+ background: -o-linear-gradient(#6A4BFF, #7E94FE);
25
+ background: linear-gradient(#6A4BFF, #7E94FE);
26
+ font-weight: 500;
27
+ border-radius: 3px;
28
+ cursor: pointer;
29
+ }
30
+
31
+ .wpr-mm-settings-btn span {
32
+ content: 'R';
33
+ display: inline-block;
34
+ font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
35
+ font-size: 8px;
36
+ font-weight: bold;
37
+ text-align: center;
38
+ color: #ffffff;
39
+ background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
40
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
41
+ background-image: linear-gradient(#6A4BFF, #7E94FE);
42
+ -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
43
+ box-shadow: 0 0 2px 2px #b8c7ff;
44
+ width: 16px;
45
+ height: 16px;
46
+ line-height: 16px;
47
+ border-radius: 15px;
48
+ margin-right: 7px;
49
+ }
50
+
51
+ .wpr-mm-settings-popup-wrap {
52
+ display: none;
53
+ position: absolute;
54
+ top: 0;
55
+ left: 0;
56
+ right: 0;
57
+ bottom: 0;
58
+ z-index: 9999999;
59
+ background-color: rgba(0,0,0,0.3);
60
+ }
61
+
62
+ .wpr-mm-settings-popup {
63
+ position: fixed;
64
+ top: 50%;
65
+ left: 50%;
66
+ -webkit-transform: translate(-50%,-50%);
67
+ -ms-transform: translate(-50%,-50%);
68
+ transform: translate(-50%,-50%);
69
+ width: 100%;
70
+ max-width: 700px;
71
+ margin-left: 80px;
72
+ background-color: #fff;
73
+ -webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
74
+ box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
75
+ }
76
+
77
+ .wpr-mm-popup-title {
78
+ margin-left: auto;
79
+ margin-right: 10px;
80
+ border: 1px solid #dcdcde;
81
+ background-color: #f6f7f7;
82
+ padding: 2px 10px 4px;
83
+ }
84
+
85
+ .wpr-mm-settings-close-popup-btn {
86
+ cursor: pointer;
87
+ }
88
+
89
+ .wpr-mm-settings-popup-header {
90
+ display: -webkit-box;
91
+ display: -ms-flexbox;
92
+ display: flex;
93
+ -webkit-box-align: center;
94
+ -ms-flex-align: center;
95
+ align-items: center;
96
+ padding: 10px;
97
+ border-bottom: 1px solid #e8e8e8;
98
+ font-weight: 500;
99
+ }
100
+
101
+ .wpr-mm-popup-logo {
102
+ padding: 3px;
103
+ margin-right: 10px;
104
+ border-radius: 50%;
105
+ color: transparent;
106
+ font-family: Arial,Helvetica,sans-serif;
107
+ font-size: 14px;
108
+ font-weight: bold;
109
+ letter-spacing: 0.3px;
110
+ }
111
+
112
+ .wpr-mm-settings-popup-footer {
113
+ display: -webkit-box;
114
+ display: -ms-flexbox;
115
+ display: flex;
116
+ -webkit-box-pack: end;
117
+ -ms-flex-pack: end;
118
+ justify-content: flex-end;
119
+ padding: 10px;
120
+ border-top: 1px solid #e8e8e8;
121
+ }
122
+
123
+ .button.wpr-save-mega-menu-btn {
124
+ min-height: 0;
125
+ padding: 6px 18px 7px;
126
+ color: #fff;
127
+ background: #6A4BFF;
128
+ border-radius: 3px;
129
+ font-size: 12px;
130
+ text-transform: uppercase;
131
+ letter-spacing: 0.5px;
132
+ font-weight: 600;
133
+ cursor: pointer;
134
+ line-height: 1;
135
+ -webkit-box-shadow: none !important;
136
+ box-shadow: none !important;
137
+ }
138
+
139
+ .button.wpr-save-mega-menu-btn:hover {
140
+ color: #fff;
141
+ background: #5537e1;
142
+ }
143
+
144
+ .wpr-save-mega-menu-btn .dashicons {
145
+ display: inline;
146
+ line-height: 8px;
147
+ font-size: 14px;
148
+ vertical-align: sub;
149
+ }
150
+
151
+ .wpr-mm-settings-wrap {
152
+ height: 60vh;
153
+ overflow-y: scroll;
154
+ padding: 20px;
155
+ }
156
+
157
+ .wpr-mm-settings-wrap > h4 {
158
+ padding: 5px 10px 7px;
159
+ background-color: #f5f3f3;
160
+ margin: 5px 0;
161
+ }
162
+
163
+ .wpr-mm-setting {
164
+ display: -webkit-box;
165
+ display: -ms-flexbox;
166
+ display: flex;
167
+ -webkit-box-align: center;
168
+ -ms-flex-align: center;
169
+ align-items: center;
170
+ padding: 10px;
171
+ }
172
+
173
+ .wpr-mm-setting h4 {
174
+ width: 200px;
175
+ margin: 0;
176
+ }
177
+
178
+ .wpr-mm-setting > div,
179
+ .wpr-mm-setting select,
180
+ .wpr-mm-setting input[type="text"] {
181
+ width: 168px;
182
+ }
183
+
184
+ .wpr-mm-setting input[type="number"] {
185
+ width: 103px;
186
+ }
187
+
188
+ .wpr-mm-setting-switcher input {
189
+ position: absolute;
190
+ z-index: -1000;
191
+ left: -1000px;
192
+ overflow: hidden;
193
+ clip: rect(0 0 0 0);
194
+ height: 1px;
195
+ width: 1px;
196
+ margin: -1px;
197
+ padding: 0;
198
+ border: 0;
199
+ }
200
+
201
+ .wpr-mm-setting-switcher label {
202
+ position: relative;
203
+ display: block;
204
+ width: 45px;
205
+ height: 23px;
206
+ border-radius: 20px;
207
+ background: #e8e8e8;
208
+ cursor: pointer;
209
+ -webkit-touch-callout: none;
210
+ -webkit-user-select: none;
211
+ -moz-user-select: none;
212
+ -ms-user-select: none;
213
+ user-select: none;
214
+ -webkit-transition: all 0.2s ease-in;
215
+ -o-transition: all 0.2s ease-in;
216
+ transition: all 0.2s ease-in;
217
+ }
218
+
219
+ .wpr-mm-setting-switcher input + label:after {
220
+ content: ' ';
221
+ display: block;
222
+ position: absolute;
223
+ top: 3px;
224
+ left: 3px;
225
+ width: 17px;
226
+ height: 17px;
227
+ border-radius: 50%;
228
+ background: #fff;
229
+ -webkit-transition: all 0.2s ease-in;
230
+ -o-transition: all 0.2s ease-in;
231
+ transition: all 0.2s ease-in;
232
+ }
233
+
234
+ .wpr-mm-setting-switcher input:checked + label {
235
+ background: #6A4BFF;
236
+ }
237
+
238
+ .wpr-mm-setting-switcher input:checked + label:after {
239
+ left: 24px;
240
+ }
241
+
242
+ button.wpr-edit-mega-menu-btn {
243
+ padding: 3px 22px !important;
244
+ font-size: 12px !important;
245
+ }
246
+
247
+ .wpr-edit-mega-menu-btn i {
248
+ font-size: 125%;
249
+ margin-right: 3px;
250
+ }
251
+
252
+ .wpr-mm-editor-popup-wrap {
253
+ display: none;
254
+ position: fixed;
255
+ top: 0;
256
+ left: 0;
257
+ width: 100%;
258
+ height: 100%;
259
+ background: rgba(0,0,0,0.5);
260
+ z-index: 99999999;
261
+ }
262
+
263
+ .wpr-mm-editor-popup-iframe {
264
+ width: calc(100vw - 70px);
265
+ height: calc(100vh - 70px);
266
+ margin: 35px 25px;
267
+ background-color: #f9f9f9;
268
+ -webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
269
+ box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
270
+ }
271
+
272
+ .wpr-mm-editor-close-popup-btn {
273
+ position: absolute;
274
+ top: 40px;
275
+ right: 55px;
276
+ font-size: 50px !important;
277
+ }
278
+
279
+ .wpr-mm-editor-close-popup-btn span {
280
+ color: #444;
281
+ font-size: 25px;
282
+ cursor: pointer;
283
+ }
284
+
285
+ .wpr-mm-editor-close-popup-btn span:hover {
286
+ color: #888;
287
+ }
288
+
289
+ .wpr-mm-setting-radius div {
290
+ display: -webkit-box;
291
+ display: -ms-flexbox;
292
+ display: flex;
293
+ }
294
+
295
+ .wpr-mm-setting-icon div span {
296
+ display: -webkit-inline-box;
297
+ display: -ms-inline-flexbox;
298
+ display: inline-flex;
299
+ -webkit-box-align: center;
300
+ -ms-flex-align: center;
301
+ align-items: center;
302
+ -webkit-box-pack: center;
303
+ -ms-flex-pack: center;
304
+ justify-content: center;
305
+ width: 30px;
306
+ height: 30px;
307
+ border: 1px solid #a4afb7;
308
+ cursor: pointer;
309
+ }
310
+
311
+ .wpr-mm-setting-icon div span.wpr-mm-active-icon {
312
+ background-color: #a4afb7;
313
+ color: #fff;
314
+ }
315
+
316
+ .wpr-mm-setting-icon div span:first-child {
317
+ border-radius: 3px 0 0 3px;
318
+ }
319
+
320
+ .wpr-mm-setting-icon div span:last-child {
321
+ border-radius: 0 3px 3px 0;
322
+ }
323
+
324
+ .wpr-mm-setting-icon input[type="text"] {
325
+ width: 0;
326
+ padding: 0;
327
+ border: 0;
328
+ -webkit-box-shadow: none !important;
329
+ box-shadow: none !important;
330
+ margin-left: -15px;
331
+ }
332
+
333
+ .wpr-mm-setting.iconpicker-container .iconpicker-popover {
334
+ padding: 5px;
335
+ }
336
+
337
+ .wpr-mm-setting.iconpicker-container .popover-title {
338
+ padding: 0;
339
+ }
340
+
341
+ .wpr-mm-setting.iconpicker-container input[type="search"] {
342
+ padding: 5px 10px;
343
+ margin: 0 !important;
344
+ border: 0;
345
+ width: 100%;
346
+ }
347
+
348
+ .wpr-mm-setting.iconpicker-container .arrow {
349
+ border-bottom-color: #f7f7f7 !important;
350
+ top: -8px !important;
351
+ }
352
+
353
+ .wp-picker-input-wrap .wp-picker-container {
354
+ display: none;
355
+ }
356
+
357
+ .wpr-mm-setting select,
358
+ .wpr-mm-setting input:not(.iconpicker-input),
359
+ .wpr-mm-setting button {
360
+ border: 1px solid #e5e5e5 !important;
361
+ }
362
+
363
+ /* Pro Options */
364
+ .wpr-mm-pro-setting h4:after,
365
+ h4.wpr-mm-pro-heading:after {
366
+ content: 'PRO';
367
+ margin-left: 5px;
368
+ padding: 1px 7px 2px;
369
+ color: #fff;
370
+ background-color: #f44;
371
+ border-radius: 3px;
372
+ font-size: 10px;
373
+ font-weight: bold;
374
+ letter-spacing: 1px;
375
+ }
376
+
377
+ .wpr-mm-pro-section,
378
+ .wpr-mm-pro-setting > div {
379
+ position: relative;
380
+ }
381
+
382
+ .wpr-mm-pro-section:before,
383
+ .wpr-mm-pro-setting > div:before {
384
+ content: 'Please upgrade to the Pro Version to access this options.';
385
+ display: none;
386
+ position: absolute;
387
+ left: -20px;
388
+ top: -65px;
389
+ z-index: 2;
390
+ width: 210px;
391
+ padding: 10px;
392
+ font-size: 12px;
393
+ background-color: #fff;
394
+ -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
395
+ box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
396
+ border: 1px solid #e8e8e8;
397
+ border-radius: 4px;
398
+ text-align: center;
399
+ }
400
+
401
+ .wpr-mm-pro-section:before {
402
+ content: 'Please upgrade to the Pro Version to access these options.';
403
+ top: 50%;
404
+ left: 50%;
405
+ -webkit-transform: translateX(-50%) translateY(-50%);
406
+ -ms-transform: translateX(-50%) translateY(-50%);
407
+ transform: translateX(-50%) translateY(-50%);
408
+ padding: 20px 30px;
409
+ font-size: 13px;
410
+ }
411
+
412
+ .wpr-mm-pro-section:hover:before,
413
+ .wpr-mm-pro-setting > div:hover:before {
414
+ display: block;
415
+ }
416
+
417
+ .wpr-mm-pro-setting > div:after,
418
+ .wpr-mm-pro-section:after {
419
+ content: '';
420
+ position: absolute;
421
+ top: 0;
422
+ left: 0;
423
+ z-index: 1;
424
+ width: 100%;
425
+ height: 100%;
426
+ background: rgba(0,0,0,0.1);
427
+ }
428
+
429
+ .wpr-mm-pro-setting select {
430
+ display: none;
431
+ }
432
+
433
+ .wpr-mm-pro-setting .wpr-mm-pro-radio {
434
+ display: block;
435
+ }
436
+
437
+ .wpr-mm-pro-radio {
438
+ display: none;
439
+ padding: 5px 10px;
440
+ }
441
+
442
+ .wpr-mm-setting select option[value*="pro-"] {
443
+ background-color: rgba(0,0,0,0.2);
444
  }
assets/css/admin/templates-kit.css CHANGED
@@ -1,610 +1,610 @@
1
- .royal-addons_page_wpr-templates-kit #wpwrap {
2
- background: #F6F6F6;
3
- }
4
-
5
- .royal-addons_page_wpr-templates-kit #wpcontent {
6
- padding: 0;
7
- }
8
-
9
- img {
10
- display: block;
11
- max-width: 100%;
12
- width: 100%;
13
- }
14
-
15
- .wpr-templates-kit-page > header {
16
- position: sticky;
17
- top: 32px;
18
- z-index: 99;
19
- display: -webkit-box;
20
- display: -ms-flexbox;
21
- display: flex;
22
- -webkit-box-pack: justify;
23
- -ms-flex-pack: justify;
24
- justify-content: space-between;
25
- background: #fff;
26
- -webkit-box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
27
- box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
28
- }
29
-
30
- .wpr-templates-kit-logo {
31
- display: -webkit-box;
32
- display: -ms-flexbox;
33
- display: flex;
34
- }
35
-
36
- .wpr-templates-kit-logo div {
37
- padding: 20px;
38
- border-right: 1px solid #e8e8e8;
39
- }
40
-
41
- .wpr-templates-kit-logo .back-btn {
42
- display: none;
43
- -webkit-box-align: center;
44
- -ms-flex-align: center;
45
- align-items: center;
46
- font-weight: bold;
47
- color: #6d7882;
48
- cursor: pointer;
49
- }
50
-
51
- .wpr-templates-kit-logo .back-btn:hover {
52
- color: #222;
53
- }
54
-
55
- .wpr-templates-kit-search {
56
- display: -webkit-box;
57
- display: -ms-flexbox;
58
- display: flex;
59
- -webkit-box-align: center;
60
- -ms-flex-align: center;
61
- align-items: center;
62
- position: absolute;
63
- top: 20px;
64
- left: 50%;
65
- -webkit-transform: translateX(-50%);
66
- -ms-transform: translateX(-50%);
67
- transform: translateX(-50%);
68
- }
69
-
70
- .wpr-templates-kit-search input {
71
- width: 500px;
72
- height: 45px;
73
- padding-left: 15px;
74
- border: 2px solid #e8e8e8 !important;
75
- -webkit-box-shadow: none !important;
76
- box-shadow: none !important;
77
- }
78
-
79
- .wpr-templates-kit-search .dashicons {
80
- margin-left: -32px;
81
- color: #777;
82
- }
83
-
84
- .wpr-templates-kit-price-filter {
85
- position: relative;
86
- width: 110px;
87
- height: 40px;
88
- margin: 20px;
89
- border: 2px solid #e8e8e8;
90
- line-height: 40px;
91
- padding: 0 20px;
92
- border-radius: 3px;
93
- font-size: 14px;
94
- cursor: pointer;
95
- }
96
-
97
- .wpr-templates-kit-price-filter .dashicons {
98
- position: absolute;
99
- right: 12px;
100
- line-height: 40px;
101
- font-size: 14px;
102
- }
103
-
104
- .wpr-templates-kit-price-filter:hover ul {
105
- display: block;
106
- }
107
-
108
- .wpr-templates-kit-price-filter ul {
109
- display: none;
110
- background: #fff;
111
- position: absolute;
112
- width: 100%;
113
- top: 26px;
114
- left: -2px;
115
- padding: 0;
116
- border: 2px solid #e8e8e8;
117
- }
118
-
119
- .wpr-templates-kit-price-filter ul li {
120
- padding: 0 20px;
121
- line-height: 32px;
122
- margin-bottom: 0 !important;
123
- border-bottom: 1px solid #e8e8e8;
124
- }
125
-
126
- .wpr-templates-kit-price-filter ul li:last-child {
127
- border-bottom: 0;
128
- }
129
-
130
- .wpr-templates-kit-price-filter ul li:hover {
131
- background: #e8e8e8;
132
- }
133
-
134
- .wpr-templates-kit-filters {
135
- display: none;
136
- padding: 20px;
137
- }
138
-
139
- .wpr-templates-kit-filters div {
140
- padding: 10px 20px;
141
- border: 2px solid #e8e8e8;
142
- border-radius: 3px;
143
- font-size: 16px;
144
- }
145
-
146
- .wpr-templates-kit-filters ul {
147
- display: none;
148
- }
149
-
150
- .wpr-templates-kit-page-title {
151
- text-align: center;
152
- margin-top: 65px;
153
- margin-bottom: 35px;
154
- }
155
-
156
- .wpr-templates-kit-page-title h1 {
157
- font-size: 35px;
158
- color: #555;
159
- }
160
-
161
- .button.wpr-options-button {
162
- padding: 3px 18px;
163
- border: 0;
164
- color: #fff;
165
- background: #6A4BFF;
166
- -webkit-box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
167
- box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
168
- font-size: 14px;
169
- }
170
-
171
- .button.wpr-options-button:hover,
172
- .button.wpr-options-button:focus {
173
- color: #fff;
174
- background: #6A4BFF;
175
- border: none;
176
- }
177
-
178
- .button.wpr-options-button .dashicons {
179
- font-size: 16px;
180
- line-height: 32px;
181
- }
182
-
183
- .wpr-templates-kit-grid {
184
- display: -ms-grid;
185
- display: grid;
186
- -ms-grid-columns: 1fr 20px 1fr 20px 1fr 20px 1fr;
187
- grid-template-columns: repeat(4, 1fr);
188
- grid-column-gap: 30px;
189
- grid-row-gap: 30px;
190
- padding: 30px;
191
- }
192
-
193
-
194
- @media screen and (max-width: 1400px) {
195
- .wpr-templates-kit-grid {
196
- grid-template-columns: repeat(3, 1fr);
197
- }
198
- }
199
-
200
- .wpr-templates-kit-grid .grid-item {
201
- position: relative;
202
- overflow: hidden;
203
- border: 1px solid #e8e8e8;
204
- -webkit-box-shadow: 0 0 3px 0 rgba(0,0,0,0.1);
205
- box-shadow: 0 0 3px 0 rgba(0,0,0,0.1);
206
- background: #fff;
207
- }
208
-
209
-
210
- .wpr-templates-kit-grid .grid-item[data-price="pro"]:before {
211
- content: 'Premium';
212
- display: block;
213
- position: absolute;
214
- top: 20px;
215
- right: -30px;
216
- z-index: 10;
217
- -webkit-transform: rotate(45deg);
218
- -ms-transform: rotate(45deg);
219
- transform: rotate(45deg);
220
- padding: 7px 40px;
221
- font-size: 13px;
222
- letter-spacing: .4px;
223
- background: #6a4bff;
224
- color: #fff;
225
- -webkit-box-shadow: 0 0 5px 0 rgb(0 0 0 / 70%);
226
- box-shadow: 0 0 5px 0 rgb(0 0 0 / 70%);
227
- }
228
-
229
- .wpr-templates-kit-grid .image-wrap {
230
- position: relative;
231
- border-bottom: 1px solid #e8e8e8;
232
- }
233
-
234
- .wpr-templates-kit-grid .image-wrap:hover .image-overlay {
235
- opacity: 1;
236
- }
237
-
238
- .wpr-templates-kit-grid .image-overlay {
239
- opacity: 0;
240
- display: -webkit-box;
241
- display: -ms-flexbox;
242
- display: flex;
243
- -webkit-box-align: center;
244
- -ms-flex-align: center;
245
- align-items: center;
246
- -webkit-box-pack: center;
247
- -ms-flex-pack: center;
248
- justify-content: center;
249
- position: absolute;
250
- top: 0;
251
- left: 0;
252
- width: 100%;
253
- height: 100%;
254
- background: rgba(0,0,0,0.2);
255
- cursor: pointer;
256
- -webkit-transition: opacity 0.2s ease-in;
257
- -o-transition: opacity 0.2s ease-in;
258
- transition: opacity 0.2s ease-in;
259
- }
260
-
261
- .wpr-templates-kit-grid .image-overlay .dashicons {
262
- font-size: 30px;
263
- color: #fff;
264
- }
265
-
266
- .wpr-templates-kit-grid .grid-item footer {
267
- display: -webkit-box;
268
- display: -ms-flexbox;
269
- display: flex;
270
- padding: 15px;
271
- -webkit-box-pack: justify;
272
- -ms-flex-pack: justify;
273
- justify-content: space-between;
274
- }
275
-
276
- .wpr-templates-kit-grid .grid-item footer h3 {
277
- margin: 0;
278
- font-size: 16px;
279
- text-transform: capitalize;
280
- }
281
-
282
- .wpr-templates-kit-grid .grid-item footer span {
283
- position: relative;
284
- min-width: 77px;
285
- height: 20px;
286
- background-color: #5130ef;
287
- color: #fff;
288
- font-size: 12px;
289
- padding: 2px 10px;
290
- border-radius: 3px;
291
- }
292
-
293
- span.wpr-woo-builder-label {
294
- background-color: #7B51AD !important;
295
- text-align: center;
296
- }
297
-
298
- .wpr-templates-kit-grid .grid-item footer span:after {
299
- display: none;
300
- width: 125px;
301
- position: absolute;
302
- top: -50px;
303
- left: 30%;
304
- -webkit-transform: translateX(-50%);
305
- -ms-transform: translateX(-50%);
306
- transform: translateX(-50%);
307
- padding: 7px 10px;
308
- border-radius: 3px;
309
- background-color: #333;
310
- font-size: 12px;
311
- line-height: 15px;
312
- -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.4);
313
- box-shadow: 0 0 5px rgba(0,0,0,0.4);
314
- }
315
-
316
- .wpr-templates-kit-grid .grid-item footer span.wpr-theme-builder-label:after {
317
- content: "This Kit includes Theme Builder templates.";
318
- }
319
-
320
- .wpr-templates-kit-grid .grid-item footer span.wpr-woo-builder-label:after {
321
- content: "This Kit includes WooCommerce Builder templates.";
322
- }
323
-
324
- .wpr-templates-kit-grid .grid-item footer span:hover:after {
325
- display: block;
326
- }
327
-
328
- .wpr-templates-kit-single {
329
- display: none;
330
- }
331
-
332
- .wpr-templates-kit-single .grid-item a {
333
- text-decoration: none;
334
- }
335
-
336
- .wpr-templates-kit-single .action-buttons-wrap {
337
- display: -webkit-box;
338
- display: -ms-flexbox;
339
- display: flex;
340
- -webkit-box-pack: justify;
341
- -ms-flex-pack: justify;
342
- justify-content: space-between;
343
- position: fixed;
344
- bottom: 0;
345
- left: 0;
346
- right: 0;
347
- z-index: 10;
348
- padding: 25px 30px;
349
- background: #fff;
350
- -webkit-box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
351
- box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
352
- }
353
-
354
- .action-buttons-wrap a,
355
- .action-buttons-wrap button {
356
- padding: 5px 25px !important;
357
- }
358
-
359
- .wpr-templates-kit-single .preview-demo .dashicons {
360
- font-size: 14px;
361
- line-height: 28px;
362
- }
363
-
364
- .wpr-templates-kit-single .import-kit,
365
- .wpr-templates-kit-single .get-access {
366
- background: #6A4BFF;
367
- color: #fff;
368
- }
369
-
370
- .wpr-templates-kit-single .import-kit:hover,
371
- .wpr-templates-kit-single .import-kit:focus,
372
- .wpr-templates-kit-single .get-access:hover,
373
- .wpr-templates-kit-single .get-access:focus {
374
- background: #5130ef;
375
- color: #fff;
376
- -webkit-box-shadow: none !important;
377
- box-shadow: none !important;
378
- }
379
-
380
- .wpr-templates-kit-single .import-kit .dashicons,
381
- .wpr-templates-kit-single .get-access .dashicons {
382
- font-size: 14px;
383
- line-height: 30px;
384
- }
385
-
386
- .wpr-templates-kit-single .selected-template {
387
- border: 1px solid #2271B1;
388
- -webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
389
- box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
390
- }
391
-
392
- .import-template-buttons .import-template {
393
- display: none;
394
- }
395
-
396
- .wpr-templates-kit-single .import-template strong {
397
- text-transform: capitalize;
398
- }
399
-
400
- .wpr-import-kit-popup-wrap {
401
- display: none;
402
- position: relative;
403
- z-index: 9999999;
404
- }
405
-
406
- .wpr-import-kit-popup-wrap .overlay {
407
- position: fixed;
408
- top: 0;
409
- left: 0;
410
- z-index: 9999999;
411
- width: 100%;
412
- height: 100%;
413
- background: rgba(0,0,0,0.5);
414
- }
415
-
416
- .wpr-import-help {
417
- margin-top: 20px;
418
- text-align: right;
419
- }
420
-
421
- .wpr-import-help a {
422
- width: 50%;
423
- font-size: 12px;
424
- text-align: right;
425
- text-decoration: none;
426
- color: #8F5D64;
427
- }
428
-
429
- .wpr-import-help a:hover {
430
- text-decoration: underline;
431
- }
432
-
433
- .wpr-import-help a span {
434
- vertical-align: middle;
435
- margin-bottom: 2px;
436
- font-size: 12px !important;
437
- width: 12px !important;
438
- height: 12px !important;
439
- text-decoration: none !important
440
- }
441
-
442
- .wpr-import-kit-popup {
443
- overflow: hidden;
444
- position: fixed;
445
- top: 50%;
446
- left: 50%;
447
- -webkit-transform: translate(-50%,-50%);
448
- -ms-transform: translate(-50%,-50%);
449
- transform: translate(-50%,-50%);
450
- z-index: 9999999;
451
- width: 555px;
452
- background: #f5f5f5;
453
- border-radius: 3px;
454
- }
455
-
456
- .wpr-import-kit-popup header {
457
- display: -webkit-box;
458
- display: -ms-flexbox;
459
- display: flex;
460
- -webkit-box-pack: justify;
461
- -ms-flex-pack: justify;
462
- justify-content: space-between;
463
- padding-left: 25px;
464
- -webkit-box-shadow: 2px 0 5px 0 rgba(0,0,0,0.2);
465
- box-shadow: 2px 0 5px 0 rgba(0,0,0,0.2);
466
- }
467
-
468
- .wpr-import-kit-popup .close-btn {
469
- display: none;
470
- height: 50px;
471
- line-height: 50px;
472
- width: 50px;
473
- cursor: pointer;
474
- border-left: 1px solid #eee;
475
- color: #aaa;
476
- font-size: 22px;
477
- }
478
-
479
- .wpr-import-kit-popup .content {
480
- padding: 25px;
481
- }
482
-
483
- .wpr-import-kit-popup .content p:first-child {
484
- margin-top: 0;
485
- }
486
-
487
- .wpr-import-kit-popup .progress-wrap {
488
- background: #fff;
489
- border-radius: 3px;
490
- margin-top: 25px;
491
- }
492
-
493
- .wpr-import-kit-popup .progress-wrap strong {
494
- padding: 10px;
495
- display: block;
496
- }
497
-
498
- .wpr-import-kit-popup .progress-bar {
499
- width: 30px;
500
- height: 4px;
501
- background: #2271B1;
502
- }
503
-
504
- .dot-flashing {
505
- display: inline-block;
506
- margin-left: 10px;
507
- margin-bottom: -1px;
508
- position: relative;
509
- width: 3px;
510
- height: 3px;
511
- border-radius: 10px;
512
- background-color: #3c434a;
513
- color: #3c434a;
514
- -webkit-animation: dotFlashing 1s infinite linear alternate;
515
- animation: dotFlashing 1s infinite linear alternate;
516
- -webkit-animation-delay: .5s;
517
- animation-delay: .5s;
518
- }
519
-
520
- .dot-flashing::before, .dot-flashing::after {
521
- content: '';
522
- display: inline-block;
523
- position: absolute;
524
- top: 0;
525
- }
526
-
527
- .dot-flashing::before {
528
- left: -6px;
529
- width: 3px;
530
- height: 3px;
531
- border-radius: 10px;
532
- background-color: #3c434a;
533
- color: #3c434a;
534
- -webkit-animation: dotFlashing 1s infinite alternate;
535
- animation: dotFlashing 1s infinite alternate;
536
- -webkit-animation-delay: 0s;
537
- animation-delay: 0s;
538
- }
539
-
540
- .dot-flashing::after {
541
- left: 6px;
542
- width: 3px;
543
- height: 3px;
544
- border-radius: 10px;
545
- background-color: #3c434a;
546
- color: #3c434a;
547
- -webkit-animation: dotFlashing 1s infinite alternate;
548
- animation: dotFlashing 1s infinite alternate;
549
- -webkit-animation-delay: 1s;
550
- animation-delay: 1s;
551
- }
552
-
553
- @-webkit-keyframes dotFlashing {
554
- 0% {
555
- background-color: #3c434a;
556
- }
557
- 50%,
558
- 100% {
559
- background-color: #ebe6ff;
560
- }
561
- }
562
-
563
- @keyframes dotFlashing {
564
- 0% {
565
- background-color: #3c434a;
566
- }
567
- 50%,
568
- 100% {
569
- background-color: #ebe6ff;
570
- }
571
- }
572
-
573
- .wpr-templates-kit-not-found {
574
- display: none;
575
- -webkit-box-orient: vertical;
576
- -webkit-box-direction: normal;
577
- -ms-flex-direction: column;
578
- flex-direction: column;
579
- -webkit-box-align: center;
580
- -ms-flex-align: center;
581
- align-items: center
582
- }
583
-
584
- .wpr-templates-kit-not-found img {
585
- width: 180px;
586
- }
587
-
588
- .wpr-templates-kit-not-found h1 {
589
- margin: 0;
590
- }
591
-
592
- .wpr-templates-kit-not-found a {
593
- display: inline-block;
594
- padding: 10px 25px;
595
- margin-top: 15px;
596
- background: #6A4BFF;
597
- color: #fff;
598
- text-decoration: none;
599
- border-radius: 3px;
600
- }
601
-
602
- .wpr-templates-kit-not-found a:hover {
603
- background: #5836fd;
604
- }
605
-
606
- /* Disable Notices */
607
- .notice:not(.wpr-plugin-update-notice),
608
- div.fs-notice.updated, div.fs-notice.success {
609
- display: none !important;
610
  }
1
+ .royal-addons_page_wpr-templates-kit #wpwrap {
2
+ background: #F6F6F6;
3
+ }
4
+
5
+ .royal-addons_page_wpr-templates-kit #wpcontent {
6
+ padding: 0;
7
+ }
8
+
9
+ img {
10
+ display: block;
11
+ max-width: 100%;
12
+ width: 100%;
13
+ }
14
+
15
+ .wpr-templates-kit-page > header {
16
+ position: sticky;
17
+ top: 32px;
18
+ z-index: 99;
19
+ display: -webkit-box;
20
+ display: -ms-flexbox;
21
+ display: flex;
22
+ -webkit-box-pack: justify;
23
+ -ms-flex-pack: justify;
24
+ justify-content: space-between;
25
+ background: #fff;
26
+ -webkit-box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
27
+ box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
28
+ }
29
+
30
+ .wpr-templates-kit-logo {
31
+ display: -webkit-box;
32
+ display: -ms-flexbox;
33
+ display: flex;
34
+ }
35
+
36
+ .wpr-templates-kit-logo div {
37
+ padding: 20px;
38
+ border-right: 1px solid #e8e8e8;
39
+ }
40
+
41
+ .wpr-templates-kit-logo .back-btn {
42
+ display: none;
43
+ -webkit-box-align: center;
44
+ -ms-flex-align: center;
45
+ align-items: center;
46
+ font-weight: bold;
47
+ color: #6d7882;
48
+ cursor: pointer;
49
+ }
50
+
51
+ .wpr-templates-kit-logo .back-btn:hover {
52
+ color: #222;
53
+ }
54
+
55
+ .wpr-templates-kit-search {
56
+ display: -webkit-box;
57
+ display: -ms-flexbox;
58
+ display: flex;
59
+ -webkit-box-align: center;
60
+ -ms-flex-align: center;
61
+ align-items: center;
62
+ position: absolute;
63
+ top: 20px;
64
+ left: 50%;
65
+ -webkit-transform: translateX(-50%);
66
+ -ms-transform: translateX(-50%);
67
+ transform: translateX(-50%);
68
+ }
69
+
70
+ .wpr-templates-kit-search input {
71
+ width: 500px;
72
+ height: 45px;
73
+ padding-left: 15px;
74
+ border: 2px solid #e8e8e8 !important;
75
+ -webkit-box-shadow: none !important;
76
+ box-shadow: none !important;
77
+ }
78
+
79
+ .wpr-templates-kit-search .dashicons {
80
+ margin-left: -32px;
81
+ color: #777;
82
+ }
83
+
84
+ .wpr-templates-kit-price-filter {
85
+ position: relative;
86
+ width: 110px;
87
+ height: 40px;
88
+ margin: 20px;
89
+ border: 2px solid #e8e8e8;
90
+ line-height: 40px;
91
+ padding: 0 20px;
92
+ border-radius: 3px;
93
+ font-size: 14px;
94
+ cursor: pointer;
95
+ }
96
+
97
+ .wpr-templates-kit-price-filter .dashicons {
98
+ position: absolute;
99
+ right: 12px;
100
+ line-height: 40px;
101
+ font-size: 14px;
102
+ }
103
+
104
+ .wpr-templates-kit-price-filter:hover ul {
105
+ display: block;
106
+ }
107
+
108
+ .wpr-templates-kit-price-filter ul {
109
+ display: none;
110
+ background: #fff;
111
+ position: absolute;
112
+ width: 100%;
113
+ top: 26px;
114
+ left: -2px;
115
+ padding: 0;
116
+ border: 2px solid #e8e8e8;
117
+ }
118
+
119
+ .wpr-templates-kit-price-filter ul li {
120
+ padding: 0 20px;
121
+ line-height: 32px;
122
+ margin-bottom: 0 !important;
123
+ border-bottom: 1px solid #e8e8e8;
124
+ }
125
+
126
+ .wpr-templates-kit-price-filter ul li:last-child {
127
+ border-bottom: 0;
128
+ }
129
+
130
+ .wpr-templates-kit-price-filter ul li:hover {
131
+ background: #e8e8e8;
132
+ }
133
+
134
+ .wpr-templates-kit-filters {
135
+ display: none;
136
+ padding: 20px;
137
+ }
138
+
139
+ .wpr-templates-kit-filters div {
140
+ padding: 10px 20px;
141
+ border: 2px solid #e8e8e8;
142
+ border-radius: 3px;
143
+ font-size: 16px;
144
+ }
145
+
146
+ .wpr-templates-kit-filters ul {
147
+ display: none;
148
+ }
149
+
150
+ .wpr-templates-kit-page-title {
151
+ text-align: center;
152
+ margin-top: 65px;
153
+ margin-bottom: 35px;
154
+ }
155
+
156
+ .wpr-templates-kit-page-title h1 {
157
+ font-size: 35px;
158
+ color: #555;
159
+ }
160
+
161
+ .button.wpr-options-button {
162
+ padding: 3px 18px;
163
+ border: 0;
164
+ color: #fff;
165
+ background: #6A4BFF;
166
+ -webkit-box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
167
+ box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
168
+ font-size: 14px;
169
+ }
170
+
171
+ .button.wpr-options-button:hover,
172
+ .button.wpr-options-button:focus {
173
+ color: #fff;
174
+ background: #6A4BFF;
175
+ border: none;
176
+ }
177
+
178
+ .button.wpr-options-button .dashicons {
179
+ font-size: 16px;
180
+ line-height: 32px;
181
+ }
182
+
183
+ .wpr-templates-kit-grid {
184
+ display: -ms-grid;
185
+ display: grid;
186
+ -ms-grid-columns: 1fr 20px 1fr 20px 1fr 20px 1fr;
187
+ grid-template-columns: repeat(4, 1fr);
188
+ grid-column-gap: 30px;
189
+ grid-row-gap: 30px;
190
+ padding: 30px;
191
+ }
192
+
193
+
194
+ @media screen and (max-width: 1400px) {
195
+ .wpr-templates-kit-grid {
196
+ grid-template-columns: repeat(3, 1fr);
197
+ }
198
+ }
199
+
200
+ .wpr-templates-kit-grid .grid-item {
201
+ position: relative;
202
+ overflow: hidden;
203
+ border: 1px solid #e8e8e8;
204
+ -webkit-box-shadow: 0 0 3px 0 rgba(0,0,0,0.1);
205
+ box-shadow: 0 0 3px 0 rgba(0,0,0,0.1);
206
+ background: #fff;
207
+ }
208
+
209
+
210
+ .wpr-templates-kit-grid .grid-item[data-price="pro"]:before {
211
+ content: 'Premium';
212
+ display: block;
213
+ position: absolute;
214
+ top: 20px;
215
+ right: -30px;
216
+ z-index: 10;
217
+ -webkit-transform: rotate(45deg);
218
+ -ms-transform: rotate(45deg);
219
+ transform: rotate(45deg);
220
+ padding: 7px 40px;
221
+ font-size: 13px;
222
+ letter-spacing: .4px;
223
+ background: #6a4bff;
224
+ color: #fff;
225
+ -webkit-box-shadow: 0 0 5px 0 rgb(0 0 0 / 70%);
226
+ box-shadow: 0 0 5px 0 rgb(0 0 0 / 70%);
227
+ }
228
+
229
+ .wpr-templates-kit-grid .image-wrap {
230
+ position: relative;
231
+ border-bottom: 1px solid #e8e8e8;
232
+ }
233
+
234
+ .wpr-templates-kit-grid .image-wrap:hover .image-overlay {
235
+ opacity: 1;
236
+ }
237
+
238
+ .wpr-templates-kit-grid .image-overlay {
239
+ opacity: 0;
240
+ display: -webkit-box;
241
+ display: -ms-flexbox;
242
+ display: flex;
243
+ -webkit-box-align: center;
244
+ -ms-flex-align: center;
245
+ align-items: center;
246
+ -webkit-box-pack: center;
247
+ -ms-flex-pack: center;
248
+ justify-content: center;
249
+ position: absolute;
250
+ top: 0;
251
+ left: 0;
252
+ width: 100%;
253
+ height: 100%;
254
+ background: rgba(0,0,0,0.2);
255
+ cursor: pointer;
256
+ -webkit-transition: opacity 0.2s ease-in;
257
+ -o-transition: opacity 0.2s ease-in;
258
+ transition: opacity 0.2s ease-in;
259
+ }
260
+
261
+ .wpr-templates-kit-grid .image-overlay .dashicons {
262
+ font-size: 30px;
263
+ color: #fff;
264
+ }
265
+
266
+ .wpr-templates-kit-grid .grid-item footer {
267
+ display: -webkit-box;
268
+ display: -ms-flexbox;
269
+ display: flex;
270
+ padding: 15px;
271
+ -webkit-box-pack: justify;
272
+ -ms-flex-pack: justify;
273
+ justify-content: space-between;
274
+ }
275
+
276
+ .wpr-templates-kit-grid .grid-item footer h3 {
277
+ margin: 0;
278
+ font-size: 16px;
279
+ text-transform: capitalize;
280
+ }
281
+
282
+ .wpr-templates-kit-grid .grid-item footer span {
283
+ position: relative;
284
+ min-width: 77px;
285
+ height: 20px;
286
+ background-color: #5130ef;
287
+ color: #fff;
288
+ font-size: 12px;
289
+ padding: 2px 10px;
290
+ border-radius: 3px;
291
+ }
292
+
293
+ span.wpr-woo-builder-label {
294
+ background-color: #7B51AD !important;
295
+ text-align: center;
296
+ }
297
+
298
+ .wpr-templates-kit-grid .grid-item footer span:after {
299
+ display: none;
300
+ width: 125px;
301
+ position: absolute;
302
+ top: -50px;
303
+ left: 30%;
304
+ -webkit-transform: translateX(-50%);
305
+ -ms-transform: translateX(-50%);
306
+ transform: translateX(-50%);
307
+ padding: 7px 10px;
308
+ border-radius: 3px;
309
+ background-color: #333;
310
+ font-size: 12px;
311
+ line-height: 15px;
312
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,0.4);
313
+ box-shadow: 0 0 5px rgba(0,0,0,0.4);
314
+ }
315
+
316
+ .wpr-templates-kit-grid .grid-item footer span.wpr-theme-builder-label:after {
317
+ content: "This Kit includes Theme Builder templates.";
318
+ }
319
+
320
+ .wpr-templates-kit-grid .grid-item footer span.wpr-woo-builder-label:after {
321
+ content: "This Kit includes WooCommerce Builder templates.";
322
+ }
323
+
324
+ .wpr-templates-kit-grid .grid-item footer span:hover:after {
325
+ display: block;
326
+ }
327
+
328
+ .wpr-templates-kit-single {
329
+ display: none;
330
+ }
331
+
332
+ .wpr-templates-kit-single .grid-item a {
333
+ text-decoration: none;
334
+ }
335
+
336
+ .wpr-templates-kit-single .action-buttons-wrap {
337
+ display: -webkit-box;
338
+ display: -ms-flexbox;
339
+ display: flex;
340
+ -webkit-box-pack: justify;
341
+ -ms-flex-pack: justify;
342
+ justify-content: space-between;
343
+ position: fixed;
344
+ bottom: 0;
345
+ left: 0;
346
+ right: 0;
347
+ z-index: 10;
348
+ padding: 25px 30px;
349
+ background: #fff;
350
+ -webkit-box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
351
+ box-shadow: 0 0 7px 0 rgba(0,0,0,0.2);
352
+ }
353
+
354
+ .action-buttons-wrap a,
355
+ .action-buttons-wrap button {
356
+ padding: 5px 25px !important;
357
+ }
358
+
359
+ .wpr-templates-kit-single .preview-demo .dashicons {
360
+ font-size: 14px;
361
+ line-height: 28px;
362
+ }
363
+
364
+ .wpr-templates-kit-single .import-kit,
365
+ .wpr-templates-kit-single .get-access {
366
+ background: #6A4BFF;
367
+ color: #fff;
368
+ }
369
+
370
+ .wpr-templates-kit-single .import-kit:hover,
371
+ .wpr-templates-kit-single .import-kit:focus,
372
+ .wpr-templates-kit-single .get-access:hover,
373
+ .wpr-templates-kit-single .get-access:focus {
374
+ background: #5130ef;
375
+ color: #fff;
376
+ -webkit-box-shadow: none !important;
377
+ box-shadow: none !important;
378
+ }
379
+
380
+ .wpr-templates-kit-single .import-kit .dashicons,
381
+ .wpr-templates-kit-single .get-access .dashicons {
382
+ font-size: 14px;
383
+ line-height: 30px;
384
+ }
385
+
386
+ .wpr-templates-kit-single .selected-template {
387
+ border: 1px solid #2271B1;
388
+ -webkit-box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
389
+ box-shadow: 0 0 5px 0 rgba(0,0,0,0.1);
390
+ }
391
+
392
+ .import-template-buttons .import-template {
393
+ display: none;
394
+ }
395
+
396
+ .wpr-templates-kit-single .import-template strong {
397
+ text-transform: capitalize;
398
+ }
399
+
400
+ .wpr-import-kit-popup-wrap {
401
+ display: none;
402
+ position: relative;
403
+ z-index: 9999999;
404
+ }
405
+
406
+ .wpr-import-kit-popup-wrap .overlay {
407
+ position: fixed;
408
+ top: 0;
409
+ left: 0;
410
+ z-index: 9999999;
411
+ width: 100%;
412
+ height: 100%;
413
+ background: rgba(0,0,0,0.5);
414
+ }
415
+
416
+ .wpr-import-help {
417
+ margin-top: 20px;
418
+ text-align: right;
419
+ }
420
+
421
+ .wpr-import-help a {
422
+ width: 50%;
423
+ font-size: 12px;
424
+ text-align: right;
425
+ text-decoration: none;
426
+ color: #8F5D64;
427
+ }
428
+
429
+ .wpr-import-help a:hover {
430
+ text-decoration: underline;
431
+ }
432
+
433
+ .wpr-import-help a span {
434
+ vertical-align: middle;
435
+ margin-bottom: 2px;
436
+ font-size: 12px !important;
437
+ width: 12px !important;
438
+ height: 12px !important;
439
+ text-decoration: none !important
440
+ }
441
+
442
+ .wpr-import-kit-popup {
443
+ overflow: hidden;
444
+ position: fixed;
445
+ top: 50%;
446
+ left: 50%;
447
+ -webkit-transform: translate(-50%,-50%);
448
+ -ms-transform: translate(-50%,-50%);
449
+ transform: translate(-50%,-50%);
450
+ z-index: 9999999;
451
+ width: 555px;
452
+ background: #f5f5f5;
453
+ border-radius: 3px;
454
+ }
455
+
456
+ .wpr-import-kit-popup header {
457
+ display: -webkit-box;
458
+ display: -ms-flexbox;
459
+ display: flex;
460
+ -webkit-box-pack: justify;
461
+ -ms-flex-pack: justify;
462
+ justify-content: space-between;
463
+ padding-left: 25px;
464
+ -webkit-box-shadow: 2px 0 5px 0 rgba(0,0,0,0.2);
465
+ box-shadow: 2px 0 5px 0 rgba(0,0,0,0.2);
466
+ }
467
+
468
+ .wpr-import-kit-popup .close-btn {
469
+ display: none;
470
+ height: 50px;
471
+ line-height: 50px;
472
+ width: 50px;
473
+ cursor: pointer;
474
+ border-left: 1px solid #eee;
475
+ color: #aaa;
476
+ font-size: 22px;
477
+ }
478
+
479
+ .wpr-import-kit-popup .content {
480
+ padding: 25px;
481
+ }
482
+
483
+ .wpr-import-kit-popup .content p:first-child {
484
+ margin-top: 0;
485
+ }
486
+
487
+ .wpr-import-kit-popup .progress-wrap {
488
+ background: #fff;
489
+ border-radius: 3px;
490
+ margin-top: 25px;
491
+ }
492
+
493
+ .wpr-import-kit-popup .progress-wrap strong {
494
+ padding: 10px;
495
+ display: block;
496
+ }
497
+
498
+ .wpr-import-kit-popup .progress-bar {
499
+ width: 30px;
500
+ height: 4px;
501
+ background: #2271B1;
502
+ }
503
+
504
+ .dot-flashing {
505
+ display: inline-block;
506
+ margin-left: 10px;
507
+ margin-bottom: -1px;
508
+ position: relative;
509
+ width: 3px;
510
+ height: 3px;
511
+ border-radius: 10px;
512
+ background-color: #3c434a;
513
+ color: #3c434a;
514
+ -webkit-animation: dotFlashing 1s infinite linear alternate;
515
+ animation: dotFlashing 1s infinite linear alternate;
516
+ -webkit-animation-delay: .5s;
517
+ animation-delay: .5s;
518
+ }
519
+
520
+ .dot-flashing::before, .dot-flashing::after {
521
+ content: '';
522
+ display: inline-block;
523
+ position: absolute;
524
+ top: 0;
525
+ }
526
+
527
+ .dot-flashing::before {
528
+ left: -6px;
529
+ width: 3px;
530
+ height: 3px;
531
+ border-radius: 10px;
532
+ background-color: #3c434a;
533
+ color: #3c434a;
534
+ -webkit-animation: dotFlashing 1s infinite alternate;
535
+ animation: dotFlashing 1s infinite alternate;
536
+ -webkit-animation-delay: 0s;
537
+ animation-delay: 0s;
538
+ }
539
+
540
+ .dot-flashing::after {
541
+ left: 6px;
542
+ width: 3px;
543
+ height: 3px;
544
+ border-radius: 10px;
545
+ background-color: #3c434a;
546
+ color: #3c434a;
547
+ -webkit-animation: dotFlashing 1s infinite alternate;
548
+ animation: dotFlashing 1s infinite alternate;
549
+ -webkit-animation-delay: 1s;
550
+ animation-delay: 1s;
551
+ }
552
+
553
+ @-webkit-keyframes dotFlashing {
554
+ 0% {
555
+ background-color: #3c434a;
556
+ }
557
+ 50%,
558
+ 100% {
559
+ background-color: #ebe6ff;
560
+ }
561
+ }
562
+
563
+ @keyframes dotFlashing {
564
+ 0% {
565
+ background-color: #3c434a;
566
+ }
567
+ 50%,
568
+ 100% {
569
+ background-color: #ebe6ff;
570
+ }
571
+ }
572
+
573
+ .wpr-templates-kit-not-found {
574
+ display: none;
575
+ -webkit-box-orient: vertical;
576
+ -webkit-box-direction: normal;
577
+ -ms-flex-direction: column;
578
+ flex-direction: column;
579
+ -webkit-box-align: center;
580
+ -ms-flex-align: center;
581
+ align-items: center
582
+ }
583
+
584
+ .wpr-templates-kit-not-found img {
585
+ width: 180px;
586
+ }
587
+
588
+ .wpr-templates-kit-not-found h1 {
589
+ margin: 0;
590
+ }
591
+
592
+ .wpr-templates-kit-not-found a {
593
+ display: inline-block;
594
+ padding: 10px 25px;
595
+ margin-top: 15px;
596
+ background: #6A4BFF;
597
+ color: #fff;
598
+ text-decoration: none;
599
+ border-radius: 3px;
600
+ }
601
+
602
+ .wpr-templates-kit-not-found a:hover {
603
+ background: #5836fd;
604
+ }
605
+
606
+ /* Disable Notices */
607
+ .notice:not(.wpr-plugin-update-notice),
608
+ div.fs-notice.updated, div.fs-notice.success {
609
+ display: none !important;
610
  }
assets/css/editor.min.css CHANGED
@@ -1,1004 +1,1004 @@
1
- /*--------------------------------------------------------------
2
- == General
3
- --------------------------------------------------------------*/
4
- .wpr-elementor-hidden-control {
5
- overflow: hidden;
6
- width: 0 !important;
7
- height: 0 !important;
8
- padding: 0 !important;
9
- margin: 0 !important;
10
- visibility: hidden !important;
11
- opacity: 0 !important;
12
- }
13
-
14
-
15
- /*--------------------------------------------------------------
16
- == WPR Widgets
17
- --------------------------------------------------------------*/
18
- .elementor-panel .wpr-icon:after {
19
- content: 'R';
20
- display: block;
21
- position: absolute;
22
- top: 3px;
23
- right: 3px;
24
- font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
25
- font-size: 10px;
26
- font-weight: bold;
27
- color: #ffffff;
28
- background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
29
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
30
- background-image: linear-gradient(#6A4BFF, #7E94FE);
31
- -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
32
- box-shadow: 0 0 2px 2px #b8c7ff;
33
- width: 19px;
34
- height: 19px;
35
- line-height: 19px;
36
- border-radius: 15px;
37
- margin: 3px;
38
- }
39
-
40
- .elementor-panel .elementor-element .icon {
41
- position: relative !important;
42
- }
43
-
44
- .elementor-element--promotion .wpr-icon:after {
45
- top: 22px;
46
- right: -1px;
47
- opacity: 0.7;
48
- }
49
-
50
- #elementor-element--promotion__dialog .dialog-button {
51
- text-align: center;
52
- }
53
-
54
- .elementor-control-type-section[class*="elementor-control-wpr_section_"]:after {
55
- content: 'R';
56
- display: block;
57
- position: absolute;
58
- top: 7px;
59
- right: 7px;
60
- font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
61
- font-size: 10px;
62
- font-weight: bold;
63
- color: #ffffff;
64
- background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
65
- background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
66
- background-image: linear-gradient(#6A4BFF, #7E94FE);
67
- -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
68
- box-shadow: 0 0 2px 2px #b8c7ff;
69
- width: 19px;
70
- height: 19px;
71
- line-height: 19px;
72
- border-radius: 15px;
73
- margin: 3px;
74
- text-align: center;
75
- }
76
-
77
- /*--------------------------------------------------------------
78
- == Adjustments
79
- --------------------------------------------------------------*/
80
- .elementor-control-element_select,
81
- .elementor-control-element_align_hr,
82
- .elementor-control-element_read_more_text,
83
- .elementor-control-element_tax_sep,
84
- .elementor-control-element_sharing_icon_6,
85
- .elementor-control-element_sharing_trigger_direction,
86
- .elementor-control-element_sharing_icon_display,
87
- .elementor-control-element_sharing_tooltip,
88
- .elementor-control-element_custom_field_wrapper_html,
89
- .elementor-control-slider_item_bg_size,
90
- .elementor-control-element_addcart_variable_txt,
91
- .elementor-control-type,
92
- .elementor-control-show_last_update_date {
93
- margin-bottom: 15px;
94
- }
95
-
96
- .elementor-control-slider_content_bg_color,
97
- .elementor-control-slider_nav_border_border,
98
- .elementor-control-slider_nav_border_radius,
99
- .elementor-control-scroll_btn_vr,
100
- .elementor-control-pagination_load_more_text,
101
- .elementor-control-pagination_finish_text,
102
- .elementor-control-pagination_prev_next,
103
- .elementor-control-author_transition_duration,
104
- .elementor-control-comments_transition_duration,
105
- .elementor-control-likes_transition_duration,
106
- .elementor-control-sharing_transition_duration,
107
- .elementor-control-lightbox_transition_duration,
108
- .elementor-control-custom_field1_transition_duration,
109
- .elementor-control-custom_field2_transition_duration,
110
- .elementor-control-custom_field3_transition_duration,
111
- .elementor-control-custom_field4_transition_duration,
112
- .elementor-control-filters_transition_duration,
113
- .elementor-control-pagination_transition_duration,
114
- .elementor-control-element_extra_text_pos,
115
- .elementor-control-element_custom_field_wrapper,
116
- .elementor-control-overlay_post_link,
117
- .elementor-control-read_more_animation_height,
118
- .elementor-control-archive_link_transition_duration,
119
- .elementor-control-post_info_tax_select,
120
- .elementor-control-post_info_link_wrap,
121
- .elementor-control-post_info_modified_time,
122
- .elementor-control-tabs_sharing_custom_colors,
123
- .elementor-control-post_info_show_avatar,
124
- .elementor-control-post_info_cf,
125
- .elementor-control-pricing_items .elementor-control-price,
126
- .elementor-control-pricing_items .elementor-control-feature_text,
127
- .elementor-control-pricing_items .elementor-control-btn_text,
128
- .elementor-control-divider_style,
129
- .elementor-control-filters_pointer,
130
- .elementor-control-title_transition_duration,
131
- .elementor-control-tax1_transition_duration,
132
- .elementor-control-tax2_transition_duration,
133
- .elementor-control-filters_transition_duration,
134
- .elementor-control-pagination_older_text,
135
- .elementor-control-tooltip_position,
136
- .elementor-control-post_info_comments_text_1,
137
- .elementor-control-element_letter_count {
138
- padding-top: 15px !important;
139
- }
140
-
141
- .elementor-control-post_info_custom_field_video_tutorial {
142
- margin-top: 15px;
143
- }
144
-
145
- .elementor-control-title_pointer_animation + .elementor-control-title_transition_duration,
146
- .elementor-control-tax1_pointer_animation + .elementor-control-tax1_transition_duration,
147
- .elementor-control-tax2_pointer_animation + .elementor-control-tax2_transition_duration,
148
- .elementor-control-filters_pointer_animation + .elementor-control-filters_transition_duration {
149
- padding-top: 0 !important;
150
- }
151
-
152
- .elementor-control-pagination_load_more_text {
153
- padding-bottom: 0 !important;
154
- }
155
-
156
- .elementor-control-filters_transition_duration,
157
- .elementor-control-show_last_update_date {
158
- padding-top: 0 !important;
159
- }
160
-
161
- .elementor-control-animation_divider,
162
- .elementor-control-overlay_divider,
163
- .elementor-control-slider_item_btn_1_divider,
164
- .elementor-control-slider_item_btn_2_divider,
165
- .elementor-control-slider_btn_typography_1_divider,
166
- .elementor-control-slider_btn_box_shadow_1_divider,
167
- .elementor-control-slider_btn_typography_2_divider,
168
- .elementor-control-slider_btn_box_shadow_2_divider,
169
- .elementor-control-testimonial_title_divider,
170
- .elementor-control-social_media_divider,
171
- .elementor-control-social_divider_1,
172
- .elementor-control-social_divider_2,
173
- .elementor-control-social_divider_3,
174
- .elementor-control-social_divider_4,
175
- .elementor-control-social_divider_5,
176
- .elementor-control-custom_field_wrapper_html_divider1,
177
- .elementor-control-custom_field_wrapper_html_divider2,
178
- .elementor-control-lightbox_shadow_divider {
179
- padding: 0 !important;
180
- }
181
-
182
- .elementor-control-custom_field_wrapper_html_divider1 hr,
183
- .elementor-control-lightbox_shadow_divider hr {
184
- height: 1px !important;
185
- }
186
-
187
- .elementor-control-element_show_on {
188
- padding-top: 15px !important;
189
- border-top: 1px solid #d5dadf;
190
- }
191
-
192
- [class*="wpr__section_"] ~ .elementor-control-type-number .elementor-control-input-wrapper,
193
- [class*="wpr__section_"] ~ .elementor-control-type-repeater .elementor-control-type-number .elementor-control-input-wrapper {
194
- max-width: 30% !important;
195
- margin-left: auto !important;
196
- }
197
-
198
- [class*="wpr__section_"] ~ .elementor-control-type-select .elementor-control-input-wrapper,
199
- [class*="wpr__section_"] ~ .elementor-control-type-repeater .elementor-control-type-select .elementor-control-input-wrapper {
200
- width: auto !important;
201
- min-width: 30% !important;
202
- margin-left: auto !important;
203
- }
204
-
205
- .elementor-control-submit_preview_changes .elementor-control-input-wrapper {
206
- text-align: center !important;
207
- }
208
-
209
- .elementor-control-query_manual_related,
210
- .elementor-control-query_manual_current {
211
- display: none !important;
212
- }
213
-
214
- /* Fix Select Inputs */
215
- .elementor-control-button_hover_animation .elementor-control-input-wrapper,
216
- .elementor-control-front_btn_animation .elementor-control-input-wrapper,
217
- .elementor-control-back_btn_animation .elementor-control-input-wrapper {
218
- width: 135px !important;
219
- }
220
-
221
- .elementor-control-type-repeater .elementor-control-content > label {
222
- display: none !important;
223
- }
224
-
225
-
226
- /*--------------------------------------------------------------
227
- == Notification
228
- --------------------------------------------------------------*/
229
- #wpr-template-settings-notification {
230
- position: fixed;
231
- left: 40px;
232
- bottom: 5px;
233
- z-index: 9999;
234
- padding: 13px 25px;
235
- background: #fff;
236
- color: #222;
237
- -webkit-box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.3);
238
- box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.3);
239
- border-radius: 3px;
240
- }
241
-
242
- #wpr-template-settings-notification:before {
243
- content: "";
244
- position: absolute;
245
- left: -6px;
246
- bottom: 10px;
247
- width: 0;
248
- height: 0;
249
- border-top: 6px solid transparent;
250
- border-bottom: 6px solid transparent;
251
- border-right-style: solid;
252
- border-right-width: 6px;
253
- border-right-color: #fff;
254
- }
255
-
256
- #wpr-template-settings-notification h4 {
257
- margin-bottom: 10px;
258
- }
259
-
260
- #wpr-template-settings-notification h4 span {
261
- font-size: 14px;
262
- vertical-align: super;
263
- color: #5f5f5f;
264
- }
265
-
266
- #wpr-template-settings-notification h4 i {
267
- margin-right: 10px;
268
- color: #3db050;
269
- font-size: 24px;
270
- }
271
-
272
- #wpr-template-settings-notification p {
273
- color: #666;
274
- font-size: 12px;
275
- line-height: 1.5;
276
- }
277
-
278
- #wpr-template-settings-notification > i {
279
- position: absolute;
280
- top: 7px;
281
- right: 7px;
282
- cursor: pointer;
283
- color: #999;
284
- }
285
-
286
- .elementor-control-cf7_notice,
287
- .elementor-control-wpforms_notice,
288
- .elementor-control-ninja_forms_notice,
289
- .elementor-control-caldera_notice {
290
- color: red;
291
- }
292
-
293
- /* Help Button - select with referrals - [href^="https://royal-elementor-addons.com/contact/"] */
294
- #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"] {
295
- display: inline-block;
296
- padding: 12px 35px;
297
- font-size: 13px;
298
- font-weight: normal;
299
- color: #fff;
300
- background: #6A65FF;
301
- border-radius: 3px;
302
- -webkit-box-shadow: 0 2px 7px 0 rgba(0,0,0,0.3);
303
- box-shadow: 0 2px 7px 0 rgba(0,0,0,0.3);
304
- letter-spacing: 0.3px;
305
- -webkit-transition: all 0.2s ease-in;
306
- -o-transition: all 0.2s ease-in;
307
- transition: all 0.2s ease-in;
308
- }
309
-
310
- #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover {
311
- color: #fff;
312
- background: #6A4BFF;
313
- }
314
-
315
- #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"] i {
316
- color: #fff;
317
- font-size: 14px;
318
- vertical-align: top;
319
- }
320
-
321
- #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover i {
322
- color: #fff;
323
- }
324
-
325
- #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover i:before {
326
- content: '\e942' !important;
327
- }
328
-
329
- .elementor-control-posts_slider_notice .elementor-control-raw-html {
330
- font-style: normal !important;
331
- }
332
-
333
- .elementor-control-product_notice_widget_info .elementor-control-raw-html {
334
- color: red;
335
- }
336
-
337
-
338
- /*--------------------------------------------------------------
339
- == Modal Popup Editor
340
- --------------------------------------------------------------*/
341
- .elementor-editor-wpr-popups .elementor-control-document_settings,
342
- .elementor-editor-wpr-popups .elementor-control-post_title,
343
- .elementor-editor-wpr-popups .elementor-control-post_status {
344
- display: none !important;
345
- }
346
-
347
-
348
- /*--------------------------------------------------------------
349
- == Elementor Editor Popup
350
- --------------------------------------------------------------*/
351
- #wpr-template-editor-popup .dialog-widget-content {
352
- width: 90vw;
353
- height: 90vh;
354
- }
355
-
356
- #wpr-template-editor-popup .dialog-message {
357
- padding: 0;
358
- width: 100%;
359
- height: 100%;
360
- }
361
-
362
- #wpr-template-editor-popup .dialog-close-button {
363
- font-size: 24px;
364
- color: #222;
365
- }
366
-
367
- #wpr-template-editor-popup .dialog-header {
368
- display: none;
369
- }
370
-
371
- #wpr-template-editor-loading {
372
- position: absolute;
373
- top: 0;
374
- left: 0;
375
- width: 100%;
376
- height: 100%;
377
- background: #f1f3f5;
378
- z-index: 9999;
379
- -webkit-transform: translateZ(0);
380
- transform: translateZ(0);
381
- display: -webkit-box;
382
- display: -ms-flexbox;
383
- display: flex;
384
- -webkit-box-pack: center;
385
- -ms-flex-pack: center;
386
- justify-content: center;
387
- -webkit-box-align: center;
388
- -ms-flex-align: center;
389
- align-items: center;
390
- }
391
-
392
- #wpr-template-editor-loading .elementor-loader-wrapper {
393
- top: auto;
394
- left: auto;
395
- -webkit-transform: none;
396
- -ms-transform: none;
397
- transform: none;
398
- }
399
-
400
- /* Disable Transitions on Responsive Preview */
401
- #elementor-preview-responsive-wrapper {
402
- -webkit-transition: none !important;
403
- -o-transition: none !important;
404
- transition: none !important;
405
- }
406
-
407
-
408
- /*--------------------------------------------------------------
409
- == Magazine Grid Layout
410
- --------------------------------------------------------------*/
411
- .elementor-control-layout_select.elementor-control .elementor-control-field {
412
- -webkit-box-orient: vertical !important;
413
- -webkit-box-direction: normal !important;
414
- -ms-flex-direction: column !important;
415
- flex-direction: column !important;
416
- -webkit-box-align: start;
417
- -ms-flex-align: start;
418
- align-items: flex-start;
419
- }
420
-
421
- .elementor-control-layout_select.elementor-control .elementor-control-input-wrapper {
422
- display: -webkit-box;
423
- display: -ms-flexbox;
424
- display: flex;
425
- width: 100% !important;
426
- margin-top: 10px;
427
- }
428
-
429
- .elementor-control-layout_select.elementor-control .elementor-choices {
430
- -ms-flex-wrap: wrap;
431
- flex-wrap: wrap;
432
- -webkit-box-align: stretch;
433
- -ms-flex-align: stretch;
434
- align-items: stretch;
435
- width: 100% !important;
436
- height: auto;
437
- border: 1px solid #dfd5d5;
438
- }
439
-
440
- .elementor-control-layout_select.elementor-control .elementor-choices label {
441
- width: 33.3%;
442
- height: 50px;
443
- background-size: 75%;
444
- background-position: center center;
445
- background-repeat: no-repeat;
446
- }
447
-
448
- .elementor-control-layout_select input[type="radio"]:checked + label {
449
- border: 2px solid #D30C5C;
450
- border-radius: 0 !important;
451
- background-color: #ffffff;
452
- }
453
-
454
- .elementor-control-layout_select label:nth-child(2) {
455
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='15.2' class='st1' width='22.2' height='11.9'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='9.2'/%3E%3C/g%3E%3C/svg%3E");
456
- }
457
-
458
- .elementor-control-layout_select label:nth-child(4) {
459
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
460
- }
461
-
462
- .elementor-control-layout_select label:nth-child(6) {
463
- background: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Cg%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
464
- }
465
-
466
- .elementor-control-layout_select label:nth-child(8) {
467
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
468
- }
469
-
470
- .elementor-control-layout_select label:nth-child(10) {
471
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='13.9' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3Crect x='2.3' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='2.3' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
472
- }
473
-
474
- .elementor-control-layout_select label:nth-child(12) {
475
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='28.5' height='22.2'/%3E%3Crect x='31.8' y='12.9' class='st1' width='15.9' height='6.3'/%3E%3Crect x='31.8' y='4.9' class='st1' width='15.9' height='6.8'/%3E%3Crect x='31.8' y='20.3' class='st1' width='15.9' height='6.8'/%3E%3C/g%3E%3C/svg%3E");
476
- }
477
-
478
- .elementor-control-layout_select label:nth-child(14) {
479
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='13.9' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='2.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
480
- }
481
-
482
- .elementor-control-layout_select label:nth-child(16) {
483
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='33.9' height='13.2'/%3E%3Crect x='2.2' y='19.3' class='st1' width='16.4' height='7.8'/%3E%3Crect x='19.7' y='19.3' class='st1' width='16.4' height='7.8'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='13.2'/%3E%3Crect x='37.2' y='19.3' class='st1' width='10.5' height='7.8'/%3E%3C/g%3E%3C/svg%3E");
484
- }
485
-
486
- .elementor-control-layout_select label:nth-child(18) {
487
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='12.1'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='12.1'/%3E%3Crect x='2.2' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3Crect x='17.8' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3Crect x='33.3' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3C/g%3E%3C/svg%3E");
488
- }
489
-
490
- .elementor-control-layout_select label:nth-child(20) {
491
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
492
- }
493
-
494
- .elementor-control-layout_select label:nth-child(22) {
495
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='14.5' height='22.2'/%3E%3Crect x='33.4' y='4.9' class='st1' width='14.4' height='22.2'/%3E%3Crect x='17.9' y='4.9' class='st1' width='14.4' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
496
- }
497
-
498
- .elementor-control-layout_select label:nth-child(24) {
499
- background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='10.6' height='22.2'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='14' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
500
- }
501
-
502
- /*--------------------------------------------------------------
503
- == Widget Preview and Library buttons
504
- --------------------------------------------------------------*/
505
-
506
- .elementor-control-wpr_library_buttons .wpr-forms a:last-child,
507
- .elementor-control-wpr_library_buttons .wpr-phone-call a:last-child,
508
- .elementor-control-wpr_library_buttons .wpr-back-to-top a:last-child,
509
- .elementor-control-wpr_library_buttons .wpr-lottie-animations a:last-child,
510
- .elementor-control-wpr_library_buttons .wpr-feature-list a:last-child,
511
- .elementor-control-wpr_library_buttons .wpr-reading-progress-bar a:last-child,
512
- .elementor-control-wpr_library_buttons .wpr-dual-color-heading a:last-child,
513
- .elementor-control-wpr_library_buttons .wpr-flip-carousel a:last-child,
514
- .elementor-control-wpr_library_buttons .wpr-advanced-accordion a:last-child,
515
- .elementor-control-wpr_library_buttons .wpr-image-accordion a:last-child,
516
- .elementor-control-wpr_library_buttons .wpr-mega-menu a:last-child,
517
- .elementor-control-wpr_library_buttons .wpr-charts a:last-child {
518
- display: none;
519
- }
520
-
521
- .elementor-control-wpr_library_buttons {
522
- height: 60px;
523
- padding: 0;
524
- }
525
-
526
- .elementor-control-wpr_library_buttons .elementor-control-raw-html {
527
- padding: 0 10px 10px 10px;
528
- border-bottom: 1px solid #efefef;
529
- }
530
-
531
- .elementor-control-wpr_library_buttons .elementor-control-raw-html div {
532
- display: -webkit-box;
533
- display: -ms-flexbox;
534
- display: flex;
535
- -webkit-box-pack: center;
536
- -ms-flex-pack: center;
537
- justify-content: center;
538
- }
539
-
540
- .elementor-control-wpr_library_buttons .elementor-control-raw-html div a {
541
- -webkit-box-flex: 1;
542
- -ms-flex-positive: 1;
543
- flex-grow: 1;
544
- padding: 10px 15px;
545
- border-radius: 3px;
546
- /*box-shadow: 1px 2px 5px 0 rgba(0,0,0,0.2);*/
547
- white-space: nowrap;
548
- overflow: hidden;
549
- -o-text-overflow: ellipsis;
550
- text-overflow: ellipsis;
551
- text-align: center;
552
- }
553
- .elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child {
554
- background-color: #1CB4E4;
555
- color: #fff;
556
- margin-right: 3px;
557
- }
558
- .elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child {
559
- margin-left: 3px;
560
- background-color: #6A65FF;
561
- color: #fff;
562
- }
563
-
564
- .elementor-control-wpr_library_buttons .elementor-control-raw-html > a {
565
- display: block;
566
- margin-top: 10px;
567
- line-height: 20px;
568
- color: #777;
569
- border: none !important;
570
- }
571
-
572
- .elementor-section-title > a {
573
- top: 10px;
574
- right: 20px;
575
- position: absolute;
576
- line-height: 20px;
577
- font-size: 12px;
578
- }
579
-
580
- .elementor-section-title > a:hover {
581
- border-color: transparent;
582
- }
583
-
584
- .elementor-section-title > a .dashicons {
585
- font-size: 16px;
586
- vertical-align: middle;
587
- }
588
-
589
-
590
- /*--------------------------------------------------------------
591
- == Apply Changes Button
592
- --------------------------------------------------------------*/
593
- .editor-wpr-preview-update {
594
- margin: 0;
595
- display: -webkit-box;
596
- display: -ms-flexbox;
597
- display: flex;
598
- -webkit-box-pack: justify;
599
- -ms-flex-pack: justify;
600
- justify-content: space-between;
601
- }
602
-
603
- .editor-wpr-preview-update button {
604
- font-size: 13px;
605
- padding: 5px 10px;
606
- }
607
-
608
-
609
- /*--------------------------------------------------------------
610
- == Free/Pro Options
611
- --------------------------------------------------------------*/
612
- .elementor-control select option[value*=pro-] {
613
- background: #f0f0f0;
614
- }
615
-
616
- .elementor-control[class*="pro_notice"] {
617
- padding: 5px 0 15px 0 !important;
618
- }
619
-
620
- .wpr-pro-notice {
621
- padding: 20px;
622
- border-top: 1px solid #e6e9ec;
623
- border-bottom: 1px solid #e6e9ec;
624
- background-color: #f2fbff;
625
- line-height: 1.4;
626
- text-align: center;
627
- }
628
-
629
- .wpr-pro-notice-video {
630
- display: block;
631
- margin-top: 7px;
632
- line-height: 20px;
633
- border: none !important;
634
- }
635
-
636
- #elementor-controls .elementor-control-slider_section_pro_notice {
637
- margin-top: -16px;
638
- padding-bottom: 0 !important;
639
- }
640
-
641
- .elementor-control-layout_select_pro_notice + div,
642
- .elementor-control-element_align_pro_notice + div {
643
- padding-top: 15px;
644
- }
645
-
646
- .elementor-control-layout_select .elementor-choices label {
647
- position: relative;
648
- }
649
-
650
- .elementor-control-layout_select .elementor-choices label:nth-child(2):after,
651
- .elementor-control-layout_select .elementor-choices label:nth-child(4):after,
652
- .elementor-control-layout_select .elementor-choices label:nth-child(6):after,
653
- .elementor-control-layout_select .elementor-choices label:nth-child(8):after,
654
- .elementor-control-layout_select .elementor-choices label:nth-child(10):after,
655
- .elementor-control-layout_select .elementor-choices label:nth-child(12):after {
656
- content: ' ';
657
- display: block;
658
- width: 100%;
659
- height: 100%;
660
- position: absolute;
661
- top: 0;
662
- left: 0;
663
- background: rgba(0,0,0,0.2);
664
- }
665
-
666
- /* Adjustments */
667
- .elementor-control.elementor-control-element_align_pro_notice,
668
- .elementor-control.elementor-control-search_pro_notice,
669
- .elementor-control.elementor-control-layout_select_pro_notice,
670
- .elementor-control.elementor-control-grid_columns_pro_notice,
671
- .elementor-control.elementor-control-slider_content_type_pro_notice,
672
- .elementor-control.elementor-control-slider_repeater_pro_notice,
673
- .elementor-control.elementor-control-slider_dots_layout_pro_notice,
674
- .elementor-control.elementor-control-testimonial_repeater_pro_notice,
675
- .elementor-control.elementor-control-testimonial_icon_pro_notice,
676
- .elementor-control.elementor-control-menu_layout_pro_notice,
677
- .elementor-control.elementor-control-menu_items_submenu_entrance_pro_notice,
678
- .elementor-control.elementor-control-switcher_label_style_pro_notice,
679
- .elementor-control.elementor-control-countdown_type_pro_notice,
680
- .elementor-control.elementor-control-layout_pro_notice,
681
- .elementor-control.elementor-control-anim_timing_pro_notice,
682
- .elementor-control.elementor-control-tab_content_type_pro_notice,
683
- .elementor-control.elementor-control-tabs_repeater_pro_notice,
684
- .elementor-control.elementor-control-tabs_align_pro_notice,
685
- .elementor-control.elementor-control-front_trigger_pro_notice,
686
- .elementor-control.elementor-control-back_link_type_pro_notice,
687
- .elementor-control.elementor-control-box_anim_timing_pro_notice,
688
- .elementor-control.elementor-control-image_style_pro_notice,
689
- .elementor-control.elementor-control-image_animation_timing_pro_notice,
690
- .elementor-control.elementor-control-label_display_pro_notice,
691
- .elementor-control.elementor-control-post_type_pro_notice,
692
- .elementor-control.elementor-control-type_select_pro_notice,
693
- .elementor-control.elementor-control-icon_style_pro_notice,
694
- .elementor-control.elementor-control-dual_button_pro_notice,
695
- .elementor-control.elementor-control-team_member_pro_notice,
696
- .elementor-control.elementor-control-price_list_pro_notice,
697
- .elementor-control.elementor-control-business_hours_pro_notice,
698
- .elementor-control.elementor-control-sharing_columns_pro_notice,
699
- .elementor-control.elementor-control-popup_trigger_pro_notice,
700
- .elementor-control.elementor-control-popup_show_again_delay_pro_notice,
701
- .elementor-control.elementor-control-group_popup_settings_pro_notice,
702
- .elementor-control.elementor-control-which_particle_pro_notice,
703
- .elementor-control.elementor-control-paralax_repeater_pro_notice,
704
- .elementor-control.elementor-control-opnepage_pro_notice,
705
- .elementor-control.elementor-control-timeline_repeater_pro_notice,
706
- .elementor-control.elementor-control-limit_grid_items_pro_notice,
707
- .elementor-control.elementor-control-post_nav_layout_pro_notice,
708
- .elementor-control.elementor-control-author_name_links_to_pro_notice,
709
- .elementor-control.elementor-control-author_title_links_to_pro_notice,
710
- .elementor-control.elementor-control-comments_form_layout_pro_notice,
711
- .elementor-control.elementor-control-sharing_repeater_pro_notice,
712
- .elementor-control.elementor-control-mini_cart_style_pro_notice,
713
- .elementor-control.elementor-control-tabs_position_pro_notice,
714
- .elementor-control.elementor-control-choose_table_type_pro_notice,
715
- .elementor-control.elementor-control-accordion_repeater_pro_notice,
716
- .elementor-control.elementor-control-acc_repeater_pro_notice,
717
- .elementor-control.elementor-control-data_source_pro_notice,
718
- .elementor-control.elementor-control-charts_repeater_pro_notice,
719
- .elementor-control.elementor-control-mob_menu_display_as_pro_notice {
720
- padding-bottom: 0 !important;
721
- }
722
-
723
- .elementor-control-search_pro_notice .wpr-pro-notice,
724
- .elementor-control-grid_columns_pro_notice .wpr-pro-notice,
725
- .elementor-control-slider_content_type_pro_notice .wpr-pro-notice,
726
- .elementor-control-slider_repeater_pro_notice .wpr-pro-notice,
727
- .elementor-control-slider_dots_layout_pro_notice .wpr-pro-notice,
728
- .elementor-control-testimonial_repeater_pro_notice .wpr-pro-notice,
729
- .elementor-control-testimonial_icon_pro_notice .wpr-pro-notice,
730
- .elementor-control-menu_layout_pro_notice .wpr-pro-notice,
731
- .elementor-control-menu_items_submenu_entrance_pro_notice .wpr-pro-notice,
732
- .elementor-control-switcher_label_style_pro_notice .wpr-pro-notice,
733
- .elementor-control-countdown_type_pro_notice .wpr-pro-notice,
734
- .elementor-control-layout_pro_notice .wpr-pro-notice,
735
- .elementor-control-anim_timing_pro_notice .wpr-pro-notice,
736
- .elementor-control-tab_content_type_pro_notice .wpr-pro-notice,
737
- .elementor-control-tabs_repeater_pro_notice .wpr-pro-notice,
738
- .elementor-control-tabs_align_pro_notice .wpr-pro-notice,
739
- .elementor-control-front_trigger_pro_notice .wpr-pro-notice,
740
- .elementor-control-back_link_type_pro_notice .wpr-pro-notice,
741
- .elementor-control-box_anim_timing_pro_notice .wpr-pro-notice,
742
- .elementor-control-image_style_pro_notice .wpr-pro-notice,
743
- .elementor-control-image_animation_timing_pro_notice .wpr-pro-notice,
744
- .elementor-control-label_display_pro_notice .wpr-pro-notice,
745
- .elementor-control-post_type_pro_notice .wpr-pro-notice,
746
- .elementor-control-type_select_pro_notice .wpr-pro-notice,
747
- .elementor-control-icon_style_pro_notice .wpr-pro-notice,
748
- .elementor-control-dual_button_pro_notice .wpr-pro-notice,
749
- .elementor-control-team_member_pro_notice .wpr-pro-notice,
750
- .elementor-control-price_list_pro_notice .wpr-pro-notice,
751
- .elementor-control-business_hours_pro_notice .wpr-pro-notice,
752
- .elementor-control-sharing_columns_pro_notice .wpr-pro-notice,
753
- .elementor-control-popup_trigger_pro_notice .wpr-pro-notice,
754
- .elementor-control-popup_show_again_delay_pro_notice .wpr-pro-notice,
755
- .elementor-control-group_popup_settings_pro_notice .wpr-pro-notice,
756
- .elementor-control-post_nav_layout_pro_notice .wpr-pro-notice,
757
- .elementor-control-author_name_links_to_pro_notice .wpr-pro-notice,
758
- .elementor-control-author_title_links_to_pro_notice .wpr-pro-notice,
759
- .elementor-control-comments_form_layout_pro_notice .wpr-pro-notice,
760
- .elementor-control-sharing_repeater_pro_notice .wpr-pro-notice,
761
- .elementor-control-mini_cart_style_pro_notice .wpr-pro-notice,
762
- .elementor-control-tabs_position_pro_notice .wpr-pro-notice,
763
- .elementor-control-choose_table_type_pro_notice .wpr-pro-notice,
764
- .elementor-control-accordion_repeater_pro_notice .wpr-pro-notice,
765
- .elementor-control.elementor-control-data_source_pro_notice .wpr-pro-notice,
766
- .elementor-control.elementor-control-mob_menu_display_as_pro_notice .wpr-pro-notice {
767
- border-bottom: none !important;
768
- }
769
-
770
- /* Both */
771
- .elementor-control.elementor-control-pagination_type_pro_notice,
772
- .elementor-control.elementor-control-tooltip_trigger_pro_notice,
773
- .elementor-control.elementor-control-post_info_select_pro_notice {
774
- padding-top: 0 !important;
775
- padding-bottom: 0 !important;
776
- }
777
-
778
- .elementor-control-pagination_type_pro_notice .wpr-pro-notice {
779
- border-top: none !important;
780
- border-bottom: none !important;
781
- }
782
-
783
- .elementor-control-pro_features_section .elementor-section-toggle,
784
- .elementor-control-pro_features_section .elementor-section-title {
785
- color: #f54;
786
- }
787
-
788
- .elementor-control-pro_features_section .elementor-section-title {
789
- line-height: 20px;
790
- }
791
- .elementor-control-pro_features_section .elementor-section-title .dashicons {
792
- line-height: 20px;
793
- font-size: 13px;
794
- }
795
-
796
- .wpr-pro-features-list {
797
- text-align: center;
798
- }
799
-
800
- .wpr-pro-features-list ul {
801
- text-align: left;
802
- }
803
-
804
- .wpr-pro-features-list ul li {
805
- position: relative;
806
- line-height: 22px;
807
- padding-left: 20px;
808
- }
809
-
810
- .wpr-pro-features-list ul li::before {
811
- content: '.';
812
- font-size: 38px;
813
- position: absolute;
814
- top: -11px;
815
- left: 0;
816
- }
817
-
818
- .wpr-pro-features-list ul + a {
819
- display: inline-block;
820
- background-color: #f54;
821
- color: #fff;
822
- margin: 15px 15px 10px 0;
823
- padding: 7px 12px;
824
- border-radius: 3px;
825
- }
826
-
827
- .wpr-pro-features-list ul + a:hover {
828
- color: #fff;
829
- }
830
-
831
- /* Video Tutorial Link */
832
- .elementor-control[class*="video_tutorial"] {
833
- padding-top: 0 !important;
834
- padding-bottom: 5px !important;
835
- }
836
-
837
- .elementor-control.elementor-control-woo_grid_notice_video_tutorial,
838
- .elementor-control-show_last_update_date {
839
- padding-bottom: 15px !important;
840
- }
841
-
842
- .elementor-control.elementor-control-woo_grid_notice_video_tutorial a {
843
- display: inline-block;
844
- margin-top: 5px;
845
- }
846
-
847
- .elementor-control[class*="video_tutorial"] a {
848
- line-height: 16px;
849
- font-size: 12px;
850
- }
851
-
852
- .elementor-control[class*="video_tutorial"] a .dashicons {
853
- font-size: 16px;
854
- }
855
-
856
- /* Pro Control Class */
857
- .elementor-control.wpr-pro-control label i {
858
- color: #aeaeae;
859
- font-size: 14px;
860
- margin-left: 3px;
861
- }
862
-
863
- .elementor-control.wpr-pro-control .elementor-control-content:before {
864
- content: '';
865
- position: absolute;
866
- width: 100%;
867
- height: 100%;
868
- z-index: 9;
869
- background: transparent;
870
- }
871
-
872
- .elementor-control.wpr-pro-control .elementor-control-content:after {
873
- content: "This option is available in the Pro Version.";
874
- visibility: hidden;
875
- opacity: 0;
876
- position: absolute;
877
- top: 30px;
878
- padding: 15px;
879
- z-index: 99;
880
- margin-top: 10px;
881
- font-size: 12px;
882
- color: #93003c;
883
- background-color: #ffffff;
884
- border-radius: 5px;
885
- -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
886
- box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
887
- border: 1px solid #e6e9ec;
888
- -webkit-transition: all 0.2s ease-in;
889
- -o-transition: all 0.2s ease-in;
890
- transition: all 0.2s ease-in;
891
- }
892
-
893
- .elementor-repeater-fields .elementor-control.wpr-pro-control .elementor-control-content:after {
894
- content: "This is available in the Pro Version.";
895
- }
896
-
897
- .elementor-control.wpr-pro-control.no-distance .elementor-control-content:after {
898
- margin: 0;
899
- }
900
-
901
- .elementor-control.wpr-pro-control .elementor-control-content:hover:after {
902
- visibility: visible;
903
- opacity: 1;
904
- }
905
-
906
- /*--------------------------------------------------------------
907
- == Request New Feature
908
- --------------------------------------------------------------*/
909
- .elementor-control-section_request_new_feature .elementor-section-toggle,
910
- .elementor-control-section_request_new_feature .elementor-section-title {
911
- color: #1CB4E4;
912
- line-height: 20px;
913
- }
914
-
915
- .elementor-control-section_request_new_feature .elementor-section-title .dashicons {
916
- line-height: 20px;
917
- font-size: 13px;
918
- }
919
-
920
- .elementor-control-request_new_feature {
921
- line-height: 20px;
922
- }
923
-
924
- .elementor-control-request_new_feature a {
925
- display: block;
926
- padding: 10px 15px;
927
- border-radius: 3px;
928
- margin-top: 15px;
929
- text-align: center;
930
- text-decoration: none;
931
- background-color: #1CB4E4;
932
- color: #fff;
933
- font-size: 13px;
934
- font-weight: 500;
935
- }
936
-
937
- .elementor-control-request_new_feature a:hover {
938
- color: #fff;
939
- background-color: #1589ad;
940
- }
941
-
942
- .elementor-control-request_new_feature a .dashicons {
943
- font-size: 13px;
944
- line-height: 18px;
945
- }
946
-
947
-
948
- /*--------------------------------------------------------------
949
- == Theme Builder Widgets
950
- --------------------------------------------------------------*/
951
- #elementor-panel-categories {
952
- display: -webkit-box;
953
- display: -ms-flexbox;
954
- display: flex;
955
- -webkit-box-orient: vertical;
956
- -webkit-box-direction: normal;
957
- -ms-flex-direction: column;
958
- flex-direction: column;
959
- }
960
-
961
- #elementor-panel-categories > div {
962
- -webkit-box-ordinal-group: 3;
963
- -ms-flex-order: 2;
964
- order: 2;
965
- }
966
-
967
- #elementor-panel-category-wpr-theme-builder-widgets,
968
- #elementor-panel-category-wpr-woocommerce-builder-widgets {
969
- -webkit-box-ordinal-group: 2 !important;
970
- -ms-flex-order: 1 !important;
971
- order: 1 !important;
972
- }
973
-
974
- .elementor-editor-wpr-theme-builder #elementor-panel-footer-saver-preview {
975
- display: none !important;
976
- }
977
-
978
-
979
- /*--------------------------------------------------------------
980
- == Elementor Search Notice
981
- --------------------------------------------------------------*/
982
- .wpr-elementor-search-notice {
983
- background: #fff;
984
- font-size: 13px;
985
- padding: 20px;
986
- line-height: 18px;
987
- margin: 10px;
988
- border-left: 3px solid #71d7f7;
989
- -webkit-box-shadow: 0 1px 4px 0 rgb(0 0 0 / 7%);
990
- box-shadow: 0 1px 4px 0 rgb(0 0 0 / 7%);
991
- }
992
-
993
-
994
- /*--------------------------------------------------------------
995
- == Debug
996
- --------------------------------------------------------------*/
997
- pre.xdebug-var-dump {
998
- position: absolute;
999
- z-index: 999999;
1000
- background: #fff;
1001
- border: 2px solid #000;
1002
- padding: 20px;
1003
- left: 300px;
1004
  }
1
+ /*--------------------------------------------------------------
2
+ == General
3
+ --------------------------------------------------------------*/
4
+ .wpr-elementor-hidden-control {
5
+ overflow: hidden;
6
+ width: 0 !important;
7
+ height: 0 !important;
8
+ padding: 0 !important;
9
+ margin: 0 !important;
10
+ visibility: hidden !important;
11
+ opacity: 0 !important;
12
+ }
13
+
14
+
15
+ /*--------------------------------------------------------------
16
+ == WPR Widgets
17
+ --------------------------------------------------------------*/
18
+ .elementor-panel .wpr-icon:after {
19
+ content: 'R';
20
+ display: block;
21
+ position: absolute;
22
+ top: 3px;
23
+ right: 3px;
24
+ font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
25
+ font-size: 10px;
26
+ font-weight: bold;
27
+ color: #ffffff;
28
+ background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
29
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
30
+ background-image: linear-gradient(#6A4BFF, #7E94FE);
31
+ -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
32
+ box-shadow: 0 0 2px 2px #b8c7ff;
33
+ width: 19px;
34
+ height: 19px;
35
+ line-height: 19px;
36
+ border-radius: 15px;
37
+ margin: 3px;
38
+ }
39
+
40
+ .elementor-panel .elementor-element .icon {
41
+ position: relative !important;
42
+ }
43
+
44
+ .elementor-element--promotion .wpr-icon:after {
45
+ top: 22px;
46
+ right: -1px;
47
+ opacity: 0.7;
48
+ }
49
+
50
+ #elementor-element--promotion__dialog .dialog-button {
51
+ text-align: center;
52
+ }
53
+
54
+ .elementor-control-type-section[class*="elementor-control-wpr_section_"]:after {
55
+ content: 'R';
56
+ display: block;
57
+ position: absolute;
58
+ top: 7px;
59
+ right: 7px;
60
+ font-family: Roboto,Arial,Helvetica,Verdana,sans-serif;
61
+ font-size: 10px;
62
+ font-weight: bold;
63
+ color: #ffffff;
64
+ background-image: -o-linear-gradient(#6A4BFF, #7E94FE);
65
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#6A4BFF), to(#7E94FE));
66
+ background-image: linear-gradient(#6A4BFF, #7E94FE);
67
+ -webkit-box-shadow: 0 0 2px 2px #b8c7ff;
68
+ box-shadow: 0 0 2px 2px #b8c7ff;
69
+ width: 19px;
70
+ height: 19px;
71
+ line-height: 19px;
72
+ border-radius: 15px;
73
+ margin: 3px;
74
+ text-align: center;
75
+ }
76
+
77
+ /*--------------------------------------------------------------
78
+ == Adjustments
79
+ --------------------------------------------------------------*/
80
+ .elementor-control-element_select,
81
+ .elementor-control-element_align_hr,
82
+ .elementor-control-element_read_more_text,
83
+ .elementor-control-element_tax_sep,
84
+ .elementor-control-element_sharing_icon_6,
85
+ .elementor-control-element_sharing_trigger_direction,
86
+ .elementor-control-element_sharing_icon_display,
87
+ .elementor-control-element_sharing_tooltip,
88
+ .elementor-control-element_custom_field_wrapper_html,
89
+ .elementor-control-slider_item_bg_size,
90
+ .elementor-control-element_addcart_variable_txt,
91
+ .elementor-control-type,
92
+ .elementor-control-show_last_update_date {
93
+ margin-bottom: 15px;
94
+ }
95
+
96
+ .elementor-control-slider_content_bg_color,
97
+ .elementor-control-slider_nav_border_border,
98
+ .elementor-control-slider_nav_border_radius,
99
+ .elementor-control-scroll_btn_vr,
100
+ .elementor-control-pagination_load_more_text,
101
+ .elementor-control-pagination_finish_text,
102
+ .elementor-control-pagination_prev_next,
103
+ .elementor-control-author_transition_duration,
104
+ .elementor-control-comments_transition_duration,
105
+ .elementor-control-likes_transition_duration,
106
+ .elementor-control-sharing_transition_duration,
107
+ .elementor-control-lightbox_transition_duration,
108
+ .elementor-control-custom_field1_transition_duration,
109
+ .elementor-control-custom_field2_transition_duration,
110
+ .elementor-control-custom_field3_transition_duration,
111
+ .elementor-control-custom_field4_transition_duration,
112
+ .elementor-control-filters_transition_duration,
113
+ .elementor-control-pagination_transition_duration,
114
+ .elementor-control-element_extra_text_pos,
115
+ .elementor-control-element_custom_field_wrapper,
116
+ .elementor-control-overlay_post_link,
117
+ .elementor-control-read_more_animation_height,
118
+ .elementor-control-archive_link_transition_duration,
119
+ .elementor-control-post_info_tax_select,
120
+ .elementor-control-post_info_link_wrap,
121
+ .elementor-control-post_info_modified_time,
122
+ .elementor-control-tabs_sharing_custom_colors,
123
+ .elementor-control-post_info_show_avatar,
124
+ .elementor-control-post_info_cf,
125
+ .elementor-control-pricing_items .elementor-control-price,
126
+ .elementor-control-pricing_items .elementor-control-feature_text,
127
+ .elementor-control-pricing_items .elementor-control-btn_text,
128
+ .elementor-control-divider_style,
129
+ .elementor-control-filters_pointer,
130
+ .elementor-control-title_transition_duration,
131
+ .elementor-control-tax1_transition_duration,
132
+ .elementor-control-tax2_transition_duration,
133
+ .elementor-control-filters_transition_duration,
134
+ .elementor-control-pagination_older_text,
135
+ .elementor-control-tooltip_position,
136
+ .elementor-control-post_info_comments_text_1,
137
+ .elementor-control-element_letter_count {
138
+ padding-top: 15px !important;
139
+ }
140
+
141
+ .elementor-control-post_info_custom_field_video_tutorial {
142
+ margin-top: 15px;
143
+ }
144
+
145
+ .elementor-control-title_pointer_animation + .elementor-control-title_transition_duration,
146
+ .elementor-control-tax1_pointer_animation + .elementor-control-tax1_transition_duration,
147
+ .elementor-control-tax2_pointer_animation + .elementor-control-tax2_transition_duration,
148
+ .elementor-control-filters_pointer_animation + .elementor-control-filters_transition_duration {
149
+ padding-top: 0 !important;
150
+ }
151
+
152
+ .elementor-control-pagination_load_more_text {
153
+ padding-bottom: 0 !important;
154
+ }
155
+
156
+ .elementor-control-filters_transition_duration,
157
+ .elementor-control-show_last_update_date {
158
+ padding-top: 0 !important;
159
+ }
160
+
161
+ .elementor-control-animation_divider,
162
+ .elementor-control-overlay_divider,
163
+ .elementor-control-slider_item_btn_1_divider,
164
+ .elementor-control-slider_item_btn_2_divider,
165
+ .elementor-control-slider_btn_typography_1_divider,
166
+ .elementor-control-slider_btn_box_shadow_1_divider,
167
+ .elementor-control-slider_btn_typography_2_divider,
168
+ .elementor-control-slider_btn_box_shadow_2_divider,
169
+ .elementor-control-testimonial_title_divider,
170
+ .elementor-control-social_media_divider,
171
+ .elementor-control-social_divider_1,
172
+ .elementor-control-social_divider_2,
173
+ .elementor-control-social_divider_3,
174
+ .elementor-control-social_divider_4,
175
+ .elementor-control-social_divider_5,
176
+ .elementor-control-custom_field_wrapper_html_divider1,
177
+ .elementor-control-custom_field_wrapper_html_divider2,
178
+ .elementor-control-lightbox_shadow_divider {
179
+ padding: 0 !important;
180
+ }
181
+
182
+ .elementor-control-custom_field_wrapper_html_divider1 hr,
183
+ .elementor-control-lightbox_shadow_divider hr {
184
+ height: 1px !important;
185
+ }
186
+
187
+ .elementor-control-element_show_on {
188
+ padding-top: 15px !important;
189
+ border-top: 1px solid #d5dadf;
190
+ }
191
+
192
+ [class*="wpr__section_"] ~ .elementor-control-type-number .elementor-control-input-wrapper,
193
+ [class*="wpr__section_"] ~ .elementor-control-type-repeater .elementor-control-type-number .elementor-control-input-wrapper {
194
+ max-width: 30% !important;
195
+ margin-left: auto !important;
196
+ }
197
+
198
+ [class*="wpr__section_"] ~ .elementor-control-type-select .elementor-control-input-wrapper,
199
+ [class*="wpr__section_"] ~ .elementor-control-type-repeater .elementor-control-type-select .elementor-control-input-wrapper {
200
+ width: auto !important;
201
+ min-width: 30% !important;
202
+ margin-left: auto !important;
203
+ }
204
+
205
+ .elementor-control-submit_preview_changes .elementor-control-input-wrapper {
206
+ text-align: center !important;
207
+ }
208
+
209
+ .elementor-control-query_manual_related,
210
+ .elementor-control-query_manual_current {
211
+ display: none !important;
212
+ }
213
+
214
+ /* Fix Select Inputs */
215
+ .elementor-control-button_hover_animation .elementor-control-input-wrapper,
216
+ .elementor-control-front_btn_animation .elementor-control-input-wrapper,
217
+ .elementor-control-back_btn_animation .elementor-control-input-wrapper {
218
+ width: 135px !important;
219
+ }
220
+
221
+ .elementor-control-type-repeater .elementor-control-content > label {
222
+ display: none !important;
223
+ }
224
+
225
+
226
+ /*--------------------------------------------------------------
227
+ == Notification
228
+ --------------------------------------------------------------*/
229
+ #wpr-template-settings-notification {
230
+ position: fixed;
231
+ left: 40px;
232
+ bottom: 5px;
233
+ z-index: 9999;
234
+ padding: 13px 25px;
235
+ background: #fff;
236
+ color: #222;
237
+ -webkit-box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.3);
238
+ box-shadow: 1px 1px 5px 0 rgba(0, 0, 0, 0.3);
239
+ border-radius: 3px;
240
+ }
241
+
242
+ #wpr-template-settings-notification:before {
243
+ content: "";
244
+ position: absolute;
245
+ left: -6px;
246
+ bottom: 10px;
247
+ width: 0;
248
+ height: 0;
249
+ border-top: 6px solid transparent;
250
+ border-bottom: 6px solid transparent;
251
+ border-right-style: solid;
252
+ border-right-width: 6px;
253
+ border-right-color: #fff;
254
+ }
255
+
256
+ #wpr-template-settings-notification h4 {
257
+ margin-bottom: 10px;
258
+ }
259
+
260
+ #wpr-template-settings-notification h4 span {
261
+ font-size: 14px;
262
+ vertical-align: super;
263
+ color: #5f5f5f;
264
+ }
265
+
266
+ #wpr-template-settings-notification h4 i {
267
+ margin-right: 10px;
268
+ color: #3db050;
269
+ font-size: 24px;
270
+ }
271
+
272
+ #wpr-template-settings-notification p {
273
+ color: #666;
274
+ font-size: 12px;
275
+ line-height: 1.5;
276
+ }
277
+
278
+ #wpr-template-settings-notification > i {
279
+ position: absolute;
280
+ top: 7px;
281
+ right: 7px;
282
+ cursor: pointer;
283
+ color: #999;
284
+ }
285
+
286
+ .elementor-control-cf7_notice,
287
+ .elementor-control-wpforms_notice,
288
+ .elementor-control-ninja_forms_notice,
289
+ .elementor-control-caldera_notice {
290
+ color: red;
291
+ }
292
+
293
+ /* Help Button - select with referrals - [href^="https://royal-elementor-addons.com/contact/"] */
294
+ #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"] {
295
+ display: inline-block;
296
+ padding: 12px 35px;
297
+ font-size: 13px;
298
+ font-weight: normal;
299
+ color: #fff;
300
+ background: #6A65FF;
301
+ border-radius: 3px;
302
+ -webkit-box-shadow: 0 2px 7px 0 rgba(0,0,0,0.3);
303
+ box-shadow: 0 2px 7px 0 rgba(0,0,0,0.3);
304
+ letter-spacing: 0.3px;
305
+ -webkit-transition: all 0.2s ease-in;
306
+ -o-transition: all 0.2s ease-in;
307
+ transition: all 0.2s ease-in;
308
+ }
309
+
310
+ #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover {
311
+ color: #fff;
312
+ background: #6A4BFF;
313
+ }
314
+
315
+ #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"] i {
316
+ color: #fff;
317
+ font-size: 14px;
318
+ vertical-align: top;
319
+ }
320
+
321
+ #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover i {
322
+ color: #fff;
323
+ }
324
+
325
+ #elementor-panel__editor__help__link[href^="https://wordpress.org/support/plugin/royal-elementor-addons/"]:hover i:before {
326
+ content: '\e942' !important;
327
+ }
328
+
329
+ .elementor-control-posts_slider_notice .elementor-control-raw-html {
330
+ font-style: normal !important;
331
+ }
332
+
333
+ .elementor-control-product_notice_widget_info .elementor-control-raw-html {
334
+ color: red;
335
+ }
336
+
337
+
338
+ /*--------------------------------------------------------------
339
+ == Modal Popup Editor
340
+ --------------------------------------------------------------*/
341
+ .elementor-editor-wpr-popups .elementor-control-document_settings,
342
+ .elementor-editor-wpr-popups .elementor-control-post_title,
343
+ .elementor-editor-wpr-popups .elementor-control-post_status {
344
+ display: none !important;
345
+ }
346
+
347
+
348
+ /*--------------------------------------------------------------
349
+ == Elementor Editor Popup
350
+ --------------------------------------------------------------*/
351
+ #wpr-template-editor-popup .dialog-widget-content {
352
+ width: 90vw;
353
+ height: 90vh;
354
+ }
355
+
356
+ #wpr-template-editor-popup .dialog-message {
357
+ padding: 0;
358
+ width: 100%;
359
+ height: 100%;
360
+ }
361
+
362
+ #wpr-template-editor-popup .dialog-close-button {
363
+ font-size: 24px;
364
+ color: #222;
365
+ }
366
+
367
+ #wpr-template-editor-popup .dialog-header {
368
+ display: none;
369
+ }
370
+
371
+ #wpr-template-editor-loading {
372
+ position: absolute;
373
+ top: 0;
374
+ left: 0;
375
+ width: 100%;
376
+ height: 100%;
377
+ background: #f1f3f5;
378
+ z-index: 9999;
379
+ -webkit-transform: translateZ(0);
380
+ transform: translateZ(0);
381
+ display: -webkit-box;
382
+ display: -ms-flexbox;
383
+ display: flex;
384
+ -webkit-box-pack: center;
385
+ -ms-flex-pack: center;
386
+ justify-content: center;
387
+ -webkit-box-align: center;
388
+ -ms-flex-align: center;
389
+ align-items: center;
390
+ }
391
+
392
+ #wpr-template-editor-loading .elementor-loader-wrapper {
393
+ top: auto;
394
+ left: auto;
395
+ -webkit-transform: none;
396
+ -ms-transform: none;
397
+ transform: none;
398
+ }
399
+
400
+ /* Disable Transitions on Responsive Preview */
401
+ #elementor-preview-responsive-wrapper {
402
+ -webkit-transition: none !important;
403
+ -o-transition: none !important;
404
+ transition: none !important;
405
+ }
406
+
407
+
408
+ /*--------------------------------------------------------------
409
+ == Magazine Grid Layout
410
+ --------------------------------------------------------------*/
411
+ .elementor-control-layout_select.elementor-control .elementor-control-field {
412
+ -webkit-box-orient: vertical !important;
413
+ -webkit-box-direction: normal !important;
414
+ -ms-flex-direction: column !important;
415
+ flex-direction: column !important;
416
+ -webkit-box-align: start;
417
+ -ms-flex-align: start;
418
+ align-items: flex-start;
419
+ }
420
+
421
+ .elementor-control-layout_select.elementor-control .elementor-control-input-wrapper {
422
+ display: -webkit-box;
423
+ display: -ms-flexbox;
424
+ display: flex;
425
+ width: 100% !important;
426
+ margin-top: 10px;
427
+ }
428
+
429
+ .elementor-control-layout_select.elementor-control .elementor-choices {
430
+ -ms-flex-wrap: wrap;
431
+ flex-wrap: wrap;
432
+ -webkit-box-align: stretch;
433
+ -ms-flex-align: stretch;
434
+ align-items: stretch;
435
+ width: 100% !important;
436
+ height: auto;
437
+ border: 1px solid #dfd5d5;
438
+ }
439
+
440
+ .elementor-control-layout_select.elementor-control .elementor-choices label {
441
+ width: 33.3%;
442
+ height: 50px;
443
+ background-size: 75%;
444
+ background-position: center center;
445
+ background-repeat: no-repeat;
446
+ }
447
+
448
+ .elementor-control-layout_select input[type="radio"]:checked + label {
449
+ border: 2px solid #D30C5C;
450
+ border-radius: 0 !important;
451
+ background-color: #ffffff;
452
+ }
453
+
454
+ .elementor-control-layout_select label:nth-child(2) {
455
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='15.2' class='st1' width='22.2' height='11.9'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='9.2'/%3E%3C/g%3E%3C/svg%3E");
456
+ }
457
+
458
+ .elementor-control-layout_select label:nth-child(4) {
459
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
460
+ }
461
+
462
+ .elementor-control-layout_select label:nth-child(6) {
463
+ background: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Cg%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
464
+ }
465
+
466
+ .elementor-control-layout_select label:nth-child(8) {
467
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
468
+ }
469
+
470
+ .elementor-control-layout_select label:nth-child(10) {
471
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='13.9' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='37.2' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3Crect x='2.3' y='16.6' class='st1' width='10.5' height='10.5'/%3E%3Crect x='2.3' y='4.9' class='st1' width='10.5' height='10.5'/%3E%3C/g%3E%3C/svg%3E");
472
+ }
473
+
474
+ .elementor-control-layout_select label:nth-child(12) {
475
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='28.5' height='22.2'/%3E%3Crect x='31.8' y='12.9' class='st1' width='15.9' height='6.3'/%3E%3Crect x='31.8' y='4.9' class='st1' width='15.9' height='6.8'/%3E%3Crect x='31.8' y='20.3' class='st1' width='15.9' height='6.8'/%3E%3C/g%3E%3C/svg%3E");
476
+ }
477
+
478
+ .elementor-control-layout_select label:nth-child(14) {
479
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='13.9' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='2.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
480
+ }
481
+
482
+ .elementor-control-layout_select label:nth-child(16) {
483
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='33.9' height='13.2'/%3E%3Crect x='2.2' y='19.3' class='st1' width='16.4' height='7.8'/%3E%3Crect x='19.7' y='19.3' class='st1' width='16.4' height='7.8'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='13.2'/%3E%3Crect x='37.2' y='19.3' class='st1' width='10.5' height='7.8'/%3E%3C/g%3E%3C/svg%3E");
484
+ }
485
+
486
+ .elementor-control-layout_select label:nth-child(18) {
487
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='12.1'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='12.1'/%3E%3Crect x='2.2' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3Crect x='17.8' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3Crect x='33.3' y='18.2' class='st1' width='14.4' height='8.9'/%3E%3C/g%3E%3C/svg%3E");
488
+ }
489
+
490
+ .elementor-control-layout_select label:nth-child(20) {
491
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='22.2' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
492
+ }
493
+
494
+ .elementor-control-layout_select label:nth-child(22) {
495
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='14.5' height='22.2'/%3E%3Crect x='33.4' y='4.9' class='st1' width='14.4' height='22.2'/%3E%3Crect x='17.9' y='4.9' class='st1' width='14.4' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
496
+ }
497
+
498
+ .elementor-control-layout_select label:nth-child(24) {
499
+ background-image: url("data:image/svg+xml;charset=utf8,%3C?xml version='1.0' encoding='utf-8'?%3E%3C!-- Generator: Adobe Illustrator 19.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 50 32' style='enable-background:new 0 0 50 32;' xml:space='preserve'%3E%3Cstyle type='text/css'%3E .st0{fill:%23FFFFFF;} .st1{fill:%23C2C1C0;} %3C/style%3E%3Cg id='Background'%3E%3Crect class='st0' width='50' height='32'/%3E%3C/g%3E%3Cg id='Layer_1'%3E%3Crect x='2.2' y='4.9' class='st1' width='10.6' height='22.2'/%3E%3Crect x='37.2' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='25.6' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3Crect x='14' y='4.9' class='st1' width='10.5' height='22.2'/%3E%3C/g%3E%3C/svg%3E");
500
+ }
501
+
502
+ /*--------------------------------------------------------------
503
+ == Widget Preview and Library buttons
504
+ --------------------------------------------------------------*/
505
+
506
+ .elementor-control-wpr_library_buttons .wpr-forms a:last-child,
507
+ .elementor-control-wpr_library_buttons .wpr-phone-call a:last-child,
508
+ .elementor-control-wpr_library_buttons .wpr-back-to-top a:last-child,
509
+ .elementor-control-wpr_library_buttons .wpr-lottie-animations a:last-child,
510
+ .elementor-control-wpr_library_buttons .wpr-feature-list a:last-child,
511
+ .elementor-control-wpr_library_buttons .wpr-reading-progress-bar a:last-child,
512
+ .elementor-control-wpr_library_buttons .wpr-dual-color-heading a:last-child,
513
+ .elementor-control-wpr_library_buttons .wpr-flip-carousel a:last-child,
514
+ .elementor-control-wpr_library_buttons .wpr-advanced-accordion a:last-child,
515
+ .elementor-control-wpr_library_buttons .wpr-image-accordion a:last-child,
516
+ .elementor-control-wpr_library_buttons .wpr-mega-menu a:last-child,
517
+ .elementor-control-wpr_library_buttons .wpr-charts a:last-child {
518
+ display: none;
519
+ }
520
+
521
+ .elementor-control-wpr_library_buttons {
522
+ height: 60px;
523
+ padding: 0;
524
+ }
525
+
526
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html {
527
+ padding: 0 10px 10px 10px;
528
+ border-bottom: 1px solid #efefef;
529
+ }
530
+
531
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html div {
532
+ display: -webkit-box;
533
+ display: -ms-flexbox;
534
+ display: flex;
535
+ -webkit-box-pack: center;
536
+ -ms-flex-pack: center;
537
+ justify-content: center;
538
+ }
539
+
540
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html div a {
541
+ -webkit-box-flex: 1;
542
+ -ms-flex-positive: 1;
543
+ flex-grow: 1;
544
+ padding: 10px 15px;
545
+ border-radius: 3px;
546
+ /*box-shadow: 1px 2px 5px 0 rgba(0,0,0,0.2);*/
547
+ white-space: nowrap;
548
+ overflow: hidden;
549
+ -o-text-overflow: ellipsis;
550
+ text-overflow: ellipsis;
551
+ text-align: center;
552
+ }
553
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child {
554
+ background-color: #1CB4E4;
555
+ color: #fff;
556
+ margin-right: 3px;
557
+ }
558
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child {
559
+ margin-left: 3px;
560
+ background-color: #6A65FF;
561
+ color: #fff;
562
+ }
563
+
564
+ .elementor-control-wpr_library_buttons .elementor-control-raw-html > a {
565
+ display: block;
566
+ margin-top: 10px;
567
+ line-height: 20px;
568
+ color: #777;
569
+ border: none !important;
570
+ }
571
+
572
+ .elementor-section-title > a {
573
+ top: 10px;
574
+ right: 20px;
575
+ position: absolute;
576
+ line-height: 20px;
577
+ font-size: 12px;
578
+ }
579
+
580
+ .elementor-section-title > a:hover {
581
+ border-color: transparent;
582
+ }
583
+
584
+ .elementor-section-title > a .dashicons {
585
+ font-size: 16px;
586
+ vertical-align: middle;
587
+ }
588
+
589
+
590
+ /*--------------------------------------------------------------
591
+ == Apply Changes Button
592
+ --------------------------------------------------------------*/
593
+ .editor-wpr-preview-update {
594
+ margin: 0;
595
+ display: -webkit-box;
596
+ display: -ms-flexbox;
597
+ display: flex;
598
+ -webkit-box-pack: justify;
599
+ -ms-flex-pack: justify;
600
+ justify-content: space-between;
601
+ }
602
+
603
+ .editor-wpr-preview-update button {
604
+ font-size: 13px;
605
+ padding: 5px 10px;
606
+ }
607
+
608
+
609
+ /*--------------------------------------------------------------
610
+ == Free/Pro Options
611
+ --------------------------------------------------------------*/
612
+ .elementor-control select option[value*=pro-] {
613
+ background: #f0f0f0;
614
+ }
615
+
616
+ .elementor-control[class*="pro_notice"] {
617
+ padding: 5px 0 15px 0 !important;
618
+ }
619
+
620
+ .wpr-pro-notice {
621
+ padding: 20px;
622
+ border-top: 1px solid #e6e9ec;
623
+ border-bottom: 1px solid #e6e9ec;
624
+ background-color: #f2fbff;
625
+ line-height: 1.4;
626
+ text-align: center;
627
+ }
628
+
629
+ .wpr-pro-notice-video {
630
+ display: block;
631
+ margin-top: 7px;
632
+ line-height: 20px;
633
+ border: none !important;
634
+ }
635
+
636
+ #elementor-controls .elementor-control-slider_section_pro_notice {
637
+ margin-top: -16px;
638
+ padding-bottom: 0 !important;
639
+ }
640
+
641
+ .elementor-control-layout_select_pro_notice + div,
642
+ .elementor-control-element_align_pro_notice + div {
643
+ padding-top: 15px;
644
+ }
645
+
646
+ .elementor-control-layout_select .elementor-choices label {
647
+ position: relative;
648
+ }
649
+
650
+ .elementor-control-layout_select .elementor-choices label:nth-child(2):after,
651
+ .elementor-control-layout_select .elementor-choices label:nth-child(4):after,
652
+ .elementor-control-layout_select .elementor-choices label:nth-child(6):after,
653
+ .elementor-control-layout_select .elementor-choices label:nth-child(8):after,
654
+ .elementor-control-layout_select .elementor-choices label:nth-child(10):after,
655
+ .elementor-control-layout_select .elementor-choices label:nth-child(12):after {
656
+ content: ' ';
657
+ display: block;
658
+ width: 100%;
659
+ height: 100%;
660
+ position: absolute;
661
+ top: 0;
662
+ left: 0;
663
+ background: rgba(0,0,0,0.2);
664
+ }
665
+
666
+ /* Adjustments */
667
+ .elementor-control.elementor-control-element_align_pro_notice,
668
+ .elementor-control.elementor-control-search_pro_notice,
669
+ .elementor-control.elementor-control-layout_select_pro_notice,
670
+ .elementor-control.elementor-control-grid_columns_pro_notice,
671
+ .elementor-control.elementor-control-slider_content_type_pro_notice,
672
+ .elementor-control.elementor-control-slider_repeater_pro_notice,
673
+ .elementor-control.elementor-control-slider_dots_layout_pro_notice,
674
+ .elementor-control.elementor-control-testimonial_repeater_pro_notice,
675
+ .elementor-control.elementor-control-testimonial_icon_pro_notice,
676
+ .elementor-control.elementor-control-menu_layout_pro_notice,
677
+ .elementor-control.elementor-control-menu_items_submenu_entrance_pro_notice,
678
+ .elementor-control.elementor-control-switcher_label_style_pro_notice,
679
+ .elementor-control.elementor-control-countdown_type_pro_notice,
680
+ .elementor-control.elementor-control-layout_pro_notice,
681
+ .elementor-control.elementor-control-anim_timing_pro_notice,
682
+ .elementor-control.elementor-control-tab_content_type_pro_notice,
683
+ .elementor-control.elementor-control-tabs_repeater_pro_notice,
684
+ .elementor-control.elementor-control-tabs_align_pro_notice,
685
+ .elementor-control.elementor-control-front_trigger_pro_notice,
686
+ .elementor-control.elementor-control-back_link_type_pro_notice,
687
+ .elementor-control.elementor-control-box_anim_timing_pro_notice,
688
+ .elementor-control.elementor-control-image_style_pro_notice,
689
+ .elementor-control.elementor-control-image_animation_timing_pro_notice,
690
+ .elementor-control.elementor-control-label_display_pro_notice,
691
+ .elementor-control.elementor-control-post_type_pro_notice,
692
+ .elementor-control.elementor-control-type_select_pro_notice,
693
+ .elementor-control.elementor-control-icon_style_pro_notice,
694
+ .elementor-control.elementor-control-dual_button_pro_notice,
695
+ .elementor-control.elementor-control-team_member_pro_notice,
696
+ .elementor-control.elementor-control-price_list_pro_notice,
697
+ .elementor-control.elementor-control-business_hours_pro_notice,
698
+ .elementor-control.elementor-control-sharing_columns_pro_notice,
699
+ .elementor-control.elementor-control-popup_trigger_pro_notice,
700
+ .elementor-control.elementor-control-popup_show_again_delay_pro_notice,
701
+ .elementor-control.elementor-control-group_popup_settings_pro_notice,
702
+ .elementor-control.elementor-control-which_particle_pro_notice,
703
+ .elementor-control.elementor-control-paralax_repeater_pro_notice,
704
+ .elementor-control.elementor-control-opnepage_pro_notice,
705
+ .elementor-control.elementor-control-timeline_repeater_pro_notice,
706
+ .elementor-control.elementor-control-limit_grid_items_pro_notice,
707
+ .elementor-control.elementor-control-post_nav_layout_pro_notice,
708
+ .elementor-control.elementor-control-author_name_links_to_pro_notice,
709
+ .elementor-control.elementor-control-author_title_links_to_pro_notice,
710
+ .elementor-control.elementor-control-comments_form_layout_pro_notice,
711
+ .elementor-control.elementor-control-sharing_repeater_pro_notice,
712
+ .elementor-control.elementor-control-mini_cart_style_pro_notice,
713
+ .elementor-control.elementor-control-tabs_position_pro_notice,
714
+ .elementor-control.elementor-control-choose_table_type_pro_notice,
715
+ .elementor-control.elementor-control-accordion_repeater_pro_notice,
716
+ .elementor-control.elementor-control-acc_repeater_pro_notice,
717
+ .elementor-control.elementor-control-data_source_pro_notice,
718
+ .elementor-control.elementor-control-charts_repeater_pro_notice,
719
+ .elementor-control.elementor-control-mob_menu_display_as_pro_notice {
720
+ padding-bottom: 0 !important;
721
+ }
722
+
723
+ .elementor-control-search_pro_notice .wpr-pro-notice,
724
+ .elementor-control-grid_columns_pro_notice .wpr-pro-notice,
725
+ .elementor-control-slider_content_type_pro_notice .wpr-pro-notice,
726
+ .elementor-control-slider_repeater_pro_notice .wpr-pro-notice,
727
+ .elementor-control-slider_dots_layout_pro_notice .wpr-pro-notice,
728
+ .elementor-control-testimonial_repeater_pro_notice .wpr-pro-notice,
729
+ .elementor-control-testimonial_icon_pro_notice .wpr-pro-notice,
730
+ .elementor-control-menu_layout_pro_notice .wpr-pro-notice,
731
+ .elementor-control-menu_items_submenu_entrance_pro_notice .wpr-pro-notice,
732
+ .elementor-control-switcher_label_style_pro_notice .wpr-pro-notice,
733
+ .elementor-control-countdown_type_pro_notice .wpr-pro-notice,
734
+ .elementor-control-layout_pro_notice .wpr-pro-notice,
735
+ .elementor-control-anim_timing_pro_notice .wpr-pro-notice,
736
+ .elementor-control-tab_content_type_pro_notice .wpr-pro-notice,
737
+ .elementor-control-tabs_repeater_pro_notice .wpr-pro-notice,
738
+ .elementor-control-tabs_align_pro_notice .wpr-pro-notice,
739
+ .elementor-control-front_trigger_pro_notice .wpr-pro-notice,
740
+ .elementor-control-back_link_type_pro_notice .wpr-pro-notice,
741
+ .elementor-control-box_anim_timing_pro_notice .wpr-pro-notice,
742
+ .elementor-control-image_style_pro_notice .wpr-pro-notice,
743
+ .elementor-control-image_animation_timing_pro_notice .wpr-pro-notice,
744
+ .elementor-control-label_display_pro_notice .wpr-pro-notice,
745
+ .elementor-control-post_type_pro_notice .wpr-pro-notice,
746
+ .elementor-control-type_select_pro_notice .wpr-pro-notice,
747
+ .elementor-control-icon_style_pro_notice .wpr-pro-notice,
748
+ .elementor-control-dual_button_pro_notice .wpr-pro-notice,
749
+ .elementor-control-team_member_pro_notice .wpr-pro-notice,
750
+ .elementor-control-price_list_pro_notice .wpr-pro-notice,
751
+ .elementor-control-business_hours_pro_notice .wpr-pro-notice,
752
+ .elementor-control-sharing_columns_pro_notice .wpr-pro-notice,
753
+ .elementor-control-popup_trigger_pro_notice .wpr-pro-notice,
754
+ .elementor-control-popup_show_again_delay_pro_notice .wpr-pro-notice,
755
+ .elementor-control-group_popup_settings_pro_notice .wpr-pro-notice,
756
+ .elementor-control-post_nav_layout_pro_notice .wpr-pro-notice,
757
+ .elementor-control-author_name_links_to_pro_notice .wpr-pro-notice,
758
+ .elementor-control-author_title_links_to_pro_notice .wpr-pro-notice,
759
+ .elementor-control-comments_form_layout_pro_notice .wpr-pro-notice,
760
+ .elementor-control-sharing_repeater_pro_notice .wpr-pro-notice,
761
+ .elementor-control-mini_cart_style_pro_notice .wpr-pro-notice,
762
+ .elementor-control-tabs_position_pro_notice .wpr-pro-notice,
763
+ .elementor-control-choose_table_type_pro_notice .wpr-pro-notice,
764
+ .elementor-control-accordion_repeater_pro_notice .wpr-pro-notice,
765
+ .elementor-control.elementor-control-data_source_pro_notice .wpr-pro-notice,
766
+ .elementor-control.elementor-control-mob_menu_display_as_pro_notice .wpr-pro-notice {
767
+ border-bottom: none !important;
768
+ }
769
+
770
+ /* Both */
771
+ .elementor-control.elementor-control-pagination_type_pro_notice,
772
+ .elementor-control.elementor-control-tooltip_trigger_pro_notice,
773
+ .elementor-control.elementor-control-post_info_select_pro_notice {
774
+ padding-top: 0 !important;
775
+ padding-bottom: 0 !important;
776
+ }
777
+
778
+ .elementor-control-pagination_type_pro_notice .wpr-pro-notice {
779
+ border-top: none !important;
780
+ border-bottom: none !important;
781
+ }
782
+
783
+ .elementor-control-pro_features_section .elementor-section-toggle,
784
+ .elementor-control-pro_features_section .elementor-section-title {
785
+ color: #f54;
786
+ }
787
+
788
+ .elementor-control-pro_features_section .elementor-section-title {
789
+ line-height: 20px;
790
+ }
791
+ .elementor-control-pro_features_section .elementor-section-title .dashicons {
792
+ line-height: 20px;
793
+ font-size: 13px;
794
+ }
795
+
796
+ .wpr-pro-features-list {
797
+ text-align: center;
798
+ }
799
+
800
+ .wpr-pro-features-list ul {
801
+ text-align: left;
802
+ }
803
+
804
+ .wpr-pro-features-list ul li {
805
+ position: relative;
806
+ line-height: 22px;
807
+ padding-left: 20px;
808
+ }
809
+
810
+ .wpr-pro-features-list ul li::before {
811
+ content: '.';
812
+ font-size: 38px;
813
+ position: absolute;
814
+ top: -11px;
815
+ left: 0;
816
+ }
817
+
818
+ .wpr-pro-features-list ul + a {
819
+ display: inline-block;
820
+ background-color: #f54;
821
+ color: #fff;
822
+ margin: 15px 15px 10px 0;
823
+ padding: 7px 12px;
824
+ border-radius: 3px;
825
+ }
826
+
827
+ .wpr-pro-features-list ul + a:hover {
828
+ color: #fff;
829
+ }
830
+
831
+ /* Video Tutorial Link */
832
+ .elementor-control[class*="video_tutorial"] {
833
+ padding-top: 0 !important;
834
+ padding-bottom: 5px !important;
835
+ }
836
+
837
+ .elementor-control.elementor-control-woo_grid_notice_video_tutorial,
838
+ .elementor-control-show_last_update_date {
839
+ padding-bottom: 15px !important;
840
+ }
841
+
842
+ .elementor-control.elementor-control-woo_grid_notice_video_tutorial a {
843
+ display: inline-block;
844
+ margin-top: 5px;
845
+ }
846
+
847
+ .elementor-control[class*="video_tutorial"] a {
848
+ line-height: 16px;
849
+ font-size: 12px;
850
+ }
851
+
852
+ .elementor-control[class*="video_tutorial"] a .dashicons {
853
+ font-size: 16px;
854
+ }
855
+
856
+ /* Pro Control Class */
857
+ .elementor-control.wpr-pro-control label i {
858
+ color: #aeaeae;
859
+ font-size: 14px;
860
+ margin-left: 3px;
861
+ }
862
+
863
+ .elementor-control.wpr-pro-control .elementor-control-content:before {
864
+ content: '';
865
+ position: absolute;
866
+ width: 100%;
867
+ height: 100%;
868
+ z-index: 9;
869
+ background: transparent;
870
+ }
871
+
872
+ .elementor-control.wpr-pro-control .elementor-control-content:after {
873
+ content: "This option is available in the Pro Version.";
874
+ visibility: hidden;
875
+ opacity: 0;
876
+ position: absolute;
877
+ top: 30px;
878
+ padding: 15px;
879
+ z-index: 99;
880
+ margin-top: 10px;
881
+ font-size: 12px;
882
+ color: #93003c;
883
+ background-color: #ffffff;
884
+ border-radius: 5px;
885
+ -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
886
+ box-shadow: 1px 1px 5px rgba(0,0,0,0.2);
887
+ border: 1px solid #e6e9ec;
888
+ -webkit-transition: all 0.2s ease-in;
889
+ -o-transition: all 0.2s ease-in;
890
+ transition: all 0.2s ease-in;
891
+ }
892
+
893
+ .elementor-repeater-fields .elementor-control.wpr-pro-control .elementor-control-content:after {
894
+ content: "This is available in the Pro Version.";
895
+ }
896
+
897
+ .elementor-control.wpr-pro-control.no-distance .elementor-control-content:after {
898
+ margin: 0;
899
+ }
900
+
901
+ .elementor-control.wpr-pro-control .elementor-control-content:hover:after {
902
+ visibility: visible;
903
+ opacity: 1;
904
+ }
905
+
906
+ /*--------------------------------------------------------------
907
+ == Request New Feature
908
+ --------------------------------------------------------------*/
909
+ .elementor-control-section_request_new_feature .elementor-section-toggle,
910
+ .elementor-control-section_request_new_feature .elementor-section-title {
911
+ color: #1CB4E4;
912
+ line-height: 20px;
913
+ }
914
+
915
+ .elementor-control-section_request_new_feature .elementor-section-title .dashicons {
916
+ line-height: 20px;
917
+ font-size: 13px;
918
+ }
919
+
920
+ .elementor-control-request_new_feature {
921
+ line-height: 20px;
922
+ }
923
+
924
+ .elementor-control-request_new_feature a {
925
+ display: block;
926
+ padding: 10px 15px;
927
+ border-radius: 3px;
928
+ margin-top: 15px;
929
+ text-align: center;
930
+ text-decoration: none;
931
+ background-color: #1CB4E4;
932
+ color: #fff;
933
+ font-size: 13px;
934
+ font-weight: 500;
935
+ }
936
+
937
+ .elementor-control-request_new_feature a:hover {
938
+ color: #fff;
939
+ background-color: #1589ad;
940
+ }
941
+
942
+ .elementor-control-request_new_feature a .dashicons {
943
+ font-size: 13px;
944
+ line-height: 18px;
945
+ }
946
+
947
+
948
+ /*--------------------------------------------------------------
949
+ == Theme Builder Widgets
950
+ --------------------------------------------------------------*/
951
+ #elementor-panel-categories {
952
+ display: -webkit-box;
953
+ display: -ms-flexbox;
954
+ display: flex;
955
+ -webkit-box-orient: vertical;
956
+ -webkit-box-direction: normal;
957
+ -ms-flex-direction: column;
958
+ flex-direction: column;
959
+ }
960
+
961
+ #elementor-panel-categories > div {
962
+ -webkit-box-ordinal-group: 3;
963
+ -ms-flex-order: 2;
964
+ order: 2;
965
+ }
966
+
967
+ #elementor-panel-category-wpr-theme-builder-widgets,
968
+ #elementor-panel-category-wpr-woocommerce-builder-widgets {
969
+ -webkit-box-ordinal-group: 2 !important;
970
+ -ms-flex-order: 1 !important;
971
+ order: 1 !important;
972
+ }
973
+
974
+ .elementor-editor-wpr-theme-builder #elementor-panel-footer-saver-preview {
975
+ display: none !important;
976
+ }
977
+
978
+
979
+ /*--------------------------------------------------------------
980
+ == Elementor Search Notice
981
+ --------------------------------------------------------------*/
982
+ .wpr-elementor-search-notice {
983
+ background: #fff;
984
+ font-size: 13px;
985
+ padding: 20px;
986
+ line-height: 18px;
987
+ margin: 10px;
988
+ border-left: 3px solid #71d7f7;
989
+ -webkit-box-shadow: 0 1px 4px 0 rgb(0 0 0 / 7%);
990
+ box-shadow: 0 1px 4px 0 rgb(0 0 0 / 7%);
991
+ }
992
+
993
+
994
+ /*--------------------------------------------------------------
995
+ == Debug
996
+ --------------------------------------------------------------*/
997
+ pre.xdebug-var-dump {
998
+ position: absolute;
999
+ z-index: 999999;
1000
+ background: #fff;
1001
+ border: 2px solid #000;
1002
+ padding: 20px;
1003
+ left: 300px;
1004
  }
assets/css/lib/animations/loading-animations.css CHANGED
@@ -1,1064 +1,1064 @@
1
- /*
2
- * Usage:
3
- *
4
- <div class="wpr-rotating-plane"></div>
5
- *
6
- */
7
-
8
- .wpr-rotating-plane {
9
- width: 40px;
10
- height: 40px;
11
- background-color: #333;
12
- -webkit-animation: wpr-rotatePlane 1.2s infinite ease-in-out;
13
- animation: wpr-rotatePlane 1.2s infinite ease-in-out;
14
- }
15
-
16
- @-webkit-keyframes wpr-rotatePlane {
17
- 0% {
18
- -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
19
- transform: perspective(120px) rotateX(0deg) rotateY(0deg);
20
- }
21
- 50% {
22
- -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
23
- transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
24
- }
25
- 100% {
26
- -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
27
- transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
28
- }
29
- }
30
-
31
- @keyframes wpr-rotatePlane {
32
- 0% {
33
- -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
34
- transform: perspective(120px) rotateX(0deg) rotateY(0deg);
35
- }
36
- 50% {
37
- -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
38
- transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
39
- }
40
- 100% {
41
- -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
42
- transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
43
- }
44
- }
45
-
46
-
47
- /*
48
- * Usage:
49
- *
50
- <div class="wpr-double-bounce">
51
- <div class="wpr-child wpr-double-bounce1"></div>
52
- <div class="wpr-child wpr-double-bounce2"></div>
53
- </div>
54
- *
55
- */
56
-
57
- .wpr-double-bounce {
58
- width: 23px;
59
- height: 23px;
60
- position: relative;
61
- }
62
-
63
- .wpr-double-bounce .wpr-child {
64
- width: 100%;
65
- height: 100%;
66
- border-radius: 50%;
67
- opacity: 0.6;
68
- position: absolute;
69
- top: 0;
70
- left: 0;
71
- -webkit-animation: wpr-doubleBounce 2s infinite ease-in-out;
72
- animation: wpr-doubleBounce 2s infinite ease-in-out;
73
- }
74
-
75
- .wpr-double-bounce .wpr-double-bounce2 {
76
- -webkit-animation-delay: -1.0s;
77
- animation-delay: -1.0s;
78
- }
79
-
80
- @-webkit-keyframes wpr-doubleBounce {
81
- 0%,
82
- 100% {
83
- -webkit-transform: scale(0);
84
- transform: scale(0);
85
- }
86
- 50% {
87
- -webkit-transform: scale(1);
88
- transform: scale(1);
89
- }
90
- }
91
-
92
- @keyframes wpr-doubleBounce {
93
- 0%,
94
- 100% {
95
- -webkit-transform: scale(0);
96
- transform: scale(0);
97
- }
98
- 50% {
99
- -webkit-transform: scale(1);
100
- transform: scale(1);
101
- }
102
- }
103
-
104
-
105
- /*
106
- * Usage:
107
- *
108
- <div class="wpr-wave">
109
- <div class="wpr-rect wpr-rect1"></div>
110
- <div class="wpr-rect wpr-rect2"></div>
111
- <div class="wpr-rect wpr-rect3"></div>
112
- <div class="wpr-rect wpr-rect4"></div>
113
- <div class="wpr-rect wpr-rect5"></div>
114
- </div>
115
- *
116
- */
117
-
118
- .wpr-wave {
119
- width: 50px;
120
- height: 25px;
121
- text-align: center;
122
- }
123
-
124
- .wpr-wave .wpr-rect {
125
- height: 100%;
126
- width: 4px;
127
- margin-right: 2px;
128
- display: inline-block;
129
- -webkit-animation: wpr-waveStretchDelay 1.2s infinite ease-in-out;
130
- animation: wpr-waveStretchDelay 1.2s infinite ease-in-out;
131
- }
132
-
133
- .wpr-wave .wpr-rect1 {
134
- -webkit-animation-delay: -1.2s;
135
- animation-delay: -1.2s;
136
- }
137
-
138
- .wpr-wave .wpr-rect2 {
139
- -webkit-animation-delay: -1.1s;
140
- animation-delay: -1.1s;
141
- }
142
-
143
- .wpr-wave .wpr-rect3 {
144
- -webkit-animation-delay: -1s;
145
- animation-delay: -1s;
146
- }
147
-
148
- .wpr-wave .wpr-rect4 {
149
- -webkit-animation-delay: -0.9s;
150
- animation-delay: -0.9s;
151
- }
152
-
153
- .wpr-wave .wpr-rect5 {
154
- -webkit-animation-delay: -0.8s;
155
- animation-delay: -0.8s;
156
- }
157
-
158
- @-webkit-keyframes wpr-waveStretchDelay {
159
- 0%,
160
- 40%,
161
- 100% {
162
- -webkit-transform: scaleY(0.4);
163
- transform: scaleY(0.4);
164
- }
165
- 20% {
166
- -webkit-transform: scaleY(1);
167
- transform: scaleY(1);
168
- }
169
- }
170
-
171
- @keyframes wpr-waveStretchDelay {
172
- 0%,
173
- 40%,
174
- 100% {
175
- -webkit-transform: scaleY(0.4);
176
- transform: scaleY(0.4);
177
- }
178
- 20% {
179
- -webkit-transform: scaleY(1);
180
- transform: scaleY(1);
181
- }
182
- }
183
-
184
-
185
- /*
186
- * Usage:
187
- *
188
- <div class="wpr-wandering-cubes">
189
- <div class="wpr-cube wpr-cube1"></div>
190
- <div class="wpr-cube wpr-cube2"></div>
191
- </div>
192
- *
193
- */
194
-
195
- .wpr-wandering-cubes {
196
- width: 40px;
197
- height: 40px;
198
- position: relative;
199
- }
200
-
201
- .wpr-wandering-cubes .wpr-cube {
202
- background-color: #333;
203
- width: 10px;
204
- height: 10px;
205
- position: absolute;
206
- top: 0;
207
- left: 0;
208
- -webkit-animation: wpr-wanderingCube 1.8s ease-in-out -1.8s infinite both;
209
- animation: wpr-wanderingCube 1.8s ease-in-out -1.8s infinite both;
210
- }
211
-
212
- .wpr-wandering-cubes .wpr-cube2 {
213
- -webkit-animation-delay: -0.9s;
214
- animation-delay: -0.9s;
215
- }
216
-
217
- @-webkit-keyframes wpr-wanderingCube {
218
- 0% {
219
- -webkit-transform: rotate(0deg);
220
- transform: rotate(0deg);
221
- }
222
- 25% {
223
- -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
224
- transform: translateX(30px) rotate(-90deg) scale(0.5);
225
- }
226
- 50% {
227
- /* Hack to make FF rotate in the right direction */
228
- -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
229
- transform: translateX(30px) translateY(30px) rotate(-179deg);
230
- }
231
- 50.1% {
232
- -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
233
- transform: translateX(30px) translateY(30px) rotate(-180deg);
234
- }
235
- 75% {
236
- -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
237
- transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
238
- }
239
- 100% {
240
- -webkit-transform: rotate(-360deg);
241
- transform: rotate(-360deg);
242
- }
243
- }
244
-
245
- @keyframes wpr-wanderingCube {
246
- 0% {
247
- -webkit-transform: rotate(0deg);
248
- transform: rotate(0deg);
249
- }
250
- 25% {
251
- -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
252
- transform: translateX(30px) rotate(-90deg) scale(0.5);
253
- }
254
- 50% {
255
- /* Hack to make FF rotate in the right direction */
256
- -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
257
- transform: translateX(30px) translateY(30px) rotate(-179deg);
258
- }
259
- 50.1% {
260
- -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
261
- transform: translateX(30px) translateY(30px) rotate(-180deg);
262
- }
263
- 75% {
264
- -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
265
- transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
266
- }
267
- 100% {
268
- -webkit-transform: rotate(-360deg);
269
- transform: rotate(-360deg);
270
- }
271
- }
272
-
273
-
274
- /*
275
- * Usage:
276
- *
277
- <div class="wpr-spinner wpr-spinner-pulse"></div>
278
- *
279
- */
280
-
281
- .wpr-spinner-pulse {
282
- width: 23px;
283
- height: 23px;
284
- border-radius: 100%;
285
- -webkit-animation: wpr-pulseScaleOut 1s infinite ease-in-out;
286
- animation: wpr-pulseScaleOut 1s infinite ease-in-out;
287
- }
288
-
289
- @-webkit-keyframes wpr-pulseScaleOut {
290
- 0% {
291
- -webkit-transform: scale(0);
292
- transform: scale(0);
293
- }
294
- 100% {
295
- -webkit-transform: scale(1);
296
- transform: scale(1);
297
- opacity: 0;
298
- }
299
- }
300
-
301
- @keyframes wpr-pulseScaleOut {
302
- 0% {
303
- -webkit-transform: scale(0);
304
- transform: scale(0);
305
- }
306
- 100% {
307
- -webkit-transform: scale(1);
308
- transform: scale(1);
309
- opacity: 0;
310
- }
311
- }
312
-
313
-
314
- /*
315
- * Usage:
316
- *
317
- <div class="wpr-chasing-dots">
318
- <div class="wpr-child wpr-dot1"></div>
319
- <div class="wpr-child wpr-dot2"></div>
320
- </div>
321
- *
322
- */
323
-
324
- .wpr-chasing-dots {
325
- width: 20px;
326
- height: 20px;
327
- position: relative;
328
- text-align: center;
329
- -webkit-animation: wpr-chasingDotsRotate 2s infinite linear;
330
- animation: wpr-chasingDotsRotate 2s infinite linear;
331
- }
332
-
333
- .wpr-chasing-dots .wpr-child {
334
- width: 60%;
335
- height: 60%;
336
- display: inline-block;
337
- position: absolute;
338
- top: 0;
339
- border-radius: 100%;
340
- -webkit-animation: wpr-chasingDotsBounce 2s infinite ease-in-out;
341
- animation: wpr-chasingDotsBounce 2s infinite ease-in-out;
342
- }
343
-
344
- .wpr-chasing-dots .wpr-dot2 {
345
- top: auto;
346
- bottom: 0;
347
- -webkit-animation-delay: -1s;
348
- animation-delay: -1s;
349
- }
350
-
351
- @-webkit-keyframes wpr-chasingDotsRotate {
352
- 100% {
353
- -webkit-transform: rotate(360deg);
354
- transform: rotate(360deg);
355
- }
356
- }
357
-
358
- @keyframes wpr-chasingDotsRotate {
359
- 100% {
360
- -webkit-transform: rotate(360deg);
361
- transform: rotate(360deg);
362
- }
363
- }
364
-
365
- @-webkit-keyframes wpr-chasingDotsBounce {
366
- 0%,
367
- 100% {
368
- -webkit-transform: scale(0);
369
- transform: scale(0);
370
- }
371
- 50% {
372
- -webkit-transform: scale(1);
373
- transform: scale(1);
374
- }
375
- }
376
-
377
- @keyframes wpr-chasingDotsBounce {
378
- 0%,
379
- 100% {
380
- -webkit-transform: scale(0);
381
- transform: scale(0);
382
- }
383
- 50% {
384
- -webkit-transform: scale(1);
385
- transform: scale(1);
386
- }
387
- }
388
-
389
-
390
- /*
391
- * Usage:
392
- *
393
- <div class="wpr-three-bounce">
394
- <div class="wpr-child wpr-bounce1"></div>
395
- <div class="wpr-child wpr-bounce2"></div>
396
- <div class="wpr-child wpr-bounce3"></div>
397
- </div>
398
- *
399
- */
400
-
401
- .wpr-three-bounce {
402
- width: 80px;
403
- text-align: center;
404
- }
405
-
406
- .wpr-three-bounce .wpr-child {
407
- width: 10px;
408
- height: 10px;
409
- border-radius: 100%;
410
- margin-right: 1px;
411
- display: inline-block;
412
- -webkit-animation: wpr-three-bounce 1.4s ease-in-out 0s infinite both;
413
- animation: wpr-three-bounce 1.4s ease-in-out 0s infinite both;
414
- }
415
-
416
- .wpr-three-bounce .wpr-bounce1 {
417
- -webkit-animation-delay: -0.32s;
418
- animation-delay: -0.32s;
419
- }
420
-
421
- .wpr-three-bounce .wpr-bounce2 {
422
- -webkit-animation-delay: -0.16s;
423
- animation-delay: -0.16s;
424
- }
425
-
426
- @-webkit-keyframes wpr-three-bounce {
427
- 0%,
428
- 80%,
429
- 100% {
430
- -webkit-transform: scale(0);
431
- transform: scale(0);
432
- }
433
- 40% {
434
- -webkit-transform: scale(1);
435
- transform: scale(1);
436
- }
437
- }
438
-
439
- @keyframes wpr-three-bounce {
440
- 0%,
441
- 80%,
442
- 100% {
443
- -webkit-transform: scale(0);
444
- transform: scale(0);
445
- }
446
- 40% {
447
- -webkit-transform: scale(1);
448
- transform: scale(1);
449
- }
450
- }
451
-
452
-
453
- /*
454
- * Usage:
455
- *
456
- <div class="wpr-circle">
457
- <div class="wpr-circle1 wpr-child"></div>
458
- <div class="wpr-circle2 wpr-child"></div>
459
- <div class="wpr-circle3 wpr-child"></div>
460
- <div class="wpr-circle4 wpr-child"></div>
461
- <div class="wpr-circle5 wpr-child"></div>
462
- <div class="wpr-circle6 wpr-child"></div>
463
- <div class="wpr-circle7 wpr-child"></div>
464
- <div class="wpr-circle8 wpr-child"></div>
465
- <div class="wpr-circle9 wpr-child"></div>
466
- <div class="wpr-circle10 wpr-child"></div>
467
- <div class="wpr-circle11 wpr-child"></div>
468
- <div class="wpr-circle12 wpr-child"></div>
469
- </div>
470
- *
471
- */
472
-
473
- .wpr-circle {
474
- width: 22px;
475
- height: 22px;
476
- position: relative;
477
- }
478
-
479
- .wpr-circle .wpr-child {
480
- width: 100%;
481
- height: 100%;
482
- position: absolute;
483
- left: 0;
484
- top: 0;
485
- }
486
-
487
- .wpr-circle .wpr-child:before {
488
- content: '';
489
- display: block;
490
- margin: 0 auto;
491
- width: 15%;
492
- height: 15%;
493
- background-color: #333;
494
- border-radius: 100%;
495
- -webkit-animation: wpr-circleBounceDelay 1.2s infinite ease-in-out both;
496
- animation: wpr-circleBounceDelay 1.2s infinite ease-in-out both;
497
- }
498
-
499
- .wpr-circle .wpr-circle2 {
500
- -webkit-transform: rotate(30deg);
501
- -ms-transform: rotate(30deg);
502
- transform: rotate(30deg);
503
- }
504
-
505
- .wpr-circle .wpr-circle3 {
506
- -webkit-transform: rotate(60deg);
507
- -ms-transform: rotate(60deg);
508
- transform: rotate(60deg);
509
- }
510
-
511
- .wpr-circle .wpr-circle4 {
512
- -webkit-transform: rotate(90deg);
513
- -ms-transform: rotate(90deg);
514
- transform: rotate(90deg);
515
- }
516
-
517
- .wpr-circle .wpr-circle5 {
518
- -webkit-transform: rotate(120deg);
519
- -ms-transform: rotate(120deg);
520
- transform: rotate(120deg);
521
- }
522
-
523
- .wpr-circle .wpr-circle6 {
524
- -webkit-transform: rotate(150deg);
525
- -ms-transform: rotate(150deg);
526
- transform: rotate(150deg);
527
- }
528
-
529
- .wpr-circle .wpr-circle7 {
530
- -webkit-transform: rotate(180deg);
531
- -ms-transform: rotate(180deg);
532
- transform: rotate(180deg);
533
- }
534
-
535
- .wpr-circle .wpr-circle8 {
536
- -webkit-transform: rotate(210deg);
537
- -ms-transform: rotate(210deg);
538
- transform: rotate(210deg);
539
- }
540
-
541
- .wpr-circle .wpr-circle9 {
542
- -webkit-transform: rotate(240deg);
543
- -ms-transform: rotate(240deg);
544
- transform: rotate(240deg);
545
- }
546
-
547
- .wpr-circle .wpr-circle10 {
548
- -webkit-transform: rotate(270deg);
549
- -ms-transform: rotate(270deg);
550
- transform: rotate(270deg);
551
- }
552
-
553
- .wpr-circle .wpr-circle11 {
554
- -webkit-transform: rotate(300deg);
555
- -ms-transform: rotate(300deg);
556
- transform: rotate(300deg);
557
- }
558
-
559
- .wpr-circle .wpr-circle12 {
560
- -webkit-transform: rotate(330deg);
561
- -ms-transform: rotate(330deg);
562
- transform: rotate(330deg);
563
- }
564
-
565
- .wpr-circle .wpr-circle2:before {
566
- -webkit-animation-delay: -1.1s;
567
- animation-delay: -1.1s;
568
- }
569
-
570
- .wpr-circle .wpr-circle3:before {
571
- -webkit-animation-delay: -1s;
572
- animation-delay: -1s;
573
- }
574
-
575
- .wpr-circle .wpr-circle4:before {
576
- -webkit-animation-delay: -0.9s;
577
- animation-delay: -0.9s;
578
- }
579
-
580
- .wpr-circle .wpr-circle5:before {
581
- -webkit-animation-delay: -0.8s;
582
- animation-delay: -0.8s;
583
- }
584
-
585
- .wpr-circle .wpr-circle6:before {
586
- -webkit-animation-delay: -0.7s;
587
- animation-delay: -0.7s;
588
- }
589
-
590
- .wpr-circle .wpr-circle7:before {
591
- -webkit-animation-delay: -0.6s;
592
- animation-delay: -0.6s;
593
- }
594
-
595
- .wpr-circle .wpr-circle8:before {
596
- -webkit-animation-delay: -0.5s;
597
- animation-delay: -0.5s;
598
- }
599
-
600
- .wpr-circle .wpr-circle9:before {
601
- -webkit-animation-delay: -0.4s;
602
- animation-delay: -0.4s;
603
- }
604
-
605
- .wpr-circle .wpr-circle10:before {
606
- -webkit-animation-delay: -0.3s;
607
- animation-delay: -0.3s;
608
- }
609
-
610
- .wpr-circle .wpr-circle11:before {
611
- -webkit-animation-delay: -0.2s;
612
- animation-delay: -0.2s;
613
- }
614
-
615
- .wpr-circle .wpr-circle12:before {
616
- -webkit-animation-delay: -0.1s;
617
- animation-delay: -0.1s;
618
- }
619
-
620
- @-webkit-keyframes wpr-circleBounceDelay {
621
- 0%,
622
- 80%,
623
- 100% {
624
- -webkit-transform: scale(0);
625
- transform: scale(0);
626
- }
627
- 40% {
628
- -webkit-transform: scale(1);
629
- transform: scale(1);
630
- }
631
- }
632
-
633
- @keyframes wpr-circleBounceDelay {
634
- 0%,
635
- 80%,
636
- 100% {
637
- -webkit-transform: scale(0);
638
- transform: scale(0);
639
- }
640
- 40% {
641
- -webkit-transform: scale(1);
642
- transform: scale(1);
643
- }
644
- }
645
-
646
-
647
- /*
648
- * Usage:
649
- *
650
- <div class="wpr-cube-grid">
651
- <div class="wpr-cube wpr-cube1"></div>
652
- <div class="wpr-cube wpr-cube2"></div>
653
- <div class="wpr-cube wpr-cube3"></div>
654
- <div class="wpr-cube wpr-cube4"></div>
655
- <div class="wpr-cube wpr-cube5"></div>
656
- <div class="wpr-cube wpr-cube6"></div>
657
- <div class="wpr-cube wpr-cube7"></div>
658
- <div class="wpr-cube wpr-cube8"></div>
659
- <div class="wpr-cube wpr-cube9"></div>
660
- </div>
661
- *
662
- */
663
-
664
- .wpr-cube-grid {
665
- width: 40px;
666
- height: 40px;
667
- /*
668
- * Spinner positions
669
- * 1 2 3
670
- * 4 5 6
671
- * 7 8 9
672
- */
673
- }
674
-
675
- .wpr-cube-grid .wpr-cube {
676
- width: 33.33%;
677
- height: 33.33%;
678
- background-color: #333;
679
- float: left;
680
- -webkit-animation: wpr-cubeGridScaleDelay 1.3s infinite ease-in-out;
681
- animation: wpr-cubeGridScaleDelay 1.3s infinite ease-in-out;
682
- }
683
-
684
- .wpr-cube-grid .wpr-cube1 {
685
- -webkit-animation-delay: 0.2s;
686
- animation-delay: 0.2s;
687
- }
688
-
689
- .wpr-cube-grid .wpr-cube2 {
690
- -webkit-animation-delay: 0.3s;
691
- animation-delay: 0.3s;
692
- }
693
-
694
- .wpr-cube-grid .wpr-cube3 {
695
- -webkit-animation-delay: 0.4s;
696
- animation-delay: 0.4s;
697
- }
698
-
699
- .wpr-cube-grid .wpr-cube4 {
700
- -webkit-animation-delay: 0.1s;
701
- animation-delay: 0.1s;
702
- }
703
-
704
- .wpr-cube-grid .wpr-cube5 {
705
- -webkit-animation-delay: 0.2s;
706
- animation-delay: 0.2s;
707
- }
708
-
709
- .wpr-cube-grid .wpr-cube6 {
710
- -webkit-animation-delay: 0.3s;
711
- animation-delay: 0.3s;
712
- }
713
-
714
- .wpr-cube-grid .wpr-cube7 {
715
- -webkit-animation-delay: 0.0s;
716
- animation-delay: 0.0s;
717
- }
718
-
719
- .wpr-cube-grid .wpr-cube8 {
720
- -webkit-animation-delay: 0.1s;
721
- animation-delay: 0.1s;
722
- }
723
-
724
- .wpr-cube-grid .wpr-cube9 {
725
- -webkit-animation-delay: 0.2s;
726
- animation-delay: 0.2s;
727
- }
728
-
729
- @-webkit-keyframes wpr-cubeGridScaleDelay {
730
- 0%,
731
- 70%,
732
- 100% {
733
- -webkit-transform: scale3D(1, 1, 1);
734
- transform: scale3D(1, 1, 1);
735
- }
736
- 35% {
737
- -webkit-transform: scale3D(0, 0, 1);
738
- transform: scale3D(0, 0, 1);
739
- }
740
- }
741
-
742
- @keyframes wpr-cubeGridScaleDelay {
743
- 0%,
744
- 70%,
745
- 100% {
746
- -webkit-transform: scale3D(1, 1, 1);
747
- transform: scale3D(1, 1, 1);
748
- }
749
- 35% {
750
- -webkit-transform: scale3D(0, 0, 1);
751
- transform: scale3D(0, 0, 1);
752
- }
753
- }
754
-
755
-
756
- /*
757
- * Usage:
758
- *
759
- <div class="wpr-fading-circle">
760
- <div class="wpr-circle1 wpr-circle"></div>
761
- <div class="wpr-circle2 wpr-circle"></div>
762
- <div class="wpr-circle3 wpr-circle"></div>
763
- <div class="wpr-circle4 wpr-circle"></div>
764
- <div class="wpr-circle5 wpr-circle"></div>
765
- <div class="wpr-circle6 wpr-circle"></div>
766
- <div class="wpr-circle7 wpr-circle"></div>
767
- <div class="wpr-circle8 wpr-circle"></div>
768
- <div class="wpr-circle9 wpr-circle"></div>
769
- <div class="wpr-circle10 wpr-circle"></div>
770
- <div class="wpr-circle11 wpr-circle"></div>
771
- <div class="wpr-circle12 wpr-circle"></div>
772
- </div>
773
- *
774
- */
775
-
776
- .wpr-fading-circle {
777
- width: 25px;
778
- height: 25px;
779
- position: relative;
780
- }
781
-
782
- .wpr-fading-circle .wpr-circle {
783
- width: 100%;
784
- height: 100%;
785
- position: absolute;
786
- left: 0;
787
- top: 0;
788
- }
789
-
790
- .wpr-fading-circle .wpr-circle:before {
791
- content: '';
792
- display: block;
793
- margin: 0 auto;
794
- width: 15%;
795
- height: 15%;
796
- border-radius: 100%;
797
- -webkit-animation: wpr-circleFadeDelay 1.2s infinite ease-in-out both;
798
- animation: wpr-circleFadeDelay 1.2s infinite ease-in-out both;
799
- }
800
-
801
- .wpr-fading-circle .wpr-circle2 {
802
- -webkit-transform: rotate(30deg);
803
- -ms-transform: rotate(30deg);
804
- transform: rotate(30deg);
805
- }
806
-
807
- .wpr-fading-circle .wpr-circle3 {
808
- -webkit-transform: rotate(60deg);
809
- -ms-transform: rotate(60deg);
810
- transform: rotate(60deg);
811
- }
812
-
813
- .wpr-fading-circle .wpr-circle4 {
814
- -webkit-transform: rotate(90deg);
815
- -ms-transform: rotate(90deg);
816
- transform: rotate(90deg);
817
- }
818
-
819
- .wpr-fading-circle .wpr-circle5 {
820
- -webkit-transform: rotate(120deg);
821
- -ms-transform: rotate(120deg);
822
- transform: rotate(120deg);
823
- }
824
-
825
- .wpr-fading-circle .wpr-circle6 {
826
- -webkit-transform: rotate(150deg);
827
- -ms-transform: rotate(150deg);
828
- transform: rotate(150deg);
829
- }
830
-
831
- .wpr-fading-circle .wpr-circle7 {
832
- -webkit-transform: rotate(180deg);
833
- -ms-transform: rotate(180deg);
834
- transform: rotate(180deg);
835
- }
836
-
837
- .wpr-fading-circle .wpr-circle8 {
838
- -webkit-transform: rotate(210deg);
839
- -ms-transform: rotate(210deg);
840
- transform: rotate(210deg);
841
- }
842
-
843
- .wpr-fading-circle .wpr-circle9 {
844
- -webkit-transform: rotate(240deg);
845
- -ms-transform: rotate(240deg);
846
- transform: rotate(240deg);
847
- }
848
-
849
- .wpr-fading-circle .wpr-circle10 {
850
- -webkit-transform: rotate(270deg);
851
- -ms-transform: rotate(270deg);
852
- transform: rotate(270deg);
853
- }
854
-
855
- .wpr-fading-circle .wpr-circle11 {
856
- -webkit-transform: rotate(300deg);
857
- -ms-transform: rotate(300deg);
858
- transform: rotate(300deg);
859
- }
860
-
861
- .wpr-fading-circle .wpr-circle12 {
862
- -webkit-transform: rotate(330deg);
863
- -ms-transform: rotate(330deg);
864
- transform: rotate(330deg);
865
- }
866
-
867
- .wpr-fading-circle .wpr-circle2:before {
868
- -webkit-animation-delay: -1.1s;
869
- animation-delay: -1.1s;
870
- }
871
-
872
- .wpr-fading-circle .wpr-circle3:before {
873
- -webkit-animation-delay: -1s;
874
- animation-delay: -1s;
875
- }
876
-
877
- .wpr-fading-circle .wpr-circle4:before {
878
- -webkit-animation-delay: -0.9s;
879
- animation-delay: -0.9s;
880
- }
881
-
882
- .wpr-fading-circle .wpr-circle5:before {
883
- -webkit-animation-delay: -0.8s;
884
- animation-delay: -0.8s;
885
- }
886
-
887
- .wpr-fading-circle .wpr-circle6:before {
888
- -webkit-animation-delay: -0.7s;
889
- animation-delay: -0.7s;
890
- }
891
-
892
- .wpr-fading-circle .wpr-circle7:before {
893
- -webkit-animation-delay: -0.6s;
894
- animation-delay: -0.6s;
895
- }
896
-
897
- .wpr-fading-circle .wpr-circle8:before {
898
- -webkit-animation-delay: -0.5s;
899
- animation-delay: -0.5s;
900
- }
901
-
902
- .wpr-fading-circle .wpr-circle9:before {
903
- -webkit-animation-delay: -0.4s;
904
- animation-delay: -0.4s;
905
- }
906
-
907
- .wpr-fading-circle .wpr-circle10:before {
908
- -webkit-animation-delay: -0.3s;
909
- animation-delay: -0.3s;
910
- }
911
-
912
- .wpr-fading-circle .wpr-circle11:before {
913
- -webkit-animation-delay: -0.2s;
914
- animation-delay: -0.2s;
915
- }
916
-
917
- .wpr-fading-circle .wpr-circle12:before {
918
- -webkit-animation-delay: -0.1s;
919
- animation-delay: -0.1s;
920
- }
921
-
922
- @-webkit-keyframes wpr-circleFadeDelay {
923
- 0%,
924
- 39%,
925
- 100% {
926
- opacity: 0;
927
- }
928
- 40% {
929
- opacity: 1;
930
- }
931
- }
932
-
933
- @keyframes wpr-circleFadeDelay {
934
- 0%,
935
- 39%,
936
- 100% {
937
- opacity: 0;
938
- }
939
- 40% {
940
- opacity: 1;
941
- }
942
- }
943
-
944
-
945
- /*
946
- * Usage:
947
- *
948
- <div class="wpr-folding-cube">
949
- <div class="wpr-cube1 wpr-cube"></div>
950
- <div class="wpr-cube2 wpr-cube"></div>
951
- <div class="wpr-cube4 wpr-cube"></div>
952
- <div class="wpr-cube3 wpr-cube"></div>
953
- </div>
954
- *
955
- */
956
-
957
- .wpr-folding-cube {
958
- width: 40px;
959
- height: 40px;
960
- position: relative;
961
- -webkit-transform: rotateZ(45deg);
962
- -ms-transform: rotate(45deg);
963
- transform: rotateZ(45deg);
964
- }
965
-
966
- .wpr-folding-cube .wpr-cube {
967
- float: left;
968
- width: 50%;
969
- height: 50%;
970
- position: relative;
971
- -webkit-transform: scale(1.1);
972
- -ms-transform: scale(1.1);
973
- transform: scale(1.1);
974
- }
975
-
976
- .wpr-folding-cube .wpr-cube:before {
977
- content: '';
978
- position: absolute;
979
- top: 0;
980
- left: 0;
981
- width: 100%;
982
- height: 100%;
983
- background-color: #333;
984
- -webkit-animation: wpr-foldCubeAngle 2.4s infinite linear both;
985
- animation: wpr-foldCubeAngle 2.4s infinite linear both;
986
- -webkit-transform-origin: 100% 100%;
987
- -ms-transform-origin: 100% 100%;
988
- transform-origin: 100% 100%;
989
- }
990
-
991
- .wpr-folding-cube .wpr-cube2 {
992
- -webkit-transform: scale(1.1) rotateZ(90deg);
993
- -ms-transform: scale(1.1) rotate(90deg);
994
- transform: scale(1.1) rotateZ(90deg);
995
- }
996
-
997
- .wpr-folding-cube .wpr-cube3 {
998
- -webkit-transform: scale(1.1) rotateZ(180deg);
999
- -ms-transform: scale(1.1) rotate(180deg);
1000
- transform: scale(1.1) rotateZ(180deg);
1001
- }
1002
-
1003
- .wpr-folding-cube .wpr-cube4 {
1004
- -webkit-transform: scale(1.1) rotateZ(270deg);
1005
- -ms-transform: scale(1.1) rotate(270deg);
1006
- transform: scale(1.1) rotateZ(270deg);
1007
- }
1008
-
1009
- .wpr-folding-cube .wpr-cube2:before {
1010
- -webkit-animation-delay: 0.3s;
1011
- animation-delay: 0.3s;
1012
- }
1013
-
1014
- .wpr-folding-cube .wpr-cube3:before {
1015
- -webkit-animation-delay: 0.6s;
1016
- animation-delay: 0.6s;
1017
- }
1018
-
1019
- .wpr-folding-cube .wpr-cube4:before {
1020
- -webkit-animation-delay: 0.9s;
1021
- animation-delay: 0.9s;
1022
- }
1023
-
1024
- @-webkit-keyframes wpr-foldCubeAngle {
1025
- 0%,
1026
- 10% {
1027
- -webkit-transform: perspective(140px) rotateX(-180deg);
1028
- transform: perspective(140px) rotateX(-180deg);
1029
- opacity: 0;
1030
- }
1031
- 25%,
1032
- 75% {
1033
- -webkit-transform: perspective(140px) rotateX(0deg);
1034
- transform: perspective(140px) rotateX(0deg);
1035
- opacity: 1;
1036
- }
1037
- 90%,
1038
- 100% {
1039
- -webkit-transform: perspective(140px) rotateY(180deg);
1040
- transform: perspective(140px) rotateY(180deg);
1041
- opacity: 0;
1042
- }
1043
- }
1044
-
1045
- @keyframes wpr-foldCubeAngle {
1046
- 0%,
1047
- 10% {
1048
- -webkit-transform: perspective(140px) rotateX(-180deg);
1049
- transform: perspective(140px) rotateX(-180deg);
1050
- opacity: 0;
1051
- }
1052
- 25%,
1053
- 75% {
1054
- -webkit-transform: perspective(140px) rotateX(0deg);
1055
- transform: perspective(140px) rotateX(0deg);
1056
- opacity: 1;
1057
- }
1058
- 90%,
1059
- 100% {
1060
- -webkit-transform: perspective(140px) rotateY(180deg);
1061
- transform: perspective(140px) rotateY(180deg);
1062
- opacity: 0;
1063
- }
1064
  }
1
+ /*
2
+ * Usage:
3
+ *
4
+ <div class="wpr-rotating-plane"></div>
5
+ *
6
+ */
7
+
8
+ .wpr-rotating-plane {
9
+ width: 40px;
10
+ height: 40px;
11
+ background-color: #333;
12
+ -webkit-animation: wpr-rotatePlane 1.2s infinite ease-in-out;
13
+ animation: wpr-rotatePlane 1.2s infinite ease-in-out;
14
+ }
15
+
16
+ @-webkit-keyframes wpr-rotatePlane {
17
+ 0% {
18
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
19
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
20
+ }
21
+ 50% {
22
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
23
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
24
+ }
25
+ 100% {
26
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
27
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
28
+ }
29
+ }
30
+
31
+ @keyframes wpr-rotatePlane {
32
+ 0% {
33
+ -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
34
+ transform: perspective(120px) rotateX(0deg) rotateY(0deg);
35
+ }
36
+ 50% {
37
+ -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
38
+ transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
39
+ }
40
+ 100% {
41
+ -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
42
+ transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
43
+ }
44
+ }
45
+
46
+
47
+ /*
48
+ * Usage:
49
+ *
50
+ <div class="wpr-double-bounce">
51
+ <div class="wpr-child wpr-double-bounce1"></div>
52
+ <div class="wpr-child wpr-double-bounce2"></div>
53
+ </div>
54
+ *
55
+ */
56
+
57
+ .wpr-double-bounce {
58
+ width: 23px;
59
+ height: 23px;
60
+ position: relative;
61
+ }
62
+
63
+ .wpr-double-bounce .wpr-child {
64
+ width: 100%;
65
+ height: 100%;
66
+ border-radius: 50%;
67
+ opacity: 0.6;
68
+ position: absolute;
69
+ top: 0;
70
+ left: 0;
71
+ -webkit-animation: wpr-doubleBounce 2s infinite ease-in-out;
72
+ animation: wpr-doubleBounce 2s infinite ease-in-out;
73
+ }
74
+
75
+ .wpr-double-bounce .wpr-double-bounce2 {
76
+ -webkit-animation-delay: -1.0s;
77
+ animation-delay: -1.0s;
78
+ }
79
+
80
+ @-webkit-keyframes wpr-doubleBounce {
81
+ 0%,
82
+ 100% {
83
+ -webkit-transform: scale(0);
84
+ transform: scale(0);
85
+ }
86
+ 50% {
87
+ -webkit-transform: scale(1);
88
+ transform: scale(1);
89
+ }
90
+ }
91
+
92
+ @keyframes wpr-doubleBounce {
93
+ 0%,
94
+ 100% {
95
+ -webkit-transform: scale(0);
96
+ transform: scale(0);
97
+ }
98
+ 50% {
99
+ -webkit-transform: scale(1);
100
+ transform: scale(1);
101
+ }
102
+ }
103
+
104
+
105
+ /*
106
+ * Usage:
107
+ *
108
+ <div class="wpr-wave">
109
+ <div class="wpr-rect wpr-rect1"></div>
110
+ <div class="wpr-rect wpr-rect2"></div>
111
+ <div class="wpr-rect wpr-rect3"></div>
112
+ <div class="wpr-rect wpr-rect4"></div>
113
+ <div class="wpr-rect wpr-rect5"></div>
114
+ </div>
115
+ *
116
+ */
117
+
118
+ .wpr-wave {
119
+ width: 50px;
120
+ height: 25px;
121
+ text-align: center;
122
+ }
123
+
124
+ .wpr-wave .wpr-rect {
125
+ height: 100%;
126
+ width: 4px;
127
+ margin-right: 2px;
128
+ display: inline-block;
129
+ -webkit-animation: wpr-waveStretchDelay 1.2s infinite ease-in-out;
130
+ animation: wpr-waveStretchDelay 1.2s infinite ease-in-out;
131
+ }
132
+
133
+ .wpr-wave .wpr-rect1 {
134
+ -webkit-animation-delay: -1.2s;
135
+ animation-delay: -1.2s;
136
+ }
137
+
138
+ .wpr-wave .wpr-rect2 {
139
+ -webkit-animation-delay: -1.1s;
140
+ animation-delay: -1.1s;
141
+ }
142
+
143
+ .wpr-wave .wpr-rect3 {
144
+ -webkit-animation-delay: -1s;
145
+ animation-delay: -1s;
146
+ }
147
+
148
+ .wpr-wave .wpr-rect4 {
149
+ -webkit-animation-delay: -0.9s;
150
+ animation-delay: -0.9s;
151
+ }
152
+
153
+ .wpr-wave .wpr-rect5 {
154
+ -webkit-animation-delay: -0.8s;
155
+ animation-delay: -0.8s;
156
+ }
157
+
158
+ @-webkit-keyframes wpr-waveStretchDelay {
159
+ 0%,
160
+ 40%,
161
+ 100% {
162
+ -webkit-transform: scaleY(0.4);
163
+ transform: scaleY(0.4);
164
+ }
165
+ 20% {
166
+ -webkit-transform: scaleY(1);
167
+ transform: scaleY(1);
168
+ }
169
+ }
170
+
171
+ @keyframes wpr-waveStretchDelay {
172
+ 0%,
173
+ 40%,
174
+ 100% {
175
+ -webkit-transform: scaleY(0.4);
176
+ transform: scaleY(0.4);
177
+ }
178
+ 20% {
179
+ -webkit-transform: scaleY(1);
180
+ transform: scaleY(1);
181
+ }
182
+ }
183
+
184
+
185
+ /*
186
+ * Usage:
187
+ *
188
+ <div class="wpr-wandering-cubes">
189
+ <div class="wpr-cube wpr-cube1"></div>
190
+ <div class="wpr-cube wpr-cube2"></div>
191
+ </div>
192
+ *
193
+ */
194
+
195
+ .wpr-wandering-cubes {
196
+ width: 40px;
197
+ height: 40px;
198
+ position: relative;
199
+ }
200
+
201
+ .wpr-wandering-cubes .wpr-cube {
202
+ background-color: #333;
203
+ width: 10px;
204
+ height: 10px;
205
+ position: absolute;
206
+ top: 0;
207
+ left: 0;
208
+ -webkit-animation: wpr-wanderingCube 1.8s ease-in-out -1.8s infinite both;
209
+ animation: wpr-wanderingCube 1.8s ease-in-out -1.8s infinite both;
210
+ }
211
+
212
+ .wpr-wandering-cubes .wpr-cube2 {
213
+ -webkit-animation-delay: -0.9s;
214
+ animation-delay: -0.9s;
215
+ }
216
+
217
+ @-webkit-keyframes wpr-wanderingCube {
218
+ 0% {
219
+ -webkit-transform: rotate(0deg);
220
+ transform: rotate(0deg);
221
+ }
222
+ 25% {
223
+ -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
224
+ transform: translateX(30px) rotate(-90deg) scale(0.5);
225
+ }
226
+ 50% {
227
+ /* Hack to make FF rotate in the right direction */
228
+ -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
229
+ transform: translateX(30px) translateY(30px) rotate(-179deg);
230
+ }
231
+ 50.1% {
232
+ -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
233
+ transform: translateX(30px) translateY(30px) rotate(-180deg);
234
+ }
235
+ 75% {
236
+ -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
237
+ transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
238
+ }
239
+ 100% {
240
+ -webkit-transform: rotate(-360deg);
241
+ transform: rotate(-360deg);
242
+ }
243
+ }
244
+
245
+ @keyframes wpr-wanderingCube {
246
+ 0% {
247
+ -webkit-transform: rotate(0deg);
248
+ transform: rotate(0deg);
249
+ }
250
+ 25% {
251
+ -webkit-transform: translateX(30px) rotate(-90deg) scale(0.5);
252
+ transform: translateX(30px) rotate(-90deg) scale(0.5);
253
+ }
254
+ 50% {
255
+ /* Hack to make FF rotate in the right direction */
256
+ -webkit-transform: translateX(30px) translateY(30px) rotate(-179deg);
257
+ transform: translateX(30px) translateY(30px) rotate(-179deg);
258
+ }
259
+ 50.1% {
260
+ -webkit-transform: translateX(30px) translateY(30px) rotate(-180deg);
261
+ transform: translateX(30px) translateY(30px) rotate(-180deg);
262
+ }
263
+ 75% {
264
+ -webkit-transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
265
+ transform: translateX(0) translateY(30px) rotate(-270deg) scale(0.5);
266
+ }
267
+ 100% {
268
+ -webkit-transform: rotate(-360deg);
269
+ transform: rotate(-360deg);
270
+ }
271
+ }
272
+
273
+
274
+ /*
275
+ * Usage:
276
+ *
277
+ <div class="wpr-spinner wpr-spinner-pulse"></div>
278
+ *
279
+ */
280
+
281
+ .wpr-spinner-pulse {
282
+ width: 23px;
283
+ height: 23px;
284
+ border-radius: 100%;
285
+ -webkit-animation: wpr-pulseScaleOut 1s infinite ease-in-out;
286
+ animation: wpr-pulseScaleOut 1s infinite ease-in-out;
287
+ }
288
+
289
+ @-webkit-keyframes wpr-pulseScaleOut {
290
+ 0% {
291
+ -webkit-transform: scale(0);
292
+ transform: scale(0);
293
+ }
294
+ 100% {
295
+ -webkit-transform: scale(1);
296
+ transform: scale(1);
297
+ opacity: 0;
298
+ }
299
+ }
300
+
301
+ @keyframes wpr-pulseScaleOut {
302
+ 0% {
303
+ -webkit-transform: scale(0);
304
+ transform: scale(0);
305
+ }
306
+ 100% {
307
+ -webkit-transform: scale(1);
308
+ transform: scale(1);
309
+ opacity: 0;
310
+ }
311
+ }
312
+
313
+
314
+ /*
315
+ * Usage:
316
+ *
317
+ <div class="wpr-chasing-dots">
318
+ <div class="wpr-child wpr-dot1"></div>
319
+ <div class="wpr-child wpr-dot2"></div>
320
+ </div>
321
+ *
322
+ */
323
+
324
+ .wpr-chasing-dots {
325
+ width: 20px;
326
+ height: 20px;
327
+ position: relative;
328
+ text-align: center;
329
+ -webkit-animation: wpr-chasingDotsRotate 2s infinite linear;
330
+ animation: wpr-chasingDotsRotate 2s infinite linear;
331
+ }
332
+
333
+ .wpr-chasing-dots .wpr-child {
334
+ width: 60%;
335
+ height: 60%;
336
+ display: inline-block;
337
+ position: absolute;
338
+ top: 0;
339
+ border-radius: 100%;
340
+ -webkit-animation: wpr-chasingDotsBounce 2s infinite ease-in-out;
341
+ animation: wpr-chasingDotsBounce 2s infinite ease-in-out;
342
+ }
343
+
344
+ .wpr-chasing-dots .wpr-dot2 {
345
+ top: auto;
346
+ bottom: 0;
347
+ -webkit-animation-delay: -1s;
348
+ animation-delay: -1s;
349
+ }
350
+
351
+ @-webkit-keyframes wpr-chasingDotsRotate {
352
+ 100% {
353
+ -webkit-transform: rotate(360deg);
354
+ transform: rotate(360deg);
355
+ }
356
+ }
357
+
358
+ @keyframes wpr-chasingDotsRotate {
359
+ 100% {
360
+ -webkit-transform: rotate(360deg);
361
+ transform: rotate(360deg);
362
+ }
363
+ }
364
+
365
+ @-webkit-keyframes wpr-chasingDotsBounce {
366
+ 0%,
367
+ 100% {
368
+ -webkit-transform: scale(0);
369
+ transform: scale(0);
370
+ }
371
+ 50% {
372
+ -webkit-transform: scale(1);
373
+ transform: scale(1);
374
+ }
375
+ }
376
+
377
+ @keyframes wpr-chasingDotsBounce {
378
+ 0%,
379
+ 100% {
380
+ -webkit-transform: scale(0);
381
+ transform: scale(0);
382
+ }
383
+ 50% {
384
+ -webkit-transform: scale(1);
385
+ transform: scale(1);
386
+ }
387
+ }
388
+
389
+
390
+ /*
391
+ * Usage:
392
+ *
393
+ <div class="wpr-three-bounce">
394
+ <div class="wpr-child wpr-bounce1"></div>
395
+ <div class="wpr-child wpr-bounce2"></div>
396
+ <div class="wpr-child wpr-bounce3"></div>
397
+ </div>
398
+ *
399
+ */
400
+
401
+ .wpr-three-bounce {
402
+ width: 80px;
403
+ text-align: center;
404
+ }
405
+
406
+ .wpr-three-bounce .wpr-child {
407
+ width: 10px;
408
+ height: 10px;
409
+ border-radius: 100%;
410
+ margin-right: 1px;
411
+ display: inline-block;
412
+ -webkit-animation: wpr-three-bounce 1.4s ease-in-out 0s infinite both;
413
+ animation: wpr-three-bounce 1.4s ease-in-out 0s infinite both;
414
+ }
415
+
416
+ .wpr-three-bounce .wpr-bounce1 {
417
+ -webkit-animation-delay: -0.32s;
418
+ animation-delay: -0.32s;
419
+ }
420
+
421
+ .wpr-three-bounce .wpr-bounce2 {
422
+ -webkit-animation-delay: -0.16s;
423
+ animation-delay: -0.16s;
424
+ }
425
+
426
+ @-webkit-keyframes wpr-three-bounce {
427
+ 0%,
428
+ 80%,
429
+ 100% {
430
+ -webkit-transform: scale(0);
431
+ transform: scale(0);
432
+ }
433
+ 40% {
434
+ -webkit-transform: scale(1);
435
+ transform: scale(1);
436
+ }
437
+ }
438
+
439
+ @keyframes wpr-three-bounce {
440
+ 0%,
441
+ 80%,
442
+ 100% {
443
+ -webkit-transform: scale(0);
444
+ transform: scale(0);
445
+ }
446
+ 40% {
447
+ -webkit-transform: scale(1);
448
+ transform: scale(1);
449
+ }
450
+ }
451
+
452
+
453
+ /*
454
+ * Usage:
455
+ *
456
+ <div class="wpr-circle">
457
+ <div class="wpr-circle1 wpr-child"></div>
458
+ <div class="wpr-circle2 wpr-child"></div>
459
+ <div class="wpr-circle3 wpr-child"></div>
460
+ <div class="wpr-circle4 wpr-child"></div>
461
+ <div class="wpr-circle5 wpr-child"></div>
462
+ <div class="wpr-circle6 wpr-child"></div>
463
+ <div class="wpr-circle7 wpr-child"></div>
464
+ <div class="wpr-circle8 wpr-child"></div>
465
+ <div class="wpr-circle9 wpr-child"></div>
466
+ <div class="wpr-circle10 wpr-child"></div>
467
+ <div class="wpr-circle11 wpr-child"></div>
468
+ <div class="wpr-circle12 wpr-child"></div>
469
+ </div>
470
+ *
471
+ */
472
+
473
+ .wpr-circle {
474
+ width: 22px;
475
+ height: 22px;
476
+ position: relative;
477
+ }
478
+
479
+ .wpr-circle .wpr-child {
480
+ width: 100%;
481
+ height: 100%;
482
+ position: absolute;
483
+ left: 0;
484
+ top: 0;
485
+ }
486
+
487
+ .wpr-circle .wpr-child:before {
488
+ content: '';
489
+ display: block;
490
+ margin: 0 auto;
491
+ width: 15%;
492
+ height: 15%;
493
+ background-color: #333;
494
+ border-radius: 100%;
495
+ -webkit-animation: wpr-circleBounceDelay 1.2s infinite ease-in-out both;
496
+ animation: wpr-circleBounceDelay 1.2s infinite ease-in-out both;
497
+ }
498
+
499
+ .wpr-circle .wpr-circle2 {
500
+ -webkit-transform: rotate(30deg);
501
+ -ms-transform: rotate(30deg);
502
+ transform: rotate(30deg);
503
+ }
504
+
505
+ .wpr-circle .wpr-circle3 {
506
+ -webkit-transform: rotate(60deg);
507
+ -ms-transform: rotate(60deg);
508
+ transform: rotate(60deg);
509
+ }
510
+
511
+ .wpr-circle .wpr-circle4 {
512
+ -webkit-transform: rotate(90deg);
513
+ -ms-transform: rotate(90deg);
514
+ transform: rotate(90deg);
515
+ }
516
+
517
+ .wpr-circle .wpr-circle5 {
518
+ -webkit-transform: rotate(120deg);
519
+ -ms-transform: rotate(120deg);
520
+ transform: rotate(120deg);
521
+ }
522
+
523
+ .wpr-circle .wpr-circle6 {
524
+ -webkit-transform: rotate(150deg);
525
+ -ms-transform: rotate(150deg);
526
+ transform: rotate(150deg);
527
+ }
528
+
529
+ .wpr-circle .wpr-circle7 {
530
+ -webkit-transform: rotate(180deg);
531
+ -ms-transform: rotate(180deg);
532
+ transform: rotate(180deg);
533
+ }
534
+
535
+ .wpr-circle .wpr-circle8 {
536
+ -webkit-transform: rotate(210deg);
537
+ -ms-transform: rotate(210deg);
538
+ transform: rotate(210deg);
539
+ }
540
+
541
+ .wpr-circle .wpr-circle9 {
542
+ -webkit-transform: rotate(240deg);
543
+ -ms-transform: rotate(240deg);
544
+ transform: rotate(240deg);
545
+ }
546
+
547
+ .wpr-circle .wpr-circle10 {
548
+ -webkit-transform: rotate(270deg);
549
+ -ms-transform: rotate(270deg);
550
+ transform: rotate(270deg);
551
+ }
552
+
553
+ .wpr-circle .wpr-circle11 {
554
+ -webkit-transform: rotate(300deg);
555
+ -ms-transform: rotate(300deg);
556
+ transform: rotate(300deg);
557
+ }
558
+
559
+ .wpr-circle .wpr-circle12 {
560
+ -webkit-transform: rotate(330deg);
561
+ -ms-transform: rotate(330deg);
562
+ transform: rotate(330deg);
563
+ }
564
+
565
+ .wpr-circle .wpr-circle2:before {
566
+ -webkit-animation-delay: -1.1s;
567
+ animation-delay: -1.1s;
568
+ }
569
+
570
+ .wpr-circle .wpr-circle3:before {
571
+ -webkit-animation-delay: -1s;
572
+ animation-delay: -1s;
573
+ }
574
+
575
+ .wpr-circle .wpr-circle4:before {
576
+ -webkit-animation-delay: -0.9s;
577
+ animation-delay: -0.9s;
578
+ }
579
+
580
+ .wpr-circle .wpr-circle5:before {
581
+ -webkit-animation-delay: -0.8s;
582
+ animation-delay: -0.8s;
583
+ }
584
+
585
+ .wpr-circle .wpr-circle6:before {
586
+ -webkit-animation-delay: -0.7s;
587
+ animation-delay: -0.7s;
588
+ }
589
+
590
+ .wpr-circle .wpr-circle7:before {
591
+ -webkit-animation-delay: -0.6s;
592
+ animation-delay: -0.6s;
593
+ }
594
+
595
+ .wpr-circle .wpr-circle8:before {
596
+ -webkit-animation-delay: -0.5s;
597
+ animation-delay: -0.5s;
598
+ }
599
+
600
+ .wpr-circle .wpr-circle9:before {
601
+ -webkit-animation-delay: -0.4s;
602
+ animation-delay: -0.4s;
603
+ }
604
+
605
+ .wpr-circle .wpr-circle10:before {
606
+ -webkit-animation-delay: -0.3s;
607
+ animation-delay: -0.3s;
608
+ }
609
+
610
+ .wpr-circle .wpr-circle11:before {
611
+ -webkit-animation-delay: -0.2s;
612
+ animation-delay: -0.2s;
613
+ }
614
+
615
+ .wpr-circle .wpr-circle12:before {
616
+ -webkit-animation-delay: -0.1s;
617
+ animation-delay: -0.1s;
618
+ }
619
+
620
+ @-webkit-keyframes wpr-circleBounceDelay {
621
+ 0%,
622
+ 80%,
623
+ 100% {
624
+ -webkit-transform: scale(0);
625
+ transform: scale(0);
626
+ }
627
+ 40% {
628
+ -webkit-transform: scale(1);
629
+ transform: scale(1);
630
+ }
631
+ }
632
+
633
+ @keyframes wpr-circleBounceDelay {
634
+ 0%,
635
+ 80%,
636
+ 100% {
637
+ -webkit-transform: scale(0);
638
+ transform: scale(0);
639
+ }
640
+ 40% {
641
+ -webkit-transform: scale(1);
642
+ transform: scale(1);
643
+ }
644
+ }
645
+
646
+
647
+ /*
648
+ * Usage:
649
+ *
650
+ <div class="wpr-cube-grid">
651
+ <div class="wpr-cube wpr-cube1"></div>
652
+ <div class="wpr-cube wpr-cube2"></div>
653
+ <div class="wpr-cube wpr-cube3"></div>
654
+ <div class="wpr-cube wpr-cube4"></div>
655
+ <div class="wpr-cube wpr-cube5"></div>
656
+ <div class="wpr-cube wpr-cube6"></div>
657
+ <div class="wpr-cube wpr-cube7"></div>
658
+ <div class="wpr-cube wpr-cube8"></div>
659
+ <div class="wpr-cube wpr-cube9"></div>
660
+ </div>
661
+ *
662
+ */
663
+
664
+ .wpr-cube-grid {
665
+ width: 40px;
666
+ height: 40px;
667
+ /*
668
+ * Spinner positions
669
+ * 1 2 3
670
+ * 4 5 6
671
+ * 7 8 9
672
+ */
673
+ }
674
+
675
+ .wpr-cube-grid .wpr-cube {
676
+ width: 33.33%;
677
+ height: 33.33%;
678
+ background-color: #333;
679
+ float: left;
680
+ -webkit-animation: wpr-cubeGridScaleDelay 1.3s infinite ease-in-out;
681
+ animation: wpr-cubeGridScaleDelay 1.3s infinite ease-in-out;
682
+ }
683
+
684
+ .wpr-cube-grid .wpr-cube1 {
685
+ -webkit-animation-delay: 0.2s;
686
+ animation-delay: 0.2s;
687
+ }
688
+
689
+ .wpr-cube-grid .wpr-cube2 {
690
+ -webkit-animation-delay: 0.3s;
691
+ animation-delay: 0.3s;
692
+ }
693
+
694
+ .wpr-cube-grid .wpr-cube3 {
695
+ -webkit-animation-delay: 0.4s;
696
+ animation-delay: 0.4s;
697
+ }
698
+
699
+ .wpr-cube-grid .wpr-cube4 {
700
+ -webkit-animation-delay: 0.1s;
701
+ animation-delay: 0.1s;
702
+ }
703
+
704
+ .wpr-cube-grid .wpr-cube5 {
705
+ -webkit-animation-delay: 0.2s;
706
+ animation-delay: 0.2s;
707
+ }
708
+
709
+ .wpr-cube-grid .wpr-cube6 {
710
+ -webkit-animation-delay: 0.3s;
711
+ animation-delay: 0.3s;
712
+ }
713
+
714
+ .wpr-cube-grid .wpr-cube7 {
715
+ -webkit-animation-delay: 0.0s;
716
+ animation-delay: 0.0s;
717
+ }
718
+
719
+ .wpr-cube-grid .wpr-cube8 {
720
+ -webkit-animation-delay: 0.1s;
721
+ animation-delay: 0.1s;
722
+ }
723
+
724
+ .wpr-cube-grid .wpr-cube9 {
725
+ -webkit-animation-delay: 0.2s;
726
+ animation-delay: 0.2s;
727
+ }
728
+
729
+ @-webkit-keyframes wpr-cubeGridScaleDelay {
730
+ 0%,
731
+ 70%,
732
+ 100% {
733
+ -webkit-transform: scale3D(1, 1, 1);
734
+ transform: scale3D(1, 1, 1);
735
+ }
736
+ 35% {
737
+ -webkit-transform: scale3D(0, 0, 1);
738
+ transform: scale3D(0, 0, 1);
739
+ }
740
+ }
741
+
742
+ @keyframes wpr-cubeGridScaleDelay {
743
+ 0%,
744
+ 70%,
745
+ 100% {
746
+ -webkit-transform: scale3D(1, 1, 1);
747
+ transform: scale3D(1, 1, 1);
748
+ }
749
+ 35% {
750
+ -webkit-transform: scale3D(0, 0, 1);
751
+ transform: scale3D(0, 0, 1);
752
+ }
753
+ }
754
+
755
+
756
+ /*
757
+ * Usage:
758
+ *
759
+ <div class="wpr-fading-circle">
760
+ <div class="wpr-circle1 wpr-circle"></div>
761
+ <div class="wpr-circle2 wpr-circle"></div>
762
+ <div class="wpr-circle3 wpr-circle"></div>
763
+ <div class="wpr-circle4 wpr-circle"></div>
764
+ <div class="wpr-circle5 wpr-circle"></div>
765
+ <div class="wpr-circle6 wpr-circle"></div>
766
+ <div class="wpr-circle7 wpr-circle"></div>
767
+ <div class="wpr-circle8 wpr-circle"></div>
768
+ <div class="wpr-circle9 wpr-circle"></div>
769
+ <div class="wpr-circle10 wpr-circle"></div>
770
+ <div class="wpr-circle11 wpr-circle"></div>
771
+ <div class="wpr-circle12 wpr-circle"></div>
772
+ </div>
773
+ *
774
+ */
775
+
776
+ .wpr-fading-circle {
777
+ width: 25px;
778
+ height: 25px;
779
+ position: relative;
780
+ }
781
+
782
+ .wpr-fading-circle .wpr-circle {
783
+ width: 100%;
784
+ height: 100%;
785
+ position: absolute;
786
+ left: 0;
787
+ top: 0;
788
+ }
789
+
790
+ .wpr-fading-circle .wpr-circle:before {
791
+ content: '';
792
+ display: block;
793
+ margin: 0 auto;
794
+ width: 15%;
795
+ height: 15%;
796
+ border-radius: 100%;
797
+ -webkit-animation: wpr-circleFadeDelay 1.2s infinite ease-in-out both;
798
+ animation: wpr-circleFadeDelay 1.2s infinite ease-in-out both;
799
+ }
800
+
801
+ .wpr-fading-circle .wpr-circle2 {
802
+ -webkit-transform: rotate(30deg);
803
+ -ms-transform: rotate(30deg);
804
+ transform: rotate(30deg);
805
+ }
806
+
807
+ .wpr-fading-circle .wpr-circle3 {
808
+ -webkit-transform: rotate(60deg);
809
+ -ms-transform: rotate(60deg);
810
+ transform: rotate(60deg);
811
+ }
812
+
813
+ .wpr-fading-circle .wpr-circle4 {
814
+ -webkit-transform: rotate(90deg);
815
+ -ms-transform: rotate(90deg);
816
+ transform: rotate(90deg);
817
+ }
818
+
819
+ .wpr-fading-circle .wpr-circle5 {
820
+ -webkit-transform: rotate(120deg);
821
+ -ms-transform: rotate(120deg);
822
+ transform: rotate(120deg);
823
+ }
824
+
825
+ .wpr-fading-circle .wpr-circle6 {
826
+ -webkit-transform: rotate(150deg);
827
+ -ms-transform: rotate(150deg);
828
+ transform: rotate(150deg);
829
+ }
830
+
831
+ .wpr-fading-circle .wpr-circle7 {
832
+ -webkit-transform: rotate(180deg);
833
+ -ms-transform: rotate(180deg);
834
+ transform: rotate(180deg);
835
+ }
836
+
837
+ .wpr-fading-circle .wpr-circle8 {
838
+ -webkit-transform: rotate(210deg);
839
+ -ms-transform: rotate(210deg);
840
+ transform: rotate(210deg);
841
+ }
842
+
843
+ .wpr-fading-circle .wpr-circle9 {
844
+ -webkit-transform: rotate(240deg);
845
+ -ms-transform: rotate(240deg);
846
+ transform: rotate(240deg);
847
+ }
848
+
849
+ .wpr-fading-circle .wpr-circle10 {
850
+ -webkit-transform: rotate(270deg);
851
+ -ms-transform: rotate(270deg);
852
+ transform: rotate(270deg);
853
+ }
854
+
855
+ .wpr-fading-circle .wpr-circle11 {
856
+ -webkit-transform: rotate(300deg);
857
+ -ms-transform: rotate(300deg);
858
+ transform: rotate(300deg);
859
+ }
860
+
861
+ .wpr-fading-circle .wpr-circle12 {
862
+ -webkit-transform: rotate(330deg);
863
+ -ms-transform: rotate(330deg);
864
+ transform: rotate(330deg);
865
+ }
866
+
867
+ .wpr-fading-circle .wpr-circle2:before {
868
+ -webkit-animation-delay: -1.1s;
869
+ animation-delay: -1.1s;
870
+ }
871
+
872
+ .wpr-fading-circle .wpr-circle3:before {
873
+ -webkit-animation-delay: -1s;
874
+ animation-delay: -1s;
875
+ }
876
+
877
+ .wpr-fading-circle .wpr-circle4:before {
878
+ -webkit-animation-delay: -0.9s;
879
+ animation-delay: -0.9s;
880
+ }
881
+
882
+ .wpr-fading-circle .wpr-circle5:before {
883
+ -webkit-animation-delay: -0.8s;
884
+ animation-delay: -0.8s;
885
+ }
886
+
887
+ .wpr-fading-circle .wpr-circle6:before {
888
+ -webkit-animation-delay: -0.7s;
889
+ animation-delay: -0.7s;
890
+ }
891
+
892
+ .wpr-fading-circle .wpr-circle7:before {
893
+ -webkit-animation-delay: -0.6s;
894
+ animation-delay: -0.6s;
895
+ }
896
+
897
+ .wpr-fading-circle .wpr-circle8:before {
898
+ -webkit-animation-delay: -0.5s;
899
+ animation-delay: -0.5s;
900
+ }
901
+
902
+ .wpr-fading-circle .wpr-circle9:before {
903
+ -webkit-animation-delay: -0.4s;
904
+ animation-delay: -0.4s;
905
+ }
906
+
907
+ .wpr-fading-circle .wpr-circle10:before {
908
+ -webkit-animation-delay: -0.3s;
909
+ animation-delay: -0.3s;
910
+ }
911
+
912
+ .wpr-fading-circle .wpr-circle11:before {
913
+ -webkit-animation-delay: -0.2s;
914
+ animation-delay: -0.2s;
915
+ }
916
+
917
+ .wpr-fading-circle .wpr-circle12:before {
918
+ -webkit-animation-delay: -0.1s;
919
+ animation-delay: -0.1s;
920
+ }
921
+
922
+ @-webkit-keyframes wpr-circleFadeDelay {
923
+ 0%,
924
+ 39%,
925
+ 100% {
926
+ opacity: 0;
927
+ }
928
+ 40% {
929
+ opacity: 1;
930
+ }
931
+ }
932
+
933
+ @keyframes wpr-circleFadeDelay {
934
+ 0%,
935
+ 39%,
936
+ 100% {
937
+ opacity: 0;
938
+ }
939
+ 40% {
940
+ opacity: 1;
941
+ }
942
+ }
943
+
944
+
945
+ /*
946
+ * Usage:
947
+ *
948
+ <div class="wpr-folding-cube">
949
+ <div class="wpr-cube1 wpr-cube"></div>
950
+ <div class="wpr-cube2 wpr-cube"></div>
951
+ <div class="wpr-cube4 wpr-cube"></div>
952
+ <div class="wpr-cube3 wpr-cube"></div>
953
+ </div>
954
+ *
955
+ */
956
+
957
+ .wpr-folding-cube {
958
+ width: 40px;
959
+ height: 40px;
960
+ position: relative;
961
+ -webkit-transform: rotateZ(45deg);
962
+ -ms-transform: rotate(45deg);
963
+ transform: rotateZ(45deg);
964
+ }
965
+
966
+ .wpr-folding-cube .wpr-cube {
967
+ float: left;
968
+ width: 50%;
969
+ height: 50%;
970
+ position: relative;
971
+ -webkit-transform: scale(1.1);
972
+ -ms-transform: scale(1.1);
973
+ transform: scale(1.1);
974
+ }
975
+
976
+ .wpr-folding-cube .wpr-cube:before {
977
+ content: '';
978
+ position: absolute;
979
+ top: 0;
980
+ left: 0;
981
+ width: 100%;
982
+ height: 100%;
983
+ background-color: #333;
984
+ -webkit-animation: wpr-foldCubeAngle 2.4s infinite linear both;
985
+ animation: wpr-foldCubeAngle 2.4s infinite linear both;
986
+ -webkit-transform-origin: 100% 100%;
987
+ -ms-transform-origin: 100% 100%;
988
+ transform-origin: 100% 100%;
989
+ }
990
+
991
+ .wpr-folding-cube .wpr-cube2 {
992
+ -webkit-transform: scale(1.1) rotateZ(90deg);
993
+ -ms-transform: scale(1.1) rotate(90deg);
994
+ transform: scale(1.1) rotateZ(90deg);
995
+ }
996
+
997
+ .wpr-folding-cube .wpr-cube3 {
998
+ -webkit-transform: scale(1.1) rotateZ(180deg);
999
+ -ms-transform: scale(1.1) rotate(180deg);
1000
+ transform: scale(1.1) rotateZ(180deg);
1001
+ }
1002
+
1003
+ .wpr-folding-cube .wpr-cube4 {
1004
+ -webkit-transform: scale(1.1) rotateZ(270deg);
1005
+ -ms-transform: scale(1.1) rotate(270deg);
1006
+ transform: scale(1.1) rotateZ(270deg);
1007
+ }
1008
+
1009
+ .wpr-folding-cube .wpr-cube2:before {
1010
+ -webkit-animation-delay: 0.3s;
1011
+ animation-delay: 0.3s;
1012
+ }
1013
+
1014
+ .wpr-folding-cube .wpr-cube3:before {
1015
+ -webkit-animation-delay: 0.6s;
1016
+ animation-delay: 0.6s;
1017
+ }
1018
+
1019
+ .wpr-folding-cube .wpr-cube4:before {
1020
+ -webkit-animation-delay: 0.9s;
1021
+ animation-delay: 0.9s;
1022
+ }
1023
+
1024
+ @-webkit-keyframes wpr-foldCubeAngle {
1025
+ 0%,
1026
+ 10% {
1027
+ -webkit-transform: perspective(140px) rotateX(-180deg);
1028
+ transform: perspective(140px) rotateX(-180deg);
1029
+ opacity: 0;
1030
+ }
1031
+ 25%,
1032
+ 75% {
1033
+ -webkit-transform: perspective(140px) rotateX(0deg);
1034
+ transform: perspective(140px) rotateX(0deg);
1035
+ opacity: 1;
1036
+ }
1037
+ 90%,
1038
+ 100% {
1039
+ -webkit-transform: perspective(140px) rotateY(180deg);
1040
+ transform: perspective(140px) rotateY(180deg);
1041
+ opacity: 0;
1042
+ }
1043
+ }
1044
+
1045
+ @keyframes wpr-foldCubeAngle {
1046
+ 0%,
1047
+ 10% {
1048
+ -webkit-transform: perspective(140px) rotateX(-180deg);
1049
+ transform: perspective(140px) rotateX(-180deg);
1050
+ opacity: 0;
1051
+ }
1052
+ 25%,
1053
+ 75% {
1054
+ -webkit-transform: perspective(140px) rotateX(0deg);
1055
+ transform: perspective(140px) rotateX(0deg);
1056
+ opacity: 1;
1057
+ }
1058
+ 90%,
1059
+ 100% {
1060
+ -webkit-transform: perspective(140px) rotateY(180deg);
1061
+ transform: perspective(140px) rotateY(180deg);
1062
+ opacity: 0;
1063
+ }
1064
  }
assets/css/lib/animations/text-animations.css CHANGED
@@ -1,843 +1,843 @@
1
- /*--------------------------------------------------------------
2
- == General
3
- --------------------------------------------------------------*/
4
-
5
- .wpr-anim-text-inner {
6
- display: inline-block;
7
- position: relative;
8
- text-align: left;
9
- }
10
-
11
- .wpr-anim-text-inner b {
12
- display: inline-block;
13
- position: absolute;
14
- white-space: nowrap;
15
- left: 0;
16
- top: 0;
17
- }
18
-
19
- .wpr-anim-text-inner b.wpr-anim-text-visible {
20
- position: relative;
21
- }
22
-
23
-
24
- /*--------------------------------------------------------------
25
- == Rotate 1
26
- --------------------------------------------------------------*/
27
-
28
- .wpr-anim-text.wpr-anim-text-type-rotate-1 .wpr-anim-text-inner {
29
- -webkit-perspective: 300px;
30
- perspective: 300px;
31
- }
32
-
33
- .wpr-anim-text.wpr-anim-text-type-rotate-1 b {
34
- opacity: 0;
35
- -webkit-transform-origin: 50% 100%;
36
- -ms-transform-origin: 50% 100%;
37
- transform-origin: 50% 100%;
38
- -webkit-transform: rotateX(180deg);
39
- -ms-transform: rotateX(180deg);
40
- transform: rotateX(180deg);
41
- }
42
-
43
- .wpr-anim-text.wpr-anim-text-type-rotate-1 b.wpr-anim-text-visible {
44
- opacity: 1;
45
- -webkit-transform: rotateX(0deg);
46
- -ms-transform: rotateX(0deg);
47
- transform: rotateX(0deg);
48
- -webkit-animation: wpr-anim-text-rotate-1-in 1.2s;
49
- animation: wpr-anim-text-rotate-1-in 1.2s;
50
- }
51
-
52
- .wpr-anim-text.wpr-anim-text-type-rotate-1 b.wpr-anim-text-hidden {
53
- -webkit-transform: rotateX(180deg);
54
- -ms-transform: rotateX(180deg);
55
- transform: rotateX(180deg);
56
- -webkit-animation: wpr-anim-text-rotate-1-out 1.2s;
57
- animation: wpr-anim-text-rotate-1-out 1.2s;
58
- }
59
-
60
- @-webkit-keyframes wpr-anim-text-rotate-1-in {
61
- 0% {
62
- -webkit-transform: rotateX(180deg);
63
- opacity: 0;
64
- }
65
- 35% {
66
- -webkit-transform: rotateX(120deg);
67
- opacity: 0;
68
- }
69
- 65% {
70
- opacity: 0;
71
- }
72
- 100% {
73
- -webkit-transform: rotateX(360deg);
74
- opacity: 1;
75
- }
76
- }
77
-
78
- @keyframes wpr-anim-text-rotate-1-in {
79
- 0% {
80
- -webkit-transform: rotateX(180deg);
81
- -ms-transform: rotateX(180deg);
82
- transform: rotateX(180deg);
83
- opacity: 0;
84
- }
85
- 35% {
86
- -webkit-transform: rotateX(120deg);
87
- -ms-transform: rotateX(120deg);
88
- transform: rotateX(120deg);
89
- opacity: 0;
90
- }
91
- 65% {
92
- opacity: 0;
93
- }
94
- 100% {
95
- -webkit-transform: rotateX(360deg);
96
- -ms-transform: rotateX(360deg);
97
- transform: rotateX(360deg);
98
- opacity: 1;
99
- }
100
- }
101
-
102
- @-webkit-keyframes wpr-anim-text-rotate-1-out {
103
- 0% {
104
- -webkit-transform: rotateX(0deg);
105
- opacity: 1;
106
- }
107
- 35% {
108
- -webkit-transform: rotateX(-40deg);
109
- opacity: 1;
110
- }
111
- 65% {
112
- opacity: 0;
113
- }
114
- 100% {
115
- -webkit-transform: rotateX(180deg);
116
- opacity: 0;
117
- }
118
- }
119
-
120
- @keyframes wpr-anim-text-rotate-1-out {
121
- 0% {
122
- -webkit-transform: rotateX(0deg);
123
- -ms-transform: rotateX(0deg);
124
- transform: rotateX(0deg);
125
- opacity: 1;
126
- }
127
- 35% {
128
- -webkit-transform: rotateX(-40deg);
129
- -ms-transform: rotateX(-40deg);
130
- transform: rotateX(-40deg);
131
- opacity: 1;
132
- }
133
- 65% {
134
- opacity: 0;
135
- }
136
- 100% {
137
- -webkit-transform: rotateX(180deg);
138
- -ms-transform: rotateX(180deg);
139
- transform: rotateX(180deg);
140
- opacity: 0;
141
- }
142
- }
143
-
144
-
145
- /*--------------------------------------------------------------
146
- == Typing
147
- --------------------------------------------------------------*/
148
-
149
- .wpr-anim-text.wpr-anim-text-type-typing .wpr-anim-text-inner {
150
- vertical-align: top;
151
- overflow: hidden;
152
- }
153
-
154
- .wpr-anim-text.wpr-anim-text-type-typing b {
155
- visibility: hidden;
156
- }
157
-
158
- .wpr-anim-text.wpr-anim-text-type-typing b.wpr-anim-text-visible {
159
- visibility: visible;
160
- }
161
-
162
- .wpr-anim-text.wpr-anim-text-type-typing i {
163
- position: absolute;
164
- visibility: hidden;
165
- }
166
-
167
- .wpr-anim-text.wpr-anim-text-type-typing i.wpr-anim-text-in {
168
- position: relative;
169
- visibility: visible;
170
- }
171
-
172
- @-webkit-keyframes wpr-anim-text-pulse {
173
- 0% {
174
- -webkit-transform: translateY(-50%) scale(1);
175
- opacity: 1;
176
- }
177
- 40% {
178
- -webkit-transform: translateY(-50%) scale(0.9);
179
- opacity: 0;
180
- }
181
- 100% {
182
- -webkit-transform: translateY(-50%) scale(0);
183
- opacity: 0;
184
- }
185
- }
186
-
187
- @keyframes wpr-anim-text-pulse {
188
- 0% {
189
- -webkit-transform: translateY(-50%) scale(1);
190
- -ms-transform: translateY(-50%) scale(1);
191
- transform: translateY(-50%) scale(1);
192
- opacity: 1;
193
- }
194
- 40% {
195
- -webkit-transform: translateY(-50%) scale(0.9);
196
- -ms-transform: translateY(-50%) scale(0.9);
197
- transform: translateY(-50%) scale(0.9);
198
- opacity: 0;
199
- }
200
- 100% {
201
- -webkit-transform: translateY(-50%) scale(0);
202
- -ms-transform: translateY(-50%) scale(0);
203
- transform: translateY(-50%) scale(0);
204
- opacity: 0;
205
- }
206
- }
207
-
208
-
209
- /*--------------------------------------------------------------
210
- == Rotate 2
211
- --------------------------------------------------------------*/
212
-
213
- .wpr-anim-text.wpr-anim-text-type-rotate-2 .wpr-anim-text-inner {
214
- -webkit-perspective: 300px;
215
- perspective: 300px;
216
- }
217
-
218
- .wpr-anim-text.wpr-anim-text-type-rotate-2 i,
219
- .wpr-anim-text.wpr-anim-text-type-rotate-2 em {
220
- display: inline-block;
221
- -webkit-backface-visibility: hidden;
222
- backface-visibility: hidden;
223
- }
224
-
225
- .wpr-anim-text.wpr-anim-text-type-rotate-2 b {
226
- opacity: 0;
227
- }
228
-
229
- .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
230
- -webkit-transform-style: preserve-3d;
231
- transform-style: preserve-3d;
232
- -webkit-transform: translateZ(-20px) rotateX(90deg);
233
- -ms-transform: translateZ(-20px) rotateX(90deg);
234
- transform: translateZ(-20px) rotateX(90deg);
235
- opacity: 0;
236
- }
237
-
238
- .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
239
- opacity: 1;
240
- }
241
-
242
- .wpr-anim-text.wpr-anim-text-type-rotate-2 i.wpr-anim-text-in {
243
- -webkit-animation: wpr-anim-text-rotate-2-in 0.4s forwards;
244
- animation: wpr-anim-text-rotate-2-in 0.4s forwards;
245
- }
246
-
247
- .wpr-anim-text.wpr-anim-text-type-rotate-2 i.wpr-anim-text-out {
248
- -webkit-animation: wpr-anim-text-rotate-2-out 0.4s forwards;
249
- animation: wpr-anim-text-rotate-2-out 0.4s forwards;
250
- }
251
-
252
- .wpr-anim-text.wpr-anim-text-type-rotate-2 em {
253
- -webkit-transform: translateZ(20px);
254
- -ms-transform: translateZ(20px);
255
- transform: translateZ(20px);
256
- }
257
-
258
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
259
- -webkit-transform: rotateX(0deg);
260
- -ms-transform: rotateX(0deg);
261
- transform: rotateX(0deg);
262
- opacity: 0;
263
- }
264
-
265
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 i em {
266
- -webkit-transform: scale(1);
267
- -ms-transform: scale(1);
268
- transform: scale(1);
269
- }
270
-
271
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 .wpr-anim-text-visible i {
272
- opacity: 1;
273
- }
274
-
275
- @-webkit-keyframes wpr-anim-text-rotate-2-in {
276
- 0% {
277
- opacity: 0;
278
- -webkit-transform: translateZ(-20px) rotateX(90deg);
279
- }
280
- 60% {
281
- opacity: 1;
282
- -webkit-transform: translateZ(-20px) rotateX(-10deg);
283
- }
284
- 100% {
285
- opacity: 1;
286
- -webkit-transform: translateZ(-20px) rotateX(0deg);
287
- }
288
- }
289
-
290
- @keyframes wpr-anim-text-rotate-2-in {
291
- 0% {
292
- opacity: 0;
293
- -webkit-transform: translateZ(-20px) rotateX(90deg);
294
- -ms-transform: translateZ(-20px) rotateX(90deg);
295
- transform: translateZ(-20px) rotateX(90deg);
296
- }
297
- 60% {
298
- opacity: 1;
299
- -webkit-transform: translateZ(-20px) rotateX(-10deg);
300
- -ms-transform: translateZ(-20px) rotateX(-10deg);
301
- transform: translateZ(-20px) rotateX(-10deg);
302
- }
303
- 100% {
304
- opacity: 1;
305
- -webkit-transform: translateZ(-20px) rotateX(0deg);
306
- -ms-transform: translateZ(-20px) rotateX(0deg);
307
- transform: translateZ(-20px) rotateX(0deg);
308
- }
309
- }
310
-
311
- @-webkit-keyframes wpr-anim-text-rotate-2-out {
312
- 0% {
313
- opacity: 1;
314
- -webkit-transform: translateZ(-20px) rotateX(0);
315
- }
316
- 60% {
317
- opacity: 0;
318
- -webkit-transform: translateZ(-20px) rotateX(-100deg);
319
- }
320
- 100% {
321
- opacity: 0;
322
- -webkit-transform: translateZ(-20px) rotateX(-90deg);
323
- }
324
- }
325
-
326
- @keyframes wpr-anim-text-rotate-2-out {
327
- 0% {
328
- opacity: 1;
329
- -webkit-transform: translateZ(-20px) rotateX(0);
330
- -ms-transform: translateZ(-20px) rotateX(0);
331
- transform: translateZ(-20px) rotateX(0);
332
- }
333
- 60% {
334
- opacity: 0;
335
- -webkit-transform: translateZ(-20px) rotateX(-100deg);
336
- -ms-transform: translateZ(-20px) rotateX(-100deg);
337
- transform: translateZ(-20px) rotateX(-100deg);
338
- }
339
- 100% {
340
- opacity: 0;
341
- -webkit-transform: translateZ(-20px) rotateX(-90deg);
342
- -ms-transform: translateZ(-20px) rotateX(-90deg);
343
- transform: translateZ(-20px) rotateX(-90deg);
344
- }
345
- }
346
-
347
-
348
- /*--------------------------------------------------------------
349
- == Slide
350
- --------------------------------------------------------------*/
351
-
352
- .wpr-anim-text.wpr-anim-text-type-slide span {
353
- display: inline-block;
354
- padding: .2em 0;
355
- }
356
-
357
- .wpr-anim-text.wpr-anim-text-type-slide .wpr-anim-text-inner {
358
- overflow: hidden;
359
- vertical-align: top;
360
- }
361
-
362
- .wpr-anim-text.wpr-anim-text-type-slide b {
363
- opacity: 0;
364
- top: .2em;
365
- }
366
-
367
- .wpr-anim-text.wpr-anim-text-type-slide b.wpr-anim-text-visible {
368
- top: 0;
369
- opacity: 1;
370
- -webkit-animation: wpr-anim-text-slide-in 0.6s;
371
- animation: wpr-anim-text-slide-in 0.6s;
372
- }
373
-
374
- .wpr-anim-text.wpr-anim-text-type-slide b.wpr-anim-text-hidden {
375
- -webkit-animation: wpr-anim-text-slide-out 0.6s;
376
- animation: wpr-anim-text-slide-out 0.6s;
377
- }
378
-
379
- @-webkit-keyframes wpr-anim-text-slide-in {
380
- 0% {
381
- opacity: 0;
382
- -webkit-transform: translateY(-100%);
383
- }
384
- 60% {
385
- opacity: 1;
386
- -webkit-transform: translateY(20%);
387
- }
388
- 100% {
389
- opacity: 1;
390
- -webkit-transform: translateY(0);
391
- }
392
- }
393
-
394
- @keyframes wpr-anim-text-slide-in {
395
- 0% {
396
- opacity: 0;
397
- -webkit-transform: translateY(-100%);
398
- -ms-transform: translateY(-100%);
399
- transform: translateY(-100%);
400
- }
401
- 60% {
402
- opacity: 1;
403
- -webkit-transform: translateY(20%);
404
- -ms-transform: translateY(20%);
405
- transform: translateY(20%);
406
- }
407
- 100% {
408
- opacity: 1;
409
- -webkit-transform: translateY(0);
410
- -ms-transform: translateY(0);
411
- transform: translateY(0);
412
- }
413
- }
414
-
415
- @-webkit-keyframes wpr-anim-text-slide-out {
416
- 0% {
417
- opacity: 1;
418
- -webkit-transform: translateY(0);
419
- }
420
- 60% {
421
- opacity: 0;
422
- -webkit-transform: translateY(120%);
423
- }
424
- 100% {
425
- opacity: 0;
426
- -webkit-transform: translateY(100%);
427
- }
428
- }
429
-
430
- @keyframes wpr-anim-text-slide-out {
431
- 0% {
432
- opacity: 1;
433
- -webkit-transform: translateY(0);
434
- -ms-transform: translateY(0);
435
- transform: translateY(0);
436
- }
437
- 60% {
438
- opacity: 0;
439
- -webkit-transform: translateY(120%);
440
- -ms-transform: translateY(120%);
441
- transform: translateY(120%);
442
- }
443
- 100% {
444
- opacity: 0;
445
- -webkit-transform: translateY(100%);
446
- -ms-transform: translateY(100%);
447
- transform: translateY(100%);
448
- }
449
- }
450
-
451
-
452
- /*--------------------------------------------------------------
453
- == Clip
454
- --------------------------------------------------------------*/
455
-
456
- .wpr-anim-text.wpr-anim-text-type-clip span {
457
- display: inline-block;
458
- padding: .2em 0;
459
- }
460
-
461
- .wpr-anim-text.wpr-anim-text-type-clip .wpr-anim-text-inner {
462
- overflow: hidden;
463
- vertical-align: top;
464
- }
465
-
466
- .wpr-anim-text.wpr-anim-text-type-clip b {
467
- opacity: 0;
468
- }
469
-
470
- .wpr-anim-text.wpr-anim-text-type-clip b.wpr-anim-text-visible {
471
- opacity: 1;
472
- }
473
-
474
-
475
- /*--------------------------------------------------------------
476
- == Zoom
477
- --------------------------------------------------------------*/
478
-
479
- .wpr-anim-text.wpr-anim-text-type-zoom .wpr-anim-text-inner {
480
- -webkit-perspective: 300px;
481
- perspective: 300px;
482
- }
483
-
484
- .wpr-anim-text.wpr-anim-text-type-zoom b {
485
- opacity: 0;
486
- }
487
-
488
- .wpr-anim-text.wpr-anim-text-type-zoom b.wpr-anim-text-visible {
489
- opacity: 1;
490
- -webkit-animation: wpr-anim-text-zoom-in 0.8s;
491
- animation: wpr-anim-text-zoom-in 0.8s;
492
- }
493
-
494
- .wpr-anim-text.wpr-anim-text-type-zoom b.wpr-anim-text-hidden {
495
- -webkit-animation: wpr-anim-text-zoom-out 0.8s;
496
- animation: wpr-anim-text-zoom-out 0.8s;
497
- }
498
-
499
- @-webkit-keyframes wpr-anim-text-zoom-in {
500
- 0% {
501
- opacity: 0;
502
- -webkit-transform: translateZ(100px);
503
- }
504
- 100% {
505
- opacity: 1;
506
- -webkit-transform: translateZ(0);
507
- }
508
- }
509
-
510
- @keyframes wpr-anim-text-zoom-in {
511
- 0% {
512
- opacity: 0;
513
- -webkit-transform: translateZ(100px);
514
- -ms-transform: translateZ(100px);
515
- transform: translateZ(100px);
516
- }
517
- 100% {
518
- opacity: 1;
519
- -webkit-transform: translateZ(0);
520
- -ms-transform: translateZ(0);
521
- transform: translateZ(0);
522
- }
523
- }
524
-
525
- @-webkit-keyframes wpr-anim-text-zoom-out {
526
- 0% {
527
- opacity: 1;
528
- -webkit-transform: translateZ(0);
529
- }
530
- 100% {
531
- opacity: 0;
532
- -webkit-transform: translateZ(-100px);
533
- }
534
- }
535
-
536
- @keyframes wpr-anim-text-zoom-out {
537
- 0% {
538
- opacity: 1;
539
- -webkit-transform: translateZ(0);
540
- -ms-transform: translateZ(0);
541
- transform: translateZ(0);
542
- }
543
- 100% {
544
- opacity: 0;
545
- -webkit-transform: translateZ(-100px);
546
- -ms-transform: translateZ(-100px);
547
- transform: translateZ(-100px);
548
- }
549
- }
550
-
551
-
552
- /*--------------------------------------------------------------
553
- == Rotate-3
554
- --------------------------------------------------------------*/
555
-
556
- .wpr-anim-text.wpr-anim-text-type-rotate-3 .wpr-anim-text-inner {
557
- -webkit-perspective: 300px;
558
- perspective: 300px;
559
- }
560
-
561
- .wpr-anim-text.wpr-anim-text-type-rotate-3 b {
562
- opacity: 0;
563
- }
564
-
565
- .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
566
- display: inline-block;
567
- -webkit-transform: rotateY(180deg);
568
- -ms-transform: rotateY(180deg);
569
- transform: rotateY(180deg);
570
- -webkit-backface-visibility: hidden;
571
- backface-visibility: hidden;
572
- }
573
-
574
- .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
575
- -webkit-transform: rotateY(0deg);
576
- -ms-transform: rotateY(0deg);
577
- transform: rotateY(0deg);
578
- }
579
-
580
- .wpr-anim-text.wpr-anim-text-type-rotate-3 i.wpr-anim-text-in {
581
- -webkit-animation: wpr-anim-text-rotate-3-in 0.6s forwards;
582
- animation: wpr-anim-text-rotate-3-in 0.6s forwards;
583
- }
584
-
585
- .wpr-anim-text.wpr-anim-text-type-rotate-3 i.wpr-anim-text-out {
586
- -webkit-animation: wpr-anim-text-rotate-3-out 0.6s forwards;
587
- animation: wpr-anim-text-rotate-3-out 0.6s forwards;
588
- }
589
-
590
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
591
- -webkit-transform: rotateY(0deg);
592
- -ms-transform: rotateY(0deg);
593
- transform: rotateY(0deg);
594
- opacity: 0;
595
- }
596
-
597
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-3 .wpr-anim-text-visible i {
598
- opacity: 1;
599
- }
600
-
601
- @-webkit-keyframes wpr-anim-text-rotate-3-in {
602
- 0% {
603
- -webkit-transform: rotateY(180deg);
604
- }
605
- 100% {
606
- -webkit-transform: rotateY(0deg);
607
- }
608
- }
609
-
610
- @keyframes wpr-anim-text-rotate-3-in {
611
- 0% {
612
- -webkit-transform: rotateY(180deg);
613
- -ms-transform: rotateY(180deg);
614
- transform: rotateY(180deg);
615
- }
616
- 100% {
617
- -webkit-transform: rotateY(0deg);
618
- -ms-transform: rotateY(0deg);
619
- transform: rotateY(0deg);
620
- }
621
- }
622
-
623
- @-webkit-keyframes wpr-anim-text-rotate-3-out {
624
- 0% {
625
- -webkit-transform: rotateY(0);
626
- }
627
- 100% {
628
- -webkit-transform: rotateY(-180deg);
629
- }
630
- }
631
-
632
- @keyframes wpr-anim-text-rotate-3-out {
633
- 0% {
634
- -webkit-transform: rotateY(0);
635
- -ms-transform: rotateY(0);
636
- transform: rotateY(0);
637
- }
638
- 100% {
639
- -webkit-transform: rotateY(-180deg);
640
- -ms-transform: rotateY(-180deg);
641
- transform: rotateY(-180deg);
642
- }
643
- }
644
-
645
-
646
- /*--------------------------------------------------------------
647
- == Scale
648
- --------------------------------------------------------------*/
649
-
650
- .wpr-anim-text.wpr-anim-text-type-scale b {
651
- opacity: 0;
652
- }
653
-
654
- .wpr-anim-text.wpr-anim-text-type-scale i {
655
- display: inline-block;
656
- opacity: 0;
657
- -webkit-transform: scale(0);
658
- -ms-transform: scale(0);
659
- transform: scale(0);
660
- }
661
-
662
- .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-scale i {
663
- opacity: 1;
664
- }
665
-
666
- .wpr-anim-text.wpr-anim-text-type-scale i.wpr-anim-text-in {
667
- -webkit-animation: wpr-anim-text-scale-up 0.6s forwards;
668
- animation: wpr-anim-text-scale-up 0.6s forwards;
669
- }
670
-
671
- .wpr-anim-text.wpr-anim-text-type-scale i.wpr-anim-text-out {
672
- -webkit-animation: wpr-anim-text-scale-down 0.6s forwards;
673
- animation: wpr-anim-text-scale-down 0.6s forwards;
674
- }
675
-
676
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-scale i {
677
- -webkit-transform: scale(1);
678
- -ms-transform: scale(1);
679
- transform: scale(1);
680
- opacity: 0;
681
- }
682
-
683
- .no-csstransitions .wpr-anim-text.wpr-anim-text-type-scale .wpr-anim-text-visible i {
684
- opacity: 1;
685
- }
686
-
687
- @-webkit-keyframes wpr-anim-text-scale-up {
688
- 0% {
689
- -webkit-transform: scale(0);
690
- opacity: 0;
691
- }
692
- 60% {
693
- -webkit-transform: scale(1.2);
694
- opacity: 1;
695
- }
696
- 100% {
697
- -webkit-transform: scale(1);
698
- opacity: 1;
699
- }
700
- }
701
-
702
- @keyframes wpr-anim-text-scale-up {
703
- 0% {
704
- -webkit-transform: scale(0);
705
- -ms-transform: scale(0);
706
- transform: scale(0);
707
- opacity: 0;
708
- }
709
- 60% {
710
- -webkit-transform: scale(1.2);
711
- -ms-transform: scale(1.2);
712
- transform: scale(1.2);
713
- opacity: 1;
714
- }
715
- 100% {
716
- -webkit-transform: scale(1);
717
- -ms-transform: scale(1);
718
- transform: scale(1);
719
- opacity: 1;
720
- }
721
- }
722
-
723
- @-webkit-keyframes wpr-anim-text-scale-down {
724
- 0% {
725
- -webkit-transform: scale(1);
726
- opacity: 1;
727
- }
728
- 60% {
729
- -webkit-transform: scale(0);
730
- opacity: 0;
731
- }
732
- }
733
-
734
- @keyframes wpr-anim-text-scale-down {
735
- 0% {
736
- -webkit-transform: scale(1);
737
- -ms-transform: scale(1);
738
- transform: scale(1);
739
- opacity: 1;
740
- }
741
- 60% {
742
- -webkit-transform: scale(0);
743
- -ms-transform: scale(0);
744
- transform: scale(0);
745
- opacity: 0;
746
- }
747
- }
748
-
749
-
750
- /*--------------------------------------------------------------
751
- == Push
752
- --------------------------------------------------------------*/
753
- .wpr-anim-text-type-push {
754
- overflow: hidden;
755
- }
756
-
757
- .wpr-anim-text.wpr-anim-text-type-push b {
758
- opacity: 0;
759
- }
760
-
761
- .wpr-anim-text.wpr-anim-text-type-push b.wpr-anim-text-visible {
762
- opacity: 1;
763
- -webkit-animation: wpr-anim-text-push-in 0.6s;
764
- animation: wpr-anim-text-push-in 0.6s;
765
- }
766
-
767
- .wpr-anim-text.wpr-anim-text-type-push b.wpr-anim-text-hidden {
768
- -webkit-animation: wpr-anim-text-push-out 0.6s;
769
- animation: wpr-anim-text-push-out 0.6s;
770
- }
771
-
772
- @-webkit-keyframes wpr-anim-text-push-in {
773
- 0% {
774
- opacity: 0;
775
- -webkit-transform: translateX(-100%);
776
- }
777
- 60% {
778
- opacity: 1;
779
- -webkit-transform: translateX(10%);
780
- }
781
- 100% {
782
- opacity: 1;
783
- -webkit-transform: translateX(0);
784
- }
785
- }
786
-
787
- @keyframes wpr-anim-text-push-in {
788
- 0% {
789
- opacity: 0;
790
- -webkit-transform: translateX(-100%);
791
- -ms-transform: translateX(-100%);
792
- transform: translateX(-100%);
793
- }
794
- 60% {
795
- opacity: 1;
796
- -webkit-transform: translateX(10%);
797
- -ms-transform: translateX(10%);
798
- transform: translateX(10%);
799
- }
800
- 100% {
801
- opacity: 1;
802
- -webkit-transform: translateX(0);
803
- -ms-transform: translateX(0);
804
- transform: translateX(0);
805
- }
806
- }
807
-
808
- @-webkit-keyframes wpr-anim-text-push-out {
809
- 0% {
810
- opacity: 1;
811
- -webkit-transform: translateX(0);
812
- }
813
- 60% {
814
- opacity: 0;
815
- -webkit-transform: translateX(110%);
816
- }
817
- 100% {
818
- opacity: 0;
819
- -webkit-transform: translateX(100%);
820
- }
821
- }
822
-
823
- @keyframes wpr-anim-text-push-out {
824
- 0% {
825
- opacity: 1;
826
- -webkit-transform: translateX(0);
827
- -ms-transform: translateX(0);
828
- transform: translateX(0);
829
- }
830
- 60% {
831
- opacity: 0;
832
- -webkit-transform: translateX(110%);
833
- -ms-transform: translateX(110%);
834
- transform: translateX(110%);
835
- }
836
- 100% {
837
- opacity: 0;
838
- -webkit-transform: translateX(100%);
839
- -ms-transform: translateX(100%);
840
- transform: translateX(100%);
841
- }
842
- }
843
-
1
+ /*--------------------------------------------------------------
2
+ == General
3
+ --------------------------------------------------------------*/
4
+
5
+ .wpr-anim-text-inner {
6
+ display: inline-block;
7
+ position: relative;
8
+ text-align: left;
9
+ }
10
+
11
+ .wpr-anim-text-inner b {
12
+ display: inline-block;
13
+ position: absolute;
14
+ white-space: nowrap;
15
+ left: 0;
16
+ top: 0;
17
+ }
18
+
19
+ .wpr-anim-text-inner b.wpr-anim-text-visible {
20
+ position: relative;
21
+ }
22
+
23
+
24
+ /*--------------------------------------------------------------
25
+ == Rotate 1
26
+ --------------------------------------------------------------*/
27
+
28
+ .wpr-anim-text.wpr-anim-text-type-rotate-1 .wpr-anim-text-inner {
29
+ -webkit-perspective: 300px;
30
+ perspective: 300px;
31
+ }
32
+
33
+ .wpr-anim-text.wpr-anim-text-type-rotate-1 b {
34
+ opacity: 0;
35
+ -webkit-transform-origin: 50% 100%;
36
+ -ms-transform-origin: 50% 100%;
37
+ transform-origin: 50% 100%;
38
+ -webkit-transform: rotateX(180deg);
39
+ -ms-transform: rotateX(180deg);
40
+ transform: rotateX(180deg);
41
+ }
42
+
43
+ .wpr-anim-text.wpr-anim-text-type-rotate-1 b.wpr-anim-text-visible {
44
+ opacity: 1;
45
+ -webkit-transform: rotateX(0deg);
46
+ -ms-transform: rotateX(0deg);
47
+ transform: rotateX(0deg);
48
+ -webkit-animation: wpr-anim-text-rotate-1-in 1.2s;
49
+ animation: wpr-anim-text-rotate-1-in 1.2s;
50
+ }
51
+
52
+ .wpr-anim-text.wpr-anim-text-type-rotate-1 b.wpr-anim-text-hidden {
53
+ -webkit-transform: rotateX(180deg);
54
+ -ms-transform: rotateX(180deg);
55
+ transform: rotateX(180deg);
56
+ -webkit-animation: wpr-anim-text-rotate-1-out 1.2s;
57
+ animation: wpr-anim-text-rotate-1-out 1.2s;
58
+ }
59
+
60
+ @-webkit-keyframes wpr-anim-text-rotate-1-in {
61
+ 0% {
62
+ -webkit-transform: rotateX(180deg);
63
+ opacity: 0;
64
+ }
65
+ 35% {
66
+ -webkit-transform: rotateX(120deg);
67
+ opacity: 0;
68
+ }
69
+ 65% {
70
+ opacity: 0;
71
+ }
72
+ 100% {
73
+ -webkit-transform: rotateX(360deg);
74
+ opacity: 1;
75
+ }
76
+ }
77
+
78
+ @keyframes wpr-anim-text-rotate-1-in {
79
+ 0% {
80
+ -webkit-transform: rotateX(180deg);
81
+ -ms-transform: rotateX(180deg);
82
+ transform: rotateX(180deg);
83
+ opacity: 0;
84
+ }
85
+ 35% {
86
+ -webkit-transform: rotateX(120deg);
87
+ -ms-transform: rotateX(120deg);
88
+ transform: rotateX(120deg);
89
+ opacity: 0;
90
+ }
91
+ 65% {
92
+ opacity: 0;
93
+ }
94
+ 100% {
95
+ -webkit-transform: rotateX(360deg);
96
+ -ms-transform: rotateX(360deg);
97
+ transform: rotateX(360deg);
98
+ opacity: 1;
99
+ }
100
+ }
101
+
102
+ @-webkit-keyframes wpr-anim-text-rotate-1-out {
103
+ 0% {
104
+ -webkit-transform: rotateX(0deg);
105
+ opacity: 1;
106
+ }
107
+ 35% {
108
+ -webkit-transform: rotateX(-40deg);
109
+ opacity: 1;
110
+ }
111
+ 65% {
112
+ opacity: 0;
113
+ }
114
+ 100% {
115
+ -webkit-transform: rotateX(180deg);
116
+ opacity: 0;
117
+ }
118
+ }
119
+
120
+ @keyframes wpr-anim-text-rotate-1-out {
121
+ 0% {
122
+ -webkit-transform: rotateX(0deg);
123
+ -ms-transform: rotateX(0deg);
124
+ transform: rotateX(0deg);
125
+ opacity: 1;
126
+ }
127
+ 35% {
128
+ -webkit-transform: rotateX(-40deg);
129
+ -ms-transform: rotateX(-40deg);
130
+ transform: rotateX(-40deg);
131
+ opacity: 1;
132
+ }
133
+ 65% {
134
+ opacity: 0;
135
+ }
136
+ 100% {
137
+ -webkit-transform: rotateX(180deg);
138
+ -ms-transform: rotateX(180deg);
139
+ transform: rotateX(180deg);
140
+ opacity: 0;
141
+ }
142
+ }
143
+
144
+
145
+ /*--------------------------------------------------------------
146
+ == Typing
147
+ --------------------------------------------------------------*/
148
+
149
+ .wpr-anim-text.wpr-anim-text-type-typing .wpr-anim-text-inner {
150
+ vertical-align: top;
151
+ overflow: hidden;
152
+ }
153
+
154
+ .wpr-anim-text.wpr-anim-text-type-typing b {
155
+ visibility: hidden;
156
+ }
157
+
158
+ .wpr-anim-text.wpr-anim-text-type-typing b.wpr-anim-text-visible {
159
+ visibility: visible;
160
+ }
161
+
162
+ .wpr-anim-text.wpr-anim-text-type-typing i {
163
+ position: absolute;
164
+ visibility: hidden;
165
+ }
166
+
167
+ .wpr-anim-text.wpr-anim-text-type-typing i.wpr-anim-text-in {
168
+ position: relative;
169
+ visibility: visible;
170
+ }
171
+
172
+ @-webkit-keyframes wpr-anim-text-pulse {
173
+ 0% {
174
+ -webkit-transform: translateY(-50%) scale(1);
175
+ opacity: 1;
176
+ }
177
+ 40% {
178
+ -webkit-transform: translateY(-50%) scale(0.9);
179
+ opacity: 0;
180
+ }
181
+ 100% {
182
+ -webkit-transform: translateY(-50%) scale(0);
183
+ opacity: 0;
184
+ }
185
+ }
186
+
187
+ @keyframes wpr-anim-text-pulse {
188
+ 0% {
189
+ -webkit-transform: translateY(-50%) scale(1);
190
+ -ms-transform: translateY(-50%) scale(1);
191
+ transform: translateY(-50%) scale(1);
192
+ opacity: 1;
193
+ }
194
+ 40% {
195
+ -webkit-transform: translateY(-50%) scale(0.9);
196
+ -ms-transform: translateY(-50%) scale(0.9);
197
+ transform: translateY(-50%) scale(0.9);
198
+ opacity: 0;
199
+ }
200
+ 100% {
201
+ -webkit-transform: translateY(-50%) scale(0);
202
+ -ms-transform: translateY(-50%) scale(0);
203
+ transform: translateY(-50%) scale(0);
204
+ opacity: 0;
205
+ }
206
+ }
207
+
208
+
209
+ /*--------------------------------------------------------------
210
+ == Rotate 2
211
+ --------------------------------------------------------------*/
212
+
213
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 .wpr-anim-text-inner {
214
+ -webkit-perspective: 300px;
215
+ perspective: 300px;
216
+ }
217
+
218
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 i,
219
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 em {
220
+ display: inline-block;
221
+ -webkit-backface-visibility: hidden;
222
+ backface-visibility: hidden;
223
+ }
224
+
225
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 b {
226
+ opacity: 0;
227
+ }
228
+
229
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
230
+ -webkit-transform-style: preserve-3d;
231
+ transform-style: preserve-3d;
232
+ -webkit-transform: translateZ(-20px) rotateX(90deg);
233
+ -ms-transform: translateZ(-20px) rotateX(90deg);
234
+ transform: translateZ(-20px) rotateX(90deg);
235
+ opacity: 0;
236
+ }
237
+
238
+ .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
239
+ opacity: 1;
240
+ }
241
+
242
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 i.wpr-anim-text-in {
243
+ -webkit-animation: wpr-anim-text-rotate-2-in 0.4s forwards;
244
+ animation: wpr-anim-text-rotate-2-in 0.4s forwards;
245
+ }
246
+
247
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 i.wpr-anim-text-out {
248
+ -webkit-animation: wpr-anim-text-rotate-2-out 0.4s forwards;
249
+ animation: wpr-anim-text-rotate-2-out 0.4s forwards;
250
+ }
251
+
252
+ .wpr-anim-text.wpr-anim-text-type-rotate-2 em {
253
+ -webkit-transform: translateZ(20px);
254
+ -ms-transform: translateZ(20px);
255
+ transform: translateZ(20px);
256
+ }
257
+
258
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 i {
259
+ -webkit-transform: rotateX(0deg);
260
+ -ms-transform: rotateX(0deg);
261
+ transform: rotateX(0deg);
262
+ opacity: 0;
263
+ }
264
+
265
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 i em {
266
+ -webkit-transform: scale(1);
267
+ -ms-transform: scale(1);
268
+ transform: scale(1);
269
+ }
270
+
271
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-2 .wpr-anim-text-visible i {
272
+ opacity: 1;
273
+ }
274
+
275
+ @-webkit-keyframes wpr-anim-text-rotate-2-in {
276
+ 0% {
277
+ opacity: 0;
278
+ -webkit-transform: translateZ(-20px) rotateX(90deg);
279
+ }
280
+ 60% {
281
+ opacity: 1;
282
+ -webkit-transform: translateZ(-20px) rotateX(-10deg);
283
+ }
284
+ 100% {
285
+ opacity: 1;
286
+ -webkit-transform: translateZ(-20px) rotateX(0deg);
287
+ }
288
+ }
289
+
290
+ @keyframes wpr-anim-text-rotate-2-in {
291
+ 0% {
292
+ opacity: 0;
293
+ -webkit-transform: translateZ(-20px) rotateX(90deg);
294
+ -ms-transform: translateZ(-20px) rotateX(90deg);
295
+ transform: translateZ(-20px) rotateX(90deg);
296
+ }
297
+ 60% {
298
+ opacity: 1;
299
+ -webkit-transform: translateZ(-20px) rotateX(-10deg);
300
+ -ms-transform: translateZ(-20px) rotateX(-10deg);
301
+ transform: translateZ(-20px) rotateX(-10deg);
302
+ }
303
+ 100% {
304
+ opacity: 1;
305
+ -webkit-transform: translateZ(-20px) rotateX(0deg);
306
+ -ms-transform: translateZ(-20px) rotateX(0deg);
307
+ transform: translateZ(-20px) rotateX(0deg);
308
+ }
309
+ }
310
+
311
+ @-webkit-keyframes wpr-anim-text-rotate-2-out {
312
+ 0% {
313
+ opacity: 1;
314
+ -webkit-transform: translateZ(-20px) rotateX(0);
315
+ }
316
+ 60% {
317
+ opacity: 0;
318
+ -webkit-transform: translateZ(-20px) rotateX(-100deg);
319
+ }
320
+ 100% {
321
+ opacity: 0;
322
+ -webkit-transform: translateZ(-20px) rotateX(-90deg);
323
+ }
324
+ }
325
+
326
+ @keyframes wpr-anim-text-rotate-2-out {
327
+ 0% {
328
+ opacity: 1;
329
+ -webkit-transform: translateZ(-20px) rotateX(0);
330
+ -ms-transform: translateZ(-20px) rotateX(0);
331
+ transform: translateZ(-20px) rotateX(0);
332
+ }
333
+ 60% {
334
+ opacity: 0;
335
+ -webkit-transform: translateZ(-20px) rotateX(-100deg);
336
+ -ms-transform: translateZ(-20px) rotateX(-100deg);
337
+ transform: translateZ(-20px) rotateX(-100deg);
338
+ }
339
+ 100% {
340
+ opacity: 0;
341
+ -webkit-transform: translateZ(-20px) rotateX(-90deg);
342
+ -ms-transform: translateZ(-20px) rotateX(-90deg);
343
+ transform: translateZ(-20px) rotateX(-90deg);
344
+ }
345
+ }
346
+
347
+
348
+ /*--------------------------------------------------------------
349
+ == Slide
350
+ --------------------------------------------------------------*/
351
+
352
+ .wpr-anim-text.wpr-anim-text-type-slide span {
353
+ display: inline-block;
354
+ padding: .2em 0;
355
+ }
356
+
357
+ .wpr-anim-text.wpr-anim-text-type-slide .wpr-anim-text-inner {
358
+ overflow: hidden;
359
+ vertical-align: top;
360
+ }
361
+
362
+ .wpr-anim-text.wpr-anim-text-type-slide b {
363
+ opacity: 0;
364
+ top: .2em;
365
+ }
366
+
367
+ .wpr-anim-text.wpr-anim-text-type-slide b.wpr-anim-text-visible {
368
+ top: 0;
369
+ opacity: 1;
370
+ -webkit-animation: wpr-anim-text-slide-in 0.6s;
371
+ animation: wpr-anim-text-slide-in 0.6s;
372
+ }
373
+
374
+ .wpr-anim-text.wpr-anim-text-type-slide b.wpr-anim-text-hidden {
375
+ -webkit-animation: wpr-anim-text-slide-out 0.6s;
376
+ animation: wpr-anim-text-slide-out 0.6s;
377
+ }
378
+
379
+ @-webkit-keyframes wpr-anim-text-slide-in {
380
+ 0% {
381
+ opacity: 0;
382
+ -webkit-transform: translateY(-100%);
383
+ }
384
+ 60% {
385
+ opacity: 1;
386
+ -webkit-transform: translateY(20%);
387
+ }
388
+ 100% {
389
+ opacity: 1;
390
+ -webkit-transform: translateY(0);
391
+ }
392
+ }
393
+
394
+ @keyframes wpr-anim-text-slide-in {
395
+ 0% {
396
+ opacity: 0;
397
+ -webkit-transform: translateY(-100%);
398
+ -ms-transform: translateY(-100%);
399
+ transform: translateY(-100%);
400
+ }
401
+ 60% {
402
+ opacity: 1;
403
+ -webkit-transform: translateY(20%);
404
+ -ms-transform: translateY(20%);
405
+ transform: translateY(20%);
406
+ }
407
+ 100% {
408
+ opacity: 1;
409
+ -webkit-transform: translateY(0);
410
+ -ms-transform: translateY(0);
411
+ transform: translateY(0);
412
+ }
413
+ }
414
+
415
+ @-webkit-keyframes wpr-anim-text-slide-out {
416
+ 0% {
417
+ opacity: 1;
418
+ -webkit-transform: translateY(0);
419
+ }
420
+ 60% {
421
+ opacity: 0;
422
+ -webkit-transform: translateY(120%);
423
+ }
424
+ 100% {
425
+ opacity: 0;
426
+ -webkit-transform: translateY(100%);
427
+ }
428
+ }
429
+
430
+ @keyframes wpr-anim-text-slide-out {
431
+ 0% {
432
+ opacity: 1;
433
+ -webkit-transform: translateY(0);
434
+ -ms-transform: translateY(0);
435
+ transform: translateY(0);
436
+ }
437
+ 60% {
438
+ opacity: 0;
439
+ -webkit-transform: translateY(120%);
440
+ -ms-transform: translateY(120%);
441
+ transform: translateY(120%);
442
+ }
443
+ 100% {
444
+ opacity: 0;
445
+ -webkit-transform: translateY(100%);
446
+ -ms-transform: translateY(100%);
447
+ transform: translateY(100%);
448
+ }
449
+ }
450
+
451
+
452
+ /*--------------------------------------------------------------
453
+ == Clip
454
+ --------------------------------------------------------------*/
455
+
456
+ .wpr-anim-text.wpr-anim-text-type-clip span {
457
+ display: inline-block;
458
+ padding: .2em 0;
459
+ }
460
+
461
+ .wpr-anim-text.wpr-anim-text-type-clip .wpr-anim-text-inner {
462
+ overflow: hidden;
463
+ vertical-align: top;
464
+ }
465
+
466
+ .wpr-anim-text.wpr-anim-text-type-clip b {
467
+ opacity: 0;
468
+ }
469
+
470
+ .wpr-anim-text.wpr-anim-text-type-clip b.wpr-anim-text-visible {
471
+ opacity: 1;
472
+ }
473
+
474
+
475
+ /*--------------------------------------------------------------
476
+ == Zoom
477
+ --------------------------------------------------------------*/
478
+
479
+ .wpr-anim-text.wpr-anim-text-type-zoom .wpr-anim-text-inner {
480
+ -webkit-perspective: 300px;
481
+ perspective: 300px;
482
+ }
483
+
484
+ .wpr-anim-text.wpr-anim-text-type-zoom b {
485
+ opacity: 0;
486
+ }
487
+
488
+ .wpr-anim-text.wpr-anim-text-type-zoom b.wpr-anim-text-visible {
489
+ opacity: 1;
490
+ -webkit-animation: wpr-anim-text-zoom-in 0.8s;
491
+ animation: wpr-anim-text-zoom-in 0.8s;
492
+ }
493
+
494
+ .wpr-anim-text.wpr-anim-text-type-zoom b.wpr-anim-text-hidden {
495
+ -webkit-animation: wpr-anim-text-zoom-out 0.8s;
496
+ animation: wpr-anim-text-zoom-out 0.8s;
497
+ }
498
+
499
+ @-webkit-keyframes wpr-anim-text-zoom-in {
500
+ 0% {
501
+ opacity: 0;
502
+ -webkit-transform: translateZ(100px);
503
+ }
504
+ 100% {
505
+ opacity: 1;
506
+ -webkit-transform: translateZ(0);
507
+ }
508
+ }
509
+
510
+ @keyframes wpr-anim-text-zoom-in {
511
+ 0% {
512
+ opacity: 0;
513
+ -webkit-transform: translateZ(100px);
514
+ -ms-transform: translateZ(100px);
515
+ transform: translateZ(100px);
516
+ }
517
+ 100% {
518
+ opacity: 1;
519
+ -webkit-transform: translateZ(0);
520
+ -ms-transform: translateZ(0);
521
+ transform: translateZ(0);
522
+ }
523
+ }
524
+
525
+ @-webkit-keyframes wpr-anim-text-zoom-out {
526
+ 0% {
527
+ opacity: 1;
528
+ -webkit-transform: translateZ(0);
529
+ }
530
+ 100% {
531
+ opacity: 0;
532
+ -webkit-transform: translateZ(-100px);
533
+ }
534
+ }
535
+
536
+ @keyframes wpr-anim-text-zoom-out {
537
+ 0% {
538
+ opacity: 1;
539
+ -webkit-transform: translateZ(0);
540
+ -ms-transform: translateZ(0);
541
+ transform: translateZ(0);
542
+ }
543
+ 100% {
544
+ opacity: 0;
545
+ -webkit-transform: translateZ(-100px);
546
+ -ms-transform: translateZ(-100px);
547
+ transform: translateZ(-100px);
548
+ }
549
+ }
550
+
551
+
552
+ /*--------------------------------------------------------------
553
+ == Rotate-3
554
+ --------------------------------------------------------------*/
555
+
556
+ .wpr-anim-text.wpr-anim-text-type-rotate-3 .wpr-anim-text-inner {
557
+ -webkit-perspective: 300px;
558
+ perspective: 300px;
559
+ }
560
+
561
+ .wpr-anim-text.wpr-anim-text-type-rotate-3 b {
562
+ opacity: 0;
563
+ }
564
+
565
+ .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
566
+ display: inline-block;
567
+ -webkit-transform: rotateY(180deg);
568
+ -ms-transform: rotateY(180deg);
569
+ transform: rotateY(180deg);
570
+ -webkit-backface-visibility: hidden;
571
+ backface-visibility: hidden;
572
+ }
573
+
574
+ .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
575
+ -webkit-transform: rotateY(0deg);
576
+ -ms-transform: rotateY(0deg);
577
+ transform: rotateY(0deg);
578
+ }
579
+
580
+ .wpr-anim-text.wpr-anim-text-type-rotate-3 i.wpr-anim-text-in {
581
+ -webkit-animation: wpr-anim-text-rotate-3-in 0.6s forwards;
582
+ animation: wpr-anim-text-rotate-3-in 0.6s forwards;
583
+ }
584
+
585
+ .wpr-anim-text.wpr-anim-text-type-rotate-3 i.wpr-anim-text-out {
586
+ -webkit-animation: wpr-anim-text-rotate-3-out 0.6s forwards;
587
+ animation: wpr-anim-text-rotate-3-out 0.6s forwards;
588
+ }
589
+
590
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-3 i {
591
+ -webkit-transform: rotateY(0deg);
592
+ -ms-transform: rotateY(0deg);
593
+ transform: rotateY(0deg);
594
+ opacity: 0;
595
+ }
596
+
597
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-rotate-3 .wpr-anim-text-visible i {
598
+ opacity: 1;
599
+ }
600
+
601
+ @-webkit-keyframes wpr-anim-text-rotate-3-in {
602
+ 0% {
603
+ -webkit-transform: rotateY(180deg);
604
+ }
605
+ 100% {
606
+ -webkit-transform: rotateY(0deg);
607
+ }
608
+ }
609
+
610
+ @keyframes wpr-anim-text-rotate-3-in {
611
+ 0% {
612
+ -webkit-transform: rotateY(180deg);
613
+ -ms-transform: rotateY(180deg);
614
+ transform: rotateY(180deg);
615
+ }
616
+ 100% {
617
+ -webkit-transform: rotateY(0deg);
618
+ -ms-transform: rotateY(0deg);
619
+ transform: rotateY(0deg);
620
+ }
621
+ }
622
+
623
+ @-webkit-keyframes wpr-anim-text-rotate-3-out {
624
+ 0% {
625
+ -webkit-transform: rotateY(0);
626
+ }
627
+ 100% {
628
+ -webkit-transform: rotateY(-180deg);
629
+ }
630
+ }
631
+
632
+ @keyframes wpr-anim-text-rotate-3-out {
633
+ 0% {
634
+ -webkit-transform: rotateY(0);
635
+ -ms-transform: rotateY(0);
636
+ transform: rotateY(0);
637
+ }
638
+ 100% {
639
+ -webkit-transform: rotateY(-180deg);
640
+ -ms-transform: rotateY(-180deg);
641
+ transform: rotateY(-180deg);
642
+ }
643
+ }
644
+
645
+
646
+ /*--------------------------------------------------------------
647
+ == Scale
648
+ --------------------------------------------------------------*/
649
+
650
+ .wpr-anim-text.wpr-anim-text-type-scale b {
651
+ opacity: 0;
652
+ }
653
+
654
+ .wpr-anim-text.wpr-anim-text-type-scale i {
655
+ display: inline-block;
656
+ opacity: 0;
657
+ -webkit-transform: scale(0);
658
+ -ms-transform: scale(0);
659
+ transform: scale(0);
660
+ }
661
+
662
+ .wpr-anim-text-visible .wpr-anim-text.wpr-anim-text-type-scale i {
663
+ opacity: 1;
664
+ }
665
+
666
+ .wpr-anim-text.wpr-anim-text-type-scale i.wpr-anim-text-in {
667
+ -webkit-animation: wpr-anim-text-scale-up 0.6s forwards;
668
+ animation: wpr-anim-text-scale-up 0.6s forwards;
669
+ }
670
+
671
+ .wpr-anim-text.wpr-anim-text-type-scale i.wpr-anim-text-out {
672
+ -webkit-animation: wpr-anim-text-scale-down 0.6s forwards;
673
+ animation: wpr-anim-text-scale-down 0.6s forwards;
674
+ }
675
+
676
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-scale i {
677
+ -webkit-transform: scale(1);
678
+ -ms-transform: scale(1);
679
+ transform: scale(1);
680
+ opacity: 0;
681
+ }
682
+
683
+ .no-csstransitions .wpr-anim-text.wpr-anim-text-type-scale .wpr-anim-text-visible i {
684
+ opacity: 1;
685
+ }
686
+
687
+ @-webkit-keyframes wpr-anim-text-scale-up {
688
+ 0% {
689
+ -webkit-transform: scale(0);
690
+ opacity: 0;
691
+ }
692
+ 60% {
693
+ -webkit-transform: scale(1.2);
694
+ opacity: 1;
695
+ }
696
+ 100% {
697
+ -webkit-transform: scale(1);
698
+ opacity: 1;
699
+ }
700
+ }
701
+
702
+ @keyframes wpr-anim-text-scale-up {
703
+ 0% {
704
+ -webkit-transform: scale(0);
705
+ -ms-transform: scale(0);
706
+ transform: scale(0);
707
+ opacity: 0;
708
+ }
709
+ 60% {
710
+ -webkit-transform: scale(1.2);
711
+ -ms-transform: scale(1.2);
712
+ transform: scale(1.2);
713
+ opacity: 1;
714
+ }
715
+ 100% {
716
+ -webkit-transform: scale(1);
717
+ -ms-transform: scale(1);
718
+ transform: scale(1);
719
+ opacity: 1;
720
+ }
721
+ }
722
+
723
+ @-webkit-keyframes wpr-anim-text-scale-down {
724
+ 0% {
725
+ -webkit-transform: scale(1);
726
+ opacity: 1;
727
+ }
728
+ 60% {
729
+ -webkit-transform: scale(0);
730
+ opacity: 0;
731
+ }
732
+ }
733
+
734
+ @keyframes wpr-anim-text-scale-down {
735
+ 0% {
736
+ -webkit-transform: scale(1);
737
+ -ms-transform: scale(1);
738
+ transform: scale(1);
739
+ opacity: 1;
740
+ }
741
+ 60% {
742
+ -webkit-transform: scale(0);
743
+ -ms-transform: scale(0);
744
+ transform: scale(0);
745
+ opacity: 0;
746
+ }
747
+ }
748
+
749
+
750
+ /*--------------------------------------------------------------
751
+ == Push
752
+ --------------------------------------------------------------*/
753
+ .wpr-anim-text-type-push {
754
+ overflow: hidden;
755
+ }
756
+
757
+ .wpr-anim-text.wpr-anim-text-type-push b {
758
+ opacity: 0;
759
+ }
760
+
761
+ .wpr-anim-text.wpr-anim-text-type-push b.wpr-anim-text-visible {
762
+ opacity: 1;
763
+ -webkit-animation: wpr-anim-text-push-in 0.6s;
764
+ animation: wpr-anim-text-push-in 0.6s;
765
+ }
766
+
767
+ .wpr-anim-text.wpr-anim-text-type-push b.wpr-anim-text-hidden {
768
+ -webkit-animation: wpr-anim-text-push-out 0.6s;
769
+ animation: wpr-anim-text-push-out 0.6s;
770
+ }
771
+
772
+ @-webkit-keyframes wpr-anim-text-push-in {
773
+ 0% {
774
+ opacity: 0;
775
+ -webkit-transform: translateX(-100%);
776
+ }
777
+ 60% {
778
+ opacity: 1;
779
+ -webkit-transform: translateX(10%);
780
+ }
781
+ 100% {
782
+ opacity: 1;
783
+ -webkit-transform: translateX(0);
784
+ }
785
+ }
786
+
787
+ @keyframes wpr-anim-text-push-in {
788
+ 0% {
789
+ opacity: 0;
790
+ -webkit-transform: translateX(-100%);
791
+ -ms-transform: translateX(-100%);
792
+ transform: translateX(-100%);
793
+ }
794
+ 60% {
795
+ opacity: 1;
796
+ -webkit-transform: translateX(10%);
797
+ -ms-transform: translateX(10%);
798
+ transform: translateX(10%);
799
+ }
800
+ 100% {
801
+ opacity: 1;
802
+ -webkit-transform: translateX(0);
803
+ -ms-transform: translateX(0);
804
+ transform: translateX(0);
805
+ }
806
+ }
807
+
808
+ @-webkit-keyframes wpr-anim-text-push-out {
809
+ 0% {
810
+ opacity: 1;
811
+ -webkit-transform: translateX(0);
812
+ }
813
+ 60% {
814
+ opacity: 0;
815
+ -webkit-transform: translateX(110%);
816
+ }
817
+ 100% {
818
+ opacity: 0;
819
+ -webkit-transform: translateX(100%);
820
+ }
821
+ }
822
+
823
+ @keyframes wpr-anim-text-push-out {
824
+ 0% {
825
+ opacity: 1;
826
+ -webkit-transform: translateX(0);
827
+ -ms-transform: translateX(0);
828
+ transform: translateX(0);
829
+ }
830
+ 60% {
831
+ opacity: 0;
832
+ -webkit-transform: translateX(110%);
833
+ -ms-transform: translateX(110%);
834
+ transform: translateX(110%);
835
+ }
836
+ 100% {
837
+ opacity: 0;
838
+ -webkit-transform: translateX(100%);
839
+ -ms-transform: translateX(100%);
840
+ transform: translateX(100%);
841
+ }
842
+ }
843
+
assets/css/lib/animations/wpr-animations.css CHANGED
@@ -1,1331 +1,1331 @@
1
- /*!
2
- * WPR Animations
3
- * Version: 1.0
4
- * Author: WP Royal
5
- * Author URL: https://royal-elementor-addons.com/
6
-
7
- * WPR Animations Copyright WP Royal 2020.
8
- */
9
-
10
- .wpr-anim-transparency {
11
- opacity: 0;
12
- }
13
-
14
- .wpr-element-fade-in,
15
- .wpr-overlay-fade-in {
16
- opacity: 0;
17
- }
18
-
19
- .wpr-animation-wrap-active .wpr-anim-size-small.wpr-element-fade-in,
20
- .wpr-animation-wrap-active .wpr-anim-size-small.wpr-overlay-fade-in,
21
- .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-element-fade-in,
22
- .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-overlay-fade-in,
23
- .wpr-animation-enter > .wpr-anim-size-small.wpr-overlay-fade-in {
24
- opacity: 0.4;
25
- }
26
-
27
- .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-element-fade-in,
28
- .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-overlay-fade-in,
29
- .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-element-fade-in,
30
- .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-overlay-fade-in,
31
- .wpr-animation-enter > .wpr-anim-size-medium.wpr-overlay-fade-in {
32
- opacity: 0.75;
33
- }
34
-
35
- .wpr-animation-wrap-active .wpr-anim-size-large.wpr-element-fade-in,
36
- .wpr-animation-wrap-active .wpr-anim-size-large.wpr-overlay-fade-in,
37
- .wpr-animation-wrap:hover .wpr-anim-size-large.wpr-element-fade-in,
38
- .wpr-animation-wrap:hover .wpr-anim-size-large.wpr-overlay-fade-in,
39
- .wpr-animation-enter > .wpr-anim-size-large.wpr-overlay-fade-in {
40
- opacity: 1;
41
- }
42
-
43
- .wpr-element-fade-out,
44
- .wpr-overlay-fade-out {
45
- opacity: 1;
46
- }
47
-
48
- .wpr-animation-wrap-active .wpr-anim-size-small.wpr-element-fade-out,
49
- .wpr-animation-wrap-active .wpr-anim-size-small.wpr-overlay-fade-out,
50
- .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-element-fade-out,
51
- .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-overlay-fade-out,
52
- .wpr-animation-enter > .wpr-anim-size-small.wpr-overlay-fade-out {
53
- opacity: 0.75;
54
- }
55
-
56
- .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-element-fade-out,
57
- .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-overlay-fade-out,
58
- .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-element-fade-out,
59
- .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-overlay-fade-out,
60
- .wpr-animation-enter > .wpr-anim-size-medium.wpr-overlay-fade-out {
61
- opacity: 0.4;
62
- }
63
-
64
- .wpr-animation-wrap-active .wpr-anim-size-large.wpr-element-fade-out,
65
- .wpr-animation-wrap-active .wpr-anim-size-large.wpr-overlay-fade-out,
66
- .wpr-animation-wrap-hover .wpr-anim-size-large.wpr-element-fade-out,
67
- .wpr-animation-wrap-hover .wpr-anim-size-large.wpr-overlay-fade-out,
68
- .wpr-animation-enter > .wpr-anim-size-large.wpr-overlay-fade-out {
69
- opacity: 0;
70
- }
71
-
72
- .wpr-anim-size-small.wpr-element-slide-top {
73
- -webkit-transform: translateY(-30%);
74
- -ms-transform: translateY(-30%);
75
- transform: translateY(-30%);
76
- }
77
-
78
- .wpr-anim-size-medium.wpr-element-slide-top {
79
- -webkit-transform: translateY(-100%);
80
- -ms-transform: translateY(-100%);
81
- transform: translateY(-100%);
82
- }
83
-
84
- .wpr-anim-size-large.wpr-element-slide-top {
85
- -webkit-transform: translateY(-200%);
86
- -ms-transform: translateY(-200%);
87
- transform: translateY(-200%);
88
- }
89
-
90
- .wpr-anim-size-small.wpr-overlay-slide-top {
91
- -webkit-transform: translateY(-50%);
92
- -ms-transform: translateY(-50%);
93
- transform: translateY(-50%);
94
- }
95
-
96
- .wpr-anim-size-medium.wpr-overlay-slide-top {
97
- -webkit-transform: translateY(-70%);
98
- -ms-transform: translateY(-70%);
99
- transform: translateY(-70%);
100
- }
101
-
102
- .wpr-anim-size-large.wpr-overlay-slide-top {
103
- -webkit-transform: translateY(-100%);
104
- -ms-transform: translateY(-100%);
105
- transform: translateY(-100%);
106
- }
107
-
108
- .wpr-animation-wrap-active .wpr-element-slide-top,
109
- .wpr-animation-wrap-active .wpr-overlay-slide-top,
110
- .wpr-animation-wrap:hover .wpr-element-slide-top,
111
- .wpr-animation-wrap:hover .wpr-overlay-slide-top,
112
- .wpr-animation-enter > .wpr-overlay-slide-top {
113
- opacity: 1;
114
- -webkit-transform: translateY(0);
115
- -ms-transform: translateY(0);
116
- transform: translateY(0);
117
- }
118
-
119
- .wpr-anim-size-small.wpr-element-slide-bottom {
120
- -webkit-transform: translateY(30%);
121
- -ms-transform: translateY(30%);
122
- transform: translateY(30%);
123
- }
124
-
125
- .wpr-anim-size-medium.wpr-element-slide-bottom {
126
- -webkit-transform: translateY(100%);
127
- -ms-transform: translateY(100%);
128
- transform: translateY(100%);
129
- }
130
-
131
- .wpr-anim-size-large.wpr-element-slide-bottom {
132
- -webkit-transform: translateY(200%);
133
- -ms-transform: translateY(200%);
134
- transform: translateY(200%);
135
- }
136
-
137
- .wpr-anim-size-small.wpr-overlay-slide-bottom {
138
- -webkit-transform: translateY(50%);
139
- -ms-transform: translateY(50%);
140
- transform: translateY(50%);
141
- }
142
-
143
- .wpr-anim-size-medium.wpr-overlay-slide-bottom {
144
- -webkit-transform: translateY(70%);
145
- -ms-transform: translateY(70%);
146
- transform: translateY(70%);
147
- }
148
-
149
- .wpr-anim-size-large.wpr-overlay-slide-bottom {
150
- -webkit-transform: translateY(100%);
151
- -ms-transform: translateY(100%);
152
- transform: translateY(100%);
153
- }
154
-
155
- .wpr-animation-wrap-active .wpr-element-slide-bottom,
156
- .wpr-animation-wrap-active .wpr-overlay-slide-bottom,
157
- .wpr-animation-wrap:hover .wpr-element-slide-bottom,
158
- .wpr-animation-wrap:hover .wpr-overlay-slide-bottom,
159
- .wpr-animation-enter > .wpr-overlay-slide-bottom {
160
- opacity: 1;
161
- -webkit-transform: translateY(0);
162
- -ms-transform: translateY(0);
163
- transform: translateY(0);
164
- }
165
-
166
- .wpr-anim-size-small.wpr-element-slide-right {
167
- -webkit-transform: translateX(30%);
168
- -ms-transform: translateX(30%);
169
- transform: translateX(30%);
170
- }
171
-
172
- .wpr-anim-size-medium.wpr-element-slide-right {
173
- -webkit-transform: translateX(150%);
174
- -ms-transform: translateX(150%);
175
- transform: translateX(150%);
176
- }
177
-
178
- .wpr-anim-size-large.wpr-element-slide-right {
179
- -webkit-transform: translateX(300%);
180
- -ms-transform: translateX(300%);
181
- transform: translateX(300%);
182
- }
183
-
184
- .wpr-anim-size-small.wpr-overlay-slide-right {
185
- -webkit-transform: translateX(50%);
186
- -ms-transform: translateX(50%);
187
- transform: translateX(50%);
188
- }
189
-
190
- .wpr-anim-size-medium.wpr-overlay-slide-right {
191
- -webkit-transform: translateX(70%);
192
- -ms-transform: translateX(70%);
193
- transform: translateX(70%);
194
- }
195
-
196
- .wpr-anim-size-large.wpr-overlay-slide-right {
197
- -webkit-transform: translateX(100%);
198
- -ms-transform: translateX(100%);
199
- transform: translateX(100%);
200
- }
201
-
202
- .wpr-animation-wrap-active .wpr-element-slide-right,
203
- .wpr-animation-wrap-active .wpr-overlay-slide-right,
204
- .wpr-animation-wrap:hover .wpr-element-slide-right,
205
- .wpr-animation-wrap:hover .wpr-overlay-slide-right,
206
- .wpr-animation-enter > .wpr-overlay-slide-right {
207
- opacity: 1;
208
- -webkit-transform: translateX(0);
209
- -ms-transform: translateX(0);
210
- transform: translateX(0);
211
- }
212
-
213
- .wpr-anim-size-small.wpr-element-slide-left {
214
- -webkit-transform: translateX(-30%);
215
- -ms-transform: translateX(-30%);
216
- transform: translateX(-30%);
217
- }
218
-
219
- .wpr-anim-size-medium.wpr-element-slide-left {
220
- -webkit-transform: translateX(-150%);
221
- -ms-transform: translateX(-150%);
222
- transform: translateX(-150%);
223
- }
224
-
225
- .wpr-anim-size-large.wpr-element-slide-left {
226
- -webkit-transform: translateX(-300%);
227
- -ms-transform: translateX(-300%);
228
- transform: translateX(-300%);
229
- }
230
-
231
- .wpr-anim-size-small.wpr-overlay-slide-left {
232
- -webkit-transform: translateX(-50%);
233
- -ms-transform: translateX(-50%);
234
- transform: translateX(-50%);
235
- }
236
-
237
- .wpr-anim-size-medium.wpr-overlay-slide-left {
238
- -webkit-transform: translateX(-70%);
239
- -ms-transform: translateX(-70%);
240
- transform: translateX(-70%);
241
- }
242
-
243
- .wpr-anim-size-large.wpr-overlay-slide-left {
244
- -webkit-transform: translateX(-100%);
245
- -ms-transform: translateX(-100%);
246
- transform: translateX(-100%);
247
- }
248
-
249
- .wpr-animation-wrap-active .wpr-element-slide-left,
250
- .wpr-animation-wrap-active .wpr-overlay-slide-left,
251
- .wpr-animation-wrap-hover .wpr-element-slide-left,
252
- .wpr-animation-wrap-hover .wpr-overlay-slide-left,
253
- .wpr-animation-enter > .wpr-overlay-slide-left {
254
- opacity: 1;
255
- -webkit-transform: translateX(0);
256
- -ms-transform: translateX(0);
257
- transform: translateX(0);
258
- }
259
-
260
- .wpr-element-slide-x-right,
261
- .wpr-element-slide-x-left {
262
- position: relative;
263
- overflow: hidden;
264
- }
265
-
266
- .wpr-element-slide-x-right .inner-block,
267
- .wpr-element-slide-x-left .inner-block {
268
- position: relative;
269
- -webkit-transition-duration: inherit;
270
- -o-transition-duration: inherit;
271
- transition-duration: inherit;
272
- }
273
-
274
- .wpr-element-slide-x-right .inner-block {
275
- right: -100%;
276
- }
277
-
278
- .wpr-animation-wrap-active .wpr-element-slide-x-right .inner-block,
279
- .wpr-animation-wrap:hover .wpr-element-slide-x-right .inner-block {
280
- right: 0;
281
- }
282
-
283
- .wpr-element-slide-x-left .inner-block {
284
- left: -100%;
285
- }
286
-
287
- .wpr-animation-wrap-active .wpr-element-slide-x-left .inner-block,
288
- .wpr-animation-wrap:hover .wpr-element-slide-x-left .inner-block {
289
- left: 0;
290
- }
291
-
292
- .wpr-element-skew-top,
293
- .wpr-overlay-skew-top {
294
- -webkit-transform-origin: center top 0;
295
- -ms-transform-origin: center top 0;
296
- transform-origin: center top 0;
297
- }
298
-
299
- .wpr-overlay-skew-top {
300
- top: 0 !important;
301
- }
302
-
303
- .wpr-anim-size-small.wpr-element-skew-top,
304
- .wpr-anim-size-small.wpr-overlay-skew-top {
305
- -webkit-transform: perspective(600px) rotateX(-30deg);
306
- transform: perspective(600px) rotateX(-30deg);
307
- }
308
-
309
- .wpr-anim-size-medium.wpr-element-skew-top,
310
- .wpr-anim-size-medium.wpr-overlay-skew-top {
311
- -webkit-transform: perspective(600px) rotateX(-50deg);
312
- transform: perspective(600px) rotateX(-50deg);
313
- }
314
-
315
- .wpr-anim-size-large.wpr-element-skew-top,
316
- .wpr-anim-size-large.wpr-overlay-skew-top {
317
- -webkit-transform: perspective(600px) rotateX(-90deg);
318
- transform: perspective(600px) rotateX(-90deg);
319
- }
320
-
321
- .wpr-animation-wrap-active .wpr-element-skew-top,
322
- .wpr-animation-wrap-active .wpr-overlay-skew-top,
323
- .wpr-animation-wrap:hover .wpr-element-skew-top,
324
- .wpr-animation-wrap:hover .wpr-overlay-skew-top,
325
- .wpr-animation-enter > .wpr-overlay-skew-top {
326
- opacity: 1;
327
- -webkit-transform: perspective(600px) rotateX(0deg);
328
- transform: perspective(600px) rotateX(0deg);
329
- }
330
-
331
- .wpr-element-skew-bottom,
332
- .wpr-overlay-skew-bottom {
333
- -webkit-transform-origin: center bottom 0;
334
- -ms-transform-origin: center bottom 0;
335
- transform-origin: center bottom 0;
336
- }
337
-
338
- .wpr-overlay-skew-bottom {
339
- top: auto !important;
340
- bottom: 0 !important;
341
- }
342
-
343
- .wpr-anim-size-small.wpr-element-skew-bottom,
344
- .wpr-anim-size-small.wpr-overlay-skew-bottom {
345
- -webkit-transform: perspective(600px) rotateX(30deg);
346
- transform: perspective(600px) rotateX(30deg);
347
- }
348
-
349
- .wpr-anim-size-medium.wpr-element-skew-bottom,
350
- .wpr-anim-size-medium.wpr-overlay-skew-bottom {
351
- -webkit-transform: perspective(600px) rotateX(50deg);
352
- transform: perspective(600px) rotateX(50deg);
353
- }
354
-
355
- .wpr-anim-size-large.wpr-element-skew-bottom,
356
- .wpr-anim-size-large.wpr-overlay-skew-bottom {
357
- -webkit-transform: perspective(600px) rotateX(90deg);
358
- transform: perspective(600px) rotateX(90deg);
359
- }
360
-
361
- .wpr-animation-wrap-active .wpr-element-skew-bottom,
362
- .wpr-animation-wrap-active .wpr-overlay-skew-bottom,
363
- .wpr-animation-wrap:hover .wpr-element-skew-bottom,
364
- .wpr-animation-wrap:hover .wpr-overlay-skew-bottom,
365
- .wpr-animation-enter > .wpr-overlay-skew-bottom {
366
- opacity: 1;
367
- -webkit-transform: perspective(600px) rotateX(0deg);
368
- transform: perspective(600px) rotateX(0deg);
369
- }
370
-
371
- .wpr-element-skew-right,
372
- .wpr-overlay-skew-right {
373
- -webkit-transform-origin: center right 0;
374
- -ms-transform-origin: center right 0;
375
- transform-origin: center right 0;
376
- }
377
-
378
- .wpr-overlay-skew-right {
379
- left: auto !important;
380
- right: 0 !important;
381
- }
382
-
383
- .wpr-anim-size-small.wpr-element-skew-right,
384
- .wpr-anim-size-small.wpr-overlay-skew-right {
385
- -webkit-transform: perspective(600px) rotateY(-30deg);
386
- transform: perspective(600px) rotateY(-30deg);
387
- }
388
-
389
- .wpr-anim-size-medium.wpr-element-skew-right,
390
- .wpr-anim-size-medium.wpr-overlay-skew-right {
391
- -webkit-transform: perspective(600px) rotateY(-50deg);
392
- transform: perspective(600px) rotateY(-50deg);
393
- }
394
-
395
- .wpr-anim-size-large.wpr-element-skew-right,
396
- .wpr-anim-size-large.wpr-overlay-skew-right {
397
- -webkit-transform: perspective(600px) rotateY(-90deg);
398
- transform: perspective(600px) rotateY(-90deg);
399
- }
400
-
401
- .wpr-animation-wrap-active .wpr-element-skew-right,
402
- .wpr-animation-wrap-active .wpr-overlay-skew-right,
403
- .wpr-animation-wrap:hover .wpr-element-skew-right,
404
- .wpr-animation-wrap:hover .wpr-overlay-skew-right,
405
- .wpr-animation-enter > .wpr-overlay-skew-right {
406
- opacity: 1;
407
- -webkit-transform: perspective(600px) rotateY(0deg);
408
- transform: perspective(600px) rotateY(0deg);
409
- }
410
-
411
- .wpr-element-skew-left,
412
- .wpr-overlay-skew-left {
413
- -webkit-transform-origin: center left 0;
414
- -ms-transform-origin: center left 0;
415
- transform-origin: center left 0;
416
- }
417
-
418
- .wpr-overlay-skew-left {
419
- left: 0 !important;
420
- }
421
-
422
- .wpr-anim-size-small.wpr-element-skew-left,
423
- .wpr-anim-size-small.wpr-overlay-skew-left {
424
- -webkit-transform: perspective(600px) rotateY(30deg);
425
- transform: perspective(600px) rotateY(30deg);
426
- }
427
-
428
- .wpr-anim-size-medium.wpr-element-skew-left,
429
- .wpr-anim-size-medium.wpr-overlay-skew-left {
430
- -webkit-transform: perspective(600px) rotateY(50deg);
431
- transform: perspective(600px) rotateY(50deg);
432
- }
433
-
434
- .wpr-anim-size-large.wpr-element-skew-left,
435
- .wpr-anim-size-large.wpr-overlay-skew-left {
436
- -webkit-transform: perspective(600px) rotateY(90deg);
437
- transform: perspective(600px) rotateY(90deg);
438
- }
439
-
440
- .wpr-animation-wrap-active .wpr-element-skew-left,
441
- .wpr-animation-wrap-active .wpr-overlay-skew-left,
442
- .wpr-animation-wrap:hover .wpr-element-skew-left,
443
- .wpr-animation-wrap:hover .wpr-overlay-skew-left,
444
- .wpr-animation-enter > .wpr-overlay-skew-left {
445
- opacity: 1;
446
- -webkit-transform: perspective(600px) rotateY(0deg);
447
- transform: perspective(600px) rotateY(0deg);
448
- }
449
-
450
- .wpr-anim-size-small.wpr-element-scale-up,
451
- .wpr-anim-size-small.wpr-overlay-scale-up {
452
- -webkit-transform: scale(0.9);
453
- -ms-transform: scale(0.9);
454
- transform: scale(0.9);
455
- }
456
-
457
- .wpr-anim-size-medium.wpr-element-scale-up,
458
- .wpr-anim-size-medium.wpr-overlay-scale-up {
459
- -webkit-transform: scale(0.6);
460
- -ms-transform: scale(0.6);
461
- transform: scale(0.6);
462
- }
463
-
464
- .wpr-anim-size-large.wpr-element-scale-up,
465
- .wpr-anim-size-large.wpr-overlay-scale-up {
466
- -webkit-transform: scale(0.2);
467
- -ms-transform: scale(0.2);
468
- transform: scale(0.2);
469
- }
470
-
471
- .wpr-animation-wrap-active .wpr-element-scale-up,
472
- .wpr-animation-wrap-active .wpr-overlay-scale-up,
473
- .wpr-animation-wrap:hover .wpr-element-scale-up,
474
- .wpr-animation-wrap:hover .wpr-overlay-scale-up,
475
- .wpr-animation-enter > .wpr-overlay-scale-up {
476
- opacity: 1;
477
- -webkit-transform: scale(1);
478
- -ms-transform: scale(1);
479
- transform: scale(1);
480
- }
481
-
482
- .wpr-anim-size-small.wpr-element-scale-down,
483
- .wpr-anim-size-small.wpr-overlay-scale-down {
484
- -webkit-transform: scale(1.1);
485
- -ms-transform: scale(1.1);
486
- transform: scale(1.1);
487
- }
488
-
489
- .wpr-anim-size-medium.wpr-element-scale-down,
490
- .wpr-anim-size-medium.wpr-overlay-scale-down {
491
- -webkit-transform: scale(1.4);
492
- -ms-transform: scale(1.4);
493
- transform: scale(1.4);
494
- }
495
-
496
- .wpr-anim-size-large.wpr-element-scale-down,
497
- .wpr-anim-size-large.wpr-overlay-scale-down {
498
- -webkit-transform: scale(1.9);
499
- -ms-transform: scale(1.9);
500
- transform: scale(1.9);
501
- }
502
-
503
- .wpr-animation-wrap-active .wpr-element-scale-down,
504
- .wpr-animation-wrap-active .wpr-overlay-scale-down,
505
- .wpr-animation-wrap:hover .wpr-element-scale-down,
506
- .wpr-animation-wrap:hover .wpr-overlay-scale-down,
507
- .wpr-animation-enter > .wpr-overlay-scale-down {
508
- opacity: 1;
509
- -webkit-transform: scale(1);
510
- -ms-transform: scale(1);
511
- transform: scale(1);
512
- }
513
-
514
- .wpr-anim-size-small.wpr-element-roll-right,
515
- .wpr-anim-size-small.wpr-overlay-roll-right {
516
- -webkit-transform: translateX(100%) rotate(90deg);
517
- -ms-transform: translateX(100%) rotate(90deg);
518
- transform: translateX(100%) rotate(90deg);
519
- }
520
-
521
- .wpr-anim-size-medium.wpr-element-roll-right,
522
- .wpr-anim-size-medium.wpr-overlay-roll-right {
523
- -webkit-transform: translateX(100%) rotate(240deg);
524
- -ms-transform: translateX(100%) rotate(240deg);
525
- transform: translateX(100%) rotate(240deg);
526
- }
527
-
528
- .wpr-anim-size-large.wpr-element-roll-right,
529
- .wpr-anim-size-large.wpr-overlay-roll-right {
530
- -webkit-transform: translateX(100%) rotate(360deg);
531
- -ms-transform: translateX(100%) rotate(360deg);
532
- transform: translateX(100%) rotate(360deg);
533
- }
534
-
535
- .wpr-animation-wrap-active .wpr-element-roll-right,
536
- .wpr-animation-wrap-active .wpr-overlay-roll-right,
537
- .wpr-animation-wrap:hover .wpr-element-roll-right,
538
- .wpr-animation-wrap:hover .wpr-overlay-roll-right,
539
- .wpr-animation-enter > .wpr-overlay-roll-right {
540
- opacity: 1;
541
- -webkit-transform: translateX(0) rotate(0);
542
- -ms-transform: translateX(0) rotate(0);
543
- transform: translateX(0) rotate(0);
544
- }
545
-
546
- .wpr-anim-size-small.wpr-element-roll-left,
547
- .wpr-anim-size-small.wpr-overlay-roll-left {
548
- -webkit-transform: translateX(-100%) rotate(-90deg);
549
- -ms-transform: translateX(-100%) rotate(-90deg);
550
- transform: translateX(-100%) rotate(-90deg);
551
- }
552
-
553
- .wpr-anim-size-medium.wpr-element-roll-left,
554
- .wpr-anim-size-medium.wpr-overlay-roll-left {
555
- -webkit-transform: translateX(-100%) rotate(-240deg);
556
- -ms-transform: translateX(-100%) rotate(-240deg);
557
- transform: translateX(-100%) rotate(-240deg);
558
- }
559
-
560
- .wpr-anim-size-large.wpr-element-roll-left,
561
- .wpr-anim-size-large.wpr-overlay-roll-left {
562
- -webkit-transform: translateX(-100%) rotate(-360deg);
563
- -ms-transform: translateX(-100%) rotate(-360deg);
564
- transform: translateX(-100%) rotate(-360deg);
565
- }
566
-
567
- .wpr-animation-wrap-active .wpr-element-roll-left,
568
- .wpr-animation-wrap-active .wpr-overlay-roll-left,
569
- .wpr-animation-wrap:hover .wpr-element-roll-left,
570
- .wpr-animation-wrap:hover .wpr-overlay-roll-left,
571
- .wpr-animation-enter > .wpr-overlay-roll-left {
572
- opacity: 1;
573
- -webkit-transform: translateX(0) rotate(0);
574
- -ms-transform: translateX(0) rotate(0);
575
- transform: translateX(0) rotate(0);
576
- }
577
-
578
-
579
- /* Timing Functions */
580
-
581
- .wpr-anim-timing-linear {
582
- -webkit-transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
583
- -o-transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
584
- transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
585
- }
586
-
587
- .wpr-anim-timing-ease-default {
588
- -webkit-transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
589
- -o-transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
590
- transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
591
- }
592
-
593
- .wpr-anim-timing-ease-in {
594
- -webkit-transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
595
- -o-transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
596
- transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
597
- }
598
-
599
- .wpr-anim-timing-ease-out {
600
- -webkit-transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
601
- -o-transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
602
- transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
603
- }
604
-
605
- .wpr-anim-timing-ease-in-out {
606
- -webkit-transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
607
- -o-transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
608
- transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
609
- }
610
-
611
- .wpr-anim-timing-ease-in-quad {
612
- -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
613
- -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
614
- transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
615
- }
616
-
617
- .wpr-anim-timing-ease-in-cubic {
618
- -webkit-transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
619
- -o-transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
620
- transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
621
- }
622
-
623
- .wpr-anim-timing-ease-in-quart {
624
- -webkit-transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
625
- -o-transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
626
- transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
627
- }
628
-
629
- .wpr-anim-timing-ease-in-quint {
630
- -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
631
- -o-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
632
- transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
633
- }
634
-
635
- .wpr-anim-timing-ease-in-sine {
636
- -webkit-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
637
- -o-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
638
- transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
639
- }
640
-
641
- .wpr-anim-timing-ease-in-expo {
642
- -webkit-transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
643
- -o-transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
644
- transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
645
- }
646
-
647
- .wpr-anim-timing-ease-in-circ {
648
- -webkit-transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
649
- -o-transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
650
- transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
651
- }
652
-
653
- .wpr-anim-timing-ease-in-back {
654
- -webkit-transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
655
- -o-transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
656
- transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
657
- }
658
-
659
- .wpr-anim-timing-ease-out-quad {
660
- -webkit-transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
661
- -o-transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
662
- transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
663
- }
664
-
665
- .wpr-anim-timing-ease-out-cubic {
666
- -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
667
- -o-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
668
- transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
669
- }
670
-
671
- .wpr-anim-timing-ease-out-quart {
672
- -webkit-transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
673
- -o-transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
674
- transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
675
- }
676
-
677
- .wpr-anim-timing-ease-out-quint {
678
- -webkit-transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
679
- -o-transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
680
- transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
681
- }
682
-
683
- .wpr-anim-timing-ease-out-sine {
684
- -webkit-transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
685
- -o-transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
686
- transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
687
- }
688
-
689
- .wpr-anim-timing-ease-out-expo {
690
- -webkit-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
691
- -o-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
692
- transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
693
- }
694
-
695
- .wpr-anim-timing-ease-out-circ {
696
- -webkit-transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
697
- -o-transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
698
- transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
699
- }
700
-
701
- .wpr-anim-timing-ease-out-back {
702
- -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
703
- -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
704
- transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
705
- }
706
-
707
- .wpr-anim-timing-ease-in-out-quad {
708
- -webkit-transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955);
709
- -o-transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955);
710
- transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955)
711
- }
712
-
713
- .wpr-anim-timing-ease-in-out-cubic {
714
- -webkit-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
715
- -o-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
716
- transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
717
- }
718
-
719
- .wpr-anim-timing-ease-in-out-quart {
720
- -webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
721
- -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
722
- transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
723
- }
724
-
725
- .wpr-anim-timing-ease-in-out-quint {
726
- -webkit-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
727
- -o-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
728
- transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
729
- }
730
-
731
- .wpr-anim-timing-ease-in-out-sine {
732
- -webkit-transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
733
- -o-transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
734
- transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
735
- }
736
-
737
- .wpr-anim-timing-ease-in-out-expo {
738
- -webkit-transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
739
- -o-transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
740
- transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
741
- }
742
-
743
- .wpr-anim-timing-ease-in-out-circ {
744
- -webkit-transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
745
- -o-transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
746
- transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
747
- }
748
-
749
- .wpr-anim-timing-ease-in-out-back {
750
- -webkit-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
751
- -o-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
752
- transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
753
- }
754
-
755
-
756
- /* Image Effects */
757
-
758
- .wpr-slide.wpr-effect-dir-top:hover img {
759
- -webkit-transform: translateY(-100%);
760
- -ms-transform: translateY(-100%);
761
- transform: translateY(-100%);
762
- }
763
-
764
- .wpr-slide.wpr-effect-dir-bottom:hover img {
765
- -webkit-transform: translateY(100%);
766
- -ms-transform: translateY(100%);
767
- transform: translateY(100%);
768
- }
769
-
770
- .wpr-slide.wpr-effect-dir-right:hover img {
771
- -webkit-transform: translateX(100%);
772
- -ms-transform: translateX(100%);
773
- transform: translateX(100%);
774
- }
775
-
776
- .wpr-slide.wpr-effect-dir-left:hover img {
777
- -webkit-transform: translateX(-100%);
778
- -ms-transform: translateX(-100%);
779
- transform: translateX(-100%);
780
- }
781
-
782
- .wpr-zoom-in.wpr-effect-size-small:hover img {
783
- -webkit-transform: scale(1.1);
784
- -ms-transform: scale(1.1);
785
- transform: scale(1.1);
786
- }
787
-
788
- .wpr-zoom-in.wpr-effect-size-medium:hover img {
789
- -webkit-transform: scale(1.3);
790
- -ms-transform: scale(1.3);
791
- transform: scale(1.3);
792
- }
793
-
794
- .wpr-zoom-in.wpr-effect-size-large:hover img {
795
- -webkit-transform: scale(1.5);
796
- -ms-transform: scale(1.5);
797
- transform: scale(1.5);
798
- }
799
-
800
- .wpr-zoom-out.wpr-effect-size-small img {
801
- -webkit-transform: scale(1.1);
802
- -ms-transform: scale(1.1);
803
- transform: scale(1.1);
804
- }
805
-
806
- .wpr-zoom-out.wpr-effect-size-medium img {
807
- -webkit-transform: scale(1.3);
808
- -ms-transform: scale(1.3);
809
- transform: scale(1.3);
810
- }
811
-
812
- .wpr-zoom-out.wpr-effect-size-large img {
813
- -webkit-transform: scale(1.5);
814
- -ms-transform: scale(1.5);
815
- transform: scale(1.5);
816
- }
817
-
818
- .wpr-zoom-out.wpr-effect-size-small:hover img,
819
- .wpr-zoom-out.wpr-effect-size-medium:hover img,
820
- .wpr-zoom-out.wpr-effect-size-large:hover img {
821
- -webkit-transform: scale(1);
822
- -ms-transform: scale(1);
823
- transform: scale(1);
824
- }
825
-
826
- .wpr-grayscale-in.wpr-effect-size-small:hover img {
827
- -webkit-filter: grayscale(0.3);
828
- filter: grayscale(0.3);
829
- }
830
-
831
- .wpr-grayscale-in.wpr-effect-size-medium:hover img {
832
- -webkit-filter: grayscale(0.6);
833
- filter: grayscale(0.6);
834
- }
835
-
836
- .wpr-grayscale-in.wpr-effect-size-large:hover img {
837
- -webkit-filter: grayscale(1);
838
- filter: grayscale(1);
839
- }
840
-
841
- .wpr-grayscale-out.wpr-effect-size-small img {
842
- -webkit-filter: grayscale(0.3);
843
- filter: grayscale(0.3);
844
- }
845
-
846
- .wpr-grayscale-out.wpr-effect-size-medium img {
847
- -webkit-filter: grayscale(0.6);
848
- filter: grayscale(0.6);
849
- }
850
-
851
- .wpr-grayscale-out.wpr-effect-size-large img {
852
- -webkit-filter: grayscale(1);
853
- filter: grayscale(1);
854
- }
855
-
856
- .wpr-grayscale-out.wpr-effect-size-small:hover img,
857
- .wpr-grayscale-out.wpr-effect-size-medium:hover img,
858
- .wpr-grayscale-out.wpr-effect-size-large:hover img {
859
- -webkit-filter: grayscale(0);
860
- filter: grayscale(0);
861
- }
862
-
863
- .wpr-blur-in.wpr-effect-size-small:hover img {
864
- -webkit-filter: blur(1px);
865
- filter: blur(1px);
866
- }
867
-
868
- .wpr-blur-in.wpr-effect-size-medium:hover img {
869
- -webkit-filter: blur(3px);
870
- filter: blur(3px);
871
- }
872
-
873
- .wpr-blur-in.wpr-effect-size-large:hover img {
874
- -webkit-filter: blur(5px);
875
- filter: blur(5px);
876
- }
877
-
878
- .wpr-blur-out.wpr-effect-size-small img {
879
- -webkit-filter: blur(1px);
880
- filter: blur(1px);
881
- }
882
-
883
- .wpr-blur-out.wpr-effect-size-medium img {
884
- -webkit-filter: blur(3px);
885
- filter: blur(3px);
886
- }
887
-
888
- .wpr-blur-out.wpr-effect-size-large img {
889
- -webkit-filter: blur(5px);
890
- filter: blur(5px);
891
- }
892
-
893
- .wpr-blur-out.wpr-effect-size-small:hover img,
894
- .wpr-blur-out.wpr-effect-size-medium:hover img,
895
- .wpr-blur-out.wpr-effect-size-large:hover img {
896
- -webkit-filter: blur(0px);
897
- filter: blur(0px);
898
- }
899
-
900
- .wpr-slide.wpr-effect-dir-top:hover .wpr-accordion-background {
901
- -webkit-transform: translateY(-100%);
902
- -ms-transform: translateY(-100%);
903
- transform: translateY(-100%);
904
- }
905
-
906
- .wpr-slide.wpr-effect-dir-bottom:hover .wpr-accordion-background {
907
- -webkit-transform: translateY(100%);
908
- -ms-transform: translateY(100%);
909
- transform: translateY(100%);
910
- }
911
-
912
- .wpr-slide.wpr-effect-dir-right:hover .wpr-accordion-background {
913
- -webkit-transform: translateX(100%);
914
- -ms-transform: translateX(100%);
915
- transform: translateX(100%);
916
- }
917
-
918
- .wpr-slide.wpr-effect-dir-left:hover .wpr-accordion-background {
919
- -webkit-transform: translateX(-100%);
920
- -ms-transform: translateX(-100%);
921
- transform: translateX(-100%);
922
- }
923
-
924
- .wpr-zoom-in.wpr-effect-size-small:hover .wpr-accordion-background {
925
- -webkit-transform: scale(1.1);
926
- -ms-transform: scale(1.1);
927
- transform: scale(1.1);
928
- }
929
-
930
- .wpr-zoom-in.wpr-effect-size-medium:hover .wpr-accordion-background {
931
- -webkit-transform: scale(1.3);
932
- -ms-transform: scale(1.3);
933
- transform: scale(1.3);
934
- }
935
-
936
- .wpr-zoom-in.wpr-effect-size-large:hover .wpr-accordion-background {
937
- -webkit-transform: scale(1.5);
938
- -ms-transform: scale(1.5);
939
- transform: scale(1.5);
940
- }
941
-
942
- .wpr-zoom-out.wpr-effect-size-small .wpr-accordion-background {
943
- -webkit-transform: scale(1.1);
944
- -ms-transform: scale(1.1);
945
- transform: scale(1.1);
946
- }
947
-
948
- .wpr-zoom-out.wpr-effect-size-medium .wpr-accordion-background {
949
- -webkit-transform: scale(1.3);
950
- -ms-transform: scale(1.3);
951
- transform: scale(1.3);
952
- }
953
-
954
- .wpr-zoom-out.wpr-effect-size-large .wpr-accordion-background {
955
- -webkit-transform: scale(1.5);
956
- -ms-transform: scale(1.5);
957
- transform: scale(1.5);
958
- }
959
-
960
- .wpr-zoom-out.wpr-effect-size-small:hover .wpr-accordion-background,
961
- .wpr-zoom-out.wpr-effect-size-medium:hover .wpr-accordion-background,
962
- .wpr-zoom-out.wpr-effect-size-large:hover .wpr-accordion-background {
963
- -webkit-transform: scale(1);
964
- -ms-transform: scale(1);
965
- transform: scale(1);
966
- }
967
-
968
- .wpr-grayscale-in.wpr-effect-size-small:hover .wpr-accordion-background {
969
- -webkit-filter: grayscale(0.3);
970
- filter: grayscale(0.3);
971
- }
972
-
973
- .wpr-grayscale-in.wpr-effect-size-medium:hover .wpr-accordion-background {
974
- -webkit-filter: grayscale(0.6);
975
- filter: grayscale(0.6);
976
- }
977
-
978
- .wpr-grayscale-in.wpr-effect-size-large:hover .wpr-accordion-background {
979
- -webkit-filter: grayscale(1);
980
- filter: grayscale(1);
981
- }
982
-
983
- .wpr-grayscale-out.wpr-effect-size-small .wpr-accordion-background {
984
- -webkit-filter: grayscale(0.3);
985
- filter: grayscale(0.3);
986
- }
987
-
988
- .wpr-grayscale-out.wpr-effect-size-medium .wpr-accordion-background {
989
- -webkit-filter: grayscale(0.6);
990
- filter: grayscale(0.6);
991
- }
992
-
993
- .wpr-grayscale-out.wpr-effect-size-large .wpr-accordion-background {
994
- -webkit-filter: grayscale(1);
995
- filter: grayscale(1);
996
- }
997
-
998
- .wpr-grayscale-out.wpr-effect-size-small:hover .wpr-accordion-background,
999
- .wpr-grayscale-out.wpr-effect-size-medium:hover .wpr-accordion-background,
1000
- .wpr-grayscale-out.wpr-effect-size-large:hover .wpr-accordion-background {
1001
- -webkit-filter: grayscale(0);
1002
- filter: grayscale(0);
1003
- }
1004
-
1005
- .wpr-blur-in.wpr-effect-size-small:hover .wpr-accordion-background {
1006
- -webkit-filter: blur(1px);
1007
- filter: blur(1px);
1008
- }
1009
-
1010
- .wpr-blur-in.wpr-effect-size-medium:hover .wpr-accordion-background {
1011
- -webkit-filter: blur(3px);
1012
- filter: blur(3px);
1013
- }
1014
-
1015
- .wpr-blur-in.wpr-effect-size-large:hover .wpr-accordion-background {
1016
- -webkit-filter: blur(5px);
1017
- filter: blur(5px);
1018
- }
1019
-
1020
- .wpr-blur-out.wpr-effect-size-small .wpr-accordion-background {
1021
- -webkit-filter: blur(1px);
1022
- filter: blur(1px);
1023
- }
1024
-
1025
- .wpr-blur-out.wpr-effect-size-medium .wpr-accordion-background {
1026
- -webkit-filter: blur(3px);
1027
- filter: blur(3px);
1028
- }
1029
-
1030
- .wpr-blur-out.wpr-effect-size-large .wpr-accordion-background {
1031
- -webkit-filter: blur(5px);
1032
- filter: blur(5px);
1033
- }
1034
-
1035
- .wpr-blur-out.wpr-effect-size-small:hover .wpr-accordion-background,
1036
- .wpr-blur-out.wpr-effect-size-medium:hover .wpr-accordion-background,
1037
- .wpr-blur-out.wpr-effect-size-large:hover .wpr-accordion-background {
1038
- -webkit-filter: blur(0px);
1039
- filter: blur(0px);
1040
- }
1041
-
1042
-
1043
- /* Background Animation */
1044
-
1045
- .wpr-animation-wrap-active .wpr-bg-anim-zoom-in,
1046
- .wpr-animation-wrap:hover .wpr-bg-anim-zoom-in {
1047
- -webkit-transform: scale(1.2);
1048
- -ms-transform: scale(1.2);
1049
- transform: scale(1.2);
1050
- }
1051
-
1052
- .wpr-bg-anim-zoom-out {
1053
- -webkit-transform: scale(1.2);
1054
- -ms-transform: scale(1.2);
1055
- transform: scale(1.2);
1056
- }
1057
-
1058
- .wpr-animation-wrap-active .wpr-bg-anim-zoom-out,
1059
- .wpr-animation-wrap:hover .wpr-bg-anim-zoom-out {
1060
- -webkit-transform: scale(1);
1061
- -ms-transform: scale(1);
1062
- transform: scale(1);
1063
- }
1064
-
1065
- .wpr-bg-anim-move-left {
1066
- -webkit-transform: scale(1.2) translateX(8%);
1067
- -ms-transform: scale(1.2) translateX(8%);
1068
- transform: scale(1.2) translateX(8%);
1069
- }
1070
-
1071
- .wpr-animation-wrap-active .wpr-bg-anim-move-left,
1072
- .wpr-animation-wrap:hover .wpr-bg-anim-move-left {
1073
- -webkit-transform: scale(1.2) translateX(-8%);
1074
- -ms-transform: scale(1.2) translateX(-8%);
1075
- transform: scale(1.2) translateX(-8%);
1076
- }
1077
-
1078
- .wpr-bg-anim-move-right {
1079
- -webkit-transform: scale(1.2) translateX(-8%);
1080
- -ms-transform: scale(1.2) translateX(-8%);
1081
- transform: scale(1.2) translateX(-8%);
1082
- }
1083
-
1084
- .wpr-animation-wrap-active .wpr-bg-anim-move-right,
1085
- .wpr-animation-wrap:hover .wpr-bg-anim-move-right {
1086
- -webkit-transform: scale(1.2) translateX(8%);
1087
- -ms-transform: scale(1.2) translateX(8%);
1088
- transform: scale(1.2) translateX(8%);
1089
- }
1090
-
1091
- .wpr-bg-anim-move-up {
1092
- -webkit-transform: scale(1.2) translateY(8%);
1093
- -ms-transform: scale(1.2) translateY(8%);
1094
- transform: scale(1.2) translateY(8%);
1095
- }
1096
-
1097
- .wpr-animation-wrap-active .wpr-bg-anim-move-up,
1098
- .wpr-animation-wrap:hover .wpr-bg-anim-move-up {
1099
- -webkit-transform: scale(1.2) translateY(-8%);
1100
- -ms-transform: scale(1.2) translateY(-8%);
1101
- transform: scale(1.2) translateY(-8%);
1102
- }
1103
-
1104
- .wpr-animation-wrap-active .wpr-bg-anim-move-down,
1105
- .wpr-animation-wrap:hover .wpr-bg-anim-move-down {
1106
- -webkit-transform: scale(1.2) translateY(-8%);
1107
- -ms-transform: scale(1.2) translateY(-8%);
1108
- transform: scale(1.2) translateY(-8%);
1109
- }
1110
-
1111
- .wpr-animation-wrap-active .wpr-bg-anim-move-down,
1112
- .wpr-animation-wrap:hover .wpr-bg-anim-move-down {
1113
- -webkit-transform: scale(1.2) translateY(8%);
1114
- -ms-transform: scale(1.2) translateY(8%);
1115
- transform: scale(1.2) translateY(8%);
1116
- }
1117
-
1118
-
1119
- /* Border Animations*/
1120
-
1121
- /* Layla */
1122
- .wpr-border-anim-layla::before,
1123
- .wpr-border-anim-layla::after {
1124
- position: absolute;
1125
- content: '';
1126
- opacity: 0;
1127
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1128
- transition: opacity 0.35s, -webkit-transform 0.35s;
1129
- -o-transition: opacity 0.35s, transform 0.35s;
1130
- transition: opacity 0.35s, transform 0.35s;
1131
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1132
- }
1133
-
1134
- .wpr-border-anim-layla::before {
1135
- -webkit-transform: scale(0,1);
1136
- -ms-transform: scale(0,1);
1137
- transform: scale(0,1);
1138
- -webkit-transform-origin: 0 0;
1139
- -ms-transform-origin: 0 0;
1140
- transform-origin: 0 0;
1141
- }
1142
-
1143
- .wpr-border-anim-layla::after {
1144
- -webkit-transform: scale(1,0);
1145
- -ms-transform: scale(1,0);
1146
- transform: scale(1,0);
1147
- -webkit-transform-origin: 100% 0;
1148
- -ms-transform-origin: 100% 0;
1149
- transform-origin: 100% 0;
1150
- }
1151
-
1152
- .wpr-animation-wrap-active .wpr-border-anim-layla::before,
1153
- .wpr-animation-wrap-active .wpr-border-anim-layla::after,
1154
- .wpr-animation-wrap:hover .wpr-border-anim-layla::before,
1155
- .wpr-animation-wrap:hover .wpr-border-anim-layla::after {
1156
- opacity: 1;
1157
- -webkit-transform: scale(1);
1158
- -ms-transform: scale(1);
1159
- transform: scale(1);
1160
- }
1161
-
1162
- .wpr-animation-wrap-active .wpr-border-anim-layla::after,
1163
- .wpr-animation-wrap:hover .wpr-border-anim-layla::after {
1164
- -webkit-transition-delay: 0.15s;
1165
- -o-transition-delay: 0.15s;
1166
- transition-delay: 0.15s;
1167
- }
1168
-
1169
- /* Oscar */
1170
- .wpr-border-anim-oscar::before {
1171
- position: absolute;
1172
- content: '';
1173
- opacity: 0;
1174
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1175
- transition: opacity 0.35s, -webkit-transform 0.35s;
1176
- -o-transition: opacity 0.35s, transform 0.35s;
1177
- transition: opacity 0.35s, transform 0.35s;
1178
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1179
- -webkit-transform: scale(0.9);
1180
- -ms-transform: scale(0.9);
1181
- transform: scale(0.9);
1182
- }
1183
-
1184
- .wpr-animation-wrap-active .wpr-border-anim-oscar::before,
1185
- .wpr-animation-wrap:hover .wpr-border-anim-oscar::before {
1186
- opacity: 1;
1187
- -webkit-transform: scale(1);
1188
- -ms-transform: scale(1);
1189
- transform: scale(1);
1190
- }
1191
-
1192
- /* Bubba */
1193
- .wpr-border-anim-bubba::before,
1194
- .wpr-border-anim-bubba::after {
1195
- position: absolute;
1196
- content: '';
1197
- opacity: 0;
1198
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1199
- transition: opacity 0.35s, -webkit-transform 0.35s;
1200
- -o-transition: opacity 0.35s, transform 0.35s;
1201
- transition: opacity 0.35s, transform 0.35s;
1202
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1203
- }
1204
-
1205
- .wpr-border-anim-bubba::before {
1206
- -webkit-transform: scale(0,1);
1207
- -ms-transform: scale(0,1);
1208
- transform: scale(0,1);
1209
- }
1210
-
1211
- .wpr-border-anim-bubba::after {
1212
- -webkit-transform: scale(1,0);
1213
- -ms-transform: scale(1,0);
1214
- transform: scale(1,0);
1215
- }
1216
-
1217
- .wpr-animation-wrap-active .wpr-border-anim-bubba::before,
1218
- .wpr-animation-wrap-active .wpr-border-anim-bubba::after,
1219
- .wpr-animation-wrap:hover .wpr-border-anim-bubba::before,
1220
- .wpr-animation-wrap:hover .wpr-border-anim-bubba::after {
1221
- opacity: 1;
1222
- -webkit-transform: scale(1);
1223
- -ms-transform: scale(1);
1224
- transform: scale(1);
1225
- }
1226
-
1227
- /* Romeo */
1228
- .wpr-border-anim-romeo::before,
1229
- .wpr-border-anim-romeo::after {
1230
- position: absolute;
1231
- top: 50%;
1232
- left: 50%;
1233
- width: 80%;
1234
- content: '';
1235
- opacity: 0;
1236
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1237
- transition: opacity 0.35s, -webkit-transform 0.35s;
1238
- -o-transition: opacity 0.35s, transform 0.35s;
1239
- transition: opacity 0.35s, transform 0.35s;
1240
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1241
- -webkit-transform: translate3d(-50%,-50%,0);
1242
- transform: translate3d(-50%,-50%,0);
1243
- }
1244
-
1245
- .wpr-animation-wrap-active .wpr-border-anim-romeo::before,
1246
- .wpr-animation-wrap:hover .wpr-border-anim-romeo::before {
1247
- opacity: 1;
1248
- -webkit-transform: translate3d(-50%,-50%,0) rotate(45deg);
1249
- transform: translate3d(-50%,-50%,0) rotate(45deg);
1250
- }
1251
-
1252
- .wpr-animation-wrap-active .wpr-border-anim-romeo::after,
1253
- .wpr-animation-wrap:hover .wpr-border-anim-romeo::after {
1254
- opacity: 1;
1255
- -webkit-transform: translate3d(-50%,-50%,0) rotate(-45deg);
1256
- transform: translate3d(-50%,-50%,0) rotate(-45deg);
1257
- }
1258
-
1259
- /* Chicho */
1260
- .wpr-border-anim-chicho::before {
1261
- position: absolute;
1262
- content: '';
1263
- -webkit-transform: scale(1.1);
1264
- -ms-transform: scale(1.1);
1265
- transform: scale(1.1);
1266
- opacity: 0;
1267
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1268
- transition: opacity 0.35s, -webkit-transform 0.35s;
1269
- -o-transition: opacity 0.35s, transform 0.35s;
1270
- transition: opacity 0.35s, transform 0.35s;
1271
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1272
- }
1273
-
1274
- .wpr-animation-wrap-active .wpr-border-anim-chicho::before,
1275
- .wpr-animation-wrap:hover .wpr-border-anim-chicho::before {
1276
- opacity: 1;
1277
- -webkit-transform: scale(1);
1278
- -ms-transform: scale(1);
1279
- transform: scale(1);
1280
- }
1281
-
1282
- /* Apollo */
1283
- .wpr-border-anim-apollo::before {
1284
- position: absolute;
1285
- top: 0;
1286
- left: 0;
1287
- width: 100%;
1288
- height: 100%;
1289
- content: '';
1290
- -webkit-transition: -webkit-transform 0.6s;
1291
- transition: -webkit-transform 0.6s;
1292
- -o-transition: transform 0.6s;
1293
- transition: transform 0.6s;
1294
- transition: transform 0.6s, -webkit-transform 0.6s;
1295
- -webkit-transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,-100%,0);
1296
- transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,-100%,0);
1297
- }
1298
-
1299
- .wpr-animation-wrap-active .wpr-border-anim-apollo::before,
1300
- .wpr-animation-wrap:hover .wpr-border-anim-apollo::before {
1301
- -webkit-transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,100%,0);
1302
- transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,100%,0);
1303
- }
1304
-
1305
- /* Jazz */
1306
- .wpr-border-anim-jazz::after {
1307
- -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1308
- transition: opacity 0.35s, -webkit-transform 0.35s;
1309
- -o-transition: opacity 0.35s, transform 0.35s;
1310
- transition: opacity 0.35s, transform 0.35s;
1311
- transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1312
- position: absolute;
1313
- top: 0;
1314
- left: 0;
1315
- width: 100%;
1316
- height: 100%;
1317
- content: '';
1318
- opacity: 0;
1319
- -webkit-transform: rotate3d(0,0,1,45deg) scale3d(1,0,1);
1320
- transform: rotate3d(0,0,1,45deg) scale3d(1,0,1);
1321
- -webkit-transform-origin: 50% 50%;
1322
- -ms-transform-origin: 50% 50%;
1323
- transform-origin: 50% 50%;
1324
- }
1325
-
1326
- .wpr-animation-wrap-active .wpr-border-anim-jazz::after,
1327
- .wpr-animation-wrap:hover .wpr-border-anim-jazz::after {
1328
- opacity: 1;
1329
- -webkit-transform: rotate3d(0,0,1,45deg) scale3d(1,1,1);
1330
- transform: rotate3d(0,0,1,45deg) scale3d(1,1,1);
1331
  }
1
+ /*!
2
+ * WPR Animations
3
+ * Version: 1.0
4
+ * Author: WP Royal
5
+ * Author URL: https://royal-elementor-addons.com/
6
+
7
+ * WPR Animations Copyright WP Royal 2020.
8
+ */
9
+
10
+ .wpr-anim-transparency {
11
+ opacity: 0;
12
+ }
13
+
14
+ .wpr-element-fade-in,
15
+ .wpr-overlay-fade-in {
16
+ opacity: 0;
17
+ }
18
+
19
+ .wpr-animation-wrap-active .wpr-anim-size-small.wpr-element-fade-in,
20
+ .wpr-animation-wrap-active .wpr-anim-size-small.wpr-overlay-fade-in,
21
+ .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-element-fade-in,
22
+ .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-overlay-fade-in,
23
+ .wpr-animation-enter > .wpr-anim-size-small.wpr-overlay-fade-in {
24
+ opacity: 0.4;
25
+ }
26
+
27
+ .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-element-fade-in,
28
+ .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-overlay-fade-in,
29
+ .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-element-fade-in,
30
+ .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-overlay-fade-in,
31
+ .wpr-animation-enter > .wpr-anim-size-medium.wpr-overlay-fade-in {
32
+ opacity: 0.75;
33
+ }
34
+
35
+ .wpr-animation-wrap-active .wpr-anim-size-large.wpr-element-fade-in,
36
+ .wpr-animation-wrap-active .wpr-anim-size-large.wpr-overlay-fade-in,
37
+ .wpr-animation-wrap:hover .wpr-anim-size-large.wpr-element-fade-in,
38
+ .wpr-animation-wrap:hover .wpr-anim-size-large.wpr-overlay-fade-in,
39
+ .wpr-animation-enter > .wpr-anim-size-large.wpr-overlay-fade-in {
40
+ opacity: 1;
41
+ }
42
+
43
+ .wpr-element-fade-out,
44
+ .wpr-overlay-fade-out {
45
+ opacity: 1;
46
+ }
47
+
48
+ .wpr-animation-wrap-active .wpr-anim-size-small.wpr-element-fade-out,
49
+ .wpr-animation-wrap-active .wpr-anim-size-small.wpr-overlay-fade-out,
50
+ .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-element-fade-out,
51
+ .wpr-animation-wrap:hover .wpr-anim-size-small.wpr-overlay-fade-out,
52
+ .wpr-animation-enter > .wpr-anim-size-small.wpr-overlay-fade-out {
53
+ opacity: 0.75;
54
+ }
55
+
56
+ .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-element-fade-out,
57
+ .wpr-animation-wrap-active .wpr-anim-size-medium.wpr-overlay-fade-out,
58
+ .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-element-fade-out,
59
+ .wpr-animation-wrap:hover .wpr-anim-size-medium.wpr-overlay-fade-out,
60
+ .wpr-animation-enter > .wpr-anim-size-medium.wpr-overlay-fade-out {
61
+ opacity: 0.4;
62
+ }
63
+
64
+ .wpr-animation-wrap-active .wpr-anim-size-large.wpr-element-fade-out,
65
+ .wpr-animation-wrap-active .wpr-anim-size-large.wpr-overlay-fade-out,
66
+ .wpr-animation-wrap-hover .wpr-anim-size-large.wpr-element-fade-out,
67
+ .wpr-animation-wrap-hover .wpr-anim-size-large.wpr-overlay-fade-out,
68
+ .wpr-animation-enter > .wpr-anim-size-large.wpr-overlay-fade-out {
69
+ opacity: 0;
70
+ }
71
+
72
+ .wpr-anim-size-small.wpr-element-slide-top {
73
+ -webkit-transform: translateY(-30%);
74
+ -ms-transform: translateY(-30%);
75
+ transform: translateY(-30%);
76
+ }
77
+
78
+ .wpr-anim-size-medium.wpr-element-slide-top {
79
+ -webkit-transform: translateY(-100%);
80
+ -ms-transform: translateY(-100%);
81
+ transform: translateY(-100%);
82
+ }
83
+
84
+ .wpr-anim-size-large.wpr-element-slide-top {
85
+ -webkit-transform: translateY(-200%);
86
+ -ms-transform: translateY(-200%);
87
+ transform: translateY(-200%);
88
+ }
89
+
90
+ .wpr-anim-size-small.wpr-overlay-slide-top {
91
+ -webkit-transform: translateY(-50%);
92
+ -ms-transform: translateY(-50%);
93
+ transform: translateY(-50%);
94
+ }
95
+
96
+ .wpr-anim-size-medium.wpr-overlay-slide-top {
97
+ -webkit-transform: translateY(-70%);
98
+ -ms-transform: translateY(-70%);
99
+ transform: translateY(-70%);
100
+ }
101
+
102
+ .wpr-anim-size-large.wpr-overlay-slide-top {
103
+ -webkit-transform: translateY(-100%);
104
+ -ms-transform: translateY(-100%);
105
+ transform: translateY(-100%);
106
+ }
107
+
108
+ .wpr-animation-wrap-active .wpr-element-slide-top,
109
+ .wpr-animation-wrap-active .wpr-overlay-slide-top,
110
+ .wpr-animation-wrap:hover .wpr-element-slide-top,
111
+ .wpr-animation-wrap:hover .wpr-overlay-slide-top,
112
+ .wpr-animation-enter > .wpr-overlay-slide-top {
113
+ opacity: 1;
114
+ -webkit-transform: translateY(0);
115
+ -ms-transform: translateY(0);
116
+ transform: translateY(0);
117
+ }
118
+
119
+ .wpr-anim-size-small.wpr-element-slide-bottom {
120
+ -webkit-transform: translateY(30%);
121
+ -ms-transform: translateY(30%);
122
+ transform: translateY(30%);
123
+ }
124
+
125
+ .wpr-anim-size-medium.wpr-element-slide-bottom {
126
+ -webkit-transform: translateY(100%);
127
+ -ms-transform: translateY(100%);
128
+ transform: translateY(100%);
129
+ }
130
+
131
+ .wpr-anim-size-large.wpr-element-slide-bottom {
132
+ -webkit-transform: translateY(200%);
133
+ -ms-transform: translateY(200%);
134
+ transform: translateY(200%);
135
+ }
136
+
137
+ .wpr-anim-size-small.wpr-overlay-slide-bottom {
138
+ -webkit-transform: translateY(50%);
139
+ -ms-transform: translateY(50%);
140
+ transform: translateY(50%);
141
+ }
142
+
143
+ .wpr-anim-size-medium.wpr-overlay-slide-bottom {
144
+ -webkit-transform: translateY(70%);
145
+ -ms-transform: translateY(70%);
146
+ transform: translateY(70%);
147
+ }
148
+
149
+ .wpr-anim-size-large.wpr-overlay-slide-bottom {
150
+ -webkit-transform: translateY(100%);
151
+ -ms-transform: translateY(100%);
152
+ transform: translateY(100%);
153
+ }
154
+
155
+ .wpr-animation-wrap-active .wpr-element-slide-bottom,
156
+ .wpr-animation-wrap-active .wpr-overlay-slide-bottom,
157
+ .wpr-animation-wrap:hover .wpr-element-slide-bottom,
158
+ .wpr-animation-wrap:hover .wpr-overlay-slide-bottom,
159
+ .wpr-animation-enter > .wpr-overlay-slide-bottom {
160
+ opacity: 1;
161
+ -webkit-transform: translateY(0);
162
+ -ms-transform: translateY(0);
163
+ transform: translateY(0);
164
+ }
165
+
166
+ .wpr-anim-size-small.wpr-element-slide-right {
167
+ -webkit-transform: translateX(30%);
168
+ -ms-transform: translateX(30%);
169
+ transform: translateX(30%);
170
+ }
171
+
172
+ .wpr-anim-size-medium.wpr-element-slide-right {
173
+ -webkit-transform: translateX(150%);
174
+ -ms-transform: translateX(150%);
175
+ transform: translateX(150%);
176
+ }
177
+
178
+ .wpr-anim-size-large.wpr-element-slide-right {
179
+ -webkit-transform: translateX(300%);
180
+ -ms-transform: translateX(300%);
181
+ transform: translateX(300%);
182
+ }
183
+
184
+ .wpr-anim-size-small.wpr-overlay-slide-right {
185
+ -webkit-transform: translateX(50%);
186
+ -ms-transform: translateX(50%);
187
+ transform: translateX(50%);
188
+ }
189
+
190
+ .wpr-anim-size-medium.wpr-overlay-slide-right {
191
+ -webkit-transform: translateX(70%);
192
+ -ms-transform: translateX(70%);
193
+ transform: translateX(70%);
194
+ }
195
+
196
+ .wpr-anim-size-large.wpr-overlay-slide-right {
197
+ -webkit-transform: translateX(100%);
198
+ -ms-transform: translateX(100%);
199
+ transform: translateX(100%);
200
+ }
201
+
202
+ .wpr-animation-wrap-active .wpr-element-slide-right,
203
+ .wpr-animation-wrap-active .wpr-overlay-slide-right,
204
+ .wpr-animation-wrap:hover .wpr-element-slide-right,
205
+ .wpr-animation-wrap:hover .wpr-overlay-slide-right,
206
+ .wpr-animation-enter > .wpr-overlay-slide-right {
207
+ opacity: 1;
208
+ -webkit-transform: translateX(0);
209
+ -ms-transform: translateX(0);
210
+ transform: translateX(0);
211
+ }
212
+
213
+ .wpr-anim-size-small.wpr-element-slide-left {
214
+ -webkit-transform: translateX(-30%);
215
+ -ms-transform: translateX(-30%);
216
+ transform: translateX(-30%);
217
+ }
218
+
219
+ .wpr-anim-size-medium.wpr-element-slide-left {
220
+ -webkit-transform: translateX(-150%);
221
+ -ms-transform: translateX(-150%);
222
+ transform: translateX(-150%);
223
+ }
224
+
225
+ .wpr-anim-size-large.wpr-element-slide-left {
226
+ -webkit-transform: translateX(-300%);
227
+ -ms-transform: translateX(-300%);
228
+ transform: translateX(-300%);
229
+ }
230
+
231
+ .wpr-anim-size-small.wpr-overlay-slide-left {
232
+ -webkit-transform: translateX(-50%);
233
+ -ms-transform: translateX(-50%);
234
+ transform: translateX(-50%);
235
+ }
236
+
237
+ .wpr-anim-size-medium.wpr-overlay-slide-left {
238
+ -webkit-transform: translateX(-70%);
239
+ -ms-transform: translateX(-70%);
240
+ transform: translateX(-70%);
241
+ }
242
+
243
+ .wpr-anim-size-large.wpr-overlay-slide-left {
244
+ -webkit-transform: translateX(-100%);
245
+ -ms-transform: translateX(-100%);
246
+ transform: translateX(-100%);
247
+ }
248
+
249
+ .wpr-animation-wrap-active .wpr-element-slide-left,
250
+ .wpr-animation-wrap-active .wpr-overlay-slide-left,
251
+ .wpr-animation-wrap-hover .wpr-element-slide-left,
252
+ .wpr-animation-wrap-hover .wpr-overlay-slide-left,
253
+ .wpr-animation-enter > .wpr-overlay-slide-left {
254
+ opacity: 1;
255
+ -webkit-transform: translateX(0);
256
+ -ms-transform: translateX(0);
257
+ transform: translateX(0);
258
+ }
259
+
260
+ .wpr-element-slide-x-right,
261
+ .wpr-element-slide-x-left {
262
+ position: relative;
263
+ overflow: hidden;
264
+ }
265
+
266
+ .wpr-element-slide-x-right .inner-block,
267
+ .wpr-element-slide-x-left .inner-block {
268
+ position: relative;
269
+ -webkit-transition-duration: inherit;
270
+ -o-transition-duration: inherit;
271
+ transition-duration: inherit;
272
+ }
273
+
274
+ .wpr-element-slide-x-right .inner-block {
275
+ right: -100%;
276
+ }
277
+
278
+ .wpr-animation-wrap-active .wpr-element-slide-x-right .inner-block,
279
+ .wpr-animation-wrap:hover .wpr-element-slide-x-right .inner-block {
280
+ right: 0;
281
+ }
282
+
283
+ .wpr-element-slide-x-left .inner-block {
284
+ left: -100%;
285
+ }
286
+
287
+ .wpr-animation-wrap-active .wpr-element-slide-x-left .inner-block,
288
+ .wpr-animation-wrap:hover .wpr-element-slide-x-left .inner-block {
289
+ left: 0;
290
+ }
291
+
292
+ .wpr-element-skew-top,
293
+ .wpr-overlay-skew-top {
294
+ -webkit-transform-origin: center top 0;
295
+ -ms-transform-origin: center top 0;
296
+ transform-origin: center top 0;
297
+ }
298
+
299
+ .wpr-overlay-skew-top {
300
+ top: 0 !important;
301
+ }
302
+
303
+ .wpr-anim-size-small.wpr-element-skew-top,
304
+ .wpr-anim-size-small.wpr-overlay-skew-top {
305
+ -webkit-transform: perspective(600px) rotateX(-30deg);
306
+ transform: perspective(600px) rotateX(-30deg);
307
+ }
308
+
309
+ .wpr-anim-size-medium.wpr-element-skew-top,
310
+ .wpr-anim-size-medium.wpr-overlay-skew-top {
311
+ -webkit-transform: perspective(600px) rotateX(-50deg);
312
+ transform: perspective(600px) rotateX(-50deg);
313
+ }
314
+
315
+ .wpr-anim-size-large.wpr-element-skew-top,
316
+ .wpr-anim-size-large.wpr-overlay-skew-top {
317
+ -webkit-transform: perspective(600px) rotateX(-90deg);
318
+ transform: perspective(600px) rotateX(-90deg);
319
+ }
320
+
321
+ .wpr-animation-wrap-active .wpr-element-skew-top,
322
+ .wpr-animation-wrap-active .wpr-overlay-skew-top,
323
+ .wpr-animation-wrap:hover .wpr-element-skew-top,
324
+ .wpr-animation-wrap:hover .wpr-overlay-skew-top,
325
+ .wpr-animation-enter > .wpr-overlay-skew-top {
326
+ opacity: 1;
327
+ -webkit-transform: perspective(600px) rotateX(0deg);
328
+ transform: perspective(600px) rotateX(0deg);
329
+ }
330
+
331
+ .wpr-element-skew-bottom,
332
+ .wpr-overlay-skew-bottom {
333
+ -webkit-transform-origin: center bottom 0;
334
+ -ms-transform-origin: center bottom 0;
335
+ transform-origin: center bottom 0;
336
+ }
337
+
338
+ .wpr-overlay-skew-bottom {
339
+ top: auto !important;
340
+ bottom: 0 !important;
341
+ }
342
+
343
+ .wpr-anim-size-small.wpr-element-skew-bottom,
344
+ .wpr-anim-size-small.wpr-overlay-skew-bottom {
345
+ -webkit-transform: perspective(600px) rotateX(30deg);
346
+ transform: perspective(600px) rotateX(30deg);
347
+ }
348
+
349
+ .wpr-anim-size-medium.wpr-element-skew-bottom,
350
+ .wpr-anim-size-medium.wpr-overlay-skew-bottom {
351
+ -webkit-transform: perspective(600px) rotateX(50deg);
352
+ transform: perspective(600px) rotateX(50deg);
353
+ }
354
+
355
+ .wpr-anim-size-large.wpr-element-skew-bottom,
356
+ .wpr-anim-size-large.wpr-overlay-skew-bottom {
357
+ -webkit-transform: perspective(600px) rotateX(90deg);
358
+ transform: perspective(600px) rotateX(90deg);
359
+ }
360
+
361
+ .wpr-animation-wrap-active .wpr-element-skew-bottom,
362
+ .wpr-animation-wrap-active .wpr-overlay-skew-bottom,
363
+ .wpr-animation-wrap:hover .wpr-element-skew-bottom,
364
+ .wpr-animation-wrap:hover .wpr-overlay-skew-bottom,
365
+ .wpr-animation-enter > .wpr-overlay-skew-bottom {
366
+ opacity: 1;
367
+ -webkit-transform: perspective(600px) rotateX(0deg);
368
+ transform: perspective(600px) rotateX(0deg);
369
+ }
370
+
371
+ .wpr-element-skew-right,
372
+ .wpr-overlay-skew-right {
373
+ -webkit-transform-origin: center right 0;
374
+ -ms-transform-origin: center right 0;
375
+ transform-origin: center right 0;
376
+ }
377
+
378
+ .wpr-overlay-skew-right {
379
+ left: auto !important;
380
+ right: 0 !important;
381
+ }
382
+
383
+ .wpr-anim-size-small.wpr-element-skew-right,
384
+ .wpr-anim-size-small.wpr-overlay-skew-right {
385
+ -webkit-transform: perspective(600px) rotateY(-30deg);
386
+ transform: perspective(600px) rotateY(-30deg);
387
+ }
388
+
389
+ .wpr-anim-size-medium.wpr-element-skew-right,
390
+ .wpr-anim-size-medium.wpr-overlay-skew-right {
391
+ -webkit-transform: perspective(600px) rotateY(-50deg);
392
+ transform: perspective(600px) rotateY(-50deg);
393
+ }
394
+
395
+ .wpr-anim-size-large.wpr-element-skew-right,
396
+ .wpr-anim-size-large.wpr-overlay-skew-right {
397
+ -webkit-transform: perspective(600px) rotateY(-90deg);
398
+ transform: perspective(600px) rotateY(-90deg);
399
+ }
400
+
401
+ .wpr-animation-wrap-active .wpr-element-skew-right,
402
+ .wpr-animation-wrap-active .wpr-overlay-skew-right,
403
+ .wpr-animation-wrap:hover .wpr-element-skew-right,
404
+ .wpr-animation-wrap:hover .wpr-overlay-skew-right,
405
+ .wpr-animation-enter > .wpr-overlay-skew-right {
406
+ opacity: 1;
407
+ -webkit-transform: perspective(600px) rotateY(0deg);
408
+ transform: perspective(600px) rotateY(0deg);
409
+ }
410
+
411
+ .wpr-element-skew-left,
412
+ .wpr-overlay-skew-left {
413
+ -webkit-transform-origin: center left 0;
414
+ -ms-transform-origin: center left 0;
415
+ transform-origin: center left 0;
416
+ }
417
+
418
+ .wpr-overlay-skew-left {
419
+ left: 0 !important;
420
+ }
421
+
422
+ .wpr-anim-size-small.wpr-element-skew-left,
423
+ .wpr-anim-size-small.wpr-overlay-skew-left {
424
+ -webkit-transform: perspective(600px) rotateY(30deg);
425
+ transform: perspective(600px) rotateY(30deg);
426
+ }
427
+
428
+ .wpr-anim-size-medium.wpr-element-skew-left,
429
+ .wpr-anim-size-medium.wpr-overlay-skew-left {
430
+ -webkit-transform: perspective(600px) rotateY(50deg);
431
+ transform: perspective(600px) rotateY(50deg);
432
+ }
433
+
434
+ .wpr-anim-size-large.wpr-element-skew-left,
435
+ .wpr-anim-size-large.wpr-overlay-skew-left {
436
+ -webkit-transform: perspective(600px) rotateY(90deg);
437
+ transform: perspective(600px) rotateY(90deg);
438
+ }
439
+
440
+ .wpr-animation-wrap-active .wpr-element-skew-left,
441
+ .wpr-animation-wrap-active .wpr-overlay-skew-left,
442
+ .wpr-animation-wrap:hover .wpr-element-skew-left,
443
+ .wpr-animation-wrap:hover .wpr-overlay-skew-left,
444
+ .wpr-animation-enter > .wpr-overlay-skew-left {
445
+ opacity: 1;
446
+ -webkit-transform: perspective(600px) rotateY(0deg);
447
+ transform: perspective(600px) rotateY(0deg);
448
+ }
449
+
450
+ .wpr-anim-size-small.wpr-element-scale-up,
451
+ .wpr-anim-size-small.wpr-overlay-scale-up {
452
+ -webkit-transform: scale(0.9);
453
+ -ms-transform: scale(0.9);
454
+ transform: scale(0.9);
455
+ }
456
+
457
+ .wpr-anim-size-medium.wpr-element-scale-up,
458
+ .wpr-anim-size-medium.wpr-overlay-scale-up {
459
+ -webkit-transform: scale(0.6);
460
+ -ms-transform: scale(0.6);
461
+ transform: scale(0.6);
462
+ }
463
+
464
+ .wpr-anim-size-large.wpr-element-scale-up,
465
+ .wpr-anim-size-large.wpr-overlay-scale-up {
466
+ -webkit-transform: scale(0.2);
467
+ -ms-transform: scale(0.2);
468
+ transform: scale(0.2);
469
+ }
470
+
471
+ .wpr-animation-wrap-active .wpr-element-scale-up,
472
+ .wpr-animation-wrap-active .wpr-overlay-scale-up,
473
+ .wpr-animation-wrap:hover .wpr-element-scale-up,
474
+ .wpr-animation-wrap:hover .wpr-overlay-scale-up,
475
+ .wpr-animation-enter > .wpr-overlay-scale-up {
476
+ opacity: 1;
477
+ -webkit-transform: scale(1);
478
+ -ms-transform: scale(1);
479
+ transform: scale(1);
480
+ }
481
+
482
+ .wpr-anim-size-small.wpr-element-scale-down,
483
+ .wpr-anim-size-small.wpr-overlay-scale-down {
484
+ -webkit-transform: scale(1.1);
485
+ -ms-transform: scale(1.1);
486
+ transform: scale(1.1);
487
+ }
488
+
489
+ .wpr-anim-size-medium.wpr-element-scale-down,
490
+ .wpr-anim-size-medium.wpr-overlay-scale-down {
491
+ -webkit-transform: scale(1.4);
492
+ -ms-transform: scale(1.4);
493
+ transform: scale(1.4);
494
+ }
495
+
496
+ .wpr-anim-size-large.wpr-element-scale-down,
497
+ .wpr-anim-size-large.wpr-overlay-scale-down {
498
+ -webkit-transform: scale(1.9);
499
+ -ms-transform: scale(1.9);
500
+ transform: scale(1.9);
501
+ }
502
+
503
+ .wpr-animation-wrap-active .wpr-element-scale-down,
504
+ .wpr-animation-wrap-active .wpr-overlay-scale-down,
505
+ .wpr-animation-wrap:hover .wpr-element-scale-down,
506
+ .wpr-animation-wrap:hover .wpr-overlay-scale-down,
507
+ .wpr-animation-enter > .wpr-overlay-scale-down {
508
+ opacity: 1;
509
+ -webkit-transform: scale(1);
510
+ -ms-transform: scale(1);
511
+ transform: scale(1);
512
+ }
513
+
514
+ .wpr-anim-size-small.wpr-element-roll-right,
515
+ .wpr-anim-size-small.wpr-overlay-roll-right {
516
+ -webkit-transform: translateX(100%) rotate(90deg);
517
+ -ms-transform: translateX(100%) rotate(90deg);
518
+ transform: translateX(100%) rotate(90deg);
519
+ }
520
+
521
+ .wpr-anim-size-medium.wpr-element-roll-right,
522
+ .wpr-anim-size-medium.wpr-overlay-roll-right {
523
+ -webkit-transform: translateX(100%) rotate(240deg);
524
+ -ms-transform: translateX(100%) rotate(240deg);
525
+ transform: translateX(100%) rotate(240deg);
526
+ }
527
+
528
+ .wpr-anim-size-large.wpr-element-roll-right,
529
+ .wpr-anim-size-large.wpr-overlay-roll-right {
530
+ -webkit-transform: translateX(100%) rotate(360deg);
531
+ -ms-transform: translateX(100%) rotate(360deg);
532
+ transform: translateX(100%) rotate(360deg);
533
+ }
534
+
535
+ .wpr-animation-wrap-active .wpr-element-roll-right,
536
+ .wpr-animation-wrap-active .wpr-overlay-roll-right,
537
+ .wpr-animation-wrap:hover .wpr-element-roll-right,
538
+ .wpr-animation-wrap:hover .wpr-overlay-roll-right,
539
+ .wpr-animation-enter > .wpr-overlay-roll-right {
540
+ opacity: 1;
541
+ -webkit-transform: translateX(0) rotate(0);
542
+ -ms-transform: translateX(0) rotate(0);
543
+ transform: translateX(0) rotate(0);
544
+ }
545
+
546
+ .wpr-anim-size-small.wpr-element-roll-left,
547
+ .wpr-anim-size-small.wpr-overlay-roll-left {
548
+ -webkit-transform: translateX(-100%) rotate(-90deg);
549
+ -ms-transform: translateX(-100%) rotate(-90deg);
550
+ transform: translateX(-100%) rotate(-90deg);
551
+ }
552
+
553
+ .wpr-anim-size-medium.wpr-element-roll-left,
554
+ .wpr-anim-size-medium.wpr-overlay-roll-left {
555
+ -webkit-transform: translateX(-100%) rotate(-240deg);
556
+ -ms-transform: translateX(-100%) rotate(-240deg);
557
+ transform: translateX(-100%) rotate(-240deg);
558
+ }
559
+
560
+ .wpr-anim-size-large.wpr-element-roll-left,
561
+ .wpr-anim-size-large.wpr-overlay-roll-left {
562
+ -webkit-transform: translateX(-100%) rotate(-360deg);
563
+ -ms-transform: translateX(-100%) rotate(-360deg);
564
+ transform: translateX(-100%) rotate(-360deg);
565
+ }
566
+
567
+ .wpr-animation-wrap-active .wpr-element-roll-left,
568
+ .wpr-animation-wrap-active .wpr-overlay-roll-left,
569
+ .wpr-animation-wrap:hover .wpr-element-roll-left,
570
+ .wpr-animation-wrap:hover .wpr-overlay-roll-left,
571
+ .wpr-animation-enter > .wpr-overlay-roll-left {
572
+ opacity: 1;
573
+ -webkit-transform: translateX(0) rotate(0);
574
+ -ms-transform: translateX(0) rotate(0);
575
+ transform: translateX(0) rotate(0);
576
+ }
577
+
578
+
579
+ /* Timing Functions */
580
+
581
+ .wpr-anim-timing-linear {
582
+ -webkit-transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
583
+ -o-transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
584
+ transition-timing-function: cubic-bezier(0.250, 0.250, 0.750, 0.750);
585
+ }
586
+
587
+ .wpr-anim-timing-ease-default {
588
+ -webkit-transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
589
+ -o-transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
590
+ transition-timing-function: cubic-bezier(0.250, 0.100, 0.250, 1.000);
591
+ }
592
+
593
+ .wpr-anim-timing-ease-in {
594
+ -webkit-transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
595
+ -o-transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
596
+ transition-timing-function: cubic-bezier(0.420, 0.000, 1.000, 1.000);
597
+ }
598
+
599
+ .wpr-anim-timing-ease-out {
600
+ -webkit-transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
601
+ -o-transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
602
+ transition-timing-function: cubic-bezier(0.000, 0.000, 0.580, 1.000);
603
+ }
604
+
605
+ .wpr-anim-timing-ease-in-out {
606
+ -webkit-transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
607
+ -o-transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
608
+ transition-timing-function: cubic-bezier(0.420, 0.000, 0.580, 1.000);
609
+ }
610
+
611
+ .wpr-anim-timing-ease-in-quad {
612
+ -webkit-transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
613
+ -o-transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
614
+ transition-timing-function: cubic-bezier(0.550, 0.085, 0.680, 0.530);
615
+ }
616
+
617
+ .wpr-anim-timing-ease-in-cubic {
618
+ -webkit-transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
619
+ -o-transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
620
+ transition-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190);
621
+ }
622
+
623
+ .wpr-anim-timing-ease-in-quart {
624
+ -webkit-transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
625
+ -o-transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
626
+ transition-timing-function: cubic-bezier(0.895, 0.030, 0.685, 0.220);
627
+ }
628
+
629
+ .wpr-anim-timing-ease-in-quint {
630
+ -webkit-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
631
+ -o-transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
632
+ transition-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
633
+ }
634
+
635
+ .wpr-anim-timing-ease-in-sine {
636
+ -webkit-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
637
+ -o-transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
638
+ transition-timing-function: cubic-bezier(0.470, 0.000, 0.745, 0.715);
639
+ }
640
+
641
+ .wpr-anim-timing-ease-in-expo {
642
+ -webkit-transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
643
+ -o-transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
644
+ transition-timing-function: cubic-bezier(0.950, 0.050, 0.795, 0.035);
645
+ }
646
+
647
+ .wpr-anim-timing-ease-in-circ {
648
+ -webkit-transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
649
+ -o-transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
650
+ transition-timing-function: cubic-bezier(0.600, 0.040, 0.980, 0.335);
651
+ }
652
+
653
+ .wpr-anim-timing-ease-in-back {
654
+ -webkit-transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
655
+ -o-transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
656
+ transition-timing-function: cubic-bezier(0.600, -0.280, 0.735, 0.045);
657
+ }
658
+
659
+ .wpr-anim-timing-ease-out-quad {
660
+ -webkit-transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
661
+ -o-transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
662
+ transition-timing-function: cubic-bezier(0.250, 0.460, 0.450, 0.940);
663
+ }
664
+
665
+ .wpr-anim-timing-ease-out-cubic {
666
+ -webkit-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
667
+ -o-transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
668
+ transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
669
+ }
670
+
671
+ .wpr-anim-timing-ease-out-quart {
672
+ -webkit-transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
673
+ -o-transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
674
+ transition-timing-function: cubic-bezier(0.165, 0.840, 0.440, 1.000);
675
+ }
676
+
677
+ .wpr-anim-timing-ease-out-quint {
678
+ -webkit-transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
679
+ -o-transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
680
+ transition-timing-function: cubic-bezier(0.230, 1.000, 0.320, 1.000);
681
+ }
682
+
683
+ .wpr-anim-timing-ease-out-sine {
684
+ -webkit-transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
685
+ -o-transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
686
+ transition-timing-function: cubic-bezier(0.390, 0.575, 0.565, 1.000);
687
+ }
688
+
689
+ .wpr-anim-timing-ease-out-expo {
690
+ -webkit-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
691
+ -o-transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
692
+ transition-timing-function: cubic-bezier(0.190, 1.000, 0.220, 1.000);
693
+ }
694
+
695
+ .wpr-anim-timing-ease-out-circ {
696
+ -webkit-transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
697
+ -o-transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
698
+ transition-timing-function: cubic-bezier(0.075, 0.820, 0.165, 1.000);
699
+ }
700
+
701
+ .wpr-anim-timing-ease-out-back {
702
+ -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
703
+ -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
704
+ transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
705
+ }
706
+
707
+ .wpr-anim-timing-ease-in-out-quad {
708
+ -webkit-transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955);
709
+ -o-transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955);
710
+ transition-timing-function: cubic-bezier(0.455, 0.030, 0.515, 0.955)
711
+ }
712
+
713
+ .wpr-anim-timing-ease-in-out-cubic {
714
+ -webkit-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
715
+ -o-transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
716
+ transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1.000);
717
+ }
718
+
719
+ .wpr-anim-timing-ease-in-out-quart {
720
+ -webkit-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
721
+ -o-transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
722
+ transition-timing-function: cubic-bezier(0.770, 0.000, 0.175, 1.000);
723
+ }
724
+
725
+ .wpr-anim-timing-ease-in-out-quint {
726
+ -webkit-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
727
+ -o-transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
728
+ transition-timing-function: cubic-bezier(0.860, 0.000, 0.070, 1.000);
729
+ }
730
+
731
+ .wpr-anim-timing-ease-in-out-sine {
732
+ -webkit-transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
733
+ -o-transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
734
+ transition-timing-function: cubic-bezier(0.445, 0.050, 0.550, 0.950);
735
+ }
736
+
737
+ .wpr-anim-timing-ease-in-out-expo {
738
+ -webkit-transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
739
+ -o-transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
740
+ transition-timing-function: cubic-bezier(1.000, 0.000, 0.000, 1.000);
741
+ }
742
+
743
+ .wpr-anim-timing-ease-in-out-circ {
744
+ -webkit-transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
745
+ -o-transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
746
+ transition-timing-function: cubic-bezier(0.785, 0.135, 0.150, 0.860);
747
+ }
748
+
749
+ .wpr-anim-timing-ease-in-out-back {
750
+ -webkit-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
751
+ -o-transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
752
+ transition-timing-function: cubic-bezier(0.680, -0.550, 0.265, 1.550);
753
+ }
754
+
755
+
756
+ /* Image Effects */
757
+
758
+ .wpr-slide.wpr-effect-dir-top:hover img {
759
+ -webkit-transform: translateY(-100%);
760
+ -ms-transform: translateY(-100%);
761
+ transform: translateY(-100%);
762
+ }
763
+
764
+ .wpr-slide.wpr-effect-dir-bottom:hover img {
765
+ -webkit-transform: translateY(100%);
766
+ -ms-transform: translateY(100%);
767
+ transform: translateY(100%);
768
+ }
769
+
770
+ .wpr-slide.wpr-effect-dir-right:hover img {
771
+ -webkit-transform: translateX(100%);
772
+ -ms-transform: translateX(100%);
773
+ transform: translateX(100%);
774
+ }
775
+
776
+ .wpr-slide.wpr-effect-dir-left:hover img {
777
+ -webkit-transform: translateX(-100%);
778
+ -ms-transform: translateX(-100%);
779
+ transform: translateX(-100%);
780
+ }
781
+
782
+ .wpr-zoom-in.wpr-effect-size-small:hover img {
783
+ -webkit-transform: scale(1.1);
784
+ -ms-transform: scale(1.1);
785
+ transform: scale(1.1);
786
+ }
787
+
788
+ .wpr-zoom-in.wpr-effect-size-medium:hover img {
789
+ -webkit-transform: scale(1.3);
790
+ -ms-transform: scale(1.3);
791
+ transform: scale(1.3);
792
+ }
793
+
794
+ .wpr-zoom-in.wpr-effect-size-large:hover img {
795
+ -webkit-transform: scale(1.5);
796
+ -ms-transform: scale(1.5);
797
+ transform: scale(1.5);
798
+ }
799
+
800
+ .wpr-zoom-out.wpr-effect-size-small img {
801
+ -webkit-transform: scale(1.1);
802
+ -ms-transform: scale(1.1);
803
+ transform: scale(1.1);
804
+ }
805
+
806
+ .wpr-zoom-out.wpr-effect-size-medium img {
807
+ -webkit-transform: scale(1.3);
808
+ -ms-transform: scale(1.3);
809
+ transform: scale(1.3);
810
+ }
811
+
812
+ .wpr-zoom-out.wpr-effect-size-large img {
813
+ -webkit-transform: scale(1.5);
814
+ -ms-transform: scale(1.5);
815
+ transform: scale(1.5);
816
+ }
817
+
818
+ .wpr-zoom-out.wpr-effect-size-small:hover img,
819
+ .wpr-zoom-out.wpr-effect-size-medium:hover img,
820
+ .wpr-zoom-out.wpr-effect-size-large:hover img {
821
+ -webkit-transform: scale(1);
822
+ -ms-transform: scale(1);
823
+ transform: scale(1);
824
+ }
825
+
826
+ .wpr-grayscale-in.wpr-effect-size-small:hover img {
827
+ -webkit-filter: grayscale(0.3);
828
+ filter: grayscale(0.3);
829
+ }
830
+
831
+ .wpr-grayscale-in.wpr-effect-size-medium:hover img {
832
+ -webkit-filter: grayscale(0.6);
833
+ filter: grayscale(0.6);
834
+ }
835
+
836
+ .wpr-grayscale-in.wpr-effect-size-large:hover img {
837
+ -webkit-filter: grayscale(1);
838
+ filter: grayscale(1);
839
+ }
840
+
841
+ .wpr-grayscale-out.wpr-effect-size-small img {
842
+ -webkit-filter: grayscale(0.3);
843
+ filter: grayscale(0.3);
844
+ }
845
+
846
+ .wpr-grayscale-out.wpr-effect-size-medium img {
847
+ -webkit-filter: grayscale(0.6);
848
+ filter: grayscale(0.6);
849
+ }
850
+
851
+ .wpr-grayscale-out.wpr-effect-size-large img {
852
+ -webkit-filter: grayscale(1);
853
+ filter: grayscale(1);
854
+ }
855
+
856
+ .wpr-grayscale-out.wpr-effect-size-small:hover img,
857
+ .wpr-grayscale-out.wpr-effect-size-medium:hover img,
858
+ .wpr-grayscale-out.wpr-effect-size-large:hover img {
859
+ -webkit-filter: grayscale(0);
860
+ filter: grayscale(0);
861
+ }
862
+
863
+ .wpr-blur-in.wpr-effect-size-small:hover img {
864
+ -webkit-filter: blur(1px);
865
+ filter: blur(1px);
866
+ }
867
+
868
+ .wpr-blur-in.wpr-effect-size-medium:hover img {
869
+ -webkit-filter: blur(3px);
870
+ filter: blur(3px);
871
+ }
872
+
873
+ .wpr-blur-in.wpr-effect-size-large:hover img {
874
+ -webkit-filter: blur(5px);
875
+ filter: blur(5px);
876
+ }
877
+
878
+ .wpr-blur-out.wpr-effect-size-small img {
879
+ -webkit-filter: blur(1px);
880
+ filter: blur(1px);
881
+ }
882
+
883
+ .wpr-blur-out.wpr-effect-size-medium img {
884
+ -webkit-filter: blur(3px);
885
+ filter: blur(3px);
886
+ }
887
+
888
+ .wpr-blur-out.wpr-effect-size-large img {
889
+ -webkit-filter: blur(5px);
890
+ filter: blur(5px);
891
+ }
892
+
893
+ .wpr-blur-out.wpr-effect-size-small:hover img,
894
+ .wpr-blur-out.wpr-effect-size-medium:hover img,
895
+ .wpr-blur-out.wpr-effect-size-large:hover img {
896
+ -webkit-filter: blur(0px);
897
+ filter: blur(0px);
898
+ }
899
+
900
+ .wpr-slide.wpr-effect-dir-top:hover .wpr-accordion-background {
901
+ -webkit-transform: translateY(-100%);
902
+ -ms-transform: translateY(-100%);
903
+ transform: translateY(-100%);
904
+ }
905
+
906
+ .wpr-slide.wpr-effect-dir-bottom:hover .wpr-accordion-background {
907
+ -webkit-transform: translateY(100%);
908
+ -ms-transform: translateY(100%);
909
+ transform: translateY(100%);
910
+ }
911
+
912
+ .wpr-slide.wpr-effect-dir-right:hover .wpr-accordion-background {
913
+ -webkit-transform: translateX(100%);
914
+ -ms-transform: translateX(100%);
915
+ transform: translateX(100%);
916
+ }
917
+
918
+ .wpr-slide.wpr-effect-dir-left:hover .wpr-accordion-background {
919
+ -webkit-transform: translateX(-100%);
920
+ -ms-transform: translateX(-100%);
921
+ transform: translateX(-100%);
922
+ }
923
+
924
+ .wpr-zoom-in.wpr-effect-size-small:hover .wpr-accordion-background {
925
+ -webkit-transform: scale(1.1);
926
+ -ms-transform: scale(1.1);
927
+ transform: scale(1.1);
928
+ }
929
+
930
+ .wpr-zoom-in.wpr-effect-size-medium:hover .wpr-accordion-background {
931
+ -webkit-transform: scale(1.3);
932
+ -ms-transform: scale(1.3);
933
+ transform: scale(1.3);
934
+ }
935
+
936
+ .wpr-zoom-in.wpr-effect-size-large:hover .wpr-accordion-background {
937
+ -webkit-transform: scale(1.5);
938
+ -ms-transform: scale(1.5);
939
+ transform: scale(1.5);
940
+ }
941
+
942
+ .wpr-zoom-out.wpr-effect-size-small .wpr-accordion-background {
943
+ -webkit-transform: scale(1.1);
944
+ -ms-transform: scale(1.1);
945
+ transform: scale(1.1);
946
+ }
947
+
948
+ .wpr-zoom-out.wpr-effect-size-medium .wpr-accordion-background {
949
+ -webkit-transform: scale(1.3);
950
+ -ms-transform: scale(1.3);
951
+ transform: scale(1.3);
952
+ }
953
+
954
+ .wpr-zoom-out.wpr-effect-size-large .wpr-accordion-background {
955
+ -webkit-transform: scale(1.5);
956
+ -ms-transform: scale(1.5);
957
+ transform: scale(1.5);
958
+ }
959
+
960
+ .wpr-zoom-out.wpr-effect-size-small:hover .wpr-accordion-background,
961
+ .wpr-zoom-out.wpr-effect-size-medium:hover .wpr-accordion-background,
962
+ .wpr-zoom-out.wpr-effect-size-large:hover .wpr-accordion-background {
963
+ -webkit-transform: scale(1);
964
+ -ms-transform: scale(1);
965
+ transform: scale(1);
966
+ }
967
+
968
+ .wpr-grayscale-in.wpr-effect-size-small:hover .wpr-accordion-background {
969
+ -webkit-filter: grayscale(0.3);
970
+ filter: grayscale(0.3);
971
+ }
972
+
973
+ .wpr-grayscale-in.wpr-effect-size-medium:hover .wpr-accordion-background {
974
+ -webkit-filter: grayscale(0.6);
975
+ filter: grayscale(0.6);
976
+ }
977
+
978
+ .wpr-grayscale-in.wpr-effect-size-large:hover .wpr-accordion-background {
979
+ -webkit-filter: grayscale(1);
980
+ filter: grayscale(1);
981
+ }
982
+
983
+ .wpr-grayscale-out.wpr-effect-size-small .wpr-accordion-background {
984
+ -webkit-filter: grayscale(0.3);
985
+ filter: grayscale(0.3);
986
+ }
987
+
988
+ .wpr-grayscale-out.wpr-effect-size-medium .wpr-accordion-background {
989
+ -webkit-filter: grayscale(0.6);
990
+ filter: grayscale(0.6);
991
+ }
992
+
993
+ .wpr-grayscale-out.wpr-effect-size-large .wpr-accordion-background {
994
+ -webkit-filter: grayscale(1);
995
+ filter: grayscale(1);
996
+ }
997
+
998
+ .wpr-grayscale-out.wpr-effect-size-small:hover .wpr-accordion-background,
999
+ .wpr-grayscale-out.wpr-effect-size-medium:hover .wpr-accordion-background,
1000
+ .wpr-grayscale-out.wpr-effect-size-large:hover .wpr-accordion-background {
1001
+ -webkit-filter: grayscale(0);
1002
+ filter: grayscale(0);
1003
+ }
1004
+
1005
+ .wpr-blur-in.wpr-effect-size-small:hover .wpr-accordion-background {
1006
+ -webkit-filter: blur(1px);
1007
+ filter: blur(1px);
1008
+ }
1009
+
1010
+ .wpr-blur-in.wpr-effect-size-medium:hover .wpr-accordion-background {
1011
+ -webkit-filter: blur(3px);
1012
+ filter: blur(3px);
1013
+ }
1014
+
1015
+ .wpr-blur-in.wpr-effect-size-large:hover .wpr-accordion-background {
1016
+ -webkit-filter: blur(5px);
1017
+ filter: blur(5px);
1018
+ }
1019
+
1020
+ .wpr-blur-out.wpr-effect-size-small .wpr-accordion-background {
1021
+ -webkit-filter: blur(1px);
1022
+ filter: blur(1px);
1023
+ }
1024
+
1025
+ .wpr-blur-out.wpr-effect-size-medium .wpr-accordion-background {
1026
+ -webkit-filter: blur(3px);
1027
+ filter: blur(3px);
1028
+ }
1029
+
1030
+ .wpr-blur-out.wpr-effect-size-large .wpr-accordion-background {
1031
+ -webkit-filter: blur(5px);
1032
+ filter: blur(5px);
1033
+ }
1034
+
1035
+ .wpr-blur-out.wpr-effect-size-small:hover .wpr-accordion-background,
1036
+ .wpr-blur-out.wpr-effect-size-medium:hover .wpr-accordion-background,
1037
+ .wpr-blur-out.wpr-effect-size-large:hover .wpr-accordion-background {
1038
+ -webkit-filter: blur(0px);
1039
+ filter: blur(0px);
1040
+ }
1041
+
1042
+
1043
+ /* Background Animation */
1044
+
1045
+ .wpr-animation-wrap-active .wpr-bg-anim-zoom-in,
1046
+ .wpr-animation-wrap:hover .wpr-bg-anim-zoom-in {
1047
+ -webkit-transform: scale(1.2);
1048
+ -ms-transform: scale(1.2);
1049
+ transform: scale(1.2);
1050
+ }
1051
+
1052
+ .wpr-bg-anim-zoom-out {
1053
+ -webkit-transform: scale(1.2);
1054
+ -ms-transform: scale(1.2);
1055
+ transform: scale(1.2);
1056
+ }
1057
+
1058
+ .wpr-animation-wrap-active .wpr-bg-anim-zoom-out,
1059
+ .wpr-animation-wrap:hover .wpr-bg-anim-zoom-out {
1060
+ -webkit-transform: scale(1);
1061
+ -ms-transform: scale(1);
1062
+ transform: scale(1);
1063
+ }
1064
+
1065
+ .wpr-bg-anim-move-left {
1066
+ -webkit-transform: scale(1.2) translateX(8%);
1067
+ -ms-transform: scale(1.2) translateX(8%);
1068
+ transform: scale(1.2) translateX(8%);
1069
+ }
1070
+
1071
+ .wpr-animation-wrap-active .wpr-bg-anim-move-left,
1072
+ .wpr-animation-wrap:hover .wpr-bg-anim-move-left {
1073
+ -webkit-transform: scale(1.2) translateX(-8%);
1074
+ -ms-transform: scale(1.2) translateX(-8%);
1075
+ transform: scale(1.2) translateX(-8%);
1076
+ }
1077
+
1078
+ .wpr-bg-anim-move-right {
1079
+ -webkit-transform: scale(1.2) translateX(-8%);
1080
+ -ms-transform: scale(1.2) translateX(-8%);
1081
+ transform: scale(1.2) translateX(-8%);
1082
+ }
1083
+
1084
+ .wpr-animation-wrap-active .wpr-bg-anim-move-right,
1085
+ .wpr-animation-wrap:hover .wpr-bg-anim-move-right {
1086
+ -webkit-transform: scale(1.2) translateX(8%);
1087
+ -ms-transform: scale(1.2) translateX(8%);
1088
+ transform: scale(1.2) translateX(8%);
1089
+ }
1090
+
1091
+ .wpr-bg-anim-move-up {
1092
+ -webkit-transform: scale(1.2) translateY(8%);
1093
+ -ms-transform: scale(1.2) translateY(8%);
1094
+ transform: scale(1.2) translateY(8%);
1095
+ }
1096
+
1097
+ .wpr-animation-wrap-active .wpr-bg-anim-move-up,
1098
+ .wpr-animation-wrap:hover .wpr-bg-anim-move-up {
1099
+ -webkit-transform: scale(1.2) translateY(-8%);
1100
+ -ms-transform: scale(1.2) translateY(-8%);
1101
+ transform: scale(1.2) translateY(-8%);
1102
+ }
1103
+
1104
+ .wpr-animation-wrap-active .wpr-bg-anim-move-down,
1105
+ .wpr-animation-wrap:hover .wpr-bg-anim-move-down {
1106
+ -webkit-transform: scale(1.2) translateY(-8%);
1107
+ -ms-transform: scale(1.2) translateY(-8%);
1108
+ transform: scale(1.2) translateY(-8%);
1109
+ }
1110
+
1111
+ .wpr-animation-wrap-active .wpr-bg-anim-move-down,
1112
+ .wpr-animation-wrap:hover .wpr-bg-anim-move-down {
1113
+ -webkit-transform: scale(1.2) translateY(8%);
1114
+ -ms-transform: scale(1.2) translateY(8%);
1115
+ transform: scale(1.2) translateY(8%);
1116
+ }
1117
+
1118
+
1119
+ /* Border Animations*/
1120
+
1121
+ /* Layla */
1122
+ .wpr-border-anim-layla::before,
1123
+ .wpr-border-anim-layla::after {
1124
+ position: absolute;
1125
+ content: '';
1126
+ opacity: 0;
1127
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1128
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1129
+ -o-transition: opacity 0.35s, transform 0.35s;
1130
+ transition: opacity 0.35s, transform 0.35s;
1131
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1132
+ }
1133
+
1134
+ .wpr-border-anim-layla::before {
1135
+ -webkit-transform: scale(0,1);
1136
+ -ms-transform: scale(0,1);
1137
+ transform: scale(0,1);
1138
+ -webkit-transform-origin: 0 0;
1139
+ -ms-transform-origin: 0 0;
1140
+ transform-origin: 0 0;
1141
+ }
1142
+
1143
+ .wpr-border-anim-layla::after {
1144
+ -webkit-transform: scale(1,0);
1145
+ -ms-transform: scale(1,0);
1146
+ transform: scale(1,0);
1147
+ -webkit-transform-origin: 100% 0;
1148
+ -ms-transform-origin: 100% 0;
1149
+ transform-origin: 100% 0;
1150
+ }
1151
+
1152
+ .wpr-animation-wrap-active .wpr-border-anim-layla::before,
1153
+ .wpr-animation-wrap-active .wpr-border-anim-layla::after,
1154
+ .wpr-animation-wrap:hover .wpr-border-anim-layla::before,
1155
+ .wpr-animation-wrap:hover .wpr-border-anim-layla::after {
1156
+ opacity: 1;
1157
+ -webkit-transform: scale(1);
1158
+ -ms-transform: scale(1);
1159
+ transform: scale(1);
1160
+ }
1161
+
1162
+ .wpr-animation-wrap-active .wpr-border-anim-layla::after,
1163
+ .wpr-animation-wrap:hover .wpr-border-anim-layla::after {
1164
+ -webkit-transition-delay: 0.15s;
1165
+ -o-transition-delay: 0.15s;
1166
+ transition-delay: 0.15s;
1167
+ }
1168
+
1169
+ /* Oscar */
1170
+ .wpr-border-anim-oscar::before {
1171
+ position: absolute;
1172
+ content: '';
1173
+ opacity: 0;
1174
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1175
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1176
+ -o-transition: opacity 0.35s, transform 0.35s;
1177
+ transition: opacity 0.35s, transform 0.35s;
1178
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1179
+ -webkit-transform: scale(0.9);
1180
+ -ms-transform: scale(0.9);
1181
+ transform: scale(0.9);
1182
+ }
1183
+
1184
+ .wpr-animation-wrap-active .wpr-border-anim-oscar::before,
1185
+ .wpr-animation-wrap:hover .wpr-border-anim-oscar::before {
1186
+ opacity: 1;
1187
+ -webkit-transform: scale(1);
1188
+ -ms-transform: scale(1);
1189
+ transform: scale(1);
1190
+ }
1191
+
1192
+ /* Bubba */
1193
+ .wpr-border-anim-bubba::before,
1194
+ .wpr-border-anim-bubba::after {
1195
+ position: absolute;
1196
+ content: '';
1197
+ opacity: 0;
1198
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1199
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1200
+ -o-transition: opacity 0.35s, transform 0.35s;
1201
+ transition: opacity 0.35s, transform 0.35s;
1202
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1203
+ }
1204
+
1205
+ .wpr-border-anim-bubba::before {
1206
+ -webkit-transform: scale(0,1);
1207
+ -ms-transform: scale(0,1);
1208
+ transform: scale(0,1);
1209
+ }
1210
+
1211
+ .wpr-border-anim-bubba::after {
1212
+ -webkit-transform: scale(1,0);
1213
+ -ms-transform: scale(1,0);
1214
+ transform: scale(1,0);
1215
+ }
1216
+
1217
+ .wpr-animation-wrap-active .wpr-border-anim-bubba::before,
1218
+ .wpr-animation-wrap-active .wpr-border-anim-bubba::after,
1219
+ .wpr-animation-wrap:hover .wpr-border-anim-bubba::before,
1220
+ .wpr-animation-wrap:hover .wpr-border-anim-bubba::after {
1221
+ opacity: 1;
1222
+ -webkit-transform: scale(1);
1223
+ -ms-transform: scale(1);
1224
+ transform: scale(1);
1225
+ }
1226
+
1227
+ /* Romeo */
1228
+ .wpr-border-anim-romeo::before,
1229
+ .wpr-border-anim-romeo::after {
1230
+ position: absolute;
1231
+ top: 50%;
1232
+ left: 50%;
1233
+ width: 80%;
1234
+ content: '';
1235
+ opacity: 0;
1236
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1237
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1238
+ -o-transition: opacity 0.35s, transform 0.35s;
1239
+ transition: opacity 0.35s, transform 0.35s;
1240
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1241
+ -webkit-transform: translate3d(-50%,-50%,0);
1242
+ transform: translate3d(-50%,-50%,0);
1243
+ }
1244
+
1245
+ .wpr-animation-wrap-active .wpr-border-anim-romeo::before,
1246
+ .wpr-animation-wrap:hover .wpr-border-anim-romeo::before {
1247
+ opacity: 1;
1248
+ -webkit-transform: translate3d(-50%,-50%,0) rotate(45deg);
1249
+ transform: translate3d(-50%,-50%,0) rotate(45deg);
1250
+ }
1251
+
1252
+ .wpr-animation-wrap-active .wpr-border-anim-romeo::after,
1253
+ .wpr-animation-wrap:hover .wpr-border-anim-romeo::after {
1254
+ opacity: 1;
1255
+ -webkit-transform: translate3d(-50%,-50%,0) rotate(-45deg);
1256
+ transform: translate3d(-50%,-50%,0) rotate(-45deg);
1257
+ }
1258
+
1259
+ /* Chicho */
1260
+ .wpr-border-anim-chicho::before {
1261
+ position: absolute;
1262
+ content: '';
1263
+ -webkit-transform: scale(1.1);
1264
+ -ms-transform: scale(1.1);
1265
+ transform: scale(1.1);
1266
+ opacity: 0;
1267
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1268
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1269
+ -o-transition: opacity 0.35s, transform 0.35s;
1270
+ transition: opacity 0.35s, transform 0.35s;
1271
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1272
+ }
1273
+
1274
+ .wpr-animation-wrap-active .wpr-border-anim-chicho::before,
1275
+ .wpr-animation-wrap:hover .wpr-border-anim-chicho::before {
1276
+ opacity: 1;
1277
+ -webkit-transform: scale(1);
1278
+ -ms-transform: scale(1);
1279
+ transform: scale(1);
1280
+ }
1281
+
1282
+ /* Apollo */
1283
+ .wpr-border-anim-apollo::before {
1284
+ position: absolute;
1285
+ top: 0;
1286
+ left: 0;
1287
+ width: 100%;
1288
+ height: 100%;
1289
+ content: '';
1290
+ -webkit-transition: -webkit-transform 0.6s;
1291
+ transition: -webkit-transform 0.6s;
1292
+ -o-transition: transform 0.6s;
1293
+ transition: transform 0.6s;
1294
+ transition: transform 0.6s, -webkit-transform 0.6s;
1295
+ -webkit-transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,-100%,0);
1296
+ transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,-100%,0);
1297
+ }
1298
+
1299
+ .wpr-animation-wrap-active .wpr-border-anim-apollo::before,
1300
+ .wpr-animation-wrap:hover .wpr-border-anim-apollo::before {
1301
+ -webkit-transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,100%,0);
1302
+ transform: scale3d(2.9,2.4,1) rotate3d(0,0,1,45deg) translate3d(0,100%,0);
1303
+ }
1304
+
1305
+ /* Jazz */
1306
+ .wpr-border-anim-jazz::after {
1307
+ -webkit-transition: opacity 0.35s, -webkit-transform 0.35s;
1308
+ transition: opacity 0.35s, -webkit-transform 0.35s;
1309
+ -o-transition: opacity 0.35s, transform 0.35s;
1310
+ transition: opacity 0.35s, transform 0.35s;
1311
+ transition: opacity 0.35s, transform 0.35s, -webkit-transform 0.35s;
1312
+ position: absolute;
1313
+ top: 0;
1314
+ left: 0;
1315
+ width: 100%;
1316
+ height: 100%;
1317
+ content: '';
1318
+ opacity: 0;
1319
+ -webkit-transform: rotate3d(0,0,1,45deg) scale3d(1,0,1);
1320
+ transform: rotate3d(0,0,1,45deg) scale3d(1,0,1);
1321
+ -webkit-transform-origin: 50% 50%;
1322
+ -ms-transform-origin: 50% 50%;
1323
+ transform-origin: 50% 50%;
1324
+ }
1325
+
1326
+ .wpr-animation-wrap-active .wpr-border-anim-jazz::after,
1327
+ .wpr-animation-wrap:hover .wpr-border-anim-jazz::after {
1328
+ opacity: 1;
1329
+ -webkit-transform: rotate3d(0,0,1,45deg) scale3d(1,1,1);
1330
+ transform: rotate3d(0,0,1,45deg) scale3d(1,1,1);
1331
  }
assets/css/lib/bricklayer/bricklayer.css CHANGED
@@ -1,49 +1,49 @@
1
- .bricklayer {
2
- display: -webkit-box;
3
- display: -webkit-flex;
4
- display: -ms-flexbox;
5
- display: flex;
6
- -webkit-box-align: start;
7
- -webkit-align-items: flex-start;
8
- -ms-flex-align: start;
9
- align-items: flex-start;
10
- -webkit-box-pack: center;
11
- -webkit-justify-content: center;
12
- -ms-flex-pack: center;
13
- justify-content: center;
14
- -webkit-flex-wrap: wrap;
15
- -ms-flex-wrap: wrap;
16
- flex-wrap: wrap;
17
- }
18
-
19
- .bricklayer-column-sizer {
20
- width: 100%;
21
- display: none;
22
- }
23
-
24
- @media screen and (min-width: 640px) {
25
- .bricklayer-column-sizer {
26
- width: 50%;
27
- }
28
- }
29
-
30
- @media screen and (min-width: 980px) {
31
- .bricklayer-column-sizer {
32
- width: 33.333%;
33
- }
34
- }
35
-
36
- @media screen and (min-width: 1200px) {
37
- .bricklayer-column-sizer {
38
- width: 25%;
39
- }
40
- }
41
-
42
- .bricklayer-column {
43
- -webkit-box-flex: 1;
44
- -webkit-flex: 1;
45
- -ms-flex: 1;
46
- flex: 1;
47
- padding-left: 5px;
48
- padding-right: 5px;
49
- }
1
+ .bricklayer {
2
+ display: -webkit-box;
3
+ display: -webkit-flex;
4
+ display: -ms-flexbox;
5
+ display: flex;
6
+ -webkit-box-align: start;
7
+ -webkit-align-items: flex-start;
8
+ -ms-flex-align: start;
9
+ align-items: flex-start;
10
+ -webkit-box-pack: center;
11
+ -webkit-justify-content: center;
12
+ -ms-flex-pack: center;
13
+ justify-content: center;
14
+ -webkit-flex-wrap: wrap;
15
+ -ms-flex-wrap: wrap;
16
+ flex-wrap: wrap;
17
+ }
18
+
19
+ .bricklayer-column-sizer {
20
+ width: 100%;
21
+ display: none;
22
+ }
23
+
24
+ @media screen and (min-width: 640px) {
25
+ .bricklayer-column-sizer {
26
+ width: 50%;
27
+ }
28
+ }
29
+
30
+ @media screen and (min-width: 980px) {
31
+ .bricklayer-column-sizer {
32
+ width: 33.333%;
33
+ }
34
+ }
35
+
36
+ @media screen and (min-width: 1200px) {
37
+ .bricklayer-column-sizer {
38
+ width: 25%;
39
+ }
40
+ }
41
+
42
+ .bricklayer-column {
43
+ -webkit-box-flex: 1;
44
+ -webkit-flex: 1;
45
+ -ms-flex: 1;
46
+ flex: 1;
47
+ padding-left: 5px;
48
+ padding-right: 5px;
49
+ }
assets/css/lib/lightgallery/fonts/lg.svg CHANGED
@@ -1,47 +1,47 @@
1
- <?xml version="1.0" standalone="no"?>
2
- <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
- <svg xmlns="http://www.w3.org/2000/svg">
4
- <metadata>
5
- <json>
6
- <![CDATA[
7
- {
8
- "fontFamily": "lg",
9
- "majorVersion": 1,
10
- "minorVersion": 0,
11
- "fontURL": "https://github.com/sachinchoolur/lightGallery",
12
- "copyright": "sachin",
13
- "license": "MLT",
14
- "licenseURL": "http://opensource.org/licenses/MIT",
15
- "version": "Version 1.0",
16
- "fontId": "lg",
17
- "psName": "lg",
18
- "subFamily": "Regular",
19
- "fullName": "lg",
20
- "description": "Font generated by IcoMoon."
21
- }
22
- ]]>
23
- </json>
24
- </metadata>
25
- <defs>
26
- <font id="lg" horiz-adv-x="1024">
27
- <font-face units-per-em="1024" ascent="960" descent="-64" />
28
- <missing-glyph horiz-adv-x="1024" />
29
- <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
30
- <glyph unicode="&#xe01a;" glyph-name="pause_circle_outline" data-tags="pause_circle_outline" d="M554 256.667v340h86v-340h-86zM512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM384 256.667v340h86v-340h-86z" />
31
- <glyph unicode="&#xe01d;" glyph-name="play_circle_outline" data-tags="play_circle_outline" d="M512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM426 234.667v384l256-192z" />
32
- <glyph unicode="&#xe033;" glyph-name="stack-2" data-tags="stack-2" d="M384 853.334h426.667q53 0 90.5-37.5t37.5-90.5v-426.667q0-53-37.5-90.5t-90.5-37.5h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 53 37.5 90.5t90.5 37.5zM170.667 675.334v-547.333q0-17.667 12.5-30.167t30.167-12.5h547.333q-13.333-37.667-46.333-61.5t-74.333-23.833h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 41.333 23.833 74.333t61.5 46.333zM810.667 768h-426.667q-17.667 0-30.167-12.5t-12.5-30.167v-426.667q0-17.667 12.5-30.167t30.167-12.5h426.667q17.667 0 30.167 12.5t12.5 30.167v426.667q0 17.667-12.5 30.167t-30.167 12.5z" />
33
- <glyph unicode="&#xe070;" glyph-name="clear" data-tags="clear" d="M810 664.667l-238-238 238-238-60-60-238 238-238-238-60 60 238 238-238 238 60 60 238-238 238 238z" />
34
- <glyph unicode="&#xe094;" glyph-name="arrow-left" data-tags="arrow-left" d="M426.667 768q17.667 0 30.167-12.5t12.5-30.167q0-18-12.667-30.333l-225.667-225.667h665q17.667 0 30.167-12.5t12.5-30.167-12.5-30.167-30.167-12.5h-665l225.667-225.667q12.667-12.333 12.667-30.333 0-17.667-12.5-30.167t-30.167-12.5q-18 0-30.333 12.333l-298.667 298.667q-12.333 13-12.333 30.333t12.333 30.333l298.667 298.667q12.667 12.333 30.333 12.333z" />
35
- <glyph unicode="&#xe095;" glyph-name="arrow-right" data-tags="arrow-right" d="M597.333 768q18 0 30.333-12.333l298.667-298.667q12.333-12.333 12.333-30.333t-12.333-30.333l-298.667-298.667q-12.333-12.333-30.333-12.333-18.333 0-30.5 12.167t-12.167 30.5q0 18 12.333 30.333l226 225.667h-665q-17.667 0-30.167 12.5t-12.5 30.167 12.5 30.167 30.167 12.5h665l-226 225.667q-12.333 12.333-12.333 30.333 0 18.333 12.167 30.5t30.5 12.167z" />
36
- <glyph unicode="&#xe0f2;" glyph-name="vertical_align_bottom" data-tags="vertical_align_bottom" d="M170 128.667h684v-86h-684v86zM682 384.667l-170-172-170 172h128v426h84v-426h128z" />
37
- <glyph unicode="&#xe1ff;" glyph-name="apps" data-tags="apps" d="M682 84.667v172h172v-172h-172zM682 340.667v172h172v-172h-172zM426 596.667v172h172v-172h-172zM682 768.667h172v-172h-172v172zM426 340.667v172h172v-172h-172zM170 340.667v172h172v-172h-172zM170 84.667v172h172v-172h-172zM426 84.667v172h172v-172h-172zM170 596.667v172h172v-172h-172z" />
38
- <glyph unicode="&#xe20c;" glyph-name="fullscreen" data-tags="fullscreen" d="M598 724.667h212v-212h-84v128h-128v84zM726 212.667v128h84v-212h-212v84h128zM214 512.667v212h212v-84h-128v-128h-84zM298 340.667v-128h128v-84h-212v212h84z" />
39
- <glyph unicode="&#xe20d;" glyph-name="fullscreen_exit" data-tags="fullscreen_exit" d="M682 596.667h128v-84h-212v212h84v-128zM598 128.667v212h212v-84h-128v-128h-84zM342 596.667v128h84v-212h-212v84h128zM214 256.667v84h212v-212h-84v128h-128z" />
40
- <glyph unicode="&#xe311;" glyph-name="zoom_in" data-tags="zoom_in" d="M512 512.667h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
41
- <glyph unicode="&#xe312;" glyph-name="zoom_out" data-tags="zoom_out" d="M298 554.667h214v-42h-214v42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
42
- <glyph unicode="&#xe80d;" glyph-name="share" data-tags="share" d="M768 252.667c68 0 124-56 124-124s-56-126-124-126-124 58-124 126c0 10 0 20 2 28l-302 176c-24-22-54-34-88-34-70 0-128 58-128 128s58 128 128 128c34 0 64-12 88-34l300 174c-2 10-4 20-4 30 0 70 58 128 128 128s128-58 128-128-58-128-128-128c-34 0-64 14-88 36l-300-176c2-10 4-20 4-30s-2-20-4-30l304-176c22 20 52 32 84 32z" />
43
- <glyph unicode="&#xe901;" glyph-name="facebook-with-circle" data-tags="facebook-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM628.429 612.659h-73.882c-8.755 0-18.483-11.52-18.483-26.829v-53.35h92.416l-13.978-76.083h-78.438v-228.403h-87.194v228.403h-79.104v76.083h79.104v44.749c0 64.205 44.544 116.378 105.677 116.378h73.882v-80.947z" />
44
- <glyph unicode="&#xe902;" glyph-name="google-with-circle" data-tags="google+-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM483.686 249.805c-30.874-15.002-64.102-16.589-76.954-16.589-2.458 0-3.84 0-3.84 0s-1.178 0-2.765 0c-20.070 0-119.962 4.608-119.962 95.59 0 89.395 108.8 96.41 142.131 96.41h0.87c-19.251 25.702-15.258 51.61-15.258 51.61-1.69-0.102-4.147-0.205-7.168-0.205-12.544 0-36.762 1.997-57.549 15.411-25.498 16.384-38.4 44.288-38.4 82.893 0 109.107 119.142 113.51 120.32 113.613h118.989v-2.611c0-13.312-23.91-15.923-40.192-18.125-5.53-0.819-16.64-1.894-19.763-3.482 30.157-16.128 35.021-41.421 35.021-79.104 0-42.906-16.794-65.587-34.611-81.51-11.059-9.882-19.712-17.613-19.712-28.006 0-10.189 11.878-20.582 25.702-32.717 22.579-19.917 53.555-47.002 53.555-92.723 0-47.258-20.326-81.050-60.416-100.454zM742.4 460.8h-76.8v-76.8h-51.2v76.8h-76.8v51.2h76.8v76.8h51.2v-76.8h76.8v-51.2zM421.018 401.92c-2.662 0-5.325-0.102-8.038-0.307-22.733-1.69-43.725-10.189-58.88-24.013-15.053-13.619-22.733-30.822-21.658-48.179 2.304-36.403 41.37-57.702 88.832-54.323 46.694 3.379 77.824 30.31 75.571 66.714-2.15 34.202-31.898 60.109-75.827 60.109zM465.766 599.808c-12.39 43.52-32.358 56.422-63.386 56.422-3.328 0-6.707-0.512-9.933-1.382-13.466-3.84-24.166-15.053-30.106-31.744-6.093-16.896-6.451-34.509-1.229-54.579 9.472-35.891 34.97-61.901 60.672-61.901 3.379 0 6.758 0.41 9.933 1.382 28.109 7.885 45.722 50.79 34.048 91.802z" />
45
- <glyph unicode="&#xe903;" glyph-name="pinterest-with-circle" data-tags="pinterest-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM545.638 344.32c-31.539 2.406-44.749 18.022-69.427 32.973-13.568-71.219-30.157-139.52-79.309-175.206-15.206 107.725 22.221 188.518 39.629 274.381-29.645 49.92 3.533 150.323 66.099 125.645 76.954-30.515-66.662-185.6 29.747-205.005 100.659-20.173 141.773 174.694 79.36 237.978-90.214 91.494-262.502 2.099-241.306-128.87 5.12-32 38.246-41.728 13.21-85.914-57.702 12.8-74.957 58.317-72.704 118.989 3.533 99.328 89.242 168.909 175.155 178.483 108.698 12.083 210.688-39.885 224.819-142.182 15.821-115.405-49.101-240.282-165.274-231.27z" />
46
- <glyph unicode="&#xe904;" glyph-name="twitter-with-circle" data-tags="twitter-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM711.936 549.683c0.205-4.198 0.256-8.397 0.256-12.493 0-128-97.331-275.507-275.405-275.507-54.682 0-105.574 15.974-148.378 43.52 7.526-0.922 15.258-1.28 23.091-1.28 45.363 0 87.091 15.411 120.218 41.421-42.342 0.819-78.080 28.774-90.419 67.174 5.888-1.075 11.93-1.69 18.176-1.69 8.806 0 17.408 1.178 25.498 3.379-44.288 8.909-77.67 48.026-77.67 94.925v1.178c13.056-7.219 28.006-11.622 43.878-12.134-26.010 17.408-43.059 47.002-43.059 80.64 0 17.715 4.762 34.406 13.107 48.691 47.77-58.573 119.040-97.075 199.526-101.222-1.69 7.117-2.509 14.49-2.509 22.118 0 53.402 43.315 96.819 96.819 96.819 27.802 0 52.992-11.776 70.656-30.618 22.067 4.403 42.752 12.39 61.44 23.501-7.219-22.579-22.528-41.574-42.547-53.606 19.61 2.406 38.246 7.578 55.603 15.309-12.954-19.405-29.389-36.506-48.282-50.125z" />
47
  </font></defs></svg>
1
+ <?xml version="1.0" standalone="no"?>
2
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
3
+ <svg xmlns="http://www.w3.org/2000/svg">
4
+ <metadata>
5
+ <json>
6
+ <![CDATA[
7
+ {
8
+ "fontFamily": "lg",
9
+ "majorVersion": 1,
10
+ "minorVersion": 0,
11
+ "fontURL": "https://github.com/sachinchoolur/lightGallery",
12
+ "copyright": "sachin",
13
+ "license": "MLT",
14
+ "licenseURL": "http://opensource.org/licenses/MIT",
15
+ "version": "Version 1.0",
16
+ "fontId": "lg",
17
+ "psName": "lg",
18
+ "subFamily": "Regular",
19
+ "fullName": "lg",
20
+ "description": "Font generated by IcoMoon."
21
+ }
22
+ ]]>
23
+ </json>
24
+ </metadata>
25
+ <defs>
26
+ <font id="lg" horiz-adv-x="1024">
27
+ <font-face units-per-em="1024" ascent="960" descent="-64" />
28
+ <missing-glyph horiz-adv-x="1024" />
29
+ <glyph unicode="&#x20;" horiz-adv-x="512" d="" />
30
+ <glyph unicode="&#xe01a;" glyph-name="pause_circle_outline" data-tags="pause_circle_outline" d="M554 256.667v340h86v-340h-86zM512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM384 256.667v340h86v-340h-86z" />
31
+ <glyph unicode="&#xe01d;" glyph-name="play_circle_outline" data-tags="play_circle_outline" d="M512 84.667q140 0 241 101t101 241-101 241-241 101-241-101-101-241 101-241 241-101zM512 852.667q176 0 301-125t125-301-125-301-301-125-301 125-125 301 125 301 301 125zM426 234.667v384l256-192z" />
32
+ <glyph unicode="&#xe033;" glyph-name="stack-2" data-tags="stack-2" d="M384 853.334h426.667q53 0 90.5-37.5t37.5-90.5v-426.667q0-53-37.5-90.5t-90.5-37.5h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 53 37.5 90.5t90.5 37.5zM170.667 675.334v-547.333q0-17.667 12.5-30.167t30.167-12.5h547.333q-13.333-37.667-46.333-61.5t-74.333-23.833h-426.667q-53 0-90.5 37.5t-37.5 90.5v426.667q0 41.333 23.833 74.333t61.5 46.333zM810.667 768h-426.667q-17.667 0-30.167-12.5t-12.5-30.167v-426.667q0-17.667 12.5-30.167t30.167-12.5h426.667q17.667 0 30.167 12.5t12.5 30.167v426.667q0 17.667-12.5 30.167t-30.167 12.5z" />
33
+ <glyph unicode="&#xe070;" glyph-name="clear" data-tags="clear" d="M810 664.667l-238-238 238-238-60-60-238 238-238-238-60 60 238 238-238 238 60 60 238-238 238 238z" />
34
+ <glyph unicode="&#xe094;" glyph-name="arrow-left" data-tags="arrow-left" d="M426.667 768q17.667 0 30.167-12.5t12.5-30.167q0-18-12.667-30.333l-225.667-225.667h665q17.667 0 30.167-12.5t12.5-30.167-12.5-30.167-30.167-12.5h-665l225.667-225.667q12.667-12.333 12.667-30.333 0-17.667-12.5-30.167t-30.167-12.5q-18 0-30.333 12.333l-298.667 298.667q-12.333 13-12.333 30.333t12.333 30.333l298.667 298.667q12.667 12.333 30.333 12.333z" />
35
+ <glyph unicode="&#xe095;" glyph-name="arrow-right" data-tags="arrow-right" d="M597.333 768q18 0 30.333-12.333l298.667-298.667q12.333-12.333 12.333-30.333t-12.333-30.333l-298.667-298.667q-12.333-12.333-30.333-12.333-18.333 0-30.5 12.167t-12.167 30.5q0 18 12.333 30.333l226 225.667h-665q-17.667 0-30.167 12.5t-12.5 30.167 12.5 30.167 30.167 12.5h665l-226 225.667q-12.333 12.333-12.333 30.333 0 18.333 12.167 30.5t30.5 12.167z" />
36
+ <glyph unicode="&#xe0f2;" glyph-name="vertical_align_bottom" data-tags="vertical_align_bottom" d="M170 128.667h684v-86h-684v86zM682 384.667l-170-172-170 172h128v426h84v-426h128z" />
37
+ <glyph unicode="&#xe1ff;" glyph-name="apps" data-tags="apps" d="M682 84.667v172h172v-172h-172zM682 340.667v172h172v-172h-172zM426 596.667v172h172v-172h-172zM682 768.667h172v-172h-172v172zM426 340.667v172h172v-172h-172zM170 340.667v172h172v-172h-172zM170 84.667v172h172v-172h-172zM426 84.667v172h172v-172h-172zM170 596.667v172h172v-172h-172z" />
38
+ <glyph unicode="&#xe20c;" glyph-name="fullscreen" data-tags="fullscreen" d="M598 724.667h212v-212h-84v128h-128v84zM726 212.667v128h84v-212h-212v84h128zM214 512.667v212h212v-84h-128v-128h-84zM298 340.667v-128h128v-84h-212v212h84z" />
39
+ <glyph unicode="&#xe20d;" glyph-name="fullscreen_exit" data-tags="fullscreen_exit" d="M682 596.667h128v-84h-212v212h84v-128zM598 128.667v212h212v-84h-128v-128h-84zM342 596.667v128h84v-212h-212v84h128zM214 256.667v84h212v-212h-84v128h-128z" />
40
+ <glyph unicode="&#xe311;" glyph-name="zoom_in" data-tags="zoom_in" d="M512 512.667h-86v-86h-42v86h-86v42h86v86h42v-86h86v-42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
41
+ <glyph unicode="&#xe312;" glyph-name="zoom_out" data-tags="zoom_out" d="M298 554.667h214v-42h-214v42zM406 340.667q80 0 136 56t56 136-56 136-136 56-136-56-56-136 56-136 136-56zM662 340.667l212-212-64-64-212 212v34l-12 12q-76-66-180-66-116 0-197 80t-81 196 81 197 197 81 196-81 80-197q0-104-66-180l12-12h34z" />
42
+ <glyph unicode="&#xe80d;" glyph-name="share" data-tags="share" d="M768 252.667c68 0 124-56 124-124s-56-126-124-126-124 58-124 126c0 10 0 20 2 28l-302 176c-24-22-54-34-88-34-70 0-128 58-128 128s58 128 128 128c34 0 64-12 88-34l300 174c-2 10-4 20-4 30 0 70 58 128 128 128s128-58 128-128-58-128-128-128c-34 0-64 14-88 36l-300-176c2-10 4-20 4-30s-2-20-4-30l304-176c22 20 52 32 84 32z" />
43
+ <glyph unicode="&#xe901;" glyph-name="facebook-with-circle" data-tags="facebook-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM628.429 612.659h-73.882c-8.755 0-18.483-11.52-18.483-26.829v-53.35h92.416l-13.978-76.083h-78.438v-228.403h-87.194v228.403h-79.104v76.083h79.104v44.749c0 64.205 44.544 116.378 105.677 116.378h73.882v-80.947z" />
44
+ <glyph unicode="&#xe902;" glyph-name="google-with-circle" data-tags="google+-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM483.686 249.805c-30.874-15.002-64.102-16.589-76.954-16.589-2.458 0-3.84 0-3.84 0s-1.178 0-2.765 0c-20.070 0-119.962 4.608-119.962 95.59 0 89.395 108.8 96.41 142.131 96.41h0.87c-19.251 25.702-15.258 51.61-15.258 51.61-1.69-0.102-4.147-0.205-7.168-0.205-12.544 0-36.762 1.997-57.549 15.411-25.498 16.384-38.4 44.288-38.4 82.893 0 109.107 119.142 113.51 120.32 113.613h118.989v-2.611c0-13.312-23.91-15.923-40.192-18.125-5.53-0.819-16.64-1.894-19.763-3.482 30.157-16.128 35.021-41.421 35.021-79.104 0-42.906-16.794-65.587-34.611-81.51-11.059-9.882-19.712-17.613-19.712-28.006 0-10.189 11.878-20.582 25.702-32.717 22.579-19.917 53.555-47.002 53.555-92.723 0-47.258-20.326-81.050-60.416-100.454zM742.4 460.8h-76.8v-76.8h-51.2v76.8h-76.8v51.2h76.8v76.8h51.2v-76.8h76.8v-51.2zM421.018 401.92c-2.662 0-5.325-0.102-8.038-0.307-22.733-1.69-43.725-10.189-58.88-24.013-15.053-13.619-22.733-30.822-21.658-48.179 2.304-36.403 41.37-57.702 88.832-54.323 46.694 3.379 77.824 30.31 75.571 66.714-2.15 34.202-31.898 60.109-75.827 60.109zM465.766 599.808c-12.39 43.52-32.358 56.422-63.386 56.422-3.328 0-6.707-0.512-9.933-1.382-13.466-3.84-24.166-15.053-30.106-31.744-6.093-16.896-6.451-34.509-1.229-54.579 9.472-35.891 34.97-61.901 60.672-61.901 3.379 0 6.758 0.41 9.933 1.382 28.109 7.885 45.722 50.79 34.048 91.802z" />
45
+ <glyph unicode="&#xe903;" glyph-name="pinterest-with-circle" data-tags="pinterest-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM545.638 344.32c-31.539 2.406-44.749 18.022-69.427 32.973-13.568-71.219-30.157-139.52-79.309-175.206-15.206 107.725 22.221 188.518 39.629 274.381-29.645 49.92 3.533 150.323 66.099 125.645 76.954-30.515-66.662-185.6 29.747-205.005 100.659-20.173 141.773 174.694 79.36 237.978-90.214 91.494-262.502 2.099-241.306-128.87 5.12-32 38.246-41.728 13.21-85.914-57.702 12.8-74.957 58.317-72.704 118.989 3.533 99.328 89.242 168.909 175.155 178.483 108.698 12.083 210.688-39.885 224.819-142.182 15.821-115.405-49.101-240.282-165.274-231.27z" />
46
+ <glyph unicode="&#xe904;" glyph-name="twitter-with-circle" data-tags="twitter-with-circle" d="M512 952.32c-271.462 0-491.52-220.058-491.52-491.52s220.058-491.52 491.52-491.52 491.52 220.058 491.52 491.52-220.058 491.52-491.52 491.52zM711.936 549.683c0.205-4.198 0.256-8.397 0.256-12.493 0-128-97.331-275.507-275.405-275.507-54.682 0-105.574 15.974-148.378 43.52 7.526-0.922 15.258-1.28 23.091-1.28 45.363 0 87.091 15.411 120.218 41.421-42.342 0.819-78.080 28.774-90.419 67.174 5.888-1.075 11.93-1.69 18.176-1.69 8.806 0 17.408 1.178 25.498 3.379-44.288 8.909-77.67 48.026-77.67 94.925v1.178c13.056-7.219 28.006-11.622 43.878-12.134-26.010 17.408-43.059 47.002-43.059 80.64 0 17.715 4.762 34.406 13.107 48.691 47.77-58.573 119.040-97.075 199.526-101.222-1.69 7.117-2.509 14.49-2.509 22.118 0 53.402 43.315 96.819 96.819 96.819 27.802 0 52.992-11.776 70.656-30.618 22.067 4.403 42.752 12.39 61.44 23.501-7.219-22.579-22.528-41.574-42.547-53.606 19.61 2.406 38.246 7.578 55.603 15.309-12.954-19.405-29.389-36.506-48.282-50.125z" />
47
  </font></defs></svg>
assets/css/lib/lightgallery/lightgallery.css CHANGED
@@ -1,982 +1,982 @@
1
- /*! lightgallery - v1.6.12 - 2019-02-19
2
- * http://sachinchoolur.github.io/lightGallery/
3
- * Copyright (c) 2019 Sachin N; Licensed GPLv3 */
4
- @font-face {
5
- font-family: 'lg';
6
- src: url("fonts/lg.eot?n1z373");
7
- src: url("fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("fonts/lg.woff?n1z373") format("woff"), url("fonts/lg.ttf?n1z373") format("truetype"), url("fonts/lg.svg?n1z373#lg") format("svg");
8
- font-weight: normal;
9
- font-style: normal;
10
- }
11
- .lg-icon {
12
- font-family: 'lg';
13
- speak: none;
14
- font-style: normal;
15
- font-weight: normal;
16
- font-variant: normal;
17
- text-transform: none;
18
- line-height: 1;
19
- /* Better Font Rendering =========== */
20
- -webkit-font-smoothing: antialiased;
21
- -moz-osx-font-smoothing: grayscale;
22
- }
23
-
24
- .lg-actions .lg-next, .lg-actions .lg-prev {
25
- background-color: rgba(0, 0, 0, 0.45);
26
- border-radius: 2px;
27
- color: #999;
28
- cursor: pointer;
29
- display: block;
30
- font-size: 22px;
31
- margin-top: -10px;
32
- padding: 8px 10px 9px;
33
- position: absolute;
34
- top: 50%;
35
- z-index: 1080;
36
- border: none;
37
- outline: none;
38
- }
39
- .lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
40
- pointer-events: none;
41
- opacity: 0.5;
42
- }
43
- .lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
44
- color: #FFF;
45
- }
46
- .lg-actions .lg-next {
47
- right: 20px;
48
- }
49
- .lg-actions .lg-next:before {
50
- content: "\e095";
51
- }
52
- .lg-actions .lg-prev {
53
- left: 20px;
54
- }
55
- .lg-actions .lg-prev:after {
56
- content: "\e094";
57
- }
58
-
59
- @-webkit-keyframes lg-right-end {
60
- 0% {
61
- left: 0;
62
- }
63
- 50% {
64
- left: -30px;
65
- }
66
- 100% {
67
- left: 0;
68
- }
69
- }
70
- @-moz-keyframes lg-right-end {
71
- 0% {
72
- left: 0;
73
- }
74
- 50% {
75
- left: -30px;
76
- }
77
- 100% {
78
- left: 0;
79
- }
80
- }
81
- @-ms-keyframes lg-right-end {
82
- 0% {
83
- left: 0;
84
- }
85
- 50% {
86
- left: -30px;
87
- }
88
- 100% {
89
- left: 0;
90
- }
91
- }
92
- @keyframes lg-right-end {
93
- 0% {
94
- left: 0;
95
- }
96
- 50% {
97
- left: -30px;
98
- }
99
- 100% {
100
- left: 0;
101
- }
102
- }
103
- @-webkit-keyframes lg-left-end {
104
- 0% {
105
- left: 0;
106
- }
107
- 50% {
108
- left: 30px;
109
- }
110
- 100% {
111
- left: 0;
112
- }
113
- }
114
- @-moz-keyframes lg-left-end {
115
- 0% {
116
- left: 0;
117
- }
118
- 50% {
119
- left: 30px;
120
- }
121
- 100% {
122
- left: 0;
123
- }
124
- }
125
- @-ms-keyframes lg-left-end {
126
- 0% {
127
- left: 0;
128
- }
129
- 50% {
130
- left: 30px;
131
- }
132
- 100% {
133
- left: 0;
134
- }
135
- }
136
- @keyframes lg-left-end {
137
- 0% {
138
- left: 0;
139
- }
140
- 50% {
141
- left: 30px;
142
- }
143
- 100% {
144
- left: 0;
145
- }
146
- }
147
- .lg-outer.lg-right-end .lg-object {
148
- -webkit-animation: lg-right-end 0.3s;
149
- -o-animation: lg-right-end 0.3s;
150
- animation: lg-right-end 0.3s;
151
- position: relative;
152
- }
153
- .lg-outer.lg-left-end .lg-object {
154
- -webkit-animation: lg-left-end 0.3s;
155
- -o-animation: lg-left-end 0.3s;
156
- animation: lg-left-end 0.3s;
157
- position: relative;
158
- }
159
-
160
- .lg-toolbar {
161
- z-index: 1082;
162
- left: 0;
163
- position: absolute;
164
- top: 0;
165
- width: 100%;
166
- background-color: rgba(0, 0, 0, 0.45);
167
- }
168
- .lg-toolbar .lg-icon {
169
- color: #999;
170
- cursor: pointer;
171
- float: right;
172
- font-size: 24px;
173
- height: 47px;
174
- line-height: 27px;
175
- padding: 10px 0;
176
- text-align: center;
177
- width: 50px;
178
- text-decoration: none !important;
179
- outline: medium none;
180
- -webkit-transition: color 0.2s linear;
181
- -o-transition: color 0.2s linear;
182
- transition: color 0.2s linear;
183
- }
184
- .lg-toolbar .lg-icon:hover {
185
- color: #FFF;
186
- }
187
- .lg-toolbar .lg-close:after {
188
- content: "\e070";
189
- }
190
- .lg-toolbar .lg-download:after {
191
- content: "\e0f2";
192
- }
193
-
194
- .lg-sub-html {
195
- background-color: rgba(0, 0, 0, 0.45);
196
- bottom: 0;
197
- color: #EEE;
198
- font-size: 16px;
199
- left: 0;
200
- padding: 10px 40px;
201
- position: fixed;
202
- right: 0;
203
- text-align: center;
204
- z-index: 1080;
205
- }
206
- .lg-sub-html h4 {
207
- margin: 0;
208
- font-size: 13px;
209
- font-weight: bold;
210
- }
211
- .lg-sub-html p {
212
- font-size: 12px;
213
- margin: 5px 0 0;
214
- }
215
-
216
- #lg-counter {
217
- color: #999;
218
- display: inline-block;
219
- font-size: 16px;
220
- padding-left: 20px;
221
- padding-top: 12px;
222
- vertical-align: middle;
223
- }
224
-
225
- .lg-toolbar, .lg-prev, .lg-next {
226
- opacity: 1;
227
- -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
228
- -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
229
- -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
230
- transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
231
- }
232
-
233
- .lg-hide-items .lg-prev {
234
- opacity: 0;
235
- -webkit-transform: translate3d(-10px, 0, 0);
236
- transform: translate3d(-10px, 0, 0);
237
- }
238
- .lg-hide-items .lg-next {
239
- opacity: 0;
240
- -webkit-transform: translate3d(10px, 0, 0);
241
- transform: translate3d(10px, 0, 0);
242
- }
243
- .lg-hide-items .lg-toolbar {
244
- opacity: 0;
245
- -webkit-transform: translate3d(0, -10px, 0);
246
- transform: translate3d(0, -10px, 0);
247
- }
248
-
249
- body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
250
- -webkit-transform: scale3d(0.5, 0.5, 0.5);
251
- transform: scale3d(0.5, 0.5, 0.5);
252
- opacity: 0;
253
- -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
254
- -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
255
- -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
256
- transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
257
- -webkit-transform-origin: 50% 50%;
258
- -moz-transform-origin: 50% 50%;
259
- -ms-transform-origin: 50% 50%;
260
- transform-origin: 50% 50%;
261
- }
262
- body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
263
- -webkit-transform: scale3d(1, 1, 1);
264
- transform: scale3d(1, 1, 1);
265
- opacity: 1;
266
- }
267
-
268
- .lg-outer .lg-thumb-outer {
269
- background-color: #0D0A0A;
270
- bottom: 0;
271
- position: absolute;
272
- width: 100%;
273
- z-index: 1080;
274
- max-height: 350px;
275
- -webkit-transform: translate3d(0, 100%, 0);
276
- transform: translate3d(0, 100%, 0);
277
- -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
278
- -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
279
- -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
280
- transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
281
- }
282
- .lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
283
- cursor: -webkit-grab;
284
- cursor: -moz-grab;
285
- cursor: -o-grab;
286
- cursor: -ms-grab;
287
- cursor: grab;
288
- }
289
- .lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
290
- cursor: move;
291
- cursor: -webkit-grabbing;
292
- cursor: -moz-grabbing;
293
- cursor: -o-grabbing;
294
- cursor: -ms-grabbing;
295
- cursor: grabbing;
296
- }
297
- .lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
298
- -webkit-transition-duration: 0s !important;
299
- transition-duration: 0s !important;
300
- }
301
- .lg-outer.lg-thumb-open .lg-thumb-outer {
302
- -webkit-transform: translate3d(0, 0%, 0);
303
- transform: translate3d(0, 0%, 0);
304
- }
305
- .lg-outer .lg-thumb {
306
- padding: 10px 0;
307
- height: 100%;
308
- margin-bottom: -5px;
309
- }
310
- .lg-outer .lg-thumb-item {
311
- border-radius: 5px;
312
- cursor: pointer;
313
- float: left;
314
- overflow: hidden;
315
- height: 100%;
316
- border: 2px solid #FFF;
317
- border-radius: 4px;
318
- margin-bottom: 5px;
319
- }
320
- @media (min-width: 1025px) {
321
- .lg-outer .lg-thumb-item {
322
- -webkit-transition: border-color 0.25s ease;
323
- -o-transition: border-color 0.25s ease;
324
- transition: border-color 0.25s ease;
325
- }
326
- }
327
- .lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
328
- border-color: #a90707;
329
- }
330
- .lg-outer .lg-thumb-item img {
331
- width: 100%;
332
- height: 100%;
333
- object-fit: cover;
334
- }
335
- .lg-outer.lg-has-thumb .lg-item {
336
- padding-bottom: 120px;
337
- }
338
- .lg-outer.lg-can-toggle .lg-item {
339
- padding-bottom: 0;
340
- }
341
- .lg-outer.lg-pull-caption-up .lg-sub-html {
342
- -webkit-transition: bottom 0.25s ease;
343
- -o-transition: bottom 0.25s ease;
344
- transition: bottom 0.25s ease;
345
- }
346
- .lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
347
- bottom: 100px;
348
- }
349
- .lg-outer .lg-toogle-thumb {
350
- background-color: #0D0A0A;
351
- border-radius: 2px 2px 0 0;
352
- color: #999;
353
- cursor: pointer;
354
- font-size: 24px;
355
- height: 39px;
356
- line-height: 27px;
357
- padding: 5px 0;
358
- position: absolute;
359
- right: 20px;
360
- text-align: center;
361
- top: -39px;
362
- width: 50px;
363
- }
364
- .lg-outer .lg-toogle-thumb:after {
365
- content: "\e1ff";
366
- }
367
- .lg-outer .lg-toogle-thumb:hover {
368
- color: #FFF;
369
- }
370
-
371
- .lg-outer .lg-video-cont {
372
- display: inline-block;
373
- vertical-align: middle;
374
- max-width: 1140px;
375
- max-height: 100%;
376
- width: 100%;
377
- padding: 0 5px;
378
- }
379
- .lg-outer .lg-video {
380
- width: 100%;
381
- height: 0;
382
- padding-bottom: 56.25%;
383
- overflow: hidden;
384
- position: relative;
385
- }
386
- .lg-outer .lg-video .lg-object {
387
- display: inline-block;
388
- position: absolute;
389
- top: 0;
390
- left: 0;
391
- width: 100% !important;
392
- height: 100% !important;
393
- }
394
- .lg-outer .lg-video .lg-video-play {
395
- width: 84px;
396
- height: 59px;
397
- position: absolute;
398
- left: 50%;
399
- top: 50%;
400
- margin-left: -42px;
401
- margin-top: -30px;
402
- z-index: 1080;
403
- cursor: pointer;
404
- }
405
- .lg-outer .lg-has-iframe .lg-video {
406
- -webkit-overflow-scrolling: touch;
407
- overflow: auto;
408
- }
409
- .lg-outer .lg-has-vimeo .lg-video-play {
410
- background: url("img/vimeo-play.png") no-repeat scroll 0 0 transparent;
411
- }
412
- .lg-outer .lg-has-vimeo:hover .lg-video-play {
413
- background: url("img/vimeo-play.png") no-repeat scroll 0 -58px transparent;
414
- }
415
- .lg-outer .lg-has-html5 .lg-video-play {
416
- background: transparent url("img/video-play.png") no-repeat scroll 0 0;
417
- height: 64px;
418
- margin-left: -32px;
419
- margin-top: -32px;
420
- width: 64px;
421
- opacity: 0.8;
422
- }
423
- .lg-outer .lg-has-html5:hover .lg-video-play {
424
- opacity: 1;
425
- }
426
- .lg-outer .lg-has-youtube .lg-video-play {
427
- background: url("img/youtube-play.png") no-repeat scroll 0 0 transparent;
428
- }
429
- .lg-outer .lg-has-youtube:hover .lg-video-play {
430
- background: url("img/youtube-play.png") no-repeat scroll 0 -60px transparent;
431
- }
432
- .lg-outer .lg-video-object {
433
- width: 100% !important;
434
- height: 100% !important;
435
- position: absolute;
436
- top: 0;
437
- left: 0;
438
- }
439
- .lg-outer .lg-has-video .lg-video-object {
440
- visibility: hidden;
441
- }
442
- .lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
443
- display: none;
444
- }
445
- .lg-outer .lg-has-video.lg-video-playing .lg-video-object {
446
- visibility: visible;
447
- }
448
-
449
- .lg-progress-bar {
450
- background-color: #333;
451
- height: 5px;
452
- left: 0;
453
- position: absolute;
454
- top: 0;
455
- width: 100%;
456
- z-index: 1083;
457
- opacity: 0;
458
- -webkit-transition: opacity 0.08s ease 0s;
459
- -moz-transition: opacity 0.08s ease 0s;
460
- -o-transition: opacity 0.08s ease 0s;
461
- transition: opacity 0.08s ease 0s;
462
- }
463
- .lg-progress-bar .lg-progress {
464
- background-color: #a90707;
465
- height: 5px;
466
- width: 0;
467
- }
468
- .lg-progress-bar.lg-start .lg-progress {
469
- width: 100%;
470
- }
471
- .lg-show-autoplay .lg-progress-bar {
472
- opacity: 1;
473
- }
474
-
475
- .lg-autoplay-button:after {
476
- content: "\e01d";
477
- }
478
- .lg-show-autoplay .lg-autoplay-button:after {
479
- content: "\e01a";
480
- }
481
-
482
- .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image {
483
- -webkit-transition-duration: 0s;
484
- transition-duration: 0s;
485
- }
486
- .lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
487
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
488
- -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
489
- -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
490
- transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
491
- }
492
- .lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
493
- -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
494
- -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
495
- -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
496
- transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
497
- }
498
- .lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
499
- -webkit-transform: translate3d(0, 0, 0);
500
- transform: translate3d(0, 0, 0);
501
- -webkit-backface-visibility: hidden;
502
- -moz-backface-visibility: hidden;
503
- backface-visibility: hidden;
504
- }
505
- .lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
506
- -webkit-transform: scale3d(1, 1, 1);
507
- transform: scale3d(1, 1, 1);
508
- -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
509
- -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
510
- -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
511
- transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
512
- -webkit-transform-origin: 0 0;
513
- -moz-transform-origin: 0 0;
514
- -ms-transform-origin: 0 0;
515
- transform-origin: 0 0;
516
- -webkit-backface-visibility: hidden;
517
- -moz-backface-visibility: hidden;
518
- backface-visibility: hidden;
519
- }
520
-
521
- #lg-zoom-in:after {
522
- content: "\e311";
523
- }
524
-
525
- #lg-actual-size {
526
- font-size: 20px;
527
- }
528
- #lg-actual-size:after {
529
- content: "\e033";
530
- }
531
-
532
- #lg-zoom-out {
533
- opacity: 0.5;
534
- pointer-events: none;
535
- }
536
- #lg-zoom-out:after {
537
- content: "\e312";
538
- }
539
- .lg-zoomed #lg-zoom-out {
540
- opacity: 1;
541
- pointer-events: auto;
542
- }
543
-
544
- .lg-outer .lg-pager-outer {
545
- bottom: 60px;
546
- left: 0;
547
- position: absolute;
548
- right: 0;
549
- text-align: center;
550
- z-index: 1080;
551
- height: 10px;
552
- }
553
- .lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
554
- overflow: visible;
555
- }
556
- .lg-outer .lg-pager-cont {
557
- cursor: pointer;
558
- display: inline-block;
559
- overflow: hidden;
560
- position: relative;
561
- vertical-align: top;
562
- margin: 0 5px;
563
- }
564
- .lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
565
- opacity: 1;
566
- -webkit-transform: translate3d(0, 0, 0);
567
- transform: translate3d(0, 0, 0);
568
- }
569
- .lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
570
- box-shadow: 0 0 0 2px white inset;
571
- }
572
- .lg-outer .lg-pager-thumb-cont {
573
- background-color: #fff;
574
- color: #FFF;
575
- bottom: 100%;
576
- height: 83px;
577
- left: 0;
578
- margin-bottom: 20px;
579
- margin-left: -60px;
580
- opacity: 0;
581
- padding: 5px;
582
- position: absolute;
583
- width: 120px;
584
- border-radius: 3px;
585
- -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s;
586
- -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s;
587
- -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s;
588
- transition: opacity 0.15s ease 0s, transform 0.15s ease 0s;
589
- -webkit-transform: translate3d(0, 5px, 0);
590
- transform: translate3d(0, 5px, 0);
591
- }
592
- .lg-outer .lg-pager-thumb-cont img {
593
- width: 100%;
594
- height: 100%;
595
- }
596
- .lg-outer .lg-pager {
597
- background-color: rgba(255, 255, 255, 0.5);
598
- border-radius: 50%;
599
- box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
600
- display: block;
601
- height: 12px;
602
- -webkit-transition: box-shadow 0.3s ease 0s;
603
- -o-transition: box-shadow 0.3s ease 0s;
604
- transition: box-shadow 0.3s ease 0s;
605
- width: 12px;
606
- }
607
- .lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus {
608
- box-shadow: 0 0 0 8px white inset;
609
- }
610
- .lg-outer .lg-caret {
611
- border-left: 10px solid transparent;
612
- border-right: 10px solid transparent;
613
- border-top: 10px dashed;
614
- bottom: -10px;
615
- display: inline-block;
616
- height: 0;
617
- left: 50%;
618
- margin-left: -5px;
619
- position: absolute;
620
- vertical-align: middle;
621
- width: 0;
622
- }
623
-
624
- .lg-fullscreen:after {
625
- content: "\e20c";
626
- }
627
- .lg-fullscreen-on .lg-fullscreen:after {
628
- content: "\e20d";
629
- }
630
-
631
- .lg-outer #lg-dropdown-overlay {
632
- background-color: rgba(0, 0, 0, 0.25);
633
- bottom: 0;
634
- cursor: default;
635
- left: 0;
636
- position: fixed;
637
- right: 0;
638
- top: 0;
639
- z-index: 1081;
640
- opacity: 0;
641
- visibility: hidden;
642
- -webkit-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
643
- -o-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
644
- transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
645
- }
646
- .lg-outer.lg-dropdown-active .lg-dropdown, .lg-outer.lg-dropdown-active #lg-dropdown-overlay {
647
- -webkit-transition-delay: 0s;
648
- transition-delay: 0s;
649
- -moz-transform: translate3d(0, 0px, 0);
650
- -o-transform: translate3d(0, 0px, 0);
651
- -ms-transform: translate3d(0, 0px, 0);
652
- -webkit-transform: translate3d(0, 0px, 0);
653
- transform: translate3d(0, 0px, 0);
654
- opacity: 1;
655
- visibility: visible;
656
- }
657
- .lg-outer.lg-dropdown-active #lg-share {
658
- color: #FFF;
659
- }
660
- .lg-outer .lg-dropdown {
661
- background-color: #fff;
662
- border-radius: 2px;
663
- font-size: 14px;
664
- list-style-type: none;
665
- margin: 0;
666
- padding: 10px 0;
667
- position: absolute;
668
- right: 0;
669
- text-align: left;
670
- top: 50px;
671
- opacity: 0;
672
- visibility: hidden;
673
- -moz-transform: translate3d(0, 5px, 0);
674
- -o-transform: translate3d(0, 5px, 0);
675
- -ms-transform: translate3d(0, 5px, 0);
676
- -webkit-transform: translate3d(0, 5px, 0);
677
- transform: translate3d(0, 5px, 0);
678
- -webkit-transition: -webkit-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
679
- -moz-transition: -moz-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
680
- -o-transition: -o-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
681
- transition: transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
682
- }
683
- .lg-outer .lg-dropdown:after {
684
- content: "";
685
- display: block;
686
- height: 0;
687
- width: 0;
688
- position: absolute;
689
- border: 8px solid transparent;
690
- border-bottom-color: #FFF;
691
- right: 16px;
692
- top: -16px;
693
- }
694
- .lg-outer .lg-dropdown > li:last-child {
695
- margin-bottom: 0px;
696
- }
697
- .lg-outer .lg-dropdown > li:hover a, .lg-outer .lg-dropdown > li:hover .lg-icon {
698
- color: #333;
699
- }
700
- .lg-outer .lg-dropdown a {
701
- color: #333;
702
- display: block;
703
- white-space: pre;
704
- padding: 4px 12px;
705
- font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
706
- font-size: 12px;
707
- }
708
- .lg-outer .lg-dropdown a:hover {
709
- background-color: rgba(0, 0, 0, 0.07);
710
- }
711
- .lg-outer .lg-dropdown .lg-dropdown-text {
712
- display: inline-block;
713
- line-height: 1;
714
- margin-top: -3px;
715
- vertical-align: middle;
716
- }
717
- .lg-outer .lg-dropdown .lg-icon {
718
- color: #333;
719
- display: inline-block;
720
- float: none;
721
- font-size: 20px;
722
- height: auto;
723
- line-height: 1;
724
- margin-right: 8px;
725
- padding: 0;
726
- vertical-align: middle;
727
- width: auto;
728
- }
729
- .lg-outer #lg-share {
730
- position: relative;
731
- }
732
- .lg-outer #lg-share:after {
733
- content: "\e80d";
734
- }
735
- .lg-outer #lg-share-facebook .lg-icon {
736
- color: #3b5998;
737
- }
738
- .lg-outer #lg-share-facebook .lg-icon:after {
739
- content: "\e901";
740
- }
741
- .lg-outer #lg-share-twitter .lg-icon {
742
- color: #00aced;
743
- }
744
- .lg-outer #lg-share-twitter .lg-icon:after {
745
- content: "\e904";
746
- }
747
- .lg-outer #lg-share-googleplus .lg-icon {
748
- color: #dd4b39;
749
- }
750
- .lg-outer #lg-share-googleplus .lg-icon:after {
751
- content: "\e902";
752
- }
753
- .lg-outer #lg-share-pinterest .lg-icon {
754
- color: #cb2027;
755
- }
756
- .lg-outer #lg-share-pinterest .lg-icon:after {
757
- content: "\e903";
758
- }
759
-
760
- .lg-group:after {
761
- content: "";
762
- display: table;
763
- clear: both;
764
- }
765
-
766
- .lg-outer {
767
- width: 100%;
768
- height: 100%;
769
- position: fixed;
770
- top: 0;
771
- left: 0;
772
- z-index: 1050;
773
- text-align: left;
774
- opacity: 0;
775
- -webkit-transition: opacity 0.15s ease 0s;
776
- -o-transition: opacity 0.15s ease 0s;
777
- transition: opacity 0.15s ease 0s;
778
- }
779
- .lg-outer * {
780
- -webkit-box-sizing: border-box;
781
- -moz-box-sizing: border-box;
782
- box-sizing: border-box;
783
- }
784
- .lg-outer.lg-visible {
785
- opacity: 1;
786
- }
787
- .lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current {
788
- -webkit-transition-duration: inherit !important;
789
- transition-duration: inherit !important;
790
- -webkit-transition-timing-function: inherit !important;
791
- transition-timing-function: inherit !important;
792
- }
793
- .lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current {
794
- -webkit-transition-duration: 0s !important;
795
- transition-duration: 0s !important;
796
- opacity: 1;
797
- }
798
- .lg-outer.lg-grab img.lg-object {
799
- cursor: -webkit-grab;
800
- cursor: -moz-grab;
801
- cursor: -o-grab;
802
- cursor: -ms-grab;
803
- cursor: grab;
804
- }
805
- .lg-outer.lg-grabbing img.lg-object {
806
- cursor: move;
807
- cursor: -webkit-grabbing;
808
- cursor: -moz-grabbing;
809
- cursor: -o-grabbing;
810
- cursor: -ms-grabbing;
811
- cursor: grabbing;
812
- }
813
- .lg-outer .lg {
814
- height: 100%;
815
- width: 100%;
816
- position: relative;
817
- overflow: hidden;
818
- margin-left: auto;
819
- margin-right: auto;
820
- max-width: 100%;
821
- max-height: 100%;
822
- }
823
- .lg-outer .lg-inner {
824
- width: 100%;
825
- height: 100%;
826
- position: absolute;
827
- left: 0;
828
- top: 0;
829
- white-space: nowrap;
830
- }
831
- .lg-outer .lg-item {
832
- background: url("img/loading.gif") no-repeat scroll center center transparent;
833
- display: none !important;
834
- }
835
- .lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide {
836
- display: inline-block !important;
837
- }
838
- .lg-outer.lg-css .lg-current {
839
- display: inline-block !important;
840
- }
841
- .lg-outer .lg-item, .lg-outer .lg-img-wrap {
842
- display: inline-block;
843
- text-align: center;
844
- position: absolute;
845
- width: 100%;
846
- height: 100%;
847
- }
848
- .lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before {
849
- content: "";
850
- display: inline-block;
851
- height: 50%;
852
- width: 1px;
853
- margin-right: -1px;
854
- }
855
- .lg-outer .lg-img-wrap {
856
- position: absolute;
857
- padding: 0 5px;
858
- left: 0;
859
- right: 0;
860
- top: 0;
861
- bottom: 0;
862
- }
863
- .lg-outer .lg-item.lg-complete {
864
- background-image: none;
865
- }
866
- .lg-outer .lg-item.lg-current {
867
- z-index: 1060;
868
- }
869
- .lg-outer .lg-image {
870
- display: inline-block;
871
- vertical-align: middle;
872
- max-width: 100%;
873
- max-height: 100%;
874
- width: auto !important;
875
- height: auto !important;
876
- }
877
- .lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
878
- opacity: 0;
879
- -webkit-transition: opacity 0.15s ease 0s;
880
- -o-transition: opacity 0.15s ease 0s;
881
- transition: opacity 0.15s ease 0s;
882
- }
883
- .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
884
- opacity: 1;
885
- }
886
- .lg-outer .lg-empty-html {
887
- display: none;
888
- }
889
- .lg-outer.lg-hide-download #lg-download {
890
- display: none;
891
- }
892
-
893
- .lg-backdrop {
894
- position: fixed;
895
- top: 0;
896
- left: 0;
897
- right: 0;
898
- bottom: 0;
899
- z-index: 1040;
900
- background-color: #000;
901
- opacity: 0;
902
- -webkit-transition: opacity 0.15s ease 0s;
903
- -o-transition: opacity 0.15s ease 0s;
904
- transition: opacity 0.15s ease 0s;
905
- }
906
- .lg-backdrop.in {
907
- opacity: 1;
908
- }
909
-
910
- .lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current {
911
- -webkit-transition: none 0s ease 0s !important;
912
- -moz-transition: none 0s ease 0s !important;
913
- -o-transition: none 0s ease 0s !important;
914
- transition: none 0s ease 0s !important;
915
- }
916
- .lg-css3.lg-use-css3 .lg-item {
917
- -webkit-backface-visibility: hidden;
918
- -moz-backface-visibility: hidden;
919
- backface-visibility: hidden;
920
- }
921
- .lg-css3.lg-use-left .lg-item {
922
- -webkit-backface-visibility: hidden;
923
- -moz-backface-visibility: hidden;
924
- backface-visibility: hidden;
925
- }
926
- .lg-css3.lg-fade .lg-item {
927
- opacity: 0;
928
- }
929
- .lg-css3.lg-fade .lg-item.lg-current {
930
- opacity: 1;
931
- }
932
- .lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current {
933
- -webkit-transition: opacity 0.1s ease 0s;
934
- -moz-transition: opacity 0.1s ease 0s;
935
- -o-transition: opacity 0.1s ease 0s;
936
- transition: opacity 0.1s ease 0s;
937
- }
938
- .lg-css3.lg-slide.lg-use-css3 .lg-item {
939
- opacity: 0;
940
- }
941
- .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
942
- -webkit-transform: translate3d(-100%, 0, 0);
943
- transform: translate3d(-100%, 0, 0);
944
- }
945
- .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
946
- -webkit-transform: translate3d(100%, 0, 0);
947
- transform: translate3d(100%, 0, 0);
948
- }
949
- .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
950
- -webkit-transform: translate3d(0, 0, 0);
951
- transform: translate3d(0, 0, 0);
952
- opacity: 1;
953
- }
954
- .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
955
- -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
956
- -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
957
- -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
958
- transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
959
- }
960
- .lg-css3.lg-slide.lg-use-left .lg-item {
961
- opacity: 0;
962
- position: absolute;
963
- left: 0;
964
- }
965
- .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
966
- left: -100%;
967
- }
968
- .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
969
- left: 100%;
970
- }
971
- .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
972
- left: 0;
973
- opacity: 1;
974
- }
975
- .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
976
- -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
977
- -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
978
- -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
979
- transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
980
- }
981
-
982
- /*# sourceMappingURL=lightgallery.css.map */
1
+ /*! lightgallery - v1.6.12 - 2019-02-19
2
+ * http://sachinchoolur.github.io/lightGallery/
3
+ * Copyright (c) 2019 Sachin N; Licensed GPLv3 */
4
+ @font-face {
5
+ font-family: 'lg';
6
+ src: url("fonts/lg.eot?n1z373");
7
+ src: url("fonts/lg.eot?#iefixn1z373") format("embedded-opentype"), url("fonts/lg.woff?n1z373") format("woff"), url("fonts/lg.ttf?n1z373") format("truetype"), url("fonts/lg.svg?n1z373#lg") format("svg");
8
+ font-weight: normal;
9
+ font-style: normal;
10
+ }
11
+ .lg-icon {
12
+ font-family: 'lg';
13
+ speak: none;
14
+ font-style: normal;
15
+ font-weight: normal;
16
+ font-variant: normal;
17
+ text-transform: none;
18
+ line-height: 1;
19
+ /* Better Font Rendering =========== */
20
+ -webkit-font-smoothing: antialiased;
21
+ -moz-osx-font-smoothing: grayscale;
22
+ }
23
+
24
+ .lg-actions .lg-next, .lg-actions .lg-prev {
25
+ background-color: rgba(0, 0, 0, 0.45);
26
+ border-radius: 2px;
27
+ color: #999;
28
+ cursor: pointer;
29
+ display: block;
30
+ font-size: 22px;
31
+ margin-top: -10px;
32
+ padding: 8px 10px 9px;
33
+ position: absolute;
34
+ top: 50%;
35
+ z-index: 1080;
36
+ border: none;
37
+ outline: none;
38
+ }
39
+ .lg-actions .lg-next.disabled, .lg-actions .lg-prev.disabled {
40
+ pointer-events: none;
41
+ opacity: 0.5;
42
+ }
43
+ .lg-actions .lg-next:hover, .lg-actions .lg-prev:hover {
44
+ color: #FFF;
45
+ }
46
+ .lg-actions .lg-next {
47
+ right: 20px;
48
+ }
49
+ .lg-actions .lg-next:before {
50
+ content: "\e095";
51
+ }
52
+ .lg-actions .lg-prev {
53
+ left: 20px;
54
+ }
55
+ .lg-actions .lg-prev:after {
56
+ content: "\e094";
57
+ }
58
+
59
+ @-webkit-keyframes lg-right-end {
60
+ 0% {
61
+ left: 0;
62
+ }
63
+ 50% {
64
+ left: -30px;
65
+ }
66
+ 100% {
67
+ left: 0;
68
+ }
69
+ }
70
+ @-moz-keyframes lg-right-end {
71
+ 0% {
72
+ left: 0;
73
+ }
74
+ 50% {
75
+ left: -30px;
76
+ }
77
+ 100% {
78
+ left: 0;
79
+ }
80
+ }
81
+ @-ms-keyframes lg-right-end {
82
+ 0% {
83
+ left: 0;
84
+ }
85
+ 50% {
86
+ left: -30px;
87
+ }
88
+ 100% {
89
+ left: 0;
90
+ }
91
+ }
92
+ @keyframes lg-right-end {
93
+ 0% {
94
+ left: 0;
95
+ }
96
+ 50% {
97
+ left: -30px;
98
+ }
99
+ 100% {
100
+ left: 0;
101
+ }
102
+ }
103
+ @-webkit-keyframes lg-left-end {
104
+ 0% {
105
+ left: 0;
106
+ }
107
+ 50% {
108
+ left: 30px;
109
+ }
110
+ 100% {
111
+ left: 0;
112
+ }
113
+ }
114
+ @-moz-keyframes lg-left-end {
115
+ 0% {
116
+ left: 0;
117
+ }
118
+ 50% {
119
+ left: 30px;
120
+ }
121
+ 100% {
122
+ left: 0;
123
+ }
124
+ }
125
+ @-ms-keyframes lg-left-end {
126
+ 0% {
127
+ left: 0;
128
+ }
129
+ 50% {
130
+ left: 30px;
131
+ }
132
+ 100% {
133
+ left: 0;
134
+ }
135
+ }
136
+ @keyframes lg-left-end {
137
+ 0% {
138
+ left: 0;
139
+ }
140
+ 50% {
141
+ left: 30px;
142
+ }
143
+ 100% {
144
+ left: 0;
145
+ }
146
+ }
147
+ .lg-outer.lg-right-end .lg-object {
148
+ -webkit-animation: lg-right-end 0.3s;
149
+ -o-animation: lg-right-end 0.3s;
150
+ animation: lg-right-end 0.3s;
151
+ position: relative;
152
+ }
153
+ .lg-outer.lg-left-end .lg-object {
154
+ -webkit-animation: lg-left-end 0.3s;
155
+ -o-animation: lg-left-end 0.3s;
156
+ animation: lg-left-end 0.3s;
157
+ position: relative;
158
+ }
159
+
160
+ .lg-toolbar {
161
+ z-index: 1082;
162
+ left: 0;
163
+ position: absolute;
164
+ top: 0;
165
+ width: 100%;
166
+ background-color: rgba(0, 0, 0, 0.45);
167
+ }
168
+ .lg-toolbar .lg-icon {
169
+ color: #999;
170
+ cursor: pointer;
171
+ float: right;
172
+ font-size: 24px;
173
+ height: 47px;
174
+ line-height: 27px;
175
+ padding: 10px 0;
176
+ text-align: center;
177
+ width: 50px;
178
+ text-decoration: none !important;
179
+ outline: medium none;
180
+ -webkit-transition: color 0.2s linear;
181
+ -o-transition: color 0.2s linear;
182
+ transition: color 0.2s linear;
183
+ }
184
+ .lg-toolbar .lg-icon:hover {
185
+ color: #FFF;
186
+ }
187
+ .lg-toolbar .lg-close:after {
188
+ content: "\e070";
189
+ }
190
+ .lg-toolbar .lg-download:after {
191
+ content: "\e0f2";
192
+ }
193
+
194
+ .lg-sub-html {
195
+ background-color: rgba(0, 0, 0, 0.45);
196
+ bottom: 0;
197
+ color: #EEE;
198
+ font-size: 16px;
199
+ left: 0;
200
+ padding: 10px 40px;
201
+ position: fixed;
202
+ right: 0;
203
+ text-align: center;
204
+ z-index: 1080;
205
+ }
206
+ .lg-sub-html h4 {
207
+ margin: 0;
208
+ font-size: 13px;
209
+ font-weight: bold;
210
+ }
211
+ .lg-sub-html p {
212
+ font-size: 12px;
213
+ margin: 5px 0 0;
214
+ }
215
+
216
+ #lg-counter {
217
+ color: #999;
218
+ display: inline-block;
219
+ font-size: 16px;
220
+ padding-left: 20px;
221
+ padding-top: 12px;
222
+ vertical-align: middle;
223
+ }
224
+
225
+ .lg-toolbar, .lg-prev, .lg-next {
226
+ opacity: 1;
227
+ -webkit-transition: -webkit-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
228
+ -moz-transition: -moz-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
229
+ -o-transition: -o-transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
230
+ transition: transform 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.35s cubic-bezier(0, 0, 0.25, 1) 0s, color 0.2s linear;
231
+ }
232
+
233
+ .lg-hide-items .lg-prev {
234
+ opacity: 0;
235
+ -webkit-transform: translate3d(-10px, 0, 0);
236
+ transform: translate3d(-10px, 0, 0);
237
+ }
238
+ .lg-hide-items .lg-next {
239
+ opacity: 0;
240
+ -webkit-transform: translate3d(10px, 0, 0);
241
+ transform: translate3d(10px, 0, 0);
242
+ }
243
+ .lg-hide-items .lg-toolbar {
244
+ opacity: 0;
245
+ -webkit-transform: translate3d(0, -10px, 0);
246
+ transform: translate3d(0, -10px, 0);
247
+ }
248
+
249
+ body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-object {
250
+ -webkit-transform: scale3d(0.5, 0.5, 0.5);
251
+ transform: scale3d(0.5, 0.5, 0.5);
252
+ opacity: 0;
253
+ -webkit-transition: -webkit-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
254
+ -moz-transition: -moz-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
255
+ -o-transition: -o-transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
256
+ transition: transform 250ms cubic-bezier(0, 0, 0.25, 1) 0s, opacity 250ms cubic-bezier(0, 0, 0.25, 1) !important;
257
+ -webkit-transform-origin: 50% 50%;
258
+ -moz-transform-origin: 50% 50%;
259
+ -ms-transform-origin: 50% 50%;
260
+ transform-origin: 50% 50%;
261
+ }
262
+ body:not(.lg-from-hash) .lg-outer.lg-start-zoom .lg-item.lg-complete .lg-object {
263
+ -webkit-transform: scale3d(1, 1, 1);
264
+ transform: scale3d(1, 1, 1);
265
+ opacity: 1;
266
+ }
267
+
268
+ .lg-outer .lg-thumb-outer {
269
+ background-color: #0D0A0A;
270
+ bottom: 0;
271
+ position: absolute;
272
+ width: 100%;
273
+ z-index: 1080;
274
+ max-height: 350px;
275
+ -webkit-transform: translate3d(0, 100%, 0);
276
+ transform: translate3d(0, 100%, 0);
277
+ -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
278
+ -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
279
+ -o-transition: -o-transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
280
+ transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1) 0s;
281
+ }
282
+ .lg-outer .lg-thumb-outer.lg-grab .lg-thumb-item {
283
+ cursor: -webkit-grab;
284
+ cursor: -moz-grab;
285
+ cursor: -o-grab;
286
+ cursor: -ms-grab;
287
+ cursor: grab;
288
+ }
289
+ .lg-outer .lg-thumb-outer.lg-grabbing .lg-thumb-item {
290
+ cursor: move;
291
+ cursor: -webkit-grabbing;
292
+ cursor: -moz-grabbing;
293
+ cursor: -o-grabbing;
294
+ cursor: -ms-grabbing;
295
+ cursor: grabbing;
296
+ }
297
+ .lg-outer .lg-thumb-outer.lg-dragging .lg-thumb {
298
+ -webkit-transition-duration: 0s !important;
299
+ transition-duration: 0s !important;
300
+ }
301
+ .lg-outer.lg-thumb-open .lg-thumb-outer {
302
+ -webkit-transform: translate3d(0, 0%, 0);
303
+ transform: translate3d(0, 0%, 0);
304
+ }
305
+ .lg-outer .lg-thumb {
306
+ padding: 10px 0;
307
+ height: 100%;
308
+ margin-bottom: -5px;
309
+ }
310
+ .lg-outer .lg-thumb-item {
311
+ border-radius: 5px;
312
+ cursor: pointer;
313
+ float: left;
314
+ overflow: hidden;
315
+ height: 100%;
316
+ border: 2px solid #FFF;
317
+ border-radius: 4px;
318
+ margin-bottom: 5px;
319
+ }
320
+ @media (min-width: 1025px) {
321
+ .lg-outer .lg-thumb-item {
322
+ -webkit-transition: border-color 0.25s ease;
323
+ -o-transition: border-color 0.25s ease;
324
+ transition: border-color 0.25s ease;
325
+ }
326
+ }
327
+ .lg-outer .lg-thumb-item.active, .lg-outer .lg-thumb-item:hover {
328
+ border-color: #a90707;
329
+ }
330
+ .lg-outer .lg-thumb-item img {
331
+ width: 100%;
332
+ height: 100%;
333
+ object-fit: cover;
334
+ }
335
+ .lg-outer.lg-has-thumb .lg-item {
336
+ padding-bottom: 120px;
337
+ }
338
+ .lg-outer.lg-can-toggle .lg-item {
339
+ padding-bottom: 0;
340
+ }
341
+ .lg-outer.lg-pull-caption-up .lg-sub-html {
342
+ -webkit-transition: bottom 0.25s ease;
343
+ -o-transition: bottom 0.25s ease;
344
+ transition: bottom 0.25s ease;
345
+ }
346
+ .lg-outer.lg-pull-caption-up.lg-thumb-open .lg-sub-html {
347
+ bottom: 100px;
348
+ }
349
+ .lg-outer .lg-toogle-thumb {
350
+ background-color: #0D0A0A;
351
+ border-radius: 2px 2px 0 0;
352
+ color: #999;
353
+ cursor: pointer;
354
+ font-size: 24px;
355
+ height: 39px;
356
+ line-height: 27px;
357
+ padding: 5px 0;
358
+ position: absolute;
359
+ right: 20px;
360
+ text-align: center;
361
+ top: -39px;
362
+ width: 50px;
363
+ }
364
+ .lg-outer .lg-toogle-thumb:after {
365
+ content: "\e1ff";
366
+ }
367
+ .lg-outer .lg-toogle-thumb:hover {
368
+ color: #FFF;
369
+ }
370
+
371
+ .lg-outer .lg-video-cont {
372
+ display: inline-block;
373
+ vertical-align: middle;
374
+ max-width: 1140px;
375
+ max-height: 100%;
376
+ width: 100%;
377
+ padding: 0 5px;
378
+ }
379
+ .lg-outer .lg-video {
380
+ width: 100%;
381
+ height: 0;
382
+ padding-bottom: 56.25%;
383
+ overflow: hidden;
384
+ position: relative;
385
+ }
386
+ .lg-outer .lg-video .lg-object {
387
+ display: inline-block;
388
+ position: absolute;
389
+ top: 0;
390
+ left: 0;
391
+ width: 100% !important;
392
+ height: 100% !important;
393
+ }
394
+ .lg-outer .lg-video .lg-video-play {
395
+ width: 84px;
396
+ height: 59px;
397
+ position: absolute;
398
+ left: 50%;
399
+ top: 50%;
400
+ margin-left: -42px;
401
+ margin-top: -30px;
402
+ z-index: 1080;
403
+ cursor: pointer;
404
+ }
405
+ .lg-outer .lg-has-iframe .lg-video {
406
+ -webkit-overflow-scrolling: touch;
407
+ overflow: auto;
408
+ }
409
+ .lg-outer .lg-has-vimeo .lg-video-play {
410
+ background: url("img/vimeo-play.png") no-repeat scroll 0 0 transparent;
411
+ }
412
+ .lg-outer .lg-has-vimeo:hover .lg-video-play {
413
+ background: url("img/vimeo-play.png") no-repeat scroll 0 -58px transparent;
414
+ }
415
+ .lg-outer .lg-has-html5 .lg-video-play {
416
+ background: transparent url("img/video-play.png") no-repeat scroll 0 0;
417
+ height: 64px;
418
+ margin-left: -32px;
419
+ margin-top: -32px;
420
+ width: 64px;
421
+ opacity: 0.8;
422
+ }
423
+ .lg-outer .lg-has-html5:hover .lg-video-play {
424
+ opacity: 1;
425
+ }
426
+ .lg-outer .lg-has-youtube .lg-video-play {
427
+ background: url("img/youtube-play.png") no-repeat scroll 0 0 transparent;
428
+ }
429
+ .lg-outer .lg-has-youtube:hover .lg-video-play {
430
+ background: url("img/youtube-play.png") no-repeat scroll 0 -60px transparent;
431
+ }
432
+ .lg-outer .lg-video-object {
433
+ width: 100% !important;
434
+ height: 100% !important;
435
+ position: absolute;
436
+ top: 0;
437
+ left: 0;
438
+ }
439
+ .lg-outer .lg-has-video .lg-video-object {
440
+ visibility: hidden;
441
+ }
442
+ .lg-outer .lg-has-video.lg-video-playing .lg-object, .lg-outer .lg-has-video.lg-video-playing .lg-video-play {
443
+ display: none;
444
+ }
445
+ .lg-outer .lg-has-video.lg-video-playing .lg-video-object {
446
+ visibility: visible;
447
+ }
448
+
449
+ .lg-progress-bar {
450
+ background-color: #333;
451
+ height: 5px;
452
+ left: 0;
453
+ position: absolute;
454
+ top: 0;
455
+ width: 100%;
456
+ z-index: 1083;
457
+ opacity: 0;
458
+ -webkit-transition: opacity 0.08s ease 0s;
459
+ -moz-transition: opacity 0.08s ease 0s;
460
+ -o-transition: opacity 0.08s ease 0s;
461
+ transition: opacity 0.08s ease 0s;
462
+ }
463
+ .lg-progress-bar .lg-progress {
464
+ background-color: #a90707;
465
+ height: 5px;
466
+ width: 0;
467
+ }
468
+ .lg-progress-bar.lg-start .lg-progress {
469
+ width: 100%;
470
+ }
471
+ .lg-show-autoplay .lg-progress-bar {
472
+ opacity: 1;
473
+ }
474
+
475
+ .lg-autoplay-button:after {
476
+ content: "\e01d";
477
+ }
478
+ .lg-show-autoplay .lg-autoplay-button:after {
479
+ content: "\e01a";
480
+ }
481
+
482
+ .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-img-wrap, .lg-outer.lg-css3.lg-zoom-dragging .lg-item.lg-complete.lg-zoomable .lg-image {
483
+ -webkit-transition-duration: 0s;
484
+ transition-duration: 0s;
485
+ }
486
+ .lg-outer.lg-use-transition-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
487
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
488
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
489
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
490
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
491
+ }
492
+ .lg-outer.lg-use-left-for-zoom .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
493
+ -webkit-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
494
+ -moz-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
495
+ -o-transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
496
+ transition: left 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, top 0.3s cubic-bezier(0, 0, 0.25, 1) 0s;
497
+ }
498
+ .lg-outer .lg-item.lg-complete.lg-zoomable .lg-img-wrap {
499
+ -webkit-transform: translate3d(0, 0, 0);
500
+ transform: translate3d(0, 0, 0);
501
+ -webkit-backface-visibility: hidden;
502
+ -moz-backface-visibility: hidden;
503
+ backface-visibility: hidden;
504
+ }
505
+ .lg-outer .lg-item.lg-complete.lg-zoomable .lg-image {
506
+ -webkit-transform: scale3d(1, 1, 1);
507
+ transform: scale3d(1, 1, 1);
508
+ -webkit-transition: -webkit-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
509
+ -moz-transition: -moz-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
510
+ -o-transition: -o-transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
511
+ transition: transform 0.3s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.15s !important;
512
+ -webkit-transform-origin: 0 0;
513
+ -moz-transform-origin: 0 0;
514
+ -ms-transform-origin: 0 0;
515
+ transform-origin: 0 0;
516
+ -webkit-backface-visibility: hidden;
517
+ -moz-backface-visibility: hidden;
518
+ backface-visibility: hidden;
519
+ }
520
+
521
+ #lg-zoom-in:after {
522
+ content: "\e311";
523
+ }
524
+
525
+ #lg-actual-size {
526
+ font-size: 20px;
527
+ }
528
+ #lg-actual-size:after {
529
+ content: "\e033";
530
+ }
531
+
532
+ #lg-zoom-out {
533
+ opacity: 0.5;
534
+ pointer-events: none;
535
+ }
536
+ #lg-zoom-out:after {
537
+ content: "\e312";
538
+ }
539
+ .lg-zoomed #lg-zoom-out {
540
+ opacity: 1;
541
+ pointer-events: auto;
542
+ }
543
+
544
+ .lg-outer .lg-pager-outer {
545
+ bottom: 60px;
546
+ left: 0;
547
+ position: absolute;
548
+ right: 0;
549
+ text-align: center;
550
+ z-index: 1080;
551
+ height: 10px;
552
+ }
553
+ .lg-outer .lg-pager-outer.lg-pager-hover .lg-pager-cont {
554
+ overflow: visible;
555
+ }
556
+ .lg-outer .lg-pager-cont {
557
+ cursor: pointer;
558
+ display: inline-block;
559
+ overflow: hidden;
560
+ position: relative;
561
+ vertical-align: top;
562
+ margin: 0 5px;
563
+ }
564
+ .lg-outer .lg-pager-cont:hover .lg-pager-thumb-cont {
565
+ opacity: 1;
566
+ -webkit-transform: translate3d(0, 0, 0);
567
+ transform: translate3d(0, 0, 0);
568
+ }
569
+ .lg-outer .lg-pager-cont.lg-pager-active .lg-pager {
570
+ box-shadow: 0 0 0 2px white inset;
571
+ }
572
+ .lg-outer .lg-pager-thumb-cont {
573
+ background-color: #fff;
574
+ color: #FFF;
575
+ bottom: 100%;
576
+ height: 83px;
577
+ left: 0;
578
+ margin-bottom: 20px;
579
+ margin-left: -60px;
580
+ opacity: 0;
581
+ padding: 5px;
582
+ position: absolute;
583
+ width: 120px;
584
+ border-radius: 3px;
585
+ -webkit-transition: opacity 0.15s ease 0s, -webkit-transform 0.15s ease 0s;
586
+ -moz-transition: opacity 0.15s ease 0s, -moz-transform 0.15s ease 0s;
587
+ -o-transition: opacity 0.15s ease 0s, -o-transform 0.15s ease 0s;
588
+ transition: opacity 0.15s ease 0s, transform 0.15s ease 0s;
589
+ -webkit-transform: translate3d(0, 5px, 0);
590
+ transform: translate3d(0, 5px, 0);
591
+ }
592
+ .lg-outer .lg-pager-thumb-cont img {
593
+ width: 100%;
594
+ height: 100%;
595
+ }
596
+ .lg-outer .lg-pager {
597
+ background-color: rgba(255, 255, 255, 0.5);
598
+ border-radius: 50%;
599
+ box-shadow: 0 0 0 8px rgba(255, 255, 255, 0.7) inset;
600
+ display: block;
601
+ height: 12px;
602
+ -webkit-transition: box-shadow 0.3s ease 0s;
603
+ -o-transition: box-shadow 0.3s ease 0s;
604
+ transition: box-shadow 0.3s ease 0s;
605
+ width: 12px;
606
+ }
607
+ .lg-outer .lg-pager:hover, .lg-outer .lg-pager:focus {
608
+ box-shadow: 0 0 0 8px white inset;
609
+ }
610
+ .lg-outer .lg-caret {
611
+ border-left: 10px solid transparent;
612
+ border-right: 10px solid transparent;
613
+ border-top: 10px dashed;
614
+ bottom: -10px;
615
+ display: inline-block;
616
+ height: 0;
617
+ left: 50%;
618
+ margin-left: -5px;
619
+ position: absolute;
620
+ vertical-align: middle;
621
+ width: 0;
622
+ }
623
+
624
+ .lg-fullscreen:after {
625
+ content: "\e20c";
626
+ }
627
+ .lg-fullscreen-on .lg-fullscreen:after {
628
+ content: "\e20d";
629
+ }
630
+
631
+ .lg-outer #lg-dropdown-overlay {
632
+ background-color: rgba(0, 0, 0, 0.25);
633
+ bottom: 0;
634
+ cursor: default;
635
+ left: 0;
636
+ position: fixed;
637
+ right: 0;
638
+ top: 0;
639
+ z-index: 1081;
640
+ opacity: 0;
641
+ visibility: hidden;
642
+ -webkit-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
643
+ -o-transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
644
+ transition: visibility 0s linear 0.18s, opacity 0.18s linear 0s;
645
+ }
646
+ .lg-outer.lg-dropdown-active .lg-dropdown, .lg-outer.lg-dropdown-active #lg-dropdown-overlay {
647
+ -webkit-transition-delay: 0s;
648
+ transition-delay: 0s;
649
+ -moz-transform: translate3d(0, 0px, 0);
650
+ -o-transform: translate3d(0, 0px, 0);
651
+ -ms-transform: translate3d(0, 0px, 0);
652
+ -webkit-transform: translate3d(0, 0px, 0);
653
+ transform: translate3d(0, 0px, 0);
654
+ opacity: 1;
655
+ visibility: visible;
656
+ }
657
+ .lg-outer.lg-dropdown-active #lg-share {
658
+ color: #FFF;
659
+ }
660
+ .lg-outer .lg-dropdown {
661
+ background-color: #fff;
662
+ border-radius: 2px;
663
+ font-size: 14px;
664
+ list-style-type: none;
665
+ margin: 0;
666
+ padding: 10px 0;
667
+ position: absolute;
668
+ right: 0;
669
+ text-align: left;
670
+ top: 50px;
671
+ opacity: 0;
672
+ visibility: hidden;
673
+ -moz-transform: translate3d(0, 5px, 0);
674
+ -o-transform: translate3d(0, 5px, 0);
675
+ -ms-transform: translate3d(0, 5px, 0);
676
+ -webkit-transform: translate3d(0, 5px, 0);
677
+ transform: translate3d(0, 5px, 0);
678
+ -webkit-transition: -webkit-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
679
+ -moz-transition: -moz-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
680
+ -o-transition: -o-transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
681
+ transition: transform 0.18s linear 0s, visibility 0s linear 0.5s, opacity 0.18s linear 0s;
682
+ }
683
+ .lg-outer .lg-dropdown:after {
684
+ content: "";
685
+ display: block;
686
+ height: 0;
687
+ width: 0;
688
+ position: absolute;
689
+ border: 8px solid transparent;
690
+ border-bottom-color: #FFF;
691
+ right: 16px;
692
+ top: -16px;
693
+ }
694
+ .lg-outer .lg-dropdown > li:last-child {
695
+ margin-bottom: 0px;
696
+ }
697
+ .lg-outer .lg-dropdown > li:hover a, .lg-outer .lg-dropdown > li:hover .lg-icon {
698
+ color: #333;
699
+ }
700
+ .lg-outer .lg-dropdown a {
701
+ color: #333;
702
+ display: block;
703
+ white-space: pre;
704
+ padding: 4px 12px;
705
+ font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;
706
+ font-size: 12px;
707
+ }
708
+ .lg-outer .lg-dropdown a:hover {
709
+ background-color: rgba(0, 0, 0, 0.07);
710
+ }
711
+ .lg-outer .lg-dropdown .lg-dropdown-text {
712
+ display: inline-block;
713
+ line-height: 1;
714
+ margin-top: -3px;
715
+ vertical-align: middle;
716
+ }
717
+ .lg-outer .lg-dropdown .lg-icon {
718
+ color: #333;
719
+ display: inline-block;
720
+ float: none;
721
+ font-size: 20px;
722
+ height: auto;
723
+ line-height: 1;
724
+ margin-right: 8px;
725
+ padding: 0;
726
+ vertical-align: middle;
727
+ width: auto;
728
+ }
729
+ .lg-outer #lg-share {
730
+ position: relative;
731
+ }
732
+ .lg-outer #lg-share:after {
733
+ content: "\e80d";
734
+ }
735
+ .lg-outer #lg-share-facebook .lg-icon {
736
+ color: #3b5998;
737
+ }
738
+ .lg-outer #lg-share-facebook .lg-icon:after {
739
+ content: "\e901";
740
+ }
741
+ .lg-outer #lg-share-twitter .lg-icon {
742
+ color: #00aced;
743
+ }
744
+ .lg-outer #lg-share-twitter .lg-icon:after {
745
+ content: "\e904";
746
+ }
747
+ .lg-outer #lg-share-googleplus .lg-icon {
748
+ color: #dd4b39;
749
+ }
750
+ .lg-outer #lg-share-googleplus .lg-icon:after {
751
+ content: "\e902";
752
+ }
753
+ .lg-outer #lg-share-pinterest .lg-icon {
754
+ color: #cb2027;
755
+ }
756
+ .lg-outer #lg-share-pinterest .lg-icon:after {
757
+ content: "\e903";
758
+ }
759
+
760
+ .lg-group:after {
761
+ content: "";
762
+ display: table;
763
+ clear: both;
764
+ }
765
+
766
+ .lg-outer {
767
+ width: 100%;
768
+ height: 100%;
769
+ position: fixed;
770
+ top: 0;
771
+ left: 0;
772
+ z-index: 1050;
773
+ text-align: left;
774
+ opacity: 0;
775
+ -webkit-transition: opacity 0.15s ease 0s;
776
+ -o-transition: opacity 0.15s ease 0s;
777
+ transition: opacity 0.15s ease 0s;
778
+ }
779
+ .lg-outer * {
780
+ -webkit-box-sizing: border-box;
781
+ -moz-box-sizing: border-box;
782
+ box-sizing: border-box;
783
+ }
784
+ .lg-outer.lg-visible {
785
+ opacity: 1;
786
+ }
787
+ .lg-outer.lg-css3 .lg-item.lg-prev-slide, .lg-outer.lg-css3 .lg-item.lg-next-slide, .lg-outer.lg-css3 .lg-item.lg-current {
788
+ -webkit-transition-duration: inherit !important;
789
+ transition-duration: inherit !important;
790
+ -webkit-transition-timing-function: inherit !important;
791
+ transition-timing-function: inherit !important;
792
+ }
793
+ .lg-outer.lg-css3.lg-dragging .lg-item.lg-prev-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-next-slide, .lg-outer.lg-css3.lg-dragging .lg-item.lg-current {
794
+ -webkit-transition-duration: 0s !important;
795
+ transition-duration: 0s !important;
796
+ opacity: 1;
797
+ }
798
+ .lg-outer.lg-grab img.lg-object {
799
+ cursor: -webkit-grab;
800
+ cursor: -moz-grab;
801
+ cursor: -o-grab;
802
+ cursor: -ms-grab;
803
+ cursor: grab;
804
+ }
805
+ .lg-outer.lg-grabbing img.lg-object {
806
+ cursor: move;
807
+ cursor: -webkit-grabbing;
808
+ cursor: -moz-grabbing;
809
+ cursor: -o-grabbing;
810
+ cursor: -ms-grabbing;
811
+ cursor: grabbing;
812
+ }
813
+ .lg-outer .lg {
814
+ height: 100%;
815
+ width: 100%;
816
+ position: relative;
817
+ overflow: hidden;
818
+ margin-left: auto;
819
+ margin-right: auto;
820
+ max-width: 100%;
821
+ max-height: 100%;
822
+ }
823
+ .lg-outer .lg-inner {
824
+ width: 100%;
825
+ height: 100%;
826
+ position: absolute;
827
+ left: 0;
828
+ top: 0;
829
+ white-space: nowrap;
830
+ }
831
+ .lg-outer .lg-item {
832
+ background: url("img/loading.gif") no-repeat scroll center center transparent;
833
+ display: none !important;
834
+ }
835
+ .lg-outer.lg-css3 .lg-prev-slide, .lg-outer.lg-css3 .lg-current, .lg-outer.lg-css3 .lg-next-slide {
836
+ display: inline-block !important;
837
+ }
838
+ .lg-outer.lg-css .lg-current {
839
+ display: inline-block !important;
840
+ }
841
+ .lg-outer .lg-item, .lg-outer .lg-img-wrap {
842
+ display: inline-block;
843
+ text-align: center;
844
+ position: absolute;
845
+ width: 100%;
846
+ height: 100%;
847
+ }
848
+ .lg-outer .lg-item:before, .lg-outer .lg-img-wrap:before {
849
+ content: "";
850
+ display: inline-block;
851
+ height: 50%;
852
+ width: 1px;
853
+ margin-right: -1px;
854
+ }
855
+ .lg-outer .lg-img-wrap {
856
+ position: absolute;
857
+ padding: 0 5px;
858
+ left: 0;
859
+ right: 0;
860
+ top: 0;
861
+ bottom: 0;
862
+ }
863
+ .lg-outer .lg-item.lg-complete {
864
+ background-image: none;
865
+ }
866
+ .lg-outer .lg-item.lg-current {
867
+ z-index: 1060;
868
+ }
869
+ .lg-outer .lg-image {
870
+ display: inline-block;
871
+ vertical-align: middle;
872
+ max-width: 100%;
873
+ max-height: 100%;
874
+ width: auto !important;
875
+ height: auto !important;
876
+ }
877
+ .lg-outer.lg-show-after-load .lg-item .lg-object, .lg-outer.lg-show-after-load .lg-item .lg-video-play {
878
+ opacity: 0;
879
+ -webkit-transition: opacity 0.15s ease 0s;
880
+ -o-transition: opacity 0.15s ease 0s;
881
+ transition: opacity 0.15s ease 0s;
882
+ }
883
+ .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-object, .lg-outer.lg-show-after-load .lg-item.lg-complete .lg-video-play {
884
+ opacity: 1;
885
+ }
886
+ .lg-outer .lg-empty-html {
887
+ display: none;
888
+ }
889
+ .lg-outer.lg-hide-download #lg-download {
890
+ display: none;
891
+ }
892
+
893
+ .lg-backdrop {
894
+ position: fixed;
895
+ top: 0;
896
+ left: 0;
897
+ right: 0;
898
+ bottom: 0;
899
+ z-index: 1040;
900
+ background-color: #000;
901
+ opacity: 0;
902
+ -webkit-transition: opacity 0.15s ease 0s;
903
+ -o-transition: opacity 0.15s ease 0s;
904
+ transition: opacity 0.15s ease 0s;
905
+ }
906
+ .lg-backdrop.in {
907
+ opacity: 1;
908
+ }
909
+
910
+ .lg-css3.lg-no-trans .lg-prev-slide, .lg-css3.lg-no-trans .lg-next-slide, .lg-css3.lg-no-trans .lg-current {
911
+ -webkit-transition: none 0s ease 0s !important;
912
+ -moz-transition: none 0s ease 0s !important;
913
+ -o-transition: none 0s ease 0s !important;
914
+ transition: none 0s ease 0s !important;
915
+ }
916
+ .lg-css3.lg-use-css3 .lg-item {
917
+ -webkit-backface-visibility: hidden;
918
+ -moz-backface-visibility: hidden;
919
+ backface-visibility: hidden;
920
+ }
921
+ .lg-css3.lg-use-left .lg-item {
922
+ -webkit-backface-visibility: hidden;
923
+ -moz-backface-visibility: hidden;
924
+ backface-visibility: hidden;
925
+ }
926
+ .lg-css3.lg-fade .lg-item {
927
+ opacity: 0;
928
+ }
929
+ .lg-css3.lg-fade .lg-item.lg-current {
930
+ opacity: 1;
931
+ }
932
+ .lg-css3.lg-fade .lg-item.lg-prev-slide, .lg-css3.lg-fade .lg-item.lg-next-slide, .lg-css3.lg-fade .lg-item.lg-current {
933
+ -webkit-transition: opacity 0.1s ease 0s;
934
+ -moz-transition: opacity 0.1s ease 0s;
935
+ -o-transition: opacity 0.1s ease 0s;
936
+ transition: opacity 0.1s ease 0s;
937
+ }
938
+ .lg-css3.lg-slide.lg-use-css3 .lg-item {
939
+ opacity: 0;
940
+ }
941
+ .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide {
942
+ -webkit-transform: translate3d(-100%, 0, 0);
943
+ transform: translate3d(-100%, 0, 0);
944
+ }
945
+ .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide {
946
+ -webkit-transform: translate3d(100%, 0, 0);
947
+ transform: translate3d(100%, 0, 0);
948
+ }
949
+ .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
950
+ -webkit-transform: translate3d(0, 0, 0);
951
+ transform: translate3d(0, 0, 0);
952
+ opacity: 1;
953
+ }
954
+ .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-css3 .lg-item.lg-current {
955
+ -webkit-transition: -webkit-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
956
+ -moz-transition: -moz-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
957
+ -o-transition: -o-transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
958
+ transition: transform 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
959
+ }
960
+ .lg-css3.lg-slide.lg-use-left .lg-item {
961
+ opacity: 0;
962
+ position: absolute;
963
+ left: 0;
964
+ }
965
+ .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide {
966
+ left: -100%;
967
+ }
968
+ .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide {
969
+ left: 100%;
970
+ }
971
+ .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
972
+ left: 0;
973
+ opacity: 1;
974
+ }
975
+ .lg-css3.lg-slide.lg-use-left .lg-item.lg-prev-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-next-slide, .lg-css3.lg-slide.lg-use-left .lg-item.lg-current {
976
+ -webkit-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
977
+ -moz-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
978
+ -o-transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
979
+ transition: left 1s cubic-bezier(0, 0, 0.25, 1) 0s, opacity 0.1s ease 0s;
980
+ }
981
+
982
+ /*# sourceMappingURL=lightgallery.css.map */
assets/css/library-frontend.css CHANGED
@@ -1,709 +1,709 @@
1
- /*--------------------------------------------------------------
2
- == Library - Predefined Styles
3
- --------------------------------------------------------------*/
4
- #wpr-library-btn {
5
- display: -webkit-inline-box;
6
- display: -ms-inline-flexbox;
7
- display: inline-flex;
8
- width: 40px;
9
- height: 40px;
10
- vertical-align: top;
11
- margin-left: 10px;
12
- color: #fff;
13
- font-family: Arial,Helvetica,sans-serif;
14
- font-weight: bold;
15
- letter-spacing: 0.3px;
16
- cursor: pointer;
17
- }
18
-
19
- .wpr-library-icon {
20
- display: -webkit-inline-box;
21
- display: -ms-inline-flexbox;
22
- display: inline-flex;
23
- padding: 10px;
24
- margin-right: 10px;
25
- border-radius: 50%;
26
- color: transparent;
27
- font-family: Arial,Helvetica,sans-serif;
28
- font-size: 14px;
29
- font-weight: bold;
30
- letter-spacing: 0.3px;
31
- }
32
-
33
- .wpr-tplib-popup-overlay {
34
- position: fixed;
35
- top: 0;
36
- left: 0;
37
- z-index: 999999;
38
- width: 100%;
39
- height: 100%;
40
- background: rgba(0,0,0,0.5);
41
- }
42
-
43
- .wpr-tplib-popup {
44
- overflow: hidden;
45
- position: absolute;
46
- top: 30%;
47
- left: 50%;
48
- -webkit-transform: translate(-50%,-30%);
49
- -ms-transform: translate(-50%,-30%);
50
- transform: translate(-50%,-30%);
51
- background: #f1f3f5;
52
- min-width: 100%;
53
- height: 100%;
54
- }
55
-
56
- .wpr-tplib-header {
57
- display: -webkit-box;
58
- display: -ms-flexbox;
59
- display: flex;
60
- -webkit-box-align: center;
61
- -ms-flex-align: center;
62
- align-items: center;
63
- background-color: #fff;
64
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
65
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
66
- position: relative;
67
- z-index: 10;
68
- }
69
-
70
- .wpr-tplib-logo {
71
- display: -webkit-box;
72
- display: -ms-flexbox;
73
- display: flex;
74
- -webkit-box-align: center;
75
- -ms-flex-align: center;
76
- align-items: center;
77
- -webkit-box-pack: start;
78
- -ms-flex-pack: start;
79
- justify-content: flex-start;
80
- width: 200px;
81
- padding-left: 30px;
82
- color: #495157;
83
- font-size: 15px;
84
- font-weight: 700;
85
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
86
- }
87
-
88
- .wpr-tplib-header ul {
89
- display: -webkit-inline-box;
90
- display: -ms-inline-flexbox;
91
- display: inline-flex;
92
- -webkit-box-pack: center;
93
- -ms-flex-pack: center;
94
- justify-content: center;
95
- width: 100%;
96
- margin-left: -130px;
97
- list-style: none;
98
- }
99
-
100
- .wpr-tplib-header ul li {
101
- width: 115px;
102
- padding: 20px 0;
103
- color: #6d7882;
104
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
105
- font-size: 14px;
106
- line-height: 1;
107
- font-weight: 500;
108
- text-align: center;
109
- cursor: pointer;
110
-
111
- }
112
-
113
- .wpr-tplib-active-tab {
114
- background-image: -o-linear-gradient(top,#f1f3f5,#fff);
115
- background-image: -webkit-gradient(linear,left top, left bottom,from(#f1f3f5),to(#fff));
116
- background-image: linear-gradient(180deg,#f1f3f5,#fff);
117
- border-bottom: 3px solid #6A4BFF;
118
- }
119
-
120
- .wpr-tplib-close {
121
- display: -webkit-box;
122
- display: -ms-flexbox;
123
- display: flex;
124
- -webkit-box-align: center;
125
- -ms-flex-align: center;
126
- align-items: center;
127
- -webkit-box-pack: end;
128
- -ms-flex-pack: end;
129
- justify-content: flex-end;
130
- padding-right: 30px;
131
- color: #a4afb7;
132
- font-size: 18px;
133
- cursor: pointer;
134
- -webkit-transition: all .3s;
135
- -o-transition: all .3s;
136
- transition: all .3s;
137
- }
138
-
139
- .wpr-tplib-close:hover {
140
- color: #3a3a3a;
141
- }
142
-
143
- .wpr-tplib-close i {
144
- line-height: 20px;
145
- padding-left: 20px;
146
- }
147
-
148
- .wpr-tplib-popup h3 {
149
- margin: 0;
150
- }
151
-
152
- .wpr-tplib-header .wpr-tplib-insert-template {
153
- display: none;
154
- width: 120px;
155
- height: 27px;
156
- line-height: 27px;
157
- padding: 0 15px;
158
- margin-right: 15px;
159
- color: #fff;
160
- background-color: #6A4BFF;
161
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
162
- font-size: 13px;
163
- border-radius: 2px;
164
- text-transform: uppercase;
165
- cursor: pointer;
166
- text-align: center;
167
- }
168
-
169
- .wpr-tplib-back {
170
- display: none;
171
- width: 230px;
172
- padding: 17px 15px;
173
- border-right: 1px solid #e6e9ec;
174
- color: #6d7882;
175
- font-size: 15px;
176
- font-weight: 700;
177
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
178
- cursor: pointer;
179
- -webkit-transition: all .3s;
180
- -o-transition: all .3s;
181
- transition: all .3s;
182
- }
183
-
184
- .wpr-tplib-back:hover {
185
- color: #495157;
186
- }
187
-
188
- .wpr-tplib-back i {
189
- margin-right: 5px;
190
- }
191
-
192
- .wpr-tplib-back span {
193
-
194
- }
195
-
196
- .wpr-tplib-content-wrap {
197
- }
198
-
199
- .wpr-tplib-sidebar {
200
- padding: 30px 30px 20px 30px;
201
- }
202
-
203
- .wpr-tplib-sidebar .wpr-tplib-search {
204
- display: none;
205
- position: relative;
206
- margin: 30px 0;
207
- }
208
-
209
- .wpr-tplib-sidebar .wpr-tplib-search i {
210
- position: absolute;
211
- top: 50%;
212
- right: 10px;
213
- font-size: 12px;
214
- -webkit-transform: translateY(-50%);
215
- -ms-transform: translateY(-50%);
216
- transform: translateY(-50%);
217
- }
218
-
219
- .wpr-tplib-sidebar .wpr-tplib-search input {
220
- width: 100%;
221
- padding: 8px 10px;
222
- border: 0;
223
- border-bottom: 1px solid #efefef;
224
- }
225
-
226
- .wpr-tplib-sidebar .wpr-tplib-search input::-webkit-input-placeholder {
227
- color: #9a9a9a;
228
- }
229
-
230
- .wpr-tplib-sidebar .wpr-tplib-search input::-moz-placeholder {
231
- color: #9a9a9a;
232
- }
233
-
234
- .wpr-tplib-sidebar .wpr-tplib-search input:-ms-input-placeholder {
235
- color: #9a9a9a;
236
- }
237
-
238
- .wpr-tplib-sidebar .wpr-tplib-search input::-ms-input-placeholder {
239
- color: #9a9a9a;
240
- }
241
-
242
- .wpr-tplib-sidebar .wpr-tplib-search input::placeholder {
243
- color: #9a9a9a;
244
- }
245
-
246
- .wpr-tplib-filters-wrap {
247
- display: -webkit-box;
248
- display: -ms-flexbox;
249
- display: flex;
250
- }
251
-
252
- .wpr-tplib-sub-filters {
253
- display: none;
254
- margin-left: 20px;
255
- }
256
-
257
- .wpr-tplib-sub-filters ul {
258
- display: -webkit-box;
259
- display: -ms-flexbox;
260
- display: flex;
261
- }
262
-
263
- .wpr-tplib-sub-filters ul li {
264
- padding: 10px 25px;
265
- margin-right: 7px;
266
- line-height: 15px;
267
- font-size: 13px;
268
- font-weight: normal;
269
- background: #fff;
270
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
271
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
272
- cursor: pointer;
273
- border-radius: 3px;
274
- }
275
-
276
- .wpr-tplib-sub-filters ul li:hover,
277
- .wpr-tplib-sub-filters ul .wpr-tplib-activ-filter {
278
- background: #6A4BFF;
279
- color: #fff;
280
- }
281
-
282
- .wpr-tplib-filters {
283
- -webkit-box-sizing: border-box;
284
- box-sizing: border-box;
285
- display: -webkit-box;
286
- display: -ms-flexbox;
287
- display: flex;
288
- -webkit-box-orient: vertical;
289
- -webkit-box-direction: normal;
290
- -ms-flex-direction: column;
291
- flex-direction: column;
292
- -webkit-box-align: start;
293
- -ms-flex-align: start;
294
- align-items: flex-start;
295
- position: relative;
296
- width: 200px;
297
- font-size: 14px;
298
- font-weight: normal;
299
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
300
- color: #6d7882;
301
- }
302
-
303
- .wpr-tplib-filters h3 {
304
- display: -webkit-box;
305
- display: -ms-flexbox;
306
- display: flex;
307
- width: 100%;
308
- padding: 10px 15px;
309
- font-size: 13px;
310
- font-weight: normal;
311
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
312
- background: #fff;
313
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
314
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
315
- cursor: pointer;
316
- border-radius: 3px;
317
- }
318
-
319
- .wpr-tplib-filters h3 span {
320
- width: 100%;
321
- }
322
-
323
- .wpr-tplib-filters-list {
324
- visibility: hidden;
325
- opacity: 0;
326
- position: absolute;
327
- top: 38px;
328
- z-index: 999;
329
- width: 700px;
330
- padding: 20px 30px;
331
- background: #fff;
332
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
333
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
334
- -webkit-transition: all 0.2s ease-in;
335
- -o-transition: all 0.2s ease-in;
336
- transition: all 0.2s ease-in;
337
- border-radius: 3px;
338
- }
339
-
340
- .wpr-tplib-filters-list ul {
341
- display: -webkit-box;
342
- display: -ms-flexbox;
343
- display: flex;
344
- -ms-flex-wrap: wrap;
345
- flex-wrap: wrap;
346
- list-style: none;
347
- padding-left: 0;
348
- }
349
-
350
- .wpr-tplib-filters-list ul li {
351
- width: 25%;
352
- padding: 12px;
353
- color: #6d7882;
354
- background: #fff;
355
- font-size: 13px;
356
- line-height: 1;
357
- cursor: pointer;
358
- }
359
-
360
- .wpr-tplib-filters-list ul li:hover {
361
- background: #f9f9f9;
362
- color: #222;
363
- }
364
-
365
- .wpr-tplib-template-gird {
366
- position: absolute;
367
- width: 100%;
368
- height: calc(100% - 132px);
369
- overflow: auto;
370
- padding: 0 30px 30px 30px;
371
- margin-left: -10px;
372
- }
373
-
374
- .wpr-tplib-template-wrap {
375
- float: left;
376
- overflow: hidden;
377
- width: 18.5%;
378
- margin: 10px;
379
- border-radius: 3px;
380
- -webkit-box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
381
- box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
382
- }
383
-
384
- .wpr-tplib-template-wrap:not(.wpr-tplib-pro-active):before {
385
- content: 'Free';
386
- display: block;
387
- position: absolute;
388
- top: 10px;
389
- right: 10px;
390
- z-index: 1;
391
- width: 45px;
392
- padding: 4px;
393
- font-size: 11px;
394
- line-height: 16px;
395
- font-weight: bold;
396
- letter-spacing: 0.3px;
397
- text-transform: uppercase;
398
- text-align: center;
399
- background: #555;
400
- color: #fff;
401
- -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
402
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
403
- border-radius: 3px;
404
- }
405
-
406
- .wpr-tplib-pro-wrap:not(.wpr-tplib-pro-active):before {
407
- content: 'Pro';
408
- background: #6A4BFF;
409
- }
410
-
411
- @media screen and ( max-width: 1364px ) {
412
- .wpr-tplib-template-wrap {
413
- width: 23%;
414
- }
415
- }
416
-
417
- .wpr-tplib-template {
418
- }
419
-
420
- .wpr-tplib-template-wrap:hover .wpr-tplib-insert-template {
421
- opacity: 1;
422
- visibility: visible;
423
- }
424
-
425
- .wpr-tplib-template-media {
426
- position: relative;
427
- background-color: #e8e8e8;
428
- }
429
-
430
- .wpr-tplib-template-media img {
431
- width: 100%;
432
- max-width: 100%;
433
- height: auto;
434
- }
435
-
436
- .wpr-tplib-template-media:hover .wpr-tplib-template-media-overlay {
437
- opacity: 1;
438
- }
439
-
440
- .wpr-tplib-template-media-overlay {
441
- opacity: 0;
442
- position: absolute;
443
- top: 0;
444
- left: 0;
445
- width: 100%;
446
- height: 100%;
447
- background-color: rgba(0, 0, 0, 0.5);
448
- color: #fff;
449
- cursor: pointer;
450
- -webkit-transition: opacity 0.1s ease-in;
451
- -o-transition: opacity 0.1s ease-in;
452
- transition: opacity 0.1s ease-in;
453
- }
454
-
455
- .wpr-tplib-template-media-overlay i {
456
- position: absolute;
457
- top: 50%;
458
- left: 50%;
459
- -webkit-transform: translate(-50%, -50%);
460
- -ms-transform: translate(-50%, -50%);
461
- transform: translate(-50%, -50%);
462
- font-size: 25px;
463
- }
464
-
465
- .wpr-tplib-preview-wrap {
466
- display: none;
467
- }
468
-
469
- .wpr-tplib-image {
470
- display: -webkit-box;
471
- display: -ms-flexbox;
472
- display: flex;
473
- -webkit-box-pack: center;
474
- -ms-flex-pack: center;
475
- justify-content: center;
476
- padding: 20px;
477
- }
478
-
479
- .wpr-tplib-iframe {
480
- position: relative;
481
- padding-top: 56.25%;
482
- }
483
-
484
- .wpr-tplib-iframe iframe {
485
- position: absolute;
486
- top: 0;
487
- left: 0;
488
- width: 100%;
489
- height: 100%;
490
- }
491
-
492
- .wpr-tplib-template-footer {
493
- display: -webkit-box;
494
- display: -ms-flexbox;
495
- display: flex;
496
- -webkit-box-orient: vertical;
497
- -webkit-box-direction: normal;
498
- -ms-flex-flow: column wrap;
499
- flex-flow: column wrap;
500
- -ms-flex-line-pack: justify;
501
- align-content: space-between;
502
- -webkit-box-pack: center;
503
- -ms-flex-pack: center;
504
- justify-content: center;
505
- height: 45px;
506
- padding: 5px 15px;
507
- background-color: #fff;
508
- border-top: 1px solid #efefef;
509
- }
510
-
511
- .wpr-tplib-template-footer h3 {
512
- overflow: hidden;
513
- color: #6d7882;
514
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
515
- font-size: 13px;
516
- font-weight: normal;
517
- white-space: nowrap;
518
- -o-text-overflow: ellipsis;
519
- text-overflow: ellipsis;
520
- }
521
-
522
- .wpr-tplib-template-footer .wpr-tplib-insert-template {
523
- opacity: 0;
524
- visibility: hidden;
525
- padding: 6px 10px;
526
- color: #fff;
527
- background-color: #6A4BFF;
528
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
529
- font-size: 13px;
530
- line-height: 1;
531
- letter-spacing: 0.3px;
532
- border-radius: 3px;
533
- cursor: pointer;
534
- -webkit-transition: all 0.1s ease-in;
535
- -o-transition: all 0.1s ease-in;
536
- transition: all 0.1s ease-in;
537
- }
538
-
539
-
540
- #masonry-effect {
541
- display: -webkit-box;
542
- display: -ms-flexbox;
543
- display: flex;
544
- -webkit-box-orient: horizontal;
545
- -webkit-box-direction: normal;
546
- -ms-flex-direction: row;
547
- flex-direction: row;
548
- -ms-flex-wrap: wrap;
549
- flex-wrap: wrap;
550
- }
551
- .item {
552
- -webkit-box-sizing: border-box;
553
- box-sizing: border-box;
554
- -webkit-box-orient: vertical;
555
- -webkit-box-direction: normal;
556
- -ms-flex-direction: column;
557
- flex-direction: column;
558
- position: relative;
559
- width: calc(33.3%);
560
- }
561
-
562
-
563
- /* Elementor Loader */
564
- .wpr-tplib-loader {
565
- overflow: auto;
566
- position: absolute;
567
- width: 100%;
568
- height: 100%;
569
- z-index: 9999999999;
570
- background-color: #f1f3f5;
571
- }
572
-
573
- .elementor-loader-wrapper {
574
- position: absolute;
575
- width: 300px;
576
- left: 50%;
577
- top: 50%;
578
- -webkit-transform: translateX(-50%) translateY(-50%);
579
- -ms-transform: translateX(-50%) translateY(-50%);
580
- transform: translateX(-50%) translateY(-50%);
581
- display: -webkit-box;
582
- display: -ms-flexbox;
583
- display: flex;
584
- -ms-flex-wrap: wrap;
585
- flex-wrap: wrap;
586
- -webkit-box-pack: center;
587
- -ms-flex-pack: center;
588
- justify-content: center;
589
- }
590
-
591
- .elementor-loader {
592
- border-radius: 7px;
593
- padding: 40px;
594
- height: 150px;
595
- width: 150px;
596
- background-color: rgba(255, 255, 255, 0.9);
597
- -webkit-box-sizing: border-box;
598
- box-sizing: border-box;
599
- -webkit-box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
600
- box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
601
- }
602
-
603
- .elementor-loader-boxes {
604
- height: 100%;
605
- width: 100%;
606
- position: relative;
607
- }
608
-
609
- .elementor-loader-box {
610
- position: absolute;
611
- background-color: #d5dadf;
612
- -webkit-animation: load 1.8s linear infinite;
613
- animation: load 1.8s linear infinite;
614
- }
615
-
616
- .elementor-loader-box:nth-of-type(1) {
617
- width: 20%;
618
- height: 100%;
619
- left: 0;
620
- top: 0;
621
- }
622
-
623
- .elementor-loader-box:not(:nth-of-type(1)) {
624
- right: 0;
625
- height: 20%;
626
- width: 60%;
627
- }
628
-
629
- .elementor-loader-box:nth-of-type(2) {
630
- top: 0;
631
- -webkit-animation-delay: -0.45s;
632
- animation-delay: -0.45s;
633
- }
634
-
635
- .elementor-loader-box:nth-of-type(3) {
636
- top: 40%;
637
- -webkit-animation-delay: -0.9s;
638
- animation-delay: -0.9s;
639
- }
640
-
641
- .elementor-loader-box:nth-of-type(4) {
642
- bottom: 0;
643
- -webkit-animation-delay: -1.35s;
644
- animation-delay: -1.35s;
645
- }
646
-
647
- @-webkit-keyframes load {
648
- 0% {
649
- opacity: .3;
650
- }
651
- 50% {
652
- opacity: 1;
653
- }
654
- 100% {
655
- opacity: .3;
656
- }
657
- }
658
-
659
- @keyframes load {
660
- 0% {
661
- opacity: .3;
662
- }
663
- 50% {
664
- opacity: 1;
665
- }
666
- 100% {
667
- opacity: .3;
668
- }
669
- }
670
-
671
- .elementor-loading-title {
672
- font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
673
- color: #a4afb7;
674
- text-align: center;
675
- text-transform: uppercase;
676
- margin-top: 30px;
677
- letter-spacing: 7px;
678
- text-indent: 7px;
679
- font-size: 10px;
680
- width: 100%;
681
- }
682
-
683
-
684
- /* Scroll Bar */
685
- .wpr-tplib-popup ::-webkit-scrollbar {
686
- width: 6px;
687
- height: 0;
688
- border-radius: 3px;
689
- }
690
-
691
- .wpr-tplib-popup ::-webkit-scrollbar-button {
692
- width: 0px;
693
- height: 10px;
694
- }
695
-
696
- .wpr-tplib-popup ::-webkit-scrollbar-thumb {
697
- background-color: #d5dadf;
698
- border: 0px none #d5dadf;
699
- border-radius: 3px;
700
- }
701
-
702
- .wpr-tplib-popup ::-webkit-scrollbar-track {
703
- border: 0px none #fff;
704
- border-radius: 0;
705
- }
706
-
707
- .wpr-tplib-popup ::-webkit-scrollbar-corner {
708
- background: transparent;
709
  }
1
+ /*--------------------------------------------------------------
2
+ == Library - Predefined Styles
3
+ --------------------------------------------------------------*/
4
+ #wpr-library-btn {
5
+ display: -webkit-inline-box;
6
+ display: -ms-inline-flexbox;
7
+ display: inline-flex;
8
+ width: 40px;
9
+ height: 40px;
10
+ vertical-align: top;
11
+ margin-left: 10px;
12
+ color: #fff;
13
+ font-family: Arial,Helvetica,sans-serif;
14
+ font-weight: bold;
15
+ letter-spacing: 0.3px;
16
+ cursor: pointer;
17
+ }
18
+
19
+ .wpr-library-icon {
20
+ display: -webkit-inline-box;
21
+ display: -ms-inline-flexbox;
22
+ display: inline-flex;
23
+ padding: 10px;
24
+ margin-right: 10px;
25
+ border-radius: 50%;
26
+ color: transparent;
27
+ font-family: Arial,Helvetica,sans-serif;
28
+ font-size: 14px;
29
+ font-weight: bold;
30
+ letter-spacing: 0.3px;
31
+ }
32
+
33
+ .wpr-tplib-popup-overlay {
34
+ position: fixed;
35
+ top: 0;
36
+ left: 0;
37
+ z-index: 999999;
38
+ width: 100%;
39
+ height: 100%;
40
+ background: rgba(0,0,0,0.5);
41
+ }
42
+
43
+ .wpr-tplib-popup {
44
+ overflow: hidden;
45
+ position: absolute;
46
+ top: 30%;
47
+ left: 50%;
48
+ -webkit-transform: translate(-50%,-30%);
49
+ -ms-transform: translate(-50%,-30%);
50
+ transform: translate(-50%,-30%);
51
+ background: #f1f3f5;
52
+ min-width: 100%;
53
+ height: 100%;
54
+ }
55
+
56
+ .wpr-tplib-header {
57
+ display: -webkit-box;
58
+ display: -ms-flexbox;
59
+ display: flex;
60
+ -webkit-box-align: center;
61
+ -ms-flex-align: center;
62
+ align-items: center;
63
+ background-color: #fff;
64
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
65
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
66
+ position: relative;
67
+ z-index: 10;
68
+ }
69
+
70
+ .wpr-tplib-logo {
71
+ display: -webkit-box;
72
+ display: -ms-flexbox;
73
+ display: flex;
74
+ -webkit-box-align: center;
75
+ -ms-flex-align: center;
76
+ align-items: center;
77
+ -webkit-box-pack: start;
78
+ -ms-flex-pack: start;
79
+ justify-content: flex-start;
80
+ width: 200px;
81
+ padding-left: 30px;
82
+ color: #495157;
83
+ font-size: 15px;
84
+ font-weight: 700;
85
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
86
+ }
87
+
88
+ .wpr-tplib-header ul {
89
+ display: -webkit-inline-box;
90
+ display: -ms-inline-flexbox;
91
+ display: inline-flex;
92
+ -webkit-box-pack: center;
93
+ -ms-flex-pack: center;
94
+ justify-content: center;
95
+ width: 100%;
96
+ margin-left: -130px;
97
+ list-style: none;
98
+ }
99
+
100
+ .wpr-tplib-header ul li {
101
+ width: 115px;
102
+ padding: 20px 0;
103
+ color: #6d7882;
104
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
105
+ font-size: 14px;
106
+ line-height: 1;
107
+ font-weight: 500;
108
+ text-align: center;
109
+ cursor: pointer;
110
+
111
+ }
112
+
113
+ .wpr-tplib-active-tab {
114
+ background-image: -o-linear-gradient(top,#f1f3f5,#fff);
115
+ background-image: -webkit-gradient(linear,left top, left bottom,from(#f1f3f5),to(#fff));
116
+ background-image: linear-gradient(180deg,#f1f3f5,#fff);
117
+ border-bottom: 3px solid #6A4BFF;
118
+ }
119
+
120
+ .wpr-tplib-close {
121
+ display: -webkit-box;
122
+ display: -ms-flexbox;
123
+ display: flex;
124
+ -webkit-box-align: center;
125
+ -ms-flex-align: center;
126
+ align-items: center;
127
+ -webkit-box-pack: end;
128
+ -ms-flex-pack: end;
129
+ justify-content: flex-end;
130
+ padding-right: 30px;
131
+ color: #a4afb7;
132
+ font-size: 18px;
133
+ cursor: pointer;
134
+ -webkit-transition: all .3s;
135
+ -o-transition: all .3s;
136
+ transition: all .3s;
137
+ }
138
+
139
+ .wpr-tplib-close:hover {
140
+ color: #3a3a3a;
141
+ }
142
+
143
+ .wpr-tplib-close i {
144
+ line-height: 20px;
145
+ padding-left: 20px;
146
+ }
147
+
148
+ .wpr-tplib-popup h3 {
149
+ margin: 0;
150
+ }
151
+
152
+ .wpr-tplib-header .wpr-tplib-insert-template {
153
+ display: none;
154
+ width: 120px;
155
+ height: 27px;
156
+ line-height: 27px;
157
+ padding: 0 15px;
158
+ margin-right: 15px;
159
+ color: #fff;
160
+ background-color: #6A4BFF;
161
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
162
+ font-size: 13px;
163
+ border-radius: 2px;
164
+ text-transform: uppercase;
165
+ cursor: pointer;
166
+ text-align: center;
167
+ }
168
+
169
+ .wpr-tplib-back {
170
+ display: none;
171
+ width: 230px;
172
+ padding: 17px 15px;
173
+ border-right: 1px solid #e6e9ec;
174
+ color: #6d7882;
175
+ font-size: 15px;
176
+ font-weight: 700;
177
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
178
+ cursor: pointer;
179
+ -webkit-transition: all .3s;
180
+ -o-transition: all .3s;
181
+ transition: all .3s;
182
+ }
183
+
184
+ .wpr-tplib-back:hover {
185
+ color: #495157;
186
+ }
187
+
188
+ .wpr-tplib-back i {
189
+ margin-right: 5px;
190
+ }
191
+
192
+ .wpr-tplib-back span {
193
+
194
+ }
195
+
196
+ .wpr-tplib-content-wrap {
197
+ }
198
+
199
+ .wpr-tplib-sidebar {
200
+ padding: 30px 30px 20px 30px;
201
+ }
202
+
203
+ .wpr-tplib-sidebar .wpr-tplib-search {
204
+ display: none;
205
+ position: relative;
206
+ margin: 30px 0;
207
+ }
208
+
209
+ .wpr-tplib-sidebar .wpr-tplib-search i {
210
+ position: absolute;
211
+ top: 50%;
212
+ right: 10px;
213
+ font-size: 12px;
214
+ -webkit-transform: translateY(-50%);
215
+ -ms-transform: translateY(-50%);
216
+ transform: translateY(-50%);
217
+ }
218
+
219
+ .wpr-tplib-sidebar .wpr-tplib-search input {
220
+ width: 100%;
221
+ padding: 8px 10px;
222
+ border: 0;
223
+ border-bottom: 1px solid #efefef;
224
+ }
225
+
226
+ .wpr-tplib-sidebar .wpr-tplib-search input::-webkit-input-placeholder {
227
+ color: #9a9a9a;
228
+ }
229
+
230
+ .wpr-tplib-sidebar .wpr-tplib-search input::-moz-placeholder {
231
+ color: #9a9a9a;
232
+ }
233
+
234
+ .wpr-tplib-sidebar .wpr-tplib-search input:-ms-input-placeholder {
235
+ color: #9a9a9a;
236
+ }
237
+
238
+ .wpr-tplib-sidebar .wpr-tplib-search input::-ms-input-placeholder {
239
+ color: #9a9a9a;
240
+ }
241
+
242
+ .wpr-tplib-sidebar .wpr-tplib-search input::placeholder {
243
+ color: #9a9a9a;
244
+ }
245
+
246
+ .wpr-tplib-filters-wrap {
247
+ display: -webkit-box;
248
+ display: -ms-flexbox;
249
+ display: flex;
250
+ }
251
+
252
+ .wpr-tplib-sub-filters {
253
+ display: none;
254
+ margin-left: 20px;
255
+ }
256
+
257
+ .wpr-tplib-sub-filters ul {
258
+ display: -webkit-box;
259
+ display: -ms-flexbox;
260
+ display: flex;
261
+ }
262
+
263
+ .wpr-tplib-sub-filters ul li {
264
+ padding: 10px 25px;
265
+ margin-right: 7px;
266
+ line-height: 15px;
267
+ font-size: 13px;
268
+ font-weight: normal;
269
+ background: #fff;
270
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
271
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
272
+ cursor: pointer;
273
+ border-radius: 3px;
274
+ }
275
+
276
+ .wpr-tplib-sub-filters ul li:hover,
277
+ .wpr-tplib-sub-filters ul .wpr-tplib-activ-filter {
278
+ background: #6A4BFF;
279
+ color: #fff;
280
+ }
281
+
282
+ .wpr-tplib-filters {
283
+ -webkit-box-sizing: border-box;
284
+ box-sizing: border-box;
285
+ display: -webkit-box;
286
+ display: -ms-flexbox;
287
+ display: flex;
288
+ -webkit-box-orient: vertical;
289
+ -webkit-box-direction: normal;
290
+ -ms-flex-direction: column;
291
+ flex-direction: column;
292
+ -webkit-box-align: start;
293
+ -ms-flex-align: start;
294
+ align-items: flex-start;
295
+ position: relative;
296
+ width: 200px;
297
+ font-size: 14px;
298
+ font-weight: normal;
299
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
300
+ color: #6d7882;
301
+ }
302
+
303
+ .wpr-tplib-filters h3 {
304
+ display: -webkit-box;
305
+ display: -ms-flexbox;
306
+ display: flex;
307
+ width: 100%;
308
+ padding: 10px 15px;
309
+ font-size: 13px;
310
+ font-weight: normal;
311
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
312
+ background: #fff;
313
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
314
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
315
+ cursor: pointer;
316
+ border-radius: 3px;
317
+ }
318
+
319
+ .wpr-tplib-filters h3 span {
320
+ width: 100%;
321
+ }
322
+
323
+ .wpr-tplib-filters-list {
324
+ visibility: hidden;
325
+ opacity: 0;
326
+ position: absolute;
327
+ top: 38px;
328
+ z-index: 999;
329
+ width: 700px;
330
+ padding: 20px 30px;
331
+ background: #fff;
332
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
333
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
334
+ -webkit-transition: all 0.2s ease-in;
335
+ -o-transition: all 0.2s ease-in;
336
+ transition: all 0.2s ease-in;
337
+ border-radius: 3px;
338
+ }
339
+
340
+ .wpr-tplib-filters-list ul {
341
+ display: -webkit-box;
342
+ display: -ms-flexbox;
343
+ display: flex;
344
+ -ms-flex-wrap: wrap;
345
+ flex-wrap: wrap;
346
+ list-style: none;
347
+ padding-left: 0;
348
+ }
349
+
350
+ .wpr-tplib-filters-list ul li {
351
+ width: 25%;
352
+ padding: 12px;
353
+ color: #6d7882;
354
+ background: #fff;
355
+ font-size: 13px;
356
+ line-height: 1;
357
+ cursor: pointer;
358
+ }
359
+
360
+ .wpr-tplib-filters-list ul li:hover {
361
+ background: #f9f9f9;
362
+ color: #222;
363
+ }
364
+
365
+ .wpr-tplib-template-gird {
366
+ position: absolute;
367
+ width: 100%;
368
+ height: calc(100% - 132px);
369
+ overflow: auto;
370
+ padding: 0 30px 30px 30px;
371
+ margin-left: -10px;
372
+ }
373
+
374
+ .wpr-tplib-template-wrap {
375
+ float: left;
376
+ overflow: hidden;
377
+ width: 18.5%;
378
+ margin: 10px;
379
+ border-radius: 3px;
380
+ -webkit-box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
381
+ box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
382
+ }
383
+
384
+ .wpr-tplib-template-wrap:not(.wpr-tplib-pro-active):before {
385
+ content: 'Free';
386
+ display: block;
387
+ position: absolute;
388
+ top: 10px;
389
+ right: 10px;
390
+ z-index: 1;
391
+ width: 45px;
392
+ padding: 4px;
393
+ font-size: 11px;
394
+ line-height: 16px;
395
+ font-weight: bold;
396
+ letter-spacing: 0.3px;
397
+ text-transform: uppercase;
398
+ text-align: center;
399
+ background: #555;
400
+ color: #fff;
401
+ -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
402
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
403
+ border-radius: 3px;
404
+ }
405
+
406
+ .wpr-tplib-pro-wrap:not(.wpr-tplib-pro-active):before {
407
+ content: 'Pro';
408
+ background: #6A4BFF;
409
+ }
410
+
411
+ @media screen and ( max-width: 1364px ) {
412
+ .wpr-tplib-template-wrap {
413
+ width: 23%;
414
+ }
415
+ }
416
+
417
+ .wpr-tplib-template {
418
+ }
419
+
420
+ .wpr-tplib-template-wrap:hover .wpr-tplib-insert-template {
421
+ opacity: 1;
422
+ visibility: visible;
423
+ }
424
+
425
+ .wpr-tplib-template-media {
426
+ position: relative;
427
+ background-color: #e8e8e8;
428
+ }
429
+
430
+ .wpr-tplib-template-media img {
431
+ width: 100%;
432
+ max-width: 100%;
433
+ height: auto;
434
+ }
435
+
436
+ .wpr-tplib-template-media:hover .wpr-tplib-template-media-overlay {
437
+ opacity: 1;
438
+ }
439
+
440
+ .wpr-tplib-template-media-overlay {
441
+ opacity: 0;
442
+ position: absolute;
443
+ top: 0;
444
+ left: 0;
445
+ width: 100%;
446
+ height: 100%;
447
+ background-color: rgba(0, 0, 0, 0.5);
448
+ color: #fff;
449
+ cursor: pointer;
450
+ -webkit-transition: opacity 0.1s ease-in;
451
+ -o-transition: opacity 0.1s ease-in;
452
+ transition: opacity 0.1s ease-in;
453
+ }
454
+
455
+ .wpr-tplib-template-media-overlay i {
456
+ position: absolute;
457
+ top: 50%;
458
+ left: 50%;
459
+ -webkit-transform: translate(-50%, -50%);
460
+ -ms-transform: translate(-50%, -50%);
461
+ transform: translate(-50%, -50%);
462
+ font-size: 25px;
463
+ }
464
+
465
+ .wpr-tplib-preview-wrap {
466
+ display: none;
467
+ }
468
+
469
+ .wpr-tplib-image {
470
+ display: -webkit-box;
471
+ display: -ms-flexbox;
472
+ display: flex;
473
+ -webkit-box-pack: center;
474
+ -ms-flex-pack: center;
475
+ justify-content: center;
476
+ padding: 20px;
477
+ }
478
+
479
+ .wpr-tplib-iframe {
480
+ position: relative;
481
+ padding-top: 56.25%;
482
+ }
483
+
484
+ .wpr-tplib-iframe iframe {
485
+ position: absolute;
486
+ top: 0;
487
+ left: 0;
488
+ width: 100%;
489
+ height: 100%;
490
+ }
491
+
492
+ .wpr-tplib-template-footer {
493
+ display: -webkit-box;
494
+ display: -ms-flexbox;
495
+ display: flex;
496
+ -webkit-box-orient: vertical;
497
+ -webkit-box-direction: normal;
498
+ -ms-flex-flow: column wrap;
499
+ flex-flow: column wrap;
500
+ -ms-flex-line-pack: justify;
501
+ align-content: space-between;
502
+ -webkit-box-pack: center;
503
+ -ms-flex-pack: center;
504
+ justify-content: center;
505
+ height: 45px;
506
+ padding: 5px 15px;
507
+ background-color: #fff;
508
+ border-top: 1px solid #efefef;
509
+ }
510
+
511
+ .wpr-tplib-template-footer h3 {
512
+ overflow: hidden;
513
+ color: #6d7882;
514
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
515
+ font-size: 13px;
516
+ font-weight: normal;
517
+ white-space: nowrap;
518
+ -o-text-overflow: ellipsis;
519
+ text-overflow: ellipsis;
520
+ }
521
+
522
+ .wpr-tplib-template-footer .wpr-tplib-insert-template {
523
+ opacity: 0;
524
+ visibility: hidden;
525
+ padding: 6px 10px;
526
+ color: #fff;
527
+ background-color: #6A4BFF;
528
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
529
+ font-size: 13px;
530
+ line-height: 1;
531
+ letter-spacing: 0.3px;
532
+ border-radius: 3px;
533
+ cursor: pointer;
534
+ -webkit-transition: all 0.1s ease-in;
535
+ -o-transition: all 0.1s ease-in;
536
+ transition: all 0.1s ease-in;
537
+ }
538
+
539
+
540
+ #masonry-effect {
541
+ display: -webkit-box;
542
+ display: -ms-flexbox;
543
+ display: flex;
544
+ -webkit-box-orient: horizontal;
545
+ -webkit-box-direction: normal;
546
+ -ms-flex-direction: row;
547
+ flex-direction: row;
548
+ -ms-flex-wrap: wrap;
549
+ flex-wrap: wrap;
550
+ }
551
+ .item {
552
+ -webkit-box-sizing: border-box;
553
+ box-sizing: border-box;
554
+ -webkit-box-orient: vertical;
555
+ -webkit-box-direction: normal;
556
+ -ms-flex-direction: column;
557
+ flex-direction: column;
558
+ position: relative;
559
+ width: calc(33.3%);
560
+ }
561
+
562
+
563
+ /* Elementor Loader */
564
+ .wpr-tplib-loader {
565
+ overflow: auto;
566
+ position: absolute;
567
+ width: 100%;
568
+ height: 100%;
569
+ z-index: 9999999999;
570
+ background-color: #f1f3f5;
571
+ }
572
+
573
+ .elementor-loader-wrapper {
574
+ position: absolute;
575
+ width: 300px;
576
+ left: 50%;
577
+ top: 50%;
578
+ -webkit-transform: translateX(-50%) translateY(-50%);
579
+ -ms-transform: translateX(-50%) translateY(-50%);
580
+ transform: translateX(-50%) translateY(-50%);
581
+ display: -webkit-box;
582
+ display: -ms-flexbox;
583
+ display: flex;
584
+ -ms-flex-wrap: wrap;
585
+ flex-wrap: wrap;
586
+ -webkit-box-pack: center;
587
+ -ms-flex-pack: center;
588
+ justify-content: center;
589
+ }
590
+
591
+ .elementor-loader {
592
+ border-radius: 7px;
593
+ padding: 40px;
594
+ height: 150px;
595
+ width: 150px;
596
+ background-color: rgba(255, 255, 255, 0.9);
597
+ -webkit-box-sizing: border-box;
598
+ box-sizing: border-box;
599
+ -webkit-box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
600
+ box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
601
+ }
602
+
603
+ .elementor-loader-boxes {
604
+ height: 100%;
605
+ width: 100%;
606
+ position: relative;
607
+ }
608
+
609
+ .elementor-loader-box {
610
+ position: absolute;
611
+ background-color: #d5dadf;
612
+ -webkit-animation: load 1.8s linear infinite;
613
+ animation: load 1.8s linear infinite;
614
+ }
615
+
616
+ .elementor-loader-box:nth-of-type(1) {
617
+ width: 20%;
618
+ height: 100%;
619
+ left: 0;
620
+ top: 0;
621
+ }
622
+
623
+ .elementor-loader-box:not(:nth-of-type(1)) {
624
+ right: 0;
625
+ height: 20%;
626
+ width: 60%;
627
+ }
628
+
629
+ .elementor-loader-box:nth-of-type(2) {
630
+ top: 0;
631
+ -webkit-animation-delay: -0.45s;
632
+ animation-delay: -0.45s;
633
+ }
634
+
635
+ .elementor-loader-box:nth-of-type(3) {
636
+ top: 40%;
637
+ -webkit-animation-delay: -0.9s;
638
+ animation-delay: -0.9s;
639
+ }
640
+
641
+ .elementor-loader-box:nth-of-type(4) {
642
+ bottom: 0;
643
+ -webkit-animation-delay: -1.35s;
644
+ animation-delay: -1.35s;
645
+ }
646
+
647
+ @-webkit-keyframes load {
648
+ 0% {
649
+ opacity: .3;
650
+ }
651
+ 50% {
652
+ opacity: 1;
653
+ }
654
+ 100% {
655
+ opacity: .3;
656
+ }
657
+ }
658
+
659
+ @keyframes load {
660
+ 0% {
661
+ opacity: .3;
662
+ }
663
+ 50% {
664
+ opacity: 1;
665
+ }
666
+ 100% {
667
+ opacity: .3;
668
+ }
669
+ }
670
+
671
+ .elementor-loading-title {
672
+ font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
673
+ color: #a4afb7;
674
+ text-align: center;
675
+ text-transform: uppercase;
676
+ margin-top: 30px;
677
+ letter-spacing: 7px;
678
+ text-indent: 7px;
679
+ font-size: 10px;
680
+ width: 100%;
681
+ }
682
+
683
+
684
+ /* Scroll Bar */
685
+ .wpr-tplib-popup ::-webkit-scrollbar {
686
+ width: 6px;
687
+ height: 0;
688
+ border-radius: 3px;
689
+ }
690
+
691
+ .wpr-tplib-popup ::-webkit-scrollbar-button {
692
+ width: 0px;
693
+ height: 10px;
694
+ }
695
+
696
+ .wpr-tplib-popup ::-webkit-scrollbar-thumb {
697
+ background-color: #d5dadf;
698
+ border: 0px none #d5dadf;
699
+ border-radius: 3px;
700
+ }
701
+
702
+ .wpr-tplib-popup ::-webkit-scrollbar-track {
703
+ border: 0px none #fff;
704
+ border-radius: 0;
705
+ }
706
+
707
+ .wpr-tplib-popup ::-webkit-scrollbar-corner {
708
+ background: transparent;
709
  }
assets/css/library-frontend.min.css CHANGED
@@ -1,712 +1,712 @@
1
- /*--------------------------------------------------------------
2
- == Library - Predefined Styles
3
- --------------------------------------------------------------*/
4
- #wpr-library-btn {
5
- display: -webkit-inline-box;
6
- display: -ms-inline-flexbox;
7
- display: inline-flex;
8
- width: 40px;
9
- height: 40px;
10
- vertical-align: top;
11
- margin-left: 10px;
12
- color: #fff;
13
- font-family: Arial,Helvetica,sans-serif;
14
- font-weight: bold;
15
- letter-spacing: 0.3px;
16
- cursor: pointer;
17
- }
18
-
19
- .wpr-library-icon {
20
- display: -webkit-inline-box;
21
- display: -ms-inline-flexbox;
22
- display: inline-flex;
23
- padding: 10px;
24
- margin-right: 10px;
25
- border-radius: 50%;
26
- color: transparent;
27
- font-family: Arial,Helvetica,sans-serif;
28
- font-size: 14px;
29
- font-weight: bold;
30
- letter-spacing: 0.3px;
31
- }
32
-
33
- .wpr-tplib-popup-overlay {
34
- position: fixed;
35
- top: 0;
36
- left: 0;
37
- z-index: 999999;
38
- width: 100%;
39
- height: 100%;
40
- background: rgba(0,0,0,0.5);
41
- }
42
-
43
- .wpr-tplib-popup {
44
- overflow: hidden;
45
- position: absolute;
46
- top: 30%;
47
- left: 50%;
48
- -webkit-transform: translate(-50%,-30%);
49
- -ms-transform: translate(-50%,-30%);
50
- transform: translate(-50%,-30%);
51
- background: #f1f3f5;
52
- min-width: 100%;
53
- height: 100%;
54
- }
55
-
56
- .wpr-tplib-header {
57
- display: -webkit-box;
58
- display: -ms-flexbox;
59
- display: flex;
60
- -webkit-box-align: center;
61
- -ms-flex-align: center;
62
- align-items: center;
63
- background-color: #fff;
64
- -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
65
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
66
- position: relative;
67
- z-index: 10;
68
- }
69
-
70
- .wpr-tplib-logo {
71
- display: -webkit-box;
72
- display: -ms-flexbox;
73
- display: flex;
74
- -webkit-box-align: center;
75
- -ms-flex-align: center;
76
- align-items: center;
77
- -webkit-box-pack: start;
78
- -ms-flex-pack: start;
79
- justify-content: flex-start;
80
- width: 200px;
81
- padding-left: 30px;
82
- color: #495157;
83
- font-size: 15px;
84
- font-weight: 700;
85
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
86
- }
87
-
88
- .wpr-tplib-header ul {
89
- display: -webkit-inline-box;
90
- display: -ms-inline-flexbox;
91
- display: inline-flex;
92
- -webkit-box-pack: center;
93
- -ms-flex-pack: center;
94
- justify-content: center;
95
- width: 100%;
96
- margin: 0;
97
- padding: 0;
98
- margin-left: -130px;
99
- list-style: none;
100
- }
101
-
102
- .wpr-tplib-header ul li {
103
- width: 115px;
104
- padding: 20px 0;
105
- color: #6d7882;
106
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
107
- font-size: 14px;
108
- line-height: 1;
109
- font-weight: 500;
110
- text-align: center;
111
- cursor: pointer;
112
-
113
- }
114
-
115
- .wpr-tplib-active-tab {
116
- background-image: -o-linear-gradient(top,#f1f3f5,#fff);
117
- background-image: -webkit-gradient(linear,left top, left bottom,from(#f1f3f5),to(#fff));
118
- background-image: linear-gradient(180deg,#f1f3f5,#fff);
119
- border-bottom: 3px solid #6A4BFF;
120
- }
121
-
122
- .wpr-tplib-close {
123
- display: -webkit-box;
124
- display: -ms-flexbox;
125
- display: flex;
126
- -webkit-box-align: center;
127
- -ms-flex-align: center;
128
- align-items: center;
129
- -webkit-box-pack: end;
130
- -ms-flex-pack: end;
131
- justify-content: flex-end;
132
- padding-right: 30px;
133
- color: #a4afb7;
134
- font-size: 18px;
135
- cursor: pointer;
136
- -webkit-transition: all .3s;
137
- -o-transition: all .3s;
138
- transition: all .3s;
139
- }
140
-
141
- .wpr-tplib-close:hover {
142
- color: #3a3a3a;
143
- }
144
-
145
- .wpr-tplib-close i {
146
- line-height: 20px;
147
- padding-left: 20px;
148
- }
149
-
150
- .wpr-tplib-popup h3 {
151
- margin: 0;
152
- }
153
-
154
- .wpr-tplib-header .wpr-tplib-insert-template {
155
- display: none;
156
- width: 120px;
157
- height: 27px;
158
- line-height: 27px;
159
- padding: 0 15px;
160
- margin-right: 15px;
161
- color: #fff;
162
- background-color: #6A4BFF;
163
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
164
- font-size: 13px;
165
- border-radius: 2px;
166
- text-transform: uppercase;
167
- cursor: pointer;
168
- text-align: center;
169
- }
170
-
171
- .wpr-tplib-back {
172
- display: none;
173
- width: 230px;
174
- padding: 17px 15px;
175
- border-right: 1px solid #e6e9ec;
176
- color: #6d7882;
177
- font-size: 15px;
178
- font-weight: 700;
179
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
180
- cursor: pointer;
181
- -webkit-transition: all .3s;
182
- -o-transition: all .3s;
183
- transition: all .3s;
184
- }
185
-
186
- .wpr-tplib-back:hover {
187
- color: #495157;
188
- }
189
-
190
- .wpr-tplib-back i {
191
- margin-right: 5px;
192
- }
193
-
194
- .wpr-tplib-back span {
195
-
196
- }
197
-
198
- .wpr-tplib-content-wrap {
199
- }
200
-
201
- .wpr-tplib-sidebar {
202
- padding: 30px 30px 20px 30px;
203
- }
204
-
205
- .wpr-tplib-sidebar .wpr-tplib-search {
206
- display: none;
207
- position: relative;
208
- margin: 30px 0;
209
- }
210
-
211
- .wpr-tplib-sidebar .wpr-tplib-search i {
212
- position: absolute;
213
- top: 50%;
214
- right: 10px;
215
- font-size: 12px;
216
- -webkit-transform: translateY(-50%);
217
- -ms-transform: translateY(-50%);
218
- transform: translateY(-50%);
219
- }
220
-
221
- .wpr-tplib-sidebar .wpr-tplib-search input {
222
- width: 100%;
223
- padding: 8px 10px;
224
- border: 0;
225
- border-bottom: 1px solid #efefef;
226
- }
227
-
228
- .wpr-tplib-sidebar .wpr-tplib-search input::-webkit-input-placeholder {
229
- color: #9a9a9a;
230
- }
231
-
232
- .wpr-tplib-sidebar .wpr-tplib-search input::-moz-placeholder {
233
- color: #9a9a9a;
234
- }
235
-
236
- .wpr-tplib-sidebar .wpr-tplib-search input:-ms-input-placeholder {
237
- color: #9a9a9a;
238
- }
239
-
240
- .wpr-tplib-sidebar .wpr-tplib-search input::-ms-input-placeholder {
241
- color: #9a9a9a;
242
- }
243
-
244
- .wpr-tplib-sidebar .wpr-tplib-search input::placeholder {
245
- color: #9a9a9a;
246
- }
247
-
248
- .wpr-tplib-filters-wrap {
249
- display: -webkit-box;
250
- display: -ms-flexbox;
251
- display: flex;
252
- }
253
-
254
- .wpr-tplib-sub-filters {
255
- display: none;
256
- margin-left: 20px;
257
- }
258
-
259
- .wpr-tplib-sub-filters ul {
260
- display: -webkit-box;
261
- display: -ms-flexbox;
262
- display: flex;
263
- }
264
-
265
- .wpr-tplib-sub-filters ul li {
266
- padding: 10px 25px;
267
- margin-right: 7px;
268
- line-height: 15px;
269
- font-size: 13px;
270
- font-weight: normal;
271
- background: #fff;
272
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
273
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
274
- cursor: pointer;
275
- border-radius: 3px;
276
- }
277
-
278
- .wpr-tplib-sub-filters ul li:hover,
279
- .wpr-tplib-sub-filters ul .wpr-tplib-activ-filter {
280
- background: #6A4BFF;
281
- color: #fff;
282
- }
283
-
284
- .wpr-tplib-filters {
285
- -webkit-box-sizing: border-box;
286
- box-sizing: border-box;
287
- display: -webkit-box;
288
- display: -ms-flexbox;
289
- display: flex;
290
- -webkit-box-orient: vertical;
291
- -webkit-box-direction: normal;
292
- -ms-flex-direction: column;
293
- flex-direction: column;
294
- -webkit-box-align: start;
295
- -ms-flex-align: start;
296
- align-items: flex-start;
297
- position: relative;
298
- width: 200px;
299
- font-size: 14px;
300
- font-weight: normal;
301
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
302
- color: #6d7882;
303
- }
304
-
305
- .wpr-tplib-filters h3 {
306
- display: -webkit-box;
307
- display: -ms-flexbox;
308
- display: flex;
309
- width: 100%;
310
- padding: 10px 15px;
311
- font-size: 13px;
312
- font-weight: normal;
313
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
314
- background: #fff;
315
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
316
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
317
- cursor: pointer;
318
- border-radius: 3px;
319
- }
320
-
321
- .wpr-tplib-filters h3 span {
322
- width: 100%;
323
- }
324
-
325
- .wpr-tplib-filters-list {
326
- visibility: hidden;
327
- opacity: 0;
328
- position: absolute;
329
- top: 38px;
330
- z-index: 999;
331
- width: 700px;
332
- padding: 20px 30px;
333
- background: #fff;
334
- -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
335
- box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
336
- -webkit-transition: all 0.2s ease-in;
337
- -o-transition: all 0.2s ease-in;
338
- transition: all 0.2s ease-in;
339
- border-radius: 3px;
340
- }
341
-
342
- .wpr-tplib-filters-list ul {
343
- display: -webkit-box;
344
- display: -ms-flexbox;
345
- display: flex;
346
- -ms-flex-wrap: wrap;
347
- flex-wrap: wrap;
348
- list-style: none;
349
- padding-left: 0;
350
- }
351
-
352
- .wpr-tplib-filters-list ul li {
353
- width: 25%;
354
- padding: 12px;
355
- color: #6d7882;
356
- background: #fff;
357
- font-size: 13px;
358
- line-height: 1;
359
- cursor: pointer;
360
- }
361
-
362
- .wpr-tplib-filters-list ul li:hover {
363
- background: #f9f9f9;
364
- color: #222;
365
- }
366
-
367
- .wpr-tplib-template-gird {
368
- position: absolute;
369
- width: 100%;
370
- height: calc(100% - 132px);
371
- overflow: auto;
372
- padding: 0 30px 30px 30px;
373
- margin-left: -10px;
374
- }
375
-
376
- .wpr-tplib-template-wrap {
377
- float: left;
378
- overflow: hidden;
379
- width: 18.5%;
380
- margin: 10px;
381
- border-radius: 3px;
382
- -webkit-box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
383
- box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
384
- }
385
-
386
- .wpr-tplib-template-wrap:not(.wpr-tplib-pro-active):before {
387
- content: 'Free';
388
- display: block;
389
- position: absolute;
390
- top: 10px;
391
- right: 10px;
392
- z-index: 1;
393
- width: 45px;
394
- padding: 4px;
395
- font-size: 11px;
396
- line-height: 16px;
397
- font-weight: bold;
398
- letter-spacing: 0.3px;
399
- text-transform: uppercase;
400
- text-align: center;
401
- background: #555;
402
- color: #fff;
403
- -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
404
- box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
405
- border-radius: 3px;
406
- }
407
-
408
- .wpr-tplib-pro-wrap:not(.wpr-tplib-pro-active):before {
409
- content: 'Pro';
410
- background: #6A4BFF;
411
- }
412
-
413
- @media screen and ( max-width: 1364px ) {
414
- .wpr-tplib-template-wrap {
415
- width: 23%;
416
- }
417
- }
418
-
419
- .wpr-tplib-template {
420
- }
421
-
422
- .wpr-tplib-template-wrap:hover .wpr-tplib-insert-template {
423
- opacity: 1;
424
- visibility: visible;
425
- }
426
-
427
- .wpr-tplib-template-media {
428
- position: relative;
429
- background-color: #e8e8e8;
430
- }
431
-
432
- .wpr-tplib-template-media img {
433
- width: 100%;
434
- max-width: 100%;
435
- height: auto;
436
- }
437
-
438
- .wpr-tplib-template-media:hover .wpr-tplib-template-media-overlay {
439
- opacity: 1;
440
- }
441
-
442
- .wpr-tplib-template-media-overlay {
443
- opacity: 0;
444
- position: absolute;
445
- top: 0;
446
- left: 0;
447
- width: 100%;
448
- height: 100%;
449
- background-color: rgba(0, 0, 0, 0.5);
450
- color: #fff;
451
- cursor: pointer;
452
- -webkit-transition: opacity 0.1s ease-in;
453
- -o-transition: opacity 0.1s ease-in;
454
- transition: opacity 0.1s ease-in;
455
- }
456
-
457
- .wpr-tplib-template-media-overlay i {
458
- position: absolute;
459
- top: 50%;
460
- left: 50%;
461
- -webkit-transform: translate(-50%, -50%);
462
- -ms-transform: translate(-50%, -50%);
463
- transform: translate(-50%, -50%);
464
- font-size: 25px;
465
- }
466
-
467
- .wpr-tplib-preview-wrap {
468
- display: none;
469
- }
470
-
471
- .wpr-tplib-image {
472
- display: -webkit-box;
473
- display: -ms-flexbox;
474
- display: flex;
475
- -webkit-box-pack: center;
476
- -ms-flex-pack: center;
477
- justify-content: center;
478
- padding: 20px;
479
- }
480
-
481
- .wpr-tplib-iframe {
482
- position: relative;
483
- padding-top: 56.25%;
484
- }
485
-
486
- .wpr-tplib-iframe iframe {
487
- position: absolute;
488
- top: 0;
489
- left: 0;
490
- width: 100%;
491
- height: 100%;
492
- border: none;
493
- }
494
-
495
- .wpr-tplib-template-footer {
496
- display: -webkit-box;
497
- display: -ms-flexbox;
498
- display: flex;
499
- -webkit-box-orient: vertical;
500
- -webkit-box-direction: normal;
501
- -ms-flex-flow: column wrap;
502
- flex-flow: column wrap;
503
- -ms-flex-line-pack: justify;
504
- align-content: space-between;
505
- -webkit-box-pack: center;
506
- -ms-flex-pack: center;
507
- justify-content: center;
508
- height: 45px;
509
- padding: 5px 15px;
510
- background-color: #fff;
511
- border-top: 1px solid #efefef;
512
- }
513
-
514
- .wpr-tplib-template-footer h3 {
515
- overflow: hidden;
516
- color: #6d7882;
517
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
518
- font-size: 13px;
519
- font-weight: normal;
520
- white-space: nowrap;
521
- -o-text-overflow: ellipsis;
522
- text-overflow: ellipsis;
523
- }
524
-
525
- .wpr-tplib-template-footer .wpr-tplib-insert-template {
526
- opacity: 0;
527
- visibility: hidden;
528
- padding: 6px 10px;
529
- color: #fff;
530
- background-color: #6A4BFF;
531
- font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
532
- font-size: 13px;
533
- line-height: 1;
534
- letter-spacing: 0.3px;
535
- border-radius: 3px;
536
- cursor: pointer;
537
- -webkit-transition: all 0.1s ease-in;
538
- -o-transition: all 0.1s ease-in;
539
- transition: all 0.1s ease-in;
540
- }
541
-
542
-
543
- #masonry-effect {
544
- display: -webkit-box;
545
- display: -ms-flexbox;
546
- display: flex;
547
- -webkit-box-orient: horizontal;
548
- -webkit-box-direction: normal;
549
- -ms-flex-direction: row;
550
- flex-direction: row;
551
- -ms-flex-wrap: wrap;
552
- flex-wrap: wrap;
553
- }
554
- .item {
555
- -webkit-box-sizing: border-box;
556
- box-sizing: border-box;
557
- -webkit-box-orient: vertical;
558
- -webkit-box-direction: normal;
559
- -ms-flex-direction: column;
560
- flex-direction: column;
561
- position: relative;
562
- width: calc(33.3%);
563
- }
564
-
565
-
566
- /* Elementor Loader */
567
- .wpr-tplib-loader {
568
- overflow: auto;
569
- position: absolute;
570
- width: 100%;
571
- height: 100%;
572
- z-index: 9999999999;
573
- background-color: #f1f3f5;
574
- }
575
-
576
- .elementor-loader-wrapper {
577
- position: absolute;
578
- width: 300px;
579
- left: 50%;
580
- top: 50%;
581
- -webkit-transform: translateX(-50%) translateY(-50%);
582
- -ms-transform: translateX(-50%) translateY(-50%);
583
- transform: translateX(-50%) translateY(-50%);
584
- display: -webkit-box;
585
- display: -ms-flexbox;
586
- display: flex;
587
- -ms-flex-wrap: wrap;
588
- flex-wrap: wrap;
589
- -webkit-box-pack: center;
590
- -ms-flex-pack: center;
591
- justify-content: center;
592
- }
593
-
594
- .elementor-loader {
595
- border-radius: 7px;
596
- padding: 40px;
597
- height: 150px;
598
- width: 150px;
599
- background-color: rgba(255, 255, 255, 0.9);
600
- -webkit-box-sizing: border-box;
601
- box-sizing: border-box;
602
- -webkit-box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
603
- box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
604
- }
605
-
606
- .elementor-loader-boxes {
607
- height: 100%;
608
- width: 100%;
609
- position: relative;
610
- }
611
-
612
- .elementor-loader-box {
613
- position: absolute;
614
- background-color: #d5dadf;
615
- -webkit-animation: load 1.8s linear infinite;
616
- animation: load 1.8s linear infinite;
617
- }
618
-
619
- .elementor-loader-box:nth-of-type(1) {
620
- width: 20%;
621
- height: 100%;
622
- left: 0;
623
- top: 0;
624
- }
625
-
626
- .elementor-loader-box:not(:nth-of-type(1)) {
627
- right: 0;
628
- height: 20%;
629
- width: 60%;
630
- }
631
-
632
- .elementor-loader-box:nth-of-type(2) {
633
- top: 0;
634
- -webkit-animation-delay: -0.45s;
635
- animation-delay: -0.45s;
636
- }
637
-
638
- .elementor-loader-box:nth-of-type(3) {
639
- top: 40%;
640
- -webkit-animation-delay: -0.9s;
641
- animation-delay: -0.9s;
642
- }
643
-
644
- .elementor-loader-box:nth-of-type(4) {
645
- bottom: 0;
646
- -webkit-animation-delay: -1.35s;
647
- animation-delay: -1.35s;
648
- }
649
-
650
- @-webkit-keyframes load {
651
- 0% {
652
- opacity: .3;
653
- }
654
- 50% {
655
- opacity: 1;
656
- }
657
- 100% {
658
- opacity: .3;
659
- }
660
- }
661
-
662
- @keyframes load {
663
- 0% {
664
- opacity: .3;
665
- }
666
- 50% {
667
- opacity: 1;
668
- }
669
- 100% {
670
- opacity: .3;
671
- }
672
- }
673
-
674
- .elementor-loading-title {
675
- font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
676
- color: #a4afb7;
677
- text-align: center;
678
- text-transform: uppercase;
679
- margin-top: 30px;
680
- letter-spacing: 7px;
681
- text-indent: 7px;
682
- font-size: 10px;
683
- width: 100%;
684
- }
685
-
686
-
687
- /* Scroll Bar */
688
- .wpr-tplib-popup ::-webkit-scrollbar {
689
- width: 6px;
690
- height: 0;
691
- border-radius: 3px;
692
- }
693
-
694
- .wpr-tplib-popup ::-webkit-scrollbar-button {
695
- width: 0px;
696
- height: 10px;
697
- }
698
-
699
- .wpr-tplib-popup ::-webkit-scrollbar-thumb {
700
- background-color: #d5dadf;
701
- border: 0px none #d5dadf;
702
- border-radius: 3px;
703
- }
704
-
705
- .wpr-tplib-popup ::-webkit-scrollbar-track {
706
- border: 0px none #fff;
707
- border-radius: 0;
708
- }
709
-
710
- .wpr-tplib-popup ::-webkit-scrollbar-corner {
711
- background: transparent;
712
  }
1
+ /*--------------------------------------------------------------
2
+ == Library - Predefined Styles
3
+ --------------------------------------------------------------*/
4
+ #wpr-library-btn {
5
+ display: -webkit-inline-box;
6
+ display: -ms-inline-flexbox;
7
+ display: inline-flex;
8
+ width: 40px;
9
+ height: 40px;
10
+ vertical-align: top;
11
+ margin-left: 10px;
12
+ color: #fff;
13
+ font-family: Arial,Helvetica,sans-serif;
14
+ font-weight: bold;
15
+ letter-spacing: 0.3px;
16
+ cursor: pointer;
17
+ }
18
+
19
+ .wpr-library-icon {
20
+ display: -webkit-inline-box;
21
+ display: -ms-inline-flexbox;
22
+ display: inline-flex;
23
+ padding: 10px;
24
+ margin-right: 10px;
25
+ border-radius: 50%;
26
+ color: transparent;
27
+ font-family: Arial,Helvetica,sans-serif;
28
+ font-size: 14px;
29
+ font-weight: bold;
30
+ letter-spacing: 0.3px;
31
+ }
32
+
33
+ .wpr-tplib-popup-overlay {
34
+ position: fixed;
35
+ top: 0;
36
+ left: 0;
37
+ z-index: 999999;
38
+ width: 100%;
39
+ height: 100%;
40
+ background: rgba(0,0,0,0.5);
41
+ }
42
+
43
+ .wpr-tplib-popup {
44
+ overflow: hidden;
45
+ position: absolute;
46
+ top: 30%;
47
+ left: 50%;
48
+ -webkit-transform: translate(-50%,-30%);
49
+ -ms-transform: translate(-50%,-30%);
50
+ transform: translate(-50%,-30%);
51
+ background: #f1f3f5;
52
+ min-width: 100%;
53
+ height: 100%;
54
+ }
55
+
56
+ .wpr-tplib-header {
57
+ display: -webkit-box;
58
+ display: -ms-flexbox;
59
+ display: flex;
60
+ -webkit-box-align: center;
61
+ -ms-flex-align: center;
62
+ align-items: center;
63
+ background-color: #fff;
64
+ -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
65
+ box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
66
+ position: relative;
67
+ z-index: 10;
68
+ }
69
+
70
+ .wpr-tplib-logo {
71
+ display: -webkit-box;
72
+ display: -ms-flexbox;
73
+ display: flex;
74
+ -webkit-box-align: center;
75
+ -ms-flex-align: center;
76
+ align-items: center;
77
+ -webkit-box-pack: start;
78
+ -ms-flex-pack: start;
79
+ justify-content: flex-start;
80
+ width: 200px;
81
+ padding-left: 30px;
82
+ color: #495157;
83
+ font-size: 15px;
84
+ font-weight: 700;
85
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
86
+ }
87
+
88
+ .wpr-tplib-header ul {
89
+ display: -webkit-inline-box;
90
+ display: -ms-inline-flexbox;
91
+ display: inline-flex;
92
+ -webkit-box-pack: center;
93
+ -ms-flex-pack: center;
94
+ justify-content: center;
95
+ width: 100%;
96
+ margin: 0;
97
+ padding: 0;
98
+ margin-left: -130px;
99
+ list-style: none;
100
+ }
101
+
102
+ .wpr-tplib-header ul li {
103
+ width: 115px;
104
+ padding: 20px 0;
105
+ color: #6d7882;
106
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
107
+ font-size: 14px;
108
+ line-height: 1;
109
+ font-weight: 500;
110
+ text-align: center;
111
+ cursor: pointer;
112
+
113
+ }
114
+
115
+ .wpr-tplib-active-tab {
116
+ background-image: -o-linear-gradient(top,#f1f3f5,#fff);
117
+ background-image: -webkit-gradient(linear,left top, left bottom,from(#f1f3f5),to(#fff));
118
+ background-image: linear-gradient(180deg,#f1f3f5,#fff);
119
+ border-bottom: 3px solid #6A4BFF;
120
+ }
121
+
122
+ .wpr-tplib-close {
123
+ display: -webkit-box;
124
+ display: -ms-flexbox;
125
+ display: flex;
126
+ -webkit-box-align: center;
127
+ -ms-flex-align: center;
128
+ align-items: center;
129
+ -webkit-box-pack: end;
130
+ -ms-flex-pack: end;
131
+ justify-content: flex-end;
132
+ padding-right: 30px;
133
+ color: #a4afb7;
134
+ font-size: 18px;
135
+ cursor: pointer;
136
+ -webkit-transition: all .3s;
137
+ -o-transition: all .3s;
138
+ transition: all .3s;
139
+ }
140
+
141
+ .wpr-tplib-close:hover {
142
+ color: #3a3a3a;
143
+ }
144
+
145
+ .wpr-tplib-close i {
146
+ line-height: 20px;
147
+ padding-left: 20px;
148
+ }
149
+
150
+ .wpr-tplib-popup h3 {
151
+ margin: 0;
152
+ }
153
+
154
+ .wpr-tplib-header .wpr-tplib-insert-template {
155
+ display: none;
156
+ width: 120px;
157
+ height: 27px;
158
+ line-height: 27px;
159
+ padding: 0 15px;
160
+ margin-right: 15px;
161
+ color: #fff;
162
+ background-color: #6A4BFF;
163
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
164
+ font-size: 13px;
165
+ border-radius: 2px;
166
+ text-transform: uppercase;
167
+ cursor: pointer;
168
+ text-align: center;
169
+ }
170
+
171
+ .wpr-tplib-back {
172
+ display: none;
173
+ width: 230px;
174
+ padding: 17px 15px;
175
+ border-right: 1px solid #e6e9ec;
176
+ color: #6d7882;
177
+ font-size: 15px;
178
+ font-weight: 700;
179
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
180
+ cursor: pointer;
181
+ -webkit-transition: all .3s;
182
+ -o-transition: all .3s;
183
+ transition: all .3s;
184
+ }
185
+
186
+ .wpr-tplib-back:hover {
187
+ color: #495157;
188
+ }
189
+
190
+ .wpr-tplib-back i {
191
+ margin-right: 5px;
192
+ }
193
+
194
+ .wpr-tplib-back span {
195
+
196
+ }
197
+
198
+ .wpr-tplib-content-wrap {
199
+ }
200
+
201
+ .wpr-tplib-sidebar {
202
+ padding: 30px 30px 20px 30px;
203
+ }
204
+
205
+ .wpr-tplib-sidebar .wpr-tplib-search {
206
+ display: none;
207
+ position: relative;
208
+ margin: 30px 0;
209
+ }
210
+
211
+ .wpr-tplib-sidebar .wpr-tplib-search i {
212
+ position: absolute;
213
+ top: 50%;
214
+ right: 10px;
215
+ font-size: 12px;
216
+ -webkit-transform: translateY(-50%);
217
+ -ms-transform: translateY(-50%);
218
+ transform: translateY(-50%);
219
+ }
220
+
221
+ .wpr-tplib-sidebar .wpr-tplib-search input {
222
+ width: 100%;
223
+ padding: 8px 10px;
224
+ border: 0;
225
+ border-bottom: 1px solid #efefef;
226
+ }
227
+
228
+ .wpr-tplib-sidebar .wpr-tplib-search input::-webkit-input-placeholder {
229
+ color: #9a9a9a;
230
+ }
231
+
232
+ .wpr-tplib-sidebar .wpr-tplib-search input::-moz-placeholder {
233
+ color: #9a9a9a;
234
+ }
235
+
236
+ .wpr-tplib-sidebar .wpr-tplib-search input:-ms-input-placeholder {
237
+ color: #9a9a9a;
238
+ }
239
+
240
+ .wpr-tplib-sidebar .wpr-tplib-search input::-ms-input-placeholder {
241
+ color: #9a9a9a;
242
+ }
243
+
244
+ .wpr-tplib-sidebar .wpr-tplib-search input::placeholder {
245
+ color: #9a9a9a;
246
+ }
247
+
248
+ .wpr-tplib-filters-wrap {
249
+ display: -webkit-box;
250
+ display: -ms-flexbox;
251
+ display: flex;
252
+ }
253
+
254
+ .wpr-tplib-sub-filters {
255
+ display: none;
256
+ margin-left: 20px;
257
+ }
258
+
259
+ .wpr-tplib-sub-filters ul {
260
+ display: -webkit-box;
261
+ display: -ms-flexbox;
262
+ display: flex;
263
+ }
264
+
265
+ .wpr-tplib-sub-filters ul li {
266
+ padding: 10px 25px;
267
+ margin-right: 7px;
268
+ line-height: 15px;
269
+ font-size: 13px;
270
+ font-weight: normal;
271
+ background: #fff;
272
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
273
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
274
+ cursor: pointer;
275
+ border-radius: 3px;
276
+ }
277
+
278
+ .wpr-tplib-sub-filters ul li:hover,
279
+ .wpr-tplib-sub-filters ul .wpr-tplib-activ-filter {
280
+ background: #6A4BFF;
281
+ color: #fff;
282
+ }
283
+
284
+ .wpr-tplib-filters {
285
+ -webkit-box-sizing: border-box;
286
+ box-sizing: border-box;
287
+ display: -webkit-box;
288
+ display: -ms-flexbox;
289
+ display: flex;
290
+ -webkit-box-orient: vertical;
291
+ -webkit-box-direction: normal;
292
+ -ms-flex-direction: column;
293
+ flex-direction: column;
294
+ -webkit-box-align: start;
295
+ -ms-flex-align: start;
296
+ align-items: flex-start;
297
+ position: relative;
298
+ width: 200px;
299
+ font-size: 14px;
300
+ font-weight: normal;
301
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
302
+ color: #6d7882;
303
+ }
304
+
305
+ .wpr-tplib-filters h3 {
306
+ display: -webkit-box;
307
+ display: -ms-flexbox;
308
+ display: flex;
309
+ width: 100%;
310
+ padding: 10px 15px;
311
+ font-size: 13px;
312
+ font-weight: normal;
313
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
314
+ background: #fff;
315
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
316
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
317
+ cursor: pointer;
318
+ border-radius: 3px;
319
+ }
320
+
321
+ .wpr-tplib-filters h3 span {
322
+ width: 100%;
323
+ }
324
+
325
+ .wpr-tplib-filters-list {
326
+ visibility: hidden;
327
+ opacity: 0;
328
+ position: absolute;
329
+ top: 38px;
330
+ z-index: 999;
331
+ width: 700px;
332
+ padding: 20px 30px;
333
+ background: #fff;
334
+ -webkit-box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
335
+ box-shadow: 0 2px 5px 0 rgba(0,0,0,0.05);
336
+ -webkit-transition: all 0.2s ease-in;
337
+ -o-transition: all 0.2s ease-in;
338
+ transition: all 0.2s ease-in;
339
+ border-radius: 3px;
340
+ }
341
+
342
+ .wpr-tplib-filters-list ul {
343
+ display: -webkit-box;
344
+ display: -ms-flexbox;
345
+ display: flex;
346
+ -ms-flex-wrap: wrap;
347
+ flex-wrap: wrap;
348
+ list-style: none;
349
+ padding-left: 0;
350
+ }
351
+
352
+ .wpr-tplib-filters-list ul li {
353
+ width: 25%;
354
+ padding: 12px;
355
+ color: #6d7882;
356
+ background: #fff;
357
+ font-size: 13px;
358
+ line-height: 1;
359
+ cursor: pointer;
360
+ }
361
+
362
+ .wpr-tplib-filters-list ul li:hover {
363
+ background: #f9f9f9;
364
+ color: #222;
365
+ }
366
+
367
+ .wpr-tplib-template-gird {
368
+ position: absolute;
369
+ width: 100%;
370
+ height: calc(100% - 132px);
371
+ overflow: auto;
372
+ padding: 0 30px 30px 30px;
373
+ margin-left: -10px;
374
+ }
375
+
376
+ .wpr-tplib-template-wrap {
377
+ float: left;
378
+ overflow: hidden;
379
+ width: 18.5%;
380
+ margin: 10px;
381
+ border-radius: 3px;
382
+ -webkit-box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
383
+ box-shadow: 0 1px 20px 0 rgba(0,0,0,0.07);
384
+ }
385
+
386
+ .wpr-tplib-template-wrap:not(.wpr-tplib-pro-active):before {
387
+ content: 'Free';
388
+ display: block;
389
+ position: absolute;
390
+ top: 10px;
391
+ right: 10px;
392
+ z-index: 1;
393
+ width: 45px;
394
+ padding: 4px;
395
+ font-size: 11px;
396
+ line-height: 16px;
397
+ font-weight: bold;
398
+ letter-spacing: 0.3px;
399
+ text-transform: uppercase;
400
+ text-align: center;
401
+ background: #555;
402
+ color: #fff;
403
+ -webkit-box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
404
+ box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
405
+ border-radius: 3px;
406
+ }
407
+
408
+ .wpr-tplib-pro-wrap:not(.wpr-tplib-pro-active):before {
409
+ content: 'Pro';
410
+ background: #6A4BFF;
411
+ }
412
+
413
+ @media screen and ( max-width: 1364px ) {
414
+ .wpr-tplib-template-wrap {
415
+ width: 23%;
416
+ }
417
+ }
418
+
419
+ .wpr-tplib-template {
420
+ }
421
+
422
+ .wpr-tplib-template-wrap:hover .wpr-tplib-insert-template {
423
+ opacity: 1;
424
+ visibility: visible;
425
+ }
426
+
427
+ .wpr-tplib-template-media {
428
+ position: relative;
429
+ background-color: #e8e8e8;
430
+ }
431
+
432
+ .wpr-tplib-template-media img {
433
+ width: 100%;
434
+ max-width: 100%;
435
+ height: auto;
436
+ }
437
+
438
+ .wpr-tplib-template-media:hover .wpr-tplib-template-media-overlay {
439
+ opacity: 1;
440
+ }
441
+
442
+ .wpr-tplib-template-media-overlay {
443
+ opacity: 0;
444
+ position: absolute;
445
+ top: 0;
446
+ left: 0;
447
+ width: 100%;
448
+ height: 100%;
449
+ background-color: rgba(0, 0, 0, 0.5);
450
+ color: #fff;
451
+ cursor: pointer;
452
+ -webkit-transition: opacity 0.1s ease-in;
453
+ -o-transition: opacity 0.1s ease-in;
454
+ transition: opacity 0.1s ease-in;
455
+ }
456
+
457
+ .wpr-tplib-template-media-overlay i {
458
+ position: absolute;
459
+ top: 50%;
460
+ left: 50%;
461
+ -webkit-transform: translate(-50%, -50%);
462
+ -ms-transform: translate(-50%, -50%);
463
+ transform: translate(-50%, -50%);
464
+ font-size: 25px;
465
+ }
466
+
467
+ .wpr-tplib-preview-wrap {
468
+ display: none;
469
+ }
470
+
471
+ .wpr-tplib-image {
472
+ display: -webkit-box;
473
+ display: -ms-flexbox;
474
+ display: flex;
475
+ -webkit-box-pack: center;
476
+ -ms-flex-pack: center;
477
+ justify-content: center;
478
+ padding: 20px;
479
+ }
480
+
481
+ .wpr-tplib-iframe {
482
+ position: relative;
483
+ padding-top: 56.25%;
484
+ }
485
+
486
+ .wpr-tplib-iframe iframe {
487
+ position: absolute;
488
+ top: 0;
489
+ left: 0;
490
+ width: 100%;
491
+ height: 100%;
492
+ border: none;
493
+ }
494
+
495
+ .wpr-tplib-template-footer {
496
+ display: -webkit-box;
497
+ display: -ms-flexbox;
498
+ display: flex;
499
+ -webkit-box-orient: vertical;
500
+ -webkit-box-direction: normal;
501
+ -ms-flex-flow: column wrap;
502
+ flex-flow: column wrap;
503
+ -ms-flex-line-pack: justify;
504
+ align-content: space-between;
505
+ -webkit-box-pack: center;
506
+ -ms-flex-pack: center;
507
+ justify-content: center;
508
+ height: 45px;
509
+ padding: 5px 15px;
510
+ background-color: #fff;
511
+ border-top: 1px solid #efefef;
512
+ }
513
+
514
+ .wpr-tplib-template-footer h3 {
515
+ overflow: hidden;
516
+ color: #6d7882;
517
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
518
+ font-size: 13px;
519
+ font-weight: normal;
520
+ white-space: nowrap;
521
+ -o-text-overflow: ellipsis;
522
+ text-overflow: ellipsis;
523
+ }
524
+
525
+ .wpr-tplib-template-footer .wpr-tplib-insert-template {
526
+ opacity: 0;
527
+ visibility: hidden;
528
+ padding: 6px 10px;
529
+ color: #fff;
530
+ background-color: #6A4BFF;
531
+ font-family: "Roboto",Arial,Helvetica,Verdana,sans-serif;
532
+ font-size: 13px;
533
+ line-height: 1;
534
+ letter-spacing: 0.3px;
535
+ border-radius: 3px;
536
+ cursor: pointer;
537
+ -webkit-transition: all 0.1s ease-in;
538
+ -o-transition: all 0.1s ease-in;
539
+ transition: all 0.1s ease-in;
540
+ }
541
+
542
+
543
+ #masonry-effect {
544
+ display: -webkit-box;
545
+ display: -ms-flexbox;
546
+ display: flex;
547
+ -webkit-box-orient: horizontal;
548
+ -webkit-box-direction: normal;
549
+ -ms-flex-direction: row;
550
+ flex-direction: row;
551
+ -ms-flex-wrap: wrap;
552
+ flex-wrap: wrap;
553
+ }
554
+ .item {
555
+ -webkit-box-sizing: border-box;
556
+ box-sizing: border-box;
557
+ -webkit-box-orient: vertical;
558
+ -webkit-box-direction: normal;
559
+ -ms-flex-direction: column;
560
+ flex-direction: column;
561
+ position: relative;
562
+ width: calc(33.3%);
563
+ }
564
+
565
+
566
+ /* Elementor Loader */
567
+ .wpr-tplib-loader {
568
+ overflow: auto;
569
+ position: absolute;
570
+ width: 100%;
571
+ height: 100%;
572
+ z-index: 9999999999;
573
+ background-color: #f1f3f5;
574
+ }
575
+
576
+ .elementor-loader-wrapper {
577
+ position: absolute;
578
+ width: 300px;
579
+ left: 50%;
580
+ top: 50%;
581
+ -webkit-transform: translateX(-50%) translateY(-50%);
582
+ -ms-transform: translateX(-50%) translateY(-50%);
583
+ transform: translateX(-50%) translateY(-50%);
584
+ display: -webkit-box;
585
+ display: -ms-flexbox;
586
+ display: flex;
587
+ -ms-flex-wrap: wrap;
588
+ flex-wrap: wrap;
589
+ -webkit-box-pack: center;
590
+ -ms-flex-pack: center;
591
+ justify-content: center;
592
+ }
593
+
594
+ .elementor-loader {
595
+ border-radius: 7px;
596
+ padding: 40px;
597
+ height: 150px;
598
+ width: 150px;
599
+ background-color: rgba(255, 255, 255, 0.9);
600
+ -webkit-box-sizing: border-box;
601
+ box-sizing: border-box;
602
+ -webkit-box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
603
+ box-shadow: 2px 2px 20px 4px rgba(0, 0, 0, 0.02);
604
+ }
605
+
606
+ .elementor-loader-boxes {
607
+ height: 100%;
608
+ width: 100%;
609
+ position: relative;
610
+ }
611
+
612
+ .elementor-loader-box {
613
+ position: absolute;
614
+ background-color: #d5dadf;
615
+ -webkit-animation: load 1.8s linear infinite;
616
+ animation: load 1.8s linear infinite;
617
+ }
618
+
619
+ .elementor-loader-box:nth-of-type(1) {
620
+ width: 20%;
621
+ height: 100%;
622
+ left: 0;
623
+ top: 0;
624
+ }
625
+
626
+ .elementor-loader-box:not(:nth-of-type(1)) {
627
+ right: 0;
628
+ height: 20%;
629
+ width: 60%;
630
+ }
631
+
632
+ .elementor-loader-box:nth-of-type(2) {
633
+ top: 0;
634
+ -webkit-animation-delay: -0.45s;
635
+ animation-delay: -0.45s;
636
+ }
637
+
638
+ .elementor-loader-box:nth-of-type(3) {
639
+ top: 40%;
640
+ -webkit-animation-delay: -0.9s;
641
+ animation-delay: -0.9s;
642
+ }
643
+
644
+ .elementor-loader-box:nth-of-type(4) {
645
+ bottom: 0;
646
+ -webkit-animation-delay: -1.35s;
647
+ animation-delay: -1.35s;
648
+ }
649
+
650
+ @-webkit-keyframes load {
651
+ 0% {
652
+ opacity: .3;
653
+ }
654
+ 50% {
655
+ opacity: 1;
656
+ }
657
+ 100% {
658
+ opacity: .3;
659
+ }
660
+ }
661
+
662
+ @keyframes load {
663
+ 0% {
664
+ opacity: .3;
665
+ }
666
+ 50% {
667
+ opacity: 1;
668
+ }
669
+ 100% {
670
+ opacity: .3;
671
+ }
672
+ }
673
+
674
+ .elementor-loading-title {
675
+ font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
676
+ color: #a4afb7;
677
+ text-align: center;
678
+ text-transform: uppercase;
679
+ margin-top: 30px;
680
+ letter-spacing: 7px;
681
+ text-indent: 7px;
682
+ font-size: 10px;
683
+ width: 100%;
684
+ }
685
+
686
+
687
+ /* Scroll Bar */
688
+ .wpr-tplib-popup ::-webkit-scrollbar {
689
+ width: 6px;
690
+ height: 0;
691
+ border-radius: 3px;
692
+ }
693
+
694
+ .wpr-tplib-popup ::-webkit-scrollbar-button {
695
+ width: 0px;
696
+ height: 10px;
697
+ }
698
+
699
+ .wpr-tplib-popup ::-webkit-scrollbar-thumb {
700
+ background-color: #d5dadf;
701
+ border: 0px none #d5dadf;
702
+ border-radius: 3px;
703
+ }
704
+
705
+ .wpr-tplib-popup ::-webkit-scrollbar-track {
706
+ border: 0px none #fff;
707
+ border-radius: 0;
708
+ }
709
+
710
+ .wpr-tplib-popup ::-webkit-scrollbar-corner {
711
+ background: transparent;
712
  }
assets/js/admin/lib/iconpicker/fontawesome-iconpicker.min.js CHANGED
@@ -1,4 +1,4 @@
1
-
2
-
3
-
4
  !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(j){j.ui=j.ui||{};j.ui.version="1.12.1";!function(){var r,y=Math.max,x=Math.abs,s=/left|center|right/,i=/top|center|bottom/,c=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,o=j.fn.pos;function q(e,a,t){return[parseFloat(e[0])*(l.test(e[0])?a/100:1),parseFloat(e[1])*(l.test(e[1])?t/100:1)]}function C(e,a){return parseInt(j.css(e,a),10)||0}j.pos={scrollbarWidth:function(){if(void 0!==r)return r;var e,a,t=j("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=t.children()[0];return j("body").append(t),e=s.offsetWidth,t.css("overflow","scroll"),e===(a=s.offsetWidth)&&(a=t[0].clientWidth),t.remove(),r=e-a},getScrollInfo:function(e){var a=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),t=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),s="scroll"===a||"auto"===a&&e.width<e.element[0].scrollWidth;return{width:"scroll"===t||"auto"===t&&e.height<e.element[0].scrollHeight?j.pos.scrollbarWidth():0,height:s?j.pos.scrollbarWidth():0}},getWithinInfo:function(e){var a=j(e||window),t=j.isWindow(a[0]),s=!!a[0]&&9===a[0].nodeType;return{element:a,isWindow:t,isDocument:s,offset:!t&&!s?j(e).offset():{left:0,top:0},scrollLeft:a.scrollLeft(),scrollTop:a.scrollTop(),width:a.outerWidth(),height:a.outerHeight()}}},j.fn.pos=function(h){if(!h||!h.of)return o.apply(this,arguments);h=j.extend({},h);var m,p,d,T,u,e,a,t,g=j(h.of),b=j.pos.getWithinInfo(h.within),k=j.pos.getScrollInfo(b),w=(h.collision||"flip").split(" "),v={};return e=9===(t=(a=g)[0]).nodeType?{width:a.width(),height:a.height(),offset:{top:0,left:0}}:j.isWindow(t)?{width:a.width(),height:a.height(),offset:{top:a.scrollTop(),left:a.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:a.outerWidth(),height:a.outerHeight(),offset:a.offset()},g[0].preventDefault&&(h.at="left top"),p=e.width,d=e.height,T=e.offset,u=j.extend({},T),j.each(["my","at"],function(){var e,a,t=(h[this]||"").split(" ");1===t.length&&(t=s.test(t[0])?t.concat(["center"]):i.test(t[0])?["center"].concat(t):["center","center"]),t[0]=s.test(t[0])?t[0]:"center",t[1]=i.test(t[1])?t[1]:"center",e=c.exec(t[0]),a=c.exec(t[1]),v[this]=[e?e[0]:0,a?a[0]:0],h[this]=[f.exec(t[0])[0],f.exec(t[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===h.at[0]?u.left+=p:"center"===h.at[0]&&(u.left+=p/2),"bottom"===h.at[1]?u.top+=d:"center"===h.at[1]&&(u.top+=d/2),m=q(v.at,p,d),u.left+=m[0],u.top+=m[1],this.each(function(){var t,e,c=j(this),f=c.outerWidth(),l=c.outerHeight(),a=C(this,"marginLeft"),s=C(this,"marginTop"),r=f+a+C(this,"marginRight")+k.width,i=l+s+C(this,"marginBottom")+k.height,o=j.extend({},u),n=q(v.my,c.outerWidth(),c.outerHeight());"right"===h.my[0]?o.left-=f:"center"===h.my[0]&&(o.left-=f/2),"bottom"===h.my[1]?o.top-=l:"center"===h.my[1]&&(o.top-=l/2),o.left+=n[0],o.top+=n[1],t={marginLeft:a,marginTop:s},j.each(["left","top"],function(e,a){j.ui.pos[w[e]]&&j.ui.pos[w[e]][a](o,{targetWidth:p,targetHeight:d,elemWidth:f,elemHeight:l,collisionPosition:t,collisionWidth:r,collisionHeight:i,offset:[m[0]+n[0],m[1]+n[1]],my:h.my,at:h.at,within:b,elem:c})}),h.using&&(e=function(e){var a=T.left-o.left,t=a+p-f,s=T.top-o.top,r=s+d-l,i={target:{element:g,left:T.left,top:T.top,width:p,height:d},element:{element:c,left:o.left,top:o.top,width:f,height:l},horizontal:t<0?"left":0<a?"right":"center",vertical:r<0?"top":0<s?"bottom":"middle"};p<f&&x(a+t)<p&&(i.horizontal="center"),d<l&&x(s+r)<d&&(i.vertical="middle"),y(x(a),x(t))>y(x(s),x(r))?i.important="horizontal":i.important="vertical",h.using.call(this,e,i)}),c.offset(j.extend(o,{using:e}))})},j.ui.pos={_trigger:function(e,a,t,s){a.elem&&a.elem.trigger({type:t,position:e,positionData:a,triggered:s})},fit:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitLeft");var t,s=a.within,r=s.isWindow?s.scrollLeft:s.offset.left,i=s.width,c=e.left-a.collisionPosition.marginLeft,f=r-c,l=c+a.collisionWidth-i-r;a.collisionWidth>i?0<f&&l<=0?(t=e.left+f+a.collisionWidth-i-r,e.left+=f-t):e.left=0<l&&f<=0?r:l<f?r+i-a.collisionWidth:r:0<f?e.left+=f:0<l?e.left-=l:e.left=y(e.left-c,e.left),j.ui.pos._trigger(e,a,"posCollided","fitLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitTop");var t,s=a.within,r=s.isWindow?s.scrollTop:s.offset.top,i=a.within.height,c=e.top-a.collisionPosition.marginTop,f=r-c,l=c+a.collisionHeight-i-r;a.collisionHeight>i?0<f&&l<=0?(t=e.top+f+a.collisionHeight-i-r,e.top+=f-t):e.top=0<l&&f<=0?r:l<f?r+i-a.collisionHeight:r:0<f?e.top+=f:0<l?e.top-=l:e.top=y(e.top-c,e.top),j.ui.pos._trigger(e,a,"posCollided","fitTop")}},flip:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipLeft");var t,s,r=a.within,i=r.offset.left+r.scrollLeft,c=r.width,f=r.isWindow?r.scrollLeft:r.offset.left,l=e.left-a.collisionPosition.marginLeft,o=l-f,n=l+a.collisionWidth-c-f,h="left"===a.my[0]?-a.elemWidth:"right"===a.my[0]?a.elemWidth:0,m="left"===a.at[0]?a.targetWidth:"right"===a.at[0]?-a.targetWidth:0,p=-2*a.offset[0];o<0?((t=e.left+h+m+p+a.collisionWidth-c-i)<0||t<x(o))&&(e.left+=h+m+p):0<n&&(0<(s=e.left-a.collisionPosition.marginLeft+h+m+p-f)||x(s)<n)&&(e.left+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipTop");var t,s,r=a.within,i=r.offset.top+r.scrollTop,c=r.height,f=r.isWindow?r.scrollTop:r.offset.top,l=e.top-a.collisionPosition.marginTop,o=l-f,n=l+a.collisionHeight-c-f,h="top"===a.my[1]?-a.elemHeight:"bottom"===a.my[1]?a.elemHeight:0,m="top"===a.at[1]?a.targetHeight:"bottom"===a.at[1]?-a.targetHeight:0,p=-2*a.offset[1];o<0?((s=e.top+h+m+p+a.collisionHeight-c-i)<0||s<x(o))&&(e.top+=h+m+p):0<n&&(0<(t=e.top-a.collisionPosition.marginTop+h+m+p-f)||x(t)<n)&&(e.top+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipTop")}},flipfit:{left:function(){j.ui.pos.flip.left.apply(this,arguments),j.ui.pos.fit.left.apply(this,arguments)},top:function(){j.ui.pos.flip.top.apply(this,arguments),j.ui.pos.fit.top.apply(this,arguments)}}},function(){var e,a,t,s,r,i=document.getElementsByTagName("body")[0],c=document.createElement("div");for(r in e=document.createElement(i?"div":"body"),t={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},i&&j.extend(t,{position:"absolute",left:"-1000px",top:"-1000px"}),t)e.style[r]=t[r];e.appendChild(c),(a=i||document.documentElement).insertBefore(e,a.firstChild),c.style.cssText="position: absolute; left: 10.7432222px;",s=j(c).offset().left,j.support.offsetFractions=10<s&&s<11,e.innerHTML="",a.removeChild(e)}()}();j.ui.position}),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):window.jQuery&&!window.jQuery.fn.iconpicker&&e(window.jQuery)}(function(l){"use strict";var t=function(e){return!1===e||""===e||null==e},s=function(e){return 0<l(e).length},r=function(e){return"string"==typeof e||e instanceof String},i=function(e,a){return-1!==l.inArray(e,a)},c=function(e,a){this._id=c._idCounter++,this.element=l(e).addClass("iconpicker-element"),this._trigger("iconpickerCreate",{iconpickerValue:this.iconpickerValue}),this.options=l.extend({},c.defaultOptions,this.element.data(),a),this.options.templates=l.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!s(this.options.container)&&l(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=l("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated",{iconpickerValue:this.iconpickerValue})};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(e){return e},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'<div class="iconpicker-popover popover"><div class="arrow"></div><div class="popover-title"></div><div class="popover-content"></div></div>',footer:'<div class="popover-footer"></div>',buttons:'<button class="iconpicker-btn iconpicker-btn-cancel btn btn-default btn-sm">Cancel</button> <button class="iconpicker-btn iconpicker-btn-accept btn btn-primary btn-sm">Accept</button>',search:'<input type="search" class="form-control iconpicker-search" placeholder="Type to filter" />',iconpicker:'<div class="iconpicker"><div class="iconpicker-items"></div></div>',iconpickerItem:'<a role="button" href="javascript:;" class="iconpicker-item"><i></i></a>'}},c.batch=function(e,a){var t=Array.prototype.slice.call(arguments,2);return l(e).each(function(){var e=l(this).data("iconpicker");e&&e[a].apply(e,t)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(e,a){a=a||{},this.element.trigger(l.extend({type:e,iconpickerInstance:this},a))},_createPopover:function(){this.popover=l(this.options.templates.popover);var e=this.popover.find(".popover-title");if(this.options.title&&e.append(l('<div class="popover-title-text">'+this.options.title+"</div>")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?e.append(this.options.templates.search):this.options.title||e.remove(),this.options.showFooter&&!t(this.options.templates.footer)){var a=l(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&a.append(l(this.options.templates.search)),t(this.options.templates.buttons)||a.append(l(this.options.templates.buttons)),this.popover.append(a)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var t=this;this.iconpicker=l(this.options.templates.iconpicker);var e=function(e){var a=l(this);a.is("i")&&(a=a.parent()),t._trigger("iconpickerSelect",{iconpickerItem:a,iconpickerValue:t.iconpickerValue}),!1===t.options.mustAccept?(t.update(a.data("iconpickerValue")),t._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:t.iconpickerValue})):t.update(a.data("iconpickerValue"),!0),t.options.hideOnSelect&&!1===t.options.mustAccept&&t.hide()},a=l(this.options.templates.iconpickerItem),s=[];for(var r in this.options.icons)if("string"==typeof this.options.icons[r].title){var i=a.clone();if(i.find("i").addClass(this.options.fullClassFormatter(this.options.icons[r].title)),i.data("iconpickerValue",this.options.icons[r].title).on("click.iconpicker",e),i.attr("title","."+this.options.icons[r].title),0<this.options.icons[r].searchTerms.length){for(var c="",f=0;f<this.options.icons[r].searchTerms.length;f++)c=c+this.options.icons[r].searchTerms[f]+" ";i.attr("data-search-terms",c)}s.push(i)}return this.iconpicker.find(".iconpicker-items").append(s),this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(e){var a=l(e.target);return!((!a.hasClass("iconpicker-element")||a.hasClass("iconpicker-element")&&!a.is(this.element))&&0===a.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var a=this;this.getSearchInput().on("keyup.iconpicker",function(){a.filter(l(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var e=a.iconpicker.find(".iconpicker-selected").get(0);a.update(a.iconpickerValue),a._trigger("iconpickerSelected",{iconpickerItem:e,iconpickerValue:a.iconpickerValue}),a.isInline()||a.hide()}),this.getCancelButton().on("click.iconpicker",function(){a.isInline()||a.hide()}),this.element.on("focus.iconpicker",function(e){a.show(),e.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){a.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(e){i(e.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?a._updateFormGroupStatus(!1!==a.getValid(this.value)):a.update(),!0===a.options.inputSearch&&a.filter(l(this).val().toLowerCase())})},_bindWindowEvents:function(){var e=l(window.document),a=this,t=".iconpicker.inst"+this._id;l(window).on("resize.iconpicker"+t+" orientationchange.iconpicker"+t,function(e){a.popover.hasClass("in")&&a.updatePlacement()}),a.isInline()||e.on("mouseup"+t,function(e){a._isEventInsideIconpicker(e)||a.isInline()||a.hide()})},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){l(window).off(".iconpicker.inst"+this._id),l(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(e,a){e=e||this.options.placement,this.options.placement=e,a=!0===(a=a||this.options.collision)?"flip":a;var t={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:!0===a?"flip":a,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof e)return this.popover.pos(l.extend({},t,e));switch(e){case"inline":t=!1;break;case"topLeftCorner":t.my="right bottom",t.at="left top";break;case"topLeft":t.my="left bottom",t.at="left top";break;case"top":t.my="center bottom",t.at="center top";break;case"topRight":t.my="right bottom",t.at="right top";break;case"topRightCorner":t.my="left bottom",t.at="right top";break;case"rightTop":t.my="left bottom",t.at="right center";break;case"right":t.my="left center",t.at="right center";break;case"rightBottom":t.my="left top",t.at="right center";break;case"bottomRightCorner":t.my="left top",t.at="right bottom";break;case"bottomRight":t.my="right top",t.at="right bottom";break;case"bottom":t.my="center top",t.at="center bottom";break;case"bottomLeft":t.my="left top",t.at="left bottom";break;case"bottomLeftCorner":t.my="right top",t.at="left bottom";break;case"leftBottom":t.my="right top",t.at="left center";break;case"left":t.my="right center",t.at="left center";break;case"leftTop":t.my="right bottom",t.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),!1!==t?this.popover.pos(t).css("maxWidth",l(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var e=this.component.find("i");0<e.length?e.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(e){return!!this.hasInput()&&(!1!==e?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(e){r(e)||(e="");var a=""===e;e=l.trim(e);for(var t=!1,s=0;s<this.options.icons.length;s++)if(this.options.icons[s].title===e){t=!0;break}return!(!t&&!a)&&e},setValue:function(e){var a=this.getValid(e);return!1!==a?(this.iconpickerValue=a,this._trigger("iconpickerSetValue",{iconpickerValue:a}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:e}),!1)},getHtml:function(){return'<i class="'+this.options.fullClassFormatter(this.iconpickerValue)+'"></i>'},setSourceValue:function(e){return!1!==(e=this.setValue(e))&&""!==e&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:e})),e},getSourceValue:function(e){var a=e=e||this.options.defaultValue;return void 0!==(a=this.hasInput()?this.input.val():this.element.data("iconpickerValue"))&&""!==a&&null!==a&&!1!==a||(a=e),a},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(s){if(t(s))return this.iconpicker.find(".iconpicker-item").show(),l(!1);var r=[];return this.iconpicker.find(".iconpicker-item").each(function(){var e=l(this),a=e.attr("title").toLowerCase();a=a+" "+(e.attr("data-search-terms")?e.attr("data-search-terms").toLowerCase():"");var t=!1;try{t=new RegExp("(^|\\W)"+s,"g")}catch(e){t=!1}!1!==t&&a.match(t)?(r.push(e),e.show()):e.hide()}),r},show:function(){if(this.popover.hasClass("in"))return!1;l.iconpicker.batch(l(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow",{iconpickerValue:this.iconpickerValue}),this.updatePlacement(),this.popover.addClass("in"),setTimeout(l.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide",{iconpickerValue:this.iconpickerValue}),this.popover.removeClass("in"),setTimeout(l.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(e,a){return e=e||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate",{iconpickerValue:this.iconpickerValue}),!0===a?e=this.setValue(e):(e=this.setSourceValue(e),this._updateFormGroupStatus(!1!==e)),!1!==e&&this._updateComponents(),this._trigger("iconpickerUpdated",{iconpickerValue:this.iconpickerValue}),e},destroy:function(){this._trigger("iconpickerDestroy",{iconpickerValue:this.iconpickerValue}),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),l(this.popover).remove(),this._trigger("iconpickerDestroyed",{iconpickerValue:this.iconpickerValue})},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},l.iconpicker=c,l.fn.iconpicker=function(a){return this.each(function(){var e=l(this);e.data("iconpicker")||e.data("iconpicker",new c(this,"object"==typeof a?a:{}))})},c.defaultOptions=l.extend(c.defaultOptions,{icons:[{title:"fab fa-500px",searchTerms:[]},{title:"fab fa-accessible-icon",searchTerms:["accessibility","handicap","person","wheelchair","wheelchair-alt"]},{title:"fab fa-accusoft",searchTerms:[]},{title:"fab fa-acquisitions-incorporated",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-ad",searchTerms:[]},{title:"fas fa-address-book",searchTerms:[]},{title:"far fa-address-book",searchTerms:[]},{title:"fas fa-address-card",searchTerms:[]},{title:"far fa-address-card",searchTerms:[]},{title:"fas fa-adjust",searchTerms:["contrast"]},{title:"fab fa-adn",searchTerms:[]},{title:"fab fa-adversal",searchTerms:[]},{title:"fab fa-affiliatetheme",searchTerms:[]},{title:"fas fa-air-freshener",searchTerms:[]},{title:"fab fa-algolia",searchTerms:[]},{title:"fas fa-align-center",searchTerms:["middle","text"]},{title:"fas fa-align-justify",searchTerms:["text"]},{title:"fas fa-align-left",searchTerms:["text"]},{title:"fas fa-align-right",searchTerms:["text"]},{title:"fab fa-alipay",searchTerms:[]},{title:"fas fa-allergies",searchTerms:["freckles","hand","intolerances","pox","spots"]},{title:"fab fa-amazon",searchTerms:[]},{title:"fab fa-amazon-pay",searchTerms:[]},{title:"fas fa-ambulance",searchTerms:["help","machine","support","vehicle"]},{title:"fas fa-american-sign-language-interpreting",searchTerms:[]},{title:"fab fa-amilia",searchTerms:[]},{title:"fas fa-anchor",searchTerms:["link"]},{title:"fab fa-android",searchTerms:["robot"]},{title:"fab fa-angellist",searchTerms:[]},{title:"fas fa-angle-double-down",searchTerms:["arrows"]},{title:"fas fa-angle-double-left",searchTerms:["arrows","back","laquo","previous","quote"]},{title:"fas fa-angle-double-right",searchTerms:["arrows","forward","next","quote","raquo"]},{title:"fas fa-angle-double-up",searchTerms:["arrows"]},{title:"fas fa-angle-down",searchTerms:["arrow"]},{title:"fas fa-angle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-angle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-angle-up",searchTerms:["arrow"]},{title:"fas fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"far fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"fab fa-angrycreative",searchTerms:[]},{title:"fab fa-angular",searchTerms:[]},{title:"fas fa-ankh",searchTerms:["amulet","copper","coptic christianity","copts","crux ansata","egyptian","venus"]},{title:"fab fa-app-store",searchTerms:[]},{title:"fab fa-app-store-ios",searchTerms:[]},{title:"fab fa-apper",searchTerms:[]},{title:"fab fa-apple",searchTerms:["food","fruit","mac","osx"]},{title:"fas fa-apple-alt",searchTerms:["fall","food","fruit","fuji","macintosh","seasonal"]},{title:"fab fa-apple-pay",searchTerms:[]},{title:"fas fa-archive",searchTerms:["box","package","storage"]},{title:"fas fa-archway",searchTerms:["arc","monument","road","street"]},{title:"fas fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"far fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"fas fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"far fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"fas fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"far fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"fas fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"far fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"fas fa-arrow-circle-down",searchTerms:["download"]},{title:"fas fa-arrow-circle-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-circle-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-circle-up",searchTerms:[]},{title:"fas fa-arrow-down",searchTerms:["download"]},{title:"fas fa-arrow-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-up",searchTerms:[]},{title:"fas fa-arrows-alt",searchTerms:["arrow","arrows","bigger","enlarge","expand","fullscreen","move","position","reorder","resize"]},{title:"fas fa-arrows-alt-h",searchTerms:["arrows-h","resize"]},{title:"fas fa-arrows-alt-v",searchTerms:["arrows-v","resize"]},{title:"fas fa-assistive-listening-systems",searchTerms:[]},{title:"fas fa-asterisk",searchTerms:["details"]},{title:"fab fa-asymmetrik",searchTerms:[]},{title:"fas fa-at",searchTerms:["e-mail","email"]},{title:"fas fa-atlas",searchTerms:["book","directions","geography","map","wayfinding"]},{title:"fas fa-atom",searchTerms:["atheism","chemistry","science"]},{title:"fab fa-audible",searchTerms:[]},{title:"fas fa-audio-description",searchTerms:[]},{title:"fab fa-autoprefixer",searchTerms:[]},{title:"fab fa-avianex",searchTerms:[]},{title:"fab fa-aviato",searchTerms:[]},{title:"fas fa-award",searchTerms:["honor","praise","prize","recognition","ribbon"]},{title:"fab fa-aws",searchTerms:[]},{title:"fas fa-backspace",searchTerms:["command","delete","keyboard","undo"]},{title:"fas fa-backward",searchTerms:["previous","rewind"]},{title:"fas fa-balance-scale",searchTerms:["balanced","justice","legal","measure","weight"]},{title:"fas fa-ban",searchTerms:["abort","ban","block","cancel","delete","hide","prohibit","remove","stop","trash"]},{title:"fas fa-band-aid",searchTerms:["bandage","boo boo","ouch"]},{title:"fab fa-bandcamp",searchTerms:[]},{title:"fas fa-barcode",searchTerms:["scan"]},{title:"fas fa-bars",searchTerms:["checklist","drag","hamburger","list","menu","nav","navigation","ol","reorder","settings","todo","ul"]},{title:"fas fa-baseball-ball",searchTerms:[]},{title:"fas fa-basketball-ball",searchTerms:[]},{title:"fas fa-bath",searchTerms:[]},{title:"fas fa-battery-empty",searchTerms:["power","status"]},{title:"fas fa-battery-full",searchTerms:["power","status"]},{title:"fas fa-battery-half",searchTerms:["power","status"]},{title:"fas fa-battery-quarter",searchTerms:["power","status"]},{title:"fas fa-battery-three-quarters",searchTerms:["power","status"]},{title:"fas fa-bed",searchTerms:["lodging","sleep","travel"]},{title:"fas fa-beer",searchTerms:["alcohol","bar","beverage","drink","liquor","mug","stein"]},{title:"fab fa-behance",searchTerms:[]},{title:"fab fa-behance-square",searchTerms:[]},{title:"fas fa-bell",searchTerms:["alert","notification","reminder"]},{title:"far fa-bell",searchTerms:["alert","notification","reminder"]},{title:"fas fa-bell-slash",searchTerms:[]},{title:"far fa-bell-slash",searchTerms:[]},{title:"fas fa-bezier-curve",searchTerms:["curves","illustrator","lines","path","vector"]},{title:"fas fa-bible",searchTerms:["book","catholicism","christianity"]},{title:"fas fa-bicycle",searchTerms:["bike","gears","transportation","vehicle"]},{title:"fab fa-bimobject",searchTerms:[]},{title:"fas fa-binoculars",searchTerms:[]},{title:"fas fa-birthday-cake",searchTerms:[]},{title:"fab fa-bitbucket",searchTerms:["bitbucket-square","git"]},{title:"fab fa-bitcoin",searchTerms:[]},{title:"fab fa-bity",searchTerms:[]},{title:"fab fa-black-tie",searchTerms:[]},{title:"fab fa-blackberry",searchTerms:[]},{title:"fas fa-blender",searchTerms:[]},{title:"fas fa-blender-phone",searchTerms:["appliance","fantasy","silly"]},{title:"fas fa-blind",searchTerms:[]},{title:"fab fa-blogger",searchTerms:[]},{title:"fab fa-blogger-b",searchTerms:[]},{title:"fab fa-bluetooth",searchTerms:[]},{title:"fab fa-bluetooth-b",searchTerms:[]},{title:"fas fa-bold",searchTerms:[]},{title:"fas fa-bolt",searchTerms:["electricity","lightning","weather","zap"]},{title:"fas fa-bomb",searchTerms:[]},{title:"fas fa-bone",searchTerms:[]},{title:"fas fa-bong",searchTerms:["aparatus","cannabis","marijuana","pipe","smoke","smoking"]},{title:"fas fa-book",searchTerms:["documentation","read"]},{title:"fas fa-book-dead",searchTerms:["Dungeons & Dragons","crossbones","d&d","dark arts","death","dnd","documentation","evil","fantasy","halloween","holiday","read","skull","spell"]},{title:"fas fa-book-open",searchTerms:["flyer","notebook","open book","pamphlet","reading"]},{title:"fas fa-book-reader",searchTerms:["library"]},{title:"fas fa-bookmark",searchTerms:["save"]},{title:"far fa-bookmark",searchTerms:["save"]},{title:"fas fa-bowling-ball",searchTerms:[]},{title:"fas fa-box",searchTerms:["package"]},{title:"fas fa-box-open",searchTerms:[]},{title:"fas fa-boxes",searchTerms:[]},{title:"fas fa-braille",searchTerms:[]},{title:"fas fa-brain",searchTerms:["cerebellum","gray matter","intellect","medulla oblongata","mind","noodle","wit"]},{title:"fas fa-briefcase",searchTerms:["bag","business","luggage","office","work"]},{title:"fas fa-briefcase-medical",searchTerms:["health briefcase"]},{title:"fas fa-broadcast-tower",searchTerms:["airwaves","radio","waves"]},{title:"fas fa-broom",searchTerms:["clean","firebolt","fly","halloween","holiday","nimbus 2000","quidditch","sweep","witch"]},{title:"fas fa-brush",searchTerms:["bristles","color","handle","painting"]},{title:"fab fa-btc",searchTerms:[]},{title:"fas fa-bug",searchTerms:["insect","report"]},{title:"fas fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"far fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"fas fa-bullhorn",searchTerms:["announcement","broadcast","louder","megaphone","share"]},{title:"fas fa-bullseye",searchTerms:["target"]},{title:"fas fa-burn",searchTerms:["energy"]},{title:"fab fa-buromobelexperte",searchTerms:[]},{title:"fas fa-bus",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-bus-alt",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-business-time",searchTerms:["briefcase","business socks","clock","flight of the conchords","wednesday"]},{title:"fab fa-buysellads",searchTerms:[]},{title:"fas fa-calculator",searchTerms:[]},{title:"fas fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"far fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"fas fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"far fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"fas fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"far fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"fas fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"far fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"far fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"far fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-camera",searchTerms:["photo","picture","record"]},{title:"fas fa-camera-retro",searchTerms:["photo","picture","record"]},{title:"fas fa-campground",searchTerms:["camping","fall","outdoors","seasonal","tent"]},{title:"fas fa-cannabis",searchTerms:["bud","chronic","drugs","endica","endo","ganja","marijuana","mary jane","pot","reefer","sativa","spliff","weed","whacky-tabacky"]},{title:"fas fa-capsules",searchTerms:["drugs","medicine"]},{title:"fas fa-car",searchTerms:["machine","transportation","vehicle"]},{title:"fas fa-car-alt",searchTerms:[]},{title:"fas fa-car-battery",searchTerms:[]},{title:"fas fa-car-crash",searchTerms:[]},{title:"fas fa-car-side",searchTerms:[]},{title:"fas fa-caret-down",searchTerms:["arrow","dropdown","menu","more","triangle down"]},{title:"fas fa-caret-left",searchTerms:["arrow","back","previous","triangle left"]},{title:"fas fa-caret-right",searchTerms:["arrow","forward","next","triangle right"]},{title:"fas fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"far fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"fas fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"far fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"fas fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"far fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"fas fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"far fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"fas fa-caret-up",searchTerms:["arrow","triangle up"]},{title:"fas fa-cart-arrow-down",searchTerms:["shopping"]},{title:"fas fa-cart-plus",searchTerms:["add","create","new","positive","shopping"]},{title:"fas fa-cat",searchTerms:["feline","halloween","holiday","kitten","kitty","meow","pet"]},{title:"fab fa-cc-amazon-pay",searchTerms:[]},{title:"fab fa-cc-amex",searchTerms:["amex"]},{title:"fab fa-cc-apple-pay",searchTerms:[]},{title:"fab fa-cc-diners-club",searchTerms:[]},{title:"fab fa-cc-discover",searchTerms:[]},{title:"fab fa-cc-jcb",searchTerms:[]},{title:"fab fa-cc-mastercard",searchTerms:[]},{title:"fab fa-cc-paypal",searchTerms:[]},{title:"fab fa-cc-stripe",searchTerms:[]},{title:"fab fa-cc-visa",searchTerms:[]},{title:"fab fa-centercode",searchTerms:[]},{title:"fas fa-certificate",searchTerms:["badge","star"]},{title:"fas fa-chair",searchTerms:["furniture","seat"]},{title:"fas fa-chalkboard",searchTerms:["blackboard","learning","school","teaching","whiteboard","writing"]},{title:"fas fa-chalkboard-teacher",searchTerms:["blackboard","instructor","learning","professor","school","whiteboard","writing"]},{title:"fas fa-charging-station",searchTerms:[]},{title:"fas fa-chart-area",searchTerms:["analytics","area-chart","graph"]},{title:"fas fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"far fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"fas fa-chart-line",searchTerms:["activity","analytics","dashboard","graph","line-chart"]},{title:"fas fa-chart-pie",searchTerms:["analytics","graph","pie-chart"]},{title:"fas fa-check",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo","yes"]},{title:"fas fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-check-double",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo"]},{title:"fas fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-chess",searchTerms:[]},{title:"fas fa-chess-bishop",searchTerms:[]},{title:"fas fa-chess-board",searchTerms:[]},{title:"fas fa-chess-king",searchTerms:[]},{title:"fas fa-chess-knight",searchTerms:[]},{title:"fas fa-chess-pawn",searchTerms:[]},{title:"fas fa-chess-queen",searchTerms:[]},{title:"fas fa-chess-rook",searchTerms:[]},{title:"fas fa-chevron-circle-down",searchTerms:["arrow","dropdown","menu","more"]},{title:"fas fa-chevron-circle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-chevron-circle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-chevron-circle-up",searchTerms:["arrow"]},{title:"fas fa-chevron-down",searchTerms:[]},{title:"fas fa-chevron-left",searchTerms:["back","bracket","previous"]},{title:"fas fa-chevron-right",searchTerms:["bracket","forward","next"]},{title:"fas fa-chevron-up",searchTerms:[]},{title:"fas fa-child",searchTerms:[]},{title:"fab fa-chrome",searchTerms:["browser"]},{title:"fas fa-church",searchTerms:["building","community","religion"]},{title:"fas fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"far fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"fas fa-circle-notch",searchTerms:["circle-o-notch"]},{title:"fas fa-city",searchTerms:["buildings","busy","skyscrapers","urban","windows"]},{title:"fas fa-clipboard",searchTerms:["paste"]},{title:"far fa-clipboard",searchTerms:["paste"]},{title:"fas fa-clipboard-check",searchTerms:["accept","agree","confirm","done","ok","select","success","todo","yes"]},{title:"fas fa-clipboard-list",searchTerms:["checklist","completed","done","finished","intinerary","ol","schedule","todo","ul"]},{title:"fas fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"far fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"fas fa-clone",searchTerms:["copy","duplicate"]},{title:"far fa-clone",searchTerms:["copy","duplicate"]},{title:"fas fa-closed-captioning",searchTerms:["cc"]},{title:"far fa-closed-captioning",searchTerms:["cc"]},{title:"fas fa-cloud",searchTerms:["save"]},{title:"fas fa-cloud-download-alt",searchTerms:["import"]},{title:"fas fa-cloud-meatball",searchTerms:[]},{title:"fas fa-cloud-moon",searchTerms:["crescent","evening","halloween","holiday","lunar","night","sky"]},{title:"fas fa-cloud-moon-rain",searchTerms:[]},{title:"fas fa-cloud-rain",searchTerms:["precipitation"]},{title:"fas fa-cloud-showers-heavy",searchTerms:["precipitation","rain","storm"]},{title:"fas fa-cloud-sun",searchTerms:["day","daytime","fall","outdoors","seasonal"]},{title:"fas fa-cloud-sun-rain",searchTerms:[]},{title:"fas fa-cloud-upload-alt",searchTerms:["cloud-upload"]},{title:"fab fa-cloudscale",searchTerms:[]},{title:"fab fa-cloudsmith",searchTerms:[]},{title:"fab fa-cloudversify",searchTerms:[]},{title:"fas fa-cocktail",searchTerms:["alcohol","beverage","drink"]},{title:"fas fa-code",searchTerms:["brackets","html"]},{title:"fas fa-code-branch",searchTerms:["branch","code-fork","fork","git","github","rebase","svn","vcs","version"]},{title:"fab fa-codepen",searchTerms:[]},{title:"fab fa-codiepie",searchTerms:[]},{title:"fas fa-coffee",searchTerms:["beverage","breakfast","cafe","drink","fall","morning","mug","seasonal","tea"]},{title:"fas fa-cog",searchTerms:["settings"]},{title:"fas fa-cogs",searchTerms:["gears","settings"]},{title:"fas fa-coins",searchTerms:[]},{title:"fas fa-columns",searchTerms:["dashboard","panes","split"]},{title:"fas fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-dollar",searchTerms:[]},{title:"fas fa-comment-dots",searchTerms:[]},{title:"far fa-comment-dots",searchTerms:[]},{title:"fas fa-comment-slash",searchTerms:[]},{title:"fas fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comments-dollar",searchTerms:[]},{title:"fas fa-compact-disc",searchTerms:["bluray","cd","disc","media"]},{title:"fas fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"far fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"fas fa-compress",searchTerms:["collapse","combine","contract","merge","smaller"]},{title:"fas fa-concierge-bell",searchTerms:["attention","hotel","service","support"]},{title:"fab fa-connectdevelop",searchTerms:[]},{title:"fab fa-contao",searchTerms:[]},{title:"fas fa-cookie",searchTerms:["baked good","chips","food","snack","sweet","treat"]},{title:"fas fa-cookie-bite",searchTerms:["baked good","bitten","chips","eating","food","snack","sweet","treat"]},{title:"fas fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"far fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"fas fa-copyright",searchTerms:[]},{title:"far fa-copyright",searchTerms:[]},{title:"fas fa-couch",searchTerms:["furniture","sofa"]},{title:"fab fa-cpanel",searchTerms:[]},{title:"fab fa-creative-commons",searchTerms:[]},{title:"fab fa-creative-commons-by",searchTerms:[]},{title:"fab fa-creative-commons-nc",searchTerms:[]},{title:"fab fa-creative-commons-nc-eu",searchTerms:[]},{title:"fab fa-creative-commons-nc-jp",searchTerms:[]},{title:"fab fa-creative-commons-nd",searchTerms:[]},{title:"fab fa-creative-commons-pd",searchTerms:[]},{title:"fab fa-creative-commons-pd-alt",searchTerms:[]},{title:"fab fa-creative-commons-remix",searchTerms:[]},{title:"fab fa-creative-commons-sa",searchTerms:[]},{title:"fab fa-creative-commons-sampling",searchTerms:[]},{title:"fab fa-creative-commons-sampling-plus",searchTerms:[]},{title:"fab fa-creative-commons-share",searchTerms:[]},{title:"fab fa-creative-commons-zero",searchTerms:[]},{title:"fas fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"far fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"fab fa-critical-role",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-crop",searchTerms:["design"]},{title:"fas fa-crop-alt",searchTerms:[]},{title:"fas fa-cross",searchTerms:["catholicism","christianity"]},{title:"fas fa-crosshairs",searchTerms:["gpd","picker","position"]},{title:"fas fa-crow",searchTerms:["bird","bullfrog","fauna","halloween","holiday","toad"]},{title:"fas fa-crown",searchTerms:[]},{title:"fab fa-css3",searchTerms:["code"]},{title:"fab fa-css3-alt",searchTerms:[]},{title:"fas fa-cube",searchTerms:["package"]},{title:"fas fa-cubes",searchTerms:["packages"]},{title:"fas fa-cut",searchTerms:["scissors"]},{title:"fab fa-cuttlefish",searchTerms:[]},{title:"fab fa-d-and-d",searchTerms:[]},{title:"fab fa-d-and-d-beyond",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","gaming","tabletop"]},{title:"fab fa-dashcube",searchTerms:[]},{title:"fas fa-database",searchTerms:[]},{title:"fas fa-deaf",searchTerms:[]},{title:"fab fa-delicious",searchTerms:[]},{title:"fas fa-democrat",searchTerms:["american","democratic party","donkey","election","left","left-wing","liberal","politics","usa"]},{title:"fab fa-deploydog",searchTerms:[]},{title:"fab fa-deskpro",searchTerms:[]},{title:"fas fa-desktop",searchTerms:["computer","cpu","demo","desktop","device","machine","monitor","pc","screen"]},{title:"fab fa-dev",searchTerms:[]},{title:"fab fa-deviantart",searchTerms:[]},{title:"fas fa-dharmachakra",searchTerms:["buddhism","buddhist","wheel of dharma"]},{title:"fas fa-diagnoses",searchTerms:[]},{title:"fas fa-dice",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-d20",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-d6",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-five",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-four",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-one",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-six",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-three",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-two",searchTerms:["chance","gambling","game","roll"]},{title:"fab fa-digg",searchTerms:[]},{title:"fab fa-digital-ocean",searchTerms:[]},{title:"fas fa-digital-tachograph",searchTerms:[]},{title:"fas fa-directions",searchTerms:[]},{title:"fab fa-discord",searchTerms:[]},{title:"fab fa-discourse",searchTerms:[]},{title:"fas fa-divide",searchTerms:[]},{title:"fas fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"far fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"fas fa-dna",searchTerms:["double helix","helix"]},{title:"fab fa-dochub",searchTerms:[]},{title:"fab fa-docker",searchTerms:[]},{title:"fas fa-dog",searchTerms:["canine","fauna","mammmal","pet","pooch","puppy","woof"]},{title:"fas fa-dollar-sign",searchTerms:["$","dollar-sign","money","price","usd"]},{title:"fas fa-dolly",searchTerms:[]},{title:"fas fa-dolly-flatbed",searchTerms:[]},{title:"fas fa-donate",searchTerms:["generosity","give"]},{title:"fas fa-door-closed",searchTerms:[]},{title:"fas fa-door-open",searchTerms:[]},{title:"fas fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"far fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"fas fa-dove",searchTerms:["bird","fauna","flying","peace"]},{title:"fas fa-download",searchTerms:["import"]},{title:"fab fa-draft2digital",searchTerms:[]},{title:"fas fa-drafting-compass",searchTerms:["mechanical drawing","plot","plotting"]},{title:"fas fa-dragon",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy"]},{title:"fas fa-draw-polygon",searchTerms:[]},{title:"fab fa-dribbble",searchTerms:[]},{title:"fab fa-dribbble-square",searchTerms:[]},{title:"fab fa-dropbox",searchTerms:[]},{title:"fas fa-drum",searchTerms:["instrument","music","percussion","snare","sound"]},{title:"fas fa-drum-steelpan",searchTerms:["calypso","instrument","music","percussion","reggae","snare","sound","steel","tropical"]},{title:"fas fa-drumstick-bite",searchTerms:[]},{title:"fab fa-drupal",searchTerms:[]},{title:"fas fa-dumbbell",searchTerms:["exercise","gym","strength","weight","weight-lifting"]},{title:"fas fa-dungeon",searchTerms:["Dungeons & Dragons","d&d","dnd","door","entrance","fantasy","gate"]},{title:"fab fa-dyalog",searchTerms:[]},{title:"fab fa-earlybirds",searchTerms:[]},{title:"fab fa-ebay",searchTerms:[]},{title:"fab fa-edge",searchTerms:["browser","ie"]},{title:"fas fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"far fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"fas fa-eject",searchTerms:[]},{title:"fab fa-elementor",searchTerms:[]},{title:"fas fa-ellipsis-h",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fas fa-ellipsis-v",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fab fa-ello",searchTerms:[]},{title:"fab fa-ember",searchTerms:[]},{title:"fab fa-empire",searchTerms:[]},{title:"fas fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open-text",searchTerms:[]},{title:"fas fa-envelope-square",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fab fa-envira",searchTerms:["leaf"]},{title:"fas fa-equals",searchTerms:[]},{title:"fas fa-eraser",searchTerms:["delete","remove"]},{title:"fab fa-erlang",searchTerms:[]},{title:"fab fa-ethereum",searchTerms:[]},{title:"fab fa-etsy",searchTerms:[]},{title:"fas fa-euro-sign",searchTerms:["eur"]},{title:"fas fa-exchange-alt",searchTerms:["arrow","arrows","exchange","reciprocate","return","swap","transfer"]},{title:"fas fa-exclamation",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-circle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-triangle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-expand",searchTerms:["bigger","enlarge","resize"]},{title:"fas fa-expand-arrows-alt",searchTerms:["arrows-alt","bigger","enlarge","move","resize"]},{title:"fab fa-expeditedssl",searchTerms:[]},{title:"fas fa-external-link-alt",searchTerms:["external-link","new","open"]},{title:"fas fa-external-link-square-alt",searchTerms:["external-link-square","new","open"]},{title:"fas fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"far fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"fas fa-eye-dropper",searchTerms:["eyedropper"]},{title:"fas fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"far fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"fab fa-facebook",searchTerms:["facebook-official","social network"]},{title:"fab fa-facebook-f",searchTerms:["facebook"]},{title:"fab fa-facebook-messenger",searchTerms:[]},{title:"fab fa-facebook-square",searchTerms:["social network"]},{title:"fab fa-fantasy-flight-games",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-fast-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-fast-forward",searchTerms:["end","last","next"]},{title:"fas fa-fax",searchTerms:[]},{title:"fas fa-feather",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-feather-alt",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-female",searchTerms:["human","person","profile","user","woman"]},{title:"fas fa-fighter-jet",searchTerms:["airplane","fast","fly","goose","maverick","plane","quick","top gun","transportation","travel"]},{title:"fas fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"far fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"fas fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"far fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"fas fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"far fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"fas fa-file-audio",searchTerms:[]},{title:"far fa-file-audio",searchTerms:[]},{title:"fas fa-file-code",searchTerms:[]},{title:"far fa-file-code",searchTerms:[]},{title:"fas fa-file-contract",searchTerms:["agreement","binding","document","legal","signature"]},{title:"fas fa-file-csv",searchTerms:["spreadsheets"]},{title:"fas fa-file-download",searchTerms:[]},{title:"fas fa-file-excel",searchTerms:[]},{title:"far fa-file-excel",searchTerms:[]},{title:"fas fa-file-export",searchTerms:[]},{title:"fas fa-file-image",searchTerms:[]},{title:"far fa-file-image",searchTerms:[]},{title:"fas fa-file-import",searchTerms:[]},{title:"fas fa-file-invoice",searchTerms:["bill","document","receipt"]},{title:"fas fa-file-invoice-dollar",searchTerms:["$","bill","document","dollar-sign","money","receipt","usd"]},{title:"fas fa-file-medical",searchTerms:[]},{title:"fas fa-file-medical-alt",searchTerms:[]},{title:"fas fa-file-pdf",searchTerms:[]},{title:"far fa-file-pdf",searchTerms:[]},{title:"fas fa-file-powerpoint",searchTerms:[]},{title:"far fa-file-powerpoint",searchTerms:[]},{title:"fas fa-file-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-file-signature",searchTerms:["John Hancock","contract","document","name"]},{title:"fas fa-file-upload",searchTerms:[]},{title:"fas fa-file-video",searchTerms:[]},{title:"far fa-file-video",searchTerms:[]},{title:"fas fa-file-word",searchTerms:[]},{title:"far fa-file-word",searchTerms:[]},{title:"fas fa-fill",searchTerms:["bucket","color","paint","paint bucket"]},{title:"fas fa-fill-drip",searchTerms:["bucket","color","drop","paint","paint bucket","spill"]},{title:"fas fa-film",searchTerms:["movie"]},{title:"fas fa-filter",searchTerms:["funnel","options"]},{title:"fas fa-fingerprint",searchTerms:["human","id","identification","lock","smudge","touch","unique","unlock"]},{title:"fas fa-fire",searchTerms:["caliente","flame","heat","hot","popular"]},{title:"fas fa-fire-extinguisher",searchTerms:[]},{title:"fab fa-firefox",searchTerms:["browser"]},{title:"fas fa-first-aid",searchTerms:[]},{title:"fab fa-first-order",searchTerms:[]},{title:"fab fa-first-order-alt",searchTerms:[]},{title:"fab fa-firstdraft",searchTerms:[]},{title:"fas fa-fish",searchTerms:["fauna","gold","swimming"]},{title:"fas fa-fist-raised",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","hand","ki","monk","resist","strength","unarmed combat"]},{title:"fas fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"far fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"fas fa-flag-checkered",searchTerms:["notice","notification","notify","pole","racing","report","symbol"]},{title:"fas fa-flag-usa",searchTerms:["betsy ross","country","old glory","stars","stripes","symbol"]},{title:"fas fa-flask",searchTerms:["beaker","experimental","labs","science"]},{title:"fab fa-flickr",searchTerms:[]},{title:"fab fa-flipboard",searchTerms:[]},{title:"fas fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"far fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"fab fa-fly",searchTerms:[]},{title:"fas fa-folder",searchTerms:[]},{title:"far fa-folder",searchTerms:[]},{title:"fas fa-folder-minus",searchTerms:["archive","delete","negative","remove"]},{title:"fas fa-folder-open",searchTerms:[]},{title:"far fa-folder-open",searchTerms:[]},{title:"fas fa-folder-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-font",searchTerms:["text"]},{title:"fab fa-font-awesome",searchTerms:["meanpath"]},{title:"fab fa-font-awesome-alt",searchTerms:[]},{title:"fab fa-font-awesome-flag",searchTerms:[]},{title:"far fa-font-awesome-logo-full",searchTerms:[]},{title:"fas fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-fonticons",searchTerms:[]},{title:"fab fa-fonticons-fi",searchTerms:[]},{title:"fas fa-football-ball",searchTerms:["fall","pigskin","seasonal"]},{title:"fab fa-fort-awesome",searchTerms:["castle"]},{title:"fab fa-fort-awesome-alt",searchTerms:["castle"]},{title:"fab fa-forumbee",searchTerms:[]},{title:"fas fa-forward",searchTerms:["forward","next"]},{title:"fab fa-foursquare",searchTerms:[]},{title:"fab fa-free-code-camp",searchTerms:[]},{title:"fab fa-freebsd",searchTerms:[]},{title:"fas fa-frog",searchTerms:["amphibian","bullfrog","fauna","hop","kermit","kiss","prince","ribbit","toad","wart"]},{title:"fas fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fas fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fab fa-fulcrum",searchTerms:[]},{title:"fas fa-funnel-dollar",searchTerms:[]},{title:"fas fa-futbol",searchTerms:["ball","football","soccer"]},{title:"far fa-futbol",searchTerms:["ball","football","soccer"]},{title:"fab fa-galactic-republic",searchTerms:["politics","star wars"]},{title:"fab fa-galactic-senate",searchTerms:["star wars"]},{title:"fas fa-gamepad",searchTerms:["controller"]},{title:"fas fa-gas-pump",searchTerms:[]},{title:"fas fa-gavel",searchTerms:["hammer","judge","lawyer","opinion"]},{title:"fas fa-gem",searchTerms:["diamond"]},{title:"far fa-gem",searchTerms:["diamond"]},{title:"fas fa-genderless",searchTerms:[]},{title:"fab fa-get-pocket",searchTerms:[]},{title:"fab fa-gg",searchTerms:[]},{title:"fab fa-gg-circle",searchTerms:[]},{title:"fas fa-ghost",searchTerms:["apparition","blinky","clyde","floating","halloween","holiday","inky","pinky","spirit"]},{title:"fas fa-gift",searchTerms:["generosity","giving","party","present","wrapped"]},{title:"fab fa-git",searchTerms:[]},{title:"fab fa-git-square",searchTerms:[]},{title:"fab fa-github",searchTerms:["octocat"]},{title:"fab fa-github-alt",searchTerms:["octocat"]},{title:"fab fa-github-square",searchTerms:["octocat"]},{title:"fab fa-gitkraken",searchTerms:[]},{title:"fab fa-gitlab",searchTerms:["Axosoft"]},{title:"fab fa-gitter",searchTerms:[]},{title:"fas fa-glass-martini",searchTerms:["alcohol","bar","beverage","drink","glass","liquor","martini"]},{title:"fas fa-glass-martini-alt",searchTerms:[]},{title:"fas fa-glasses",searchTerms:["foureyes","hipster","nerd","reading","sight","spectacles"]},{title:"fab fa-glide",searchTerms:[]},{title:"fab fa-glide-g",searchTerms:[]},{title:"fas fa-globe",searchTerms:["all","coordinates","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-africa",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-americas",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-asia",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fab fa-gofore",searchTerms:[]},{title:"fas fa-golf-ball",searchTerms:[]},{title:"fab fa-goodreads",searchTerms:[]},{title:"fab fa-goodreads-g",searchTerms:[]},{title:"fab fa-google",searchTerms:[]},{title:"fab fa-google-drive",searchTerms:[]},{title:"fab fa-google-play",searchTerms:[]},{title:"fab fa-google-plus",searchTerms:["google-plus-circle","google-plus-official"]},{title:"fab fa-google-plus-g",searchTerms:["google-plus","social network"]},{title:"fab fa-google-plus-square",searchTerms:["social network"]},{title:"fab fa-google-wallet",searchTerms:[]},{title:"fas fa-gopuram",searchTerms:["building","entrance","hinduism","temple","tower"]},{title:"fas fa-graduation-cap",searchTerms:["learning","school","student"]},{title:"fab fa-gratipay",searchTerms:["favorite","heart","like","love"]},{title:"fab fa-grav",searchTerms:[]},{title:"fas fa-greater-than",searchTerms:[]},{title:"fas fa-greater-than-equal",searchTerms:[]},{title:"fas fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"far fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"fas fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"far fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"fas fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"far fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"fas fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"far fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"fas fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"far fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"fas fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"far fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"fas fa-grip-horizontal",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fas fa-grip-vertical",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fab fa-gripfire",searchTerms:[]},{title:"fab fa-grunt",searchTerms:[]},{title:"fab fa-gulp",searchTerms:[]},{title:"fas fa-h-square",searchTerms:["hospital","hotel"]},{title:"fab fa-hacker-news",searchTerms:[]},{title:"fab fa-hacker-news-square",searchTerms:[]},{title:"fab fa-hackerrank",searchTerms:[]},{title:"fas fa-hammer",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fas fa-hamsa",searchTerms:["amulet","christianity","islam","jewish","judaism","muslim","protection"]},{title:"fas fa-hand-holding",searchTerms:[]},{title:"fas fa-hand-holding-heart",searchTerms:[]},{title:"fas fa-hand-holding-usd",searchTerms:["$","dollar sign","donation","giving","money","price"]},{title:"fas fa-hand-lizard",searchTerms:[]},{title:"far fa-hand-lizard",searchTerms:[]},{title:"fas fa-hand-paper",searchTerms:["stop"]},{title:"far fa-hand-paper",searchTerms:["stop"]},{title:"fas fa-hand-peace",searchTerms:[]},{title:"far fa-hand-peace",searchTerms:[]},{title:"fas fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"far fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"fas fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"far fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"fas fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"far fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"fas fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"far fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"fas fa-hand-pointer",searchTerms:["select"]},{title:"far fa-hand-pointer",searchTerms:["select"]},{title:"fas fa-hand-rock",searchTerms:[]},{title:"far fa-hand-rock",searchTerms:[]},{title:"fas fa-hand-scissors",searchTerms:[]},{title:"far fa-hand-scissors",searchTerms:[]},{title:"fas fa-hand-spock",searchTerms:[]},{title:"far fa-hand-spock",searchTerms:[]},{title:"fas fa-hands",searchTerms:[]},{title:"fas fa-hands-helping",searchTerms:["aid","assistance","partnership","volunteering"]},{title:"fas fa-handshake",searchTerms:["greeting","partnership"]},{title:"far fa-handshake",searchTerms:["greeting","partnership"]},{title:"fas fa-hanukiah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-hashtag",searchTerms:[]},{title:"fas fa-hat-wizard",searchTerms:["Dungeons & Dragons","buckle","cloth","clothing","d&d","dnd","fantasy","halloween","holiday","mage","magic","pointy","witch"]},{title:"fas fa-haykal",searchTerms:["bahai","bahá'í","star"]},{title:"fas fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"far fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"fas fa-heading",searchTerms:["header"]},{title:"fas fa-headphones",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headphones-alt",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headset",searchTerms:["audio","gamer","gaming","listen","live chat","microphone","shot caller","sound","support","telemarketer"]},{title:"fas fa-heart",searchTerms:["favorite","like","love"]},{title:"far fa-heart",searchTerms:["favorite","like","love"]},{title:"fas fa-heartbeat",searchTerms:["ekg","lifeline","vital signs"]},{title:"fas fa-helicopter",searchTerms:["airwolf","apache","chopper","flight","fly"]},{title:"fas fa-highlighter",searchTerms:["edit","marker","sharpie","update","write"]},{title:"fas fa-hiking",searchTerms:["activity","backpack","fall","fitness","outdoors","seasonal","walking"]},{title:"fas fa-hippo",searchTerms:["fauna","hungry","mammmal"]},{title:"fab fa-hips",searchTerms:[]},{title:"fab fa-hire-a-helper",searchTerms:[]},{title:"fas fa-history",searchTerms:[]},{title:"fas fa-hockey-puck",searchTerms:[]},{title:"fas fa-home",searchTerms:["house","main"]},{title:"fab fa-hooli",searchTerms:[]},{title:"fab fa-hornbill",searchTerms:[]},{title:"fas fa-horse",searchTerms:["equus","fauna","mammmal","neigh"]},{title:"fas fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"far fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-alt",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-symbol",searchTerms:[]},{title:"fas fa-hot-tub",searchTerms:[]},{title:"fas fa-hotel",searchTerms:["building","lodging"]},{title:"fab fa-hotjar",searchTerms:[]},{title:"fas fa-hourglass",searchTerms:[]},{title:"far fa-hourglass",searchTerms:[]},{title:"fas fa-hourglass-end",searchTerms:[]},{title:"fas fa-hourglass-half",searchTerms:[]},{title:"fas fa-hourglass-start",searchTerms:[]},{title:"fas fa-house-damage",searchTerms:["devastation","home"]},{title:"fab fa-houzz",searchTerms:[]},{title:"fas fa-hryvnia",searchTerms:["money"]},{title:"fab fa-html5",searchTerms:[]},{title:"fab fa-hubspot",searchTerms:[]},{title:"fas fa-i-cursor",searchTerms:[]},{title:"fas fa-id-badge",searchTerms:[]},{title:"far fa-id-badge",searchTerms:[]},{title:"fas fa-id-card",searchTerms:["document","identification","issued"]},{title:"far fa-id-card",searchTerms:["document","identification","issued"]},{title:"fas fa-id-card-alt",searchTerms:["demographics"]},{title:"fas fa-image",searchTerms:["album","photo","picture"]},{title:"far fa-image",searchTerms:["album","photo","picture"]},{title:"fas fa-images",searchTerms:["album","photo","picture"]},{title:"far fa-images",searchTerms:["album","photo","picture"]},{title:"fab fa-imdb",searchTerms:[]},{title:"fas fa-inbox",searchTerms:[]},{title:"fas fa-indent",searchTerms:[]},{title:"fas fa-industry",searchTerms:["factory","manufacturing"]},{title:"fas fa-infinity",searchTerms:[]},{title:"fas fa-info",searchTerms:["details","help","information","more"]},{title:"fas fa-info-circle",searchTerms:["details","help","information","more"]},{title:"fab fa-instagram",searchTerms:[]},{title:"fab fa-internet-explorer",searchTerms:["browser","ie"]},{title:"fab fa-ioxhost",searchTerms:[]},{title:"fas fa-italic",searchTerms:["italics"]},{title:"fab fa-itunes",searchTerms:[]},{title:"fab fa-itunes-note",searchTerms:[]},{title:"fab fa-java",searchTerms:[]},{title:"fas fa-jedi",searchTerms:["star wars"]},{title:"fab fa-jedi-order",searchTerms:["star wars"]},{title:"fab fa-jenkins",searchTerms:[]},{title:"fab fa-joget",searchTerms:[]},{title:"fas fa-joint",searchTerms:["blunt","cannabis","doobie","drugs","marijuana","roach","smoke","smoking","spliff"]},{title:"fab fa-joomla",searchTerms:[]},{title:"fas fa-journal-whills",searchTerms:["book","jedi","star wars","the force"]},{title:"fab fa-js",searchTerms:[]},{title:"fab fa-js-square",searchTerms:[]},{title:"fab fa-jsfiddle",searchTerms:[]},{title:"fas fa-kaaba",searchTerms:["building","cube","islam","muslim"]},{title:"fab fa-kaggle",searchTerms:[]},{title:"fas fa-key",searchTerms:["password","unlock"]},{title:"fab fa-keybase",searchTerms:[]},{title:"fas fa-keyboard",searchTerms:["input","type"]},{title:"far fa-keyboard",searchTerms:["input","type"]},{title:"fab fa-keycdn",searchTerms:[]},{title:"fas fa-khanda",searchTerms:["chakkar","sikh","sikhism","sword"]},{title:"fab fa-kickstarter",searchTerms:[]},{title:"fab fa-kickstarter-k",searchTerms:[]},{title:"fas fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiwi-bird",searchTerms:["bird","fauna"]},{title:"fab fa-korvue",searchTerms:[]},{title:"fas fa-landmark",searchTerms:["building","historic","memoroable","politics"]},{title:"fas fa-language",searchTerms:["dialect","idiom","localize","speech","translate","vernacular"]},{title:"fas fa-laptop",searchTerms:["computer","cpu","dell","demo","device","dude you're getting","mac","macbook","machine","pc"]},{title:"fas fa-laptop-code",searchTerms:[]},{title:"fab fa-laravel",searchTerms:[]},{title:"fab fa-lastfm",searchTerms:[]},{title:"fab fa-lastfm-square",searchTerms:[]},{title:"fas fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"far fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"fas fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-layer-group",searchTerms:["layers"]},{title:"fas fa-leaf",searchTerms:["eco","flora","nature","plant"]},{title:"fab fa-leanpub",searchTerms:[]},{title:"fas fa-lemon",searchTerms:["food"]},{title:"far fa-lemon",searchTerms:["food"]},{title:"fab fa-less",searchTerms:[]},{title:"fas fa-less-than",searchTerms:[]},{title:"fas fa-less-than-equal",searchTerms:[]},{title:"fas fa-level-down-alt",searchTerms:["level-down"]},{title:"fas fa-level-up-alt",searchTerms:["level-up"]},{title:"fas fa-life-ring",searchTerms:["support"]},{title:"far fa-life-ring",searchTerms:["support"]},{title:"fas fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"far fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"fab fa-line",searchTerms:[]},{title:"fas fa-link",searchTerms:["chain"]},{title:"fab fa-linkedin",searchTerms:["linkedin-square"]},{title:"fab fa-linkedin-in",searchTerms:["linkedin"]},{title:"fab fa-linode",searchTerms:[]},{title:"fab fa-linux",searchTerms:["tux"]},{title:"fas fa-lira-sign",searchTerms:["try","turkish"]},{title:"fas fa-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"far fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-ol",searchTerms:["checklist","list","numbers","ol","todo","ul"]},{title:"fas fa-list-ul",searchTerms:["checklist","list","ol","todo","ul"]},{title:"fas fa-location-arrow",searchTerms:["address","coordinates","gps","location","map","place","where"]},{title:"fas fa-lock",searchTerms:["admin","protect","security"]},{title:"fas fa-lock-open",searchTerms:["admin","lock","open","password","protect"]},{title:"fas fa-long-arrow-alt-down",searchTerms:["long-arrow-down"]},{title:"fas fa-long-arrow-alt-left",searchTerms:["back","long-arrow-left","previous"]},{title:"fas fa-long-arrow-alt-right",searchTerms:["long-arrow-right"]},{title:"fas fa-long-arrow-alt-up",searchTerms:["long-arrow-up"]},{title:"fas fa-low-vision",searchTerms:[]},{title:"fas fa-luggage-cart",searchTerms:[]},{title:"fab fa-lyft",searchTerms:[]},{title:"fab fa-magento",searchTerms:[]},{title:"fas fa-magic",searchTerms:["autocomplete","automatic","mage","magic","spell","witch","wizard"]},{title:"fas fa-magnet",searchTerms:[]},{title:"fas fa-mail-bulk",searchTerms:[]},{title:"fab fa-mailchimp",searchTerms:[]},{title:"fas fa-male",searchTerms:["human","man","person","profile","user"]},{title:"fab fa-mandalorian",searchTerms:[]},{title:"fas fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"far fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"fas fa-map-marked",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marked-alt",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marker",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-marker-alt",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-pin",searchTerms:["address","coordinates","gps","localize","location","map","marker","place","position","travel","where"]},{title:"fas fa-map-signs",searchTerms:[]},{title:"fab fa-markdown",searchTerms:[]},{title:"fas fa-marker",searchTerms:["edit","sharpie","update","write"]},{title:"fas fa-mars",searchTerms:["male"]},{title:"fas fa-mars-double",searchTerms:[]},{title:"fas fa-mars-stroke",searchTerms:[]},{title:"fas fa-mars-stroke-h",searchTerms:[]},{title:"fas fa-mars-stroke-v",searchTerms:[]},{title:"fas fa-mask",searchTerms:["costume","disguise","halloween","holiday","secret","super hero"]},{title:"fab fa-mastodon",searchTerms:[]},{title:"fab fa-maxcdn",searchTerms:[]},{title:"fas fa-medal",searchTerms:[]},{title:"fab fa-medapps",searchTerms:[]},{title:"fab fa-medium",searchTerms:[]},{title:"fab fa-medium-m",searchTerms:[]},{title:"fas fa-medkit",searchTerms:["first aid","firstaid","health","help","support"]},{title:"fab fa-medrt",searchTerms:[]},{title:"fab fa-meetup",searchTerms:[]},{title:"fab fa-megaport",searchTerms:[]},{title:"fas fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-memory",searchTerms:["DIMM","RAM"]},{title:"fas fa-menorah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-mercury",searchTerms:["transgender"]},{title:"fas fa-meteor",searchTerms:[]},{title:"fas fa-microchip",searchTerms:["cpu","processor"]},{title:"fas fa-microphone",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microphone-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microscope",searchTerms:[]},{title:"fab fa-microsoft",searchTerms:[]},{title:"fas fa-minus",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fas fa-minus-circle",searchTerms:["delete","hide","negative","remove","trash"]},{title:"fas fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"far fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fab fa-mix",searchTerms:[]},{title:"fab fa-mixcloud",searchTerms:[]},{title:"fab fa-mizuni",searchTerms:[]},{title:"fas fa-mobile",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fas fa-mobile-alt",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fab fa-modx",searchTerms:[]},{title:"fab fa-monero",searchTerms:[]},{title:"fas fa-money-bill",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"far fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-wave",searchTerms:[]},{title:"fas fa-money-bill-wave-alt",searchTerms:[]},{title:"fas fa-money-check",searchTerms:["bank check","cheque"]},{title:"fas fa-money-check-alt",searchTerms:["bank check","cheque"]},{title:"fas fa-monument",searchTerms:["building","historic","memoroable"]},{title:"fas fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"far fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"fas fa-mortar-pestle",searchTerms:["crush","culinary","grind","medical","mix","spices"]},{title:"fas fa-mosque",searchTerms:["building","islam","muslim"]},{title:"fas fa-motorcycle",searchTerms:["bike","machine","transportation","vehicle"]},{title:"fas fa-mountain",searchTerms:[]},{title:"fas fa-mouse-pointer",searchTerms:["select"]},{title:"fas fa-music",searchTerms:["note","sound"]},{title:"fab fa-napster",searchTerms:[]},{title:"fab fa-neos",searchTerms:[]},{title:"fas fa-network-wired",searchTerms:[]},{title:"fas fa-neuter",searchTerms:[]},{title:"fas fa-newspaper",searchTerms:["article","press"]},{title:"far fa-newspaper",searchTerms:["article","press"]},{title:"fab fa-nimblr",searchTerms:[]},{title:"fab fa-nintendo-switch",searchTerms:[]},{title:"fab fa-node",searchTerms:[]},{title:"fab fa-node-js",searchTerms:[]},{title:"fas fa-not-equal",searchTerms:[]},{title:"fas fa-notes-medical",searchTerms:[]},{title:"fab fa-npm",searchTerms:[]},{title:"fab fa-ns8",searchTerms:[]},{title:"fab fa-nutritionix",searchTerms:[]},{title:"fas fa-object-group",searchTerms:["design"]},{title:"far fa-object-group",searchTerms:["design"]},{title:"fas fa-object-ungroup",searchTerms:["design"]},{title:"far fa-object-ungroup",searchTerms:["design"]},{title:"fab fa-odnoklassniki",searchTerms:[]},{title:"fab fa-odnoklassniki-square",searchTerms:[]},{title:"fas fa-oil-can",searchTerms:[]},{title:"fab fa-old-republic",searchTerms:["politics","star wars"]},{title:"fas fa-om",searchTerms:["buddhism","hinduism","jainism","mantra"]},{title:"fab fa-opencart",searchTerms:[]},{title:"fab fa-openid",searchTerms:[]},{title:"fab fa-opera",searchTerms:[]},{title:"fab fa-optin-monster",searchTerms:[]},{title:"fab fa-osi",searchTerms:[]},{title:"fas fa-otter",searchTerms:["fauna","mammmal"]},{title:"fas fa-outdent",searchTerms:[]},{title:"fab fa-page4",searchTerms:[]},{title:"fab fa-pagelines",searchTerms:["eco","flora","leaf","leaves","nature","plant","tree"]},{title:"fas fa-paint-brush",searchTerms:[]},{title:"fas fa-paint-roller",searchTerms:["brush","painting","tool"]},{title:"fas fa-palette",searchTerms:["colors","painting"]},{title:"fab fa-palfed",searchTerms:[]},{title:"fas fa-pallet",searchTerms:[]},{title:"fas fa-paper-plane",searchTerms:[]},{title:"far fa-paper-plane",searchTerms:[]},{title:"fas fa-paperclip",searchTerms:["attachment"]},{title:"fas fa-parachute-box",searchTerms:["aid","assistance","rescue","supplies"]},{title:"fas fa-paragraph",searchTerms:[]},{title:"fas fa-parking",searchTerms:[]},{title:"fas fa-passport",searchTerms:["document","identification","issued"]},{title:"fas fa-pastafarianism",searchTerms:["agnosticism","atheism","flying spaghetti monster","fsm"]},{title:"fas fa-paste",searchTerms:["clipboard","copy"]},{title:"fab fa-patreon",searchTerms:[]},{title:"fas fa-pause",searchTerms:["wait"]},{title:"fas fa-pause-circle",searchTerms:[]},{title:"far fa-pause-circle",searchTerms:[]},{title:"fas fa-paw",searchTerms:["animal","pet"]},{title:"fab fa-paypal",searchTerms:[]},{title:"fas fa-peace",searchTerms:[]},{title:"fas fa-pen",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-alt",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-fancy",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-nib",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-square",searchTerms:["edit","pencil-square","update","write"]},{title:"fas fa-pencil-alt",searchTerms:["design","edit","pencil","update","write"]},{title:"fas fa-pencil-ruler",searchTerms:[]},{title:"fab fa-penny-arcade",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","pax","tabletop"]},{title:"fas fa-people-carry",searchTerms:["movers"]},{title:"fas fa-percent",searchTerms:[]},{title:"fas fa-percentage",searchTerms:[]},{title:"fab fa-periscope",searchTerms:[]},{title:"fas fa-person-booth",searchTerms:["changing","changing room","election","human","person","vote","voting"]},{title:"fab fa-phabricator",searchTerms:[]},{title:"fab fa-phoenix-framework",searchTerms:[]},{title:"fab fa-phoenix-squadron",searchTerms:[]},{title:"fas fa-phone",searchTerms:["call","earphone","number","support","telephone","voice"]},{title:"fas fa-phone-slash",searchTerms:[]},{title:"fas fa-phone-square",searchTerms:["call","number","support","telephone","voice"]},{title:"fas fa-phone-volume",searchTerms:["telephone","volume-control-phone"]},{title:"fab fa-php",searchTerms:[]},{title:"fab fa-pied-piper",searchTerms:[]},{title:"fab fa-pied-piper-alt",searchTerms:[]},{title:"fab fa-pied-piper-hat",searchTerms:["clothing"]},{title:"fab fa-pied-piper-pp",searchTerms:[]},{title:"fas fa-piggy-bank",searchTerms:["save","savings"]},{title:"fas fa-pills",searchTerms:["drugs","medicine"]},{title:"fab fa-pinterest",searchTerms:[]},{title:"fab fa-pinterest-p",searchTerms:[]},{title:"fab fa-pinterest-square",searchTerms:[]},{title:"fas fa-place-of-worship",searchTerms:[]},{title:"fas fa-plane",searchTerms:["airplane","destination","fly","location","mode","travel","trip"]},{title:"fas fa-plane-arrival",searchTerms:["airplane","arriving","destination","fly","land","landing","location","mode","travel","trip"]},{title:"fas fa-plane-departure",searchTerms:["airplane","departing","destination","fly","location","mode","take off","taking off","travel","trip"]},{title:"fas fa-play",searchTerms:["music","playing","sound","start"]},{title:"fas fa-play-circle",searchTerms:["playing","start"]},{title:"far fa-play-circle",searchTerms:["playing","start"]},{title:"fab fa-playstation",searchTerms:[]},{title:"fas fa-plug",searchTerms:["connect","online","power"]},{title:"fas fa-plus",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-circle",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"far fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-podcast",searchTerms:[]},{title:"fas fa-poll",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poll-h",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poo",searchTerms:[]},{title:"fas fa-poo-storm",searchTerms:["mess","poop","shit"]},{title:"fas fa-poop",searchTerms:[]},{title:"fas fa-portrait",searchTerms:[]},{title:"fas fa-pound-sign",searchTerms:["gbp"]},{title:"fas fa-power-off",searchTerms:["on","reboot","restart"]},{title:"fas fa-pray",searchTerms:[]},{title:"fas fa-praying-hands",searchTerms:[]},{title:"fas fa-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle-alt",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-print",searchTerms:[]},{title:"fas fa-procedures",searchTerms:[]},{title:"fab fa-product-hunt",searchTerms:[]},{title:"fas fa-project-diagram",searchTerms:[]},{title:"fab fa-pushed",searchTerms:[]},{title:"fas fa-puzzle-piece",searchTerms:["add-on","addon","section"]},{title:"fab fa-python",searchTerms:[]},{title:"fab fa-qq",searchTerms:[]},{title:"fas fa-qrcode",searchTerms:["scan"]},{title:"fas fa-question",searchTerms:["help","information","support","unknown"]},{title:"fas fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"far fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"fas fa-quidditch",searchTerms:[]},{title:"fab fa-quinscape",searchTerms:[]},{title:"fab fa-quora",searchTerms:[]},{title:"fas fa-quote-left",searchTerms:[]},{title:"fas fa-quote-right",searchTerms:[]},{title:"fas fa-quran",searchTerms:["book","islam","muslim"]},{title:"fab fa-r-project",searchTerms:[]},{title:"fas fa-rainbow",searchTerms:[]},{title:"fas fa-random",searchTerms:["shuffle","sort"]},{title:"fab fa-ravelry",searchTerms:[]},{title:"fab fa-react",searchTerms:[]},{title:"fab fa-reacteurope",searchTerms:[]},{title:"fab fa-readme",searchTerms:[]},{title:"fab fa-rebel",searchTerms:[]},{title:"fas fa-receipt",searchTerms:["check","invoice","table"]},{title:"fas fa-recycle",searchTerms:[]},{title:"fab fa-red-river",searchTerms:[]},{title:"fab fa-reddit",searchTerms:[]},{title:"fab fa-reddit-alien",searchTerms:[]},{title:"fab fa-reddit-square",searchTerms:[]},{title:"fas fa-redo",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-redo-alt",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-registered",searchTerms:[]},{title:"far fa-registered",searchTerms:[]},{title:"fab fa-renren",searchTerms:[]},{title:"fas fa-reply",searchTerms:[]},{title:"fas fa-reply-all",searchTerms:[]},{title:"fab fa-replyd",searchTerms:[]},{title:"fas fa-republican",searchTerms:["american","conservative","election","elephant","politics","republican party","right","right-wing","usa"]},{title:"fab fa-researchgate",searchTerms:[]},{title:"fab fa-resolving",searchTerms:[]},{title:"fas fa-retweet",searchTerms:["refresh","reload","share","swap"]},{title:"fab fa-rev",searchTerms:[]},{title:"fas fa-ribbon",searchTerms:["badge","cause","lapel","pin"]},{title:"fas fa-ring",searchTerms:["Dungeons & Dragons","Gollum","band","binding","d&d","dnd","fantasy","jewelry","precious"]},{title:"fas fa-road",searchTerms:["street"]},{title:"fas fa-robot",searchTerms:[]},{title:"fas fa-rocket",searchTerms:["app"]},{title:"fab fa-rocketchat",searchTerms:[]},{title:"fab fa-rockrms",searchTerms:[]},{title:"fas fa-route",searchTerms:[]},{title:"fas fa-rss",searchTerms:["blog"]},{title:"fas fa-rss-square",searchTerms:["blog","feed"]},{title:"fas fa-ruble-sign",searchTerms:["rub"]},{title:"fas fa-ruler",searchTerms:[]},{title:"fas fa-ruler-combined",searchTerms:[]},{title:"fas fa-ruler-horizontal",searchTerms:[]},{title:"fas fa-ruler-vertical",searchTerms:[]},{title:"fas fa-running",searchTerms:["jog","sprint"]},{title:"fas fa-rupee-sign",searchTerms:["indian","inr"]},{title:"fas fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"fas fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"fab fa-safari",searchTerms:["browser"]},{title:"fab fa-sass",searchTerms:[]},{title:"fas fa-save",searchTerms:["floppy","floppy-o"]},{title:"far fa-save",searchTerms:["floppy","floppy-o"]},{title:"fab fa-schlix",searchTerms:[]},{title:"fas fa-school",searchTerms:[]},{title:"fas fa-screwdriver",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fab fa-scribd",searchTerms:[]},{title:"fas fa-scroll",searchTerms:["Dungeons & Dragons","announcement","d&d","dnd","fantasy","paper"]},{title:"fas fa-search",searchTerms:["bigger","enlarge","magnify","preview","zoom"]},{title:"fas fa-search-dollar",searchTerms:[]},{title:"fas fa-search-location",searchTerms:[]},{title:"fas fa-search-minus",searchTerms:["minify","negative","smaller","zoom","zoom out"]},{title:"fas fa-search-plus",searchTerms:["bigger","enlarge","magnify","positive","zoom","zoom in"]},{title:"fab fa-searchengin",searchTerms:[]},{title:"fas fa-seedling",searchTerms:[]},{title:"fab fa-sellcast",searchTerms:["eercast"]},{title:"fab fa-sellsy",searchTerms:[]},{title:"fas fa-server",searchTerms:["cpu"]},{title:"fab fa-servicestack",searchTerms:[]},{title:"fas fa-shapes",searchTerms:["circle","square","triangle"]},{title:"fas fa-share",searchTerms:[]},{title:"fas fa-share-alt",searchTerms:[]},{title:"fas fa-share-alt-square",searchTerms:[]},{title:"fas fa-share-square",searchTerms:["send","social"]},{title:"far fa-share-square",searchTerms:["send","social"]},{title:"fas fa-shekel-sign",searchTerms:["ils"]},{title:"fas fa-shield-alt",searchTerms:["achievement","award","block","defend","security","winner"]},{title:"fas fa-ship",searchTerms:["boat","sea"]},{title:"fas fa-shipping-fast",searchTerms:[]},{title:"fab fa-shirtsinbulk",searchTerms:[]},{title:"fas fa-shoe-prints",searchTerms:["feet","footprints","steps"]},{title:"fas fa-shopping-bag",searchTerms:[]},{title:"fas fa-shopping-basket",searchTerms:[]},{title:"fas fa-shopping-cart",searchTerms:["buy","checkout","payment","purchase"]},{title:"fab fa-shopware",searchTerms:[]},{title:"fas fa-shower",searchTerms:[]},{title:"fas fa-shuttle-van",searchTerms:["machine","public-transportation","transportation","vehicle"]},{title:"fas fa-sign",searchTerms:[]},{title:"fas fa-sign-in-alt",searchTerms:["arrow","enter","join","log in","login","sign in","sign up","sign-in","signin","signup"]},{title:"fas fa-sign-language",searchTerms:[]},{title:"fas fa-sign-out-alt",searchTerms:["arrow","exit","leave","log out","logout","sign-out"]},{title:"fas fa-signal",searchTerms:["bars","graph","online","status"]},{title:"fas fa-signature",searchTerms:["John Hancock","cursive","name","writing"]},{title:"fab fa-simplybuilt",searchTerms:[]},{title:"fab fa-sistrix",searchTerms:[]},{title:"fas fa-sitemap",searchTerms:["directory","hierarchy","ia","information architecture","organization"]},{title:"fab fa-sith",searchTerms:[]},{title:"fas fa-skull",searchTerms:["bones","skeleton","yorick"]},{title:"fas fa-skull-crossbones",searchTerms:["Dungeons & Dragons","alert","bones","d&d","danger","dead","deadly","death","dnd","fantasy","halloween","holiday","jolly-roger","pirate","poison","skeleton","warning"]},{title:"fab fa-skyatlas",searchTerms:[]},{title:"fab fa-skype",searchTerms:[]},{title:"fab fa-slack",searchTerms:["anchor","hash","hashtag"]},{title:"fab fa-slack-hash",searchTerms:["anchor","hash","hashtag"]},{title:"fas fa-slash",searchTerms:[]},{title:"fas fa-sliders-h",searchTerms:["settings","sliders"]},{title:"fab fa-slideshare",searchTerms:[]},{title:"fas fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"far fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"fas fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"far fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"fas fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"far fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"fas fa-smog",searchTerms:["dragon"]},{title:"fas fa-smoking",searchTerms:["cigarette","nicotine","smoking status"]},{title:"fas fa-smoking-ban",searchTerms:["no smoking","non-smoking"]},{title:"fab fa-snapchat",searchTerms:[]},{title:"fab fa-snapchat-ghost",searchTerms:[]},{title:"fab fa-snapchat-square",searchTerms:[]},{title:"fas fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"far fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"fas fa-socks",searchTerms:["business socks","business time","flight of the conchords","wednesday"]},{title:"fas fa-solar-panel",searchTerms:["clean","eco-friendly","energy","green","sun"]},{title:"fas fa-sort",searchTerms:["order"]},{title:"fas fa-sort-alpha-down",searchTerms:["sort-alpha-asc"]},{title:"fas fa-sort-alpha-up",searchTerms:["sort-alpha-desc"]},{title:"fas fa-sort-amount-down",searchTerms:["sort-amount-asc"]},{title:"fas fa-sort-amount-up",searchTerms:["sort-amount-desc"]},{title:"fas fa-sort-down",searchTerms:["arrow","descending","sort-desc"]},{title:"fas fa-sort-numeric-down",searchTerms:["numbers","sort-numeric-asc"]},{title:"fas fa-sort-numeric-up",searchTerms:["numbers","sort-numeric-desc"]},{title:"fas fa-sort-up",searchTerms:["arrow","ascending","sort-asc"]},{title:"fab fa-soundcloud",searchTerms:[]},{title:"fas fa-spa",searchTerms:["flora","mindfullness","plant","wellness"]},{title:"fas fa-space-shuttle",searchTerms:["astronaut","machine","nasa","rocket","transportation"]},{title:"fab fa-speakap",searchTerms:[]},{title:"fas fa-spider",searchTerms:["arachnid","bug","charlotte","crawl","eight","halloween","holiday"]},{title:"fas fa-spinner",searchTerms:["loading","progress"]},{title:"fas fa-splotch",searchTerms:[]},{title:"fab fa-spotify",searchTerms:[]},{title:"fas fa-spray-can",searchTerms:[]},{title:"fas fa-square",searchTerms:["block","box"]},{title:"far fa-square",searchTerms:["block","box"]},{title:"fas fa-square-full",searchTerms:[]},{title:"fas fa-square-root-alt",searchTerms:[]},{title:"fab fa-squarespace",searchTerms:[]},{title:"fab fa-stack-exchange",searchTerms:[]},{title:"fab fa-stack-overflow",searchTerms:[]},{title:"fas fa-stamp",searchTerms:[]},{title:"fas fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"far fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"fas fa-star-and-crescent",searchTerms:["islam","muslim"]},{title:"fas fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"far fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-half-alt",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-of-david",searchTerms:["jewish","judaism"]},{title:"fas fa-star-of-life",searchTerms:[]},{title:"fab fa-staylinked",searchTerms:[]},{title:"fab fa-steam",searchTerms:[]},{title:"fab fa-steam-square",searchTerms:[]},{title:"fab fa-steam-symbol",searchTerms:[]},{title:"fas fa-step-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-step-forward",searchTerms:["end","last","next"]},{title:"fas fa-stethoscope",searchTerms:[]},{title:"fab fa-sticker-mule",searchTerms:[]},{title:"fas fa-sticky-note",searchTerms:[]},{title:"far fa-sticky-note",searchTerms:[]},{title:"fas fa-stop",searchTerms:["block","box","square"]},{title:"fas fa-stop-circle",searchTerms:[]},{title:"far fa-stop-circle",searchTerms:[]},{title:"fas fa-stopwatch",searchTerms:["time"]},{title:"fas fa-store",searchTerms:[]},{title:"fas fa-store-alt",searchTerms:[]},{title:"fab fa-strava",searchTerms:[]},{title:"fas fa-stream",searchTerms:[]},{title:"fas fa-street-view",searchTerms:["map"]},{title:"fas fa-strikethrough",searchTerms:[]},{title:"fab fa-stripe",searchTerms:[]},{title:"fab fa-stripe-s",searchTerms:[]},{title:"fas fa-stroopwafel",searchTerms:["dessert","food","sweets","waffle"]},{title:"fab fa-studiovinari",searchTerms:[]},{title:"fab fa-stumbleupon",searchTerms:[]},{title:"fab fa-stumbleupon-circle",searchTerms:[]},{title:"fas fa-subscript",searchTerms:[]},{title:"fas fa-subway",searchTerms:["machine","railway","train","transportation","vehicle"]},{title:"fas fa-suitcase",searchTerms:["baggage","luggage","move","suitcase","travel","trip"]},{title:"fas fa-suitcase-rolling",searchTerms:[]},{title:"fas fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"far fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"fab fa-superpowers",searchTerms:[]},{title:"fas fa-superscript",searchTerms:["exponential"]},{title:"fab fa-supple",searchTerms:[]},{title:"fas fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"far fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"fas fa-swatchbook",searchTerms:[]},{title:"fas fa-swimmer",searchTerms:["athlete","head","man","person","water"]},{title:"fas fa-swimming-pool",searchTerms:["ladder","recreation","water"]},{title:"fas fa-synagogue",searchTerms:["building","jewish","judaism","star of david","temple"]},{title:"fas fa-sync",searchTerms:["exchange","refresh","reload","rotate","swap"]},{title:"fas fa-sync-alt",searchTerms:["refresh","reload","rotate"]},{title:"fas fa-syringe",searchTerms:["immunizations","needle"]},{title:"fas fa-table",searchTerms:["data","excel","spreadsheet"]},{title:"fas fa-table-tennis",searchTerms:[]},{title:"fas fa-tablet",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablet-alt",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablets",searchTerms:["drugs","medicine"]},{title:"fas fa-tachometer-alt",searchTerms:["dashboard","tachometer"]},{title:"fas fa-tag",searchTerms:["label"]},{title:"fas fa-tags",searchTerms:["labels"]},{title:"fas fa-tape",searchTerms:[]},{title:"fas fa-tasks",searchTerms:["downloading","downloads","loading","progress","settings"]},{title:"fas fa-taxi",searchTerms:["cab","cabbie","car","car service","lyft","machine","transportation","uber","vehicle"]},{title:"fab fa-teamspeak",searchTerms:[]},{title:"fas fa-teeth",searchTerms:[]},{title:"fas fa-teeth-open",searchTerms:[]},{title:"fab fa-telegram",searchTerms:[]},{title:"fab fa-telegram-plane",searchTerms:[]},{title:"fas fa-temperature-high",searchTerms:["mercury","thermometer","warm"]},{title:"fas fa-temperature-low",searchTerms:["cool","mercury","thermometer"]},{title:"fab fa-tencent-weibo",searchTerms:[]},{title:"fas fa-terminal",searchTerms:["code","command","console","prompt"]},{title:"fas fa-text-height",searchTerms:[]},{title:"fas fa-text-width",searchTerms:[]},{title:"fas fa-th",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-large",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fab fa-the-red-yeti",searchTerms:[]},{title:"fas fa-theater-masks",searchTerms:[]},{title:"fab fa-themeco",searchTerms:[]},{title:"fab fa-themeisle",searchTerms:[]},{title:"fas fa-thermometer",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-empty",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-full",searchTerms:["fever","mercury","status","temperature"]},{title:"fas fa-thermometer-half",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-quarter",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-three-quarters",searchTerms:["mercury","status","temperature"]},{title:"fab fa-think-peaks",searchTerms:[]},{title:"fas fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"far fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"fas fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"far fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"fas fa-thumbtack",searchTerms:["coordinates","location","marker","pin","thumb-tack"]},{title:"fas fa-ticket-alt",searchTerms:["ticket"]},{title:"fas fa-times",searchTerms:["close","cross","error","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"far fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-tint",searchTerms:["drop","droplet","raindrop","waterdrop"]},{title:"fas fa-tint-slash",searchTerms:[]},{title:"fas fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"far fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"fas fa-toggle-off",searchTerms:["switch"]},{title:"fas fa-toggle-on",searchTerms:["switch"]},{title:"fas fa-toilet-paper",searchTerms:["bathroom","halloween","holiday","lavatory","prank","restroom","roll"]},{title:"fas fa-toolbox",searchTerms:["admin","container","fix","repair","settings","tools"]},{title:"fas fa-tooth",searchTerms:["bicuspid","dental","molar","mouth","teeth"]},{title:"fas fa-torah",searchTerms:["book","jewish","judaism"]},{title:"fas fa-torii-gate",searchTerms:["building","shintoism"]},{title:"fas fa-tractor",searchTerms:[]},{title:"fab fa-trade-federation",searchTerms:[]},{title:"fas fa-trademark",searchTerms:[]},{title:"fas fa-traffic-light",searchTerms:[]},{title:"fas fa-train",searchTerms:["bullet","locomotive","railway"]},{title:"fas fa-transgender",searchTerms:["intersex"]},{title:"fas fa-transgender-alt",searchTerms:[]},{title:"fas fa-trash",searchTerms:["delete","garbage","hide","remove"]},{title:"fas fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"far fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"fas fa-tree",searchTerms:["bark","fall","flora","forest","nature","plant","seasonal"]},{title:"fab fa-trello",searchTerms:[]},{title:"fab fa-tripadvisor",searchTerms:[]},{title:"fas fa-trophy",searchTerms:["achievement","award","cup","game","winner"]},{title:"fas fa-truck",searchTerms:["delivery","shipping"]},{title:"fas fa-truck-loading",searchTerms:[]},{title:"fas fa-truck-monster",searchTerms:[]},{title:"fas fa-truck-moving",searchTerms:[]},{title:"fas fa-truck-pickup",searchTerms:[]},{title:"fas fa-tshirt",searchTerms:["cloth","clothing"]},{title:"fas fa-tty",searchTerms:[]},{title:"fab fa-tumblr",searchTerms:[]},{title:"fab fa-tumblr-square",searchTerms:[]},{title:"fas fa-tv",searchTerms:["computer","display","monitor","television"]},{title:"fab fa-twitch",searchTerms:[]},{title:"fab fa-twitter",searchTerms:["social network","tweet"]},{title:"fab fa-twitter-square",searchTerms:["social network","tweet"]},{title:"fab fa-typo3",searchTerms:[]},{title:"fab fa-uber",searchTerms:[]},{title:"fab fa-uikit",searchTerms:[]},{title:"fas fa-umbrella",searchTerms:["protection","rain"]},{title:"fas fa-umbrella-beach",searchTerms:["protection","recreation","sun"]},{title:"fas fa-underline",searchTerms:[]},{title:"fas fa-undo",searchTerms:["back","control z","exchange","oops","return","rotate","swap"]},{title:"fas fa-undo-alt",searchTerms:["back","control z","exchange","oops","return","swap"]},{title:"fab fa-uniregistry",searchTerms:[]},{title:"fas fa-universal-access",searchTerms:[]},{title:"fas fa-university",searchTerms:["bank","institution"]},{title:"fas fa-unlink",searchTerms:["chain","chain-broken","remove"]},{title:"fas fa-unlock",searchTerms:["admin","lock","password","protect"]},{title:"fas fa-unlock-alt",searchTerms:["admin","lock","password","protect"]},{title:"fab fa-untappd",searchTerms:[]},{title:"fas fa-upload",searchTerms:["export","publish"]},{title:"fab fa-usb",searchTerms:[]},{title:"fas fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt-slash",searchTerms:[]},{title:"fas fa-user-astronaut",searchTerms:["avatar","clothing","cosmonaut","space","suit"]},{title:"fas fa-user-check",searchTerms:[]},{title:"fas fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-clock",searchTerms:[]},{title:"fas fa-user-cog",searchTerms:[]},{title:"fas fa-user-edit",searchTerms:[]},{title:"fas fa-user-friends",searchTerms:[]},{title:"fas fa-user-graduate",searchTerms:["cap","clothing","commencement","gown","graduation","student"]},{title:"fas fa-user-injured",searchTerms:["cast","ouch","sling"]},{title:"fas fa-user-lock",searchTerms:[]},{title:"fas fa-user-md",searchTerms:["doctor","job","medical","nurse","occupation","profile"]},{title:"fas fa-user-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-user-ninja",searchTerms:["assassin","avatar","dangerous","deadly","sneaky"]},{title:"fas fa-user-plus",searchTerms:["positive","sign up","signup"]},{title:"fas fa-user-secret",searchTerms:["clothing","coat","hat","incognito","privacy","spy","whisper"]},{title:"fas fa-user-shield",searchTerms:[]},{title:"fas fa-user-slash",searchTerms:["ban","remove"]},{title:"fas fa-user-tag",searchTerms:[]},{title:"fas fa-user-tie",searchTerms:["avatar","business","clothing","formal"]},{title:"fas fa-user-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-users",searchTerms:["people","persons","profiles"]},{title:"fas fa-users-cog",searchTerms:[]},{title:"fab fa-ussunnah",searchTerms:[]},{title:"fas fa-utensil-spoon",searchTerms:["spoon"]},{title:"fas fa-utensils",searchTerms:["cutlery","dinner","eat","food","knife","restaurant","spoon"]},{title:"fab fa-vaadin",searchTerms:[]},{title:"fas fa-vector-square",searchTerms:["anchors","lines","object"]},{title:"fas fa-venus",searchTerms:["female"]},{title:"fas fa-venus-double",searchTerms:[]},{title:"fas fa-venus-mars",searchTerms:[]},{title:"fab fa-viacoin",searchTerms:[]},{title:"fab fa-viadeo",searchTerms:[]},{title:"fab fa-viadeo-square",searchTerms:[]},{title:"fas fa-vial",searchTerms:["test tube"]},{title:"fas fa-vials",searchTerms:["lab results","test tubes"]},{title:"fab fa-viber",searchTerms:[]},{title:"fas fa-video",searchTerms:["camera","film","movie","record","video-camera"]},{title:"fas fa-video-slash",searchTerms:[]},{title:"fas fa-vihara",searchTerms:["buddhism","buddhist","building","monastery"]},{title:"fab fa-vimeo",searchTerms:[]},{title:"fab fa-vimeo-square",searchTerms:[]},{title:"fab fa-vimeo-v",searchTerms:["vimeo"]},{title:"fab fa-vine",searchTerms:[]},{title:"fab fa-vk",searchTerms:[]},{title:"fab fa-vnv",searchTerms:[]},{title:"fas fa-volleyball-ball",searchTerms:[]},{title:"fas fa-volume-down",searchTerms:["audio","lower","music","quieter","sound","speaker"]},{title:"fas fa-volume-mute",searchTerms:[]},{title:"fas fa-volume-off",searchTerms:["audio","music","mute","sound"]},{title:"fas fa-volume-up",searchTerms:["audio","higher","louder","music","sound","speaker"]},{title:"fas fa-vote-yea",searchTerms:["accept","cast","election","politics","positive","yes"]},{title:"fas fa-vr-cardboard",searchTerms:["google","reality","virtual"]},{title:"fab fa-vuejs",searchTerms:[]},{title:"fas fa-walking",searchTerms:[]},{title:"fas fa-wallet",searchTerms:[]},{title:"fas fa-warehouse",searchTerms:[]},{title:"fas fa-water",searchTerms:[]},{title:"fab fa-weebly",searchTerms:[]},{title:"fab fa-weibo",searchTerms:[]},{title:"fas fa-weight",searchTerms:["measurement","scale","weight"]},{title:"fas fa-weight-hanging",searchTerms:["anvil","heavy","measurement"]},{title:"fab fa-weixin",searchTerms:[]},{title:"fab fa-whatsapp",searchTerms:[]},{title:"fab fa-whatsapp-square",searchTerms:[]},{title:"fas fa-wheelchair",searchTerms:["handicap","person"]},{title:"fab fa-whmcs",searchTerms:[]},{title:"fas fa-wifi",searchTerms:[]},{title:"fab fa-wikipedia-w",searchTerms:[]},{title:"fas fa-wind",searchTerms:["air","blow","breeze","fall","seasonal"]},{title:"fas fa-window-close",searchTerms:[]},{title:"far fa-window-close",searchTerms:[]},{title:"fas fa-window-maximize",searchTerms:[]},{title:"far fa-window-maximize",searchTerms:[]},{title:"fas fa-window-minimize",searchTerms:[]},{title:"far fa-window-minimize",searchTerms:[]},{title:"fas fa-window-restore",searchTerms:[]},{title:"far fa-window-restore",searchTerms:[]},{title:"fab fa-windows",searchTerms:["microsoft"]},{title:"fas fa-wine-bottle",searchTerms:["alcohol","beverage","drink","glass","grapes"]},{title:"fas fa-wine-glass",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fas fa-wine-glass-alt",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fab fa-wix",searchTerms:[]},{title:"fab fa-wizards-of-the-coast",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fab fa-wolf-pack-battalion",searchTerms:[]},{title:"fas fa-won-sign",searchTerms:["krw"]},{title:"fab fa-wordpress",searchTerms:[]},{title:"fab fa-wordpress-simple",searchTerms:[]},{title:"fab fa-wpbeginner",searchTerms:[]},{title:"fab fa-wpexplorer",searchTerms:[]},{title:"fab fa-wpforms",searchTerms:[]},{title:"fab fa-wpressr",searchTerms:["rendact"]},{title:"fas fa-wrench",searchTerms:["fix","settings","spanner","tool","update"]},{title:"fas fa-x-ray",searchTerms:["radiological images","radiology"]},{title:"fab fa-xbox",searchTerms:[]},{title:"fab fa-xing",searchTerms:[]},{title:"fab fa-xing-square",searchTerms:[]},{title:"fab fa-y-combinator",searchTerms:[]},{title:"fab fa-yahoo",searchTerms:[]},{title:"fab fa-yandex",searchTerms:[]},{title:"fab fa-yandex-international",searchTerms:[]},{title:"fab fa-yelp",searchTerms:[]},{title:"fas fa-yen-sign",searchTerms:["jpy","money"]},{title:"fas fa-yin-yang",searchTerms:["daoism","opposites","taoism"]},{title:"fab fa-yoast",searchTerms:[]},{title:"fab fa-youtube",searchTerms:["film","video","youtube-play","youtube-square"]},{title:"fab fa-youtube-square",searchTerms:[]},{title:"fab fa-zhihu",searchTerms:[]}]})});
1
+
2
+
3
+
4
  !function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)}(function(j){j.ui=j.ui||{};j.ui.version="1.12.1";!function(){var r,y=Math.max,x=Math.abs,s=/left|center|right/,i=/top|center|bottom/,c=/[\+\-]\d+(\.[\d]+)?%?/,f=/^\w+/,l=/%$/,o=j.fn.pos;function q(e,a,t){return[parseFloat(e[0])*(l.test(e[0])?a/100:1),parseFloat(e[1])*(l.test(e[1])?t/100:1)]}function C(e,a){return parseInt(j.css(e,a),10)||0}j.pos={scrollbarWidth:function(){if(void 0!==r)return r;var e,a,t=j("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),s=t.children()[0];return j("body").append(t),e=s.offsetWidth,t.css("overflow","scroll"),e===(a=s.offsetWidth)&&(a=t[0].clientWidth),t.remove(),r=e-a},getScrollInfo:function(e){var a=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),t=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),s="scroll"===a||"auto"===a&&e.width<e.element[0].scrollWidth;return{width:"scroll"===t||"auto"===t&&e.height<e.element[0].scrollHeight?j.pos.scrollbarWidth():0,height:s?j.pos.scrollbarWidth():0}},getWithinInfo:function(e){var a=j(e||window),t=j.isWindow(a[0]),s=!!a[0]&&9===a[0].nodeType;return{element:a,isWindow:t,isDocument:s,offset:!t&&!s?j(e).offset():{left:0,top:0},scrollLeft:a.scrollLeft(),scrollTop:a.scrollTop(),width:a.outerWidth(),height:a.outerHeight()}}},j.fn.pos=function(h){if(!h||!h.of)return o.apply(this,arguments);h=j.extend({},h);var m,p,d,T,u,e,a,t,g=j(h.of),b=j.pos.getWithinInfo(h.within),k=j.pos.getScrollInfo(b),w=(h.collision||"flip").split(" "),v={};return e=9===(t=(a=g)[0]).nodeType?{width:a.width(),height:a.height(),offset:{top:0,left:0}}:j.isWindow(t)?{width:a.width(),height:a.height(),offset:{top:a.scrollTop(),left:a.scrollLeft()}}:t.preventDefault?{width:0,height:0,offset:{top:t.pageY,left:t.pageX}}:{width:a.outerWidth(),height:a.outerHeight(),offset:a.offset()},g[0].preventDefault&&(h.at="left top"),p=e.width,d=e.height,T=e.offset,u=j.extend({},T),j.each(["my","at"],function(){var e,a,t=(h[this]||"").split(" ");1===t.length&&(t=s.test(t[0])?t.concat(["center"]):i.test(t[0])?["center"].concat(t):["center","center"]),t[0]=s.test(t[0])?t[0]:"center",t[1]=i.test(t[1])?t[1]:"center",e=c.exec(t[0]),a=c.exec(t[1]),v[this]=[e?e[0]:0,a?a[0]:0],h[this]=[f.exec(t[0])[0],f.exec(t[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===h.at[0]?u.left+=p:"center"===h.at[0]&&(u.left+=p/2),"bottom"===h.at[1]?u.top+=d:"center"===h.at[1]&&(u.top+=d/2),m=q(v.at,p,d),u.left+=m[0],u.top+=m[1],this.each(function(){var t,e,c=j(this),f=c.outerWidth(),l=c.outerHeight(),a=C(this,"marginLeft"),s=C(this,"marginTop"),r=f+a+C(this,"marginRight")+k.width,i=l+s+C(this,"marginBottom")+k.height,o=j.extend({},u),n=q(v.my,c.outerWidth(),c.outerHeight());"right"===h.my[0]?o.left-=f:"center"===h.my[0]&&(o.left-=f/2),"bottom"===h.my[1]?o.top-=l:"center"===h.my[1]&&(o.top-=l/2),o.left+=n[0],o.top+=n[1],t={marginLeft:a,marginTop:s},j.each(["left","top"],function(e,a){j.ui.pos[w[e]]&&j.ui.pos[w[e]][a](o,{targetWidth:p,targetHeight:d,elemWidth:f,elemHeight:l,collisionPosition:t,collisionWidth:r,collisionHeight:i,offset:[m[0]+n[0],m[1]+n[1]],my:h.my,at:h.at,within:b,elem:c})}),h.using&&(e=function(e){var a=T.left-o.left,t=a+p-f,s=T.top-o.top,r=s+d-l,i={target:{element:g,left:T.left,top:T.top,width:p,height:d},element:{element:c,left:o.left,top:o.top,width:f,height:l},horizontal:t<0?"left":0<a?"right":"center",vertical:r<0?"top":0<s?"bottom":"middle"};p<f&&x(a+t)<p&&(i.horizontal="center"),d<l&&x(s+r)<d&&(i.vertical="middle"),y(x(a),x(t))>y(x(s),x(r))?i.important="horizontal":i.important="vertical",h.using.call(this,e,i)}),c.offset(j.extend(o,{using:e}))})},j.ui.pos={_trigger:function(e,a,t,s){a.elem&&a.elem.trigger({type:t,position:e,positionData:a,triggered:s})},fit:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitLeft");var t,s=a.within,r=s.isWindow?s.scrollLeft:s.offset.left,i=s.width,c=e.left-a.collisionPosition.marginLeft,f=r-c,l=c+a.collisionWidth-i-r;a.collisionWidth>i?0<f&&l<=0?(t=e.left+f+a.collisionWidth-i-r,e.left+=f-t):e.left=0<l&&f<=0?r:l<f?r+i-a.collisionWidth:r:0<f?e.left+=f:0<l?e.left-=l:e.left=y(e.left-c,e.left),j.ui.pos._trigger(e,a,"posCollided","fitLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","fitTop");var t,s=a.within,r=s.isWindow?s.scrollTop:s.offset.top,i=a.within.height,c=e.top-a.collisionPosition.marginTop,f=r-c,l=c+a.collisionHeight-i-r;a.collisionHeight>i?0<f&&l<=0?(t=e.top+f+a.collisionHeight-i-r,e.top+=f-t):e.top=0<l&&f<=0?r:l<f?r+i-a.collisionHeight:r:0<f?e.top+=f:0<l?e.top-=l:e.top=y(e.top-c,e.top),j.ui.pos._trigger(e,a,"posCollided","fitTop")}},flip:{left:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipLeft");var t,s,r=a.within,i=r.offset.left+r.scrollLeft,c=r.width,f=r.isWindow?r.scrollLeft:r.offset.left,l=e.left-a.collisionPosition.marginLeft,o=l-f,n=l+a.collisionWidth-c-f,h="left"===a.my[0]?-a.elemWidth:"right"===a.my[0]?a.elemWidth:0,m="left"===a.at[0]?a.targetWidth:"right"===a.at[0]?-a.targetWidth:0,p=-2*a.offset[0];o<0?((t=e.left+h+m+p+a.collisionWidth-c-i)<0||t<x(o))&&(e.left+=h+m+p):0<n&&(0<(s=e.left-a.collisionPosition.marginLeft+h+m+p-f)||x(s)<n)&&(e.left+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipLeft")},top:function(e,a){j.ui.pos._trigger(e,a,"posCollide","flipTop");var t,s,r=a.within,i=r.offset.top+r.scrollTop,c=r.height,f=r.isWindow?r.scrollTop:r.offset.top,l=e.top-a.collisionPosition.marginTop,o=l-f,n=l+a.collisionHeight-c-f,h="top"===a.my[1]?-a.elemHeight:"bottom"===a.my[1]?a.elemHeight:0,m="top"===a.at[1]?a.targetHeight:"bottom"===a.at[1]?-a.targetHeight:0,p=-2*a.offset[1];o<0?((s=e.top+h+m+p+a.collisionHeight-c-i)<0||s<x(o))&&(e.top+=h+m+p):0<n&&(0<(t=e.top-a.collisionPosition.marginTop+h+m+p-f)||x(t)<n)&&(e.top+=h+m+p),j.ui.pos._trigger(e,a,"posCollided","flipTop")}},flipfit:{left:function(){j.ui.pos.flip.left.apply(this,arguments),j.ui.pos.fit.left.apply(this,arguments)},top:function(){j.ui.pos.flip.top.apply(this,arguments),j.ui.pos.fit.top.apply(this,arguments)}}},function(){var e,a,t,s,r,i=document.getElementsByTagName("body")[0],c=document.createElement("div");for(r in e=document.createElement(i?"div":"body"),t={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},i&&j.extend(t,{position:"absolute",left:"-1000px",top:"-1000px"}),t)e.style[r]=t[r];e.appendChild(c),(a=i||document.documentElement).insertBefore(e,a.firstChild),c.style.cssText="position: absolute; left: 10.7432222px;",s=j(c).offset().left,j.support.offsetFractions=10<s&&s<11,e.innerHTML="",a.removeChild(e)}()}();j.ui.position}),function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery"],e):window.jQuery&&!window.jQuery.fn.iconpicker&&e(window.jQuery)}(function(l){"use strict";var t=function(e){return!1===e||""===e||null==e},s=function(e){return 0<l(e).length},r=function(e){return"string"==typeof e||e instanceof String},i=function(e,a){return-1!==l.inArray(e,a)},c=function(e,a){this._id=c._idCounter++,this.element=l(e).addClass("iconpicker-element"),this._trigger("iconpickerCreate",{iconpickerValue:this.iconpickerValue}),this.options=l.extend({},c.defaultOptions,this.element.data(),a),this.options.templates=l.extend({},c.defaultOptions.templates,this.options.templates),this.options.originalPlacement=this.options.placement,this.container=!!s(this.options.container)&&l(this.options.container),!1===this.container&&(this.element.is(".dropdown-toggle")?this.container=l("~ .dropdown-menu:first",this.element):this.container=this.element.is("input,textarea,button,.btn")?this.element.parent():this.element),this.container.addClass("iconpicker-container"),this.isDropdownMenu()&&(this.options.placement="inline"),this.input=!!this.element.is("input,textarea")&&this.element.addClass("iconpicker-input"),!1===this.input&&(this.input=this.container.find(this.options.input),this.input.is("input,textarea")||(this.input=!1)),this.component=this.isDropdownMenu()?this.container.parent().find(this.options.component):this.container.find(this.options.component),0===this.component.length?this.component=!1:this.component.find("i").addClass("iconpicker-component"),this._createPopover(),this._createIconpicker(),0===this.getAcceptButton().length&&(this.options.mustAccept=!1),this.isInputGroup()?this.container.parent().append(this.popover):this.container.append(this.popover),this._bindElementEvents(),this._bindWindowEvents(),this.update(this.options.selected),this.isInline()&&this.show(),this._trigger("iconpickerCreated",{iconpickerValue:this.iconpickerValue})};c._idCounter=0,c.defaultOptions={title:!1,selected:!1,defaultValue:!1,placement:"bottom",collision:"none",animation:!0,hideOnSelect:!1,showFooter:!1,searchInFooter:!1,mustAccept:!1,selectedCustomClass:"bg-primary",icons:[],fullClassFormatter:function(e){return e},input:"input,.iconpicker-input",inputSearch:!1,container:!1,component:".input-group-addon,.iconpicker-component",templates:{popover:'<div class="iconpicker-popover popover"><div class="arrow"></div><div class="popover-title"></div><div class="popover-content"></div></div>',footer:'<div class="popover-footer"></div>',buttons:'<button class="iconpicker-btn iconpicker-btn-cancel btn btn-default btn-sm">Cancel</button> <button class="iconpicker-btn iconpicker-btn-accept btn btn-primary btn-sm">Accept</button>',search:'<input type="search" class="form-control iconpicker-search" placeholder="Type to filter" />',iconpicker:'<div class="iconpicker"><div class="iconpicker-items"></div></div>',iconpickerItem:'<a role="button" href="javascript:;" class="iconpicker-item"><i></i></a>'}},c.batch=function(e,a){var t=Array.prototype.slice.call(arguments,2);return l(e).each(function(){var e=l(this).data("iconpicker");e&&e[a].apply(e,t)})},c.prototype={constructor:c,options:{},_id:0,_trigger:function(e,a){a=a||{},this.element.trigger(l.extend({type:e,iconpickerInstance:this},a))},_createPopover:function(){this.popover=l(this.options.templates.popover);var e=this.popover.find(".popover-title");if(this.options.title&&e.append(l('<div class="popover-title-text">'+this.options.title+"</div>")),this.hasSeparatedSearchInput()&&!this.options.searchInFooter?e.append(this.options.templates.search):this.options.title||e.remove(),this.options.showFooter&&!t(this.options.templates.footer)){var a=l(this.options.templates.footer);this.hasSeparatedSearchInput()&&this.options.searchInFooter&&a.append(l(this.options.templates.search)),t(this.options.templates.buttons)||a.append(l(this.options.templates.buttons)),this.popover.append(a)}return!0===this.options.animation&&this.popover.addClass("fade"),this.popover},_createIconpicker:function(){var t=this;this.iconpicker=l(this.options.templates.iconpicker);var e=function(e){var a=l(this);a.is("i")&&(a=a.parent()),t._trigger("iconpickerSelect",{iconpickerItem:a,iconpickerValue:t.iconpickerValue}),!1===t.options.mustAccept?(t.update(a.data("iconpickerValue")),t._trigger("iconpickerSelected",{iconpickerItem:this,iconpickerValue:t.iconpickerValue})):t.update(a.data("iconpickerValue"),!0),t.options.hideOnSelect&&!1===t.options.mustAccept&&t.hide()},a=l(this.options.templates.iconpickerItem),s=[];for(var r in this.options.icons)if("string"==typeof this.options.icons[r].title){var i=a.clone();if(i.find("i").addClass(this.options.fullClassFormatter(this.options.icons[r].title)),i.data("iconpickerValue",this.options.icons[r].title).on("click.iconpicker",e),i.attr("title","."+this.options.icons[r].title),0<this.options.icons[r].searchTerms.length){for(var c="",f=0;f<this.options.icons[r].searchTerms.length;f++)c=c+this.options.icons[r].searchTerms[f]+" ";i.attr("data-search-terms",c)}s.push(i)}return this.iconpicker.find(".iconpicker-items").append(s),this.popover.find(".popover-content").append(this.iconpicker),this.iconpicker},_isEventInsideIconpicker:function(e){var a=l(e.target);return!((!a.hasClass("iconpicker-element")||a.hasClass("iconpicker-element")&&!a.is(this.element))&&0===a.parents(".iconpicker-popover").length)},_bindElementEvents:function(){var a=this;this.getSearchInput().on("keyup.iconpicker",function(){a.filter(l(this).val().toLowerCase())}),this.getAcceptButton().on("click.iconpicker",function(){var e=a.iconpicker.find(".iconpicker-selected").get(0);a.update(a.iconpickerValue),a._trigger("iconpickerSelected",{iconpickerItem:e,iconpickerValue:a.iconpickerValue}),a.isInline()||a.hide()}),this.getCancelButton().on("click.iconpicker",function(){a.isInline()||a.hide()}),this.element.on("focus.iconpicker",function(e){a.show(),e.stopPropagation()}),this.hasComponent()&&this.component.on("click.iconpicker",function(){a.toggle()}),this.hasInput()&&this.input.on("keyup.iconpicker",function(e){i(e.keyCode,[38,40,37,39,16,17,18,9,8,91,93,20,46,186,190,46,78,188,44,86])?a._updateFormGroupStatus(!1!==a.getValid(this.value)):a.update(),!0===a.options.inputSearch&&a.filter(l(this).val().toLowerCase())})},_bindWindowEvents:function(){var e=l(window.document),a=this,t=".iconpicker.inst"+this._id;l(window).on("resize.iconpicker"+t+" orientationchange.iconpicker"+t,function(e){a.popover.hasClass("in")&&a.updatePlacement()}),a.isInline()||e.on("mouseup"+t,function(e){a._isEventInsideIconpicker(e)||a.isInline()||a.hide()})},_unbindElementEvents:function(){this.popover.off(".iconpicker"),this.element.off(".iconpicker"),this.hasInput()&&this.input.off(".iconpicker"),this.hasComponent()&&this.component.off(".iconpicker"),this.hasContainer()&&this.container.off(".iconpicker")},_unbindWindowEvents:function(){l(window).off(".iconpicker.inst"+this._id),l(window.document).off(".iconpicker.inst"+this._id)},updatePlacement:function(e,a){e=e||this.options.placement,this.options.placement=e,a=!0===(a=a||this.options.collision)?"flip":a;var t={at:"right bottom",my:"right top",of:this.hasInput()&&!this.isInputGroup()?this.input:this.container,collision:!0===a?"flip":a,within:window};if(this.popover.removeClass("inline topLeftCorner topLeft top topRight topRightCorner rightTop right rightBottom bottomRight bottomRightCorner bottom bottomLeft bottomLeftCorner leftBottom left leftTop"),"object"==typeof e)return this.popover.pos(l.extend({},t,e));switch(e){case"inline":t=!1;break;case"topLeftCorner":t.my="right bottom",t.at="left top";break;case"topLeft":t.my="left bottom",t.at="left top";break;case"top":t.my="center bottom",t.at="center top";break;case"topRight":t.my="right bottom",t.at="right top";break;case"topRightCorner":t.my="left bottom",t.at="right top";break;case"rightTop":t.my="left bottom",t.at="right center";break;case"right":t.my="left center",t.at="right center";break;case"rightBottom":t.my="left top",t.at="right center";break;case"bottomRightCorner":t.my="left top",t.at="right bottom";break;case"bottomRight":t.my="right top",t.at="right bottom";break;case"bottom":t.my="center top",t.at="center bottom";break;case"bottomLeft":t.my="left top",t.at="left bottom";break;case"bottomLeftCorner":t.my="right top",t.at="left bottom";break;case"leftBottom":t.my="right top",t.at="left center";break;case"left":t.my="right center",t.at="left center";break;case"leftTop":t.my="right bottom",t.at="left center";break;default:return!1}return this.popover.css({display:"inline"===this.options.placement?"":"block"}),!1!==t?this.popover.pos(t).css("maxWidth",l(window).width()-this.container.offset().left-5):this.popover.css({top:"auto",right:"auto",bottom:"auto",left:"auto",maxWidth:"none"}),this.popover.addClass(this.options.placement),!0},_updateComponents:function(){if(this.iconpicker.find(".iconpicker-item.iconpicker-selected").removeClass("iconpicker-selected "+this.options.selectedCustomClass),this.iconpickerValue&&this.iconpicker.find("."+this.options.fullClassFormatter(this.iconpickerValue).replace(/ /g,".")).parent().addClass("iconpicker-selected "+this.options.selectedCustomClass),this.hasComponent()){var e=this.component.find("i");0<e.length?e.attr("class",this.options.fullClassFormatter(this.iconpickerValue)):this.component.html(this.getHtml())}},_updateFormGroupStatus:function(e){return!!this.hasInput()&&(!1!==e?this.input.parents(".form-group:first").removeClass("has-error"):this.input.parents(".form-group:first").addClass("has-error"),!0)},getValid:function(e){r(e)||(e="");var a=""===e;e=l.trim(e);for(var t=!1,s=0;s<this.options.icons.length;s++)if(this.options.icons[s].title===e){t=!0;break}return!(!t&&!a)&&e},setValue:function(e){var a=this.getValid(e);return!1!==a?(this.iconpickerValue=a,this._trigger("iconpickerSetValue",{iconpickerValue:a}),this.iconpickerValue):(this._trigger("iconpickerInvalid",{iconpickerValue:e}),!1)},getHtml:function(){return'<i class="'+this.options.fullClassFormatter(this.iconpickerValue)+'"></i>'},setSourceValue:function(e){return!1!==(e=this.setValue(e))&&""!==e&&(this.hasInput()?this.input.val(this.iconpickerValue):this.element.data("iconpickerValue",this.iconpickerValue),this._trigger("iconpickerSetSourceValue",{iconpickerValue:e})),e},getSourceValue:function(e){var a=e=e||this.options.defaultValue;return void 0!==(a=this.hasInput()?this.input.val():this.element.data("iconpickerValue"))&&""!==a&&null!==a&&!1!==a||(a=e),a},hasInput:function(){return!1!==this.input},isInputSearch:function(){return this.hasInput()&&!0===this.options.inputSearch},isInputGroup:function(){return this.container.is(".input-group")},isDropdownMenu:function(){return this.container.is(".dropdown-menu")},hasSeparatedSearchInput:function(){return!1!==this.options.templates.search&&!this.isInputSearch()},hasComponent:function(){return!1!==this.component},hasContainer:function(){return!1!==this.container},getAcceptButton:function(){return this.popover.find(".iconpicker-btn-accept")},getCancelButton:function(){return this.popover.find(".iconpicker-btn-cancel")},getSearchInput:function(){return this.popover.find(".iconpicker-search")},filter:function(s){if(t(s))return this.iconpicker.find(".iconpicker-item").show(),l(!1);var r=[];return this.iconpicker.find(".iconpicker-item").each(function(){var e=l(this),a=e.attr("title").toLowerCase();a=a+" "+(e.attr("data-search-terms")?e.attr("data-search-terms").toLowerCase():"");var t=!1;try{t=new RegExp("(^|\\W)"+s,"g")}catch(e){t=!1}!1!==t&&a.match(t)?(r.push(e),e.show()):e.hide()}),r},show:function(){if(this.popover.hasClass("in"))return!1;l.iconpicker.batch(l(".iconpicker-popover.in:not(.inline)").not(this.popover),"hide"),this._trigger("iconpickerShow",{iconpickerValue:this.iconpickerValue}),this.updatePlacement(),this.popover.addClass("in"),setTimeout(l.proxy(function(){this.popover.css("display",this.isInline()?"":"block"),this._trigger("iconpickerShown",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},hide:function(){if(!this.popover.hasClass("in"))return!1;this._trigger("iconpickerHide",{iconpickerValue:this.iconpickerValue}),this.popover.removeClass("in"),setTimeout(l.proxy(function(){this.popover.css("display","none"),this.getSearchInput().val(""),this.filter(""),this._trigger("iconpickerHidden",{iconpickerValue:this.iconpickerValue})},this),this.options.animation?300:1)},toggle:function(){this.popover.is(":visible")?this.hide():this.show(!0)},update:function(e,a){return e=e||this.getSourceValue(this.iconpickerValue),this._trigger("iconpickerUpdate",{iconpickerValue:this.iconpickerValue}),!0===a?e=this.setValue(e):(e=this.setSourceValue(e),this._updateFormGroupStatus(!1!==e)),!1!==e&&this._updateComponents(),this._trigger("iconpickerUpdated",{iconpickerValue:this.iconpickerValue}),e},destroy:function(){this._trigger("iconpickerDestroy",{iconpickerValue:this.iconpickerValue}),this.element.removeData("iconpicker").removeData("iconpickerValue").removeClass("iconpicker-element"),this._unbindElementEvents(),this._unbindWindowEvents(),l(this.popover).remove(),this._trigger("iconpickerDestroyed",{iconpickerValue:this.iconpickerValue})},disable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!0),!0)},enable:function(){return!!this.hasInput()&&(this.input.prop("disabled",!1),!0)},isDisabled:function(){return!!this.hasInput()&&!0===this.input.prop("disabled")},isInline:function(){return"inline"===this.options.placement||this.popover.hasClass("inline")}},l.iconpicker=c,l.fn.iconpicker=function(a){return this.each(function(){var e=l(this);e.data("iconpicker")||e.data("iconpicker",new c(this,"object"==typeof a?a:{}))})},c.defaultOptions=l.extend(c.defaultOptions,{icons:[{title:"fab fa-500px",searchTerms:[]},{title:"fab fa-accessible-icon",searchTerms:["accessibility","handicap","person","wheelchair","wheelchair-alt"]},{title:"fab fa-accusoft",searchTerms:[]},{title:"fab fa-acquisitions-incorporated",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-ad",searchTerms:[]},{title:"fas fa-address-book",searchTerms:[]},{title:"far fa-address-book",searchTerms:[]},{title:"fas fa-address-card",searchTerms:[]},{title:"far fa-address-card",searchTerms:[]},{title:"fas fa-adjust",searchTerms:["contrast"]},{title:"fab fa-adn",searchTerms:[]},{title:"fab fa-adversal",searchTerms:[]},{title:"fab fa-affiliatetheme",searchTerms:[]},{title:"fas fa-air-freshener",searchTerms:[]},{title:"fab fa-algolia",searchTerms:[]},{title:"fas fa-align-center",searchTerms:["middle","text"]},{title:"fas fa-align-justify",searchTerms:["text"]},{title:"fas fa-align-left",searchTerms:["text"]},{title:"fas fa-align-right",searchTerms:["text"]},{title:"fab fa-alipay",searchTerms:[]},{title:"fas fa-allergies",searchTerms:["freckles","hand","intolerances","pox","spots"]},{title:"fab fa-amazon",searchTerms:[]},{title:"fab fa-amazon-pay",searchTerms:[]},{title:"fas fa-ambulance",searchTerms:["help","machine","support","vehicle"]},{title:"fas fa-american-sign-language-interpreting",searchTerms:[]},{title:"fab fa-amilia",searchTerms:[]},{title:"fas fa-anchor",searchTerms:["link"]},{title:"fab fa-android",searchTerms:["robot"]},{title:"fab fa-angellist",searchTerms:[]},{title:"fas fa-angle-double-down",searchTerms:["arrows"]},{title:"fas fa-angle-double-left",searchTerms:["arrows","back","laquo","previous","quote"]},{title:"fas fa-angle-double-right",searchTerms:["arrows","forward","next","quote","raquo"]},{title:"fas fa-angle-double-up",searchTerms:["arrows"]},{title:"fas fa-angle-down",searchTerms:["arrow"]},{title:"fas fa-angle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-angle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-angle-up",searchTerms:["arrow"]},{title:"fas fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"far fa-angry",searchTerms:["disapprove","emoticon","face","mad","upset"]},{title:"fab fa-angrycreative",searchTerms:[]},{title:"fab fa-angular",searchTerms:[]},{title:"fas fa-ankh",searchTerms:["amulet","copper","coptic christianity","copts","crux ansata","egyptian","venus"]},{title:"fab fa-app-store",searchTerms:[]},{title:"fab fa-app-store-ios",searchTerms:[]},{title:"fab fa-apper",searchTerms:[]},{title:"fab fa-apple",searchTerms:["food","fruit","mac","osx"]},{title:"fas fa-apple-alt",searchTerms:["fall","food","fruit","fuji","macintosh","seasonal"]},{title:"fab fa-apple-pay",searchTerms:[]},{title:"fas fa-archive",searchTerms:["box","package","storage"]},{title:"fas fa-archway",searchTerms:["arc","monument","road","street"]},{title:"fas fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"far fa-arrow-alt-circle-down",searchTerms:["arrow-circle-o-down","download"]},{title:"fas fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"far fa-arrow-alt-circle-left",searchTerms:["arrow-circle-o-left","back","previous"]},{title:"fas fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"far fa-arrow-alt-circle-right",searchTerms:["arrow-circle-o-right","forward","next"]},{title:"fas fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"far fa-arrow-alt-circle-up",searchTerms:["arrow-circle-o-up"]},{title:"fas fa-arrow-circle-down",searchTerms:["download"]},{title:"fas fa-arrow-circle-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-circle-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-circle-up",searchTerms:[]},{title:"fas fa-arrow-down",searchTerms:["download"]},{title:"fas fa-arrow-left",searchTerms:["back","previous"]},{title:"fas fa-arrow-right",searchTerms:["forward","next"]},{title:"fas fa-arrow-up",searchTerms:[]},{title:"fas fa-arrows-alt",searchTerms:["arrow","arrows","bigger","enlarge","expand","fullscreen","move","position","reorder","resize"]},{title:"fas fa-arrows-alt-h",searchTerms:["arrows-h","resize"]},{title:"fas fa-arrows-alt-v",searchTerms:["arrows-v","resize"]},{title:"fas fa-assistive-listening-systems",searchTerms:[]},{title:"fas fa-asterisk",searchTerms:["details"]},{title:"fab fa-asymmetrik",searchTerms:[]},{title:"fas fa-at",searchTerms:["e-mail","email"]},{title:"fas fa-atlas",searchTerms:["book","directions","geography","map","wayfinding"]},{title:"fas fa-atom",searchTerms:["atheism","chemistry","science"]},{title:"fab fa-audible",searchTerms:[]},{title:"fas fa-audio-description",searchTerms:[]},{title:"fab fa-autoprefixer",searchTerms:[]},{title:"fab fa-avianex",searchTerms:[]},{title:"fab fa-aviato",searchTerms:[]},{title:"fas fa-award",searchTerms:["honor","praise","prize","recognition","ribbon"]},{title:"fab fa-aws",searchTerms:[]},{title:"fas fa-backspace",searchTerms:["command","delete","keyboard","undo"]},{title:"fas fa-backward",searchTerms:["previous","rewind"]},{title:"fas fa-balance-scale",searchTerms:["balanced","justice","legal","measure","weight"]},{title:"fas fa-ban",searchTerms:["abort","ban","block","cancel","delete","hide","prohibit","remove","stop","trash"]},{title:"fas fa-band-aid",searchTerms:["bandage","boo boo","ouch"]},{title:"fab fa-bandcamp",searchTerms:[]},{title:"fas fa-barcode",searchTerms:["scan"]},{title:"fas fa-bars",searchTerms:["checklist","drag","hamburger","list","menu","nav","navigation","ol","reorder","settings","todo","ul"]},{title:"fas fa-baseball-ball",searchTerms:[]},{title:"fas fa-basketball-ball",searchTerms:[]},{title:"fas fa-bath",searchTerms:[]},{title:"fas fa-battery-empty",searchTerms:["power","status"]},{title:"fas fa-battery-full",searchTerms:["power","status"]},{title:"fas fa-battery-half",searchTerms:["power","status"]},{title:"fas fa-battery-quarter",searchTerms:["power","status"]},{title:"fas fa-battery-three-quarters",searchTerms:["power","status"]},{title:"fas fa-bed",searchTerms:["lodging","sleep","travel"]},{title:"fas fa-beer",searchTerms:["alcohol","bar","beverage","drink","liquor","mug","stein"]},{title:"fab fa-behance",searchTerms:[]},{title:"fab fa-behance-square",searchTerms:[]},{title:"fas fa-bell",searchTerms:["alert","notification","reminder"]},{title:"far fa-bell",searchTerms:["alert","notification","reminder"]},{title:"fas fa-bell-slash",searchTerms:[]},{title:"far fa-bell-slash",searchTerms:[]},{title:"fas fa-bezier-curve",searchTerms:["curves","illustrator","lines","path","vector"]},{title:"fas fa-bible",searchTerms:["book","catholicism","christianity"]},{title:"fas fa-bicycle",searchTerms:["bike","gears","transportation","vehicle"]},{title:"fab fa-bimobject",searchTerms:[]},{title:"fas fa-binoculars",searchTerms:[]},{title:"fas fa-birthday-cake",searchTerms:[]},{title:"fab fa-bitbucket",searchTerms:["bitbucket-square","git"]},{title:"fab fa-bitcoin",searchTerms:[]},{title:"fab fa-bity",searchTerms:[]},{title:"fab fa-black-tie",searchTerms:[]},{title:"fab fa-blackberry",searchTerms:[]},{title:"fas fa-blender",searchTerms:[]},{title:"fas fa-blender-phone",searchTerms:["appliance","fantasy","silly"]},{title:"fas fa-blind",searchTerms:[]},{title:"fab fa-blogger",searchTerms:[]},{title:"fab fa-blogger-b",searchTerms:[]},{title:"fab fa-bluetooth",searchTerms:[]},{title:"fab fa-bluetooth-b",searchTerms:[]},{title:"fas fa-bold",searchTerms:[]},{title:"fas fa-bolt",searchTerms:["electricity","lightning","weather","zap"]},{title:"fas fa-bomb",searchTerms:[]},{title:"fas fa-bone",searchTerms:[]},{title:"fas fa-bong",searchTerms:["aparatus","cannabis","marijuana","pipe","smoke","smoking"]},{title:"fas fa-book",searchTerms:["documentation","read"]},{title:"fas fa-book-dead",searchTerms:["Dungeons & Dragons","crossbones","d&d","dark arts","death","dnd","documentation","evil","fantasy","halloween","holiday","read","skull","spell"]},{title:"fas fa-book-open",searchTerms:["flyer","notebook","open book","pamphlet","reading"]},{title:"fas fa-book-reader",searchTerms:["library"]},{title:"fas fa-bookmark",searchTerms:["save"]},{title:"far fa-bookmark",searchTerms:["save"]},{title:"fas fa-bowling-ball",searchTerms:[]},{title:"fas fa-box",searchTerms:["package"]},{title:"fas fa-box-open",searchTerms:[]},{title:"fas fa-boxes",searchTerms:[]},{title:"fas fa-braille",searchTerms:[]},{title:"fas fa-brain",searchTerms:["cerebellum","gray matter","intellect","medulla oblongata","mind","noodle","wit"]},{title:"fas fa-briefcase",searchTerms:["bag","business","luggage","office","work"]},{title:"fas fa-briefcase-medical",searchTerms:["health briefcase"]},{title:"fas fa-broadcast-tower",searchTerms:["airwaves","radio","waves"]},{title:"fas fa-broom",searchTerms:["clean","firebolt","fly","halloween","holiday","nimbus 2000","quidditch","sweep","witch"]},{title:"fas fa-brush",searchTerms:["bristles","color","handle","painting"]},{title:"fab fa-btc",searchTerms:[]},{title:"fas fa-bug",searchTerms:["insect","report"]},{title:"fas fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"far fa-building",searchTerms:["apartment","business","company","office","work"]},{title:"fas fa-bullhorn",searchTerms:["announcement","broadcast","louder","megaphone","share"]},{title:"fas fa-bullseye",searchTerms:["target"]},{title:"fas fa-burn",searchTerms:["energy"]},{title:"fab fa-buromobelexperte",searchTerms:[]},{title:"fas fa-bus",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-bus-alt",searchTerms:["machine","public transportation","transportation","vehicle"]},{title:"fas fa-business-time",searchTerms:["briefcase","business socks","clock","flight of the conchords","wednesday"]},{title:"fab fa-buysellads",searchTerms:[]},{title:"fas fa-calculator",searchTerms:[]},{title:"fas fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"far fa-calendar",searchTerms:["calendar-o","date","event","schedule","time","when"]},{title:"fas fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"far fa-calendar-alt",searchTerms:["calendar","date","event","schedule","time","when"]},{title:"fas fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"far fa-calendar-check",searchTerms:["accept","agree","appointment","confirm","correct","done","ok","select","success","todo"]},{title:"fas fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"far fa-calendar-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"far fa-calendar-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"far fa-calendar-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-camera",searchTerms:["photo","picture","record"]},{title:"fas fa-camera-retro",searchTerms:["photo","picture","record"]},{title:"fas fa-campground",searchTerms:["camping","fall","outdoors","seasonal","tent"]},{title:"fas fa-cannabis",searchTerms:["bud","chronic","drugs","endica","endo","ganja","marijuana","mary jane","pot","reefer","sativa","spliff","weed","whacky-tabacky"]},{title:"fas fa-capsules",searchTerms:["drugs","medicine"]},{title:"fas fa-car",searchTerms:["machine","transportation","vehicle"]},{title:"fas fa-car-alt",searchTerms:[]},{title:"fas fa-car-battery",searchTerms:[]},{title:"fas fa-car-crash",searchTerms:[]},{title:"fas fa-car-side",searchTerms:[]},{title:"fas fa-caret-down",searchTerms:["arrow","dropdown","menu","more","triangle down"]},{title:"fas fa-caret-left",searchTerms:["arrow","back","previous","triangle left"]},{title:"fas fa-caret-right",searchTerms:["arrow","forward","next","triangle right"]},{title:"fas fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"far fa-caret-square-down",searchTerms:["caret-square-o-down","dropdown","menu","more"]},{title:"fas fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"far fa-caret-square-left",searchTerms:["back","caret-square-o-left","previous"]},{title:"fas fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"far fa-caret-square-right",searchTerms:["caret-square-o-right","forward","next"]},{title:"fas fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"far fa-caret-square-up",searchTerms:["caret-square-o-up"]},{title:"fas fa-caret-up",searchTerms:["arrow","triangle up"]},{title:"fas fa-cart-arrow-down",searchTerms:["shopping"]},{title:"fas fa-cart-plus",searchTerms:["add","create","new","positive","shopping"]},{title:"fas fa-cat",searchTerms:["feline","halloween","holiday","kitten","kitty","meow","pet"]},{title:"fab fa-cc-amazon-pay",searchTerms:[]},{title:"fab fa-cc-amex",searchTerms:["amex"]},{title:"fab fa-cc-apple-pay",searchTerms:[]},{title:"fab fa-cc-diners-club",searchTerms:[]},{title:"fab fa-cc-discover",searchTerms:[]},{title:"fab fa-cc-jcb",searchTerms:[]},{title:"fab fa-cc-mastercard",searchTerms:[]},{title:"fab fa-cc-paypal",searchTerms:[]},{title:"fab fa-cc-stripe",searchTerms:[]},{title:"fab fa-cc-visa",searchTerms:[]},{title:"fab fa-centercode",searchTerms:[]},{title:"fas fa-certificate",searchTerms:["badge","star"]},{title:"fas fa-chair",searchTerms:["furniture","seat"]},{title:"fas fa-chalkboard",searchTerms:["blackboard","learning","school","teaching","whiteboard","writing"]},{title:"fas fa-chalkboard-teacher",searchTerms:["blackboard","instructor","learning","professor","school","whiteboard","writing"]},{title:"fas fa-charging-station",searchTerms:[]},{title:"fas fa-chart-area",searchTerms:["analytics","area-chart","graph"]},{title:"fas fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"far fa-chart-bar",searchTerms:["analytics","bar-chart","graph"]},{title:"fas fa-chart-line",searchTerms:["activity","analytics","dashboard","graph","line-chart"]},{title:"fas fa-chart-pie",searchTerms:["analytics","graph","pie-chart"]},{title:"fas fa-check",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo","yes"]},{title:"fas fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-circle",searchTerms:["accept","agree","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-check-double",searchTerms:["accept","agree","checkmark","confirm","correct","done","notice","notification","notify","ok","select","success","tick","todo"]},{title:"fas fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"far fa-check-square",searchTerms:["accept","agree","checkmark","confirm","correct","done","ok","select","success","todo","yes"]},{title:"fas fa-chess",searchTerms:[]},{title:"fas fa-chess-bishop",searchTerms:[]},{title:"fas fa-chess-board",searchTerms:[]},{title:"fas fa-chess-king",searchTerms:[]},{title:"fas fa-chess-knight",searchTerms:[]},{title:"fas fa-chess-pawn",searchTerms:[]},{title:"fas fa-chess-queen",searchTerms:[]},{title:"fas fa-chess-rook",searchTerms:[]},{title:"fas fa-chevron-circle-down",searchTerms:["arrow","dropdown","menu","more"]},{title:"fas fa-chevron-circle-left",searchTerms:["arrow","back","previous"]},{title:"fas fa-chevron-circle-right",searchTerms:["arrow","forward","next"]},{title:"fas fa-chevron-circle-up",searchTerms:["arrow"]},{title:"fas fa-chevron-down",searchTerms:[]},{title:"fas fa-chevron-left",searchTerms:["back","bracket","previous"]},{title:"fas fa-chevron-right",searchTerms:["bracket","forward","next"]},{title:"fas fa-chevron-up",searchTerms:[]},{title:"fas fa-child",searchTerms:[]},{title:"fab fa-chrome",searchTerms:["browser"]},{title:"fas fa-church",searchTerms:["building","community","religion"]},{title:"fas fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"far fa-circle",searchTerms:["circle-thin","dot","notification"]},{title:"fas fa-circle-notch",searchTerms:["circle-o-notch"]},{title:"fas fa-city",searchTerms:["buildings","busy","skyscrapers","urban","windows"]},{title:"fas fa-clipboard",searchTerms:["paste"]},{title:"far fa-clipboard",searchTerms:["paste"]},{title:"fas fa-clipboard-check",searchTerms:["accept","agree","confirm","done","ok","select","success","todo","yes"]},{title:"fas fa-clipboard-list",searchTerms:["checklist","completed","done","finished","intinerary","ol","schedule","todo","ul"]},{title:"fas fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"far fa-clock",searchTerms:["date","late","schedule","timer","timestamp","watch"]},{title:"fas fa-clone",searchTerms:["copy","duplicate"]},{title:"far fa-clone",searchTerms:["copy","duplicate"]},{title:"fas fa-closed-captioning",searchTerms:["cc"]},{title:"far fa-closed-captioning",searchTerms:["cc"]},{title:"fas fa-cloud",searchTerms:["save"]},{title:"fas fa-cloud-download-alt",searchTerms:["import"]},{title:"fas fa-cloud-meatball",searchTerms:[]},{title:"fas fa-cloud-moon",searchTerms:["crescent","evening","halloween","holiday","lunar","night","sky"]},{title:"fas fa-cloud-moon-rain",searchTerms:[]},{title:"fas fa-cloud-rain",searchTerms:["precipitation"]},{title:"fas fa-cloud-showers-heavy",searchTerms:["precipitation","rain","storm"]},{title:"fas fa-cloud-sun",searchTerms:["day","daytime","fall","outdoors","seasonal"]},{title:"fas fa-cloud-sun-rain",searchTerms:[]},{title:"fas fa-cloud-upload-alt",searchTerms:["cloud-upload"]},{title:"fab fa-cloudscale",searchTerms:[]},{title:"fab fa-cloudsmith",searchTerms:[]},{title:"fab fa-cloudversify",searchTerms:[]},{title:"fas fa-cocktail",searchTerms:["alcohol","beverage","drink"]},{title:"fas fa-code",searchTerms:["brackets","html"]},{title:"fas fa-code-branch",searchTerms:["branch","code-fork","fork","git","github","rebase","svn","vcs","version"]},{title:"fab fa-codepen",searchTerms:[]},{title:"fab fa-codiepie",searchTerms:[]},{title:"fas fa-coffee",searchTerms:["beverage","breakfast","cafe","drink","fall","morning","mug","seasonal","tea"]},{title:"fas fa-cog",searchTerms:["settings"]},{title:"fas fa-cogs",searchTerms:["gears","settings"]},{title:"fas fa-coins",searchTerms:[]},{title:"fas fa-columns",searchTerms:["dashboard","panes","split"]},{title:"fas fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comment-alt",searchTerms:["bubble","chat","commenting","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comment-dollar",searchTerms:[]},{title:"fas fa-comment-dots",searchTerms:[]},{title:"far fa-comment-dots",searchTerms:[]},{title:"fas fa-comment-slash",searchTerms:[]},{title:"fas fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"far fa-comments",searchTerms:["bubble","chat","conversation","feedback","message","note","notification","sms","speech","texting"]},{title:"fas fa-comments-dollar",searchTerms:[]},{title:"fas fa-compact-disc",searchTerms:["bluray","cd","disc","media"]},{title:"fas fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"far fa-compass",searchTerms:["directory","location","menu","safari"]},{title:"fas fa-compress",searchTerms:["collapse","combine","contract","merge","smaller"]},{title:"fas fa-concierge-bell",searchTerms:["attention","hotel","service","support"]},{title:"fab fa-connectdevelop",searchTerms:[]},{title:"fab fa-contao",searchTerms:[]},{title:"fas fa-cookie",searchTerms:["baked good","chips","food","snack","sweet","treat"]},{title:"fas fa-cookie-bite",searchTerms:["baked good","bitten","chips","eating","food","snack","sweet","treat"]},{title:"fas fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"far fa-copy",searchTerms:["clone","duplicate","file","files-o"]},{title:"fas fa-copyright",searchTerms:[]},{title:"far fa-copyright",searchTerms:[]},{title:"fas fa-couch",searchTerms:["furniture","sofa"]},{title:"fab fa-cpanel",searchTerms:[]},{title:"fab fa-creative-commons",searchTerms:[]},{title:"fab fa-creative-commons-by",searchTerms:[]},{title:"fab fa-creative-commons-nc",searchTerms:[]},{title:"fab fa-creative-commons-nc-eu",searchTerms:[]},{title:"fab fa-creative-commons-nc-jp",searchTerms:[]},{title:"fab fa-creative-commons-nd",searchTerms:[]},{title:"fab fa-creative-commons-pd",searchTerms:[]},{title:"fab fa-creative-commons-pd-alt",searchTerms:[]},{title:"fab fa-creative-commons-remix",searchTerms:[]},{title:"fab fa-creative-commons-sa",searchTerms:[]},{title:"fab fa-creative-commons-sampling",searchTerms:[]},{title:"fab fa-creative-commons-sampling-plus",searchTerms:[]},{title:"fab fa-creative-commons-share",searchTerms:[]},{title:"fab fa-creative-commons-zero",searchTerms:[]},{title:"fas fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"far fa-credit-card",searchTerms:["buy","checkout","credit-card-alt","debit","money","payment","purchase"]},{title:"fab fa-critical-role",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-crop",searchTerms:["design"]},{title:"fas fa-crop-alt",searchTerms:[]},{title:"fas fa-cross",searchTerms:["catholicism","christianity"]},{title:"fas fa-crosshairs",searchTerms:["gpd","picker","position"]},{title:"fas fa-crow",searchTerms:["bird","bullfrog","fauna","halloween","holiday","toad"]},{title:"fas fa-crown",searchTerms:[]},{title:"fab fa-css3",searchTerms:["code"]},{title:"fab fa-css3-alt",searchTerms:[]},{title:"fas fa-cube",searchTerms:["package"]},{title:"fas fa-cubes",searchTerms:["packages"]},{title:"fas fa-cut",searchTerms:["scissors"]},{title:"fab fa-cuttlefish",searchTerms:[]},{title:"fab fa-d-and-d",searchTerms:[]},{title:"fab fa-d-and-d-beyond",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","gaming","tabletop"]},{title:"fab fa-dashcube",searchTerms:[]},{title:"fas fa-database",searchTerms:[]},{title:"fas fa-deaf",searchTerms:[]},{title:"fab fa-delicious",searchTerms:[]},{title:"fas fa-democrat",searchTerms:["american","democratic party","donkey","election","left","left-wing","liberal","politics","usa"]},{title:"fab fa-deploydog",searchTerms:[]},{title:"fab fa-deskpro",searchTerms:[]},{title:"fas fa-desktop",searchTerms:["computer","cpu","demo","desktop","device","machine","monitor","pc","screen"]},{title:"fab fa-dev",searchTerms:[]},{title:"fab fa-deviantart",searchTerms:[]},{title:"fas fa-dharmachakra",searchTerms:["buddhism","buddhist","wheel of dharma"]},{title:"fas fa-diagnoses",searchTerms:[]},{title:"fas fa-dice",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-d20",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-d6",searchTerms:["Dungeons & Dragons","chance","d&d","dnd","fantasy","gambling","game","roll"]},{title:"fas fa-dice-five",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-four",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-one",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-six",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-three",searchTerms:["chance","gambling","game","roll"]},{title:"fas fa-dice-two",searchTerms:["chance","gambling","game","roll"]},{title:"fab fa-digg",searchTerms:[]},{title:"fab fa-digital-ocean",searchTerms:[]},{title:"fas fa-digital-tachograph",searchTerms:[]},{title:"fas fa-directions",searchTerms:[]},{title:"fab fa-discord",searchTerms:[]},{title:"fab fa-discourse",searchTerms:[]},{title:"fas fa-divide",searchTerms:[]},{title:"fas fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"far fa-dizzy",searchTerms:["dazed","disapprove","emoticon","face"]},{title:"fas fa-dna",searchTerms:["double helix","helix"]},{title:"fab fa-dochub",searchTerms:[]},{title:"fab fa-docker",searchTerms:[]},{title:"fas fa-dog",searchTerms:["canine","fauna","mammmal","pet","pooch","puppy","woof"]},{title:"fas fa-dollar-sign",searchTerms:["$","dollar-sign","money","price","usd"]},{title:"fas fa-dolly",searchTerms:[]},{title:"fas fa-dolly-flatbed",searchTerms:[]},{title:"fas fa-donate",searchTerms:["generosity","give"]},{title:"fas fa-door-closed",searchTerms:[]},{title:"fas fa-door-open",searchTerms:[]},{title:"fas fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"far fa-dot-circle",searchTerms:["bullseye","notification","target"]},{title:"fas fa-dove",searchTerms:["bird","fauna","flying","peace"]},{title:"fas fa-download",searchTerms:["import"]},{title:"fab fa-draft2digital",searchTerms:[]},{title:"fas fa-drafting-compass",searchTerms:["mechanical drawing","plot","plotting"]},{title:"fas fa-dragon",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy"]},{title:"fas fa-draw-polygon",searchTerms:[]},{title:"fab fa-dribbble",searchTerms:[]},{title:"fab fa-dribbble-square",searchTerms:[]},{title:"fab fa-dropbox",searchTerms:[]},{title:"fas fa-drum",searchTerms:["instrument","music","percussion","snare","sound"]},{title:"fas fa-drum-steelpan",searchTerms:["calypso","instrument","music","percussion","reggae","snare","sound","steel","tropical"]},{title:"fas fa-drumstick-bite",searchTerms:[]},{title:"fab fa-drupal",searchTerms:[]},{title:"fas fa-dumbbell",searchTerms:["exercise","gym","strength","weight","weight-lifting"]},{title:"fas fa-dungeon",searchTerms:["Dungeons & Dragons","d&d","dnd","door","entrance","fantasy","gate"]},{title:"fab fa-dyalog",searchTerms:[]},{title:"fab fa-earlybirds",searchTerms:[]},{title:"fab fa-ebay",searchTerms:[]},{title:"fab fa-edge",searchTerms:["browser","ie"]},{title:"fas fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"far fa-edit",searchTerms:["edit","pen","pencil","update","write"]},{title:"fas fa-eject",searchTerms:[]},{title:"fab fa-elementor",searchTerms:[]},{title:"fas fa-ellipsis-h",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fas fa-ellipsis-v",searchTerms:["dots","drag","kebab","list","menu","nav","navigation","ol","reorder","settings","ul"]},{title:"fab fa-ello",searchTerms:[]},{title:"fab fa-ember",searchTerms:[]},{title:"fab fa-empire",searchTerms:[]},{title:"fas fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"far fa-envelope-open",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fas fa-envelope-open-text",searchTerms:[]},{title:"fas fa-envelope-square",searchTerms:["e-mail","email","letter","mail","message","notification","support"]},{title:"fab fa-envira",searchTerms:["leaf"]},{title:"fas fa-equals",searchTerms:[]},{title:"fas fa-eraser",searchTerms:["delete","remove"]},{title:"fab fa-erlang",searchTerms:[]},{title:"fab fa-ethereum",searchTerms:[]},{title:"fab fa-etsy",searchTerms:[]},{title:"fas fa-euro-sign",searchTerms:["eur"]},{title:"fas fa-exchange-alt",searchTerms:["arrow","arrows","exchange","reciprocate","return","swap","transfer"]},{title:"fas fa-exclamation",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-circle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-exclamation-triangle",searchTerms:["alert","danger","error","important","notice","notification","notify","problem","warning"]},{title:"fas fa-expand",searchTerms:["bigger","enlarge","resize"]},{title:"fas fa-expand-arrows-alt",searchTerms:["arrows-alt","bigger","enlarge","move","resize"]},{title:"fab fa-expeditedssl",searchTerms:[]},{title:"fas fa-external-link-alt",searchTerms:["external-link","new","open"]},{title:"fas fa-external-link-square-alt",searchTerms:["external-link-square","new","open"]},{title:"fas fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"far fa-eye",searchTerms:["optic","see","seen","show","sight","views","visible"]},{title:"fas fa-eye-dropper",searchTerms:["eyedropper"]},{title:"fas fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"far fa-eye-slash",searchTerms:["blind","hide","show","toggle","unseen","views","visible","visiblity"]},{title:"fab fa-facebook",searchTerms:["facebook-official","social network"]},{title:"fab fa-facebook-f",searchTerms:["facebook"]},{title:"fab fa-facebook-messenger",searchTerms:[]},{title:"fab fa-facebook-square",searchTerms:["social network"]},{title:"fab fa-fantasy-flight-games",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fas fa-fast-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-fast-forward",searchTerms:["end","last","next"]},{title:"fas fa-fax",searchTerms:[]},{title:"fas fa-feather",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-feather-alt",searchTerms:["bird","light","plucked","quill"]},{title:"fas fa-female",searchTerms:["human","person","profile","user","woman"]},{title:"fas fa-fighter-jet",searchTerms:["airplane","fast","fly","goose","maverick","plane","quick","top gun","transportation","travel"]},{title:"fas fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"far fa-file",searchTerms:["document","new","page","pdf","resume"]},{title:"fas fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"far fa-file-alt",searchTerms:["document","file-text","invoice","new","page","pdf"]},{title:"fas fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"far fa-file-archive",searchTerms:[".zip","bundle","compress","compression","download","zip"]},{title:"fas fa-file-audio",searchTerms:[]},{title:"far fa-file-audio",searchTerms:[]},{title:"fas fa-file-code",searchTerms:[]},{title:"far fa-file-code",searchTerms:[]},{title:"fas fa-file-contract",searchTerms:["agreement","binding","document","legal","signature"]},{title:"fas fa-file-csv",searchTerms:["spreadsheets"]},{title:"fas fa-file-download",searchTerms:[]},{title:"fas fa-file-excel",searchTerms:[]},{title:"far fa-file-excel",searchTerms:[]},{title:"fas fa-file-export",searchTerms:[]},{title:"fas fa-file-image",searchTerms:[]},{title:"far fa-file-image",searchTerms:[]},{title:"fas fa-file-import",searchTerms:[]},{title:"fas fa-file-invoice",searchTerms:["bill","document","receipt"]},{title:"fas fa-file-invoice-dollar",searchTerms:["$","bill","document","dollar-sign","money","receipt","usd"]},{title:"fas fa-file-medical",searchTerms:[]},{title:"fas fa-file-medical-alt",searchTerms:[]},{title:"fas fa-file-pdf",searchTerms:[]},{title:"far fa-file-pdf",searchTerms:[]},{title:"fas fa-file-powerpoint",searchTerms:[]},{title:"far fa-file-powerpoint",searchTerms:[]},{title:"fas fa-file-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-file-signature",searchTerms:["John Hancock","contract","document","name"]},{title:"fas fa-file-upload",searchTerms:[]},{title:"fas fa-file-video",searchTerms:[]},{title:"far fa-file-video",searchTerms:[]},{title:"fas fa-file-word",searchTerms:[]},{title:"far fa-file-word",searchTerms:[]},{title:"fas fa-fill",searchTerms:["bucket","color","paint","paint bucket"]},{title:"fas fa-fill-drip",searchTerms:["bucket","color","drop","paint","paint bucket","spill"]},{title:"fas fa-film",searchTerms:["movie"]},{title:"fas fa-filter",searchTerms:["funnel","options"]},{title:"fas fa-fingerprint",searchTerms:["human","id","identification","lock","smudge","touch","unique","unlock"]},{title:"fas fa-fire",searchTerms:["caliente","flame","heat","hot","popular"]},{title:"fas fa-fire-extinguisher",searchTerms:[]},{title:"fab fa-firefox",searchTerms:["browser"]},{title:"fas fa-first-aid",searchTerms:[]},{title:"fab fa-first-order",searchTerms:[]},{title:"fab fa-first-order-alt",searchTerms:[]},{title:"fab fa-firstdraft",searchTerms:[]},{title:"fas fa-fish",searchTerms:["fauna","gold","swimming"]},{title:"fas fa-fist-raised",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","hand","ki","monk","resist","strength","unarmed combat"]},{title:"fas fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"far fa-flag",searchTerms:["country","notice","notification","notify","pole","report","symbol"]},{title:"fas fa-flag-checkered",searchTerms:["notice","notification","notify","pole","racing","report","symbol"]},{title:"fas fa-flag-usa",searchTerms:["betsy ross","country","old glory","stars","stripes","symbol"]},{title:"fas fa-flask",searchTerms:["beaker","experimental","labs","science"]},{title:"fab fa-flickr",searchTerms:[]},{title:"fab fa-flipboard",searchTerms:[]},{title:"fas fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"far fa-flushed",searchTerms:["embarrassed","emoticon","face"]},{title:"fab fa-fly",searchTerms:[]},{title:"fas fa-folder",searchTerms:[]},{title:"far fa-folder",searchTerms:[]},{title:"fas fa-folder-minus",searchTerms:["archive","delete","negative","remove"]},{title:"fas fa-folder-open",searchTerms:[]},{title:"far fa-folder-open",searchTerms:[]},{title:"fas fa-folder-plus",searchTerms:["add","create","new","positive"]},{title:"fas fa-font",searchTerms:["text"]},{title:"fab fa-font-awesome",searchTerms:["meanpath"]},{title:"fab fa-font-awesome-alt",searchTerms:[]},{title:"fab fa-font-awesome-flag",searchTerms:[]},{title:"far fa-font-awesome-logo-full",searchTerms:[]},{title:"fas fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-font-awesome-logo-full",searchTerms:[]},{title:"fab fa-fonticons",searchTerms:[]},{title:"fab fa-fonticons-fi",searchTerms:[]},{title:"fas fa-football-ball",searchTerms:["fall","pigskin","seasonal"]},{title:"fab fa-fort-awesome",searchTerms:["castle"]},{title:"fab fa-fort-awesome-alt",searchTerms:["castle"]},{title:"fab fa-forumbee",searchTerms:[]},{title:"fas fa-forward",searchTerms:["forward","next"]},{title:"fab fa-foursquare",searchTerms:[]},{title:"fab fa-free-code-camp",searchTerms:[]},{title:"fab fa-freebsd",searchTerms:[]},{title:"fas fa-frog",searchTerms:["amphibian","bullfrog","fauna","hop","kermit","kiss","prince","ribbit","toad","wart"]},{title:"fas fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fas fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"far fa-frown-open",searchTerms:["disapprove","emoticon","face","rating","sad"]},{title:"fab fa-fulcrum",searchTerms:[]},{title:"fas fa-funnel-dollar",searchTerms:[]},{title:"fas fa-futbol",searchTerms:["ball","football","soccer"]},{title:"far fa-futbol",searchTerms:["ball","football","soccer"]},{title:"fab fa-galactic-republic",searchTerms:["politics","star wars"]},{title:"fab fa-galactic-senate",searchTerms:["star wars"]},{title:"fas fa-gamepad",searchTerms:["controller"]},{title:"fas fa-gas-pump",searchTerms:[]},{title:"fas fa-gavel",searchTerms:["hammer","judge","lawyer","opinion"]},{title:"fas fa-gem",searchTerms:["diamond"]},{title:"far fa-gem",searchTerms:["diamond"]},{title:"fas fa-genderless",searchTerms:[]},{title:"fab fa-get-pocket",searchTerms:[]},{title:"fab fa-gg",searchTerms:[]},{title:"fab fa-gg-circle",searchTerms:[]},{title:"fas fa-ghost",searchTerms:["apparition","blinky","clyde","floating","halloween","holiday","inky","pinky","spirit"]},{title:"fas fa-gift",searchTerms:["generosity","giving","party","present","wrapped"]},{title:"fab fa-git",searchTerms:[]},{title:"fab fa-git-square",searchTerms:[]},{title:"fab fa-github",searchTerms:["octocat"]},{title:"fab fa-github-alt",searchTerms:["octocat"]},{title:"fab fa-github-square",searchTerms:["octocat"]},{title:"fab fa-gitkraken",searchTerms:[]},{title:"fab fa-gitlab",searchTerms:["Axosoft"]},{title:"fab fa-gitter",searchTerms:[]},{title:"fas fa-glass-martini",searchTerms:["alcohol","bar","beverage","drink","glass","liquor","martini"]},{title:"fas fa-glass-martini-alt",searchTerms:[]},{title:"fas fa-glasses",searchTerms:["foureyes","hipster","nerd","reading","sight","spectacles"]},{title:"fab fa-glide",searchTerms:[]},{title:"fab fa-glide-g",searchTerms:[]},{title:"fas fa-globe",searchTerms:["all","coordinates","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-africa",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-americas",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fas fa-globe-asia",searchTerms:["all","country","earth","global","gps","language","localize","location","map","online","place","planet","translate","travel","world"]},{title:"fab fa-gofore",searchTerms:[]},{title:"fas fa-golf-ball",searchTerms:[]},{title:"fab fa-goodreads",searchTerms:[]},{title:"fab fa-goodreads-g",searchTerms:[]},{title:"fab fa-google",searchTerms:[]},{title:"fab fa-google-drive",searchTerms:[]},{title:"fab fa-google-play",searchTerms:[]},{title:"fab fa-google-plus",searchTerms:["google-plus-circle","google-plus-official"]},{title:"fab fa-google-plus-g",searchTerms:["google-plus","social network"]},{title:"fab fa-google-plus-square",searchTerms:["social network"]},{title:"fab fa-google-wallet",searchTerms:[]},{title:"fas fa-gopuram",searchTerms:["building","entrance","hinduism","temple","tower"]},{title:"fas fa-graduation-cap",searchTerms:["learning","school","student"]},{title:"fab fa-gratipay",searchTerms:["favorite","heart","like","love"]},{title:"fab fa-grav",searchTerms:[]},{title:"fas fa-greater-than",searchTerms:[]},{title:"fas fa-greater-than-equal",searchTerms:[]},{title:"fas fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"far fa-grimace",searchTerms:["cringe","emoticon","face"]},{title:"fas fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-alt",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-beam",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"far fa-grin-beam-sweat",searchTerms:["emoticon","face","smile"]},{title:"fas fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"far fa-grin-hearts",searchTerms:["emoticon","face","love","smile"]},{title:"fas fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"far fa-grin-squint",searchTerms:["emoticon","face","laugh","smile"]},{title:"fas fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"far fa-grin-squint-tears",searchTerms:["emoticon","face","happy","smile"]},{title:"fas fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"far fa-grin-stars",searchTerms:["emoticon","face","star-struck"]},{title:"fas fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tears",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-grin-tongue-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"far fa-grin-wink",searchTerms:["emoticon","face","flirt","laugh","smile"]},{title:"fas fa-grip-horizontal",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fas fa-grip-vertical",searchTerms:["affordance","drag","drop","grab","handle"]},{title:"fab fa-gripfire",searchTerms:[]},{title:"fab fa-grunt",searchTerms:[]},{title:"fab fa-gulp",searchTerms:[]},{title:"fas fa-h-square",searchTerms:["hospital","hotel"]},{title:"fab fa-hacker-news",searchTerms:[]},{title:"fab fa-hacker-news-square",searchTerms:[]},{title:"fab fa-hackerrank",searchTerms:[]},{title:"fas fa-hammer",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fas fa-hamsa",searchTerms:["amulet","christianity","islam","jewish","judaism","muslim","protection"]},{title:"fas fa-hand-holding",searchTerms:[]},{title:"fas fa-hand-holding-heart",searchTerms:[]},{title:"fas fa-hand-holding-usd",searchTerms:["$","dollar sign","donation","giving","money","price"]},{title:"fas fa-hand-lizard",searchTerms:[]},{title:"far fa-hand-lizard",searchTerms:[]},{title:"fas fa-hand-paper",searchTerms:["stop"]},{title:"far fa-hand-paper",searchTerms:["stop"]},{title:"fas fa-hand-peace",searchTerms:[]},{title:"far fa-hand-peace",searchTerms:[]},{title:"fas fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"far fa-hand-point-down",searchTerms:["finger","hand-o-down","point"]},{title:"fas fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"far fa-hand-point-left",searchTerms:["back","finger","hand-o-left","left","point","previous"]},{title:"fas fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"far fa-hand-point-right",searchTerms:["finger","forward","hand-o-right","next","point","right"]},{title:"fas fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"far fa-hand-point-up",searchTerms:["finger","hand-o-up","point"]},{title:"fas fa-hand-pointer",searchTerms:["select"]},{title:"far fa-hand-pointer",searchTerms:["select"]},{title:"fas fa-hand-rock",searchTerms:[]},{title:"far fa-hand-rock",searchTerms:[]},{title:"fas fa-hand-scissors",searchTerms:[]},{title:"far fa-hand-scissors",searchTerms:[]},{title:"fas fa-hand-spock",searchTerms:[]},{title:"far fa-hand-spock",searchTerms:[]},{title:"fas fa-hands",searchTerms:[]},{title:"fas fa-hands-helping",searchTerms:["aid","assistance","partnership","volunteering"]},{title:"fas fa-handshake",searchTerms:["greeting","partnership"]},{title:"far fa-handshake",searchTerms:["greeting","partnership"]},{title:"fas fa-hanukiah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-hashtag",searchTerms:[]},{title:"fas fa-hat-wizard",searchTerms:["Dungeons & Dragons","buckle","cloth","clothing","d&d","dnd","fantasy","halloween","holiday","mage","magic","pointy","witch"]},{title:"fas fa-haykal",searchTerms:["bahai","bahá'í","star"]},{title:"fas fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"far fa-hdd",searchTerms:["cpu","hard drive","harddrive","machine","save","storage"]},{title:"fas fa-heading",searchTerms:["header"]},{title:"fas fa-headphones",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headphones-alt",searchTerms:["audio","listen","music","sound","speaker"]},{title:"fas fa-headset",searchTerms:["audio","gamer","gaming","listen","live chat","microphone","shot caller","sound","support","telemarketer"]},{title:"fas fa-heart",searchTerms:["favorite","like","love"]},{title:"far fa-heart",searchTerms:["favorite","like","love"]},{title:"fas fa-heartbeat",searchTerms:["ekg","lifeline","vital signs"]},{title:"fas fa-helicopter",searchTerms:["airwolf","apache","chopper","flight","fly"]},{title:"fas fa-highlighter",searchTerms:["edit","marker","sharpie","update","write"]},{title:"fas fa-hiking",searchTerms:["activity","backpack","fall","fitness","outdoors","seasonal","walking"]},{title:"fas fa-hippo",searchTerms:["fauna","hungry","mammmal"]},{title:"fab fa-hips",searchTerms:[]},{title:"fab fa-hire-a-helper",searchTerms:[]},{title:"fas fa-history",searchTerms:[]},{title:"fas fa-hockey-puck",searchTerms:[]},{title:"fas fa-home",searchTerms:["house","main"]},{title:"fab fa-hooli",searchTerms:[]},{title:"fab fa-hornbill",searchTerms:[]},{title:"fas fa-horse",searchTerms:["equus","fauna","mammmal","neigh"]},{title:"fas fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"far fa-hospital",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-alt",searchTerms:["building","emergency room","medical center"]},{title:"fas fa-hospital-symbol",searchTerms:[]},{title:"fas fa-hot-tub",searchTerms:[]},{title:"fas fa-hotel",searchTerms:["building","lodging"]},{title:"fab fa-hotjar",searchTerms:[]},{title:"fas fa-hourglass",searchTerms:[]},{title:"far fa-hourglass",searchTerms:[]},{title:"fas fa-hourglass-end",searchTerms:[]},{title:"fas fa-hourglass-half",searchTerms:[]},{title:"fas fa-hourglass-start",searchTerms:[]},{title:"fas fa-house-damage",searchTerms:["devastation","home"]},{title:"fab fa-houzz",searchTerms:[]},{title:"fas fa-hryvnia",searchTerms:["money"]},{title:"fab fa-html5",searchTerms:[]},{title:"fab fa-hubspot",searchTerms:[]},{title:"fas fa-i-cursor",searchTerms:[]},{title:"fas fa-id-badge",searchTerms:[]},{title:"far fa-id-badge",searchTerms:[]},{title:"fas fa-id-card",searchTerms:["document","identification","issued"]},{title:"far fa-id-card",searchTerms:["document","identification","issued"]},{title:"fas fa-id-card-alt",searchTerms:["demographics"]},{title:"fas fa-image",searchTerms:["album","photo","picture"]},{title:"far fa-image",searchTerms:["album","photo","picture"]},{title:"fas fa-images",searchTerms:["album","photo","picture"]},{title:"far fa-images",searchTerms:["album","photo","picture"]},{title:"fab fa-imdb",searchTerms:[]},{title:"fas fa-inbox",searchTerms:[]},{title:"fas fa-indent",searchTerms:[]},{title:"fas fa-industry",searchTerms:["factory","manufacturing"]},{title:"fas fa-infinity",searchTerms:[]},{title:"fas fa-info",searchTerms:["details","help","information","more"]},{title:"fas fa-info-circle",searchTerms:["details","help","information","more"]},{title:"fab fa-instagram",searchTerms:[]},{title:"fab fa-internet-explorer",searchTerms:["browser","ie"]},{title:"fab fa-ioxhost",searchTerms:[]},{title:"fas fa-italic",searchTerms:["italics"]},{title:"fab fa-itunes",searchTerms:[]},{title:"fab fa-itunes-note",searchTerms:[]},{title:"fab fa-java",searchTerms:[]},{title:"fas fa-jedi",searchTerms:["star wars"]},{title:"fab fa-jedi-order",searchTerms:["star wars"]},{title:"fab fa-jenkins",searchTerms:[]},{title:"fab fa-joget",searchTerms:[]},{title:"fas fa-joint",searchTerms:["blunt","cannabis","doobie","drugs","marijuana","roach","smoke","smoking","spliff"]},{title:"fab fa-joomla",searchTerms:[]},{title:"fas fa-journal-whills",searchTerms:["book","jedi","star wars","the force"]},{title:"fab fa-js",searchTerms:[]},{title:"fab fa-js-square",searchTerms:[]},{title:"fab fa-jsfiddle",searchTerms:[]},{title:"fas fa-kaaba",searchTerms:["building","cube","islam","muslim"]},{title:"fab fa-kaggle",searchTerms:[]},{title:"fas fa-key",searchTerms:["password","unlock"]},{title:"fab fa-keybase",searchTerms:[]},{title:"fas fa-keyboard",searchTerms:["input","type"]},{title:"far fa-keyboard",searchTerms:["input","type"]},{title:"fab fa-keycdn",searchTerms:[]},{title:"fas fa-khanda",searchTerms:["chakkar","sikh","sikhism","sword"]},{title:"fab fa-kickstarter",searchTerms:[]},{title:"fab fa-kickstarter-k",searchTerms:[]},{title:"fas fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-beam",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"far fa-kiss-wink-heart",searchTerms:["beso","emoticon","face","love","smooch"]},{title:"fas fa-kiwi-bird",searchTerms:["bird","fauna"]},{title:"fab fa-korvue",searchTerms:[]},{title:"fas fa-landmark",searchTerms:["building","historic","memoroable","politics"]},{title:"fas fa-language",searchTerms:["dialect","idiom","localize","speech","translate","vernacular"]},{title:"fas fa-laptop",searchTerms:["computer","cpu","dell","demo","device","dude you're getting","mac","macbook","machine","pc"]},{title:"fas fa-laptop-code",searchTerms:[]},{title:"fab fa-laravel",searchTerms:[]},{title:"fab fa-lastfm",searchTerms:[]},{title:"fab fa-lastfm-square",searchTerms:[]},{title:"fas fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"far fa-laugh",searchTerms:["LOL","emoticon","face","laugh"]},{title:"fas fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-beam",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-squint",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"far fa-laugh-wink",searchTerms:["LOL","emoticon","face"]},{title:"fas fa-layer-group",searchTerms:["layers"]},{title:"fas fa-leaf",searchTerms:["eco","flora","nature","plant"]},{title:"fab fa-leanpub",searchTerms:[]},{title:"fas fa-lemon",searchTerms:["food"]},{title:"far fa-lemon",searchTerms:["food"]},{title:"fab fa-less",searchTerms:[]},{title:"fas fa-less-than",searchTerms:[]},{title:"fas fa-less-than-equal",searchTerms:[]},{title:"fas fa-level-down-alt",searchTerms:["level-down"]},{title:"fas fa-level-up-alt",searchTerms:["level-up"]},{title:"fas fa-life-ring",searchTerms:["support"]},{title:"far fa-life-ring",searchTerms:["support"]},{title:"fas fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"far fa-lightbulb",searchTerms:["idea","inspiration"]},{title:"fab fa-line",searchTerms:[]},{title:"fas fa-link",searchTerms:["chain"]},{title:"fab fa-linkedin",searchTerms:["linkedin-square"]},{title:"fab fa-linkedin-in",searchTerms:["linkedin"]},{title:"fab fa-linode",searchTerms:[]},{title:"fab fa-linux",searchTerms:["tux"]},{title:"fas fa-lira-sign",searchTerms:["try","turkish"]},{title:"fas fa-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"far fa-list-alt",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fas fa-list-ol",searchTerms:["checklist","list","numbers","ol","todo","ul"]},{title:"fas fa-list-ul",searchTerms:["checklist","list","ol","todo","ul"]},{title:"fas fa-location-arrow",searchTerms:["address","coordinates","gps","location","map","place","where"]},{title:"fas fa-lock",searchTerms:["admin","protect","security"]},{title:"fas fa-lock-open",searchTerms:["admin","lock","open","password","protect"]},{title:"fas fa-long-arrow-alt-down",searchTerms:["long-arrow-down"]},{title:"fas fa-long-arrow-alt-left",searchTerms:["back","long-arrow-left","previous"]},{title:"fas fa-long-arrow-alt-right",searchTerms:["long-arrow-right"]},{title:"fas fa-long-arrow-alt-up",searchTerms:["long-arrow-up"]},{title:"fas fa-low-vision",searchTerms:[]},{title:"fas fa-luggage-cart",searchTerms:[]},{title:"fab fa-lyft",searchTerms:[]},{title:"fab fa-magento",searchTerms:[]},{title:"fas fa-magic",searchTerms:["autocomplete","automatic","mage","magic","spell","witch","wizard"]},{title:"fas fa-magnet",searchTerms:[]},{title:"fas fa-mail-bulk",searchTerms:[]},{title:"fab fa-mailchimp",searchTerms:[]},{title:"fas fa-male",searchTerms:["human","man","person","profile","user"]},{title:"fab fa-mandalorian",searchTerms:[]},{title:"fas fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"far fa-map",searchTerms:["coordinates","location","paper","place","travel"]},{title:"fas fa-map-marked",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marked-alt",searchTerms:["address","coordinates","destination","gps","localize","location","map","paper","pin","place","point of interest","position","route","travel","where"]},{title:"fas fa-map-marker",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-marker-alt",searchTerms:["address","coordinates","gps","localize","location","map","pin","place","position","travel","where"]},{title:"fas fa-map-pin",searchTerms:["address","coordinates","gps","localize","location","map","marker","place","position","travel","where"]},{title:"fas fa-map-signs",searchTerms:[]},{title:"fab fa-markdown",searchTerms:[]},{title:"fas fa-marker",searchTerms:["edit","sharpie","update","write"]},{title:"fas fa-mars",searchTerms:["male"]},{title:"fas fa-mars-double",searchTerms:[]},{title:"fas fa-mars-stroke",searchTerms:[]},{title:"fas fa-mars-stroke-h",searchTerms:[]},{title:"fas fa-mars-stroke-v",searchTerms:[]},{title:"fas fa-mask",searchTerms:["costume","disguise","halloween","holiday","secret","super hero"]},{title:"fab fa-mastodon",searchTerms:[]},{title:"fab fa-maxcdn",searchTerms:[]},{title:"fas fa-medal",searchTerms:[]},{title:"fab fa-medapps",searchTerms:[]},{title:"fab fa-medium",searchTerms:[]},{title:"fab fa-medium-m",searchTerms:[]},{title:"fas fa-medkit",searchTerms:["first aid","firstaid","health","help","support"]},{title:"fab fa-medrt",searchTerms:[]},{title:"fab fa-meetup",searchTerms:[]},{title:"fab fa-megaport",searchTerms:[]},{title:"fas fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-blank",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"far fa-meh-rolling-eyes",searchTerms:["emoticon","face","neutral","rating"]},{title:"fas fa-memory",searchTerms:["DIMM","RAM"]},{title:"fas fa-menorah",searchTerms:["candle","hanukkah","jewish","judaism","light"]},{title:"fas fa-mercury",searchTerms:["transgender"]},{title:"fas fa-meteor",searchTerms:[]},{title:"fas fa-microchip",searchTerms:["cpu","processor"]},{title:"fas fa-microphone",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt",searchTerms:["record","sound","voice"]},{title:"fas fa-microphone-alt-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microphone-slash",searchTerms:["disable","mute","record","sound","voice"]},{title:"fas fa-microscope",searchTerms:[]},{title:"fab fa-microsoft",searchTerms:[]},{title:"fas fa-minus",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fas fa-minus-circle",searchTerms:["delete","hide","negative","remove","trash"]},{title:"fas fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"far fa-minus-square",searchTerms:["collapse","delete","hide","minify","negative","remove","trash"]},{title:"fab fa-mix",searchTerms:[]},{title:"fab fa-mixcloud",searchTerms:[]},{title:"fab fa-mizuni",searchTerms:[]},{title:"fas fa-mobile",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fas fa-mobile-alt",searchTerms:["apple","call","cell phone","cellphone","device","iphone","number","screen","telephone","text"]},{title:"fab fa-modx",searchTerms:[]},{title:"fab fa-monero",searchTerms:[]},{title:"fas fa-money-bill",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"far fa-money-bill-alt",searchTerms:["buy","cash","checkout","money","payment","price","purchase"]},{title:"fas fa-money-bill-wave",searchTerms:[]},{title:"fas fa-money-bill-wave-alt",searchTerms:[]},{title:"fas fa-money-check",searchTerms:["bank check","cheque"]},{title:"fas fa-money-check-alt",searchTerms:["bank check","cheque"]},{title:"fas fa-monument",searchTerms:["building","historic","memoroable"]},{title:"fas fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"far fa-moon",searchTerms:["contrast","crescent","darker","lunar","night"]},{title:"fas fa-mortar-pestle",searchTerms:["crush","culinary","grind","medical","mix","spices"]},{title:"fas fa-mosque",searchTerms:["building","islam","muslim"]},{title:"fas fa-motorcycle",searchTerms:["bike","machine","transportation","vehicle"]},{title:"fas fa-mountain",searchTerms:[]},{title:"fas fa-mouse-pointer",searchTerms:["select"]},{title:"fas fa-music",searchTerms:["note","sound"]},{title:"fab fa-napster",searchTerms:[]},{title:"fab fa-neos",searchTerms:[]},{title:"fas fa-network-wired",searchTerms:[]},{title:"fas fa-neuter",searchTerms:[]},{title:"fas fa-newspaper",searchTerms:["article","press"]},{title:"far fa-newspaper",searchTerms:["article","press"]},{title:"fab fa-nimblr",searchTerms:[]},{title:"fab fa-nintendo-switch",searchTerms:[]},{title:"fab fa-node",searchTerms:[]},{title:"fab fa-node-js",searchTerms:[]},{title:"fas fa-not-equal",searchTerms:[]},{title:"fas fa-notes-medical",searchTerms:[]},{title:"fab fa-npm",searchTerms:[]},{title:"fab fa-ns8",searchTerms:[]},{title:"fab fa-nutritionix",searchTerms:[]},{title:"fas fa-object-group",searchTerms:["design"]},{title:"far fa-object-group",searchTerms:["design"]},{title:"fas fa-object-ungroup",searchTerms:["design"]},{title:"far fa-object-ungroup",searchTerms:["design"]},{title:"fab fa-odnoklassniki",searchTerms:[]},{title:"fab fa-odnoklassniki-square",searchTerms:[]},{title:"fas fa-oil-can",searchTerms:[]},{title:"fab fa-old-republic",searchTerms:["politics","star wars"]},{title:"fas fa-om",searchTerms:["buddhism","hinduism","jainism","mantra"]},{title:"fab fa-opencart",searchTerms:[]},{title:"fab fa-openid",searchTerms:[]},{title:"fab fa-opera",searchTerms:[]},{title:"fab fa-optin-monster",searchTerms:[]},{title:"fab fa-osi",searchTerms:[]},{title:"fas fa-otter",searchTerms:["fauna","mammmal"]},{title:"fas fa-outdent",searchTerms:[]},{title:"fab fa-page4",searchTerms:[]},{title:"fab fa-pagelines",searchTerms:["eco","flora","leaf","leaves","nature","plant","tree"]},{title:"fas fa-paint-brush",searchTerms:[]},{title:"fas fa-paint-roller",searchTerms:["brush","painting","tool"]},{title:"fas fa-palette",searchTerms:["colors","painting"]},{title:"fab fa-palfed",searchTerms:[]},{title:"fas fa-pallet",searchTerms:[]},{title:"fas fa-paper-plane",searchTerms:[]},{title:"far fa-paper-plane",searchTerms:[]},{title:"fas fa-paperclip",searchTerms:["attachment"]},{title:"fas fa-parachute-box",searchTerms:["aid","assistance","rescue","supplies"]},{title:"fas fa-paragraph",searchTerms:[]},{title:"fas fa-parking",searchTerms:[]},{title:"fas fa-passport",searchTerms:["document","identification","issued"]},{title:"fas fa-pastafarianism",searchTerms:["agnosticism","atheism","flying spaghetti monster","fsm"]},{title:"fas fa-paste",searchTerms:["clipboard","copy"]},{title:"fab fa-patreon",searchTerms:[]},{title:"fas fa-pause",searchTerms:["wait"]},{title:"fas fa-pause-circle",searchTerms:[]},{title:"far fa-pause-circle",searchTerms:[]},{title:"fas fa-paw",searchTerms:["animal","pet"]},{title:"fab fa-paypal",searchTerms:[]},{title:"fas fa-peace",searchTerms:[]},{title:"fas fa-pen",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-alt",searchTerms:["design","edit","update","write"]},{title:"fas fa-pen-fancy",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-nib",searchTerms:["design","edit","fountain pen","update","write"]},{title:"fas fa-pen-square",searchTerms:["edit","pencil-square","update","write"]},{title:"fas fa-pencil-alt",searchTerms:["design","edit","pencil","update","write"]},{title:"fas fa-pencil-ruler",searchTerms:[]},{title:"fab fa-penny-arcade",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","pax","tabletop"]},{title:"fas fa-people-carry",searchTerms:["movers"]},{title:"fas fa-percent",searchTerms:[]},{title:"fas fa-percentage",searchTerms:[]},{title:"fab fa-periscope",searchTerms:[]},{title:"fas fa-person-booth",searchTerms:["changing","changing room","election","human","person","vote","voting"]},{title:"fab fa-phabricator",searchTerms:[]},{title:"fab fa-phoenix-framework",searchTerms:[]},{title:"fab fa-phoenix-squadron",searchTerms:[]},{title:"fas fa-phone",searchTerms:["call","earphone","number","support","telephone","voice"]},{title:"fas fa-phone-slash",searchTerms:[]},{title:"fas fa-phone-square",searchTerms:["call","number","support","telephone","voice"]},{title:"fas fa-phone-volume",searchTerms:["telephone","volume-control-phone"]},{title:"fab fa-php",searchTerms:[]},{title:"fab fa-pied-piper",searchTerms:[]},{title:"fab fa-pied-piper-alt",searchTerms:[]},{title:"fab fa-pied-piper-hat",searchTerms:["clothing"]},{title:"fab fa-pied-piper-pp",searchTerms:[]},{title:"fas fa-piggy-bank",searchTerms:["save","savings"]},{title:"fas fa-pills",searchTerms:["drugs","medicine"]},{title:"fab fa-pinterest",searchTerms:[]},{title:"fab fa-pinterest-p",searchTerms:[]},{title:"fab fa-pinterest-square",searchTerms:[]},{title:"fas fa-place-of-worship",searchTerms:[]},{title:"fas fa-plane",searchTerms:["airplane","destination","fly","location","mode","travel","trip"]},{title:"fas fa-plane-arrival",searchTerms:["airplane","arriving","destination","fly","land","landing","location","mode","travel","trip"]},{title:"fas fa-plane-departure",searchTerms:["airplane","departing","destination","fly","location","mode","take off","taking off","travel","trip"]},{title:"fas fa-play",searchTerms:["music","playing","sound","start"]},{title:"fas fa-play-circle",searchTerms:["playing","start"]},{title:"far fa-play-circle",searchTerms:["playing","start"]},{title:"fab fa-playstation",searchTerms:[]},{title:"fas fa-plug",searchTerms:["connect","online","power"]},{title:"fas fa-plus",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-circle",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"far fa-plus-square",searchTerms:["add","create","expand","new","positive"]},{title:"fas fa-podcast",searchTerms:[]},{title:"fas fa-poll",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poll-h",searchTerms:["results","survey","vote","voting"]},{title:"fas fa-poo",searchTerms:[]},{title:"fas fa-poo-storm",searchTerms:["mess","poop","shit"]},{title:"fas fa-poop",searchTerms:[]},{title:"fas fa-portrait",searchTerms:[]},{title:"fas fa-pound-sign",searchTerms:["gbp"]},{title:"fas fa-power-off",searchTerms:["on","reboot","restart"]},{title:"fas fa-pray",searchTerms:[]},{title:"fas fa-praying-hands",searchTerms:[]},{title:"fas fa-prescription",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-prescription-bottle-alt",searchTerms:["drugs","medical","medicine","rx"]},{title:"fas fa-print",searchTerms:[]},{title:"fas fa-procedures",searchTerms:[]},{title:"fab fa-product-hunt",searchTerms:[]},{title:"fas fa-project-diagram",searchTerms:[]},{title:"fab fa-pushed",searchTerms:[]},{title:"fas fa-puzzle-piece",searchTerms:["add-on","addon","section"]},{title:"fab fa-python",searchTerms:[]},{title:"fab fa-qq",searchTerms:[]},{title:"fas fa-qrcode",searchTerms:["scan"]},{title:"fas fa-question",searchTerms:["help","information","support","unknown"]},{title:"fas fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"far fa-question-circle",searchTerms:["help","information","support","unknown"]},{title:"fas fa-quidditch",searchTerms:[]},{title:"fab fa-quinscape",searchTerms:[]},{title:"fab fa-quora",searchTerms:[]},{title:"fas fa-quote-left",searchTerms:[]},{title:"fas fa-quote-right",searchTerms:[]},{title:"fas fa-quran",searchTerms:["book","islam","muslim"]},{title:"fab fa-r-project",searchTerms:[]},{title:"fas fa-rainbow",searchTerms:[]},{title:"fas fa-random",searchTerms:["shuffle","sort"]},{title:"fab fa-ravelry",searchTerms:[]},{title:"fab fa-react",searchTerms:[]},{title:"fab fa-reacteurope",searchTerms:[]},{title:"fab fa-readme",searchTerms:[]},{title:"fab fa-rebel",searchTerms:[]},{title:"fas fa-receipt",searchTerms:["check","invoice","table"]},{title:"fas fa-recycle",searchTerms:[]},{title:"fab fa-red-river",searchTerms:[]},{title:"fab fa-reddit",searchTerms:[]},{title:"fab fa-reddit-alien",searchTerms:[]},{title:"fab fa-reddit-square",searchTerms:[]},{title:"fas fa-redo",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-redo-alt",searchTerms:["forward","refresh","reload","repeat"]},{title:"fas fa-registered",searchTerms:[]},{title:"far fa-registered",searchTerms:[]},{title:"fab fa-renren",searchTerms:[]},{title:"fas fa-reply",searchTerms:[]},{title:"fas fa-reply-all",searchTerms:[]},{title:"fab fa-replyd",searchTerms:[]},{title:"fas fa-republican",searchTerms:["american","conservative","election","elephant","politics","republican party","right","right-wing","usa"]},{title:"fab fa-researchgate",searchTerms:[]},{title:"fab fa-resolving",searchTerms:[]},{title:"fas fa-retweet",searchTerms:["refresh","reload","share","swap"]},{title:"fab fa-rev",searchTerms:[]},{title:"fas fa-ribbon",searchTerms:["badge","cause","lapel","pin"]},{title:"fas fa-ring",searchTerms:["Dungeons & Dragons","Gollum","band","binding","d&d","dnd","fantasy","jewelry","precious"]},{title:"fas fa-road",searchTerms:["street"]},{title:"fas fa-robot",searchTerms:[]},{title:"fas fa-rocket",searchTerms:["app"]},{title:"fab fa-rocketchat",searchTerms:[]},{title:"fab fa-rockrms",searchTerms:[]},{title:"fas fa-route",searchTerms:[]},{title:"fas fa-rss",searchTerms:["blog"]},{title:"fas fa-rss-square",searchTerms:["blog","feed"]},{title:"fas fa-ruble-sign",searchTerms:["rub"]},{title:"fas fa-ruler",searchTerms:[]},{title:"fas fa-ruler-combined",searchTerms:[]},{title:"fas fa-ruler-horizontal",searchTerms:[]},{title:"fas fa-ruler-vertical",searchTerms:[]},{title:"fas fa-running",searchTerms:["jog","sprint"]},{title:"fas fa-rupee-sign",searchTerms:["indian","inr"]},{title:"fas fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-cry",searchTerms:["emoticon","face","tear","tears"]},{title:"fas fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"far fa-sad-tear",searchTerms:["emoticon","face","tear","tears"]},{title:"fab fa-safari",searchTerms:["browser"]},{title:"fab fa-sass",searchTerms:[]},{title:"fas fa-save",searchTerms:["floppy","floppy-o"]},{title:"far fa-save",searchTerms:["floppy","floppy-o"]},{title:"fab fa-schlix",searchTerms:[]},{title:"fas fa-school",searchTerms:[]},{title:"fas fa-screwdriver",searchTerms:["admin","fix","repair","settings","tool"]},{title:"fab fa-scribd",searchTerms:[]},{title:"fas fa-scroll",searchTerms:["Dungeons & Dragons","announcement","d&d","dnd","fantasy","paper"]},{title:"fas fa-search",searchTerms:["bigger","enlarge","magnify","preview","zoom"]},{title:"fas fa-search-dollar",searchTerms:[]},{title:"fas fa-search-location",searchTerms:[]},{title:"fas fa-search-minus",searchTerms:["minify","negative","smaller","zoom","zoom out"]},{title:"fas fa-search-plus",searchTerms:["bigger","enlarge","magnify","positive","zoom","zoom in"]},{title:"fab fa-searchengin",searchTerms:[]},{title:"fas fa-seedling",searchTerms:[]},{title:"fab fa-sellcast",searchTerms:["eercast"]},{title:"fab fa-sellsy",searchTerms:[]},{title:"fas fa-server",searchTerms:["cpu"]},{title:"fab fa-servicestack",searchTerms:[]},{title:"fas fa-shapes",searchTerms:["circle","square","triangle"]},{title:"fas fa-share",searchTerms:[]},{title:"fas fa-share-alt",searchTerms:[]},{title:"fas fa-share-alt-square",searchTerms:[]},{title:"fas fa-share-square",searchTerms:["send","social"]},{title:"far fa-share-square",searchTerms:["send","social"]},{title:"fas fa-shekel-sign",searchTerms:["ils"]},{title:"fas fa-shield-alt",searchTerms:["achievement","award","block","defend","security","winner"]},{title:"fas fa-ship",searchTerms:["boat","sea"]},{title:"fas fa-shipping-fast",searchTerms:[]},{title:"fab fa-shirtsinbulk",searchTerms:[]},{title:"fas fa-shoe-prints",searchTerms:["feet","footprints","steps"]},{title:"fas fa-shopping-bag",searchTerms:[]},{title:"fas fa-shopping-basket",searchTerms:[]},{title:"fas fa-shopping-cart",searchTerms:["buy","checkout","payment","purchase"]},{title:"fab fa-shopware",searchTerms:[]},{title:"fas fa-shower",searchTerms:[]},{title:"fas fa-shuttle-van",searchTerms:["machine","public-transportation","transportation","vehicle"]},{title:"fas fa-sign",searchTerms:[]},{title:"fas fa-sign-in-alt",searchTerms:["arrow","enter","join","log in","login","sign in","sign up","sign-in","signin","signup"]},{title:"fas fa-sign-language",searchTerms:[]},{title:"fas fa-sign-out-alt",searchTerms:["arrow","exit","leave","log out","logout","sign-out"]},{title:"fas fa-signal",searchTerms:["bars","graph","online","status"]},{title:"fas fa-signature",searchTerms:["John Hancock","cursive","name","writing"]},{title:"fab fa-simplybuilt",searchTerms:[]},{title:"fab fa-sistrix",searchTerms:[]},{title:"fas fa-sitemap",searchTerms:["directory","hierarchy","ia","information architecture","organization"]},{title:"fab fa-sith",searchTerms:[]},{title:"fas fa-skull",searchTerms:["bones","skeleton","yorick"]},{title:"fas fa-skull-crossbones",searchTerms:["Dungeons & Dragons","alert","bones","d&d","danger","dead","deadly","death","dnd","fantasy","halloween","holiday","jolly-roger","pirate","poison","skeleton","warning"]},{title:"fab fa-skyatlas",searchTerms:[]},{title:"fab fa-skype",searchTerms:[]},{title:"fab fa-slack",searchTerms:["anchor","hash","hashtag"]},{title:"fab fa-slack-hash",searchTerms:["anchor","hash","hashtag"]},{title:"fas fa-slash",searchTerms:[]},{title:"fas fa-sliders-h",searchTerms:["settings","sliders"]},{title:"fab fa-slideshare",searchTerms:[]},{title:"fas fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"far fa-smile",searchTerms:["approve","emoticon","face","happy","rating","satisfied"]},{title:"fas fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"far fa-smile-beam",searchTerms:["emoticon","face","happy","positive"]},{title:"fas fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"far fa-smile-wink",searchTerms:["emoticon","face","happy"]},{title:"fas fa-smog",searchTerms:["dragon"]},{title:"fas fa-smoking",searchTerms:["cigarette","nicotine","smoking status"]},{title:"fas fa-smoking-ban",searchTerms:["no smoking","non-smoking"]},{title:"fab fa-snapchat",searchTerms:[]},{title:"fab fa-snapchat-ghost",searchTerms:[]},{title:"fab fa-snapchat-square",searchTerms:[]},{title:"fas fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"far fa-snowflake",searchTerms:["precipitation","seasonal","winter"]},{title:"fas fa-socks",searchTerms:["business socks","business time","flight of the conchords","wednesday"]},{title:"fas fa-solar-panel",searchTerms:["clean","eco-friendly","energy","green","sun"]},{title:"fas fa-sort",searchTerms:["order"]},{title:"fas fa-sort-alpha-down",searchTerms:["sort-alpha-asc"]},{title:"fas fa-sort-alpha-up",searchTerms:["sort-alpha-desc"]},{title:"fas fa-sort-amount-down",searchTerms:["sort-amount-asc"]},{title:"fas fa-sort-amount-up",searchTerms:["sort-amount-desc"]},{title:"fas fa-sort-down",searchTerms:["arrow","descending","sort-desc"]},{title:"fas fa-sort-numeric-down",searchTerms:["numbers","sort-numeric-asc"]},{title:"fas fa-sort-numeric-up",searchTerms:["numbers","sort-numeric-desc"]},{title:"fas fa-sort-up",searchTerms:["arrow","ascending","sort-asc"]},{title:"fab fa-soundcloud",searchTerms:[]},{title:"fas fa-spa",searchTerms:["flora","mindfullness","plant","wellness"]},{title:"fas fa-space-shuttle",searchTerms:["astronaut","machine","nasa","rocket","transportation"]},{title:"fab fa-speakap",searchTerms:[]},{title:"fas fa-spider",searchTerms:["arachnid","bug","charlotte","crawl","eight","halloween","holiday"]},{title:"fas fa-spinner",searchTerms:["loading","progress"]},{title:"fas fa-splotch",searchTerms:[]},{title:"fab fa-spotify",searchTerms:[]},{title:"fas fa-spray-can",searchTerms:[]},{title:"fas fa-square",searchTerms:["block","box"]},{title:"far fa-square",searchTerms:["block","box"]},{title:"fas fa-square-full",searchTerms:[]},{title:"fas fa-square-root-alt",searchTerms:[]},{title:"fab fa-squarespace",searchTerms:[]},{title:"fab fa-stack-exchange",searchTerms:[]},{title:"fab fa-stack-overflow",searchTerms:[]},{title:"fas fa-stamp",searchTerms:[]},{title:"fas fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"far fa-star",searchTerms:["achievement","award","favorite","important","night","rating","score"]},{title:"fas fa-star-and-crescent",searchTerms:["islam","muslim"]},{title:"fas fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"far fa-star-half",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-half-alt",searchTerms:["achievement","award","rating","score","star-half-empty","star-half-full"]},{title:"fas fa-star-of-david",searchTerms:["jewish","judaism"]},{title:"fas fa-star-of-life",searchTerms:[]},{title:"fab fa-staylinked",searchTerms:[]},{title:"fab fa-steam",searchTerms:[]},{title:"fab fa-steam-square",searchTerms:[]},{title:"fab fa-steam-symbol",searchTerms:[]},{title:"fas fa-step-backward",searchTerms:["beginning","first","previous","rewind","start"]},{title:"fas fa-step-forward",searchTerms:["end","last","next"]},{title:"fas fa-stethoscope",searchTerms:[]},{title:"fab fa-sticker-mule",searchTerms:[]},{title:"fas fa-sticky-note",searchTerms:[]},{title:"far fa-sticky-note",searchTerms:[]},{title:"fas fa-stop",searchTerms:["block","box","square"]},{title:"fas fa-stop-circle",searchTerms:[]},{title:"far fa-stop-circle",searchTerms:[]},{title:"fas fa-stopwatch",searchTerms:["time"]},{title:"fas fa-store",searchTerms:[]},{title:"fas fa-store-alt",searchTerms:[]},{title:"fab fa-strava",searchTerms:[]},{title:"fas fa-stream",searchTerms:[]},{title:"fas fa-street-view",searchTerms:["map"]},{title:"fas fa-strikethrough",searchTerms:[]},{title:"fab fa-stripe",searchTerms:[]},{title:"fab fa-stripe-s",searchTerms:[]},{title:"fas fa-stroopwafel",searchTerms:["dessert","food","sweets","waffle"]},{title:"fab fa-studiovinari",searchTerms:[]},{title:"fab fa-stumbleupon",searchTerms:[]},{title:"fab fa-stumbleupon-circle",searchTerms:[]},{title:"fas fa-subscript",searchTerms:[]},{title:"fas fa-subway",searchTerms:["machine","railway","train","transportation","vehicle"]},{title:"fas fa-suitcase",searchTerms:["baggage","luggage","move","suitcase","travel","trip"]},{title:"fas fa-suitcase-rolling",searchTerms:[]},{title:"fas fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"far fa-sun",searchTerms:["brighten","contrast","day","lighter","sol","solar","star","weather"]},{title:"fab fa-superpowers",searchTerms:[]},{title:"fas fa-superscript",searchTerms:["exponential"]},{title:"fab fa-supple",searchTerms:[]},{title:"fas fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"far fa-surprise",searchTerms:["emoticon","face","shocked"]},{title:"fas fa-swatchbook",searchTerms:[]},{title:"fas fa-swimmer",searchTerms:["athlete","head","man","person","water"]},{title:"fas fa-swimming-pool",searchTerms:["ladder","recreation","water"]},{title:"fas fa-synagogue",searchTerms:["building","jewish","judaism","star of david","temple"]},{title:"fas fa-sync",searchTerms:["exchange","refresh","reload","rotate","swap"]},{title:"fas fa-sync-alt",searchTerms:["refresh","reload","rotate"]},{title:"fas fa-syringe",searchTerms:["immunizations","needle"]},{title:"fas fa-table",searchTerms:["data","excel","spreadsheet"]},{title:"fas fa-table-tennis",searchTerms:[]},{title:"fas fa-tablet",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablet-alt",searchTerms:["apple","device","ipad","kindle","screen"]},{title:"fas fa-tablets",searchTerms:["drugs","medicine"]},{title:"fas fa-tachometer-alt",searchTerms:["dashboard","tachometer"]},{title:"fas fa-tag",searchTerms:["label"]},{title:"fas fa-tags",searchTerms:["labels"]},{title:"fas fa-tape",searchTerms:[]},{title:"fas fa-tasks",searchTerms:["downloading","downloads","loading","progress","settings"]},{title:"fas fa-taxi",searchTerms:["cab","cabbie","car","car service","lyft","machine","transportation","uber","vehicle"]},{title:"fab fa-teamspeak",searchTerms:[]},{title:"fas fa-teeth",searchTerms:[]},{title:"fas fa-teeth-open",searchTerms:[]},{title:"fab fa-telegram",searchTerms:[]},{title:"fab fa-telegram-plane",searchTerms:[]},{title:"fas fa-temperature-high",searchTerms:["mercury","thermometer","warm"]},{title:"fas fa-temperature-low",searchTerms:["cool","mercury","thermometer"]},{title:"fab fa-tencent-weibo",searchTerms:[]},{title:"fas fa-terminal",searchTerms:["code","command","console","prompt"]},{title:"fas fa-text-height",searchTerms:[]},{title:"fas fa-text-width",searchTerms:[]},{title:"fas fa-th",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-large",searchTerms:["blocks","boxes","grid","squares"]},{title:"fas fa-th-list",searchTerms:["checklist","completed","done","finished","ol","todo","ul"]},{title:"fab fa-the-red-yeti",searchTerms:[]},{title:"fas fa-theater-masks",searchTerms:[]},{title:"fab fa-themeco",searchTerms:[]},{title:"fab fa-themeisle",searchTerms:[]},{title:"fas fa-thermometer",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-empty",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-full",searchTerms:["fever","mercury","status","temperature"]},{title:"fas fa-thermometer-half",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-quarter",searchTerms:["mercury","status","temperature"]},{title:"fas fa-thermometer-three-quarters",searchTerms:["mercury","status","temperature"]},{title:"fab fa-think-peaks",searchTerms:[]},{title:"fas fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"far fa-thumbs-down",searchTerms:["disagree","disapprove","dislike","hand","thumbs-o-down"]},{title:"fas fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"far fa-thumbs-up",searchTerms:["agree","approve","favorite","hand","like","ok","okay","success","thumbs-o-up","yes","you got it dude"]},{title:"fas fa-thumbtack",searchTerms:["coordinates","location","marker","pin","thumb-tack"]},{title:"fas fa-ticket-alt",searchTerms:["ticket"]},{title:"fas fa-times",searchTerms:["close","cross","error","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"far fa-times-circle",searchTerms:["close","cross","exit","incorrect","notice","notification","notify","problem","wrong","x"]},{title:"fas fa-tint",searchTerms:["drop","droplet","raindrop","waterdrop"]},{title:"fas fa-tint-slash",searchTerms:[]},{title:"fas fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"far fa-tired",searchTerms:["emoticon","face","grumpy"]},{title:"fas fa-toggle-off",searchTerms:["switch"]},{title:"fas fa-toggle-on",searchTerms:["switch"]},{title:"fas fa-toilet-paper",searchTerms:["bathroom","halloween","holiday","lavatory","prank","restroom","roll"]},{title:"fas fa-toolbox",searchTerms:["admin","container","fix","repair","settings","tools"]},{title:"fas fa-tooth",searchTerms:["bicuspid","dental","molar","mouth","teeth"]},{title:"fas fa-torah",searchTerms:["book","jewish","judaism"]},{title:"fas fa-torii-gate",searchTerms:["building","shintoism"]},{title:"fas fa-tractor",searchTerms:[]},{title:"fab fa-trade-federation",searchTerms:[]},{title:"fas fa-trademark",searchTerms:[]},{title:"fas fa-traffic-light",searchTerms:[]},{title:"fas fa-train",searchTerms:["bullet","locomotive","railway"]},{title:"fas fa-transgender",searchTerms:["intersex"]},{title:"fas fa-transgender-alt",searchTerms:[]},{title:"fas fa-trash",searchTerms:["delete","garbage","hide","remove"]},{title:"fas fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"far fa-trash-alt",searchTerms:["delete","garbage","hide","remove","trash","trash-o"]},{title:"fas fa-tree",searchTerms:["bark","fall","flora","forest","nature","plant","seasonal"]},{title:"fab fa-trello",searchTerms:[]},{title:"fab fa-tripadvisor",searchTerms:[]},{title:"fas fa-trophy",searchTerms:["achievement","award","cup","game","winner"]},{title:"fas fa-truck",searchTerms:["delivery","shipping"]},{title:"fas fa-truck-loading",searchTerms:[]},{title:"fas fa-truck-monster",searchTerms:[]},{title:"fas fa-truck-moving",searchTerms:[]},{title:"fas fa-truck-pickup",searchTerms:[]},{title:"fas fa-tshirt",searchTerms:["cloth","clothing"]},{title:"fas fa-tty",searchTerms:[]},{title:"fab fa-tumblr",searchTerms:[]},{title:"fab fa-tumblr-square",searchTerms:[]},{title:"fas fa-tv",searchTerms:["computer","display","monitor","television"]},{title:"fab fa-twitch",searchTerms:[]},{title:"fab fa-twitter",searchTerms:["social network","tweet"]},{title:"fab fa-twitter-square",searchTerms:["social network","tweet"]},{title:"fab fa-typo3",searchTerms:[]},{title:"fab fa-uber",searchTerms:[]},{title:"fab fa-uikit",searchTerms:[]},{title:"fas fa-umbrella",searchTerms:["protection","rain"]},{title:"fas fa-umbrella-beach",searchTerms:["protection","recreation","sun"]},{title:"fas fa-underline",searchTerms:[]},{title:"fas fa-undo",searchTerms:["back","control z","exchange","oops","return","rotate","swap"]},{title:"fas fa-undo-alt",searchTerms:["back","control z","exchange","oops","return","swap"]},{title:"fab fa-uniregistry",searchTerms:[]},{title:"fas fa-universal-access",searchTerms:[]},{title:"fas fa-university",searchTerms:["bank","institution"]},{title:"fas fa-unlink",searchTerms:["chain","chain-broken","remove"]},{title:"fas fa-unlock",searchTerms:["admin","lock","password","protect"]},{title:"fas fa-unlock-alt",searchTerms:["admin","lock","password","protect"]},{title:"fab fa-untappd",searchTerms:[]},{title:"fas fa-upload",searchTerms:["export","publish"]},{title:"fab fa-usb",searchTerms:[]},{title:"fas fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-alt-slash",searchTerms:[]},{title:"fas fa-user-astronaut",searchTerms:["avatar","clothing","cosmonaut","space","suit"]},{title:"fas fa-user-check",searchTerms:[]},{title:"fas fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"far fa-user-circle",searchTerms:["account","avatar","head","human","man","person","profile"]},{title:"fas fa-user-clock",searchTerms:[]},{title:"fas fa-user-cog",searchTerms:[]},{title:"fas fa-user-edit",searchTerms:[]},{title:"fas fa-user-friends",searchTerms:[]},{title:"fas fa-user-graduate",searchTerms:["cap","clothing","commencement","gown","graduation","student"]},{title:"fas fa-user-injured",searchTerms:["cast","ouch","sling"]},{title:"fas fa-user-lock",searchTerms:[]},{title:"fas fa-user-md",searchTerms:["doctor","job","medical","nurse","occupation","profile"]},{title:"fas fa-user-minus",searchTerms:["delete","negative","remove"]},{title:"fas fa-user-ninja",searchTerms:["assassin","avatar","dangerous","deadly","sneaky"]},{title:"fas fa-user-plus",searchTerms:["positive","sign up","signup"]},{title:"fas fa-user-secret",searchTerms:["clothing","coat","hat","incognito","privacy","spy","whisper"]},{title:"fas fa-user-shield",searchTerms:[]},{title:"fas fa-user-slash",searchTerms:["ban","remove"]},{title:"fas fa-user-tag",searchTerms:[]},{title:"fas fa-user-tie",searchTerms:["avatar","business","clothing","formal"]},{title:"fas fa-user-times",searchTerms:["archive","delete","remove","x"]},{title:"fas fa-users",searchTerms:["people","persons","profiles"]},{title:"fas fa-users-cog",searchTerms:[]},{title:"fab fa-ussunnah",searchTerms:[]},{title:"fas fa-utensil-spoon",searchTerms:["spoon"]},{title:"fas fa-utensils",searchTerms:["cutlery","dinner","eat","food","knife","restaurant","spoon"]},{title:"fab fa-vaadin",searchTerms:[]},{title:"fas fa-vector-square",searchTerms:["anchors","lines","object"]},{title:"fas fa-venus",searchTerms:["female"]},{title:"fas fa-venus-double",searchTerms:[]},{title:"fas fa-venus-mars",searchTerms:[]},{title:"fab fa-viacoin",searchTerms:[]},{title:"fab fa-viadeo",searchTerms:[]},{title:"fab fa-viadeo-square",searchTerms:[]},{title:"fas fa-vial",searchTerms:["test tube"]},{title:"fas fa-vials",searchTerms:["lab results","test tubes"]},{title:"fab fa-viber",searchTerms:[]},{title:"fas fa-video",searchTerms:["camera","film","movie","record","video-camera"]},{title:"fas fa-video-slash",searchTerms:[]},{title:"fas fa-vihara",searchTerms:["buddhism","buddhist","building","monastery"]},{title:"fab fa-vimeo",searchTerms:[]},{title:"fab fa-vimeo-square",searchTerms:[]},{title:"fab fa-vimeo-v",searchTerms:["vimeo"]},{title:"fab fa-vine",searchTerms:[]},{title:"fab fa-vk",searchTerms:[]},{title:"fab fa-vnv",searchTerms:[]},{title:"fas fa-volleyball-ball",searchTerms:[]},{title:"fas fa-volume-down",searchTerms:["audio","lower","music","quieter","sound","speaker"]},{title:"fas fa-volume-mute",searchTerms:[]},{title:"fas fa-volume-off",searchTerms:["audio","music","mute","sound"]},{title:"fas fa-volume-up",searchTerms:["audio","higher","louder","music","sound","speaker"]},{title:"fas fa-vote-yea",searchTerms:["accept","cast","election","politics","positive","yes"]},{title:"fas fa-vr-cardboard",searchTerms:["google","reality","virtual"]},{title:"fab fa-vuejs",searchTerms:[]},{title:"fas fa-walking",searchTerms:[]},{title:"fas fa-wallet",searchTerms:[]},{title:"fas fa-warehouse",searchTerms:[]},{title:"fas fa-water",searchTerms:[]},{title:"fab fa-weebly",searchTerms:[]},{title:"fab fa-weibo",searchTerms:[]},{title:"fas fa-weight",searchTerms:["measurement","scale","weight"]},{title:"fas fa-weight-hanging",searchTerms:["anvil","heavy","measurement"]},{title:"fab fa-weixin",searchTerms:[]},{title:"fab fa-whatsapp",searchTerms:[]},{title:"fab fa-whatsapp-square",searchTerms:[]},{title:"fas fa-wheelchair",searchTerms:["handicap","person"]},{title:"fab fa-whmcs",searchTerms:[]},{title:"fas fa-wifi",searchTerms:[]},{title:"fab fa-wikipedia-w",searchTerms:[]},{title:"fas fa-wind",searchTerms:["air","blow","breeze","fall","seasonal"]},{title:"fas fa-window-close",searchTerms:[]},{title:"far fa-window-close",searchTerms:[]},{title:"fas fa-window-maximize",searchTerms:[]},{title:"far fa-window-maximize",searchTerms:[]},{title:"fas fa-window-minimize",searchTerms:[]},{title:"far fa-window-minimize",searchTerms:[]},{title:"fas fa-window-restore",searchTerms:[]},{title:"far fa-window-restore",searchTerms:[]},{title:"fab fa-windows",searchTerms:["microsoft"]},{title:"fas fa-wine-bottle",searchTerms:["alcohol","beverage","drink","glass","grapes"]},{title:"fas fa-wine-glass",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fas fa-wine-glass-alt",searchTerms:["alcohol","beverage","drink","grapes"]},{title:"fab fa-wix",searchTerms:[]},{title:"fab fa-wizards-of-the-coast",searchTerms:["Dungeons & Dragons","d&d","dnd","fantasy","game","gaming","tabletop"]},{title:"fab fa-wolf-pack-battalion",searchTerms:[]},{title:"fas fa-won-sign",searchTerms:["krw"]},{title:"fab fa-wordpress",searchTerms:[]},{title:"fab fa-wordpress-simple",searchTerms:[]},{title:"fab fa-wpbeginner",searchTerms:[]},{title:"fab fa-wpexplorer",searchTerms:[]},{title:"fab fa-wpforms",searchTerms:[]},{title:"fab fa-wpressr",searchTerms:["rendact"]},{title:"fas fa-wrench",searchTerms:["fix","settings","spanner","tool","update"]},{title:"fas fa-x-ray",searchTerms:["radiological images","radiology"]},{title:"fab fa-xbox",searchTerms:[]},{title:"fab fa-xing",searchTerms:[]},{title:"fab fa-xing-square",searchTerms:[]},{title:"fab fa-y-combinator",searchTerms:[]},{title:"fab fa-yahoo",searchTerms:[]},{title:"fab fa-yandex",searchTerms:[]},{title:"fab fa-yandex-international",searchTerms:[]},{title:"fab fa-yelp",searchTerms:[]},{title:"fas fa-yen-sign",searchTerms:["jpy","money"]},{title:"fas fa-yin-yang",searchTerms:["daoism","opposites","taoism"]},{title:"fab fa-yoast",searchTerms:[]},{title:"fab fa-youtube",searchTerms:["film","video","youtube-play","youtube-square"]},{title:"fab fa-youtube-square",searchTerms:[]},{title:"fab fa-zhihu",searchTerms:[]}]})});
assets/js/admin/lib/wp-color-picker-alpha.min.js CHANGED
@@ -1,11 +1,11 @@
1
- /**!
2
- * wp-color-picker-alpha
3
- *
4
- * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
- * Only run in input and is defined data alpha in true
6
- *
7
- * Version: 2.1.4
8
- * https://github.com/kallookoo/wp-color-picker-alpha
9
- * Licensed under the GPLv2 license or later.
10
- */
11
- !function(t){if(!t.wp.wpColorPicker.prototype._hasAlpha){var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",r='<div class="wp-picker-holder" />',e='<div class="wp-picker-container" />',a='<input type="button" class="button button-small" />',i=void 0!==wpColorPickerL10n.current;if(i)var n='<a tabindex="0" class="wp-color-result" />';else{n='<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>';var l="<label></label>",s='<span class="screen-reader-text"></span>'}Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var t=parseInt(this._color,10).toString(16);return this.error?"":(t.length<6&&(t=("00000"+t).substr(-6)),"#"+t)},t.widget("wp.wpColorPicker",t.wp.wpColorPicker,{_hasAlpha:!0,_create:function(){if(t.support.iris){var p=this,c=p.element;if(t.extend(p.options,c.data()),"hue"===p.options.type)return p._createHueOnly();p.close=t.proxy(p.close,p),p.initialValue=c.val(),c.addClass("wp-color-picker"),i?(c.hide().wrap(e),p.wrap=c.parent(),p.toggler=t(n).insertBefore(c).css({backgroundColor:p.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),p.pickerContainer=t(r).insertAfter(c),p.button=t(a).addClass("hidden")):(c.parent("label").length||(c.wrap(l),p.wrappingLabelText=t(s).insertBefore(c).text(wpColorPickerL10n.defaultLabel)),p.wrappingLabel=c.parent(),p.wrappingLabel.wrap(e),p.wrap=p.wrappingLabel.parent(),p.toggler=t(n).insertBefore(p.wrappingLabel).css({backgroundColor:p.initialValue}),p.toggler.find(".wp-color-result-text").text(wpColorPickerL10n.pick),p.pickerContainer=t(r).insertAfter(p.wrappingLabel),p.button=t(a)),p.options.defaultColor?(p.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString),i||p.button.attr("aria-label",wpColorPickerL10n.defaultAriaLabel)):(p.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),i||p.button.attr("aria-label",wpColorPickerL10n.clearAriaLabel)),i?c.wrap('<span class="wp-picker-input-wrap" />').after(p.button):(p.wrappingLabel.wrap('<span class="wp-picker-input-wrap hidden" />').after(p.button),p.inputWrapper=c.closest(".wp-picker-input-wrap")),c.iris({target:p.pickerContainer,hide:p.options.hide,width:p.options.width,mode:p.options.mode,palettes:p.options.palettes,change:function(r,e){p.options.alpha?(p.toggler.css({"background-image":"url("+o+")"}),i?p.toggler.html('<span class="color-alpha" />'):(p.toggler.css({position:"relative"}),0==p.toggler.find("span.color-alpha").length&&p.toggler.append('<span class="color-alpha" />')),p.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,left:0,"border-top-left-radius":"2px","border-bottom-left-radius":"2px",background:e.color.toString()})):p.toggler.css({backgroundColor:e.color.toString()}),t.isFunction(p.options.change)&&p.options.change.call(this,r,e)}}),c.val(p.initialValue),p._addListeners(),p.options.hide||p.toggler.click()}},_addListeners:function(){var o=this;o.wrap.on("click.wpcolorpicker",function(t){t.stopPropagation()}),o.toggler.click(function(){o.toggler.hasClass("wp-picker-open")?o.close():o.open()}),o.element.on("change",function(r){(""===t(this).val()||o.element.hasClass("iris-error"))&&(o.options.alpha?(i&&o.toggler.removeAttr("style"),o.toggler.find("span.color-alpha").css("backgroundColor","")):o.toggler.css("backgroundColor",""),t.isFunction(o.options.clear)&&o.options.clear.call(this,r))}),o.button.on("click",function(r){t(this).hasClass("wp-picker-clear")?(o.element.val(""),o.options.alpha?(i&&o.toggler.removeAttr("style"),o.toggler.find("span.color-alpha").css("backgroundColor","")):o.toggler.css("backgroundColor",""),t.isFunction(o.options.clear)&&o.options.clear.call(this,r),o.element.trigger("change")):t(this).hasClass("wp-picker-default")&&o.element.val(o.options.defaultColor).change()})}}),t.widget("a8c.iris",t.a8c.iris,{_create:function(){if(this._super(),this.options.alpha=this.element.data("alpha")||!1,this.element.is(":input")||(this.options.alpha=!1),void 0!==this.options.alpha&&this.options.alpha){var o=this,r=o.element,e=t('<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>').appendTo(o.picker.find(".iris-picker-inner")),a={aContainer:e,aSlider:e.find(".iris-slider-offset-alpha")};void 0!==r.data("custom-width")?o.options.customWidth=parseInt(r.data("custom-width"))||0:o.options.customWidth=100,o.options.defaultWidth=r.width(),(o._color._alpha<1||-1!=o._color.toString().indexOf("rgb"))&&r.width(parseInt(o.options.defaultWidth+o.options.customWidth)),t.each(a,function(t,r){o.controls[t]=r}),o.controls.square.css({"margin-right":"0"});var i=o.picker.width()-o.controls.square.width()-20,n=i/6,l=i/2-n;t.each(["aContainer","strip"],function(t,r){o.controls[r].width(l).css({"margin-left":n+"px"})}),o._initControls(),o._change()}},_initControls:function(){if(this._super(),this.options.alpha){var t=this;t.controls.aSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,r){t._color._alpha=parseFloat(r.value/100),t._change.apply(t,arguments)}})}},_change:function(){this._super();var t=this,r=t.element;if(this.options.alpha){var e=t.controls,a=parseInt(100*t._color._alpha),i=t._color.toRgb(),n=["rgb("+i.r+","+i.g+","+i.b+") 0%","rgba("+i.r+","+i.g+","+i.b+", 0) 100%"],l=t.options.defaultWidth,s=t.options.customWidth,p=t.picker.closest(".wp-picker-container").find(".wp-color-result");e.aContainer.css({background:"linear-gradient(to bottom, "+n.join(", ")+"), url("+o+")"}),p.hasClass("wp-picker-open")&&(e.aSlider.slider("value",a),t._color._alpha<1?(e.strip.attr("style",e.strip.attr("style").replace(/rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g,"rgb($1$3$5)")),r.width(parseInt(l+s))):r.width(l))}(r.data("reset-alpha")||!1)&&t.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){t._color._alpha=1,t.active="external",t._change()}),r.trigger("change")},_addInputListeners:function(t){var o=this,r=function(r){var e=new Color(t.val()),a=t.val();t.removeClass("iris-error"),e.error?""!==a&&t.addClass("iris-error"):e.toString()!==o._color.toString()&&("keyup"===r.type&&a.match(/^[0-9a-fA-F]{3}$/)||o._setOption("color",e.toString()))};t.on("change",r).on("keyup",o._debounce(r,100)),o.options.hide&&t.on("focus",function(){o.show()})}})}}(jQuery),jQuery(document).ready(function(t){t(".color-picker").wpColorPicker()});
1
+ /**!
2
+ * wp-color-picker-alpha
3
+ *
4
+ * Overwrite Automattic Iris for enabled Alpha Channel in wpColorPicker
5
+ * Only run in input and is defined data alpha in true
6
+ *
7
+ * Version: 2.1.4
8
+ * https://github.com/kallookoo/wp-color-picker-alpha
9
+ * Licensed under the GPLv2 license or later.
10
+ */
11
+ !function(t){if(!t.wp.wpColorPicker.prototype._hasAlpha){var o="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAAHnlligAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHJJREFUeNpi+P///4EDBxiAGMgCCCAGFB5AADGCRBgYDh48CCRZIJS9vT2QBAggFBkmBiSAogxFBiCAoHogAKIKAlBUYTELAiAmEtABEECk20G6BOmuIl0CIMBQ/IEMkO0myiSSraaaBhZcbkUOs0HuBwDplz5uFJ3Z4gAAAABJRU5ErkJggg==",r='<div class="wp-picker-holder" />',e='<div class="wp-picker-container" />',a='<input type="button" class="button button-small" />',i=void 0!==wpColorPickerL10n.current;if(i)var n='<a tabindex="0" class="wp-color-result" />';else{n='<button type="button" class="button wp-color-result" aria-expanded="false"><span class="wp-color-result-text"></span></button>';var l="<label></label>",s='<span class="screen-reader-text"></span>'}Color.fn.toString=function(){if(this._alpha<1)return this.toCSS("rgba",this._alpha).replace(/\s+/g,"");var t=parseInt(this._color,10).toString(16);return this.error?"":(t.length<6&&(t=("00000"+t).substr(-6)),"#"+t)},t.widget("wp.wpColorPicker",t.wp.wpColorPicker,{_hasAlpha:!0,_create:function(){if(t.support.iris){var p=this,c=p.element;if(t.extend(p.options,c.data()),"hue"===p.options.type)return p._createHueOnly();p.close=t.proxy(p.close,p),p.initialValue=c.val(),c.addClass("wp-color-picker"),i?(c.hide().wrap(e),p.wrap=c.parent(),p.toggler=t(n).insertBefore(c).css({backgroundColor:p.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current),p.pickerContainer=t(r).insertAfter(c),p.button=t(a).addClass("hidden")):(c.parent("label").length||(c.wrap(l),p.wrappingLabelText=t(s).insertBefore(c).text(wpColorPickerL10n.defaultLabel)),p.wrappingLabel=c.parent(),p.wrappingLabel.wrap(e),p.wrap=p.wrappingLabel.parent(),p.toggler=t(n).insertBefore(p.wrappingLabel).css({backgroundColor:p.initialValue}),p.toggler.find(".wp-color-result-text").text(wpColorPickerL10n.pick),p.pickerContainer=t(r).insertAfter(p.wrappingLabel),p.button=t(a)),p.options.defaultColor?(p.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString),i||p.button.attr("aria-label",wpColorPickerL10n.defaultAriaLabel)):(p.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear),i||p.button.attr("aria-label",wpColorPickerL10n.clearAriaLabel)),i?c.wrap('<span class="wp-picker-input-wrap" />').after(p.button):(p.wrappingLabel.wrap('<span class="wp-picker-input-wrap hidden" />').after(p.button),p.inputWrapper=c.closest(".wp-picker-input-wrap")),c.iris({target:p.pickerContainer,hide:p.options.hide,width:p.options.width,mode:p.options.mode,palettes:p.options.palettes,change:function(r,e){p.options.alpha?(p.toggler.css({"background-image":"url("+o+")"}),i?p.toggler.html('<span class="color-alpha" />'):(p.toggler.css({position:"relative"}),0==p.toggler.find("span.color-alpha").length&&p.toggler.append('<span class="color-alpha" />')),p.toggler.find("span.color-alpha").css({width:"30px",height:"100%",position:"absolute",top:0,left:0,"border-top-left-radius":"2px","border-bottom-left-radius":"2px",background:e.color.toString()})):p.toggler.css({backgroundColor:e.color.toString()}),t.isFunction(p.options.change)&&p.options.change.call(this,r,e)}}),c.val(p.initialValue),p._addListeners(),p.options.hide||p.toggler.click()}},_addListeners:function(){var o=this;o.wrap.on("click.wpcolorpicker",function(t){t.stopPropagation()}),o.toggler.click(function(){o.toggler.hasClass("wp-picker-open")?o.close():o.open()}),o.element.on("change",function(r){(""===t(this).val()||o.element.hasClass("iris-error"))&&(o.options.alpha?(i&&o.toggler.removeAttr("style"),o.toggler.find("span.color-alpha").css("backgroundColor","")):o.toggler.css("backgroundColor",""),t.isFunction(o.options.clear)&&o.options.clear.call(this,r))}),o.button.on("click",function(r){t(this).hasClass("wp-picker-clear")?(o.element.val(""),o.options.alpha?(i&&o.toggler.removeAttr("style"),o.toggler.find("span.color-alpha").css("backgroundColor","")):o.toggler.css("backgroundColor",""),t.isFunction(o.options.clear)&&o.options.clear.call(this,r),o.element.trigger("change")):t(this).hasClass("wp-picker-default")&&o.element.val(o.options.defaultColor).change()})}}),t.widget("a8c.iris",t.a8c.iris,{_create:function(){if(this._super(),this.options.alpha=this.element.data("alpha")||!1,this.element.is(":input")||(this.options.alpha=!1),void 0!==this.options.alpha&&this.options.alpha){var o=this,r=o.element,e=t('<div class="iris-strip iris-slider iris-alpha-slider"><div class="iris-slider-offset iris-slider-offset-alpha"></div></div>').appendTo(o.picker.find(".iris-picker-inner")),a={aContainer:e,aSlider:e.find(".iris-slider-offset-alpha")};void 0!==r.data("custom-width")?o.options.customWidth=parseInt(r.data("custom-width"))||0:o.options.customWidth=100,o.options.defaultWidth=r.width(),(o._color._alpha<1||-1!=o._color.toString().indexOf("rgb"))&&r.width(parseInt(o.options.defaultWidth+o.options.customWidth)),t.each(a,function(t,r){o.controls[t]=r}),o.controls.square.css({"margin-right":"0"});var i=o.picker.width()-o.controls.square.width()-20,n=i/6,l=i/2-n;t.each(["aContainer","strip"],function(t,r){o.controls[r].width(l).css({"margin-left":n+"px"})}),o._initControls(),o._change()}},_initControls:function(){if(this._super(),this.options.alpha){var t=this;t.controls.aSlider.slider({orientation:"vertical",min:0,max:100,step:1,value:parseInt(100*t._color._alpha),slide:function(o,r){t._color._alpha=parseFloat(r.value/100),t._change.apply(t,arguments)}})}},_change:function(){this._super();var t=this,r=t.element;if(this.options.alpha){var e=t.controls,a=parseInt(100*t._color._alpha),i=t._color.toRgb(),n=["rgb("+i.r+","+i.g+","+i.b+") 0%","rgba("+i.r+","+i.g+","+i.b+", 0) 100%"],l=t.options.defaultWidth,s=t.options.customWidth,p=t.picker.closest(".wp-picker-container").find(".wp-color-result");e.aContainer.css({background:"linear-gradient(to bottom, "+n.join(", ")+"), url("+o+")"}),p.hasClass("wp-picker-open")&&(e.aSlider.slider("value",a),t._color._alpha<1?(e.strip.attr("style",e.strip.attr("style").replace(/rgba\(([0-9]+,)(\s+)?([0-9]+,)(\s+)?([0-9]+)(,(\s+)?[0-9\.]+)\)/g,"rgb($1$3$5)")),r.width(parseInt(l+s))):r.width(l))}(r.data("reset-alpha")||!1)&&t.picker.find(".iris-palette-container").on("click.palette",".iris-palette",function(){t._color._alpha=1,t.active="external",t._change()}),r.trigger("change")},_addInputListeners:function(t){var o=this,r=function(r){var e=new Color(t.val()),a=t.val();t.removeClass("iris-error"),e.error?""!==a&&t.addClass("iris-error"):e.toString()!==o._color.toString()&&("keyup"===r.type&&a.match(/^[0-9a-fA-F]{3}$/)||o._setOption("color",e.toString()))};t.on("change",r).on("keyup",o._debounce(r,100)),o.options.hide&&t.on("focus",function(){o.show()})}})}}(jQuery),jQuery(document).ready(function(t){t(".color-picker").wpColorPicker()});
assets/js/editor.js CHANGED
@@ -1,386 +1,386 @@
1
- ( function( $ ) {//TODO: manage comments
2
-
3
- "use strict";
4
-
5
- var mutationObserver = new MutationObserver(function(mutations) {
6
- // Elementor Search Input
7
- if ( $('#elementor-panel-elements-search-input').length ) {
8
-
9
- var searchTimeout = null;
10
- $('#elementor-panel-elements-search-input').on( 'keyup', function(e) {
11
- if ( e.which === 13 ) {
12
- return false;
13
- }
14
-
15
- var val = $(this).val();
16
-
17
- if (searchTimeout != null) {
18
- clearTimeout(searchTimeout);
19
- }
20
-
21
- searchTimeout = setTimeout(function() {
22
- searchTimeout = null;
23
-
24
- elementorCommon.ajax.addRequest( 'wpr_elementor_search_data', {
25
- data: {
26
- search_query: val,
27
- },
28
- success: function() {
29
- console.log('Success!');
30
- }
31
- });
32
- }, 1000);
33
- });
34
-
35
- }
36
- });
37
-
38
- // Listen to Elementor Panel Changes
39
- mutationObserver.observe($('#elementor-panel')[0], {
40
- childList: true,
41
- subtree: true,
42
- });
43
-
44
-
45
- // Make our custom css visible in the panel's front-end
46
- elementor.hooks.addFilter( 'editor/style/styleText', function( css, context ) {
47
- if ( ! context ) {
48
- return;
49
- }
50
-
51
- var model = context.model,
52
- customCSS = model.get('settings').get('wpr_custom_css');
53
- var selector = '.elementor-element.elementor-element-' + model.get('id');
54
-
55
- if ( 'document' === model.get('elType') ) {
56
- selector = elementor.config.document.settings.cssWrapperSelector;
57
- }
58
-
59
- if ( customCSS ) {
60
- css += customCSS.replace(/selector/g, selector);
61
- }
62
-
63
- return css;
64
- });
65
-
66
- // Shortcode Widget: Select Template
67
- function selectShortcodeTemplate( model, e, textarea ) {
68
- var data = e.params.data;
69
-
70
- // Update Settings
71
- model.attributes.settings.attributes.shortcode = '[wpr-template id="'+ data.id +'"]';
72
-
73
- // Update Textarea
74
- textarea.val('[wpr-template id="'+ data.id +'"]');
75
-
76
- // Refresh Preview
77
- model.renderRemoteServer();
78
- }
79
-
80
- elementor.hooks.addAction( 'panel/open_editor/widget/shortcode', function( panel, model, view ) {
81
-
82
- var $select = panel.$el.find('.elementor-control-type-select2').find('select'),
83
- $textarea = panel.$el.find('.elementor-control-type-textarea').find('textarea');
84
-
85
- // Change
86
- $select.on( 'select2:select', function( e ) {
87
- selectShortcodeTemplate( model, e, $textarea );
88
- });
89
-
90
- // Render
91
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-select2', function(){
92
- $(this).find( 'select' ).on( 'select2:select', function( e ) {
93
- selectShortcodeTemplate( model, e, $textarea );
94
- } );
95
- });
96
- } );
97
-
98
-
99
- // WPR Grid Widget: Select Element (Filter Taxonomies)
100
- function filterGridTaxonomies( data, value ) {
101
- var options = [];
102
-
103
- for ( var key in data ) {
104
- if ( key !== value ) {
105
- for ( var i = 0; i < data[key].length; i++ ) {
106
- options.push( '.elementor-control-element_select select option[value="'+ data[key][i] +'"]' );
107
- }
108
- }
109
- }
110
-
111
- // Reset
112
- $( 'head' ).find( '#element_select_filter_style' ).remove();
113
-
114
- if ( 'related' === value || 'current' === value ) {
115
- return;
116
- }
117
-
118
- // Append Styles
119
- $( 'head' ).append('<style id="element_select_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
120
- }
121
-
122
- // WPR Grid Widget: Post Meta Keys (Filter by Query)
123
- function filterGridMetaKeys( data, value ) {
124
- var options = [];
125
-
126
- for ( var key in data ) {
127
- if ( key !== value ) {
128
- for ( var i = 0; i < data[key].length; i++ ) {
129
- options.push( '.select2-results__options li[data-select2-id*="-'+ data[key][i] +'"]' );
130
- }
131
- }
132
- }
133
-
134
- // Reset
135
- $( 'head' ).find( '#post_meta_keys_filter_style' ).remove();
136
-
137
- // Append Styles
138
- $( 'head' ).append('<style id="post_meta_keys_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
139
- }
140
-
141
- // WPR Grid Widget / List style: Element Location
142
- function disableListLocation( value ) {
143
- // Reset
144
- $( 'head' ).find( '#list_element_location_style' ).remove();
145
-
146
- if ( 'list' !== value ) {
147
- return;
148
- }
149
-
150
- // Append Styles
151
- $( 'head' ).append('<style id="list_element_location_style">.elementor-control-element_location option[value="above"] { display: none !important; }</style>');
152
- }
153
-
154
- // Grid
155
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-grid', function( panel, model, view ) {
156
- var $querySource = panel.$el.find('.elementor-control-query_source').find( 'select' ),
157
- taxonomies = JSON.parse( panel.$el.find('.elementor-control-element_select_filter').find('input').val() ),
158
- metaKeys = JSON.parse( panel.$el.find('.elementor-control-post_meta_keys_filter').find('input').val() );
159
-
160
- // Open
161
- filterGridTaxonomies( taxonomies, $querySource.val() );
162
- filterGridMetaKeys( metaKeys, $querySource.val() );
163
-
164
- // Change
165
- $querySource.on( 'change', function() {
166
- filterGridTaxonomies( taxonomies, $(this).val() );
167
- filterGridMetaKeys( metaKeys, $(this).val() );
168
- });
169
-
170
- // Render Query Source
171
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-query_source', function(){
172
- $(this).find( 'select' ).on( 'change', function() {
173
- filterGridTaxonomies( taxonomies, $(this).val() );
174
- filterGridMetaKeys( metaKeys, $(this).val() );
175
- } );
176
- });
177
-
178
- // Render Layout Select
179
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){
180
- disableListLocation( $(this).find( 'select' ).val() );
181
-
182
- $(this).find( 'select' ).on( 'change', function() {
183
- disableListLocation( $(this).val() );
184
- } );
185
- });
186
-
187
- // Render Grid Elements
188
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
189
-
190
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
191
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
192
-
193
- if ( 'lightbox' === $(this).val() ) {
194
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
195
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
196
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
197
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
198
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
199
- setTimeout(function() {
200
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
201
- }, 100 );
202
- } else {
203
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
204
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
205
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
206
- }
207
- } );
208
- });
209
-
210
- var sOffsets = {};
211
-
212
- // Prevent Bubble on Click
213
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
214
- var current = $(this),
215
- attrClass = current.attr( 'class' ),
216
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
217
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
218
-
219
- var oKey = attrClass.substring( firstIndex, lastIndex ),
220
- oProperty = current.offset().top;
221
-
222
- sOffsets[oKey] = oProperty;
223
-
224
- setTimeout(function() {
225
- current.on( 'click', function( event ) {
226
- var current = $(this),
227
- attrClass = current.attr( 'class' ),
228
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
229
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
230
- sectionClass = attrClass.substring( firstIndex, lastIndex );
231
-
232
- setTimeout( function() {
233
- $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
234
- }, 10 );
235
- });
236
- }, 100 );
237
- });
238
- } );
239
-
240
- // Image Grid
241
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-media-grid', function( panel, model, view ) {
242
- // Render Grid Elements
243
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
244
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
245
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
246
-
247
- if ( 'lightbox' === $(this).val() ) {
248
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
249
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
250
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
251
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
252
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
253
- setTimeout(function() {
254
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
255
- }, 100 );
256
- } else {
257
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
258
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
259
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
260
- }
261
- } );
262
- });
263
- } );
264
-
265
- // Woo Grid
266
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-woo-grid', function( panel, model, view ) {
267
- // Render Grid Elements
268
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
269
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
270
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
271
-
272
- if ( 'lightbox' === $(this).val() ) {
273
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
274
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
275
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
276
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
277
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
278
- setTimeout(function() {
279
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
280
- }, 100 );
281
- } else {
282
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
283
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
284
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
285
- }
286
- } );
287
- });
288
-
289
- var sOffsets = {};
290
-
291
- // Prevent Bubble on Click - not working - //tmp
292
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
293
- var current = $(this),
294
- attrClass = current.attr( 'class' ),
295
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
296
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
297
-
298
- var oKey = attrClass.substring( firstIndex, lastIndex ),
299
- oPropery = current.offset().top;
300
-
301
- sOffsets[oKey] = oPropery;
302
-
303
- setTimeout(function() {
304
- current.on( 'click', function( event ) {
305
- var current = $(this),
306
- attrClass = current.attr( 'class' ),
307
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
308
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
309
- sectionClass = attrClass.substring( firstIndex, lastIndex );
310
-
311
- setTimeout( function() {
312
- $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
313
- }, 10 );
314
- });
315
- }, 100 );
316
- });
317
- } );
318
-
319
- // Get Referrer Link
320
- var referrer = document.referrer;
321
-
322
- // Return to Plugin Page
323
- if ( '' !== referrer && referrer.indexOf( 'page=wpr-addons' ) > -1 ) {
324
- $(window).on( 'load', function() {
325
-
326
- $('#elementor-panel-header-menu-button').on( 'click', function() {
327
-
328
- setTimeout(function() {
329
- $('.elementor-panel-menu-item-exit-to-dashboard').on( 'click', function() {
330
- window.location.href = referrer;
331
- });
332
- }, 300);
333
- });
334
- });
335
- }
336
-
337
- // Advanced Slider - TODO: Check if necessary or remove
338
- // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-advanced-slider', function( panel, model, view ) {
339
- // var elControls = panel.$el,
340
- // $select = elControls.find('.elementor-control-slider_content_type').find('select');
341
-
342
- // if ( 'custom' !== $select.val() ) {
343
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
344
- // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
345
- // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
346
- // } else {
347
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
348
- // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
349
- // }
350
-
351
- // $select.on( 'change', function() {
352
-
353
- // if ( 'custom' !== $(this).val() ) {
354
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
355
- // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
356
- // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
357
- // } else {
358
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
359
- // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
360
- // }
361
- // });
362
- // } );
363
-
364
- /*--------------------------------------------------------------
365
- == Widget Preview and Library buttons
366
- --------------------------------------------------------------*/
367
-
368
- for (const [key, value] of Object.entries(registered_modules)) {
369
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-'+ value[0], function( panel, model, view ) {
370
- openPedefinedStyles( panel.$el, view.$el, value[0], value[1], value[2] );
371
- } );
372
- }
373
-
374
- function openPedefinedStyles( panel, preview, widget, url, filter ) {
375
- panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child', function() {
376
- var theme = $(this).data('theme');
377
- $(this).attr('href', url +'?ref=rea-plugin-panel-'+ widget +'-utmtr'+ theme.slice(0,3) +'nkbs'+ theme.slice(3,theme.length) +'-preview'+ filter);
378
- });
379
-
380
- panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child', function() {
381
- preview.closest('body').find('#wpr-library-btn').attr('data-filter', widget);
382
- preview.closest('body').find('#wpr-library-btn').trigger('click');
383
- });
384
- }
385
-
386
  }( jQuery ) );
1
+ ( function( $ ) {//TODO: manage comments
2
+
3
+ "use strict";
4
+
5
+ var mutationObserver = new MutationObserver(function(mutations) {
6
+ // Elementor Search Input
7
+ if ( $('#elementor-panel-elements-search-input').length ) {
8
+
9
+ var searchTimeout = null;
10
+ $('#elementor-panel-elements-search-input').on( 'keyup', function(e) {
11
+ if ( e.which === 13 ) {
12
+ return false;
13
+ }
14
+
15
+ var val = $(this).val();
16
+
17
+ if (searchTimeout != null) {
18
+ clearTimeout(searchTimeout);
19
+ }
20
+
21
+ searchTimeout = setTimeout(function() {
22
+ searchTimeout = null;
23
+
24
+ elementorCommon.ajax.addRequest( 'wpr_elementor_search_data', {
25
+ data: {
26
+ search_query: val,
27
+ },
28
+ success: function() {
29
+ console.log('Success!');
30
+ }
31
+ });
32
+ }, 1000);
33
+ });
34
+
35
+ }
36
+ });
37
+
38
+ // Listen to Elementor Panel Changes
39
+ mutationObserver.observe($('#elementor-panel')[0], {
40
+ childList: true,
41
+ subtree: true,
42
+ });
43
+
44
+
45
+ // Make our custom css visible in the panel's front-end
46
+ elementor.hooks.addFilter( 'editor/style/styleText', function( css, context ) {
47
+ if ( ! context ) {
48
+ return;
49
+ }
50
+
51
+ var model = context.model,
52
+ customCSS = model.get('settings').get('wpr_custom_css');
53
+ var selector = '.elementor-element.elementor-element-' + model.get('id');
54
+
55
+ if ( 'document' === model.get('elType') ) {
56
+ selector = elementor.config.document.settings.cssWrapperSelector;
57
+ }
58
+
59
+ if ( customCSS ) {
60
+ css += customCSS.replace(/selector/g, selector);
61
+ }
62
+
63
+ return css;
64
+ });
65
+
66
+ // Shortcode Widget: Select Template
67
+ function selectShortcodeTemplate( model, e, textarea ) {
68
+ var data = e.params.data;
69
+
70
+ // Update Settings
71
+ model.attributes.settings.attributes.shortcode = '[wpr-template id="'+ data.id +'"]';
72
+
73
+ // Update Textarea
74
+ textarea.val('[wpr-template id="'+ data.id +'"]');
75
+
76
+ // Refresh Preview
77
+ model.renderRemoteServer();
78
+ }
79
+
80
+ elementor.hooks.addAction( 'panel/open_editor/widget/shortcode', function( panel, model, view ) {
81
+
82
+ var $select = panel.$el.find('.elementor-control-type-select2').find('select'),
83
+ $textarea = panel.$el.find('.elementor-control-type-textarea').find('textarea');
84
+
85
+ // Change
86
+ $select.on( 'select2:select', function( e ) {
87
+ selectShortcodeTemplate( model, e, $textarea );
88
+ });
89
+
90
+ // Render
91
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-select2', function(){
92
+ $(this).find( 'select' ).on( 'select2:select', function( e ) {
93
+ selectShortcodeTemplate( model, e, $textarea );
94
+ } );
95
+ });
96
+ } );
97
+
98
+
99
+ // WPR Grid Widget: Select Element (Filter Taxonomies)
100
+ function filterGridTaxonomies( data, value ) {
101
+ var options = [];
102
+
103
+ for ( var key in data ) {
104
+ if ( key !== value ) {
105
+ for ( var i = 0; i < data[key].length; i++ ) {
106
+ options.push( '.elementor-control-element_select select option[value="'+ data[key][i] +'"]' );
107
+ }
108
+ }
109
+ }
110
+
111
+ // Reset
112
+ $( 'head' ).find( '#element_select_filter_style' ).remove();
113
+
114
+ if ( 'related' === value || 'current' === value ) {
115
+ return;
116
+ }
117
+
118
+ // Append Styles
119
+ $( 'head' ).append('<style id="element_select_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
120
+ }
121
+
122
+ // WPR Grid Widget: Post Meta Keys (Filter by Query)
123
+ function filterGridMetaKeys( data, value ) {
124
+ var options = [];
125
+
126
+ for ( var key in data ) {
127
+ if ( key !== value ) {
128
+ for ( var i = 0; i < data[key].length; i++ ) {
129
+ options.push( '.select2-results__options li[data-select2-id*="-'+ data[key][i] +'"]' );
130
+ }
131
+ }
132
+ }
133
+
134
+ // Reset
135
+ $( 'head' ).find( '#post_meta_keys_filter_style' ).remove();
136
+
137
+ // Append Styles
138
+ $( 'head' ).append('<style id="post_meta_keys_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
139
+ }
140
+
141
+ // WPR Grid Widget / List style: Element Location
142
+ function disableListLocation( value ) {
143
+ // Reset
144
+ $( 'head' ).find( '#list_element_location_style' ).remove();
145
+
146
+ if ( 'list' !== value ) {
147
+ return;
148
+ }
149
+
150
+ // Append Styles
151
+ $( 'head' ).append('<style id="list_element_location_style">.elementor-control-element_location option[value="above"] { display: none !important; }</style>');
152
+ }
153
+
154
+ // Grid
155
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-grid', function( panel, model, view ) {
156
+ var $querySource = panel.$el.find('.elementor-control-query_source').find( 'select' ),
157
+ taxonomies = JSON.parse( panel.$el.find('.elementor-control-element_select_filter').find('input').val() ),
158
+ metaKeys = JSON.parse( panel.$el.find('.elementor-control-post_meta_keys_filter').find('input').val() );
159
+
160
+ // Open
161
+ filterGridTaxonomies( taxonomies, $querySource.val() );
162
+ filterGridMetaKeys( metaKeys, $querySource.val() );
163
+
164
+ // Change
165
+ $querySource.on( 'change', function() {
166
+ filterGridTaxonomies( taxonomies, $(this).val() );
167
+ filterGridMetaKeys( metaKeys, $(this).val() );
168
+ });
169
+
170
+ // Render Query Source
171
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-query_source', function(){
172
+ $(this).find( 'select' ).on( 'change', function() {
173
+ filterGridTaxonomies( taxonomies, $(this).val() );
174
+ filterGridMetaKeys( metaKeys, $(this).val() );
175
+ } );
176
+ });
177
+
178
+ // Render Layout Select
179
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){
180
+ disableListLocation( $(this).find( 'select' ).val() );
181
+
182
+ $(this).find( 'select' ).on( 'change', function() {
183
+ disableListLocation( $(this).val() );
184
+ } );
185
+ });
186
+
187
+ // Render Grid Elements
188
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
189
+
190
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
191
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
192
+
193
+ if ( 'lightbox' === $(this).val() ) {
194
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
195
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
196
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
197
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
198
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
199
+ setTimeout(function() {
200
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
201
+ }, 100 );
202
+ } else {
203
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
204
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
205
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
206
+ }
207
+ } );
208
+ });
209
+
210
+ var sOffsets = {};
211
+
212
+ // Prevent Bubble on Click
213
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
214
+ var current = $(this),
215
+ attrClass = current.attr( 'class' ),
216
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
217
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
218
+
219
+ var oKey = attrClass.substring( firstIndex, lastIndex ),
220
+ oProperty = current.offset().top;
221
+
222
+ sOffsets[oKey] = oProperty;
223
+
224
+ setTimeout(function() {
225
+ current.on( 'click', function( event ) {
226
+ var current = $(this),
227
+ attrClass = current.attr( 'class' ),
228
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
229
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
230
+ sectionClass = attrClass.substring( firstIndex, lastIndex );
231
+
232
+ setTimeout( function() {
233
+ $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
234
+ }, 10 );
235
+ });
236
+ }, 100 );
237
+ });
238
+ } );
239
+
240
+ // Image Grid
241
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-media-grid', function( panel, model, view ) {
242
+ // Render Grid Elements
243
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
244
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
245
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
246
+
247
+ if ( 'lightbox' === $(this).val() ) {
248
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
249
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
250
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
251
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
252
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
253
+ setTimeout(function() {
254
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
255
+ }, 100 );
256
+ } else {
257
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
258
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
259
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
260
+ }
261
+ } );
262
+ });
263
+ } );
264
+
265
+ // Woo Grid
266
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-woo-grid', function( panel, model, view ) {
267
+ // Render Grid Elements
268
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
269
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
270
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
271
+
272
+ if ( 'lightbox' === $(this).val() ) {
273
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
274
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
275
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
276
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
277
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
278
+ setTimeout(function() {
279
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
280
+ }, 100 );
281
+ } else {
282
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
283
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
284
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
285
+ }
286
+ } );
287
+ });
288
+
289
+ var sOffsets = {};
290
+
291
+ // Prevent Bubble on Click - not working - //tmp
292
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
293
+ var current = $(this),
294
+ attrClass = current.attr( 'class' ),
295
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
296
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
297
+
298
+ var oKey = attrClass.substring( firstIndex, lastIndex ),
299
+ oPropery = current.offset().top;
300
+
301
+ sOffsets[oKey] = oPropery;
302
+
303
+ setTimeout(function() {
304
+ current.on( 'click', function( event ) {
305
+ var current = $(this),
306
+ attrClass = current.attr( 'class' ),
307
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
308
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
309
+ sectionClass = attrClass.substring( firstIndex, lastIndex );
310
+
311
+ setTimeout( function() {
312
+ $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
313
+ }, 10 );
314
+ });
315
+ }, 100 );
316
+ });
317
+ } );
318
+
319
+ // Get Referrer Link
320
+ var referrer = document.referrer;
321
+
322
+ // Return to Plugin Page
323
+ if ( '' !== referrer && referrer.indexOf( 'page=wpr-addons' ) > -1 ) {
324
+ $(window).on( 'load', function() {
325
+
326
+ $('#elementor-panel-header-menu-button').on( 'click', function() {
327
+
328
+ setTimeout(function() {
329
+ $('.elementor-panel-menu-item-exit-to-dashboard').on( 'click', function() {
330
+ window.location.href = referrer;
331
+ });
332
+ }, 300);
333
+ });
334
+ });
335
+ }
336
+
337
+ // Advanced Slider - TODO: Check if necessary or remove
338
+ // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-advanced-slider', function( panel, model, view ) {
339
+ // var elControls = panel.$el,
340
+ // $select = elControls.find('.elementor-control-slider_content_type').find('select');
341
+
342
+ // if ( 'custom' !== $select.val() ) {
343
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
344
+ // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
345
+ // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
346
+ // } else {
347
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
348
+ // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
349
+ // }
350
+
351
+ // $select.on( 'change', function() {
352
+
353
+ // if ( 'custom' !== $(this).val() ) {
354
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
355
+ // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
356
+ // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
357
+ // } else {
358
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
359
+ // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
360
+ // }
361
+ // });
362
+ // } );
363
+
364
+ /*--------------------------------------------------------------
365
+ == Widget Preview and Library buttons
366
+ --------------------------------------------------------------*/
367
+
368
+ for (const [key, value] of Object.entries(registered_modules)) {
369
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-'+ value[0], function( panel, model, view ) {
370
+ openPedefinedStyles( panel.$el, view.$el, value[0], value[1], value[2] );
371
+ } );
372
+ }
373
+
374
+ function openPedefinedStyles( panel, preview, widget, url, filter ) {
375
+ panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child', function() {
376
+ var theme = $(this).data('theme');
377
+ $(this).attr('href', url +'?ref=rea-plugin-panel-'+ widget +'-utmtr'+ theme.slice(0,3) +'nkbs'+ theme.slice(3,theme.length) +'-preview'+ filter);
378
+ });
379
+
380
+ panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child', function() {
381
+ preview.closest('body').find('#wpr-library-btn').attr('data-filter', widget);
382
+ preview.closest('body').find('#wpr-library-btn').trigger('click');
383
+ });
384
+ }
385
+
386
  }( jQuery ) );
assets/js/editor.min.js CHANGED
@@ -1,490 +1,490 @@
1
- ( function( $ ) {//TODO: manage comments
2
-
3
- "use strict";
4
-
5
- var panelMutationObserver = new MutationObserver(function(mutations) {
6
- // Elementor Search Input
7
- if ( $('#elementor-panel-elements-search-input').length ) {
8
- var searchTimeout = null;
9
-
10
- $('#elementor-panel-elements-search-input').on( 'keyup', function(e) {
11
- if ( e.which === 13 ) {
12
- return false;
13
- }
14
-
15
- if (searchTimeout != null) {
16
- clearTimeout(searchTimeout);
17
- }
18
-
19
- searchTimeout = setTimeout(function() {
20
- searchTimeout = null;
21
-
22
- var searchVal = $('#elementor-panel-elements-search-input').val();
23
-
24
- if ( searchVal.includes('par') && $('.wpr-elementor-search-notice').length < 1 ) {
25
- $('#elementor-panel-elements-wrapper').prepend('\
26
- <div class="wpr-elementor-search-notice">\
27
- <strong>Parallax Background</strong> is only available for the Section elements. <strong>Edit any section</strong> > <strong>"Styles"</strong> tab > <strong>"Parallax - Royal Addons"</strong>.\
28
- </div>\
29
- ');
30
- }
31
-
32
- elementorCommon.ajax.addRequest( 'wpr_elementor_search_data', {
33
- data: {
34
- search_query: searchVal,
35
- },
36
- success: function() {
37
- // console.log(searchVal);
38
- }
39
- });
40
- }, 1000);
41
- });
42
- }
43
-
44
- // Promote Premium Widgets
45
- if ( $('#elementor-panel-category-wpr-widgets').length ) {
46
- $('.elementor-element--promotion').on('click', function() {
47
- var dialogButton = $('.dialog-button');
48
- dialogButton.hide();
49
-
50
- if ( $(this).find('.wpr-icon').length ) {
51
- var url = '',
52
- title = $(this).find('.title').text();
53
-
54
- if ( title === 'My Account') {
55
- url += 'https://demosites.royal-elementor-addons.com/fashion-v1/my-account-fashion-v1/?ref=rea-plugin-panel-pro-widgets-myacc-seeitinaction';
56
- } else if ( title === 'Woo Category Grid') {
57
- url += 'https://demosites.royal-elementor-addons.com/fashion-v1/?ref=rea-plugin-panel-pro-widgets-catgrid-seeitinaction#catgridprev';
58
- } else if ( title === 'Product Filters') {
59
- url += 'https://demosites.royal-elementor-addons.com/fashion-v1/shop-fashion-v1/?ref=rea-plugin-panel-pro-widgets-prodfilters-seeitinaction';
60
- } else if ( title === 'Product Breadcrumbs') {
61
- url += 'https://demosites.royal-elementor-addons.com/fashion-v1/product/mans-bluish-hoodie/?ref=rea-plugin-panel-pro-widgets-breadcru-seeitinaction';
62
- }
63
-
64
- if ( !dialogButton.next('a').length ) {
65
- dialogButton.after('<a href="'+ url +'" target="_blank" class="dialog-button elementor-button elementor-button-success">See it in action</a>');
66
- dialogButton.next('a').css('display','block');
67
- } else {
68
- dialogButton.next('a').attr('href', url);
69
- dialogButton.next('a').css('display','block');
70
- }
71
- } else {
72
- dialogButton.show();
73
- dialogButton.next('a').hide();
74
- }
75
- });
76
- }
77
-
78
- });
79
-
80
- // Listen to Elementor Panel Changes
81
- panelMutationObserver.observe($('#elementor-panel')[0], {
82
- childList: true,
83
- subtree: true,
84
- });
85
-
86
- // Make our custom css visible in the panel's front-end
87
- elementor.hooks.addFilter( 'editor/style/styleText', function( css, context ) {
88
- if ( ! context ) {
89
- return;
90
- }
91
-
92
- var model = context.model,
93
- customCSS = model.get('settings').get('wpr_custom_css');
94
- var selector = '.elementor-element.elementor-element-' + model.get('id');
95
-
96
- if ( 'document' === model.get('elType') ) {
97
- selector = elementor.config.document.settings.cssWrapperSelector;
98
- }
99
-
100
- if ( customCSS ) {
101
- css += customCSS.replace(/selector/g, selector);
102
- }
103
-
104
- return css;
105
- });
106
-
107
- // Shortcode Widget: Select Template
108
- function selectShortcodeTemplate( model, e, select, textarea ) {
109
- var shortcode = model.attributes.settings.attributes.shortcode,
110
- shortcode = shortcode.replace ( /[^\d.]/g, '' );
111
-
112
- if ( shortcode === select.val() ) {
113
- return;
114
- }
115
-
116
- // Update Settings
117
- model.attributes.settings.attributes.shortcode = '[wpr-template id="'+ select.val() +'"]';
118
-
119
- // Update Textarea
120
- textarea.val('[wpr-template id="'+ select.val() +'"]');
121
-
122
- // Refresh Preview
123
- model.renderRemoteServer();
124
- }
125
-
126
- elementor.hooks.addAction( 'panel/open_editor/widget/shortcode', function( panel, model, view ) {
127
-
128
- var $select = panel.$el.find('.elementor-control-type-wpr-ajaxselect2'),
129
- $textarea = panel.$el.find('.elementor-control-type-textarea').find('textarea');
130
-
131
- // Change
132
- $select.on( 'select2:select', function( e ) {
133
- selectShortcodeTemplate( model, e, $select, $textarea );
134
- });
135
-
136
- // Render
137
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-wpr-ajaxselect2', function(){
138
- $(this).find( 'select' ).on( 'select2:select', function( e ) {
139
- selectShortcodeTemplate( model, e, $select, $textarea );
140
- } );
141
- });
142
- } );
143
-
144
- // WPR Grid Widget: Select Element (Filter Taxonomies)
145
- function filterGridTaxonomies( data, value ) {
146
- var options = [];
147
-
148
- for ( var key in data ) {
149
- if ( key !== value ) {
150
- for ( var i = 0; i < data[key].length; i++ ) {
151
- options.push( '.elementor-control-element_select select option[value="'+ data[key][i] +'"]' );
152
- }
153
- }
154
- }
155
-
156
- // Reset
157
- $( 'head' ).find( '#element_select_filter_style' ).remove();
158
-
159
- if ( 'related' === value || 'current' === value ) {
160
- return;
161
- }
162
-
163
- // Append Styles
164
- $( 'head' ).append('<style id="element_select_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
165
- }
166
-
167
- // WPR Grid Widget: Post Meta Keys (Filter by Query)
168
- function filterGridMetaKeys( data, value ) {
169
- var options = [];
170
-
171
- for ( var key in data ) {
172
- if ( key !== value ) {
173
- for ( var i = 0; i < data[key].length; i++ ) {
174
- options.push( '.select2-results__options li[data-select2-id*="-'+ data[key][i] +'"]' );
175
- }
176
- }
177
- }
178
-
179
- // Reset
180
- $( 'head' ).find( '#post_meta_keys_filter_style' ).remove();
181
-
182
- // Append Styles
183
- $( 'head' ).append('<style id="post_meta_keys_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
184
- }
185
-
186
- // WPR Grid Widget / List style: Element Location
187
- function disableListLocation( value ) {
188
- // Reset
189
- $( 'head' ).find( '#list_element_location_style' ).remove();
190
-
191
- if ( 'list' !== value ) {
192
- return;
193
- }
194
-
195
- // Append Styles
196
- $( 'head' ).append('<style id="list_element_location_style">.elementor-control-element_location option[value="above"] { display: none !important; }</style>');
197
- }
198
-
199
- // Grid
200
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-grid', function( panel, model, view ) {
201
- var $querySource = panel.$el.find('.elementor-control-query_source').find( 'select' ),
202
- taxonomies = JSON.parse( panel.$el.find('.elementor-control-element_select_filter').find('input').val() ),
203
- metaKeys = JSON.parse( panel.$el.find('.elementor-control-post_meta_keys_filter').find('input').val() );
204
-
205
- // Open
206
- filterGridTaxonomies( taxonomies, $querySource.val() );
207
- filterGridMetaKeys( metaKeys, $querySource.val() );
208
-
209
- // Change
210
- $querySource.on( 'change', function() {
211
- filterGridTaxonomies( taxonomies, $(this).val() );
212
- filterGridMetaKeys( metaKeys, $(this).val() );
213
- });
214
-
215
- // Render Query Source
216
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-query_source', function(){
217
- $(this).find( 'select' ).on( 'change', function() {
218
- filterGridTaxonomies( taxonomies, $(this).val() );
219
- filterGridMetaKeys( metaKeys, $(this).val() );
220
- } );
221
- });
222
-
223
- // Render Layout Select
224
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){
225
- disableListLocation( $(this).find( 'select' ).val() );
226
-
227
- $(this).find( 'select' ).on( 'change', function() {
228
- disableListLocation( $(this).val() );
229
- } );
230
- });
231
-
232
- // Render Grid Elements
233
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
234
-
235
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
236
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
237
-
238
- if ( 'lightbox' === $(this).val() ) {
239
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
240
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
241
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
242
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
243
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
244
- setTimeout(function() {
245
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
246
- }, 100 );
247
- } else {
248
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
249
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
250
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
251
- }
252
- } );
253
- });
254
-
255
- var sOffsets = {};
256
-
257
- // Prevent Bubble on Click
258
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
259
- var current = $(this),
260
- attrClass = current.attr( 'class' ),
261
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
262
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
263
-
264
- var oKey = attrClass.substring( firstIndex, lastIndex ),
265
- oProperty = current.offset().top;
266
-
267
- sOffsets[oKey] = oProperty;
268
-
269
- setTimeout(function() {
270
- current.on( 'click', function( event ) {
271
- var current = $(this),
272
- attrClass = current.attr( 'class' ),
273
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
274
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
275
- sectionClass = attrClass.substring( firstIndex, lastIndex );
276
-
277
- setTimeout( function() {
278
- $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
279
- }, 10 );
280
- });
281
- }, 100 );
282
- });
283
- } );
284
-
285
- // Image Grid
286
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-media-grid', function( panel, model, view ) {
287
- // Render Grid Elements
288
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
289
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
290
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
291
-
292
- if ( 'lightbox' === $(this).val() ) {
293
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
294
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
295
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
296
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
297
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
298
- setTimeout(function() {
299
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
300
- }, 100 );
301
- } else {
302
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
303
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
304
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
305
- }
306
- } );
307
- });
308
- } );
309
-
310
- // Woo Grid
311
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-woo-grid', function( panel, model, view ) {
312
- // Render Grid Elements
313
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
314
- $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
315
- var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
316
-
317
- if ( 'lightbox' === $(this).val() ) {
318
- wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
319
- wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
320
- wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
321
- wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
322
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
323
- setTimeout(function() {
324
- wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
325
- }, 100 );
326
- } else {
327
- wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
328
- wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
329
- wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
330
- }
331
- } );
332
- });
333
-
334
- var sOffsets = {};
335
-
336
- // Prevent Bubble on Click - not working - //tmp
337
- panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
338
- var current = $(this),
339
- attrClass = current.attr( 'class' ),
340
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
341
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
342
-
343
- var oKey = attrClass.substring( firstIndex, lastIndex ),
344
- oPropery = current.offset().top;
345
-
346
- sOffsets[oKey] = oPropery;
347
-
348
- setTimeout(function() {
349
- current.on( 'click', function( event ) {
350
- var current = $(this),
351
- attrClass = current.attr( 'class' ),
352
- firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
353
- lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
354
- sectionClass = attrClass.substring( firstIndex, lastIndex );
355
-
356
- setTimeout( function() {
357
- $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
358
- }, 10 );
359
- });
360
- }, 100 );
361
- });
362
- } );
363
-
364
- // Refresh Mega Menu
365
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-mega-menu', function( panel, model, view ) {
366
- model.renderRemoteServer();
367
- });
368
-
369
- // Get Referrer Link
370
- var referrer = document.referrer;
371
-
372
- // Return to Plugin Page
373
- if ( '' !== referrer && referrer.indexOf( 'page=wpr-addons' ) > -1 ) {
374
- $(window).on( 'load', function() {
375
-
376
- $('#elementor-panel-header-menu-button').on( 'click', function() {
377
-
378
- setTimeout(function() {
379
- $('.elementor-panel-menu-item-exit-to-dashboard').on( 'click', function() {
380
- window.location.href = referrer;
381
- });
382
- }, 300);
383
- });
384
- });
385
- }
386
-
387
- // Advanced Slider - TODO: Check if necessary or remove
388
- // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-advanced-slider', function( panel, model, view ) {
389
- // var elControls = panel.$el,
390
- // $select = elControls.find('.elementor-control-slider_content_type').find('select');
391
-
392
- // if ( 'custom' !== $select.val() ) {
393
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
394
- // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
395
- // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
396
- // } else {
397
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
398
- // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
399
- // }
400
-
401
- // $select.on( 'change', function() {
402
-
403
- // if ( 'custom' !== $(this).val() ) {
404
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
405
- // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
406
- // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
407
- // } else {
408
- // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
409
- // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
410
- // }
411
- // });
412
- // } );
413
-
414
- /*--------------------------------------------------------------
415
- == Widget Preview and Library buttons
416
- --------------------------------------------------------------*/
417
-
418
- for (const [key, value] of Object.entries(registered_modules)) {
419
- elementor.hooks.addAction( 'panel/open_editor/widget/wpr-'+ value[0], function( panel, model, view ) {
420
- openPedefinedStyles( panel.$el, view.$el, value[0], value[1], value[2] );
421
- } );
422
- }
423
-
424
- function openPedefinedStyles( panel, preview, widget, url, filter ) {
425
- panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child', function() {
426
- var theme = $(this).data('theme');
427
- $(this).attr('href', url +'?ref=rea-plugin-panel-'+ widget +'-utmtr'+ theme.slice(0,3) +'nkbs'+ theme.slice(3,theme.length) +'-preview'+ filter);
428
- });
429
-
430
- panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child', function() {
431
- preview.closest('body').find('#wpr-library-btn').attr('data-filter', widget);
432
- preview.closest('body').find('#wpr-library-btn').trigger('click');
433
- });
434
- }
435
-
436
- /*--------------------------------------------------------------
437
- == Reload Theme Builder
438
- --------------------------------------------------------------*/
439
- elementor.once('document:loaded', function(){
440
- setTimeout(function(){
441
- if ( $('body').hasClass('elementor-editor-wpr-theme-builder') ) {
442
- elementor.reloadPreview();
443
- }
444
- }, 10);
445
- });
446
-
447
- }( jQuery ) );
448
-
449
- ( function( $ ) {
450
-
451
- 'use strict';
452
-
453
- var WprMegaMenuEditor = {
454
-
455
- activeSection: false,
456
-
457
- currentElement: false,
458
-
459
- currentSection: false,
460
-
461
- prevSection: false,
462
-
463
-
464
- init: function() {
465
- elementor.channels.editor.on( 'section:activated', WprMegaMenuEditor.sectionActivated );
466
- },
467
-
468
- sectionActivated: function( sectionName, editor ) {
469
-
470
- let currentElement = WprMegaMenuEditor.currentElement = editor.getOption( 'editedElementView' ) || false;
471
-
472
- if ( ! currentElement ) {
473
- return;
474
- }
475
-
476
- if ( 'wpr-mega-menu' == currentElement.model.get( 'widgetType' ) ) {
477
-
478
- // if ( 'section_general' === sectionName ) {}
479
- // currentElement.model.renderRemoteServer();
480
- }
481
-
482
- }
483
-
484
- };
485
-
486
- $( window ).on( 'elementor:init', WprMegaMenuEditor.init );
487
-
488
- window.WprMegaMenuEditor = WprMegaMenuEditor;
489
-
490
- }( jQuery ) );
1
+ ( function( $ ) {//TODO: manage comments
2
+
3
+ "use strict";
4
+
5
+ var panelMutationObserver = new MutationObserver(function(mutations) {
6
+ // Elementor Search Input
7
+ if ( $('#elementor-panel-elements-search-input').length ) {
8
+ var searchTimeout = null;
9
+
10
+ $('#elementor-panel-elements-search-input').on( 'keyup', function(e) {
11
+ if ( e.which === 13 ) {
12
+ return false;
13
+ }
14
+
15
+ if (searchTimeout != null) {
16
+ clearTimeout(searchTimeout);
17
+ }
18
+
19
+ searchTimeout = setTimeout(function() {
20
+ searchTimeout = null;
21
+
22
+ var searchVal = $('#elementor-panel-elements-search-input').val();
23
+
24
+ if ( searchVal.includes('par') && $('.wpr-elementor-search-notice').length < 1 ) {
25
+ $('#elementor-panel-elements-wrapper').prepend('\
26
+ <div class="wpr-elementor-search-notice">\
27
+ <strong>Parallax Background</strong> is only available for the Section elements. <strong>Edit any section</strong> > <strong>"Styles"</strong> tab > <strong>"Parallax - Royal Addons"</strong>.\
28
+ </div>\
29
+ ');
30
+ }
31
+
32
+ elementorCommon.ajax.addRequest( 'wpr_elementor_search_data', {
33
+ data: {
34
+ search_query: searchVal,
35
+ },
36
+ success: function() {
37
+ // console.log(searchVal);
38
+ }
39
+ });
40
+ }, 1000);
41
+ });
42
+ }
43
+
44
+ // Promote Premium Widgets
45
+ if ( $('#elementor-panel-category-wpr-widgets').length ) {
46
+ $('.elementor-element--promotion').on('click', function() {
47
+ var dialogButton = $('.dialog-button');
48
+ dialogButton.hide();
49
+
50
+ if ( $(this).find('.wpr-icon').length ) {
51
+ var url = '',
52
+ title = $(this).find('.title').text();
53
+
54
+ if ( title === 'My Account') {
55
+ url += 'https://demosites.royal-elementor-addons.com/fashion-v1/my-account-fashion-v1/?ref=rea-plugin-panel-pro-widgets-myacc-seeitinaction';
56
+ } else if ( title === 'Woo Category Grid') {
57
+ url += 'https://demosites.royal-elementor-addons.com/fashion-v1/?ref=rea-plugin-panel-pro-widgets-catgrid-seeitinaction#catgridprev';
58
+ } else if ( title === 'Product Filters') {
59
+ url += 'https://demosites.royal-elementor-addons.com/fashion-v1/shop-fashion-v1/?ref=rea-plugin-panel-pro-widgets-prodfilters-seeitinaction';
60
+ } else if ( title === 'Product Breadcrumbs') {
61
+ url += 'https://demosites.royal-elementor-addons.com/fashion-v1/product/mans-bluish-hoodie/?ref=rea-plugin-panel-pro-widgets-breadcru-seeitinaction';
62
+ }
63
+
64
+ if ( !dialogButton.next('a').length ) {
65
+ dialogButton.after('<a href="'+ url +'" target="_blank" class="dialog-button elementor-button elementor-button-success">See it in action</a>');
66
+ dialogButton.next('a').css('display','block');
67
+ } else {
68
+ dialogButton.next('a').attr('href', url);
69
+ dialogButton.next('a').css('display','block');
70
+ }
71
+ } else {
72
+ dialogButton.show();
73
+ dialogButton.next('a').hide();
74
+ }
75
+ });
76
+ }
77
+
78
+ });
79
+
80
+ // Listen to Elementor Panel Changes
81
+ panelMutationObserver.observe($('#elementor-panel')[0], {
82
+ childList: true,
83
+ subtree: true,
84
+ });
85
+
86
+ // Make our custom css visible in the panel's front-end
87
+ elementor.hooks.addFilter( 'editor/style/styleText', function( css, context ) {
88
+ if ( ! context ) {
89
+ return;
90
+ }
91
+
92
+ var model = context.model,
93
+ customCSS = model.get('settings').get('wpr_custom_css');
94
+ var selector = '.elementor-element.elementor-element-' + model.get('id');
95
+
96
+ if ( 'document' === model.get('elType') ) {
97
+ selector = elementor.config.document.settings.cssWrapperSelector;
98
+ }
99
+
100
+ if ( customCSS ) {
101
+ css += customCSS.replace(/selector/g, selector);
102
+ }
103
+
104
+ return css;
105
+ });
106
+
107
+ // Shortcode Widget: Select Template
108
+ function selectShortcodeTemplate( model, e, select, textarea ) {
109
+ var shortcode = model.attributes.settings.attributes.shortcode,
110
+ shortcode = shortcode.replace ( /[^\d.]/g, '' );
111
+
112
+ if ( shortcode === select.val() ) {
113
+ return;
114
+ }
115
+
116
+ // Update Settings
117
+ model.attributes.settings.attributes.shortcode = '[wpr-template id="'+ select.val() +'"]';
118
+
119
+ // Update Textarea
120
+ textarea.val('[wpr-template id="'+ select.val() +'"]');
121
+
122
+ // Refresh Preview
123
+ model.renderRemoteServer();
124
+ }
125
+
126
+ elementor.hooks.addAction( 'panel/open_editor/widget/shortcode', function( panel, model, view ) {
127
+
128
+ var $select = panel.$el.find('.elementor-control-type-wpr-ajaxselect2'),
129
+ $textarea = panel.$el.find('.elementor-control-type-textarea').find('textarea');
130
+
131
+ // Change
132
+ $select.on( 'select2:select', function( e ) {
133
+ selectShortcodeTemplate( model, e, $select, $textarea );
134
+ });
135
+
136
+ // Render
137
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-wpr-ajaxselect2', function(){
138
+ $(this).find( 'select' ).on( 'select2:select', function( e ) {
139
+ selectShortcodeTemplate( model, e, $select, $textarea );
140
+ } );
141
+ });
142
+ } );
143
+
144
+ // WPR Grid Widget: Select Element (Filter Taxonomies)
145
+ function filterGridTaxonomies( data, value ) {
146
+ var options = [];
147
+
148
+ for ( var key in data ) {
149
+ if ( key !== value ) {
150
+ for ( var i = 0; i < data[key].length; i++ ) {
151
+ options.push( '.elementor-control-element_select select option[value="'+ data[key][i] +'"]' );
152
+ }
153
+ }
154
+ }
155
+
156
+ // Reset
157
+ $( 'head' ).find( '#element_select_filter_style' ).remove();
158
+
159
+ if ( 'related' === value || 'current' === value ) {
160
+ return;
161
+ }
162
+
163
+ // Append Styles
164
+ $( 'head' ).append('<style id="element_select_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
165
+ }
166
+
167
+ // WPR Grid Widget: Post Meta Keys (Filter by Query)
168
+ function filterGridMetaKeys( data, value ) {
169
+ var options = [];
170
+
171
+ for ( var key in data ) {
172
+ if ( key !== value ) {
173
+ for ( var i = 0; i < data[key].length; i++ ) {
174
+ options.push( '.select2-results__options li[data-select2-id*="-'+ data[key][i] +'"]' );
175
+ }
176
+ }
177
+ }
178
+
179
+ // Reset
180
+ $( 'head' ).find( '#post_meta_keys_filter_style' ).remove();
181
+
182
+ // Append Styles
183
+ $( 'head' ).append('<style id="post_meta_keys_filter_style">'+ options.join(',') +' { display: none !important; }</style>');
184
+ }
185
+
186
+ // WPR Grid Widget / List style: Element Location
187
+ function disableListLocation( value ) {
188
+ // Reset
189
+ $( 'head' ).find( '#list_element_location_style' ).remove();
190
+
191
+ if ( 'list' !== value ) {
192
+ return;
193
+ }
194
+
195
+ // Append Styles
196
+ $( 'head' ).append('<style id="list_element_location_style">.elementor-control-element_location option[value="above"] { display: none !important; }</style>');
197
+ }
198
+
199
+ // Grid
200
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-grid', function( panel, model, view ) {
201
+ var $querySource = panel.$el.find('.elementor-control-query_source').find( 'select' ),
202
+ taxonomies = JSON.parse( panel.$el.find('.elementor-control-element_select_filter').find('input').val() ),
203
+ metaKeys = JSON.parse( panel.$el.find('.elementor-control-post_meta_keys_filter').find('input').val() );
204
+
205
+ // Open
206
+ filterGridTaxonomies( taxonomies, $querySource.val() );
207
+ filterGridMetaKeys( metaKeys, $querySource.val() );
208
+
209
+ // Change
210
+ $querySource.on( 'change', function() {
211
+ filterGridTaxonomies( taxonomies, $(this).val() );
212
+ filterGridMetaKeys( metaKeys, $(this).val() );
213
+ });
214
+
215
+ // Render Query Source
216
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-query_source', function(){
217
+ $(this).find( 'select' ).on( 'change', function() {
218
+ filterGridTaxonomies( taxonomies, $(this).val() );
219
+ filterGridMetaKeys( metaKeys, $(this).val() );
220
+ } );
221
+ });
222
+
223
+ // Render Layout Select
224
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-layout_select', function(){
225
+ disableListLocation( $(this).find( 'select' ).val() );
226
+
227
+ $(this).find( 'select' ).on( 'change', function() {
228
+ disableListLocation( $(this).val() );
229
+ } );
230
+ });
231
+
232
+ // Render Grid Elements
233
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
234
+
235
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
236
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
237
+
238
+ if ( 'lightbox' === $(this).val() ) {
239
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
240
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
241
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
242
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
243
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
244
+ setTimeout(function() {
245
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
246
+ }, 100 );
247
+ } else {
248
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
249
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
250
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
251
+ }
252
+ } );
253
+ });
254
+
255
+ var sOffsets = {};
256
+
257
+ // Prevent Bubble on Click
258
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
259
+ var current = $(this),
260
+ attrClass = current.attr( 'class' ),
261
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
262
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
263
+
264
+ var oKey = attrClass.substring( firstIndex, lastIndex ),
265
+ oProperty = current.offset().top;
266
+
267
+ sOffsets[oKey] = oProperty;
268
+
269
+ setTimeout(function() {
270
+ current.on( 'click', function( event ) {
271
+ var current = $(this),
272
+ attrClass = current.attr( 'class' ),
273
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
274
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
275
+ sectionClass = attrClass.substring( firstIndex, lastIndex );
276
+
277
+ setTimeout( function() {
278
+ $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
279
+ }, 10 );
280
+ });
281
+ }, 100 );
282
+ });
283
+ } );
284
+
285
+ // Image Grid
286
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-media-grid', function( panel, model, view ) {
287
+ // Render Grid Elements
288
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
289
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
290
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
291
+
292
+ if ( 'lightbox' === $(this).val() ) {
293
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
294
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
295
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
296
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
297
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
298
+ setTimeout(function() {
299
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
300
+ }, 100 );
301
+ } else {
302
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
303
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
304
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
305
+ }
306
+ } );
307
+ });
308
+ } );
309
+
310
+ // Woo Grid
311
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-woo-grid', function( panel, model, view ) {
312
+ // Render Grid Elements
313
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-grid_elements', function() {
314
+ $(this).find( '.elementor-control-element_select select' ).on( 'change', function() {
315
+ var wrapper = $(this).closest( '.elementor-repeater-row-controls' );
316
+
317
+ if ( 'lightbox' === $(this).val() ) {
318
+ wrapper.find('.elementor-control-element_location').find( 'select' ).val( 'over' ).trigger( 'change' );
319
+ wrapper.find('.elementor-control-element_animation').find( 'select' ).val( 'fade-in' ).trigger( 'change' );
320
+ wrapper.find('.elementor-control-element_align_hr').find( 'input' ).eq(1).prop('checked',true).trigger( 'change' );
321
+ wrapper.find('.elementor-control-element_lightbox_overlay').find( 'input' ).prop('checked',true).trigger( 'change' );
322
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'before' ).trigger( 'change' );
323
+ setTimeout(function() {
324
+ wrapper.find('.elementor-control-element_extra_icon_pos').addClass( 'elementor-hidden-control' );
325
+ }, 100 );
326
+ } else {
327
+ wrapper.find('.elementor-control-element_extra_text_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
328
+ wrapper.find('.elementor-control-element_extra_icon_pos').find( 'select' ).val( 'none' ).trigger( 'change' );
329
+ wrapper.find('.elementor-control-element_extra_icon_pos').removeClass( 'elementor-hidden-control' );
330
+ }
331
+ } );
332
+ });
333
+
334
+ var sOffsets = {};
335
+
336
+ // Prevent Bubble on Click - not working - //tmp
337
+ panel.$el.find('#elementor-controls').on( 'DOMNodeInserted ', '.elementor-control-type-section', function() {
338
+ var current = $(this),
339
+ attrClass = current.attr( 'class' ),
340
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
341
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1;
342
+
343
+ var oKey = attrClass.substring( firstIndex, lastIndex ),
344
+ oPropery = current.offset().top;
345
+
346
+ sOffsets[oKey] = oPropery;
347
+
348
+ setTimeout(function() {
349
+ current.on( 'click', function( event ) {
350
+ var current = $(this),
351
+ attrClass = current.attr( 'class' ),
352
+ firstIndex = attrClass.indexOf( 'elementor-control-section_' ),
353
+ lastIndex = attrClass.indexOf( 'elementor-control-type-section' ) - 1,
354
+ sectionClass = attrClass.substring( firstIndex, lastIndex );
355
+
356
+ setTimeout( function() {
357
+ $( '#elementor-panel-content-wrapper' ).scrollTop( sOffsets[sectionClass] - 100 );
358
+ }, 10 );
359
+ });
360
+ }, 100 );
361
+ });
362
+ } );
363
+
364
+ // Refresh Mega Menu
365
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-mega-menu', function( panel, model, view ) {
366
+ model.renderRemoteServer();
367
+ });
368
+
369
+ // Get Referrer Link
370
+ var referrer = document.referrer;
371
+
372
+ // Return to Plugin Page
373
+ if ( '' !== referrer && referrer.indexOf( 'page=wpr-addons' ) > -1 ) {
374
+ $(window).on( 'load', function() {
375
+
376
+ $('#elementor-panel-header-menu-button').on( 'click', function() {
377
+
378
+ setTimeout(function() {
379
+ $('.elementor-panel-menu-item-exit-to-dashboard').on( 'click', function() {
380
+ window.location.href = referrer;
381
+ });
382
+ }, 300);
383
+ });
384
+ });
385
+ }
386
+
387
+ // Advanced Slider - TODO: Check if necessary or remove
388
+ // elementor.hooks.addAction( 'panel/open_editor/widget/wpr-advanced-slider', function( panel, model, view ) {
389
+ // var elControls = panel.$el,
390
+ // $select = elControls.find('.elementor-control-slider_content_type').find('select');
391
+
392
+ // if ( 'custom' !== $select.val() ) {
393
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
394
+ // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
395
+ // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
396
+ // } else {
397
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
398
+ // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
399
+ // }
400
+
401
+ // $select.on( 'change', function() {
402
+
403
+ // if ( 'custom' !== $(this).val() ) {
404
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').addClass('wpr-elementor-hidden-control');
405
+ // elControls.find('.elementor-control-slider_content_type').removeClass('wpr-elementor-hidden-control');
406
+ // elControls.find('.elementor-control-slider_select_template').removeClass('wpr-elementor-hidden-control');
407
+ // } else {
408
+ // elControls.find('.elementor-control-slider_items .elementor-repeater-row-controls .elementor-control').removeClass('wpr-elementor-hidden-control');
409
+ // elControls.find('.elementor-control-slider_select_template').addClass('wpr-elementor-hidden-control');
410
+ // }
411
+ // });
412
+ // } );
413
+
414
+ /*--------------------------------------------------------------
415
+ == Widget Preview and Library buttons
416
+ --------------------------------------------------------------*/
417
+
418
+ for (const [key, value] of Object.entries(registered_modules)) {
419
+ elementor.hooks.addAction( 'panel/open_editor/widget/wpr-'+ value[0], function( panel, model, view ) {
420
+ openPedefinedStyles( panel.$el, view.$el, value[0], value[1], value[2] );
421
+ } );
422
+ }
423
+
424
+ function openPedefinedStyles( panel, preview, widget, url, filter ) {
425
+ panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:first-child', function() {
426
+ var theme = $(this).data('theme');
427
+ $(this).attr('href', url +'?ref=rea-plugin-panel-'+ widget +'-utmtr'+ theme.slice(0,3) +'nkbs'+ theme.slice(3,theme.length) +'-preview'+ filter);
428
+ });
429
+
430
+ panel.on( 'click', '.elementor-control-wpr_library_buttons .elementor-control-raw-html div a:last-child', function() {
431
+ preview.closest('body').find('#wpr-library-btn').attr('data-filter', widget);
432
+ preview.closest('body').find('#wpr-library-btn').trigger('click');
433
+ });
434
+ }
435
+
436
+ /*--------------------------------------------------------------
437
+ == Reload Theme Builder
438
+ --------------------------------------------------------------*/
439
+ elementor.once('document:loaded', function(){
440
+ setTimeout(function(){
441
+ if ( $('body').hasClass('elementor-editor-wpr-theme-builder') ) {
442
+ elementor.reloadPreview();
443
+ }
444
+ }, 10);
445
+ });
446
+
447
+ }( jQuery ) );
448
+
449
+ ( function( $ ) {
450
+
451
+ 'use strict';
452
+
453
+ var WprMegaMenuEditor = {
454
+
455
+ activeSection: false,
456
+
457
+ currentElement: false,
458
+
459
+ currentSection: false,
460
+
461
+ prevSection: false,
462
+
463
+
464
+ init: function() {
465
+ elementor.channels.editor.on( 'section:activated', WprMegaMenuEditor.sectionActivated );
466
+ },
467
+
468
+ sectionActivated: function( sectionName, editor ) {
469
+
470
+ let currentElement = WprMegaMenuEditor.currentElement = editor.getOption( 'editedElementView' ) || false;
471
+
472
+ if ( ! currentElement ) {
473
+ return;
474
+ }
475
+
476
+ if ( 'wpr-mega-menu' == currentElement.model.get( 'widgetType' ) ) {
477
+
478
+ // if ( 'section_general' === sectionName ) {}
479
+ // currentElement.model.renderRemoteServer();
480
+ }
481
+
482
+ }
483
+
484
+ };
485
+
486
+ $( window ).on( 'elementor:init', WprMegaMenuEditor.init );
487
+
488
+ window.WprMegaMenuEditor = WprMegaMenuEditor;
489
+
490
+ }( jQuery ) );
assets/js/frontend.js CHANGED
@@ -1,6343 +1,6343 @@
1
- ( function( $, elementor ) {
2
-
3
- "use strict";
4
-
5
- var WprElements = {
6
-
7
- init: function() {
8
-
9
- var widgets = {
10
- 'wpr-nav-menu.default' : WprElements.widgetNavMenu,
11
- 'wpr-mega-menu.default' : WprElements.widgetMegaMenu,
12
- 'wpr-onepage-nav.default' : WprElements.OnepageNav,
13
- 'wpr-grid.default' : WprElements.widgetGrid,
14
- 'wpr-magazine-grid.default' : WprElements.widgetMagazineGrid,
15
- 'wpr-media-grid.default' : WprElements.widgetGrid,
16
- 'wpr-woo-grid.default' : WprElements.widgetGrid,
17
- 'wpr-woo-category-grid-pro.default' : WprElements.widgetGrid,
18
- 'wpr-featured-media.default' : WprElements.widgetFeaturedMedia,
19
- 'wpr-countdown.default' : WprElements.widgetCountDown,
20
- 'wpr-google-maps.default' : WprElements.widgetGoogleMaps,
21
- 'wpr-before-after.default' : WprElements.widgetBeforeAfter,
22
- 'wpr-mailchimp.default' : WprElements.widgetMailchimp,
23
- 'wpr-advanced-slider.default' : WprElements.widgetAdvancedSlider,
24
- 'wpr-testimonial.default' : WprElements.widgetTestimonialCarousel,
25
- 'wpr-search.default' : WprElements.widgetSearch,
26
- 'wpr-advanced-text.default' : WprElements.widgetAdvancedText,
27
- 'wpr-progress-bar.default' : WprElements.widgetProgressBar,
28
- 'wpr-image-hotspots.default' : WprElements.widgetImageHotspots,
29
- 'wpr-flip-box.default' : WprElements.widgetFlipBox,
30
- 'wpr-content-ticker.default' : WprElements.widgetContentTicker,
31
- 'wpr-tabs.default' : WprElements.widgetTabs,
32
- 'wpr-content-toggle.default' : WprElements.widgetContentToogle,
33
- 'wpr-back-to-top.default': WprElements.widgetBackToTop,
34
- 'wpr-lottie-animations.default': WprElements.widgetLottieAnimations,
35
- 'wpr-posts-timeline.default' : WprElements.widgetPostsTimeline,
36
- 'wpr-sharing-buttons.default' : WprElements.widgetSharingButtons,
37
- 'wpr-flip-carousel.default': WprElements.widgetFlipCarousel,
38
- 'wpr-feature-list.default' : WprElements.widgetFeatureList,
39
- 'wpr-advanced-accordion.default' : WprElements.widgetAdvancedAccordion,
40
- 'wpr-image-accordion.default' : WprElements.widgetImageAccordion,
41
- 'wpr-product-media.default' : WprElements.widgetProductMedia,
42
- 'wpr-product-add-to-cart.default' : WprElements.widgetProductAddToCart,
43
- 'wpr-product-mini-cart.default' : WprElements.widgetProductMiniCart,
44
- 'wpr-product-filters.default' : WprElements.widgetProductFilters,
45
- 'wpr-page-cart.default' : WprElements.widgetPageCart,
46
- 'wpr-my-account-pro.default' : WprElements.widgetPageMyAccount,
47
- 'wpr-reading-progress-bar.default' : WprElements.widgetReadingProgressBar,
48
- 'wpr-data-table.default' : WprElements.widgetDataTable,
49
- 'wpr-charts.default': WprElements.widgetCharts,
50
- 'wpr-taxonomy-list.default': WprElements.widgetTaxonomyList,
51
- 'global': WprElements.widgetSection,
52
-
53
- // Single
54
- 'wpr-post-media.default' : WprElements.widgetPostMedia,
55
- };
56
-
57
- $.each( widgets, function( widget, callback ) {
58
- window.elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widget, callback );
59
- });
60
-
61
- // Remove Mega Menu Templates from "Edit with Elementor"
62
- WprElements.changeAdminBarMenu();
63
- },
64
-
65
- widgetPostMedia: function( $scope ) {
66
- // var gallery = $scope.find( '.wpr-gallery-slider' ),
67
- // gallerySettings = gallery.attr( 'data-slick' );
68
-
69
- // gallery.animate({ 'opacity' : '1' }, 1000 );//tmp
70
-
71
- // if ( '[]' !== gallerySettings ) {
72
- // gallery.slick({
73
- // appendDots : $scope.find( '.wpr-gallery-slider-dots' ),
74
- // customPaging : function ( slider, i ) {
75
- // var slideNumber = (i + 1),
76
- // totalSlides = slider.slideCount;
77
-
78
- // return '<span class="wpr-gallery-slider-dot"></span>';
79
- // }
80
- // });
81
- // }
82
-
83
- // Lightbox
84
- var lightboxSettings = $( '.wpr-featured-media-image' ).attr( 'data-lightbox' );
85
-
86
- if ( typeof lightboxSettings !== typeof undefined && lightboxSettings !== false && ! WprElements.editorCheck() ) {
87
- var MediaWrap = $scope.find( '.wpr-featured-media-wrap' );
88
- lightboxSettings = JSON.parse( lightboxSettings );
89
-
90
- // Init Lightbox
91
- MediaWrap.lightGallery( lightboxSettings );
92
-
93
- // Show/Hide Controls
94
- MediaWrap.on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) {
95
- var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ),
96
- lightboxDownload = $( '#lg-download' ).attr( 'href' );
97
-
98
- if ( $( '#lg-download' ).length ) {
99
- if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) {
100
- lightboxControls.addClass( 'wpr-hidden-element' );
101
- } else {
102
- lightboxControls.removeClass( 'wpr-hidden-element' );
103
- }
104
- }
105
-
106
- // Autoplay Button
107
- if ( '' === lightboxSettings.autoplay ) {
108
- $( '.lg-autoplay-button' ).css({
109
- 'width' : '0',
110
- 'height' : '0',
111
- 'overflow' : 'hidden'
112
- });
113
- }
114
- });
115
- }
116
- }, // End widgetFeaturedMedia
117
-
118
- widgetSection: function( $scope ) {
119
-
120
- if ( $scope.attr('data-wpr-particles') || $scope.find('.wpr-particle-wrapper').attr('data-wpr-particles-editor') ) {
121
- particlesEffect();
122
- }
123
-
124
- if ( $scope.hasClass('wpr-jarallax') || $scope.hasClass('wpr-jarallax-yes') ) {
125
- parallaxBackground();
126
- }
127
-
128
- if ( $scope.hasClass('wpr-parallax-yes') ) {
129
- parallaxMultiLayer();
130
- }
131
-
132
- if ( $scope.hasClass('wpr-sticky-section-yes') ) {
133
-
134
- var positionType = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-type') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-type'),
135
- positionLocation = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-location') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-location'),
136
- positionOffset = !WprElements.editorCheck() ? $scope.attr('data-wpr-position-offset') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-position-offset'),
137
- viewportWidth = $('body').prop('clientWidth') + 17,
138
- availableDevices = !WprElements.editorCheck() ? $scope.attr('data-wpr-sticky-devices') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-sticky-devices'),
139
- activeDevices = !WprElements.editorCheck() ? $scope.attr('data-wpr-active-breakpoints') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-active-breakpoints'),
140
- stickySectionExists = $scope.hasClass('wpr-sticky-section-yes') || $scope.find('.wpr-sticky-section-yes-editor') ? true : false,
141
- positionStyle,
142
- adminBarHeight,
143
- stickyHeaderFooter = $scope.closest('div[data-elementor-type="wp-post"]').length ? $scope.closest('div[data-elementor-type="wp-post"]') : '',
144
- headerFooterZIndex = !WprElements.editorCheck() ? $scope.attr('data-wpr-z-index') : $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-z-index');
145
-
146
- if ( !$scope.find('.wpr-sticky-section-yes-editor').length) {
147
- positionType = $scope.attr('data-wpr-position-type');
148
- positionLocation = $scope.attr('data-wpr-position-location');
149
- positionOffset = $scope.attr('data-wpr-position-offset');
150
- availableDevices = $scope.attr('data-wpr-sticky-devices');
151
- activeDevices = $scope.attr('data-wpr-active-breakpoints');
152
- headerFooterZIndex = $scope.attr('data-wpr-z-index');
153
- }
154
-
155
- if ( 'top' === positionLocation && 'auto' === $scope.css('top') ) {
156
- var offsetTop = 0;
157
- $scope.css('top', 0);
158
- } else {
159
- var offsetTop = +$scope.css('top').slice(0, -2);
160
- }
161
-
162
- if ( 0 == availableDevices.length ) {
163
- positionType = 'static';
164
- }
165
-
166
- if ( WprElements.editorCheck() && availableDevices ) {
167
- var attributes = $scope.find('.wpr-sticky-section-yes-editor').attr('data-wpr-sticky-devices');
168
- $scope.attr('data-wpr-sticky-devices', attributes);
169
- availableDevices = $scope.attr('data-wpr-sticky-devices');
170
- }
171
-
172
- changePositionType();
173
- changeAdminBarOffset();
174
-
175
- $(window).resize(function() {
176
- viewportWidth = $('body').prop('clientWidth') + 17,
177
- changePositionType();
178
- });
179
-
180
- if (!stickySectionExists) {
181
- positionStyle = 'static';
182
- }
183
-
184
- function changePositionType() {
185
- if ( !$scope.hasClass('wpr-sticky-section-yes') || !$scope.find('.wpr-sticky-section-yes-editor') ) {
186
- positionStyle = 'static';
187
- return;
188
- }
189
-
190
- var checkDevices = [['mobile_sticky', 768], ['mobile_extra_sticky', 881], ['tablet_sticky', 1025], ['tablet_extra_sticky', 1201], ['laptop_sticky', 1216], ['desktop_sticky', 2400], ['widescreen_sticky', 4000]];
191
- var emptyVariables = [];
192
-
193
- var checkedDevices = checkDevices.filter((item, index) => {
194
- return activeDevices.indexOf(item[0]) != -1;
195
- }).reverse();
196
-
197
- checkedDevices.forEach((device, index) => {
198
- if ( (device[1] > viewportWidth) && availableDevices.indexOf(device[0]) === -1 ) {
199
- positionStyle = activeDevices?.indexOf(device[0]) !== -1 ? 'static' : (emptyVariables[index - 1] ? emptyVariables[index - 1] : positionType);
200
- // positionStyle = activeDevices && activeDevices.indexOf(device[0]) !== -1 ? 'static' : (emptyVariables[index - 1] ? emptyVariables[index - 1] : positionType);
201
- emptyVariables[index] = positionStyle;
202
- } else if ( ( device[1] > viewportWidth) && availableDevices.indexOf(device[0]) !== -1 ) {
203
- positionStyle = positionType;
204
- }
205
- });
206
-
207
- applyPosition();
208
- }
209
-
210
- function applyPosition() {
211
- var bottom = +window.innerHeight - (+$scope.css('top').slice(0, -2) + $scope.height());
212
- var top = +window.innerHeight - (+$scope.css('bottom').slice(0, -2) + $scope.height());
213
- if ( 'top' === positionLocation ) {
214
- $scope.css({'position': positionStyle });
215
- if ( '' !== stickyHeaderFooter ) {
216
- // stickyHeaderFooter = stickyHeaderFooter.find('.wpr-sticky-section-yes');
217
- stickyHeaderFooter.css({'position': positionStyle, 'top': positionOffset + 'px', 'bottom': 'auto', 'z-index': headerFooterZIndex, 'width': '100%' });
218
- }
219
- }
220
- else {
221
- $scope.css({'position': positionStyle });
222
- if ( '' !== stickyHeaderFooter ) {
223
- stickyHeaderFooter = stickyHeaderFooter.find('.wpr-sticky-section-yes');
224
- stickyHeaderFooter.css({'position': positionStyle, 'bottom': positionOffset + 'px', 'top': 'auto', 'z-index': headerFooterZIndex, 'width': '100%' });
225
- }
226
- }
227
- }
228
-
229
- function changeAdminBarOffset() {
230
- if ( $('#wpadminbar').length ) {
231
- adminBarHeight = $('#wpadminbar').css('height').slice(0, $('#wpadminbar').css('height').length - 2);
232
- if ( 'top' === positionLocation && ( 'fixed' == $scope.css('position') || 'sticky' == $scope.css('position') ) ) {
233
- $scope.css('top', +adminBarHeight + offsetTop + 'px');
234
- $scope.css('bottom', 'auto');
235
- }
236
- }
237
- }
238
-
239
- }
240
-
241
- function particlesEffect() {
242
- var elementType = $scope.data('element_type'),
243
- sectionID = $scope.data('id'),
244
- particlesJSON = ! WprElements.editorCheck() ? $scope.attr('data-wpr-particles') : $scope.find('.wpr-particle-wrapper').attr('data-wpr-particles-editor');
245
-
246
- if ( 'section' === elementType && undefined !== particlesJSON ) {
247
- // Frontend
248
- if ( ! WprElements.editorCheck() ) {
249
- $scope.prepend('<div class="wpr-particle-wrapper" id="wpr-particle-'+ sectionID +'"></div>');
250
-
251
- particlesJS('wpr-particle-'+ sectionID, $scope.attr('particle-source') == 'wpr_particle_json_custom' ? JSON.parse(particlesJSON) : modifyJSON(particlesJSON));
252
- // Editor
253
- } else {
254
- if ( $scope.hasClass('wpr-particle-yes') ) {
255
- particlesJS( 'wpr-particle-'+ sectionID, $scope.find('.wpr-particle-wrapper').attr('particle-source') == 'wpr_particle_json_custom' ? JSON.parse(particlesJSON) : modifyJSON(particlesJSON));
256
-
257
- $scope.find('.elementor-column').css('z-index', 9);
258
-
259
- $(window).trigger('resize');
260
- } else {
261
- $scope.find('.wpr-particle-wrapper').remove();
262
- }
263
- }
264
- }
265
- }
266
-
267
- function modifyJSON(json) {
268
- var wpJson = JSON.parse(json),
269
- particles_quantity = ! WprElements.editorCheck() ? $scope.attr('wpr-quantity') : $scope.find('.wpr-particle-wrapper').attr('wpr-quantity'),
270
- particles_color = ! WprElements.editorCheck() ? $scope.attr('wpr-color') || '#000000' : $scope.find('.wpr-particle-wrapper').attr('wpr-color') ? $scope.find('.wpr-particle-wrapper').attr('wpr-color') : '#000000',
271
- particles_speed = ! WprElements.editorCheck() ? $scope.attr('wpr-speed') : $scope.find('.wpr-particle-wrapper').attr('wpr-speed'),
272
- particles_shape = ! WprElements.editorCheck() ? $scope.attr('wpr-shape') : $scope.find('.wpr-particle-wrapper').attr('wpr-shape'),
273
- particles_size = ! WprElements.editorCheck() ? $scope.attr('wpr-size') : $scope.find('.wpr-particle-wrapper').attr('wpr-size');
274
-
275
- wpJson.particles.size.value = particles_size;
276
- wpJson.particles.number.value = particles_quantity;
277
- wpJson.particles.color.value = particles_color;
278
- wpJson.particles.shape.type = particles_shape;
279
- wpJson.particles.line_linked.color = particles_color;
280
- wpJson.particles.move.speed = particles_speed;
281
-
282
- return wpJson;
283
- }
284
-
285
- function parallaxBackground() {
286
- if ( $scope.hasClass('wpr-jarallax-yes') ) {
287
- if ( ! WprElements.editorCheck() && $scope.hasClass('wpr-jarallax') ) {
288
- $scope.css('background-image', 'url("' + $scope.attr('bg-image') + '")');
289
- $scope.jarallax({
290
- type: $scope.attr('scroll-effect'),
291
- speed: $scope.attr('speed-data'),
292
- });
293
- } else if ( WprElements.editorCheck() ) {
294
- $scope.css('background-image', 'url("' + $scope.find('.wpr-jarallax').attr('bg-image-editor') + '")');
295
- $scope.jarallax({
296
- type: $scope.find('.wpr-jarallax').attr('scroll-effect-editor'),
297
- speed: $scope.find('.wpr-jarallax').attr('speed-data-editor')
298
- });
299
- }
300
- }
301
- }
302
-
303
- function parallaxMultiLayer() {
304
- if ( $scope.hasClass('wpr-parallax-yes') ) {
305
- var scene = document.getElementsByClassName('wpr-parallax-multi-layer');
306
-
307
- var parallaxInstance = Array.from(scene).map(item => {
308
- return new Parallax(item, {
309
- invertY: item.getAttribute('direction') == 'yes' ? true : false,
310
- invertX: item.getAttribute('direction') == 'yes' ? true : false,
311
- scalarX: item.getAttribute('scalar-speed'),
312
- scalarY: item.getAttribute('scalar-speed'),
313
- hoverOnly: true,
314
- pointerEvents: true
315
- });
316
- });
317
-
318
- parallaxInstance.forEach(parallax => {
319
- parallax.friction(0.2, 0.2);
320
- });
321
- }
322
- if ( ! WprElements.editorCheck() ) {
323
- var newScene = [];
324
-
325
- document.querySelectorAll('.wpr-parallax-multi-layer').forEach((element, index) => {
326
- element.parentElement.style.position = "relative";
327
- element.style.position = "absolute";
328
- newScene.push(element);
329
- element.remove();
330
- });
331
-
332
- document.querySelectorAll('.wpr-parallax-ml-children').forEach((element, index) => {
333
- element.style.position = "absolute";
334
- element.style.top = element.getAttribute('style-top');
335
- element.style.left = element.getAttribute('style-left');
336
- });
337
-
338
- $('.wpr-parallax-yes').each(function(index) {
339
- $(this).append(newScene[index]);
340
- });
341
- }
342
- }
343
- }, // end widgetSection
344
-
345
- widgetNavMenu: function( $scope ) {
346
-
347
- var $navMenu = $scope.find( '.wpr-nav-menu-container' ),
348
- $mobileNavMenu = $scope.find( '.wpr-mobile-nav-menu-container' );
349
-
350
- // Menu
351
- var subMenuFirst = $navMenu.find( '.wpr-nav-menu > li.menu-item-has-children' ),
352
- subMenuDeep = $navMenu.find( '.wpr-sub-menu li.menu-item-has-children' );
353
-
354
- if ( $navMenu.attr('data-trigger') === 'click' ) {
355
- // First Sub
356
- subMenuFirst.children('a').on( 'click', function(e) {
357
- var currentItem = $(this).parent(),
358
- childrenSub = currentItem.children('.wpr-sub-menu');
359
-
360
- // Reset
361
- subMenuFirst.not(currentItem).removeClass('wpr-sub-open');
362
- if ( $navMenu.hasClass('wpr-nav-menu-horizontal') || ( $navMenu.hasClass('wpr-nav-menu-vertical') && $scope.hasClass('wpr-sub-menu-position-absolute') ) ) {
363
- subMenuAnimation( subMenuFirst.children('.wpr-sub-menu'), false );
364
- }
365
-
366
- if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) {
367
- e.preventDefault();
368
- currentItem.addClass('wpr-sub-open');
369
- subMenuAnimation( childrenSub, true );
370
- } else {
371
- currentItem.removeClass('wpr-sub-open');
372
- subMenuAnimation( childrenSub, false );
373
- }
374
- });
375
-
376
- // Deep Subs
377
- subMenuDeep.on( 'click', function(e) {
378
- var currentItem = $(this),
379
- childrenSub = currentItem.children('.wpr-sub-menu');
380
-
381
- // Reset
382
- if ( $navMenu.hasClass('wpr-nav-menu-horizontal') ) {
383
- subMenuAnimation( subMenuDeep.find('.wpr-sub-menu'), false );
384
- }
385
-
386
- if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) {
387
- e.preventDefault();
388
- currentItem.addClass('wpr-sub-open');
389
- subMenuAnimation( childrenSub, true );
390
-
391
- } else {
392
- currentItem.removeClass('wpr-sub-open');
393
- subMenuAnimation( childrenSub, false );
394
- }
395
- });
396
-
397
- // Reset Subs on Document click
398
- $( document ).mouseup(function (e) {
399
- if ( ! subMenuFirst.is(e.target) && subMenuFirst.has(e.target).length === 0 ) {
400
- subMenuFirst.not().removeClass('wpr-sub-open');
401
- subMenuAnimation( subMenuFirst.children('.wpr-sub-menu'), false );
402
- }
403
- if ( ! subMenuDeep.is(e.target) && subMenuDeep.has(e.target).length === 0 ) {
404
- subMenuDeep.removeClass('wpr-sub-open');
405
- subMenuAnimation( subMenuDeep.children('.wpr-sub-menu'), false );
406
- }
407
- });
408
- } else {
409
- // Mouse Over
410
- subMenuFirst.on( 'mouseenter', function() {
411
- if ( $navMenu.hasClass('wpr-nav-menu-vertical') && $scope.hasClass('wpr-sub-menu-position-absolute') ) {
412
- $navMenu.find('li').not(this).children('.wpr-sub-menu').hide();
413
- // BUGFIX: when menu is vertical and absolute positioned, lvl2 depth sub menus wont show properly on hover
414
- }
415
-
416
- subMenuAnimation( $(this).children('.wpr-sub-menu'), true );
417
- });
418
-
419
- // Deep Subs
420
- subMenuDeep.on( 'mouseenter', function() {
421
- subMenuAnimation( $(this).children('.wpr-sub-menu'), true );
422
- });
423
-
424
-
425
- // Mouse Leave
426
- if ( $navMenu.hasClass('wpr-nav-menu-horizontal') ) {
427
- subMenuFirst.on( 'mouseleave', function() {
428
- subMenuAnimation( $(this).children('.wpr-sub-menu'), false );
429
- });
430
-
431
- subMenuDeep.on( 'mouseleave', function() {
432
- subMenuAnimation( $(this).children('.wpr-sub-menu'), false );
433
- });
434
- } else {
435
-
436
- $navMenu.on( 'mouseleave', function() {
437
- subMenuAnimation( $(this).find('.wpr-sub-menu'), false );
438
- });
439
- }
440
- }
441
-
442
-
443
- // Mobile Menu
444
- var mobileMenu = $mobileNavMenu.find( '.wpr-mobile-nav-menu' );
445
-
446
- // Toggle Button
447
- $mobileNavMenu.find( '.wpr-mobile-toggle' ).on( 'click', function() {
448
- $(this).toggleClass('wpr-mobile-toggle-fx');
449
-
450
- if ( ! $(this).hasClass('wpr-mobile-toggle-open') ) {
451
- $(this).addClass('wpr-mobile-toggle-open');
452
-
453
- if ( $(this).find('.wpr-mobile-toggle-text').length ) {
454
- $(this).children().eq(0).hide();
455
- $(this).children().eq(1).show();
456
- }
457
- } else {
458
- $(this).removeClass('wpr-mobile-toggle-open');
459
- $(this).trigger('focusout');
460
-
461
- if ( $(this).find('.wpr-mobile-toggle-text').length ) {
462
- $(this).children().eq(1).hide();
463
- $(this).children().eq(0).show();
464
- }
465
- }
466
-
467
- // Show Menu
468
- $(this).parent().next().stop().slideToggle();
469
-
470
- // Fix Width
471
- fullWidthMobileDropdown();
472
- });
473
-
474
- // Sub Menu Class
475
- mobileMenu.find('.sub-menu').removeClass('wpr-sub-menu').addClass('wpr-mobile-sub-menu');
476
-
477
- // Sub Menu Dropdown
478
- mobileMenu.find('.menu-item-has-children').children('a').on( 'click', function(e) {
479
- var parentItem = $(this).closest('li');
480
-
481
- // Toggle
482
- if ( ! parentItem.hasClass('wpr-mobile-sub-open') ) {
483
- e.preventDefault();
484
- parentItem.addClass('wpr-mobile-sub-open');
485
- parentItem.children('.wpr-mobile-sub-menu').first().stop().slideDown();
486
- } else {
487
- parentItem.removeClass('wpr-mobile-sub-open');
488
- parentItem.children('.wpr-mobile-sub-menu').first().stop().slideUp();
489
- }
490
- });
491
-
492
- // Run Functions
493
- fullWidthMobileDropdown();
494
-
495
- // Run Functions on Resize
496
- $(window).smartresize(function() {
497
- fullWidthMobileDropdown();
498
- });
499
-
500
- // Full Width Dropdown
501
- function fullWidthMobileDropdown() {
502
- if ( ! $scope.hasClass( 'wpr-mobile-menu-full-width' ) || ! $scope.closest('.elementor-column').length ) {
503
- return;
504
- }
505
-
506
- var eColumn = $scope.closest('.elementor-column'),
507
- mWidth = $scope.closest('.elementor-top-section').outerWidth() - 2 * mobileMenu.offset().left,
508
- mPosition = eColumn.offset().left + parseInt(eColumn.css('padding-left'), 10);
509
-
510
- mobileMenu.css({
511
- 'width' : mWidth +'px',
512
- 'left' : - mPosition +'px'
513
- });
514
- }
515
-
516
- // Sub Menu Animation
517
- function subMenuAnimation( selector, show ) {
518
- if ( show === true ) {
519
- if ( $scope.hasClass('wpr-sub-menu-fx-slide') ) {
520
- selector.stop().slideDown();
521
- } else {
522
- selector.stop().fadeIn();
523
- }
524
- } else {
525
- if ( $scope.hasClass('wpr-sub-menu-fx-slide') ) {
526
- selector.stop().slideUp();
527
- } else {
528
- selector.stop().fadeOut();
529
- }
530
- }
531
- }
532
-
533
- }, // End widgetNavMenu
534
-
535
- widgetMegaMenu: function( $scope ) {
536
-
537
- var $navMenu = $scope.find( '.wpr-nav-menu-container' ),
538
- $mobileNavMenu = $scope.find( '.wpr-mobile-nav-menu-container' );
539
-
540
- // Menu
541
- var subMenuFirst = $navMenu.find( '.wpr-nav-menu > li.menu-item-has-children' ),
542
- subMenuDeep = $navMenu.find( '.wpr-sub-menu li.menu-item-has-children' );
543
-
544
- // Click
545
- if ( $navMenu.attr('data-trigger') === 'click' ) {
546
- // First Sub
547
- subMenuFirst.children('a').on( 'click', function(e) {
548
- var currentItem = $(this).parent(),
549
- childrenSub = currentItem.children('.wpr-sub-menu, .wpr-sub-mega-menu');
550
-
551
- // Reset
552
- subMenuFirst.not(currentItem).removeClass('wpr-sub-open');
553
- if ( $navMenu.hasClass('wpr-nav-menu-horizontal') || ( $navMenu.hasClass('wpr-nav-menu-vertical') ) ) {
554
- subMenuAnimation( subMenuFirst.children('.wpr-sub-menu, .wpr-sub-mega-menu'), false );
555
- }
556
-
557
- if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) {
558
- e.preventDefault();
559
- currentItem.addClass('wpr-sub-open');
560
- subMenuAnimation( childrenSub, true );
561
- } else {
562
- currentItem.removeClass('wpr-sub-open');
563
- subMenuAnimation( childrenSub, false );
564
- }
565
- });
566
-
567
- // Deep Subs
568
- subMenuDeep.on( 'click', function(e) {
569
- var currentItem = $(this),
570
- childrenSub = currentItem.children('.wpr-sub-menu');
571
-
572
- // Reset
573
- if ( $navMenu.hasClass('wpr-nav-menu-horizontal') ) {
574
- subMenuAnimation( subMenuDeep.find('.wpr-sub-menu'), false );
575
- }
576
-
577
- if ( ! currentItem.hasClass( 'wpr-sub-open' ) ) {
578
- e.preventDefault();
579
- currentItem.addClass('wpr-sub-open');
580
- subMenuAnimation( childrenSub, true );
581
-
582
- } else {
583
- currentItem.removeClass('wpr-sub-open');
584
- subMenuAnimation( childrenSub, false );
585
- }
586
- });
587
-
588
- // Reset Subs on Document click
589
- $( document ).mouseup(function (e) {
590
- if ( ! subMenuFirst.is(e.target) && subMenuFirst.has(e.target).length === 0 ) {
591
- subMenuFirst.not().removeClass('wpr-sub-open');
592
- subMenuAnimation( subMenuFirst.children('.wpr-sub-menu, .wpr-sub-mega-menu'), false );
593
- }
594
- if ( ! subMenuDeep.is(e.target) && subMenuDeep.has(e.target).length === 0 ) {
595
- subMenuDeep.removeClass('wpr-sub-open');
596
- subMenuAnimation( subMenuDeep.children('.wpr-sub-menu'), false );
597
- }
598
- });
599
-
600
- // Hover
601
- } else {
602
- // Mouse Over
603
- subMenuFirst.on( 'mouseenter', function() {
604
- subMenuAnimation( $(this).children('.wpr-sub-menu, .wpr-sub-mega-menu'), true );
605
- });
606
-
607
- subMenuDeep.on( 'mouseenter', function() {
608
- subMenuAnimation( $(this).children('.wpr-sub-menu'), true );
609
- });
610
-
611
- // Mouse Leave
612
- subMenuFirst.on( 'mouseleave', function() {
613
- subMenuAnimation( $(this).children('.wpr-sub-menu, .wpr-sub-mega-menu'), false );
614
- });
615
-
616
- subMenuDeep.on( 'mouseleave', function() {
617
- subMenuAnimation( $(this).children('.wpr-sub-menu'), false );
618
- });
619
- }
620
-
621
- // Mobile Menu
622
- var mobileMenu = $mobileNavMenu.find( '.wpr-mobile-nav-menu' );
623
-
624
- // Toggle Button
625
- $mobileNavMenu.find( '.wpr-mobile-toggle' ).on( 'click', function() {
626
- // Change Toggle Text
627
- if ( ! $(this).hasClass('wpr-mobile-toggle-open') ) {
628
- $(this).addClass('wpr-mobile-toggle-open');
629
-
630
- if ( $(this).find('.wpr-mobile-toggle-text').length ) {
631
- $(this).children().eq(0).hide();
632
- $(this).children().eq(1).show();
633
- }
634
- } else {
635
- $(this).removeClass('wpr-mobile-toggle-open');
636
- $(this).trigger('focusout');
637
-
638
- if ( $(this).find('.wpr-mobile-toggle-text').length ) {
639
- $(this).children().eq(1).hide();
640
- $(this).children().eq(0).show();
641
- }
642
- }
643
-
644
- // Show Menu
645
- if ( $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
646
- $('body').css('overflow', 'hidden');
647
- $(this).parent().siblings('.wpr-mobile-mega-menu-wrap').toggleClass('wpr-mobile-mega-menu-open');
648
- } else {
649
- $(this).parent().siblings('.wpr-mobile-mega-menu-wrap').stop().slideToggle();
650
- }
651
-
652
- // Hide Off-Canvas Menu
653
- $scope.find('.mobile-mega-menu-close').on('click', function() {
654
- $(this).closest('.wpr-mobile-mega-menu-wrap').removeClass('wpr-mobile-mega-menu-open');
655
- $('body').css('overflow', 'visible');
656
- });
657
- $scope.find('.wpr-mobile-mega-menu-overlay').on('click', function() {
658
- $(this).siblings('.wpr-mobile-mega-menu-wrap').removeClass('wpr-mobile-mega-menu-open');
659
- $('body').css('overflow', 'visible');
660
- });
661
-
662
- // Fix Width
663
- fullWidthMobileDropdown();
664
- });
665
-
666
- // Sub Menu Class
667
- mobileMenu.find('.sub-menu').removeClass('wpr-sub-menu').addClass('wpr-mobile-sub-menu');
668
-
669
- // Add Submenu Icon
670
- let mobileSubIcon = mobileMenu.find('.wpr-mobile-sub-icon'),
671
- mobileSubIconClass = 'fas ';
672
-
673
- if ( $scope.hasClass('wpr-sub-icon-caret-down') ) {
674
- mobileSubIconClass += 'fa-caret-down';
675
- } else if ( $scope.hasClass('wpr-sub-icon-angle-down') ) {
676
- mobileSubIconClass += 'fa-angle-down';
677
- } else if ( $scope.hasClass('wpr-sub-icon-chevron-down') ) {
678
- mobileSubIconClass += 'fa-chevron-down';
679
- } else if ( $scope.hasClass('wpr-sub-icon-plus') ) {
680
- mobileSubIconClass += 'fa-plus';
681
- }
682
-
683
- mobileSubIcon.addClass(mobileSubIconClass);
684
-
685
- // Sub Menu Dropdown
686
- mobileMenu.find('.menu-item-has-children > a .wpr-mobile-sub-icon, .menu-item-has-children > a[href="#"]').on( 'click', function(e) {
687
- e.preventDefault();
688
- e.stopPropagation();
689
-
690
- var parentItem = $(this).closest('li.menu-item');
691
-
692
- // Toggle
693
- if ( ! parentItem.hasClass('wpr-mobile-sub-open') ) {
694
- e.preventDefault();
695
- parentItem.addClass('wpr-mobile-sub-open');
696
-
697
- if ( ! $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
698
- $(window).trigger('resize');
699
- parentItem.children('.wpr-mobile-sub-menu').first().stop().slideDown();
700
- }
701
-
702
- // Mega Menu
703
- if ( parentItem.hasClass('wpr-mega-menu-true') ) {
704
- if ( parentItem.hasClass('wpr-mega-menu-ajax') && ! parentItem.find('.wpr-mobile-sub-mega-menu').find('.elementor').length ) {
705
- let subIcon = parentItem.find('.wpr-mobile-sub-icon');
706
-
707
- $.ajax({
708
- type: 'GET',
709
- url: WprConfig.resturl + '/wprmegamenu/',
710
- data: {
711
- item_id: parentItem.data('id')
712
- },
713
- beforeSend:function() {
714
- subIcon.removeClass(mobileSubIconClass).addClass('fas fa-circle-notch fa-spin');
715
- },
716
- success: function( response ) {
717
- subIcon.removeClass('fas fa-circle-notch fa-spin').addClass(mobileSubIconClass);
718
-
719
- if ( $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
720
- parentItem.find('.wpr-menu-offcanvas-back').after(response);
721
- offCanvasSubMenuAnimation( parentItem );
722
- } else {
723
- parentItem.find('.wpr-mobile-sub-mega-menu').html(response);
724
- parentItem.children('.wpr-mobile-sub-mega-menu').slideDown();
725
- }
726
-
727
- parentItem.find('.wpr-mobile-sub-mega-menu').find('.elementor-element').each(function() {
728
- elementorFrontend.elementsHandler.runReadyTrigger($(this));
729
- });
730
- }
731
- });
732
- } else {
733
- if ( $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
734
- offCanvasSubMenuAnimation( parentItem );
735
- } else {
736
- parentItem.children('.wpr-mobile-sub-mega-menu').slideDown();
737
- }
738
- }
739
- } else {
740
- if ( $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
741
- offCanvasSubMenuAnimation( parentItem );
742
- }
743
- }
744
-
745
- } else {
746
- // SlideUp
747
- parentItem.removeClass('wpr-mobile-sub-open');
748
-
749
- if ( ! $scope.hasClass('wpr-mobile-menu-display-offcanvas') ) {
750
- parentItem.children('.wpr-mobile-sub-menu').slideUp();
751
- parentItem.children('.wpr-mobile-sub-mega-menu').slideUp();
752
- }
753
- }
754
- });
755
-
756
- // Off-Canvas Back Button
757
- $scope.find('.wpr-menu-offcanvas-back').on('click', function() {
758
- $(this).closest('.wpr-mobile-mega-menu').removeClass('wpr-mobile-sub-offcanvas-open');
759
- $(this).closest('.menu-item').removeClass('wpr-mobile-sub-open');
760
- $scope.find('.wpr-mobile-mega-menu-wrap').removeAttr('style');
761
- $scope.find('.wpr-mobile-sub-mega-menu').removeAttr('style');
762
- });
763
-
764
- // Run Functions
765
- MegaMenuCustomWidth();
766
- fullWidthMobileDropdown();
767
-
768
- // Run Functions on Resize
769
- $(window).smartresize(function() {
770
- MegaMenuCustomWidth();
771
- fullWidthMobileDropdown();
772
- });
773
-
774
- // Mega Menu Full or Custom Width
775
- function MegaMenuCustomWidth() {
776
- let megaItem = $scope.find('.wpr-mega-menu-true');
777
-
778
- megaItem.each(function() {
779
- let megaSubMenu = $(this).find('.wpr-sub-mega-menu')
780
-
781
- if ( $(this).hasClass('wpr-mega-menu-width-full') ) {
782
- megaSubMenu.css({
783
- 'max-width' : $(window).width() +'px',
784
- 'left' : - $scope.find('.wpr-nav-menu-container').offset().left +'px'
785
- });
786
- } else if ( $(this).hasClass('wpr-mega-menu-width-stretch') ) {
787
- let elContainer = $(this).closest('.elementor-section');
788
- elContainer = elContainer.hasClass('elementor-inner-section') ? elContainer : elContainer.children('.elementor-container');
789
-
790
- let elWidgetGap = !elContainer.hasClass('elementor-inner-section') ? elContainer.find('.elementor-element-populated').css('padding') : '0';
791
- elWidgetGap = parseInt(elWidgetGap.replace('px', ''), 10);
792
-
793
- let elContainerWidth = elContainer.outerWidth() - (elWidgetGap * 2),
794
- offsetLeft = -($scope.offset().left - elContainer.offset().left) + elWidgetGap;
795
-
796
- megaSubMenu.css({
797
- 'width' : elContainerWidth +'px',
798
- 'left' : offsetLeft +'px'
799
- });
800
- } else if ( $(this).hasClass('wpr-mega-menu-width-custom') ) {
801
- megaSubMenu.css({
802
- 'width' : $(this).data('custom-width') +'px',
803
- });
804
- } else if ( $(this).hasClass('wpr-mega-menu-width-default') && $(this).hasClass('wpr-mega-menu-pos-relative') ) {
805
- megaSubMenu.css({
806
- 'width' : $(this).closest('.elementor-column').outerWidth() +'px',
807
- });
808
- }
809
- });
810
- }
811
-
812
- // Full Width Dropdown
813
- function fullWidthMobileDropdown() {
814
- if ( ! $scope.hasClass( 'wpr-mobile-menu-full-width' ) || ! $scope.closest('.elementor-column').length ) {
815
- return;
816
- }
817
-
818
- var eColumn = $scope.closest('.elementor-column'),
819
- mWidth = $scope.closest('.elementor-top-section').outerWidth() - 2 * mobileMenu.offset().left,
820
- mPosition = eColumn.offset().left + parseInt(eColumn.css('padding-left'), 10);
821
-
822
- mobileMenu.parent('div').css({
823
- 'width' : mWidth +'px',
824
- 'left' : - mPosition +'px'
825
- });
826
- }
827
-
828
- // Sub Menu Animation
829
- function subMenuAnimation( selector, show ) {
830
- if ( show === true ) {
831
- selector.stop().addClass('wpr-animate-sub');
832
- } else {
833
- selector.stop().removeClass('wpr-animate-sub');
834
- }
835
- }
836
-
837
- // Off-Canvas Sub Menu Animation
838
- function offCanvasSubMenuAnimation( selector ) {
839
- let title = selector.children('a').clone().children().remove().end().text();
840
-
841
- selector.closest('.wpr-mobile-mega-menu').addClass('wpr-mobile-sub-offcanvas-open');
842
- selector.find('.wpr-menu-offcanvas-back').find('h3').text(title);
843
-
844
- let parentItem = $scope.find('.wpr-mobile-mega-menu').children('.wpr-mobile-sub-open'),
845
- subSelector = parentItem.children('ul').length ? parentItem.children('ul') : parentItem.children('.wpr-mobile-sub-mega-menu'),
846
- subHeight = subSelector.outerHeight();
847
-
848
- if ( subHeight > $(window).height() ) {
849
- $scope.find('.wpr-mobile-sub-mega-menu').not(selector.find('.wpr-mobile-sub-mega-menu')).hide();
850
- $scope.find('.wpr-mobile-mega-menu-wrap').css('overflow-y', 'scroll');
851
- }
852
- }
853
-
854
- }, // End widgetMegaMenu
855
-
856
- OnepageNav: function( $scope ) {
857
- $scope.find( '.wpr-onepage-nav-item' ).on( 'click', function(event) {
858
- event.preventDefault();
859
-
860
- var section = $( $(this).find( 'a' ).attr( 'href' ) ),
861
- scrollSpeed = parseInt( $(this).parent().attr( 'data-speed' ), 10 );
862
-
863
- $( 'html, body' ).animate({ scrollTop: section.offset().top }, scrollSpeed );
864
- // $( 'body' ).animate({ scrollTop: section.offset().top }, scrollSpeed );
865
-
866
- // Active Class
867
- getSectionOffset( $(window).scrollTop() );
868
- });
869
-
870
- // Trigger Fake Scroll
871
- if ( 'yes' === $scope.find( '.wpr-onepage-nav' ).attr( 'data-highlight' ) ) {
872
- setTimeout(function() {
873
- $(window).scroll();
874
- }, 10 );
875
- }
876
-
877
- // Active Class
878
- $(window).scroll(function() {
879
- getSectionOffset( $(this).scrollTop() );
880
- });
881
-
882
- // Get Offset
883
- function getSectionOffset( scrollTop ) {
884
- if ( 'yes' !== $scope.find( '.wpr-onepage-nav' ).attr( 'data-highlight' ) ) {
885
- return;
886
- }
887
- // Reset Active
888
- $scope.find( '.wpr-onepage-nav-item' ).children( 'a' ).removeClass( 'wpr-onepage-active-item' );
889
-
890
- // Set Active
891
- $( '.elementor-section' ).each(function() {
892
- var secOffTop = $(this).offset().top,
893
- secOffBot = secOffTop + $(this).outerHeight();
894
-
895
- if ( scrollTop >= secOffTop && scrollTop < secOffBot ) {
896
- $scope.find( '.wpr-onepage-nav-item' ).children( 'a[href="#'+ $(this).attr('id') +'"]' ).addClass( 'wpr-onepage-active-item' );
897
- }
898
- });
899
- }
900
-
901
- }, // End OnepageNav
902
-
903
- widgetGrid: function( $scope ) {
904
- var iGrid = $scope.find( '.wpr-grid' );
905
- var loadedItems;
906
-
907
- if ( ! iGrid.length ) {
908
- return;
909
- }
910
-
911
- if ( $scope.find('.woocommerce-result-count').length ) {
912
- var resultCountText = $scope.find('.woocommerce-result-count').text();
913
- resultCountText = resultCountText.replace( /\d\u2013\d+/, '1\u2013' + $scope.find('.wpr-grid-item').length );
914
-
915
- $scope.find('.woocommerce-result-count').text(resultCountText);
916
- }
917
-
918
- // Settings
919
- var settings = iGrid.attr( 'data-settings' );
920
-
921
- if ( $scope.find(".wpr-grid-orderby form").length ) {
922
- var select = $scope.find(".wpr-grid-orderby form");
923
- $scope.find(".orderby").on("change", function () {
924
- select.trigger("submit");
925
- });
926
- }
927
-
928
- // Grid
929
- if ( typeof settings !== typeof undefined && settings !== false ) {
930
- settings = JSON.parse( iGrid.attr( 'data-settings' ) );
931
-
932
- // Init Functions
933
- isotopeLayout( settings );
934
- setTimeout(function() {
935
- isotopeLayout( settings );
936
- }, 100 );
937
-
938
- if ( WprElements.editorCheck() ) {
939
- setTimeout(function() {
940
- isotopeLayout( settings );
941
- }, 500 );
942
- setTimeout(function() {
943
- isotopeLayout( settings );
944
- }, 1000 );
945
- }
946
-
947
- $( window ).on( 'load', function() {
948
- setTimeout(function() {
949
- isotopeLayout( settings );
950
- }, 100 );
951
- });
952
-
953
- $(window).smartresize(function(){
954
- setTimeout(function() {
955
- isotopeLayout( settings );
956
- }, 200 );
957
- });
958
-
959
- isotopeFilters( settings );
960
-
961
- var initialItems = 0;
962
-
963
- // Filtering Transitions
964
- iGrid.on( 'arrangeComplete', function( event, filteredItems ) {
965
- var deepLinkStager = 0,
966
- filterStager = 0,
967
- initStager = 0,
968
- duration = settings.animation_duration,
969
- filterDuration = settings.filters_animation_duration;
970
-
971
- if ( iGrid.hasClass( 'grid-images-loaded' ) ) {
972
- initStager = 0;
973
- } else {
974
- iGrid.css( 'opacity', '1' );
975
-
976
- // Default Animation
977
- if ( 'default' === settings.animation && 'default' === settings.filters_animation ) {
978
- return;
979
- }
980
- }
981
-
982
- for ( var key in filteredItems ) {
983
- if ( initialItems == 0 || key > initialItems - 1 ) {
984
- initStager += settings.animation_delay;
985
- $scope.find( filteredItems[key]['element'] ).find( '.wpr-grid-item-inner' ).css({
986
- 'opacity' : '1',
987
- 'top' : '0',
988
- 'transform' : 'scale(1)',
989
- 'transition' : 'all '+ duration +'s ease-in '+ initStager +'s',
990
- });
991
- }
992
-
993
- filterStager += settings.filters_animation_delay;
994
- if ( iGrid.hasClass( 'grid-images-loaded' ) ) {
995
- $scope.find( filteredItems[key]['element'] ).find( '.wpr-grid-item-inner' ).css({
996
- 'transition' : 'all '+ filterDuration +'s ease-in '+ filterStager +'s',
997
- });
998
- }
999
-
1000
- // DeepLinking
1001
- var deepLink = window.location.hash;
1002
-
1003
- if ( deepLink.indexOf( '#filter:' ) >= 0 && deepLink.indexOf( '#filter:*' ) < 0 ) {
1004
- deepLink = deepLink.replace( '#filter:', '' );
1005
-
1006
- $scope.find( filteredItems[key]['element'] ).filter(function() {
1007
- if ( $(this).hasClass( deepLink ) ) {
1008
- deepLinkStager += settings.filters_animation_delay;
1009
- return $(this);
1010
- }
1011
- }).find( '.wpr-grid-item-inner' ).css({
1012
- 'transition-delay' : deepLinkStager +'s'
1013
- });
1014
- }
1015
- }
1016
-
1017
- initialItems = filteredItems.length;
1018
- });
1019
-
1020
- // Grid Images Loaded
1021
- iGrid.imagesLoaded().progress( function( instance, image ) {
1022
- if ( '1' !== iGrid.css( 'opacity' ) ) {
1023
- iGrid.css( 'opacity', '1' );
1024
- }
1025
-
1026
- setTimeout(function() {
1027
- iGrid.addClass( 'grid-images-loaded' );
1028
- }, 500 );
1029
- });
1030
-
1031
- // Infinite Scroll / Load More
1032
- if ( ( 'load-more' === settings.pagination_type || 'infinite-scroll' === settings.pagination_type ) && ( $scope.find( '.wpr-grid-pagination' ).length && ! WprElements.editorCheck() ) ) {
1033
-
1034
- var pagination = $scope.find( '.wpr-grid-pagination' ),
1035
- scopeClass = '.elementor-element-'+ $scope.attr( 'data-id' );
1036
-
1037
- var navClass = false,
1038
- threshold = false;
1039
-
1040
- if ( 'infinite-scroll' === settings.pagination_type ) {
1041
- threshold = 300;
1042
- navClass = scopeClass +' .wpr-load-more-btn';
1043
- }
1044
-
1045
- iGrid.infiniteScroll({
1046
- path: scopeClass +' .wpr-grid-pagination a',
1047
- hideNav: navClass,
1048
- append: false,
1049
- history: false,
1050
- scrollThreshold: threshold,
1051
- status: scopeClass +' .page-load-status',
1052
- onInit: function() {
1053
- this.on( 'load', function() {
1054
- iGrid.removeClass( 'grid-images-loaded' );
1055
- });
1056
- }
1057
- });
1058
-
1059
- // Request
1060
- iGrid.on( 'request.infiniteScroll', function( event, path ) {
1061
- pagination.find( '.wpr-load-more-btn' ).hide();
1062
- pagination.find( '.wpr-pagination-loading' ).css( 'display', 'inline-block' );
1063
- });
1064
-
1065
- // Load
1066
- var pagesLoaded = 0;
1067
-
1068
- iGrid.on( 'load.infiniteScroll', function( event, response ) {
1069
- pagesLoaded++;
1070
-
1071
- // get posts from response
1072
- var items = $( response ).find( scopeClass ).find( '.wpr-grid-item' );
1073
-
1074
- if ( $scope.find('.woocommerce-result-count').length ) {
1075
- var resultCount = $scope.find('.woocommerce-result-count').text();
1076
- var updatedResultCount = resultCount.replace( /\d\u2013\d+/, '1\u2013' + ( $scope.find('.wpr-grid-item').length + items.length ) );
1077
- $scope.find('.woocommerce-result-count').text(updatedResultCount);
1078
- }
1079
-
1080
- iGrid.infiniteScroll( 'appendItems', items );
1081
- iGrid.isotopewpr( 'appended', items );
1082
-
1083
- items.imagesLoaded().progress( function( instance, image ) {
1084
- isotopeLayout( settings );
1085
-
1086
- // Fix Layout
1087
- setTimeout(function() {
1088
- isotopeLayout( settings );
1089
- isotopeFilters( settings );
1090
- }, 10 );
1091
-
1092
- setTimeout(function() {
1093
- iGrid.addClass( 'grid-images-loaded' );
1094
- }, 500 );
1095
- });
1096
-
1097
- // Loading
1098
- pagination.find( '.wpr-pagination-loading' ).hide();
1099
-
1100
- if ( settings.pagination_max_pages - 1 !== pagesLoaded ) {
1101
- if ( 'load-more' === settings.pagination_type ) {
1102
- pagination.find( '.wpr-load-more-btn' ).fadeIn();
1103
-
1104
- if ( '*' !== $scope.find('.wpr-active-filter').attr('data-filter') ) {
1105
- let dataFilterClass = $scope.find('.wpr-active-filter').attr('data-filter').substring(1);
1106
- items.each(function() {
1107
- if ( !$(this).hasClass(dataFilterClass) ) {
1108
- loadedItems = false;
1109
- } else {
1110
- loadedItems = true;
1111
- return false;
1112
- }
1113
- });
1114
-
1115
- if ( !loadedItems ) {
1116
- $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' );
1117
- }
1118
- }
1119
- }
1120
- } else {
1121
- pagination.find( '.wpr-pagination-finish' ).fadeIn( 1000 );
1122
- pagination.delay( 2000 ).fadeOut( 1000 );
1123
- setTimeout(function() {
1124
- pagination.find( '.wpr-pagination-loading' ).hide();
1125
- }, 500 );
1126
- }
1127
-
1128
- // Init Likes
1129
- setTimeout(function() {
1130
- postLikes( settings );
1131
- }, 300 );
1132
-
1133
- // Init Lightbox
1134
- lightboxPopup( settings );
1135
-
1136
- // Fix Lightbox
1137
- iGrid.data( 'lightGallery' ).destroy( true );
1138
- iGrid.lightGallery( settings.lightbox );
1139
-
1140
- // Init Media Hover Link
1141
- mediaHoverLink();
1142
-
1143
- // Init Post Sharing
1144
- postSharing();
1145
- });
1146
-
1147
- pagination.find( '.wpr-load-more-btn' ).on( 'click', function() {
1148
- iGrid.infiniteScroll( 'loadNextPage' );
1149
- return false;
1150
- });
1151
-
1152
- }
1153
-
1154
- // Slider
1155
- } else {
1156
- iGrid.animate({ 'opacity': '1' }, 1000);
1157
-
1158
- var sliderClass = $scope.attr('class'),
1159
- sliderColumnsDesktop = sliderClass.match(/wpr-grid-slider-columns-\d/) ? sliderClass.match(/wpr-grid-slider-columns-\d/).join().slice(-1) : 2,
1160
- sliderColumnsWideScreen = sliderClass.match(/columns--widescreen\d/) ? sliderClass.match(/columns--widescreen\d/).join().slice(-1) : sliderColumnsDesktop,
1161
- sliderColumnsLaptop = sliderClass.match(/columns--laptop\d/) ? sliderClass.match(/columns--laptop\d/).join().slice(-1) : sliderColumnsDesktop,
1162
- sliderColumnsTabletExtra = sliderClass.match(/columns--tablet_extra\d/) ? sliderClass.match(/columns--tablet_extra\d/).join().slice(-1) : sliderColumnsTablet,
1163
- sliderColumnsTablet = sliderClass.match(/columns--tablet\d/) ? sliderClass.match(/columns--tablet\d/).join().slice(-1) : 2,
1164
- sliderColumnsMobileExtra = sliderClass.match(/columns--mobile_extra\d/) ? sliderClass.match(/columns--mobile_extra\d/).join().slice(-1) : sliderColumnsTablet,
1165
- sliderColumnsMobile = sliderClass.match(/columns--mobile\d/) ? sliderClass.match(/columns--mobile\d/).join().slice(-1) : 1,
1166
- sliderSlidesToScroll = sliderClass.match(/wpr-grid-slides-to-scroll-\d/) ? +(sliderClass.match(/wpr-grid-slides-to-scroll-\d/).join().slice(-1)) : 1;
1167
-
1168
- iGrid.slick({
1169
- appendDots : $scope.find( '.wpr-grid-slider-dots' ),
1170
- customPaging : function ( slider, i ) {
1171
- var slideNumber = (i + 1),
1172
- totalSlides = slider.slideCount;
1173
-
1174
- return '<span class="wpr-grid-slider-dot"></span>';
1175
- },
1176
- slidesToShow: sliderColumnsDesktop,
1177
- responsive: [
1178
- {
1179
- breakpoint: 10000,
1180
- settings: {
1181
- slidesToShow: sliderColumnsWideScreen,
1182
- slidesToScroll: sliderSlidesToScroll > sliderColumnsWideScreen ? 1 : sliderSlidesToScroll
1183
- }
1184
- },
1185
- {
1186
- breakpoint: 2399,
1187
- settings: {
1188
- slidesToShow: sliderColumnsDesktop,
1189
- slidesToScroll: sliderSlidesToScroll > sliderColumnsDesktop ? 1 : sliderSlidesToScroll
1190
- }
1191
- },
1192
- {
1193
- breakpoint: 1221,
1194
- settings: {
1195
- slidesToShow: sliderColumnsLaptop,
1196
- slidesToScroll: sliderSlidesToScroll > sliderColumnsLaptop ? 1 : sliderSlidesToScroll
1197
- }
1198
- },
1199
- {
1200
- breakpoint: 1200,
1201
- settings: {
1202
- slidesToShow: sliderColumnsTabletExtra,
1203
- slidesToScroll: sliderSlidesToScroll > sliderColumnsTabletExtra ? 1 : sliderSlidesToScroll
1204
- }
1205
- },
1206
- {
1207
- breakpoint: 1024,
1208
- settings: {
1209
- slidesToShow: sliderColumnsTablet,
1210
- slidesToScroll: sliderSlidesToScroll > sliderColumnsTablet ? 1 : sliderSlidesToScroll
1211
- }
1212
- },
1213
- {
1214
- breakpoint: 880,
1215
- settings: {
1216
- slidesToShow: sliderColumnsMobileExtra,
1217
- slidesToScroll: sliderSlidesToScroll > sliderColumnsMobileExtra ? 1 : sliderSlidesToScroll
1218
- }
1219
- },
1220
- {
1221
- breakpoint: 768,
1222
- settings: {
1223
- slidesToShow: sliderColumnsMobile,
1224
- slidesToScroll: sliderSlidesToScroll > sliderColumnsMobile ? 1 : sliderSlidesToScroll
1225
- }
1226
- }
1227
- ],
1228
- });
1229
-
1230
- var gridNavPrevArrow = $scope.find('.wpr-grid-slider-prev-arrow');
1231
- var gridNavNextArrow = $scope.find('.wpr-grid-slider-next-arrow');
1232
-
1233
- if ( gridNavPrevArrow.length > 0 && gridNavNextArrow.length > 0 ) {
1234
- var positionSum = gridNavPrevArrow.position().left * -2;
1235
- if ( positionSum > 0 ) {
1236
- console.log(positionSum);
1237
- $(window).on('load', function() {
1238
- if ( $(window).width() <= ($scope.outerWidth() + gridNavPrevArrow.outerWidth() + gridNavNextArrow.outerWidth() + positionSum) ) {
1239
- gridNavPrevArrow.addClass('wpr-adjust-slider-prev-arrow');
1240
- gridNavNextArrow.addClass('wpr-adjust-slider-next-arrow');
1241
- }
1242
- });
1243
-
1244
- $(window).smartresize(function() {
1245
- if ( $(window).width() <= ($scope.outerWidth() + gridNavPrevArrow.outerWidth() + gridNavNextArrow.outerWidth() + positionSum) ) {
1246
- gridNavPrevArrow.addClass('wpr-adjust-slider-prev-arrow');
1247
- gridNavNextArrow.addClass('wpr-adjust-slider-next-arrow');
1248
- } else {
1249
- gridNavPrevArrow.removeClass('wpr-adjust-slider-prev-arrow');
1250
- gridNavNextArrow.removeClass('wpr-adjust-slider-next-arrow');
1251
- }
1252
- });
1253
- }
1254
- }
1255
-
1256
- // Adjust Horizontal Pagination
1257
- if ( $scope.find( '.slick-dots' ).length && $scope.hasClass( 'wpr-grid-slider-dots-horizontal') ) {
1258
- // Calculate Width
1259
- var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 );
1260
-
1261
- // on Load
1262
- if ( $scope.find( '.slick-dots' ).length ) {
1263
- $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth );
1264
- }
1265
-
1266
-
1267
- $(window).smartresize(function() {
1268
- setTimeout(function() {
1269
- // Calculate Width
1270
- var dotsWrapWidth = $scope.find( '.slick-dots li' ).outerWidth() * $scope.find( '.slick-dots li' ).length - parseInt( $scope.find( '.slick-dots li span' ).css( 'margin-right' ), 10 );
1271
-
1272
- // Set Width
1273
- $scope.find( '.slick-dots' ).css( 'width', dotsWrapWidth );
1274
- }, 300 );
1275
- });
1276
- }
1277
-
1278
- settings = JSON.parse( iGrid.attr( 'data-slick' ) );
1279
- }
1280
-
1281
- // Add To Cart AJAX
1282
- if ( iGrid.find( '.wpr-grid-item-add-to-cart' ).length ) {
1283
- var addCartIcon = iGrid.find( '.wpr-grid-item-add-to-cart' ).find( 'i' ),
1284
- addCartIconClass = addCartIcon.attr( 'class' );
1285
-
1286
- if ( addCartIcon.length ) {
1287
- addCartIconClass = addCartIconClass.substring( addCartIconClass.indexOf('fa-'), addCartIconClass.length );
1288
- }
1289
-
1290
- $( 'body' ).on( 'adding_to_cart', function( ev, button, data ) {
1291
- button.fadeTo( 'slow', 0 );
1292
- });
1293
-
1294
- $( 'body' ).on( 'added_to_cart', function(ev, fragments, hash, button) {
1295
- button.next().fadeTo( 700, 1 );
1296
-
1297
- button.css('display', 'none');
1298
-
1299
- if ( 'sidebar' === button.data('atc-popup') ) {
1300
- if ( $('.wpr-mini-cart-toggle-wrap a').length ) {
1301
- $('.wpr-mini-cart-toggle-wrap a').each(function() {
1302
- if ( 'none' === $(this).closest('.wpr-mini-cart-inner').find('.wpr-mini-cart').css('display') ) {
1303
- $(this).trigger('click');
1304
- }
1305
- });
1306
- }
1307
- } else if ( 'popup' === button.data('atc-popup') ) {
1308
- var popupItem = button.closest('.wpr-grid-item'),
1309
- popupText = popupItem.find('.wpr-grid-item-title').text(),
1310
- popupLink = button.next().attr('href'),
1311
- popupImageSrc = popupItem.find('.wpr-grid-image-wrap').length ? popupItem.find('.wpr-grid-image-wrap').data('src') : '',
1312
- popupAnimation = button.data('atc-animation'),
1313
- fadeOutIn = button.data('atc-fade-out-in'),
1314
- animTime = button.data('atc-animation-time'),
1315
- popupImage,
1316
- animationClass = 'wpr-added-to-cart-default',
1317
- removeAnimationClass;
1318
-
1319
- if ( 'slide-left' === popupAnimation ) {
1320
- animationClass = 'wpr-added-to-cart-slide-in-left';
1321
- removeAnimationClass = 'wpr-added-to-cart-slide-out-left';
1322
- } else if ( 'scale-up' === popupAnimation ) {
1323
- animationClass = 'wpr-added-to-cart-scale-up';
1324
- removeAnimationClass = 'wpr-added-to-cart-scale-down';
1325
- } else if ( 'skew' === popupAnimation ) {
1326
- animationClass = 'wpr-added-to-cart-skew';
1327
- removeAnimationClass = 'wpr-added-to-cart-skew-off';
1328
- } else if ( 'fade' === popupAnimation ) {
1329
- animationClass = 'wpr-added-to-cart-fade';
1330
- removeAnimationClass = 'wpr-added-to-cart-fade-out';
1331
- } else {
1332
- removeAnimationClass = 'wpr-added-to-cart-popup-hide';
1333
- }
1334
-
1335
- if ( '' !== popupImageSrc ) {
1336
- popupImage = '<div class="wpr-added-tc-popup-img"><img src='+popupImageSrc+' alt="" /></div>';
1337
- } else {
1338
- popupImage = '';
1339
- }
1340
-
1341
- $(this).find('.wpr-grid').append('<div class="wpr-added-to-cart-popup ' + animationClass + '">'+ popupImage +'<div class="wpr-added-tc-title"><p>'+ popupText +' was added to cart</p><p><a href='+popupLink+'>View Cart</a></p></div></div>');
1342
-
1343
- setTimeout(() => {
1344
- $(this).find('.wpr-added-to-cart-popup').addClass(removeAnimationClass);
1345
- setTimeout(() => {
1346
- $(this).find('.wpr-added-to-cart-popup').remove();
1347
- }, animTime * 1000);
1348
- }, fadeOutIn * 1000);
1349
- }
1350
-
1351
- if ( addCartIcon.length ) {
1352
- button.find( 'i' ).removeClass( addCartIconClass ).addClass( 'fa-check' );
1353
- setTimeout(function() {
1354
- button.find( 'i' ).removeClass( 'fa-check' ).addClass( addCartIconClass );
1355
- }, 3500 );
1356
- }
1357
- });
1358
- }
1359
-
1360
- // Init Post Sharing
1361
- postSharing();
1362
-
1363
- // Post Sharing
1364
- function postSharing() {
1365
- if ( $scope.find( '.wpr-sharing-trigger' ).length ) {
1366
- var sharingTrigger = $scope.find( '.wpr-sharing-trigger' ),
1367
- sharingInner = $scope.find( '.wpr-post-sharing-inner' ),
1368
- sharingWidth = 5;
1369
-
1370
- // Calculate Width
1371
- sharingInner.first().find( 'a' ).each(function() {
1372
- sharingWidth += $(this).outerWidth() + parseInt( $(this).css('margin-right'), 10 );
1373
- });
1374
-
1375
- // Calculate Margin
1376
- var sharingMargin = parseInt( sharingInner.find( 'a' ).css('margin-right'), 10 );
1377
-
1378
- // Set Positions
1379
- if ( 'left' === sharingTrigger.attr( 'data-direction') ) {
1380
- // Set Width
1381
- sharingInner.css( 'width', sharingWidth +'px' );
1382
-
1383
- // Set Position
1384
- sharingInner.css( 'left', - ( sharingMargin + sharingWidth ) +'px' );
1385
- } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) {
1386
- // Set Width
1387
- sharingInner.css( 'width', sharingWidth +'px' );
1388
-
1389
- // Set Position
1390
- sharingInner.css( 'right', - ( sharingMargin + sharingWidth ) +'px' );
1391
- } else if ( 'top' === sharingTrigger.attr( 'data-direction') ) {
1392
- // Set Margins
1393
- sharingInner.find( 'a' ).css({
1394
- 'margin-right' : '0',
1395
- 'margin-top' : sharingMargin +'px'
1396
- });
1397
-
1398
- // Set Position
1399
- sharingInner.css({
1400
- 'top' : -sharingMargin +'px',
1401
- 'left' : '50%',
1402
- '-webkit-transform' : 'translate(-50%, -100%)',
1403
- 'transform' : 'translate(-50%, -100%)'
1404
- });
1405
- } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) {
1406
- // Set Width
1407
- sharingInner.css( 'width', sharingWidth +'px' );
1408
-
1409
- // Set Position
1410
- sharingInner.css({
1411
- 'left' : sharingMargin +'px',
1412
- // 'bottom' : - ( sharingInner.outerHeight() + sharingTrigger.outerHeight() ) +'px',
1413
- });
1414
- } else if ( 'bottom' === sharingTrigger.attr( 'data-direction') ) {
1415
- // Set Margins
1416
- sharingInner.find( 'a' ).css({
1417
- 'margin-right' : '0',
1418
- 'margin-bottom' : sharingMargin +'px'
1419
- });
1420
-
1421
- // Set Position
1422
- sharingInner.css({
1423
- 'bottom' : -sharingMargin +'px',
1424
- 'left' : '50%',
1425
- '-webkit-transform' : 'translate(-50%, 100%)',
1426
- 'transform' : 'translate(-50%, 100%)'
1427
- });
1428
- }
1429
-
1430
- if ( 'click' === sharingTrigger.attr( 'data-action' ) ) {
1431
- sharingTrigger.on( 'click', function() {
1432
- var sharingInner = $(this).next();
1433
-
1434
- if ( 'hidden' === sharingInner.css( 'visibility' ) ) {
1435
- sharingInner.css( 'visibility', 'visible' );
1436
- sharingInner.find( 'a' ).css({
1437
- 'opacity' : '1',
1438
- 'top' : '0'
1439
- });
1440
-
1441
- setTimeout( function() {
1442
- sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' );
1443
- }, sharingInner.find( 'a' ).length * 100 );
1444
- } else {
1445
- sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' );
1446
-
1447
- sharingInner.find( 'a' ).css({
1448
- 'opacity' : '0',
1449
- 'top' : '-5px'
1450
- });
1451
- setTimeout( function() {
1452
- sharingInner.css( 'visibility', 'hidden' );
1453
- }, sharingInner.find( 'a' ).length * 100 );
1454
- }
1455
- });
1456
- } else {
1457
- sharingTrigger.on( 'mouseenter', function() {
1458
- var sharingInner = $(this).next();
1459
-
1460
- sharingInner.css( 'visibility', 'visible' );
1461
- sharingInner.find( 'a' ).css({
1462
- 'opacity' : '1',
1463
- 'top' : '0',
1464
- });
1465
-
1466
- setTimeout( function() {
1467
- sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' );
1468
- }, sharingInner.find( 'a' ).length * 100 );
1469
- });
1470
- $scope.find( '.wpr-grid-item-sharing' ).on( 'mouseleave', function() {
1471
- var sharingInner = $(this).find( '.wpr-post-sharing-inner' );
1472
-
1473
- sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' );
1474
-
1475
- sharingInner.find( 'a' ).css({
1476
- 'opacity' : '0',
1477
- 'top' : '-5px'
1478
- });
1479
- setTimeout( function() {
1480
- sharingInner.css( 'visibility', 'hidden' );
1481
- }, sharingInner.find( 'a' ).length * 100 );
1482
- });
1483
- }
1484
- }
1485
- }
1486
-
1487
- // Init Media Hover Link
1488
- mediaHoverLink();
1489
-
1490
- // Media Hover Link
1491
- function mediaHoverLink() {
1492
- if ( 'yes' === iGrid.find( '.wpr-grid-media-wrap' ).attr( 'data-overlay-link' ) && ! WprElements.editorCheck() ) {
1493
- iGrid.find( '.wpr-grid-media-wrap' ).css('cursor', 'pointer');
1494
-
1495
- iGrid.find( '.wpr-grid-media-wrap' ).on( 'click', function( event ) {
1496
- var targetClass = event.target.className;
1497
-
1498
- if ( -1 !== targetClass.indexOf( 'inner-block' ) || -1 !== targetClass.indexOf( 'wpr-cv-inner' ) ||
1499
- -1 !== targetClass.indexOf( 'wpr-grid-media-hover' ) ) {
1500
- event.preventDefault();
1501
-
1502
- var itemUrl = $(this).find( '.wpr-grid-media-hover-bg' ).attr( 'data-url' ),
1503
- itemUrl = itemUrl.replace('#new_tab', '');
1504
-
1505
- if ( '_blank' === iGrid.find( '.wpr-grid-item-title a' ).attr('target') ) {
1506
- window.open(itemUrl, '_blank').focus();
1507
- } else {
1508
- window.location.href = itemUrl;
1509
- }
1510
- }
1511
- });
1512
- }
1513
- }
1514
-
1515
- // Init Lightbox
1516
- if ( !$scope.hasClass('elementor-widget-wpr-woo-category-grid-pro') ) {
1517
- lightboxPopup( settings );
1518
- }
1519
-
1520
- // Lightbox Popup
1521
- function lightboxPopup( settings ) {
1522
- if ( -1 === $scope.find( '.wpr-grid-item-lightbox' ).length ) {
1523
- return;
1524
- }
1525
-
1526
- var lightbox = $scope.find( '.wpr-grid-item-lightbox' ),
1527
- lightboxOverlay = lightbox.find( '.wpr-grid-lightbox-overlay' ).first();
1528
-
1529
- // Set Src Attributes
1530
- lightbox.each(function() {
1531
- var source = $(this).find('.inner-block > span').attr( 'data-src' ),
1532
- gridItem = $(this).closest( 'article' ).not('.slick-cloned');
1533
-
1534
- if ( ! iGrid.hasClass( 'wpr-media-grid' ) ) {
1535
- gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-src', source );
1536
- }
1537
-
1538
- var dataSource = gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-src' );
1539
-
1540
- if ( typeof dataSource !== typeof undefined && dataSource !== false ) {
1541
- if ( -1 === dataSource.indexOf( 'wp-content' ) ) {
1542
- gridItem.find( '.wpr-grid-image-wrap' ).attr( 'data-iframe', 'true' );
1543
- }
1544
- }
1545
- });
1546
-
1547
- // Init Lightbox
1548
- iGrid.lightGallery( settings.lightbox );
1549
-
1550
- // Fix LightGallery Thumbnails
1551
- iGrid.on('onAfterOpen.lg',function() {
1552
- if ( $('.lg-outer').find('.lg-thumb-item').length ) {
1553
- $('.lg-outer').find('.lg-thumb-item').each(function() {
1554
- var imgSrc = $(this).find('img').attr('src'),
1555
- newImgSrc = imgSrc,
1556
- extIndex = imgSrc.lastIndexOf('.'),
1557
- imgExt = imgSrc.slice(extIndex),
1558
- cropIndex = imgSrc.lastIndexOf('-'),
1559
- cropSize = /\d{3,}x\d{3,}/.test(imgSrc.substring(extIndex,cropIndex)) ? imgSrc.substring(extIndex,cropIndex) : false;
1560
-
1561
- if ( 42 <= imgSrc.substring(extIndex,cropIndex).length ) {
1562
- cropSize = '';
1563
- }
1564
-
1565
- if ( cropSize !== '' ) {
1566
- if ( false !== cropSize ) {
1567
- newImgSrc = imgSrc.replace(cropSize, '-150x150');
1568
- } else {
1569
- newImgSrc = [imgSrc.slice(0, extIndex), '-150x150', imgSrc.slice(extIndex)].join('');
1570
- }
1571
- }
1572
-
1573
- // Change SRC
1574
- $(this).find('img').attr('src', newImgSrc);
1575
- });
1576
- }
1577
- });
1578
-
1579
- // Show/Hide Controls
1580
- $scope.find( '.wpr-grid' ).on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) {
1581
- var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ),
1582
- lightboxDownload = $( '#lg-download' ).attr( 'href' );
1583
-
1584
- if ( $( '#lg-download' ).length ) {
1585
- if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) {
1586
- lightboxControls.addClass( 'wpr-hidden-element' );
1587
- } else {
1588
- lightboxControls.removeClass( 'wpr-hidden-element' );
1589
- }
1590
- }
1591
-
1592
- // Autoplay Button
1593
- if ( '' === settings.lightbox.autoplay ) {
1594
- $( '.lg-autoplay-button' ).css({
1595
- 'width' : '0',
1596
- 'height' : '0',
1597
- 'overflow' : 'hidden'
1598
- });
1599
- }
1600
- });
1601
-
1602
- // Overlay
1603
- if ( lightboxOverlay.length ) {
1604
- $scope.find( '.wpr-grid-media-hover-bg' ).after( lightboxOverlay.remove() );
1605
-
1606
- $scope.find( '.wpr-grid-lightbox-overlay' ).on( 'click', function() {
1607
- if ( ! WprElements.editorCheck() ) {
1608
- $(this).closest( 'article' ).find( '.wpr-grid-image-wrap' ).trigger( 'click' );
1609
- } else {
1610
- alert( 'Lightbox is Disabled in the Editor!' );
1611
- }
1612
- });
1613
- } else {
1614
- lightbox.find( '.inner-block > span' ).on( 'click', function() {
1615
- if ( ! WprElements.editorCheck() ) {
1616
- var imageWrap = $(this).closest( 'article' ).find( '.wpr-grid-image-wrap' );
1617
- imageWrap.trigger( 'click' );
1618
- } else {
1619
- alert( 'Lightbox is Disabled in the Editor!' );
1620
- }
1621
- });
1622
- }
1623
- }
1624
-
1625
- // Init Likes
1626
- postLikes( settings );
1627
-
1628
- // Likes
1629
- function postLikes( settings ) {
1630
- if ( ! $scope.find( '.wpr-post-like-button' ).length ) {
1631
- return;
1632
- }
1633
-
1634
- $scope.find( '.wpr-post-like-button' ).on( 'click', function() {
1635
- var current = $(this);
1636
-
1637
- if ( '' !== current.attr( 'data-post-id' ) ) {
1638
-
1639
- $.ajax({
1640
- type: 'POST',
1641
- url: current.attr( 'data-ajax' ),
1642
- data: {
1643
- action : 'wpr_likes_init',
1644
- post_id : current.attr( 'data-post-id' ),
1645
- nonce : current.attr( 'data-nonce' )
1646
- },
1647
- beforeSend:function() {
1648
- current.fadeTo( 500, 0.5 );
1649
- },
1650
- success: function( response ) {
1651
- // Get Icon
1652
- var iconClass = current.attr( 'data-icon' );
1653
-
1654
- // Get Count
1655
- var countHTML = response.count;
1656
-
1657
- if ( '' === countHTML.replace(/<\/?[^>]+(>|$)/g, "") ) {
1658
- countHTML = '<span class="wpr-post-like-count">'+ current.attr( 'data-text' ) +'</span>';
1659
-
1660
- if ( ! current.hasClass( 'wpr-likes-zero' ) ) {
1661
- current.addClass( 'wpr-likes-zero' );
1662
- }
1663
- } else {
1664
- current.removeClass( 'wpr-likes-zero' );
1665
- }
1666
-
1667
- // Update Icon
1668
- if ( current.hasClass( 'wpr-already-liked' ) ) {
1669
- current.prop( 'title', 'Like' );
1670
- current.removeClass( 'wpr-already-liked' );
1671
- current.html( '<i class="'+ iconClass +'"></i>' + countHTML );
1672
- } else {
1673
- current.prop( 'title', 'Unlike' );
1674
- current.addClass( 'wpr-already-liked' );
1675
- current.html( '<i class="'+ iconClass.replace( 'far', 'fas' ) +'"></i>' + countHTML );
1676
- }
1677
-
1678
- current.fadeTo( 500, 1 );
1679
- }
1680
- });
1681
-
1682
- }
1683
-
1684
- return false;
1685
- });
1686
- }
1687
-
1688
- // Isotope Layout
1689
- function isotopeLayout( settings ) {
1690
- var grid = $scope.find( '.wpr-grid' ),
1691
- item = grid.find( '.wpr-grid-item' ),
1692
- itemVisible = item.filter( ':visible' ),
1693
- layout = settings.layout,
1694
- mediaAlign = settings.media_align,
1695
- mediaWidth = settings.media_width,
1696
- mediaDistance = settings.media_distance,
1697
- columns = 3,
1698
- columnsMobile = 1,
1699
- columnsMobileExtra,
1700
- columnsTablet = 2,
1701
- columnsTabletExtra,
1702
- columnsDesktop = parseInt(settings.columns_desktop, 10),
1703
- columnsLaptop,
1704
- columnsWideScreen,
1705
- gutterHr = settings.gutter_hr,
1706
- gutterVr = settings.gutter_vr,
1707
- contWidth = grid.width() + gutterHr - 0.3,
1708
- viewportWidth = $( 'body' ).prop( 'clientWidth' ),
1709
- transDuration = 400;
1710
-
1711
- // Get Responsive Columns
1712
- var prefixClass = $scope.attr('class'),
1713
- prefixClass = prefixClass.split(' ');
1714
-
1715
- for ( var i=0; i < prefixClass.length - 1; i++ ) {
1716
-
1717
- if ( -1 !== prefixClass[i].search(/mobile\d/) ) {
1718
- columnsMobile = prefixClass[i].slice(-1);
1719
- }
1720
-
1721
- if ( -1 !== prefixClass[i].search(/mobile_extra\d/) ) {
1722
- columnsMobileExtra = prefixClass[i].slice(-1);
1723
- }
1724
-
1725
- if ( -1 !== prefixClass[i].search(/tablet\d/) ) {
1726
- columnsTablet = prefixClass[i].slice(-1);
1727
- }
1728
-
1729
- if ( -1 !== prefixClass[i].search(/tablet_extra\d/) ) {
1730
- columnsTabletExtra = prefixClass[i].slice(-1);
1731
- }
1732
-
1733
- if ( -1 !== prefixClass[i].search(/widescreen\d/) ) {
1734
- columnsWideScreen = prefixClass[i].slice(-1);
1735
- }
1736
-
1737
- if ( -1 !== prefixClass[i].search(/laptop\d/) ) {
1738
- columnsLaptop = prefixClass[i].slice(-1);
1739
- }
1740
- }
1741
-
1742
- // Mobile
1743
- if ( 440 >= viewportWidth ) {
1744
- columns = columnsMobile;
1745
- // Mobile Extra
1746
- } else if ( 768 >= viewportWidth ) {
1747
- columns = (columnsMobileExtra) ? columnsMobileExtra : columnsTablet;
1748
-
1749
- // Tablet
1750
- } else if ( 881 >= viewportWidth ) {
1751
- columns = columnsTablet;
1752
- // Tablet Extra
1753
- } else if ( 1025 >= viewportWidth ) {
1754
- columns = (columnsTabletExtra) ? columnsTabletExtra : columnsTablet;
1755
-
1756
- // Laptop
1757
- } else if ( 1201 >= viewportWidth ) {
1758
- columns = (columnsLaptop) ? columnsLaptop : columnsDesktop;
1759
-
1760
- // Desktop
1761
- } else if ( 1920 >= viewportWidth ) {
1762
- columns = columnsDesktop;
1763
-
1764
- // Larger Screens
1765
- } else if ( 2300 >= viewportWidth ) {
1766
- columns = columnsDesktop;
1767
- } else if ( 2650 >= viewportWidth ) {
1768
- columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop;
1769
- } else if ( 3000 >= viewportWidth ) {
1770
- columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop;
1771
- } else {
1772
- columns = (columnsWideScreen) ? columnsWideScreen : columnsDesktop;
1773
- }
1774
-
1775
- // Limit Columns for Higher Screens
1776
- if ( columns > 8 ) {
1777
- columns = 8;
1778
- }
1779
-
1780
- if ( 'string' == typeof(columns) && -1 !== columns.indexOf('pro') ) {
1781
- columns = 3;
1782
- }
1783
-
1784
- // Calculate Item Width
1785
- item.outerWidth( Math.floor( contWidth / columns - gutterHr ) );
1786
-
1787
- // Set Vertical Gutter
1788
- item.css( 'margin-bottom', gutterVr +'px' );
1789
-
1790
- // Reset Vertical Gutter for 1 Column Layout
1791
- if ( 1 === columns ) {
1792
- item.last().css( 'margin-bottom', '0' );
1793
- }
1794
-
1795
- // add last row & make all post equal height
1796
- var maxTop = -1;
1797
- itemVisible.each(function ( index ) {
1798
-
1799
- // define
1800
- var thisHieght = $(this).outerHeight(),
1801
- thisTop = parseInt( $(this).css( 'top' ) , 10 );
1802
-
1803
- // determine last row
1804
- if ( thisTop > maxTop ) {
1805
- maxTop = thisTop;
1806
- }
1807
-
1808
- });
1809
-
1810
- if ( 'fitRows' === layout ) {
1811
- itemVisible.each(function() {
1812
- if ( parseInt( $(this).css( 'top' ) ) === maxTop ) {
1813
- $(this).addClass( 'rf-last-row' );
1814
- }
1815
- });
1816
- }
1817
-
1818
- // List Layout
1819
- if ( 'list' === layout ) {
1820
- var imageHeight = item.find( '.wpr-grid-image-wrap' ).outerHeight();
1821
- item.find( '.wpr-grid-item-below-content' ).css( 'min-height', imageHeight +'px' );
1822
-
1823
- if ( $( 'body' ).prop( 'clientWidth' ) < 480 ) {
1824
-
1825
- item.find( '.wpr-grid-media-wrap' ).css({
1826
- 'float' : 'none',
1827
- 'width' : '100%'
1828
- });
1829
-
1830
- item.find( '.wpr-grid-item-below-content' ).css({
1831
- 'float' : 'none',
1832
- 'width' : '100%',
1833
- });
1834
-
1835
- item.find( '.wpr-grid-image-wrap' ).css( 'padding', '0' );
1836
-
1837
- item.find( '.wpr-grid-item-below-content' ).css( 'min-height', '0' );
1838
-
1839
- if ( 'zigzag' === mediaAlign ) {
1840
- item.find( '[class*="elementor-repeater-item"]' ).css( 'text-align', 'center' );
1841
- }
1842
-
1843
- } else {
1844
-
1845
- if ( 'zigzag' !== mediaAlign ) {
1846
-
1847
- item.find( '.wpr-grid-media-wrap' ).css({
1848
- 'float' : mediaAlign,
1849
- 'width' : mediaWidth +'%'
1850
- });
1851
-
1852
- var listGutter = 'left' === mediaAlign ? 'margin-right' : 'margin-left';
1853
- item.find( '.wpr-grid-media-wrap' ).css( listGutter, mediaDistance +'px' );
1854
-
1855
- item.find( '.wpr-grid-item-below-content' ).css({
1856
- 'float' : mediaAlign,
1857
- 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)',
1858
- });
1859
-
1860
- // Zig-zag
1861
- } else {
1862
- // Even
1863
- item.filter(':even').find( '.wpr-grid-media-wrap' ).css({
1864
- 'float' : 'left',
1865
- 'width' : mediaWidth +'%'
1866
- });
1867
- item.filter(':even').find( '.wpr-grid-item-below-content' ).css({
1868
- 'float' : 'left',
1869
- 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)',
1870
- });
1871
- item.filter(':even').find( '.wpr-grid-media-wrap' ).css( 'margin-right', mediaDistance +'px' );
1872
-
1873
- // Odd
1874
- item.filter(':odd').find( '.wpr-grid-media-wrap' ).css({
1875
- 'float' : 'right',
1876
- 'width' : mediaWidth +'%'
1877
- });
1878
- item.filter(':odd').find( '.wpr-grid-item-below-content' ).css({
1879
- 'float' : 'right',
1880
- 'width' : 'calc((100% - '+ mediaWidth +'%) - '+ mediaDistance +'px)',
1881
- });
1882
- item.filter(':odd').find( '.wpr-grid-media-wrap' ).css( 'margin-left', mediaDistance +'px' );
1883
-
1884
- // Fix Elements Align
1885
- if ( ! grid.hasClass( 'wpr-grid-list-ready' ) ) {
1886
- item.each( function( index ) {
1887
- var element = $(this).find( '[class*="elementor-repeater-item"]' );
1888
-
1889
- if ( index % 2 === 0 ) {
1890
- element.each(function() {
1891
- if ( ! $(this).hasClass( 'wpr-grid-item-align-center' ) ) {
1892
- if ( 'none' === $(this).css( 'float' ) ) {
1893
- $(this).css( 'text-align', 'left' );
1894
- } else {
1895
- $(this).css( 'float', 'left' );
1896
- }
1897
-
1898
- var inner = $(this).find( '.inner-block' );
1899
- }
1900
- });
1901
- } else {
1902
- element.each(function( index ) {
1903
- if ( ! $(this).hasClass( 'wpr-grid-item-align-center' ) ) {
1904
- if ( 'none' === $(this).css( 'float' ) ) {
1905
- $(this).css( 'text-align', 'right' );
1906
- } else {
1907
- $(this).css( 'float', 'right' );
1908
- }
1909
-
1910
- var inner = $(this).find( '.inner-block' );
1911
-
1912
- if ( '0px' !== inner.css( 'margin-left' ) ) {
1913
- inner.css( 'margin-right', inner.css( 'margin-left' ) );
1914
- inner.css( 'margin-left', '0' );
1915
- }
1916
-
1917
- // First Item
1918
- if ( 0 === index ) {
1919
- if ( '0px' !== inner.css( 'margin-right' ) ) {
1920
- inner.css( 'margin-left', inner.css( 'margin-right' ) );
1921
- inner.css( 'margin-right', '0' );
1922
- }
1923
- }
1924
- }
1925
- });
1926
- }
1927
- });
1928
-
1929
- }
1930
-
1931
- setTimeout(function() {
1932
- if ( ! grid.hasClass( 'wpr-grid-list-ready' ) ) {
1933
- grid.addClass( 'wpr-grid-list-ready' );
1934
- }
1935
- }, 500 );
1936
- }
1937
-
1938
- }
1939
- }
1940
-
1941
- // Set Layout
1942
- if ( 'list' === layout ) {
1943
- layout = 'fitRows';
1944
- }
1945
-
1946
- // No Transition
1947
- if ( 'default' !== settings.filters_animation ) {
1948
- transDuration = 0;
1949
- }
1950
-
1951
- // Run Isotope
1952
- var iGrid = grid.isotopewpr({
1953
- layoutMode: layout,
1954
- masonry: {
1955
- comlumnWidth: contWidth / columns,
1956
- gutter: gutterHr
1957
- },
1958
- fitRows: {
1959
- comlumnWidth: contWidth / columns,
1960
- gutter: gutterHr
1961
- },
1962
- transitionDuration: transDuration,
1963
- percentPosition: true
1964
- });
1965
-
1966
- // return iGrid;//tmp
1967
- }
1968
-
1969
- // Isotope Filters
1970
- function isotopeFilters( settings ) {
1971
-
1972
- // Count
1973
- if ( 'yes' === settings.filters_count ) {
1974
- $scope.find( '.wpr-grid-filters a, .wpr-grid-filters span' ).each(function() {
1975
- if ( '*' === $(this).attr( 'data-filter') ) {
1976
- $(this).find( 'sup' ).text( $scope.find( '.wpr-grid-filters' ).next().find('article').length );
1977
- } else {
1978
- $(this).find( 'sup' ).text( $scope.find( $(this).attr( 'data-filter' ) ).length );
1979
- }
1980
- });
1981
- }
1982
-
1983
- // Return if Disabled
1984
- if ( 'yes' === settings.filters_linkable ) {
1985
- return;
1986
- }
1987
-
1988
- // Deeplinking on Load
1989
- if ( 'yes' === settings.deeplinking ) {
1990
- var deepLink = window.location.hash.replace( '#filter:', '.' );
1991
-
1992
- if ( window.location.hash.match( '#filter:all' ) ) {
1993
- deepLink = '*';
1994
- }
1995
-
1996
- var activeFilter = $scope.find( '.wpr-grid-filters span[data-filter="'+ deepLink +'"]:not(.wpr-back-filter)' ),
1997
- activeFilterWrap = activeFilter.parent();
1998
-
1999
- // Sub Filters
2000
- if ( 'parent' === activeFilter.parent().attr( 'data-role' ) ) {
2001
- if ( activeFilterWrap.parent( 'ul' ).find( 'ul[data-parent="'+ deepLink +'"]').length ) {
2002
- activeFilterWrap.parent( 'ul' ).children( 'li' ).css( 'display', 'none' );
2003
- activeFilterWrap.siblings( 'ul[data-parent="'+ deepLink +'"]' ).css( 'display', 'block' );
2004
- }
2005
- } else if ( 'sub' === activeFilter.parent().attr( 'data-role' ) ) {
2006
- activeFilterWrap.closest( '.wpr-grid-filters' ).children( 'li' ).css( 'display', 'none' );
2007
- activeFilterWrap.parent( 'ul' ).css( 'display', 'inline-block' );
2008
- }
2009
-
2010
- // Active Filter Class
2011
- $scope.find( '.wpr-grid-filters span' ).removeClass( 'wpr-active-filter' );
2012
- activeFilter.addClass( 'wpr-active-filter' );
2013
-
2014
- $scope.find( '.wpr-grid' ).isotopewpr({ filter: deepLink });
2015
-
2016
- // Fix Lightbox
2017
- if ( '*' !== deepLink ) {
2018
- settings.lightbox.selector = deepLink +' .wpr-grid-image-wrap';
2019
- } else {
2020
- settings.lightbox.selector = ' .wpr-grid-image-wrap';
2021
- }
2022
-
2023
- lightboxPopup( settings );
2024
- }
2025
-
2026
- // Hide Empty Filters
2027
- if ( 'yes' === settings.filters_hide_empty ) {
2028
- $scope.find( '.wpr-grid-filters span' ).each(function() {
2029
- var searchClass = $(this).attr( 'data-filter' );
2030
-
2031
- if ( '*' !== searchClass ) {
2032
- if ( 0 === iGrid.find(searchClass).length ) {
2033
- $(this).parent( 'li' ).addClass( 'wpr-hidden-element' );
2034
- } else {
2035
- $(this).parent( 'li' ).removeClass( 'wpr-hidden-element' );
2036
- }
2037
- }
2038
- });
2039
- }
2040
-
2041
- // Set a Default Filter
2042
- if ( !$scope.hasClass('elementor-widget-wpr-woo-category-grid-pro') ) {
2043
- if ( '' !== settings.filters_default_filter ) {
2044
- setTimeout(function() {
2045
- $scope.find( '.wpr-grid-filters' ).find('span[data-filter*="-'+ settings.filters_default_filter +'"]')[0].click();
2046
- }, 100)
2047
- }
2048
- }
2049
-
2050
- // Click Event
2051
- $scope.find( '.wpr-grid-filters span' ).on( 'click', function() {
2052
- initialItems = 0;
2053
- var filterClass = $(this).data( 'filter' ),
2054
- filterWrap = $(this).parent( 'li' ),
2055
- filterRole = filterWrap.attr( 'data-role' );
2056
-
2057
- // Active Filter Class
2058
- $scope.find( '.wpr-grid-filters span' ).removeClass( 'wpr-active-filter' );
2059
- $(this).addClass( 'wpr-active-filter' );
2060
-
2061
- // Sub Filters
2062
- if ( 'parent' === filterRole ) {
2063
- if ( filterWrap.parent( 'ul' ).find( 'ul[data-parent="'+ filterClass +'"]').length ) {
2064
- filterWrap.parent( 'ul' ).children( 'li' ).css( 'display', 'none' );
2065
- filterWrap.siblings( 'ul[data-parent="'+ filterClass +'"]' ).css( 'display', 'block' );
2066
- }
2067
- } else if ( 'back' === filterRole ) {
2068
- filterWrap.closest( '.wpr-grid-filters' ).children( 'li' ).css( 'display', 'inline-block' );
2069
- filterWrap.parent().css( 'display', 'none' );
2070
- }
2071
-
2072
- // Deeplinking
2073
- if ( 'yes' === settings.deeplinking ) {
2074
- var filterHash = '#filter:'+ filterClass.replace( '.', '' );
2075
-
2076
- if ( '*' === filterClass ) {
2077
- filterHash = '#filter:all';
2078
- }
2079
-
2080
- window.location.href = window.location.pathname + window.location.search + filterHash;
2081
- }
2082
-
2083
- // Infinite Scroll
2084
- if ( 'infinite-scroll' === settings.pagination_type ) {
2085
- if ( 0 === iGrid.find($(this).attr('data-filter')).length ) {
2086
- $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' );
2087
- }
2088
- }
2089
-
2090
- // Load More
2091
- if ( 'load-more' === settings.pagination_type ) {
2092
- if ( 0 === iGrid.find($(this).attr('data-filter')).length ) {
2093
- $scope.find( '.wpr-grid' ).infiniteScroll( 'loadNextPage' );
2094
- }
2095
- }
2096
-
2097
- // Filtering Animation
2098
- if ( 'default' !== settings.filters_animation ) {
2099
- $scope.find( '.wpr-grid-item-inner' ).css({
2100
- 'opacity' : '0',
2101
- 'transition' : 'none'
2102
- });
2103
- }
2104
-
2105
- if ( 'fade-slide' === settings.filters_animation ) {
2106
- $scope.find( '.wpr-grid-item-inner' ).css( 'top', '20px' );
2107
- } else if ( 'zoom' === settings.filters_animation ) {
2108
- $scope.find( '.wpr-grid-item-inner' ).css( 'transform', 'scale(0.01)' );
2109
- } else {
2110
- $scope.find( '.wpr-grid-item-inner' ).css({
2111
- 'top' : '0',
2112
- 'transform' : 'scale(1)'
2113
- });
2114
- }
2115
-
2116
- // Filter Grid Items
2117
- $scope.find( '.wpr-grid' ).isotopewpr({ filter: filterClass });
2118
-
2119
- // Fix Lightbox
2120
- if ( '*' !== filterClass ) {
2121
- settings.lightbox.selector = filterClass +' .wpr-grid-image-wrap';
2122
- } else {
2123
- settings.lightbox.selector = ' .wpr-grid-image-wrap';
2124
- }
2125
-
2126
- // Destroy Lightbox
2127
- iGrid.data('lightGallery').destroy( true );
2128
- // Init Lightbox
2129
- iGrid.lightGallery( settings.lightbox );
2130
- });
2131
-
2132
- }
2133
-
2134
- }, // End widgetGrid
2135
-
2136
- widgetMagazineGrid: function( $scope ) {
2137
- // Settings
2138
- var iGrid = $scope.find( '.wpr-magazine-grid-wrap' ),
2139
- settings = iGrid.attr( 'data-slick' ),
2140
- dataSlideEffect = iGrid.attr('data-slide-effect');
2141
-
2142
- // Slider
2143
- if ( typeof settings !== typeof undefined && settings !== false ) {
2144
- iGrid.slick({
2145
- fade: 'fade' === dataSlideEffect ? true : false
2146
- });
2147
- }
2148
-
2149
- // Media Hover Link
2150
- if ( 'yes' === iGrid.find( '.wpr-grid-media-wrap' ).attr( 'data-overlay-link' ) && ! WprElements.editorCheck() ) {
2151
- iGrid.find( '.wpr-grid-media-wrap' ).css('cursor', 'pointer');
2152
-
2153
- iGrid.find( '.wpr-grid-media-wrap' ).on( 'click', function( event ) {
2154
- var targetClass = event.target.className;
2155
-
2156
- if ( -1 !== targetClass.indexOf( 'inner-block' ) || -1 !== targetClass.indexOf( 'wpr-cv-inner' ) ||
2157
- -1 !== targetClass.indexOf( 'wpr-grid-media-hover' ) ) {
2158
- event.preventDefault();
2159
- window.location.href = $(this).find( '.wpr-grid-media-hover-bg' ).attr( 'data-url' );
2160
- }
2161
- });
2162
- }
2163
-
2164
- // Sharing
2165
- if ( $scope.find( '.wpr-sharing-trigger' ).length ) {
2166
- var sharingTrigger = $scope.find( '.wpr-sharing-trigger' ),
2167
- sharingInner = $scope.find( '.wpr-post-sharing-inner' ),
2168
- sharingWidth = 5;
2169
-
2170
- // Calculate Width
2171
- sharingInner.first().find( 'a' ).each(function() {
2172
- sharingWidth += $(this).outerWidth() + parseInt( $(this).css('margin-right'), 10 );
2173
- });
2174
-
2175
- // Calculate Margin
2176
- var sharingMargin = parseInt( sharingInner.find( 'a' ).css('margin-right'), 10 );
2177
-
2178
- // Set Positions
2179
- if ( 'left' === sharingTrigger.attr( 'data-direction') ) {
2180
- // Set Width
2181
- sharingInner.css( 'width', sharingWidth +'px' );
2182
-
2183
- // Set Position
2184
- sharingInner.css( 'left', - ( sharingMargin + sharingWidth ) +'px' );
2185
- } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) {
2186
- // Set Width
2187
- sharingInner.css( 'width', sharingWidth +'px' );
2188
-
2189
- // Set Position
2190
- sharingInner.css( 'right', - ( sharingMargin + sharingWidth ) +'px' );
2191
- } else if ( 'top' === sharingTrigger.attr( 'data-direction') ) {
2192
- // Set Margins
2193
- sharingInner.find( 'a' ).css({
2194
- 'margin-right' : '0',
2195
- 'margin-top' : sharingMargin +'px'
2196
- });
2197
-
2198
- // Set Position
2199
- sharingInner.css({
2200
- 'top' : -sharingMargin +'px',
2201
- 'left' : '50%',
2202
- '-webkit-transform' : 'translate(-50%, -100%)',
2203
- 'transform' : 'translate(-50%, -100%)'
2204
- });
2205
- } else if ( 'right' === sharingTrigger.attr( 'data-direction') ) {
2206
- // Set Width
2207
- sharingInner.css( 'width', sharingWidth +'px' );
2208
-
2209
- // Set Position
2210
- sharingInner.css({
2211
- 'left' : sharingMargin +'px',
2212
- // 'bottom' : - ( sharingInner.outerHeight() + sharingTrigger.outerHeight() ) +'px',
2213
- });
2214
- } else if ( 'bottom' === sharingTrigger.attr( 'data-direction') ) {
2215
- // Set Margins
2216
- sharingInner.find( 'a' ).css({
2217
- 'margin-right' : '0',
2218
- 'margin-bottom' : sharingMargin +'px'
2219
- });
2220
-
2221
- // Set Position
2222
- sharingInner.css({
2223
- 'bottom' : -sharingMargin +'px',
2224
- 'left' : '50%',
2225
- '-webkit-transform' : 'translate(-50%, 100%)',
2226
- 'transform' : 'translate(-50%, 100%)'
2227
- });
2228
- }
2229
-
2230
- if ( 'click' === sharingTrigger.attr( 'data-action' ) ) {
2231
- sharingTrigger.on( 'click', function() {
2232
- var sharingInner = $(this).next();
2233
-
2234
- if ( 'hidden' === sharingInner.css( 'visibility' ) ) {
2235
- sharingInner.css( 'visibility', 'visible' );
2236
- sharingInner.find( 'a' ).css({
2237
- 'opacity' : '1',
2238
- 'top' : '0'
2239
- });
2240
-
2241
- setTimeout( function() {
2242
- sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' );
2243
- }, sharingInner.find( 'a' ).length * 100 );
2244
- } else {
2245
- sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' );
2246
-
2247
- sharingInner.find( 'a' ).css({
2248
- 'opacity' : '0',
2249
- 'top' : '-5px'
2250
- });
2251
- setTimeout( function() {
2252
- sharingInner.css( 'visibility', 'hidden' );
2253
- }, sharingInner.find( 'a' ).length * 100 );
2254
- }
2255
- });
2256
- } else {
2257
- sharingTrigger.on( 'mouseenter', function() {
2258
- var sharingInner = $(this).next();
2259
-
2260
- sharingInner.css( 'visibility', 'visible' );
2261
- sharingInner.find( 'a' ).css({
2262
- 'opacity' : '1',
2263
- 'top' : '0',
2264
- });
2265
-
2266
- setTimeout( function() {
2267
- sharingInner.find( 'a' ).addClass( 'wpr-no-transition-delay' );
2268
- }, sharingInner.find( 'a' ).length * 100 );
2269
- });
2270
- $scope.find( '.wpr-grid-item-sharing' ).on( 'mouseleave', function() {
2271
- var sharingInner = $(this).find( '.wpr-post-sharing-inner' );
2272
-
2273
- sharingInner.find( 'a' ).removeClass( 'wpr-no-transition-delay' );
2274
-
2275
- sharingInner.find( 'a' ).css({
2276
- 'opacity' : '0',
2277
- 'top' : '-5px'
2278
- });
2279
- setTimeout( function() {
2280
- sharingInner.css( 'visibility', 'hidden' );
2281
- }, sharingInner.find( 'a' ).length * 100 );
2282
- });
2283
- }
2284
- }
2285
-
2286
- // Likes
2287
- if ( $scope.find( '.wpr-post-like-button' ).length ) {
2288
-
2289
- $scope.find( '.wpr-post-like-button' ).on( 'click', function() {
2290
- var current = $(this);
2291
-
2292
- if ( '' !== current.attr( 'data-post-id' ) ) {
2293
-
2294
- $.ajax({
2295
- type: 'POST',
2296
- url: current.attr( 'data-ajax' ),
2297
- data: {
2298
- action : 'wpr_likes_init',
2299
- post_id : current.attr( 'data-post-id' ),
2300
- nonce : current.attr( 'data-nonce' )
2301
- },
2302
- beforeSend:function() {
2303
- current.fadeTo( 500, 0.5 );
2304
- },
2305
- success: function( response ) {
2306
- // Get Icon
2307
- var iconClass = current.attr( 'data-icon' );
2308
-
2309
- // Get Count
2310
- var countHTML = response.count;
2311
-
2312
- if ( '' === countHTML.replace(/<\/?[^>]+(>|$)/g, "") ) {
2313
- countHTML = '<span class="wpr-post-like-count">'+ current.attr( 'data-text' ) +'</span>';
2314
-
2315
- if ( ! current.hasClass( 'wpr-likes-zero' ) ) {
2316
- current.addClass( 'wpr-likes-zero' );
2317
- }
2318
- } else {
2319
- current.removeClass( 'wpr-likes-zero' );
2320
- }
2321
-
2322
- // Update Icon
2323
- if ( current.hasClass( 'wpr-already-liked' ) ) {
2324
- current.prop( 'title', 'Like' );
2325
- current.removeClass( 'wpr-already-liked' );
2326
- current.html( '<i class="'+ iconClass +'"></i>' + countHTML );
2327
- } else {
2328
- current.prop( 'title', 'Unlike' );
2329
- current.addClass( 'wpr-already-liked' );
2330
- current.html( '<i class="'+ iconClass.replace( 'far', 'fas' ) +'"></i>' + countHTML );
2331
- }
2332
-
2333
- current.fadeTo( 500, 1 );
2334
- }
2335
- });
2336
-
2337
- }
2338
-
2339
- return false;
2340
- });
2341
-
2342
- }
2343
-
2344
- }, // End widgetMagazineGrid
2345
-
2346
- widgetFeaturedMedia: function( $scope ) {
2347
- var gallery = $scope.find( '.wpr-gallery-slider' ),
2348
- gallerySettings = gallery.attr( 'data-slick' );
2349
-
2350
- gallery.animate({ 'opacity' : '1' }, 1000 );
2351
-
2352
- if ( '[]' !== gallerySettings ) {
2353
- gallery.slick({
2354
- appendDots : $scope.find( '.wpr-gallery-slider-dots' ),
2355
- customPaging : function ( slider, i ) {
2356
- var slideNumber = (i + 1),
2357
- totalSlides = slider.slideCount;
2358
-
2359
- return '<span class="wpr-gallery-slider-dot"></span>';
2360
- }
2361
- });
2362
- }
2363
-
2364
- // Lightbox
2365
- var lightboxSettings = $( '.wpr-featured-media-image' ).attr( 'data-lightbox' );
2366
-
2367
- if ( typeof lightboxSettings !== typeof undefined && lightboxSettings !== false && ! WprElements.editorCheck() ) {
2368
- var MediaWrap = $scope.find( '.wpr-featured-media-wrap' );
2369
- lightboxSettings = JSON.parse( lightboxSettings );
2370
-
2371
- // Init Lightbox
2372
- MediaWrap.lightGallery( lightboxSettings );
2373
-
2374
- // Show/Hide Controls
2375
- MediaWrap.on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) {
2376
- var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ),
2377
- lightboxDownload = $( '#lg-download' ).attr( 'href' );
2378
-
2379
- if ( $( '#lg-download' ).length ) {
2380
- if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) {
2381
- lightboxControls.addClass( 'wpr-hidden-element' );
2382
- } else {
2383
- lightboxControls.removeClass( 'wpr-hidden-element' );
2384
- }
2385
- }
2386
-
2387
- // Autoplay Button
2388
- if ( '' === lightboxSettings.autoplay ) {
2389
- $( '.lg-autoplay-button' ).css({
2390
- 'width' : '0',
2391
- 'height' : '0',
2392
- 'overflow' : 'hidden'
2393
- });
2394
- }
2395
- });
2396
- }
2397
- }, // End widgetFeaturedMedia
2398
-
2399
- widgetProductMedia: function( $scope ) {
2400
-
2401
- var sliderIcons = $scope.find('.wpr-gallery-slider-arrows-wrap');
2402
-
2403
- sliderIcons.remove();
2404
-
2405
- if ( $scope.find('.woocommerce-product-gallery__trigger').length ) {
2406
- $scope.find('.woocommerce-product-gallery__trigger').remove();
2407
- }
2408
-
2409
- $scope.find('.flex-viewport').append(sliderIcons);
2410
-
2411
- $scope.find('.wpr-gallery-slider-arrow').on('click', function() {
2412
- if ($(this).hasClass('wpr-gallery-slider-prev-arrow')) {
2413
- $scope.find('a.flex-prev').trigger('click');
2414
- } else if ($(this).hasClass('wpr-gallery-slider-next-arrow')) {
2415
- $scope.find('a.flex-next').trigger('click');
2416
- }
2417
- });
2418
-
2419
- // Lightbox
2420
- var lightboxSettings = $( '.wpr-product-media-wrap' ).attr( 'data-lightbox' );
2421
-
2422
- if ( typeof lightboxSettings !== typeof undefined && lightboxSettings !== false && ! WprElements.editorCheck() ) {
2423
-
2424
- $scope.find('.woocommerce-product-gallery__image').each(function() {
2425
- $(this).attr('data-lightbox', lightboxSettings);
2426
- $(this).attr('data-src', $(this).find('a').attr('href'));
2427
- });
2428
-
2429
-
2430
- $scope.find('.woocommerce-product-gallery__image').on('click', function(e) {
2431
- e.stopPropagation();
2432
- });
2433
-
2434
- $scope.find('.wpr-product-media-lightbox').on('click', function() {
2435
- $scope.find('.woocommerce-product-gallery__image').trigger('click');
2436
- });
2437
-
2438
- var MediaWrap = $scope.find( '.woocommerce-product-gallery__wrapper' );
2439
- lightboxSettings = JSON.parse( lightboxSettings );
2440
-
2441
- // Init Lightbox
2442
- MediaWrap.lightGallery( lightboxSettings );
2443
-
2444
- // Show/Hide Controls
2445
- MediaWrap.on( 'onAferAppendSlide.lg, onAfterSlide.lg', function( event, prevIndex, index ) {
2446
- var lightboxControls = $( '#lg-actual-size, #lg-zoom-in, #lg-zoom-out, #lg-download' ),
2447
- lightboxDownload = $( '#lg-download' ).attr( 'href' );
2448
-
2449
- if ( $( '#lg-download' ).length ) {
2450
- if ( -1 === lightboxDownload.indexOf( 'wp-content' ) ) {
2451
- lightboxControls.addClass( 'wpr-hidden-element' );
2452
- } else {
2453
- lightboxControls.removeClass( 'wpr-hidden-element' );
2454
- }
2455
- }
2456
-
2457
- // Autoplay Button
2458
- if ( '' === lightboxSettings.autoplay ) {
2459
- $( '.lg-autoplay-button' ).css({
2460
- 'width' : '0',
2461
- 'height' : '0',
2462
- 'overflow' : 'hidden'
2463
- });
2464
- }
2465
- });
2466
- }
2467
-
2468
- if ( $scope.hasClass('wpr-product-media-thumbs-slider') && $scope.hasClass('wpr-product-media-thumbs-vertical') ) {
2469
-
2470
- var thumbsToShow = $scope.find('.wpr-product-media-wrap').data('slidestoshow');
2471
- var thumbsToScroll = +$scope.find('.wpr-product-media-wrap').data('slidestoscroll');
2472
-
2473
- $scope.find('.flex-control-nav').css('height', ((100/thumbsToShow) * $scope.find('.flex-control-nav li').length) + '%');
2474
-
2475
- $scope.find('.flex-control-nav').wrap('<div class="wpr-fcn-wrap"></div>');
2476
-
2477
- var thumbIcon1 = $scope.find('.wpr-thumbnail-slider-prev-arrow');
2478
- var thumbIcon2 = $scope.find('.wpr-thumbnail-slider-next-arrow');
2479
-
2480
- thumbIcon1.remove();
2481
- thumbIcon2.remove();
2482
-
2483
- if ( $scope.find('.wpr-product-media-wrap').data('slidestoshow') < $scope.find('.flex-control-nav li').length ) {
2484
- $scope.find('.wpr-fcn-wrap').prepend(thumbIcon1);
2485
- $scope.find('.wpr-fcn-wrap').append(thumbIcon2);
2486
- }
2487
-
2488
- var posy = 0;
2489
- var slideCount = 0;
2490
-
2491
- $scope.find('.wpr-thumbnail-slider-next-arrow').on('click', function() {
2492
- console.log(
2493
- slideCount + thumbsToScroll,
2494
- $scope.find('.flex-control-nav li').length - 1
2495
- );
2496
- // var currTrans = $scope.find('.flex-control-nav').css('transform') != 'none' ? $scope.find('.flex-control-nav').css('transform').split(/[()]/)[1] : 0;
2497
- // posx = currTrans ? currTrans.split(',')[4] : 0;
2498
- if ( (slideCount + thumbsToScroll) < $scope.find('.flex-control-nav li').length - 1 ) {
2499
- posy++;
2500
- slideCount = slideCount + thumbsToScroll;
2501
- $scope.find('.flex-control-nav').css('transform', 'translateY('+ (parseInt(-posy) * (parseInt($scope.find('.flex-control-nav li:last-child').css('height').slice(0, -2)) + parseInt($scope.find('.flex-control-nav li').css('margin-bottom'))) * thumbsToScroll) +'px)');
2502
- if ( posy >= 1 ) {
2503
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', false);
2504
- } else {
2505
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', true);
2506
- }
2507
- } else {
2508
- posy = 0;
2509
- slideCount = 0;
2510
- $scope.find('.flex-control-nav').css('transform', `translateY(0)`);
2511
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', true);
2512
- }
2513
- });
2514
-
2515
- $scope.find('.wpr-thumbnail-slider-prev-arrow').on('click', function() {
2516
- if ( posy >= 1 ) {
2517
- posy--;
2518
- if ( posy == 0 ) {
2519
- $(this).attr('disabled', true);
2520
- }
2521
- slideCount = slideCount - thumbsToScroll;
2522
- $scope.find('.flex-control-nav').css('transform', 'translateY('+ parseInt(-posy) * (parseInt($scope.find('.flex-control-nav li').css('height').slice(0, -2)) + parseInt($scope.find('.flex-control-nav li:last-child').css('margin-top'))) * thumbsToScroll +'px)');
2523
- if ( slideCount < $scope.find('.flex-control-nav li').length - 1 ) {
2524
- $scope.find('.wpr-thumbnail-slider-next-arrow').attr('disabled', false);
2525
- } else {
2526
- $scope.find('.wpr-thumbnail-slider-next-arrow').attr('disabled', true);
2527
- }
2528
- } else {
2529
- // slideCount = $scope.find('.flex-control-nav li').length - 1;
2530
- // $scope.find('.flex-control-nav').css('transform', `translateX(0)`);
2531
- $(this).attr('disabled', true);
2532
- }
2533
- });
2534
- }
2535
-
2536
- if ( $scope.hasClass('wpr-product-media-thumbs-slider') && $scope.find('.wpr-product-media-wrap').hasClass('wpr-product-media-thumbs-horizontal') ) {
2537
-
2538
- var thumbsToShow = $scope.find('.wpr-product-media-wrap').data('slidestoshow');
2539
- var thumbsToScroll = +$scope.find('.wpr-product-media-wrap').data('slidestoscroll');
2540
-
2541
- $scope.find('.flex-control-nav').css('width', ((100/thumbsToShow) * $scope.find('.flex-control-nav li').length) +'%');
2542
-
2543
- $scope.find('.flex-control-nav').wrap('<div class="wpr-fcn-wrap"></div>');
2544
-
2545
- var thumbIcon1 = $scope.find('.wpr-thumbnail-slider-prev-arrow');
2546
- var thumbIcon2 = $scope.find('.wpr-thumbnail-slider-next-arrow');
2547
-
2548
- thumbIcon1.remove();
2549
- thumbIcon2.remove();
2550
-
2551
- if ( $scope.find('.wpr-product-media-wrap').data('slidestoshow') < $scope.find('.flex-control-nav li').length ) {
2552
- $scope.find('.wpr-fcn-wrap').prepend(thumbIcon1);
2553
- $scope.find('.wpr-fcn-wrap').append(thumbIcon2);
2554
- $scope.find('.wpr-thumbnail-slider-arrow').removeClass('wpr-tsa-hidden');
2555
- }
2556
-
2557
- var posx = 0;
2558
- var slideCount = 0;
2559
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', true);
2560
-
2561
- $scope.find('.wpr-thumbnail-slider-next-arrow').on('click', function() {
2562
- // var currTrans = $scope.find('.flex-control-nav').css('transform') != 'none' ? $scope.find('.flex-control-nav').css('transform').split(/[()]/)[1] : 0;
2563
- // posx = currTrans ? currTrans.split(',')[4] : 0;
2564
- if ( (slideCount + thumbsToScroll) < $scope.find('.flex-control-nav li').length - 1 ) {
2565
- posx++;
2566
- slideCount = slideCount + thumbsToScroll;
2567
- $scope.find('.flex-control-nav').css('transform', 'translateX('+ (parseInt(-posx) * (parseInt($scope.find('.flex-control-nav li:last-child').css('width').slice(0, -2)) + parseInt($scope.find('.flex-control-nav li').css('margin-right'))) * thumbsToScroll) +'px)');
2568
- if ( posx >= 1 ) {
2569
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', false);
2570
- } else {
2571
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', true);
2572
- }
2573
- } else {
2574
- posx = 0;
2575
- slideCount = 0;
2576
- $scope.find('.flex-control-nav').css('transform', `translateX(0)`);
2577
- $scope.find('.wpr-thumbnail-slider-prev-arrow').attr('disabled', true);
2578
- }
2579
- });
2580
-
2581
- $scope.find('.wpr-thumbnail-slider-prev-arrow').on('click', function() {
2582
- if ( posx >= 1 ) {
2583
- posx--;
2584
- if ( posx == 0 ) {
2585
- $(this).attr('disabled', true);
2586
- }
2587
- slideCount = slideCount - thumbsToScroll;
2588
- $scope.find('.flex-control-nav').css('transform', 'translateX('+ parseInt(-posx) * (parseInt($scope.find('.flex-control-nav li').css('width').slice(0, -2)) + parseInt($scope.find('.flex-control-nav li').css('margin-right'))) * thumbsToScroll +'px)');
2589
- if ( slideCount < $scope.find('.flex-control-nav li').length - 1 ) {
2590
- $scope.find('.wpr-thumbnail-slider-next-arrow').attr('disabled', false);
2591
- } else {
2592
- $scope.find('.wpr-thumbnail-slider-next-arrow').attr('disabled', true);
2593
- }
2594
- } else {
2595
- // slideCount = $scope.find('.flex-control-nav li').length - 1;
2596
- // $scope.find('.flex-control-nav').css('transform', `translateX(0)`);
2597
- $(this).attr('disabled', true);
2598
- }
2599
- });
2600
-
2601
- }
2602
- }, // End widgetProductMedia
2603
-
2604
- widgetCountDown: function( $scope ) {
2605
- var countDownWrap = $scope.children( '.elementor-widget-container' ).children( '.wpr-countdown-wrap' ),
2606
- countDownInterval = null,
2607
- dataInterval = countDownWrap.data( 'interval' ),
2608
- dataShowAgain = countDownWrap.data( 'show-again' ),
2609
- endTime = new Date( dataInterval * 1000);
2610
-
2611
- // Evergreen End Time
2612
- if ( 'evergreen' === countDownWrap.data( 'type' ) ) {
2613
- var evergreenDate = new Date(),
2614
- widgetID = $scope.attr( 'data-id' ),
2615
- settings = JSON.parse( localStorage.getItem( 'WprCountDownSettings') ) || {};
2616
-
2617
- // End Time
2618
- if ( settings.hasOwnProperty( widgetID ) ) {
2619
- if ( Object.keys(settings).length === 0 || dataInterval !== settings[widgetID].interval ) {
2620
- endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval );
2621
- } else {
2622
- endTime = settings[widgetID].endTime;
2623
- }
2624
- } else {
2625
- endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval );
2626
- }
2627
-
2628
- if ( endTime + dataShowAgain < evergreenDate.setSeconds( evergreenDate.getSeconds() ) ) {
2629
- endTime = evergreenDate.setSeconds( evergreenDate.getSeconds() + dataInterval );
2630
- }
2631
-
2632
- // Settings
2633
- settings[widgetID] = {
2634
- interval: dataInterval,
2635
- endTime: endTime
2636
- };
2637
-
2638
- // Save Settings in Browser
2639
- localStorage.setItem( 'WprCountDownSettings', JSON.stringify( settings ) );
2640
- }
2641
-
2642
- // Init on Load
2643
- initCountDown();
2644
-
2645
- // Start CountDown
2646
- if ( ! WprElements.editorCheck() ) { //tmp
2647
- countDownInterval = setInterval( initCountDown, 1000 );
2648
- }
2649
-
2650
- function initCountDown() {
2651
- var timeLeft = endTime - new Date();
2652
-
2653
- var numbers = {
2654
- days: Math.floor(timeLeft / (1000 * 60 * 60 * 24)),
2655
- hours: Math.floor(timeLeft / (1000 * 60 * 60) % 24),
2656
- minutes: Math.floor(timeLeft / 1000 / 60 % 60),
2657
- seconds: Math.floor(timeLeft / 1000 % 60)
2658
- };
2659
-
2660
- if ( numbers.days < 0 || numbers.hours < 0 || numbers.minutes < 0 ) {
2661
- numbers = {
2662
- days: 0,
2663
- hours: 0,
2664
- minutes: 0,
2665
- seconds: 0
2666
- };
2667
- }
2668
-
2669
- $scope.find( '.wpr-countdown-number' ).each(function() {
2670
- var number = numbers[ $(this).attr( 'data-item' ) ];
2671
-
2672
- if ( 1 === number.toString().length ) {
2673
- number = '0' + number;
2674
- }
2675
-
2676
- $(this).text( number );
2677
-
2678
- // Labels
2679
- var labels = $(this).next();
2680
-
2681
- if ( labels.length ) {
2682
- if ( ! $(this).hasClass( 'wpr-countdown-seconds' ) ) {
2683
- var labelText = labels.data( 'text' );
2684
-
2685
- if ( '01' == number ) {
2686
- labels.text( labelText.singular );
2687
- } else {
2688
- labels.text( labelText.plural );
2689
- }
2690
- }
2691
- }
2692
- });
2693
-
2694
- // Stop Counting
2695
- if ( timeLeft < 0 ) {
2696
- clearInterval( countDownInterval );
2697
-
2698
- // Actions
2699
- expiredActions();
2700
- }
2701
- }
2702
-
2703
- function expiredActions() {
2704
- var dataActions = countDownWrap.data( 'actions' );
2705
-
2706
- if ( ! WprElements.editorCheck() ) {
2707
-
2708
- if ( dataActions.hasOwnProperty( 'hide-timer' ) ) {
2709
- countDownWrap.hide();
2710
- }
2711
-
2712
- if ( dataActions.hasOwnProperty( 'hide-element' ) ) {
2713
- $( dataActions['hide-element'] ).hide();
2714
- }
2715
-
2716
- if ( dataActions.hasOwnProperty( 'message' ) ) {
2717
- if ( ! $scope.children( '.elementor-widget-container' ).children( '.wpr-countdown-message' ).length ) {
2718
- countDownWrap.after( '<div class="wpr-countdown-message">'+ dataActions['message'] +'</div>' );
2719
- }
2720
- }
2721
-
2722
- if ( dataActions.hasOwnProperty( 'redirect' ) ) {
2723
- window.location.href = dataActions['redirect'];
2724
- }
2725
-
2726
- if ( dataActions.hasOwnProperty( 'load-template' ) ) {
2727
- // countDownWrap.parent().find( '.elementor-inner' ).parent().show();
2728
- countDownWrap.next('.elementor').show();
2729
- }
2730
-
2731
- }
2732
-
2733
- }
2734
-
2735
- }, // End widgetCountDown
2736
-
2737
- widgetGoogleMaps: function( $scope ) {
2738
- var googleMap = $scope.find( '.wpr-google-map' ),
2739
- settings = googleMap.data( 'settings' ),
2740
- controls = googleMap.data( 'controls' ),
2741
- locations = googleMap.data( 'locations' ),
2742
- gMarkers = [],
2743
- bounds = new google.maps.LatLngBounds();
2744
-
2745
- // Create Map
2746
- var map = new google.maps.Map( googleMap[0], {
2747
- mapTypeId: settings.type,
2748
- styles: get_map_style( settings ),
2749
- zoom: settings.zoom_depth,
2750
- gestureHandling: settings.zoom_on_scroll,
2751
-
2752
- // UI
2753
- mapTypeControl: controls.type,
2754
- fullscreenControl: controls.fullscreen,
2755
- zoomControl: controls.zoom,
2756
- streetViewControl: controls.streetview,
2757
- } );
2758
-
2759
- // Set Markers
2760
- for ( var i = 0; i < locations.length; i++ ) {
2761
- var data = locations[i],
2762
- iconOptions = '',
2763
- iconSizeW = data.gm_marker_icon_size_width.size,
2764
- iconSizeH = data.gm_marker_icon_size_height.size;
2765
-
2766
- // Empty Values
2767
- if ( '' == data.gm_latitude || '' == data.gm_longtitude ) {
2768
- continue;
2769
- }
2770
-
2771
- // Custom Icon
2772
- if ( 'yes' === data.gm_custom_marker ) {
2773
- iconOptions = {
2774
- url: data.gm_marker_icon.url,
2775
- scaledSize: new google.maps.Size( iconSizeW, iconSizeH ),
2776
- };
2777
- }
2778
-
2779
- // Marker
2780
- var marker = new google.maps.Marker({
2781
- map: map,
2782
- position: new google.maps.LatLng( parseFloat( data.gm_latitude ), parseFloat( data.gm_longtitude ) ),
2783
- animation: google.maps.Animation[data.gm_marker_animation],
2784
- icon: iconOptions
2785
- });
2786
-
2787
- // Info Window
2788
- if ( 'none' !== data.gm_show_info_window ) {
2789
- infoWindow( marker, data );
2790
- }
2791
-
2792
- gMarkers.push(marker);
2793
- bounds.extend(marker.position);
2794
- }
2795
-
2796
- // Center Map
2797
- if ( locations.length > 1 ) {
2798
- map.fitBounds(bounds);
2799
- } else {
2800
- map.setCenter( bounds.getCenter() );
2801
- }
2802
-
2803
- // Marker Clusters
2804
- if ( 'yes' === settings.cluster_markers ) {
2805
- var markerCluster = new MarkerClusterer(map, gMarkers, {
2806
- imagePath: settings.clusters_url
2807
- });
2808
- }
2809
-
2810
- // Info Wondow
2811
- function infoWindow( marker, data ) {
2812
- var content = '<div class="wpr-gm-iwindow"><h3>'+ data.gm_location_title +'</h3><p>'+ data.gm_location_description +'</p></div>',
2813
- iWindow = new google.maps.InfoWindow({
2814
- content: content,
2815
- maxWidth: data.gm_info_window_width.size
2816
- });
2817
-
2818
- if ( 'load' === data.gm_show_info_window ) {
2819
- iWindow.open( map, marker );
2820
- } else {
2821
- marker.addListener( 'click', function() {
2822
- iWindow.open( map, marker );
2823
- });
2824
- }
2825
- }
2826
-
2827
- // Map Styles
2828
- function get_map_style( settings ) {
2829
- var style;
2830
-
2831
- switch ( settings.style ) {
2832
- case 'simple':
2833
- style = JSON.parse('[{"featureType":"road","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#fffffa"}]},{"featureType":"water","stylers":[{"lightness":50}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"lightness":40}]}]');
2834
- break;
2835
- case 'white-black':
2836
- style = JSON.parse('[{"featureType":"road","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"administrative","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"weight":1}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"weight":0.8}]},{"featureType":"landscape","stylers":[{"color":"#ffffff"}]},{"featureType":"water","stylers":[{"visibility":"off"}]},{"featureType":"transit","stylers":[{"visibility":"off"}]},{"elementType":"labels","stylers":[{"visibility":"off"}]},{"elementType":"labels.text","stylers":[{"visibility":"on"}]},{"elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"elementType":"labels.text.fill","stylers":[{"color":"#000000"}]},{"elementType":"labels.icon","stylers":[{"visibility":"on"}]}]');
2837
- break;
2838
- case 'light-silver':
2839
- style = JSON.parse('[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#e9e9e9"},{"lightness":17}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":20}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffffff"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#ffffff"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#ffffff"},{"lightness":16}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#f5f5f5"},{"lightness":21}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#dedede"},{"lightness":21}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#ffffff"},{"lightness":16}]},{"elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#333333"},{"lightness":40}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#f2f2f2"},{"lightness":19}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#fefefe"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#fefefe"},{"lightness":17},{"weight":1.2}]}]');
2840
- break;
2841
- case 'light-grayscale':
2842
- style = JSON.parse('[{"featureType":"all","elementType":"geometry.fill","stylers":[{"weight":"2.00"}]},{"featureType":"all","elementType":"geometry.stroke","stylers":[{"color":"#9c9c9c"}]},{"featureType":"all","elementType":"labels.text","stylers":[{"visibility":"on"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"color":"#eeeeee"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#7b7b7b"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]},{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#c8d7d4"}]},{"featureType":"water","elementType":"labels.text.fill","stylers":[{"color":"#070707"}]},{"featureType":"water","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]}]');
2843
- break;
2844
- case 'subtle-grayscale':
2845
- style = JSON.parse('[{"featureType":"administrative","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"administrative.province","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"saturation":-100},{"lightness":65},{"visibility":"on"}]},{"featureType":"poi","elementType":"all","stylers":[{"saturation":-100},{"lightness":"50"},{"visibility":"simplified"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":"-100"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"all","stylers":[{"lightness":"30"}]},{"featureType":"road.local","elementType":"all","stylers":[{"lightness":"40"}]},{"featureType":"transit","elementType":"all","stylers":[{"saturation":-100},{"visibility":"simplified"}]},{"featureType":"water","elementType":"geometry","stylers":[{"hue":"#ffff00"},{"lightness":-25},{"saturation":-97}]},{"featureType":"water","elementType":"labels","stylers":[{"lightness":-25},{"saturation":-100}]}]');
2846
- break;
2847
- case 'mostly-white':
2848
- style = JSON.parse('[{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#6195a0"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"landscape","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"color":"#e6f3d6"},{"visibility":"on"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45},{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#f4d2c5"},{"visibility":"simplified"}]},{"featureType":"road.highway","elementType":"labels.text","stylers":[{"color":"#4e4e4e"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#f4f4f4"}]},{"featureType":"road.arterial","elementType":"labels.text.fill","stylers":[{"color":"#787878"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#eaf6f8"},{"visibility":"on"}]},{"featureType":"water","elementType":"geometry.fill","stylers":[{"color":"#eaf6f8"}]}]');
2849
- break;
2850
- case 'mostly-green':
2851
- style = JSON.parse('[{"featureType":"landscape.man_made","elementType":"geometry","stylers":[{"color":"#f7f1df"}]},{"featureType":"landscape.natural","elementType":"geometry","stylers":[{"color":"#d0e3b4"}]},{"featureType":"landscape.natural.terrain","elementType":"geometry","stylers":[{"visibility":"off"}]},{"featureType":"poi","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"poi.business","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"poi.medical","elementType":"geometry","stylers":[{"color":"#fbd3da"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#bde6ab"}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#ffe15f"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#efd151"}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.local","elementType":"geometry.fill","stylers":[{"color":"black"}]},{"featureType":"transit.station.airport","elementType":"geometry.fill","stylers":[{"color":"#cfb2db"}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#a2daf2"}]}]');
2852
- break;
2853
- case 'neutral-blue':
2854
- style = JSON.parse('[{"featureType":"water","elementType":"geometry","stylers":[{"color":"#193341"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#2c5a71"}]},{"featureType":"road","elementType":"geometry","stylers":[{"color":"#29768a"},{"lightness":-37}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#406d80"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#406d80"}]},{"elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#3e606f"},{"weight":2},{"gamma":0.84}]},{"elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"administrative","elementType":"geometry","stylers":[{"weight":0.6},{"color":"#1a3541"}]},{"elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"color":"#2c5a71"}]}]');
2855
- break;
2856
- case 'blue-water':
2857
- style = JSON.parse('[{"featureType":"administrative","elementType":"labels.text.fill","stylers":[{"color":"#444444"}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#f2f2f2"}]},{"featureType":"poi","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"road","elementType":"all","stylers":[{"saturation":-100},{"lightness":45}]},{"featureType":"road.highway","elementType":"all","stylers":[{"visibility":"simplified"}]},{"featureType":"road.arterial","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"transit","elementType":"all","stylers":[{"visibility":"off"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#46bcec"},{"visibility":"on"}]}]');
2858
- break;
2859
- case 'blue-essense':
2860
- style = JSON.parse('[{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#e0efef"}]},{"featureType":"poi","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"hue":"#1900ff"},{"color":"#c0e8e8"}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":100},{"visibility":"simplified"}]},{"featureType":"road","elementType":"labels","stylers":[{"visibility":"off"}]},{"featureType":"transit.line","elementType":"geometry","stylers":[{"visibility":"on"},{"lightness":700}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#7dcdcd"}]}]');
2861
- break;
2862
- case 'golden-brown':
2863
- style = JSON.parse('[{"featureType":"all","elementType":"all","stylers":[{"color":"#ff7000"},{"lightness":"69"},{"saturation":"100"},{"weight":"1.17"},{"gamma":"2.04"}]},{"featureType":"all","elementType":"geometry","stylers":[{"color":"#cb8536"}]},{"featureType":"all","elementType":"labels","stylers":[{"color":"#ffb471"},{"lightness":"66"},{"saturation":"100"}]},{"featureType":"all","elementType":"labels.text.fill","stylers":[{"gamma":0.01},{"lightness":20}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"saturation":-31},{"lightness":-33},{"weight":2},{"gamma":0.8}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"landscape","elementType":"all","stylers":[{"lightness":"-8"},{"gamma":"0.98"},{"weight":"2.45"},{"saturation":"26"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"lightness":30},{"saturation":30}]},{"featureType":"poi","elementType":"geometry","stylers":[{"saturation":20}]},{"featureType":"poi.park","elementType":"geometry","stylers":[{"lightness":20},{"saturation":-20}]},{"featureType":"road","elementType":"geometry","stylers":[{"lightness":10},{"saturation":-30}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"saturation":25},{"lightness":25}]},{"featureType":"water","elementType":"all","stylers":[{"lightness":-20},{"color":"#ecc080"}]}]');
2864
- break;
2865
- case 'midnight-commander':
2866
- style = JSON.parse('[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"color":"#000000"},{"lightness":13}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#144b53"},{"lightness":14},{"weight":1.4}]},{"featureType":"landscape","elementType":"all","stylers":[{"color":"#08304b"}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#0c4152"},{"lightness":5}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#0b434f"},{"lightness":25}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#000000"}]},{"featureType":"road.arterial","elementType":"geometry.stroke","stylers":[{"color":"#0b3d51"},{"lightness":16}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"}]},{"featureType":"transit","elementType":"all","stylers":[{"color":"#146474"}]},{"featureType":"water","elementType":"all","stylers":[{"color":"#021019"}]}]');
2867
- break;
2868
- case 'shades-of-grey':
2869
- style = JSON.parse('[{"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":17}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":29},{"weight":0.2}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]}]');
2870
- break;
2871
- case 'yellow-black':
2872
- style = JSON.parse('[{"featureType":"all","elementType":"labels","stylers":[{"visibility":"on"}]},{"featureType":"all","elementType":"labels.text.fill","stylers":[{"saturation":36},{"color":"#000000"},{"lightness":40}]},{"featureType":"all","elementType":"labels.text.stroke","stylers":[{"visibility":"on"},{"color":"#000000"},{"lightness":16}]},{"featureType":"all","elementType":"labels.icon","stylers":[{"visibility":"off"}]},{"featureType":"administrative","elementType":"geometry.fill","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"administrative","elementType":"geometry.stroke","stylers":[{"color":"#000000"},{"lightness":17},{"weight":1.2}]},{"featureType":"administrative.country","elementType":"labels.text.fill","stylers":[{"color":"#e5c163"}]},{"featureType":"administrative.locality","elementType":"labels.text.fill","stylers":[{"color":"#c4c4c4"}]},{"featureType":"administrative.neighborhood","elementType":"labels.text.fill","stylers":[{"color":"#e5c163"}]},{"featureType":"landscape","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":20}]},{"featureType":"poi","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":21},{"visibility":"on"}]},{"featureType":"poi.business","elementType":"geometry","stylers":[{"visibility":"on"}]},{"featureType":"road.highway","elementType":"geometry.fill","stylers":[{"color":"#e5c163"},{"lightness":"0"}]},{"featureType":"road.highway","elementType":"geometry.stroke","stylers":[{"visibility":"off"}]},{"featureType":"road.highway","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.highway","elementType":"labels.text.stroke","stylers":[{"color":"#e5c163"}]},{"featureType":"road.arterial","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":18}]},{"featureType":"road.arterial","elementType":"geometry.fill","stylers":[{"color":"#575757"}]},{"featureType":"road.arterial","elementType":"labels.text.fill","stylers":[{"color":"#ffffff"}]},{"featureType":"road.arterial","elementType":"labels.text.stroke","stylers":[{"color":"#2c2c2c"}]},{"featureType":"road.local","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":16}]},{"featureType":"road.local","elementType":"labels.text.fill","stylers":[{"color":"#999999"}]},{"featureType":"transit","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":19}]},{"featureType":"water","elementType":"geometry","stylers":[{"color":"#000000"},{"lightness":17}]}]');
2873
- break;
2874
- case 'custom':
2875
- style = JSON.parse( settings.custom_style );
2876
- break;
2877
- default:
2878
- style = '';
2879
- }
2880
-
2881
- return style;
2882
- }
2883
-
2884
- }, // End widgetGoogleMaps
2885
-
2886
- widgetBeforeAfter: function( $scope ) {
2887
- var imagesWrap = $scope.find( '.wpr-ba-image-container' ),
2888
- imageOne = imagesWrap.find( '.wpr-ba-image-1' ),
2889
- imageTwo = imagesWrap.find( '.wpr-ba-image-2' ),
2890
- divider = imagesWrap.find( '.wpr-ba-divider' ),
2891
- startPos = imagesWrap.attr( 'data-position' );
2892
-
2893
- // Horizontal
2894
- if ( imagesWrap.hasClass( 'wpr-ba-horizontal' ) ) {
2895
- // On Load
2896
- divider.css( 'left', startPos +'%' );
2897
- imageTwo.css( 'left', startP