Elementor Essential Addons - Version 4.3.0

Version Description

  • 12/10/2020 =
  • Revamped: Code Structure for better performance
  • Improved: Asset Generator method
  • Improved: Slow queries for Dynamic widgets
  • Added: Dynamic support for Post Widgets
  • Added: Translation compatibility with more widgets
  • Added: Custom Template support for BetterDocs, Product & Post widgets
  • Fixed: EA BetterDocs widgets | 404 page not found error with Multiple-KB
  • Fixed: EA Widgets not loading properly inside Elementor Popups
  • Fixed: EA TOC & Reading Progress Bar not showing in Non-Elementor pages
  • Fixed: EA TOC & Reading Progress Bar not working correctly inside Elementor
  • Fixed: EA Creative Buttons throwing PHP error
  • Few minor bug fix and improvements
Download this release

Release Info

Developer re_enter_rupok
Plugin Icon 128x128 Elementor Essential Addons
Version 4.3.0
Comparing to
See all releases

Code changes from version 4.2.4 to 4.3.0

Files changed (51) hide show
  1. assets/front-end/css/view/betterdocs-category-box.css +3 -0
  2. assets/front-end/css/view/betterdocs-category-box.min.css +1 -1
  3. assets/front-end/css/view/betterdocs-category-grid.css +1 -2
  4. assets/front-end/css/view/betterdocs-category-grid.min.css +1 -1
  5. assets/front-end/js/edit/ea-select2.js +34 -0
  6. assets/front-end/js/edit/promotion.js +1 -1
  7. assets/front-end/js/edit/promotion.min.js +1 -1
  8. assets/front-end/js/edit/reading-progress.js +100 -0
  9. assets/front-end/js/edit/reading-progress.min.js +1 -0
  10. assets/front-end/js/edit/table-of-content.js +100 -0
  11. assets/front-end/js/edit/table-of-content.min.js +1 -0
  12. assets/front-end/js/lib-view/plyr/plyr.min.js +1 -2
  13. assets/front-end/js/view/general.min.js +1 -1
  14. assets/front-end/js/view/load-more.js +1 -1
  15. assets/front-end/js/view/load-more.min.js +1 -1
  16. assets/front-end/js/view/reading-progress.js +1 -1
  17. assets/front-end/js/view/reading-progress.min.js +1 -1
  18. assets/front-end/js/view/table-of-content.js +1 -1
  19. assets/front-end/js/view/table-of-content.min.js +1 -1
  20. assets/front-end/js/view/view.js +0 -558
  21. assets/front-end/js/view/view.min.js +0 -1
  22. config.php +36 -31
  23. essential_adons_elementor.php +2 -2
  24. includes/Classes/Bootstrap.php +73 -38
  25. includes/Classes/Helper.php +752 -0
  26. includes/Classes/WPDeveloper_Notice.php +34 -34
  27. includes/Classes/WPML/Eael_WPML.php +132 -135
  28. includes/Controls/Select2.php +63 -0
  29. includes/Elements/Adv_Accordion.php +6 -6
  30. includes/Elements/Adv_Tabs.php +45 -47
  31. includes/Elements/Advanced_Data_Table.php +474 -420
  32. includes/Elements/Betterdocs_Category_Box.php +145 -66
  33. includes/Elements/Betterdocs_Category_Grid.php +238 -62
  34. includes/Elements/Betterdocs_Search_Form.php +7 -7
  35. includes/Elements/Caldera_Forms.php +8 -9
  36. includes/Elements/Contact_Form_7.php +10 -10
  37. includes/Elements/Content_Ticker.php +37 -14
  38. includes/Elements/Countdown.php +10 -8
  39. includes/Elements/Creative_Button.php +2 -5
  40. includes/Elements/Cta_Box.php +4 -2
  41. includes/Elements/Data_Table.php +5 -4
  42. includes/Elements/Event_Calendar.php +476 -413
  43. includes/Elements/Facebook_Feed.php +3 -2
  44. includes/Elements/Fancy_Text.php +5 -5
  45. includes/Elements/Filterable_Gallery.php +52 -49
  46. includes/Elements/FluentForm.php +10 -10
  47. includes/Elements/Formstack.php +8 -8
  48. includes/Elements/GravityForms.php +10 -8
  49. includes/Elements/Image_Accordion.php +5 -5
  50. includes/Elements/Info_Box.php +517 -542
  51. includes/Elements/NinjaForms.php +430 -428
assets/front-end/css/view/betterdocs-category-box.css CHANGED
@@ -94,6 +94,9 @@
94
  -webkit-box-align: center;
95
  -ms-flex-align: center;
96
  align-items: center;
 
 
 
97
  margin: 0;
98
  line-height: 1;
99
  font-size: 20px;
94
  -webkit-box-align: center;
95
  -ms-flex-align: center;
96
  align-items: center;
97
+ -webkit-box-pack: start;
98
+ -ms-flex-pack: start;
99
+ justify-content: flex-start;
100
  margin: 0;
101
  line-height: 1;
102
  font-size: 20px;
assets/front-end/css/view/betterdocs-category-box.min.css CHANGED
@@ -1 +1 @@
1
- .eael-better-docs-category-box-post .eael-bd-cb-inner{background:#f8f8fc;padding:20px;border:1px solid #efffff;text-align:center;margin:7.5px;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-box-post .eael-bd-cb-inner:hover{background:#fff;-webkit-box-shadow:0px 20px 50px 0px rgba(0,9,78,.1);box-shadow:0px 20px 50px 0px rgba(0,9,78,.1)}.eael-better-docs-category-box-post .eael-bd-cb-cat-icon{height:80px;width:80px;margin:0 auto 20px auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eael-better-docs-category-box-post .eael-bd-cb-cat-icon img{max-height:100%;max-width:100%}.eael-better-docs-category-box-post .eael-bd-cb-cat-title{color:#3f5876;font-size:18px;line-height:1.3;font-weight:700;margin-bottom:15px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count{color:#707070;font-size:15px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count .count-suffix{margin-left:5px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count .count-prefix{margin-right:5px}.layout__2 .eael-bd-cb-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:0px;-webkit-box-shadow:0px 1px 5px 0px rgba(101,99,233,.18);box-shadow:0px 1px 5px 0px rgba(101,99,233,.18);background:#fff}.layout__2 .eael-bd-cb-inner:hover{-webkit-box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);box-shadow:0px 8px 15px 0px rgba(101,99,233,.09)}.layout__2 .eael-bd-cb-cat-icon__layout-2{-ms-flex-preferred-size:20%;flex-basis:20%;border-right:1px solid #e4e4f9;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.layout__2 .eael-bd-cb-cat-icon__layout-2 img{width:50px}.layout__2 .eael-bd-cb-cat-title__layout-2{-ms-flex-preferred-size:60%;flex-basis:60%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin:0;line-height:1;font-size:20px;color:#333;font-weight:500}.layout__2 .eael-bd-cb-cat-title__layout-2 span{padding:45px 0px 45px 30px}.layout__2 .eael-bd-cb-cat-count__layout-2{-ms-flex-preferred-size:20%;flex-basis:20%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.layout__2 .eael-bd-cb-cat-count__layout-2 .count-inner__layout-2{height:60px;width:60px;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:5px;-webkit-box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);font-size:20px;color:#7e7cff}@media only screen and (min-width: 1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 1024px)and (min-width: 766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}
1
+ .eael-better-docs-category-box-post .eael-bd-cb-inner{background:#f8f8fc;padding:20px;border:1px solid #efffff;text-align:center;margin:7.5px;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-box-post .eael-bd-cb-inner:hover{background:#fff;-webkit-box-shadow:0px 20px 50px 0px rgba(0,9,78,.1);box-shadow:0px 20px 50px 0px rgba(0,9,78,.1)}.eael-better-docs-category-box-post .eael-bd-cb-cat-icon{height:80px;width:80px;margin:0 auto 20px auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eael-better-docs-category-box-post .eael-bd-cb-cat-icon img{max-height:100%;max-width:100%}.eael-better-docs-category-box-post .eael-bd-cb-cat-title{color:#3f5876;font-size:18px;line-height:1.3;font-weight:700;margin-bottom:15px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count{color:#707070;font-size:15px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count .count-suffix{margin-left:5px}.eael-better-docs-category-box-post .eael-bd-cb-cat-count .count-prefix{margin-right:5px}.layout__2 .eael-bd-cb-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;padding:0px;-webkit-box-shadow:0px 1px 5px 0px rgba(101,99,233,.18);box-shadow:0px 1px 5px 0px rgba(101,99,233,.18);background:#fff}.layout__2 .eael-bd-cb-inner:hover{-webkit-box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);box-shadow:0px 8px 15px 0px rgba(101,99,233,.09)}.layout__2 .eael-bd-cb-cat-icon__layout-2{-ms-flex-preferred-size:20%;flex-basis:20%;border-right:1px solid #e4e4f9;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.layout__2 .eael-bd-cb-cat-icon__layout-2 img{width:50px}.layout__2 .eael-bd-cb-cat-title__layout-2{-ms-flex-preferred-size:60%;flex-basis:60%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;margin:0;line-height:1;font-size:20px;color:#333;font-weight:500}.layout__2 .eael-bd-cb-cat-title__layout-2 span{padding:45px 0px 45px 30px}.layout__2 .eael-bd-cb-cat-count__layout-2{-ms-flex-preferred-size:20%;flex-basis:20%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.layout__2 .eael-bd-cb-cat-count__layout-2 .count-inner__layout-2{height:60px;width:60px;background:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;margin:0;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:5px;-webkit-box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);box-shadow:0px 8px 15px 0px rgba(101,99,233,.09);font-size:20px;color:#7e7cff}@media only screen and (min-width: 1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 1024px)and (min-width: 766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-better-docs-category-box-post{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-box-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-box-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-box-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-box-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-box-post:nth-of-type(6n + 1){clear:left}}
assets/front-end/css/view/betterdocs-category-grid.css CHANGED
@@ -82,8 +82,7 @@
82
  transition: 300ms;
83
  }
84
  .eael-bd-cg-header .eael-docs-cat-icon img {
85
- max-width: 100%;
86
- max-height: 100%;
87
  }
88
  .eael-bd-cg-header .eael-docs-item-count {
89
  height: 35px;
82
  transition: 300ms;
83
  }
84
  .eael-bd-cg-header .eael-docs-cat-icon img {
85
+ width: 100%;
 
86
  }
87
  .eael-bd-cg-header .eael-docs-item-count {
88
  height: 35px;
assets/front-end/css/view/betterdocs-category-grid.min.css CHANGED
@@ -1 +1 @@
1
- .eael-better-docs-category-grid-wrapper{margin:0 -7.5px}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen .eael-better-docs-category-grid-post{display:-webkit-box;display:-ms-flexbox;display:flex}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen .eael-better-docs-category-grid-post .eael-bd-cg-inner{width:100%}.eael-better-docs-category-grid-post .eael-bd-cg-inner{background:#fff;-webkit-box-shadow:0 10px 100px 0 rgba(40,47,98,.08);box-shadow:0 10px 100px 0 rgba(40,47,98,.08);margin:0 7.5px 15px 7.5px}.eael-bd-cg-body{padding:0px 20px 0px 20px}.eael-bd-cg-body ul{margin:0;padding:0;list-style:none}.eael-bd-cg-body ul li{margin:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;color:#566e8b}.eael-bd-cg-body ul li a{color:#566e8b;line-height:1.8}.eael-bd-cg-body ul li .eael-bd-cg-post-list-icon{line-height:1.8;margin-right:10px;width:22px}.eael-bd-cg-header{padding:20px}.eael-bd-cg-header .eael-bd-cg-header-inner{border-bottom:2px solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:20px;border-color:#528ffe}.eael-bd-cg-header .eael-docs-cat-title{color:#528ffe;font-size:20px;position:relative;margin:0}.eael-bd-cg-header .eael-docs-cat-icon{height:32px;width:32px;margin-right:30px;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-bd-cg-header .eael-docs-cat-icon img{max-width:100%;max-height:100%}.eael-bd-cg-header .eael-docs-item-count{height:35px;width:35px;background:#528ffe;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;margin-left:auto;color:#fff;font-size:15px}.eael-bd-grid-sub-cat-title{display:block;cursor:pointer}.eael-bd-grid-sub-cat-title .toggle-arrow{margin-right:5px}.docs-sub-cat-list,.eael-bd-grid-sub-cat-title .arrow-down{display:none}.eael-bd-cg-button{display:inline-block;background-color:#fff;font-size:16px;color:#528ffe;border:1px solid #528ffe;border-radius:50px;line-height:1;padding:15px 20px;margin:0px 0px 20px 20px}.eael-bd-cg-button .eael-bd-cg-button-icon{position:relative;top:1px}.eael-bd-cg-button .eael-bd-cg-button-icon.eael-bd-cg-button-icon-left{margin-right:5px}.eael-bd-cg-button .eael-bd-cg-button-icon.eael-bd-cg-button-icon-right{margin-left:5px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-header{padding:0px 20px}.eael-better-docs-category-grid-post.layout-2 .eael-docs-cat-title{-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count{margin:0;border-radius:0;position:relative;display:block;width:auto;background:none;height:45px;width:40px}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count:before{content:attr(data-content);position:absolute;left:0;top:-1px;height:45px;width:40px;background:#fc8c91;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count:after{position:absolute;left:40px;top:-1px;content:"";border-top:6px solid #ad5e62;border-right:6px solid transparent;opacity:.9}.eael-better-docs-category-grid-post.layout-2 .eael-docs-cat-title{margin-top:30px;color:#000;font-size:18px;font-weight:500}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-body ul li{font-size:15px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-body ul li a{color:#707070}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-inner{-webkit-transition:300ms;-o-transition:300ms;transition:300ms;-webkit-box-shadow:0px 1px 5px 0px rgba(0,9,78,.1);box-shadow:0px 1px 5px 0px rgba(0,9,78,.1);border-radius:5px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-inner:hover{-webkit-box-shadow:0px 15px 40px 0px rgba(0,9,78,.1);box-shadow:0px 15px 40px 0px rgba(0,9,78,.1)}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-button{font-size:15px;border:0px solid;border-radius:0;color:#333;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-button:hover{color:#fc8c91}@media only screen and (min-width: 1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 1024px)and (min-width: 766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}
1
+ .eael-better-docs-category-grid-wrapper{margin:0 -7.5px}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen .eael-better-docs-category-grid-post{display:-webkit-box;display:-ms-flexbox;display:flex}.eael-better-docs-category-grid-wrapper .eael-better-docs-category-grid.fit-to-screen .eael-better-docs-category-grid-post .eael-bd-cg-inner{width:100%}.eael-better-docs-category-grid-post .eael-bd-cg-inner{background:#fff;-webkit-box-shadow:0 10px 100px 0 rgba(40,47,98,.08);box-shadow:0 10px 100px 0 rgba(40,47,98,.08);margin:0 7.5px 15px 7.5px}.eael-bd-cg-body{padding:0px 20px 0px 20px}.eael-bd-cg-body ul{margin:0;padding:0;list-style:none}.eael-bd-cg-body ul li{margin:10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;color:#566e8b}.eael-bd-cg-body ul li a{color:#566e8b;line-height:1.8}.eael-bd-cg-body ul li .eael-bd-cg-post-list-icon{line-height:1.8;margin-right:10px;width:22px}.eael-bd-cg-header{padding:20px}.eael-bd-cg-header .eael-bd-cg-header-inner{border-bottom:2px solid;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-bottom:20px;border-color:#528ffe}.eael-bd-cg-header .eael-docs-cat-title{color:#528ffe;font-size:20px;position:relative;margin:0}.eael-bd-cg-header .eael-docs-cat-icon{height:32px;width:32px;margin-right:30px;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-bd-cg-header .eael-docs-cat-icon img{width:100%}.eael-bd-cg-header .eael-docs-item-count{height:35px;width:35px;background:#528ffe;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;margin-left:auto;color:#fff;font-size:15px}.eael-bd-grid-sub-cat-title{display:block;cursor:pointer}.eael-bd-grid-sub-cat-title .toggle-arrow{margin-right:5px}.docs-sub-cat-list,.eael-bd-grid-sub-cat-title .arrow-down{display:none}.eael-bd-cg-button{display:inline-block;background-color:#fff;font-size:16px;color:#528ffe;border:1px solid #528ffe;border-radius:50px;line-height:1;padding:15px 20px;margin:0px 0px 20px 20px}.eael-bd-cg-button .eael-bd-cg-button-icon{position:relative;top:1px}.eael-bd-cg-button .eael-bd-cg-button-icon.eael-bd-cg-button-icon-left{margin-right:5px}.eael-bd-cg-button .eael-bd-cg-button-icon.eael-bd-cg-button-icon-right{margin-left:5px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-header{padding:0px 20px}.eael-better-docs-category-grid-post.layout-2 .eael-docs-cat-title{-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count{margin:0;border-radius:0;position:relative;display:block;width:auto;background:none;height:45px;width:40px}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count:before{content:attr(data-content);position:absolute;left:0;top:-1px;height:45px;width:40px;background:#fc8c91;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.eael-better-docs-category-grid-post.layout-2 .eael-docs-item-count:after{position:absolute;left:40px;top:-1px;content:"";border-top:6px solid #ad5e62;border-right:6px solid transparent;opacity:.9}.eael-better-docs-category-grid-post.layout-2 .eael-docs-cat-title{margin-top:30px;color:#000;font-size:18px;font-weight:500}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-body ul li{font-size:15px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-body ul li a{color:#707070}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-inner{-webkit-transition:300ms;-o-transition:300ms;transition:300ms;-webkit-box-shadow:0px 1px 5px 0px rgba(0,9,78,.1);box-shadow:0px 1px 5px 0px rgba(0,9,78,.1);border-radius:5px}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-inner:hover{-webkit-box-shadow:0px 15px 40px 0px rgba(0,9,78,.1);box-shadow:0px 15px 40px 0px rgba(0,9,78,.1)}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-button{font-size:15px;border:0px solid;border-radius:0;color:#333;-webkit-transition:300ms;-o-transition:300ms;transition:300ms}.eael-better-docs-category-grid-post.layout-2 .eael-bd-cg-button:hover{color:#fc8c91}@media only screen and (min-width: 1025px){.elementor-element.elementor-grid-1{position:relative}.elementor-element.elementor-grid-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-2{position:relative}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-3{position:relative}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-4{position:relative}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-5{position:relative}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-6{position:relative}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 1024px)and (min-width: 766px){.elementor-element.elementor-grid-tablet-1{position:relative}.elementor-element.elementor-grid-tablet-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-tablet-2{position:relative}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-tablet-3{position:relative}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-tablet-4{position:relative}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-tablet-5{position:relative}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-tablet-6{position:relative}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-tablet-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}@media only screen and (max-width: 767px){.elementor-element.elementor-grid-mobile-1{position:relative}.elementor-element.elementor-grid-mobile-1 .eael-better-docs-category-grid-post{width:100%;float:left}.elementor-element.elementor-grid-mobile-2{position:relative}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post{width:50%;float:left}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post:nth-of-type(2n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-2 .eael-better-docs-category-grid-post:nth-of-type(2n + 1){clear:left}.elementor-element.elementor-grid-mobile-3{position:relative}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post{width:33.3333%;float:left}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post:nth-of-type(3n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-3 .eael-better-docs-category-grid-post:nth-of-type(3n + 1){clear:left}.elementor-element.elementor-grid-mobile-4{position:relative}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post{width:25%;float:left}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post:nth-of-type(4n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-4 .eael-better-docs-category-grid-post:nth-of-type(4n + 1){clear:left}.elementor-element.elementor-grid-mobile-5{position:relative}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post{width:20%;float:left}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post:nth-of-type(5n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-5 .eael-better-docs-category-grid-post:nth-of-type(5n + 1){clear:left}.elementor-element.elementor-grid-mobile-6{position:relative}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post{width:16%;float:left}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post:nth-of-type(6n){margin-right:0 !important}.elementor-element.elementor-grid-mobile-6 .eael-better-docs-category-grid-post:nth-of-type(6n + 1){clear:left}}
assets/front-end/js/edit/ea-select2.js ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ (function ($) {
2
+ $(document).on('eael_select2_init', function (event, obj) {
3
+ var ID = '#elementor-control-default-' + obj.data._cid;
4
+ setTimeout(function () {
5
+ $(ID).select2({
6
+ minimumInputLength: 3,
7
+ ajax: {
8
+ url: eael_select2_localize.ajaxurl+"?action=eael_select2_search_post&post_type=" + obj.data.source_type,
9
+ dataType: 'json'
10
+ },
11
+ initSelection: function (element, callback) {
12
+ callback({id: '', text: eael_select2_localize.search_text});
13
+ if (obj.currentID > 0) {
14
+ var label = $("label[for='elementor-control-default-"+ obj.data._cid+"']");
15
+ element.attr('disabled','disabled');
16
+ label.after('<span class="elementor-control-spinner">&nbsp;<i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>');
17
+ $.ajax({
18
+ method: "POST",
19
+ url: eael_select2_localize.ajaxurl+"?action=eael_select2_get_title",
20
+ data: {post_type: obj.data.source_type, id: obj.currentID}
21
+ }).done(function (response) {
22
+ if (response.success) {
23
+ element.append('<option selected="selected" value="' + response.data.id + '">' + response.data.text + '</option>');
24
+ callback({id: response.data.id, text: response.data.text});
25
+ element.removeAttr('disabled');
26
+ label.siblings('.elementor-control-spinner').remove();
27
+ }
28
+ });
29
+ }
30
+ }
31
+ });
32
+ }, 100);
33
+ });
34
+ }(jQuery));
assets/front-end/js/edit/promotion.js CHANGED
@@ -93,7 +93,7 @@
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
- eval("ea.hooks.addAction(\"editMode.init\", \"ea\", function () {\n parent.document.addEventListener(\"mousedown\", function (e) {\n var widgets = parent.document.querySelectorAll(\".elementor-element--promotion\");\n\n if (widgets.length > 0) {\n for (var i = 0; i < widgets.length; i++) {\n if (widgets[i].contains(e.target)) {\n var dialog = parent.document.querySelector(\"#elementor-element--promotion__dialog\");\n var icon = widgets[i].querySelector(\".icon > i\");\n\n if (icon.classList.toString().indexOf(\"eaicon\") >= 0) {\n dialog.querySelector(\".dialog-buttons-action\").style.display = \"none\";\n\n if (dialog.querySelector(\".ea-dialog-buttons-action\") === null) {\n var button = document.createElement(\"a\");\n var buttonText = document.createTextNode(\"Upgrade Essential Addons\");\n button.setAttribute(\"href\", \"https://wpdeveloper.net/upgrade/ea-pro\");\n button.setAttribute(\"target\", \"_blank\");\n button.classList.add(\"dialog-button\", \"dialog-action\", \"dialog-buttons-action\", \"elementor-button\", \"elementor-button-success\", \"ea-dialog-buttons-action\");\n button.appendChild(buttonText);\n dialog.querySelector(\".dialog-buttons-action\").insertAdjacentHTML(\"afterend\", button.outerHTML);\n } else {\n dialog.querySelector(\".ea-dialog-buttons-action\").style.display = \"\";\n }\n } else {\n dialog.querySelector(\".dialog-buttons-action\").style.display = \"\";\n\n if (dialog.querySelector(\".ea-dialog-buttons-action\") !== null) {\n dialog.querySelector(\".ea-dialog-buttons-action\").style.display = \"none\";\n }\n } // stop loop\n\n\n break;\n }\n }\n }\n });\n});\n\n//# sourceURL=webpack:///./src/js/edit/promotion.js?");
97
 
98
  /***/ })
99
 
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
+ eval("ea.hooks.addAction(\"editMode.init\", \"ea\", function () {\n parent.document.addEventListener(\"mousedown\", function (e) {\n var widgets = parent.document.querySelectorAll(\".elementor-element--promotion\");\n\n if (widgets.length > 0) {\n for (var i = 0; i < widgets.length; i++) {\n if (widgets[i].contains(e.target)) {\n var dialog = parent.document.querySelector(\"#elementor-element--promotion__dialog\");\n var icon = widgets[i].querySelector(\".icon > i\");\n\n if (icon.classList.toString().indexOf(\"eaicon\") >= 0) {\n dialog.querySelector(\".dialog-buttons-action\").style.display = \"none\";\n e.stopImmediatePropagation();\n\n if (dialog.querySelector(\".ea-dialog-buttons-action\") === null) {\n var button = document.createElement(\"a\");\n var buttonText = document.createTextNode(\"Upgrade Essential Addons\");\n button.setAttribute(\"href\", \"https://wpdeveloper.net/upgrade/ea-pro\");\n button.setAttribute(\"target\", \"_blank\");\n button.classList.add(\"dialog-button\", \"dialog-action\", \"dialog-buttons-action\", \"elementor-button\", \"elementor-button-success\", \"ea-dialog-buttons-action\");\n button.appendChild(buttonText);\n dialog.querySelector(\".dialog-buttons-action\").insertAdjacentHTML(\"afterend\", button.outerHTML);\n } else {\n dialog.querySelector(\".ea-dialog-buttons-action\").style.display = \"\";\n }\n } else {\n dialog.querySelector(\".dialog-buttons-action\").style.display = \"\";\n\n if (dialog.querySelector(\".ea-dialog-buttons-action\") !== null) {\n dialog.querySelector(\".ea-dialog-buttons-action\").style.display = \"none\";\n }\n } // stop loop\n\n\n break;\n }\n }\n }\n });\n});\n\n//# sourceURL=webpack:///./src/js/edit/promotion.js?");
97
 
98
  /***/ })
99
 
assets/front-end/js/edit/promotion.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=24)}({24:function(e,t){ea.hooks.addAction("editMode.init","ea",(function(){parent.document.addEventListener("mousedown",(function(e){var t=parent.document.querySelectorAll(".elementor-element--promotion");if(t.length>0)for(var n=0;n<t.length;n++)if(t[n].contains(e.target)){var o=parent.document.querySelector("#elementor-element--promotion__dialog");if(t[n].querySelector(".icon > i").classList.toString().indexOf("eaicon")>=0)if(o.querySelector(".dialog-buttons-action").style.display="none",null===o.querySelector(".ea-dialog-buttons-action")){var r=document.createElement("a"),a=document.createTextNode("Upgrade Essential Addons");r.setAttribute("href","https://wpdeveloper.net/upgrade/ea-pro"),r.setAttribute("target","_blank"),r.classList.add("dialog-button","dialog-action","dialog-buttons-action","elementor-button","elementor-button-success","ea-dialog-buttons-action"),r.appendChild(a),o.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend",r.outerHTML)}else o.querySelector(".ea-dialog-buttons-action").style.display="";else o.querySelector(".dialog-buttons-action").style.display="",null!==o.querySelector(".ea-dialog-buttons-action")&&(o.querySelector(".ea-dialog-buttons-action").style.display="none");break}}))}))}});
1
+ !function(e){var t={};function o(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,o),r.l=!0,r.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)o.d(n,r,function(t){return e[t]}.bind(null,r));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=24)}({24:function(e,t){ea.hooks.addAction("editMode.init","ea",(function(){parent.document.addEventListener("mousedown",(function(e){var t=parent.document.querySelectorAll(".elementor-element--promotion");if(t.length>0)for(var o=0;o<t.length;o++)if(t[o].contains(e.target)){var n=parent.document.querySelector("#elementor-element--promotion__dialog");if(t[o].querySelector(".icon > i").classList.toString().indexOf("eaicon")>=0)if(n.querySelector(".dialog-buttons-action").style.display="none",e.stopImmediatePropagation(),null===n.querySelector(".ea-dialog-buttons-action")){var r=document.createElement("a"),a=document.createTextNode("Upgrade Essential Addons");r.setAttribute("href","https://wpdeveloper.net/upgrade/ea-pro"),r.setAttribute("target","_blank"),r.classList.add("dialog-button","dialog-action","dialog-buttons-action","elementor-button","elementor-button-success","ea-dialog-buttons-action"),r.appendChild(a),n.querySelector(".dialog-buttons-action").insertAdjacentHTML("afterend",r.outerHTML)}else n.querySelector(".ea-dialog-buttons-action").style.display="";else n.querySelector(".dialog-buttons-action").style.display="",null!==n.querySelector(".ea-dialog-buttons-action")&&(n.querySelector(".ea-dialog-buttons-action").style.display="none");break}}))}))}});
assets/front-end/js/edit/reading-progress.js ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/js/edit/reading-progress.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./src/js/edit/reading-progress.js":
90
+ /*!*****************************************!*\
91
+ !*** ./src/js/edit/reading-progress.js ***!
92
+ \*****************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ eval("ea.hooks.addAction(\"editMode.init\", \"ea\", function () {\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress\", function (newValue) {\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-disabled\");\n elementor.saver.update.apply().then(function () {\n elementor.reloadPreview();\n });\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress_position\", function (newValue) {\n elementor.settings.page.setSettings(\"eael_ext_reading_progress_position\", newValue);\n jQuery(\".eael-reading-progress\").removeClass(\"eael-reading-progress-top eael-reading-progress-bottom\").addClass(\"eael-reading-progress-\" + newValue);\n });\n});\n\n//# sourceURL=webpack:///./src/js/edit/reading-progress.js?");
97
+
98
+ /***/ })
99
+
100
+ /******/ });
assets/front-end/js/edit/reading-progress.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var r={};function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=r,t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:n})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,r){if(1&r&&(e=t(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var o in e)t.d(n,o,function(r){return e[r]}.bind(null,o));return n},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},t.p="",t(t.s=25)}({25:function(e,r){ea.hooks.addAction("editMode.init","ea",(function(){elementor.settings.page.addChangeCallback("eael_ext_reading_progress",(function(e){jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-disabled"),elementor.saver.update.apply().then((function(){elementor.reloadPreview()}))})),elementor.settings.page.addChangeCallback("eael_ext_reading_progress_position",(function(e){elementor.settings.page.setSettings("eael_ext_reading_progress_position",e),jQuery(".eael-reading-progress").removeClass("eael-reading-progress-top eael-reading-progress-bottom").addClass("eael-reading-progress-"+e)}))}))}});
assets/front-end/js/edit/table-of-content.js ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /******/ (function(modules) { // webpackBootstrap
2
+ /******/ // The module cache
3
+ /******/ var installedModules = {};
4
+ /******/
5
+ /******/ // The require function
6
+ /******/ function __webpack_require__(moduleId) {
7
+ /******/
8
+ /******/ // Check if module is in cache
9
+ /******/ if(installedModules[moduleId]) {
10
+ /******/ return installedModules[moduleId].exports;
11
+ /******/ }
12
+ /******/ // Create a new module (and put it into the cache)
13
+ /******/ var module = installedModules[moduleId] = {
14
+ /******/ i: moduleId,
15
+ /******/ l: false,
16
+ /******/ exports: {}
17
+ /******/ };
18
+ /******/
19
+ /******/ // Execute the module function
20
+ /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
+ /******/
22
+ /******/ // Flag the module as loaded
23
+ /******/ module.l = true;
24
+ /******/
25
+ /******/ // Return the exports of the module
26
+ /******/ return module.exports;
27
+ /******/ }
28
+ /******/
29
+ /******/
30
+ /******/ // expose the modules object (__webpack_modules__)
31
+ /******/ __webpack_require__.m = modules;
32
+ /******/
33
+ /******/ // expose the module cache
34
+ /******/ __webpack_require__.c = installedModules;
35
+ /******/
36
+ /******/ // define getter function for harmony exports
37
+ /******/ __webpack_require__.d = function(exports, name, getter) {
38
+ /******/ if(!__webpack_require__.o(exports, name)) {
39
+ /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
+ /******/ }
41
+ /******/ };
42
+ /******/
43
+ /******/ // define __esModule on exports
44
+ /******/ __webpack_require__.r = function(exports) {
45
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
+ /******/ }
48
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
+ /******/ };
50
+ /******/
51
+ /******/ // create a fake namespace object
52
+ /******/ // mode & 1: value is a module id, require it
53
+ /******/ // mode & 2: merge all properties of value into the ns
54
+ /******/ // mode & 4: return value when already ns object
55
+ /******/ // mode & 8|1: behave like require
56
+ /******/ __webpack_require__.t = function(value, mode) {
57
+ /******/ if(mode & 1) value = __webpack_require__(value);
58
+ /******/ if(mode & 8) return value;
59
+ /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
+ /******/ var ns = Object.create(null);
61
+ /******/ __webpack_require__.r(ns);
62
+ /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
+ /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
+ /******/ return ns;
65
+ /******/ };
66
+ /******/
67
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
68
+ /******/ __webpack_require__.n = function(module) {
69
+ /******/ var getter = module && module.__esModule ?
70
+ /******/ function getDefault() { return module['default']; } :
71
+ /******/ function getModuleExports() { return module; };
72
+ /******/ __webpack_require__.d(getter, 'a', getter);
73
+ /******/ return getter;
74
+ /******/ };
75
+ /******/
76
+ /******/ // Object.prototype.hasOwnProperty.call
77
+ /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
+ /******/
79
+ /******/ // __webpack_public_path__
80
+ /******/ __webpack_require__.p = "";
81
+ /******/
82
+ /******/
83
+ /******/ // Load entry module and return exports
84
+ /******/ return __webpack_require__(__webpack_require__.s = "./src/js/edit/table-of-content.js");
85
+ /******/ })
86
+ /************************************************************************/
87
+ /******/ ({
88
+
89
+ /***/ "./src/js/edit/table-of-content.js":
90
+ /*!*****************************************!*\
91
+ !*** ./src/js/edit/table-of-content.js ***!
92
+ \*****************************************/
93
+ /*! no static exports found */
94
+ /***/ (function(module, exports) {
95
+
96
+ eval("ea.hooks.addAction(\"editMode.init\", \"ea\", function () {\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content\", function (newValue) {\n elementor.settings.page.setSettings(\"eael_ext_table_of_content\", newValue);\n elementor.saver.update.apply().then(function () {\n elementor.reloadPreview();\n });\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_position\", function (newValue) {\n if (newValue === \"right\") {\n jQuery(\"#eael-toc\").addClass(\"eael-toc-right\");\n } else {\n jQuery(\"#eael-toc\").removeClass(\"eael-toc-right\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_list_style\", function (newValue) {\n var list = jQuery(\".eael-toc-list\");\n list.removeClass(\"eael-toc-list-bar eael-toc-list-arrow\");\n\n if (newValue !== \"none\") {\n list.addClass(\"eael-toc-list-\" + newValue);\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_collapse_sub_heading\", function (newValue) {\n var list = jQuery(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-collapse\");\n } else {\n list.removeClass(\"eael-toc-collapse\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_header_icon\", function (newValue) {\n var iconElement = $(\".eael-toc-button i\");\n iconElement.removeClass().addClass(newValue.value);\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_list_icon\", function (newValue) {\n var list = jQuery(\".eael-toc-list\");\n\n if (newValue === \"number\") {\n list.addClass(\"eael-toc-number\").removeClass(\"eael-toc-bullet\");\n } else {\n list.addClass(\"eael-toc-bullet\").removeClass(\"eael-toc-number\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_word_wrap\", function (newValue) {\n var list = jQuery(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-word-wrap\");\n } else {\n list.removeClass(\"eael-toc-word-wrap\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_close_button_text_style\", function (newValue) {\n var toc = jQuery(\"#eael-toc\");\n\n if (newValue === \"bottom_to_top\") {\n toc.addClass(\"eael-bottom-to-top\");\n } else {\n toc.removeClass(\"eael-bottom-to-top\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_box_shadow\", function (newValue) {\n var toc = jQuery(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-box-shadow\");\n } else {\n toc.removeClass(\"eael-box-shadow\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_auto_collapse\", function (newValue) {\n var toc = jQuery(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-toc-auto-collapse\");\n } else {\n toc.removeClass(\"eael-toc-auto-collapse\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_title\", function (newValue) {\n elementorFrontend.elements.$document.find(\".eael-toc-title\").text(newValue);\n elementorFrontend.elements.$document.find(\".eael-toc-button span\").text(newValue);\n });\n});\n\n//# sourceURL=webpack:///./src/js/edit/table-of-content.js?");
97
+
98
+ /***/ })
99
+
100
+ /******/ });
assets/front-end/js/edit/table-of-content.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function a(o){if(t[o])return t[o].exports;var l=t[o]={i:o,l:!1,exports:{}};return e[o].call(l.exports,l,l.exports,a),l.l=!0,l.exports}a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var l in e)a.d(o,l,function(t){return e[t]}.bind(null,l));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=26)}({26:function(e,t){ea.hooks.addAction("editMode.init","ea",(function(){elementor.settings.page.addChangeCallback("eael_ext_table_of_content",(function(e){elementor.settings.page.setSettings("eael_ext_table_of_content",e),elementor.saver.update.apply().then((function(){elementor.reloadPreview()}))})),elementor.settings.page.addChangeCallback("eael_ext_toc_position",(function(e){"right"===e?jQuery("#eael-toc").addClass("eael-toc-right"):jQuery("#eael-toc").removeClass("eael-toc-right")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_list_style",(function(e){var t=jQuery(".eael-toc-list");t.removeClass("eael-toc-list-bar eael-toc-list-arrow"),"none"!==e&&t.addClass("eael-toc-list-"+e)})),elementor.settings.page.addChangeCallback("eael_ext_toc_collapse_sub_heading",(function(e){var t=jQuery(".eael-toc-list");"yes"===e?t.addClass("eael-toc-collapse"):t.removeClass("eael-toc-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_header_icon",(function(e){$(".eael-toc-button i").removeClass().addClass(e.value)})),elementor.settings.page.addChangeCallback("eael_ext_toc_list_icon",(function(e){var t=jQuery(".eael-toc-list");"number"===e?t.addClass("eael-toc-number").removeClass("eael-toc-bullet"):t.addClass("eael-toc-bullet").removeClass("eael-toc-number")})),elementor.settings.page.addChangeCallback("eael_ext_toc_word_wrap",(function(e){var t=jQuery(".eael-toc-list");"yes"===e?t.addClass("eael-toc-word-wrap"):t.removeClass("eael-toc-word-wrap")})),elementor.settings.page.addChangeCallback("eael_ext_toc_close_button_text_style",(function(e){var t=jQuery("#eael-toc");"bottom_to_top"===e?t.addClass("eael-bottom-to-top"):t.removeClass("eael-bottom-to-top")})),elementor.settings.page.addChangeCallback("eael_ext_toc_box_shadow",(function(e){var t=jQuery("#eael-toc");"yes"===e?t.addClass("eael-box-shadow"):t.removeClass("eael-box-shadow")})),elementor.settings.page.addChangeCallback("eael_ext_toc_auto_collapse",(function(e){var t=jQuery("#eael-toc");"yes"===e?t.addClass("eael-toc-auto-collapse"):t.removeClass("eael-toc-auto-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_toc_title",(function(e){elementorFrontend.elements.$document.find(".eael-toc-title").text(e),elementorFrontend.elements.$document.find(".eael-toc-button span").text(e)}))}))}});
assets/front-end/js/lib-view/plyr/plyr.min.js CHANGED
@@ -1,4 +1,3 @@
1
  "object"==typeof navigator&&function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):(e=e||self).Plyr=t()}(this,(function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function i(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function r(e,t){if(null==e)return{};var i,n,a=function(e,t){if(null==e)return{};var i,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var i=[],n=!0,a=!1,s=void 0;try{for(var r,o=e[Symbol.iterator]();!(n=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(e){a=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(a)throw s}}return i}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return u(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(i):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function d(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function p(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?p(Object(i),!0).forEach((function(t){h(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):p(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var f={addCSS:!0,thumbWidth:15,watch:!0};function g(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}var y=function(e){return null!=e?e.constructor:null},v=function(e,t){return!!(e&&t&&e instanceof t)},b=function(e){return null==e},w=function(e){return y(e)===Object},k=function(e){return y(e)===String},T=function(e){return Array.isArray(e)},C=function(e){return v(e,NodeList)},A=k,S=T,P=C,E=function(e){return v(e,Element)},M=function(e){return v(e,Event)},N=function(e){return b(e)||(k(e)||T(e)||C(e))&&!e.length||w(e)&&!Object.keys(e).length};function x(e,t){if(1>t){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var I,L,O,_=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),E(t)?this.element=t:A(t)&&(this.element=document.querySelector(t)),E(this.element)&&N(this.element.rangeTouch)&&(this.config=m({},f,{},i),this.init())}return function(e,t,i){t&&d(e.prototype,t),i&&d(e,i)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!M(t))return null;var i,n=t.target,a=t.changedTouches[0],s=parseFloat(n.getAttribute("min"))||0,r=parseFloat(n.getAttribute("max"))||100,o=parseFloat(n.getAttribute("step"))||1,l=n.getBoundingClientRect(),c=100/l.width*(this.config.thumbWidth/2)/100;return 0>(i=100/l.width*(a.clientX-l.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*c:50<i&&(i+=2*(i-50)*c),s+x(i/100*(r-s),o)}},{key:"set",value:function(t){e.enabled&&M(t)&&!t.target.disabled&&(t.preventDefault(),t.target.value=this.get(t),function(e,t){if(e&&t){var i=new Event(t,{bubbles:!0});e.dispatchEvent(i)}}(t.target,"touchend"===t.type?"change":"input"))}}],[{key:"setup",value:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=null;if(N(t)||A(t)?n=Array.from(document.querySelectorAll(A(t)?t:'input[type="range"]')):E(t)?n=[t]:P(t)?n=Array.from(t):S(t)&&(n=t.filter(E)),N(n))return null;var a=m({},f,{},i);if(A(t)&&a.watch){var s=new MutationObserver((function(i){Array.from(i).forEach((function(i){Array.from(i.addedNodes).forEach((function(i){E(i)&&g(i,t)&&new e(i,a)}))}))}));s.observe(document.body,{childList:!0,subtree:!0})}return n.map((function(t){return new e(t,i)}))}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),e}(),j=function(e){return null!=e?e.constructor:null},q=function(e,t){return Boolean(e&&t&&e instanceof t)},D=function(e){return null==e},H=function(e){return j(e)===Object},F=function(e){return j(e)===String},R=function(e){return j(e)===Function},V=function(e){return Array.isArray(e)},B=function(e){return q(e,NodeList)},U=function(e){return D(e)||(F(e)||V(e)||B(e))&&!e.length||H(e)&&!Object.keys(e).length},W=D,z=H,K=function(e){return j(e)===Number&&!Number.isNaN(e)},Y=F,Q=function(e){return j(e)===Boolean},X=R,$=V,J=B,G=function(e){return q(e,Element)},Z=function(e){return q(e,Event)},ee=function(e){return q(e,KeyboardEvent)},te=function(e){return q(e,TextTrack)||!D(e)&&F(e.kind)},ie=function(e){return q(e,Promise)&&R(e.then)},ne=function(e){if(q(e,window.URL))return!0;if(!F(e))return!1;var t=e;e.startsWith("http://")&&e.startsWith("https://")||(t="http://".concat(e));try{return!U(new URL(t).hostname)}catch(e){return!1}},ae=U,se=(I=document.createElement("span"),L={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},O=Object.keys(L).find((function(e){return void 0!==I.style[e]})),!!Y(O)&&L[O]);function re(e,t){setTimeout((function(){try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}var oe={isIE:
2
  /* @cc_on!@ */
3
- !!document.documentMode,isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function le(e,t){return t.split(".").reduce((function(e,t){return e&&e[t]}),e)}function ce(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,i=new Array(t>1?t-1:0),a=1;a<t;a++)i[a-1]=arguments[a];if(!i.length)return e;var s=i.shift();return z(s)?(Object.keys(s).forEach((function(t){z(s[t])?(Object.keys(e).includes(t)||Object.assign(e,n({},t,{})),ce(e[t],s[t])):Object.assign(e,n({},t,s[t]))})),ce.apply(void 0,[e].concat(i))):e}function ue(e,t){var i=e.length?e:[e];Array.from(i).reverse().forEach((function(e,i){var n=i>0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;n.appendChild(e),s?a.insertBefore(n,s):a.appendChild(n)}))}function de(e,t){G(e)&&!ae(t)&&Object.entries(t).filter((function(e){var t=o(e,2)[1];return!W(t)})).forEach((function(t){var i=o(t,2),n=i[0],a=i[1];return e.setAttribute(n,a)}))}function he(e,t,i){var n=document.createElement(e);return z(t)&&de(n,t),Y(i)&&(n.innerText=i),n}function pe(e,t,i,n){G(t)&&t.appendChild(he(e,i,n))}function me(e){J(e)||$(e)?Array.from(e).forEach(me):G(e)&&G(e.parentNode)&&e.parentNode.removeChild(e)}function fe(e){if(G(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function ge(e,t){return G(t)&&G(t.parentNode)&&G(e)?(t.parentNode.replaceChild(e,t),e):null}function ye(e,t){if(!Y(e)||ae(e))return{};var i={},n=ce({},t);return e.split(",").forEach((function(e){var t=e.trim(),a=t.replace(".",""),s=t.replace(/[[\]]/g,"").split("="),r=o(s,1)[0],l=s.length>1?s[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":Y(n.class)?i.class="".concat(n.class," ").concat(a):i.class=a;break;case"#":i.id=t.replace("#","");break;case"[":i[r]=l}})),ce(n,i)}function ve(e,t){if(G(e)){var i=t;Q(i)||(i=!e.hidden),e.hidden=i}}function be(e,t,i){if(J(e))return Array.from(e).map((function(e){return be(e,t,i)}));if(G(e)){var n="toggle";return void 0!==i&&(n=i?"add":"remove"),e.classList[n](t),e.classList.contains(t)}return!1}function we(e,t){return G(e)&&e.classList.contains(t)}function ke(e,t){var i=Element.prototype;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function Te(e){return this.elements.container.querySelectorAll(e)}function Ce(e){return this.elements.container.querySelector(e)}function Ae(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];G(e)&&(e.focus({preventScroll:!0}),t&&be(e,this.config.classNames.tabFocus))}var Se,Pe={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},Ee={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,i){var n=oe.isIPhone&&i&&Ee.playsinline,a=Ee[e]||"html5"!==t;return{api:a,ui:a&&Ee.rangeInput&&("video"!==e||!oe.isIPhone||n)}},pip:!(oe.isIPhone||!X(he("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||he("video").disablePictureInPicture)),airplay:X(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){if(ae(e))return!1;var t=o(e.split("/"),1)[0],i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(Pe).includes(i)&&(i+='; codecs="'.concat(Pe[e],'"'));try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(Se=document.createElement("input"),Se.type="range","range"===Se.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==se,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},Me=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function Ne(e,t,i){var n=this,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e&&"addEventListener"in e&&!ae(t)&&X(i)){var o=t.split(" "),l=r;Me&&(l={passive:s,capture:r}),o.forEach((function(t){n&&n.eventListeners&&a&&n.eventListeners.push({element:e,type:t,callback:i,options:l}),e[a?"addEventListener":"removeEventListener"](t,i,l)}))}}function xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ne.call(this,e,t,i,!0,n,a)}function Ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ne.call(this,e,t,i,!1,n,a)}function Le(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=function r(){Ie(e,i,r,a,s);for(var o=arguments.length,l=new Array(o),c=0;c<o;c++)l[c]=arguments[c];n.apply(t,l)};Ne.call(this,e,i,r,!0,a,s)}function Oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(G(e)&&!ae(t)){var a=new CustomEvent(t,{bubbles:i,detail:s({},n,{plyr:this})});e.dispatchEvent(a)}}function _e(){this&&this.eventListeners&&(this.eventListeners.forEach((function(e){var t=e.element,i=e.type,n=e.callback,a=e.options;t.removeEventListener(i,n,a)})),this.eventListeners=[])}function je(){var e=this;return new Promise((function(t){return e.ready?setTimeout(t,0):xe.call(e,e.elements.container,"ready",t)})).then((function(){}))}function qe(e){ie(e)&&e.then(null,(function(){}))}function De(e){return!!($(e)||Y(e)&&e.includes(":"))&&($(e)?e:e.split(":")).map(Number).every(K)}function He(e){if(!$(e)||!e.every(K))return null;var t=o(e,2),i=t[0],n=t[1],a=function e(t,i){return 0===i?t:e(i,t%i)}(i,n);return[i/a,n/a]}function Fe(e){var t=function(e){return De(e)?e.split(":").map(Number):null},i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!ae(this.embed)&&$(this.embed.ratio)&&(i=this.embed.ratio),null===i&&this.isHTML5){var n=this.media;i=He([n.videoWidth,n.videoHeight])}return i}function Re(e){if(!this.isVideo)return{};var t=this.elements.wrapper,i=Fe.call(this,e),n=o($(i)?i:[0,0],2),a=100/n[0]*n[1];if(t.style.paddingBottom="".concat(a,"%"),this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){var s=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),r=(s-a)/(s/50);this.media.style.transform="translateY(-".concat(r,"%)")}else this.isHTML5&&t.classList.toggle(this.config.classNames.videoFixedRatio,null!==i);return{padding:a,ratio:i}}var Ve={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter((function(t){var i=t.getAttribute("type");return!!ae(i)||Ee.mime.call(e,i)})):[]},getQualityOptions:function(){return this.config.quality.forced?this.config.quality.options:Ve.getSources.call(this).map((function(e){return Number(e.getAttribute("size"))})).filter(Boolean)},setup:function(){if(this.isHTML5){var e=this;e.options.speed=e.config.speed.options,ae(this.config.ratio)||Re.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=Ve.getSources.call(e).find((function(t){return t.getAttribute("src")===e.source}));return t&&Number(t.getAttribute("size"))},set:function(t){if(e.quality!==t){if(e.config.quality.forced&&X(e.config.quality.onChange))e.config.quality.onChange(t);else{var i=Ve.getSources.call(e).find((function(e){return Number(e.getAttribute("size"))===t}));if(!i)return;var n=e.media,a=n.currentTime,s=n.paused,r=n.preload,o=n.readyState,l=n.playbackRate;e.media.src=i.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",(function(){e.speed=l,e.currentTime=a,s||qe(e.play())})),e.media.load())}Oe.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(me(Ve.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function Be(e){return $(e)?e.filter((function(t,i){return e.indexOf(t)===i})):e}function Ue(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return ae(e)?e:e.toString().replace(/{(\d+)}/g,(function(e,t){return i[t].toString()}))}var We=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString())},ze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.toString().replace(/\w\S*/g,(function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()}))};function Ke(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return t=We(t,"-"," "),t=We(t,"_"," "),t=ze(t),We(t," ","")}function Ye(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var Qe={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},Xe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ae(e)||ae(t))return"";var i=le(t.i18n,e);if(ae(i))return Object.keys(Qe).includes(e)?Qe[e]:"";var n={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(n).forEach((function(e){var t=o(e,2),n=t[0],a=t[1];i=We(i,n,a)})),i},$e=function(){function t(i){e(this,t),this.enabled=i.config.storage.enabled,this.key=i.config.storage.key}return i(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var i=window.localStorage.getItem(this.key);if(ae(i))return null;var n=JSON.parse(i);return Y(e)&&e.length?n[e]:n}},{key:"set",value:function(e){if(t.supported&&this.enabled&&z(e)){var i=this.get();ae(i)&&(i={}),ce(i,e),window.localStorage.setItem(this.key,JSON.stringify(i))}}}],[{key:"supported",get:function(){try{if(!("localStorage"in window))return!1;return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}}]),t}();function Je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise((function(i,n){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",(function(){if("text"===t)try{i(JSON.parse(a.responseText))}catch(e){i(a.responseText)}else i(a.response)})),a.addEventListener("error",(function(){throw new Error(a.status)})),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){n(e)}}))}function Ge(e,t){if(Y(e)){var i=Y(t),n=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){var s=$e.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),i&&r.setAttribute("id",t),s){var o=window.localStorage.getItem("".concat("cache","-").concat(t));if(null!==o){var l=JSON.parse(o);a(r,l.content)}}Je(e).then((function(e){ae(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(r,e))})).catch((function(){}))}}}var Ze=function(e){return Math.trunc(e/60/60%60,10)},et=function(e){return Math.trunc(e/60%60,10)},tt=function(e){return Math.trunc(e%60,10)};function it(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!K(e))return it(void 0,t,i);var n=function(e){return"0".concat(e).slice(-2)},a=Ze(e),s=et(e),r=tt(e);return a=t||a>0?"".concat(a,":"):"","".concat(i&&e>0?"-":"").concat(a).concat(n(s),":").concat(n(r))}var nt={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||oe.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=Ce.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:Te.call(this,this.config.selectors.buttons.play),pause:Ce.call(this,this.config.selectors.buttons.pause),restart:Ce.call(this,this.config.selectors.buttons.restart),rewind:Ce.call(this,this.config.selectors.buttons.rewind),fastForward:Ce.call(this,this.config.selectors.buttons.fastForward),mute:Ce.call(this,this.config.selectors.buttons.mute),pip:Ce.call(this,this.config.selectors.buttons.pip),airplay:Ce.call(this,this.config.selectors.buttons.airplay),settings:Ce.call(this,this.config.selectors.buttons.settings),captions:Ce.call(this,this.config.selectors.buttons.captions),fullscreen:Ce.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=Ce.call(this,this.config.selectors.progress),this.elements.inputs={seek:Ce.call(this,this.config.selectors.inputs.seek),volume:Ce.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:Ce.call(this,this.config.selectors.display.buffer),currentTime:Ce.call(this,this.config.selectors.display.currentTime),duration:Ce.call(this,this.config.selectors.display.duration)},G(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip))),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon:function(e,t){var i=nt.getIconUrl.call(this),n="".concat(i.cors?"":i.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");de(a,ce(t,{"aria-hidden":"true",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),r="".concat(n,"-").concat(e);return"href"in s&&s.setAttributeNS("http://www.w3.org/1999/xlink","href",r),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),a.appendChild(s),a},createLabel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Xe(e,this.config),n=s({},t,{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")});return he("span",n,i)},createBadge:function(e){if(ae(e))return null;var t=he("span",{class:this.config.classNames.menu.value});return t.appendChild(he("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=this,n=ce({},t),a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return(t=Ke(t)).charAt(0).toLowerCase()+t.slice(1)}(e),s={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((function(e){Object.keys(n).includes(e)&&(s[e]=n[e],delete n[e])})),"button"!==s.element||Object.keys(n).includes("type")||(n.type="button"),Object.keys(n).includes("class")?n.class.split(" ").some((function(e){return e===i.config.classNames.control}))||ce(n,{class:"".concat(n.class," ").concat(this.config.classNames.control)}):n.class=this.config.classNames.control,e){case"play":s.toggle=!0,s.label="play",s.labelPressed="pause",s.icon="play",s.iconPressed="pause";break;case"mute":s.toggle=!0,s.label="mute",s.labelPressed="unmute",s.icon="volume",s.iconPressed="muted";break;case"captions":s.toggle=!0,s.label="enableCaptions",s.labelPressed="disableCaptions",s.icon="captions-off",s.iconPressed="captions-on";break;case"fullscreen":s.toggle=!0,s.label="enterFullscreen",s.labelPressed="exitFullscreen",s.icon="enter-fullscreen",s.iconPressed="exit-fullscreen";break;case"play-large":n.class+=" ".concat(this.config.classNames.control,"--overlaid"),a="play",s.label="play",s.icon="play";break;default:ae(s.label)&&(s.label=a),ae(s.icon)&&(s.icon=e)}var r=he(s.element);return s.toggle?(r.appendChild(nt.createIcon.call(this,s.iconPressed,{class:"icon--pressed"})),r.appendChild(nt.createIcon.call(this,s.icon,{class:"icon--not-pressed"})),r.appendChild(nt.createLabel.call(this,s.labelPressed,{class:"label--pressed"})),r.appendChild(nt.createLabel.call(this,s.label,{class:"label--not-pressed"}))):(r.appendChild(nt.createIcon.call(this,s.icon)),r.appendChild(nt.createLabel.call(this,s.label))),ce(n,ye(this.config.selectors.buttons[a],n)),de(r,n),"play"===a?($(this.elements.buttons[a])||(this.elements.buttons[a]=[]),this.elements.buttons[a].push(r)):this.elements.buttons[a]=r,r},createRange:function(e,t){var i=he("input",ce(ye(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":Xe(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,nt.updateRangeFill.call(this,i),_.setup(i),i},createProgress:function(e,t){var i=he("progress",ce(ye(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(he("span",null,"0"));var n={played:"played",buffer:"buffered"}[e],a=n?Xe(n,this.config):"";i.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=i,i},createTime:function(e,t){var i=ye(this.config.selectors.display[e],t),n=he("div",ce(i,{class:"".concat(i.class?i.class:""," ").concat(this.config.classNames.display.time," ").trim(),"aria-label":Xe(e,this.config)}),"00:00");return this.elements.display[e]=n,n},bindMenuItemShortcuts:function(e,t){var i=this;xe.call(this,e,"keydown keyup",(function(n){if([32,38,39,40].includes(n.which)&&(n.preventDefault(),n.stopPropagation(),"keydown"!==n.type)){var a,s=ke(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(n.which))nt.showMenuPanel.call(i,t,!0);else 32!==n.which&&(40===n.which||s&&39===n.which?(a=e.nextElementSibling,G(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,G(a)||(a=e.parentNode.lastElementChild)),Ae.call(i,a,!0))}}),!1),xe.call(this,e,"keyup",(function(e){13===e.which&&nt.focusFirstMenuItem.call(i,null,!0)}))},createMenuItem:function(e){var t=this,i=e.value,n=e.list,a=e.type,s=e.title,r=e.badge,o=void 0===r?null:r,l=e.checked,c=void 0!==l&&l,u=ye(this.config.selectors.inputs[a]),d=he("button",ce(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:i})),h=he("span");h.innerHTML=s,G(o)&&h.appendChild(o),d.appendChild(h),Object.defineProperty(d,"checked",{enumerable:!0,get:function(){return"true"===d.getAttribute("aria-checked")},set:function(e){e&&Array.from(d.parentNode.children).filter((function(e){return ke(e,'[role="menuitemradio"]')})).forEach((function(e){return e.setAttribute("aria-checked","false")})),d.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(d,"click keyup",(function(e){if(!ee(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(i);break;case"quality":t.quality=i;break;case"speed":t.speed=parseFloat(i)}nt.showMenuPanel.call(t,"home",ee(e))}}),a,!1),nt.bindMenuItemShortcuts.call(this,d,a),n.appendChild(d)},formatTime:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!K(e))return e;var i=Ze(this.duration)>0;return it(e,i,t)},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];G(e)&&K(t)&&(e.innerText=nt.formatTime(t,i))},updateVolume:function(){this.supported.ui&&(G(this.elements.inputs.volume)&&nt.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),G(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;G(e)&&(e.value=t,nt.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&Z(e)){var i,n,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":i=this.currentTime,n=this.duration,a=0===i||0===n||Number.isNaN(i)||Number.isNaN(n)?0:(i/n*100).toFixed(2),"timeupdate"===e.type&&nt.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,i){var n=K(i)?i:0,a=G(e)?e:t.elements.display.buffer;if(G(a)){a.value=n;var s=a.getElementsByTagName("span")[0];G(s)&&(s.childNodes[0].nodeValue=n)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=Z(e)?e.target:e;if(G(t)&&"range"===t.getAttribute("type")){if(ke(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var i=nt.formatTime(this.currentTime),n=nt.formatTime(this.duration),a=Xe("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",i).replace("{duration}",n))}else if(ke(t,this.config.selectors.inputs.volume)){var s=100*t.value;t.setAttribute("aria-valuenow",s),t.setAttribute("aria-valuetext","".concat(s.toFixed(1),"%"))}else t.setAttribute("aria-valuenow",t.value);oe.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&G(this.elements.inputs.seek)&&G(this.elements.display.seekTooltip)&&0!==this.duration){var i="".concat(this.config.classNames.tooltip,"--visible"),n=function(e){return be(t.elements.display.seekTooltip,i,e)};if(this.touch)n(!1);else{var a=0,s=this.elements.progress.getBoundingClientRect();if(Z(e))a=100/s.width*(e.pageX-s.left);else{if(!we(this.elements.display.seekTooltip,i))return;a=parseFloat(this.elements.display.seekTooltip.style.left,10)}a<0?a=0:a>100&&(a=100),nt.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*a),this.elements.display.seekTooltip.style.left="".concat(a,"%"),Z(e)&&["mouseenter","mouseleave"].includes(e.type)&&n("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!G(this.elements.display.duration)&&this.config.invertTime;nt.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||nt.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return ve(this.elements.display.currentTime,!0),void ve(this.elements.progress,!0);G(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=G(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&nt.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&nt.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),nt.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){ve(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,i){var n=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=ae(i)?this[e]:i,ae(a)&&(a=this.config[e].default),!ae(this.options[e])&&!this.options[e].includes(a))return void this.debug.warn("Unsupported value of '".concat(a,"' for ").concat(e));if(!this.config[e].options.includes(a))return void this.debug.warn("Disabled value of '".concat(a,"' for ").concat(e))}if(G(s)||(s=n&&n.querySelector('[role="menu"]')),G(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=nt.getLabel.call(this,e,a);var r=s&&s.querySelector('[value="'.concat(a,'"]'));G(r)&&(r.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?Xe("normal",this.config):"".concat(t,"&times;");case"quality":if(K(t)){var i=Xe("qualityLabel.".concat(t),this.config);return i.length?i:"".concat(t,"p")}return ze(t);case"captions":return rt.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(G(this.elements.settings.panels.quality)){var i=this.elements.settings.panels.quality.querySelector('[role="menu"]');$(e)&&(this.options.quality=Be(e).filter((function(e){return t.config.quality.options.includes(e)})));var n=!ae(this.options.quality)&&this.options.quality.length>1;if(nt.toggleMenuButton.call(this,"quality",n),fe(i),nt.checkMenu.call(this),n){var a=function(e){var i=Xe("qualityBadge.".concat(e),t.config);return i.length?nt.createBadge.call(t,i):null};this.options.quality.sort((function(e,i){var n=t.config.quality.options;return n.indexOf(e)>n.indexOf(i)?1:-1})).forEach((function(e){nt.createMenuItem.call(t,{value:e,list:i,type:"quality",title:nt.getLabel.call(t,"quality",e),badge:a(e)})})),nt.updateSetting.call(this,"quality",i)}}},setCaptionsMenu:function(){var e=this;if(G(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=rt.getTracks.call(this),n=Boolean(i.length);if(nt.toggleMenuButton.call(this,"captions",n),fe(t),nt.checkMenu.call(this),n){var a=i.map((function(i,n){return{value:n,checked:e.captions.toggled&&e.currentTrack===n,title:rt.getLabel.call(e,i),badge:i.language&&nt.createBadge.call(e,i.language.toUpperCase()),list:t,type:"language"}}));a.unshift({value:-1,checked:!this.captions.toggled,title:Xe("disabled",this.config),list:t,type:"language"}),a.forEach(nt.createMenuItem.bind(this)),nt.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(){var e=this;if(G(this.elements.settings.panels.speed)){var t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((function(t){return t>=e.minimumSpeed&&t<=e.maximumSpeed}));var i=!ae(this.options.speed)&&this.options.speed.length>1;nt.toggleMenuButton.call(this,"speed",i),fe(t),nt.checkMenu.call(this),i&&(this.options.speed.forEach((function(i){nt.createMenuItem.call(e,{value:i,list:t,type:"speed",title:nt.getLabel.call(e,"speed",i)})})),nt.updateSetting.call(this,"speed",t))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!ae(e)&&Object.values(e).some((function(e){return!e.hidden}));ve(this.elements.settings.menu,!t)},focusFirstMenuItem:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.elements.settings.popup.hidden){var i=e;G(i)||(i=Object.values(this.elements.settings.panels).find((function(e){return!e.hidden})));var n=i.querySelector('[role^="menuitem"]');Ae.call(this,n,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,i=this.elements.buttons.settings;if(G(t)&&G(i)){var n=t.hidden,a=n;if(Q(e))a=e;else if(ee(e)&&27===e.which)a=!1;else if(Z(e)){var s=X(e.composedPath)?e.composedPath()[0]:e.target,r=t.contains(s);if(r||!r&&e.target!==i&&a)return}i.setAttribute("aria-expanded",a),ve(t,!a),be(this.elements.container,this.config.classNames.menu.open,a),a&&ee(e)?nt.focusFirstMenuItem.call(this,null,!0):a||n||Ae.call(this,i,ee(e))}},getMenuSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);var i=t.scrollWidth,n=t.scrollHeight;return me(t),{width:i,height:n}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.elements.container.querySelector("#plyr-settings-".concat(this.id,"-").concat(t));if(G(n)){var a=n.parentNode,s=Array.from(a.children).find((function(e){return!e.hidden}));if(Ee.transitions&&!Ee.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var r=nt.getMenuSize.call(this,n),o=function t(i){i.target===a&&["width","height"].includes(i.propertyName)&&(a.style.width="",a.style.height="",Ie.call(e,a,se,t))};xe.call(this,a,se,o),a.style.width="".concat(r.width,"px"),a.style.height="".concat(r.height,"px")}ve(s,!0),ve(n,!1),nt.focusFirstMenuItem.call(this,n,i)}},setDownloadUrl:function(){var e=this.elements.buttons.download;G(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,i=nt.bindMenuItemShortcuts,n=nt.createButton,a=nt.createProgress,s=nt.createRange,r=nt.createTime,o=nt.setQualityMenu,l=nt.setSpeedMenu,c=nt.showMenuPanel;this.elements.controls=null,this.config.controls.includes("play-large")&&this.elements.container.appendChild(n.call(this,"play-large"));var u=he("div",ye(this.config.selectors.controls.wrapper));this.elements.controls=u;var d={class:"plyr__controls__item"};return Be(this.config.controls).forEach((function(o){if("restart"===o&&u.appendChild(n.call(t,"restart",d)),"rewind"===o&&u.appendChild(n.call(t,"rewind",d)),"play"===o&&u.appendChild(n.call(t,"play",d)),"fast-forward"===o&&u.appendChild(n.call(t,"fast-forward",d)),"progress"===o){var l=he("div",{class:"".concat(d.class," plyr__progress__container")}),h=he("div",ye(t.config.selectors.progress));if(h.appendChild(s.call(t,"seek",{id:"plyr-seek-".concat(e.id)})),h.appendChild(a.call(t,"buffer")),t.config.tooltips.seek){var p=he("span",{class:t.config.classNames.tooltip},"00:00");h.appendChild(p),t.elements.display.seekTooltip=p}t.elements.progress=h,l.appendChild(t.elements.progress),u.appendChild(l)}if("current-time"===o&&u.appendChild(r.call(t,"currentTime",d)),"duration"===o&&u.appendChild(r.call(t,"duration",d)),"mute"===o||"volume"===o){var m=t.elements.volume;if(G(m)&&u.contains(m)||(m=he("div",ce({},d,{class:"".concat(d.class," plyr__volume").trim()})),t.elements.volume=m,u.appendChild(m)),"mute"===o&&m.appendChild(n.call(t,"mute")),"volume"===o&&!oe.isIos){var f={max:1,step:.05,value:t.config.volume};m.appendChild(s.call(t,"volume",ce(f,{id:"plyr-volume-".concat(e.id)})))}}if("captions"===o&&u.appendChild(n.call(t,"captions",d)),"settings"===o&&!ae(t.config.settings)){var g=he("div",ce({},d,{class:"".concat(d.class," plyr__menu").trim(),hidden:""}));g.appendChild(n.call(t,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var y=he("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),v=he("div"),b=he("div",{id:"plyr-settings-".concat(e.id,"-home")}),w=he("div",{role:"menu"});b.appendChild(w),v.appendChild(b),t.elements.settings.panels.home=b,t.config.settings.forEach((function(n){var a=he("button",ce(ye(t.config.selectors.buttons.settings),{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--forward"),role:"menuitem","aria-haspopup":!0,hidden:""}));i.call(t,a,n),xe.call(t,a,"click",(function(){c.call(t,n,!1)}));var s=he("span",null,Xe(n,t.config)),r=he("span",{class:t.config.classNames.menu.value});r.innerHTML=e[n],s.appendChild(r),a.appendChild(s),w.appendChild(a);var o=he("div",{id:"plyr-settings-".concat(e.id,"-").concat(n),hidden:""}),l=he("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});l.appendChild(he("span",{"aria-hidden":!0},Xe(n,t.config))),l.appendChild(he("span",{class:t.config.classNames.hidden},Xe("menuBack",t.config))),xe.call(t,o,"keydown",(function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),c.call(t,"home",!0))}),!1),xe.call(t,l,"click",(function(){c.call(t,"home",!1)})),o.appendChild(l),o.appendChild(he("div",{role:"menu"})),v.appendChild(o),t.elements.settings.buttons[n]=a,t.elements.settings.panels[n]=o})),y.appendChild(v),g.appendChild(y),u.appendChild(g),t.elements.settings.popup=y,t.elements.settings.menu=g}if("pip"===o&&Ee.pip&&u.appendChild(n.call(t,"pip",d)),"airplay"===o&&Ee.airplay&&u.appendChild(n.call(t,"airplay",d)),"download"===o){var k=ce({},d,{element:"a",href:t.download,target:"_blank"});t.isHTML5&&(k.download="");var T=t.config.urls.download;!ne(T)&&t.isEmbed&&ce(k,{icon:"logo-".concat(t.provider),label:t.provider}),u.appendChild(n.call(t,"download",k))}"fullscreen"===o&&u.appendChild(n.call(t,"fullscreen",d))})),this.isHTML5&&o.call(this,Ve.getQualityOptions.call(this)),l.call(this),u},inject:function(){var e=this;if(this.config.loadSprite){var t=nt.getIconUrl.call(this);t.cors&&Ge(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;this.elements.controls=null;var n={id:this.id,seektime:this.config.seekTime,title:this.config.title},a=!0;X(this.config.controls)&&(this.config.controls=this.config.controls.call(this,n)),this.config.controls||(this.config.controls=[]),G(this.config.controls)||Y(this.config.controls)?i=this.config.controls:(i=nt.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:rt.getLabel.call(this)}),a=!1);var s,r=function(e){var t=e;return Object.entries(n).forEach((function(e){var i=o(e,2),n=i[0],a=i[1];t=We(t,"{".concat(n,"}"),a)})),t};if(a&&(Y(this.config.controls)?i=r(i):G(i)&&(i.innerHTML=r(i.innerHTML))),Y(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),G(s)||(s=this.elements.container),s[G(i)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",i),G(this.elements.controls)||nt.findElements.call(this),!ae(this.elements.buttons)){var l=function(t){var i=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return we(t,i)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];be(t,i,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((function(e){$(e)||J(e)?Array.from(e).filter(Boolean).forEach(l):l(e)}))}if(oe.isEdge&&re(s),this.config.tooltips.controls){var c=this.config,u=c.classNames,d=c.selectors,h="".concat(d.controls.wrapper," ").concat(d.labels," .").concat(u.hidden),p=Te.call(this,h);Array.from(p).forEach((function(t){be(t,e.config.classNames.hidden,!1),be(t,e.config.classNames.tooltip,!0)}))}}};function at(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e;if(t){var n=document.createElement("a");n.href=i,i=n.href}try{return new URL(i)}catch(e){return null}}function st(e){var t=new URLSearchParams;return z(e)&&Object.entries(e).forEach((function(e){var i=o(e,2),n=i[0],a=i[1];t.set(n,a)})),t}var rt={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!Ee.textTracks)$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this);else{if(G(this.elements.captions)||(this.elements.captions=he("div",ye(this.config.selectors.captions)),function(e,t){G(e)&&G(t)&&t.parentNode.insertBefore(e,t.nextSibling)}(this.elements.captions,this.elements.wrapper)),oe.isIE&&window.URL){var e=this.media.querySelectorAll("track");Array.from(e).forEach((function(e){var t=e.getAttribute("src"),i=at(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Je(t,"blob").then((function(t){e.setAttribute("src",window.URL.createObjectURL(t))})).catch((function(){me(e)}))}))}var t=Be((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((function(e){return e.split("-")[0]}))),i=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===i)i=o(t,1)[0];var n=this.storage.get("captions");if(Q(n)||(n=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:n,language:i,languages:t}),this.isHTML5){var a=this.config.captions.update?"addtrack removetrack":"removetrack";xe.call(this,this.media.textTracks,a,rt.update.bind(this))}setTimeout(rt.update.bind(this),0)}},update:function(){var e=this,t=rt.getTracks.call(this,!0),i=this.captions,n=i.active,a=i.language,s=i.meta,r=i.currentTrackNode,o=Boolean(t.find((function(e){return e.language===a})));this.isHTML5&&this.isVideo&&t.filter((function(e){return!s.get(e)})).forEach((function(t){e.debug.log("Track added",t),s.set(t,{default:"showing"===t.mode}),"showing"===t.mode&&(t.mode="hidden"),xe.call(e,t,"cuechange",(function(){return rt.updateCues.call(e)}))})),(o&&this.language!==a||!t.includes(r))&&(rt.setLanguage.call(this,a),rt.toggle.call(this,n&&o)),be(this.elements.container,this.config.classNames.captions.enabled,!ae(t)),$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this)},toggle:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var n=this.captions.toggled,a=this.config.classNames.captions.active,s=W(e)?!n:e;if(s!==n){if(i||(this.captions.active=s,this.storage.set({captions:s})),!this.language&&s&&!i){var r=rt.getTracks.call(this),o=rt.findTrack.call(this,[this.captions.language].concat(l(this.captions.languages)),!0);return this.captions.language=o.language,void rt.set.call(this,r.indexOf(o))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=s),be(this.elements.container,a,s),this.captions.toggled=s,nt.updateSetting.call(this,"captions"),Oe.call(this,this.media,s?"captionsenabled":"captionsdisabled")}setTimeout((function(){s&&t.captions.toggled&&(t.captions.currentTrackNode.mode="hidden")}))}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=rt.getTracks.call(this);if(-1!==e)if(K(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var n=i[e],a=n||{},s=a.language;this.captions.currentTrackNode=n,nt.updateSetting.call(this,"captions"),t||(this.captions.language=s,this.storage.set({language:s})),this.isVimeo&&this.embed.enableTextTrack(s),Oe.call(this,this.media,"languagechange")}rt.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&rt.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else rt.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(Y(e)){var i=e.toLowerCase();this.captions.language=i;var n=rt.getTracks.call(this),a=rt.findTrack.call(this,[i]);rt.set.call(this,n.indexOf(a),t)}else this.debug.warn("Invalid language argument",e)},getTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=Array.from((this.media||{}).textTracks||[]);return i.filter((function(i){return!e.isHTML5||t||e.captions.meta.has(i)})).filter((function(e){return["captions","subtitles"].includes(e.kind)}))},findTrack:function(e){var t,i=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=rt.getTracks.call(this),s=function(e){return Number((i.captions.meta.get(e)||{}).default)},r=Array.from(a).sort((function(e,t){return s(t)-s(e)}));return e.every((function(e){return!(t=r.find((function(t){return t.language===e})))})),t||(n?r[0]:void 0)},getCurrentTrack:function(){return rt.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!te(t)&&Ee.textTracks&&this.captions.toggled&&(t=rt.getCurrentTrack.call(this)),te(t)?ae(t.label)?ae(t.language)?Xe("enabled",this.config):e.language.toUpperCase():t.label:Xe("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(G(this.elements.captions))if(W(e)||Array.isArray(e)){var t=e;if(!t){var i=rt.getCurrentTrack.call(this);t=Array.from((i||{}).activeCues||[]).map((function(e){return e.getCueAsHTML()})).map(Ye)}var n=t.map((function(e){return e.trim()})).join("\n");if(n!==this.elements.captions.innerHTML){fe(this.elements.captions);var a=he("span",ye(this.config.selectors.caption));a.innerHTML=n,this.elements.captions.appendChild(a),Oe.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},ot={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.6.1/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/v2/video/{0}.json"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,premium:!1,referrerPolicy:null},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1}},lt="picture-in-picture",ct="inline",ut={html5:"html5",youtube:"youtube",vimeo:"vimeo"},dt="audio",ht="video";var pt=function(){},mt=function(){function t(){var i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&i,this.enabled&&this.log("Debugging enabled")}return i(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):pt}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):pt}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):pt}}]),t}(),ft=function(){function t(i){var n=this;e(this,t),this.player=i,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===i.config.fullscreen.fallback,this.player.elements.fullscreen=i.config.fullscreen.container&&function(e,t){return(Element.prototype.closest||function(){var e=this;do{if(ke.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,i.config.fullscreen.container),xe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),(function(){n.onChange()})),xe.call(this.player,this.player.elements.container,"dblclick",(function(e){G(n.player.elements.controls)&&n.player.elements.controls.contains(e.target)||n.toggle()})),xe.call(this,this.player.elements.container,"keydown",(function(e){return n.trapFocus(e)})),this.update()}return i(t,[{key:"onChange",value:function(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;G(e)&&(e.pressed=this.active),Oe.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0)}}},{key:"toggleFallback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",be(this.target,this.player.config.classNames.fullscreen.fallback,e),oe.isIos){var t=document.head.querySelector('meta[name="viewport"]'),i="viewport-fit=cover";t||(t=document.createElement("meta")).setAttribute("name","viewport");var n=Y(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!n,n||(t.content+=",".concat(i))):this.cleanupViewport&&(t.content=t.content.split(",").filter((function(e){return e.trim()!==i})).join(","))}this.onChange()}},{key:"trapFocus",value:function(e){if(!oe.isIos&&this.active&&"Tab"===e.key&&9===e.keyCode){var t=document.activeElement,i=Te.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),n=o(i,1)[0],a=i[i.length-1];t!==a||e.shiftKey?t===n&&e.shiftKey&&(a.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}}},{key:"update",value:function(){var e;this.enabled?(e=this.forceFallback?"Fallback (forced)":t.native?"Native":"Fallback",this.player.debug.log("".concat(e," fullscreen enabled"))):this.player.debug.log("Fullscreen not supported and fallback disabled");be(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(oe.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():!t.native||this.forceFallback?this.toggleFallback(!0):this.prefix?ae(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen({navigationUI:"hide"}))}},{key:"exit",value:function(){if(this.enabled)if(oe.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),qe(this.player.play());else if(!t.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!ae(this.prefix)){var e="moz"===this.prefix?"Cancel":"Exit";document["".concat(this.prefix).concat(e).concat(this.property)]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}},{key:"toggle",value:function(){this.active?this.exit():this.enter()}},{key:"usingNative",get:function(){return t.native&&!this.forceFallback}},{key:"enabled",get:function(){return(t.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}},{key:"active",get:function(){if(!this.enabled)return!1;if(!t.native||this.forceFallback)return we(this.target,this.player.config.classNames.fullscreen.fallback);var e=this.prefix?document["".concat(this.prefix).concat(this.property,"Element")]:document.fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}},{key:"target",get:function(){return oe.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}],[{key:"native",get:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},{key:"prefix",get:function(){if(X(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some((function(t){return!(!X(document["".concat(t,"ExitFullscreen")])&&!X(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)})),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function gt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise((function(i,n){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?i:n)(a)};Object.assign(a,{onload:s,onerror:s,src:e})}))}var yt={addStyleHook:function(){be(this.elements.container,this.config.selectors.container.replace(".",""),!0),be(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){var e=this;if(this.listeners.media(),!this.supported.ui)return this.debug.warn("Basic support only for ".concat(this.provider," ").concat(this.type)),void yt.toggleNativeControls.call(this,!0);G(this.elements.controls)||(nt.inject.call(this),this.listeners.controls()),yt.toggleNativeControls.call(this),this.isHTML5&&rt.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,nt.updateVolume.call(this),nt.timeUpdate.call(this),yt.checkPlaying.call(this),be(this.elements.container,this.config.classNames.pip.supported,Ee.pip&&this.isHTML5&&this.isVideo),be(this.elements.container,this.config.classNames.airplay.supported,Ee.airplay&&this.isHTML5),be(this.elements.container,this.config.classNames.isIos,oe.isIos),be(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((function(){Oe.call(e,e.media,"ready")}),0),yt.setTitle.call(this),this.poster&&yt.setPoster.call(this,this.poster,!1).catch((function(){})),this.config.duration&&nt.durationUpdate.call(this)},setTitle:function(){var e=Xe("play",this.config);if(Y(this.config.title)&&!ae(this.config.title)&&(e+=", ".concat(this.config.title)),Array.from(this.elements.buttons.play||[]).forEach((function(t){t.setAttribute("aria-label",e)})),this.isEmbed){var t=Ce.call(this,"iframe");if(!G(t))return;var i=ae(this.config.title)?"video":this.config.title,n=Xe("frameTitle",this.config);t.setAttribute("title",n.replace("{title}",i))}},togglePoster:function(e){be(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return i&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),je.call(this).then((function(){return gt(e)})).catch((function(i){throw e===t.poster&&yt.togglePoster.call(t,!1),i})).then((function(){if(e!==t.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((function(){return Object.assign(t.elements.poster.style,{backgroundImage:"url('".concat(e,"')"),backgroundSize:""}),yt.togglePoster.call(t,!0),e})))},checkPlaying:function(e){var t=this;be(this.elements.container,this.config.classNames.playing,this.playing),be(this.elements.container,this.config.classNames.paused,this.paused),be(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((function(e){Object.assign(e,{pressed:t.playing}),e.setAttribute("aria-label",Xe(t.playing?"pause":"play",t.config))})),Z(e)&&"timeupdate"===e.type||yt.toggleControls.call(this)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((function(){be(t.elements.container,t.config.classNames.loading,t.loading),yt.toggleControls.call(t)}),this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles:function(){var e=this;Object.values(s({},this.media.style)).filter((function(e){return!ae(e)&&e.startsWith("--plyr")})).forEach((function(t){e.elements.container.style.setProperty(t,e.media.style.getPropertyValue(t)),e.media.style.removeProperty(t)})),ae(this.media.style)&&this.media.removeAttribute("style")}},vt=function(){function t(i){e(this,t),this.player=i,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}return i(t,[{key:"handleKey",value:function(e){var t=this.player,i=t.elements,n=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&n===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&K(n)){if(a){var r=document.activeElement;if(G(r)){var o=t.config.selectors.editable;if(r!==i.inputs.seek&&ke(r,o))return;if(32===e.which&&ke(r,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(n)&&(e.preventDefault(),e.stopPropagation()),n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:s||(t.currentTime=t.duration/10*(n-48));break;case 32:case 75:s||qe(t.togglePlay());break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:s||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:s||t.toggleCaptions();break;case 76:t.loop=!t.loop}27===n&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=n}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){nt.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,be(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,i=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var n,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)n=t.config.classNames.tabFocus,be(Te.call(t,".".concat(n)),n,!1),"focusout"!==e.type&&(this.focusTimer=setTimeout((function(){var e=document.activeElement;i.container.contains(e)&&be(document.activeElement,t.config.classNames.tabFocus,!0)}),10))}}},{key:"global",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.player;t.config.keyboard.global&&Ne.call(t,window,"keydown keyup",this.handleKey,e,!1),Ne.call(t,document.body,"click",this.toggleMenu,e),Le.call(t,document.body,"touchstart",this.firstTouch),Ne.call(t,document.body,"keydown focus blur focusout",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.config,i=e.elements,n=e.timers;!t.keyboard.global&&t.keyboard.focused&&xe.call(e,i.container,"keydown keyup",this.handleKey,!1),xe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(function(t){var a=i.controls;a&&"enterfullscreen"===t.type&&(a.pressed=!1,a.hover=!1);var s=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(yt.toggleControls.call(e,!0),s=e.touch?3e3:2e3),clearTimeout(n.controls),n.controls=setTimeout((function(){return yt.toggleControls.call(e,!1)}),s)}));var a=function(t){if(!t)return Re.call(e);var n=i.container.getBoundingClientRect(),a=n.width,s=n.height;return Re.call(e,"".concat(a,":").concat(s))},s=function(){clearTimeout(n.resized),n.resized=setTimeout(a,50)};xe.call(e,i.container,"enterfullscreen exitfullscreen",(function(t){var n=e.fullscreen,r=n.target,l=n.usingNative;if(r===i.container&&(e.isEmbed||!ae(e.config.ratio))){var c="enterfullscreen"===t.type,u=a(c);u.padding;!function(t,i,n){if(e.isVimeo&&!e.config.vimeo.premium){var a=e.elements.wrapper.firstChild,s=o(t,2)[1],r=o(Fe.call(e),2),l=r[0],c=r[1];a.style.maxWidth=n?"".concat(s/c*l,"px"):null,a.style.margin=n?"0 auto":null}}(u.ratio,0,c),l||(c?xe.call(e,window,"resize",s):Ie.call(e,window,"resize",s))}}))}},{key:"media",value:function(){var e=this,t=this.player,i=t.elements;if(xe.call(t,t.media,"timeupdate seeking seeked",(function(e){return nt.timeUpdate.call(t,e)})),xe.call(t,t.media,"durationchange loadeddata loadedmetadata",(function(e){return nt.durationUpdate.call(t,e)})),xe.call(t,t.media,"ended",(function(){t.isHTML5&&t.isVideo&&t.config.resetOnEnd&&(t.restart(),t.pause())})),xe.call(t,t.media,"progress playing seeking seeked",(function(e){return nt.updateProgress.call(t,e)})),xe.call(t,t.media,"volumechange",(function(e){return nt.updateVolume.call(t,e)})),xe.call(t,t.media,"playing play pause ended emptied timeupdate",(function(e){return yt.checkPlaying.call(t,e)})),xe.call(t,t.media,"waiting canplay seeked playing",(function(e){return yt.checkLoading.call(t,e)})),t.supported.ui&&t.config.clickToPlay&&!t.isAudio){var n=Ce.call(t,".".concat(t.config.classNames.video));if(!G(n))return;xe.call(t,i.container,"click",(function(a){([i.container,n].includes(a.target)||n.contains(a.target))&&(t.touch&&t.config.hideControls||(t.ended?(e.proxy(a,t.restart,"restart"),e.proxy(a,(function(){qe(t.play())}),"play")):e.proxy(a,(function(){qe(t.togglePlay())}),"play")))}))}t.supported.ui&&t.config.disableContextMenu&&xe.call(t,i.wrapper,"contextmenu",(function(e){e.preventDefault()}),!1),xe.call(t,t.media,"volumechange",(function(){t.storage.set({volume:t.volume,muted:t.muted})})),xe.call(t,t.media,"ratechange",(function(){nt.updateSetting.call(t,"speed"),t.storage.set({speed:t.speed})})),xe.call(t,t.media,"qualitychange",(function(e){nt.updateSetting.call(t,"quality",null,e.detail.quality)})),xe.call(t,t.media,"ready qualitychange",(function(){nt.setDownloadUrl.call(t)}));var a=t.config.events.concat(["keyup","keydown"]).join(" ");xe.call(t,t.media,a,(function(e){var n=e.detail,a=void 0===n?{}:n;"error"===e.type&&(a=t.media.error),Oe.call(t,i.container,e.type,!0,a)}))}},{key:"proxy",value:function(e,t,i){var n=this.player,a=n.config.listeners[i],s=!0;X(a)&&(s=a.call(n,e)),!1!==s&&X(t)&&t.call(n,e)}},{key:"bind",value:function(e,t,i,n){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.player,o=r.config.listeners[n],l=X(o);xe.call(r,e,t,(function(e){return a.proxy(e,i,n)}),s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,i=t.elements,n=oe.isIE?"change":"input";if(i.buttons.play&&Array.from(i.buttons.play).forEach((function(i){e.bind(i,"click",(function(){qe(t.togglePlay())}),"play")})),this.bind(i.buttons.restart,"click",t.restart,"restart"),this.bind(i.buttons.rewind,"click",t.rewind,"rewind"),this.bind(i.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(i.buttons.mute,"click",(function(){t.muted=!t.muted}),"mute"),this.bind(i.buttons.captions,"click",(function(){return t.toggleCaptions()})),this.bind(i.buttons.download,"click",(function(){Oe.call(t,t.media,"download")}),"download"),this.bind(i.buttons.fullscreen,"click",(function(){t.fullscreen.toggle()}),"fullscreen"),this.bind(i.buttons.pip,"click",(function(){t.pip="toggle"}),"pip"),this.bind(i.buttons.airplay,"click",t.airplay,"airplay"),this.bind(i.buttons.settings,"click",(function(e){e.stopPropagation(),e.preventDefault(),nt.toggleMenu.call(t,e)}),null,!1),this.bind(i.buttons.settings,"keyup",(function(e){var i=e.which;[13,32].includes(i)&&(13!==i?(e.preventDefault(),e.stopPropagation(),nt.toggleMenu.call(t,e)):nt.focusFirstMenuItem.call(t,null,!0))}),null,!1),this.bind(i.settings.menu,"keydown",(function(e){27===e.which&&nt.toggleMenu.call(t,e)})),this.bind(i.inputs.seek,"mousedown mousemove",(function(e){var t=i.progress.getBoundingClientRect(),n=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",n)})),this.bind(i.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(function(e){var i=e.currentTarget,n=e.keyCode?e.keyCode:e.which;if(!ee(e)||39===n||37===n){t.lastSeekTime=Date.now();var a=i.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(i.removeAttribute("play-on-seeked"),qe(t.play())):!s&&t.playing&&(i.setAttribute("play-on-seeked",""),t.pause())}})),oe.isIos){var a=Te.call(t,'input[type="range"]');Array.from(a).forEach((function(t){return e.bind(t,n,(function(e){return re(e.target)}))}))}this.bind(i.inputs.seek,n,(function(e){var i=e.currentTarget,n=i.getAttribute("seek-value");ae(n)&&(n=i.value),i.removeAttribute("seek-value"),t.currentTime=n/i.max*t.duration}),"seek"),this.bind(i.progress,"mouseenter mouseleave mousemove",(function(e){return nt.updateSeekTooltip.call(t,e)})),this.bind(i.progress,"mousemove touchmove",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startMove(e)})),this.bind(i.progress,"mouseleave touchend click",(function(){var e=t.previewThumbnails;e&&e.loaded&&e.endMove(!1,!0)})),this.bind(i.progress,"mousedown touchstart",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startScrubbing(e)})),this.bind(i.progress,"mouseup touchend",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.endScrubbing(e)})),oe.isWebkit&&Array.from(Te.call(t,'input[type="range"]')).forEach((function(i){e.bind(i,"input",(function(e){return nt.updateRangeFill.call(t,e.target)}))})),t.config.toggleInvert&&!G(i.display.duration)&&this.bind(i.display.currentTime,"click",(function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,nt.timeUpdate.call(t))})),this.bind(i.inputs.volume,n,(function(e){t.volume=e.target.value}),"volume"),this.bind(i.controls,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type})),i.fullscreen&&Array.from(i.fullscreen.children).filter((function(e){return!e.contains(i.container)})).forEach((function(n){e.bind(n,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type}))})),this.bind(i.controls,"mousedown mouseup touchstart touchend touchcancel",(function(e){i.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(i.controls,"focusin",(function(){var n=t.config,a=t.timers;be(i.controls,n.classNames.noTransition,!0),yt.toggleControls.call(t,!0),setTimeout((function(){be(i.controls,n.classNames.noTransition,!1)}),0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout((function(){return yt.toggleControls.call(t,!1)}),s)})),this.bind(i.inputs.volume,"wheel",(function(e){var i=e.webkitDirectionInvertedFromDevice,n=o([e.deltaX,-e.deltaY].map((function(e){return i?-e:e})),2),a=n[0],s=n[1],r=Math.sign(Math.abs(a)>Math.abs(s)?a:s);t.increaseVolume(r/50);var l=t.media.volume;(1===r&&l<1||-1===r&&l>0)&&e.preventDefault()}),"volume",!1)}}]),t}();"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var bt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},n={};function a(e,t){if(e){var a=n[e];if(i[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function r(t,i,n,a){var s,o,l=document,c=n.async,u=(n.numRetries||0)+1,d=n.before||e,h=t.replace(/[\?|#].*$/,""),p=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(h)?((o=l.createElement("link")).rel="stylesheet",o.href=p,(s="hideFocus"in o)&&o.relList&&(s=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(h)?(o=l.createElement("img")).src=p:((o=l.createElement("script")).src=t,o.async=void 0===c||c),o.onload=o.onerror=o.onbeforeload=function(e){var l=e.type[0];if(s)try{o.sheet.cssText.length||(l="e")}catch(e){18!=e.code&&(l="e")}if("e"==l){if((a+=1)<u)return r(t,i,n,a)}else if("preload"==o.rel&&"style"==o.as)return o.rel="stylesheet";i(t,l,e.defaultPrevented)},!1!==d(t,o)&&l.head.appendChild(o)}function o(e,i,n){var o,l;if(i&&i.trim&&(o=i),l=(o?n:i)||{},o){if(o in t)throw"LoadJS";t[o]=!0}function c(t,i){!function(e,t,i){var n,a,s=(e=e.push?e:[e]).length,o=s,l=[];for(n=function(e,i,n){if("e"==i&&l.push(e),"b"==i){if(!n)return;l.push(e)}--s||t(l)},a=0;a<o;a++)r(e[a],n,i)}(e,(function(e){s(l,e),t&&s({success:t,error:i},e),a(o,e)}),l)}if(l.returnPromise)return new Promise(c);c()}return o.ready=function(e,t){return function(e,t){e=e.push?e:[e];var a,s,r,o=[],l=e.length,c=l;for(a=function(e,i){i.length&&o.push(e),--c||t(o)};l--;)s=e[l],(r=i[s])?a(s,r):(n[s]=n[s]||[]).push(a)}(e,(function(e){s(t,e)})),o},o.done=function(e){a(e,[])},o.reset=function(){t={},i={},n={}},o.isDefined=function(e){return e in t},o}()}));function wt(e){return new Promise((function(t,i){bt(e,{success:t,error:i})}))}function kt(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Oe.call(this,this.media,e?"play":"pause"))}var Tt={setup:function(){var e=this;be(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,Re.call(e),z(window.Vimeo)?Tt.ready.call(e):wt(e.config.urls.vimeo.sdk).then((function(){Tt.ready.call(e)})).catch((function(t){e.debug.warn("Vimeo SDK (player.js) failed to load",t)}))},ready:function(){var e=this,t=this,i=t.config.vimeo,n=i.premium,a=i.referrerPolicy,l=r(i,["premium","referrerPolicy"]);n&&Object.assign(l,{controls:!1,sidedock:!1});var c=st(s({loop:t.config.loop.active,autoplay:t.autoplay,muted:t.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative},l)),u=t.media.getAttribute("src");ae(u)&&(u=t.media.getAttribute(t.config.attributes.embed.id));var d,h=ae(d=u)?null:K(Number(d))?d:d.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:d,p=he("iframe"),m=Ue(t.config.urls.vimeo.iframe,h,c);p.setAttribute("src",m),p.setAttribute("allowfullscreen",""),p.setAttribute("allow","autoplay,fullscreen,picture-in-picture"),ae(a)||p.setAttribute("referrerPolicy",a);var f=t.poster;if(n)p.setAttribute("data-poster",f),t.media=ge(p,t.media);else{var g=he("div",{class:t.config.classNames.embedContainer,"data-poster":f});g.appendChild(p),t.media=ge(g,t.media)}Je(Ue(t.config.urls.vimeo.api,h),"json").then((function(e){if(!ae(e)){var i=new URL(e[0].thumbnail_large);i.pathname="".concat(i.pathname.split("_")[0],".jpg"),yt.setPoster.call(t,i.href).catch((function(){}))}})),t.embed=new window.Vimeo.Player(p,{autopause:t.config.autopause,muted:t.muted}),t.media.paused=!0,t.media.currentTime=0,t.supported.ui&&t.embed.disableTextTrack(),t.media.play=function(){return kt.call(t,!0),t.embed.play()},t.media.pause=function(){return kt.call(t,!1),t.embed.pause()},t.media.stop=function(){t.pause(),t.currentTime=0};var y=t.media.currentTime;Object.defineProperty(t.media,"currentTime",{get:function(){return y},set:function(e){var i=t.embed,n=t.media,a=t.paused,s=t.volume,r=a&&!i.hasPlayed;n.seeking=!0,Oe.call(t,n,"seeking"),Promise.resolve(r&&i.setVolume(0)).then((function(){return i.setCurrentTime(e)})).then((function(){return r&&i.pause()})).then((function(){return r&&i.setVolume(s)})).catch((function(){}))}});var v=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:function(){return v},set:function(e){t.embed.setPlaybackRate(e).then((function(){v=e,Oe.call(t,t.media,"ratechange")})).catch((function(){t.options.speed=[1]}))}});var b=t.config.volume;Object.defineProperty(t.media,"volume",{get:function(){return b},set:function(e){t.embed.setVolume(e).then((function(){b=e,Oe.call(t,t.media,"volumechange")}))}});var w=t.config.muted;Object.defineProperty(t.media,"muted",{get:function(){return w},set:function(e){var i=!!Q(e)&&e;t.embed.setVolume(i?0:t.config.volume).then((function(){w=i,Oe.call(t,t.media,"volumechange")}))}});var k,T=t.config.loop;Object.defineProperty(t.media,"loop",{get:function(){return T},set:function(e){var i=Q(e)?e:t.config.loop.active;t.embed.setLoop(i).then((function(){T=i}))}}),t.embed.getVideoUrl().then((function(e){k=e,nt.setDownloadUrl.call(t)})).catch((function(t){e.debug.warn(t)})),Object.defineProperty(t.media,"currentSrc",{get:function(){return k}}),Object.defineProperty(t.media,"ended",{get:function(){return t.currentTime===t.duration}}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then((function(i){var n=o(i,2),a=n[0],s=n[1];t.embed.ratio=[a,s],Re.call(e)})),t.embed.setAutopause(t.config.autopause).then((function(e){t.config.autopause=e})),t.embed.getVideoTitle().then((function(i){t.config.title=i,yt.setTitle.call(e)})),t.embed.getCurrentTime().then((function(e){y=e,Oe.call(t,t.media,"timeupdate")})),t.embed.getDuration().then((function(e){t.media.duration=e,Oe.call(t,t.media,"durationchange")})),t.embed.getTextTracks().then((function(e){t.media.textTracks=e,rt.setup.call(t)})),t.embed.on("cuechange",(function(e){var i=e.cues,n=(void 0===i?[]:i).map((function(e){return function(e){var t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)}));rt.updateCues.call(t,n)})),t.embed.on("loaded",(function(){(t.embed.getPaused().then((function(e){kt.call(t,!e),e||Oe.call(t,t.media,"playing")})),G(t.embed.element)&&t.supported.ui)&&t.embed.element.setAttribute("tabindex",-1)})),t.embed.on("bufferstart",(function(){Oe.call(t,t.media,"waiting")})),t.embed.on("bufferend",(function(){Oe.call(t,t.media,"playing")})),t.embed.on("play",(function(){kt.call(t,!0),Oe.call(t,t.media,"playing")})),t.embed.on("pause",(function(){kt.call(t,!1)})),t.embed.on("timeupdate",(function(e){t.media.seeking=!1,y=e.seconds,Oe.call(t,t.media,"timeupdate")})),t.embed.on("progress",(function(e){t.media.buffered=e.percent,Oe.call(t,t.media,"progress"),1===parseInt(e.percent,10)&&Oe.call(t,t.media,"canplaythrough"),t.embed.getDuration().then((function(e){e!==t.media.duration&&(t.media.duration=e,Oe.call(t,t.media,"durationchange"))}))})),t.embed.on("seeked",(function(){t.media.seeking=!1,Oe.call(t,t.media,"seeked")})),t.embed.on("ended",(function(){t.media.paused=!0,Oe.call(t,t.media,"ended")})),t.embed.on("error",(function(e){t.media.error=e,Oe.call(t,t.media,"error")})),setTimeout((function(){return yt.build.call(t)}),0)}};function Ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Oe.call(this,this.media,e?"play":"pause"))}function At(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}var St={setup:function(){var e=this;if(be(this.elements.wrapper,this.config.classNames.embed,!0),z(window.YT)&&X(window.YT.Player))St.ready.call(this);else{var t=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=function(){X(t)&&t(),St.ready.call(e)},wt(this.config.urls.youtube.sdk).catch((function(t){e.debug.warn("YouTube API failed to load",t)}))}},getTitle:function(e){var t=this;Je(Ue(this.config.urls.youtube.api,e)).then((function(e){if(z(e)){var i=e.title,n=e.height,a=e.width;t.config.title=i,yt.setTitle.call(t),t.embed.ratio=[a,n]}Re.call(t)})).catch((function(){Re.call(t)}))},ready:function(){var e=this,t=e.media&&e.media.getAttribute("id");if(ae(t)||!t.startsWith("youtube-")){var i=e.media.getAttribute("src");ae(i)&&(i=e.media.getAttribute(this.config.attributes.embed.id));var n,a,s=ae(n=i)?null:n.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:n,r=(a=e.provider,"".concat(a,"-").concat(Math.floor(1e4*Math.random()))),o=he("div",{id:r,"data-poster":e.poster});e.media=ge(o,e.media);var l=function(e){return"https://i.ytimg.com/vi/".concat(s,"/").concat(e,"default.jpg")};gt(l("maxres"),121).catch((function(){return gt(l("sd"),121)})).catch((function(){return gt(l("hq"))})).then((function(t){return yt.setPoster.call(e,t.src)})).then((function(t){t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")})).catch((function(){}));var c=e.config.youtube;e.embed=new window.YT.Player(r,{videoId:s,host:At(c),playerVars:ce({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},c),events:{onError:function(t){if(!e.media.error){var i=t.data,n={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occured";e.media.error={code:i,message:n},Oe.call(e,e.media,"error")}},onPlaybackRateChange:function(t){var i=t.target;e.media.playbackRate=i.getPlaybackRate(),Oe.call(e,e.media,"ratechange")},onReady:function(t){if(!X(e.media.play)){var i=t.target;St.getTitle.call(e,s),e.media.play=function(){Ct.call(e,!0),i.playVideo()},e.media.pause=function(){Ct.call(e,!1),i.pauseVideo()},e.media.stop=function(){i.stopVideo()},e.media.duration=i.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:function(){return Number(i.getCurrentTime())},set:function(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,Oe.call(e,e.media,"seeking"),i.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:function(){return i.getPlaybackRate()},set:function(e){i.setPlaybackRate(e)}});var n=e.config.volume;Object.defineProperty(e.media,"volume",{get:function(){return n},set:function(t){n=t,i.setVolume(100*n),Oe.call(e,e.media,"volumechange")}});var a=e.config.muted;Object.defineProperty(e.media,"muted",{get:function(){return a},set:function(t){var n=Q(t)?t:a;a=n,i[n?"mute":"unMute"](),Oe.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:function(){return i.getVideoUrl()}}),Object.defineProperty(e.media,"ended",{get:function(){return e.currentTime===e.duration}});var r=i.getAvailablePlaybackRates();e.options.speed=r.filter((function(t){return e.config.speed.options.includes(t)})),e.supported.ui&&e.media.setAttribute("tabindex",-1),Oe.call(e,e.media,"timeupdate"),Oe.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((function(){e.media.buffered=i.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&Oe.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),Oe.call(e,e.media,"canplaythrough"))}),200),setTimeout((function(){return yt.build.call(e)}),50)}},onStateChange:function(t){var i=t.target;switch(clearInterval(e.timers.playing),e.media.seeking&&[1,2].includes(t.data)&&(e.media.seeking=!1,Oe.call(e,e.media,"seeked")),t.data){case-1:Oe.call(e,e.media,"timeupdate"),e.media.buffered=i.getVideoLoadedFraction(),Oe.call(e,e.media,"progress");break;case 0:Ct.call(e,!1),e.media.loop?(i.stopVideo(),i.playVideo()):Oe.call(e,e.media,"ended");break;case 1:e.config.autoplay||!e.media.paused||e.embed.hasPlayed?(Ct.call(e,!0),Oe.call(e,e.media,"playing"),e.timers.playing=setInterval((function(){Oe.call(e,e.media,"timeupdate")}),50),e.media.duration!==i.getDuration()&&(e.media.duration=i.getDuration(),Oe.call(e,e.media,"durationchange"))):e.media.pause();break;case 2:e.muted||e.embed.unMute(),Ct.call(e,!1);break;case 3:Oe.call(e,e.media,"waiting")}Oe.call(e,e.elements.container,"statechange",!1,{code:t.data})}}})}}},Pt={setup:function(){this.media?(be(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),be(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&be(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=he("div",{class:this.config.classNames.video}),ue(this.media,this.elements.wrapper),this.elements.poster=he("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Ve.setup.call(this):this.isYouTube?St.setup.call(this):this.isVimeo&&Tt.setup.call(this)):this.debug.warn("No media element found!")}},Et=function(){function t(i){var n=this;e(this,t),this.player=i,this.config=i.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise((function(e,t){n.on("loaded",e),n.on("error",t)})),this.load()}return i(t,[{key:"load",value:function(){var e=this;this.enabled&&(z(window.google)&&z(window.google.ima)?this.ready():wt(this.player.config.urls.googleIMA.sdk).then((function(){e.ready()})).catch((function(){e.trigger("error",new Error("Google IMA SDK failed to load"))})))}},{key:"ready",value:function(){var e,t=this;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then((function(){t.clearSafetyTimer("onAdsManagerLoaded()")})),this.listeners(),this.setupIMA()}},{key:"setupIMA",value:function(){var e=this;this.elements.container=he("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(function(t){return e.onAdsManagerLoaded(t)}),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(t){return e.onAdError(t)}),!1),this.requestAds()}},{key:"requestAds",value:function(){var e=this.player.elements.container;try{var t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}}},{key:"pollCountdown",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!t)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");var i=function(){var t=it(Math.max(e.manager.getRemainingTime(),0)),i="".concat(Xe("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",i)};this.countdownTimer=setInterval(i,100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var i=new google.ima.AdsRenderingSettings;i.restoreCustomPlaybackStateOnAdBreakComplete=!0,i.enablePreloading=!0,this.manager=e.getAdsManager(this.player,i),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(e){return t.onAdError(e)})),Object.keys(google.ima.AdEvent.Type).forEach((function(e){t.manager.addEventListener(google.ima.AdEvent.Type[e],(function(e){return t.onAdEvent(e)}))})),this.trigger("loaded")}}},{key:"addCuePoints",value:function(){var e=this;ae(this.cuePoints)||this.cuePoints.forEach((function(t){if(0!==t&&-1!==t&&t<e.player.duration){var i=e.player.elements.progress;if(G(i)){var n=100/e.player.duration*t,a=he("span",{class:e.player.config.classNames.cues});a.style.left="".concat(n.toString(),"%"),i.appendChild(a)}}}))}},{key:"onAdEvent",value:function(e){var t=this,i=this.player.elements.container,n=e.getAd(),a=e.getAdData();switch(function(e){Oe.call(t.player,t.player.media,"ads".concat(e.replace(/_/g,"").toLowerCase()))}(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),n.isLinear()||(n.width=i.offsetWidth,n.height=i.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:a.adError&&this.player.debug.warn("Non-fatal ad error: ".concat(a.adError.getMessage()))}}},{key:"onAdError",value:function(e){this.cancel(),this.player.debug.warn("Ads error",e)}},{key:"listeners",value:function(){var e,t=this,i=this.player.elements.container;this.player.on("canplay",(function(){t.addCuePoints()})),this.player.on("ended",(function(){t.loader.contentComplete()})),this.player.on("timeupdate",(function(){e=t.player.currentTime})),this.player.on("seeked",(function(){var i=t.player.currentTime;ae(t.cuePoints)||t.cuePoints.forEach((function(n,a){e<n&&n<i&&(t.manager.discardAdBreak(),t.cuePoints.splice(a,1))}))})),window.addEventListener("resize",(function(){t.manager&&t.manager.resize(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL)}))}},{key:"play",value:function(){var e=this,t=this.player.elements.container;this.managerPromise||this.resumeContent(),this.managerPromise.then((function(){e.manager.setVolume(e.player.volume),e.elements.displayContainer.initialize();try{e.initialized||(e.manager.init(t.offsetWidth,t.offsetHeight,google.ima.ViewMode.NORMAL),e.manager.start()),e.initialized=!0}catch(t){e.onAdError(t)}})).catch((function(){}))}},{key:"resumeContent",value:function(){this.elements.container.style.zIndex="",this.playing=!1,qe(this.player.media.play())}},{key:"pauseContent",value:function(){this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()}},{key:"cancel",value:function(){this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}},{key:"loadAds",value:function(){var e=this;this.managerPromise.then((function(){e.manager&&e.manager.destroy(),e.managerPromise=new Promise((function(t){e.on("loaded",t),e.player.debug.log(e.manager)})),e.initialized=!1,e.requestAds()})).catch((function(){}))}},{key:"trigger",value:function(e){for(var t=this,i=arguments.length,n=new Array(i>1?i-1:0),a=1;a<i;a++)n[a-1]=arguments[a];var s=this.events[e];$(s)&&s.forEach((function(e){X(e)&&e.apply(t,n)}))}},{key:"on",value:function(e,t){return $(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this}},{key:"startSafetyTimer",value:function(e,t){var i=this;this.player.debug.log("Safety timer invoked from: ".concat(t)),this.safetyTimer=setTimeout((function(){i.cancel(),i.clearSafetyTimer("startSafetyTimer()")}),e)}},{key:"clearSafetyTimer",value:function(e){W(this.safetyTimer)||(this.player.debug.log("Safety timer cleared from: ".concat(e)),clearTimeout(this.safetyTimer),this.safetyTimer=null)}},{key:"enabled",get:function(){var e=this.config;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!ae(e.publisherId)||ne(e.tagUrl))}},{key:"tagUrl",get:function(){var e=this.config;if(ne(e.tagUrl))return e.tagUrl;var t={AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId};return"".concat("https://go.aniview.com/api/adserver6/vast/","?").concat(st(t))}}]),t}(),Mt=function(e,t){var i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i},Nt=function(){function t(i){e(this,t),this.player=i,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}return i(t,[{key:"load",value:function(){var e=this;this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((function(){e.enabled&&(e.render(),e.determineContainerAutoSizing(),e.loaded=!0)}))}},{key:"getThumbnails",value:function(){var e=this;return new Promise((function(t){var i=e.player.config.previewThumbnails.src;if(ae(i))throw new Error("Missing previewThumbnails.src config attribute");var n=function(){e.thumbnails.sort((function(e,t){return e.height-t.height})),e.player.debug.log("Preview thumbnails",e.thumbnails),t()};if(X(i))i((function(t){e.thumbnails=t,n()}));else{var a=(Y(i)?[i]:i).map((function(t){return e.getThumbnail(t)}));Promise.all(a).then(n)}}))}},{key:"getThumbnail",value:function(e){var t=this;return new Promise((function(i){Je(e).then((function(n){var a,s,r={frames:(a=n,s=[],a.split(/\r\n\r\n|\n\n|\r\r/).forEach((function(e){var t={};e.split(/\r\n|\n|\r/).forEach((function(e){if(K(t.startTime)){if(!ae(e.trim())&&ae(t.text)){var i=e.trim().split("#xywh="),n=o(i,1);if(t.text=n[0],i[1]){var a=o(i[1].split(","),4);t.x=a[0],t.y=a[1],t.w=a[2],t.h=a[3]}}}else{var s=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);s&&(t.startTime=60*Number(s[1]||0)*60+60*Number(s[2])+Number(s[3])+Number("0.".concat(s[4])),t.endTime=60*Number(s[6]||0)*60+60*Number(s[7])+Number(s[8])+Number("0.".concat(s[9])))}})),t.text&&s.push(t)})),s),height:null,urlPrefix:""};r.frames[0].text.startsWith("/")||r.frames[0].text.startsWith("http://")||r.frames[0].text.startsWith("https://")||(r.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));var l=new Image;l.onload=function(){r.height=l.naturalHeight,r.width=l.naturalWidth,t.thumbnails.push(r),i()},l.src=r.urlPrefix+r.frames[0].text}))}))}},{key:"startMove",value:function(e){if(this.loaded&&Z(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=it(this.seekTime)}this.showImageAtCurrentTime()}}},{key:"endMove",value:function(){this.toggleThumbContainer(!1,!0)}},{key:"startScrubbing",value:function(e){(W(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}},{key:"endScrubbing",value:function(){var e=this;this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Le.call(this.player,this.player.media,"timeupdate",(function(){e.mouseDown||e.toggleScrubbingContainer(!1)}))}},{key:"listeners",value:function(){var e=this;this.player.on("play",(function(){e.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(function(){e.toggleThumbContainer(!1)})),this.player.on("timeupdate",(function(){e.lastTime=e.player.media.currentTime}))}},{key:"render",value:function(){this.elements.thumb.container=he("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=he("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);var e=he("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=he("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),G(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=he("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}},{key:"destroy",value:function(){this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}},{key:"showImageAtCurrentTime",value:function(){var e=this;this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();var t=this.thumbnails[0].frames.findIndex((function(t){return e.seekTime>=t.startTime&&e.seekTime<=t.endTime})),i=t>=0,n=0;this.mouseDown||this.toggleThumbContainer(i),i&&(this.thumbnails.forEach((function(i,a){e.loadedImages.includes(i.frames[t].text)&&(n=a)})),t!==this.showingThumb&&(this.showingThumb=t,this.loadImage(n)))}},{key:"loadImage",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=this.showingThumb,n=this.thumbnails[t],a=n.urlPrefix,s=n.frames[i],r=n.frames[i].text,o=a+r;if(this.currentImageElement&&this.currentImageElement.dataset.filename===r)this.showImage(this.currentImageElement,s,t,i,r,!1),this.currentImageElement.dataset.index=i,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);var l=new Image;l.src=o,l.dataset.index=i,l.dataset.filename=r,this.showingThumbFilename=r,this.player.debug.log("Loading image: ".concat(o)),l.onload=function(){return e.showImage(l,s,t,i,r,!0)},this.loadingImage=l,this.removeOldImages(l)}}},{key:"showImage",value:function(e,t,i,n,a){var s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];this.player.debug.log("Showing thumb: ".concat(a,". num: ").concat(n,". qual: ").concat(i,". newimg: ").concat(s)),this.setImageSizeAndOffset(e,t),s&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(a)||this.loadedImages.push(a)),this.preloadNearby(n,!0).then(this.preloadNearby(n,!1)).then(this.getHigherQuality(i,e,t,a))}},{key:"removeOldImages",value:function(e){var t=this;Array.from(this.currentImageContainer.children).forEach((function(i){if("img"===i.tagName.toLowerCase()){var n=t.usingSprites?500:1e3;if(i.dataset.index!==e.dataset.index&&!i.dataset.deleting){i.dataset.deleting=!0;var a=t.currentImageContainer;setTimeout((function(){a.removeChild(i),t.player.debug.log("Removing thumb: ".concat(i.dataset.filename))}),n)}}}))}},{key:"preloadNearby",value:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise((function(n){setTimeout((function(){var a=t.thumbnails[0].frames[e].text;if(t.showingThumbFilename===a){var s;s=i?t.thumbnails[0].frames.slice(e):t.thumbnails[0].frames.slice(0,e).reverse();var r=!1;s.forEach((function(e){var i=e.text;if(i!==a&&!t.loadedImages.includes(i)){r=!0,t.player.debug.log("Preloading thumb filename: ".concat(i));var s=t.thumbnails[0].urlPrefix+i,o=new Image;o.src=s,o.onload=function(){t.player.debug.log("Preloaded thumb filename: ".concat(i)),t.loadedImages.includes(i)||t.loadedImages.push(i),n()}}})),r||n()}}),300)}))}},{key:"getHigherQuality",value:function(e,t,i,n){var a=this;if(e<this.thumbnails.length-1){var s=t.naturalHeight;this.usingSprites&&(s=i.h),s<this.thumbContainerHeight&&setTimeout((function(){a.showingThumbFilename===n&&(a.player.debug.log("Showing higher quality thumb for: ".concat(n)),a.loadImage(e+1))}),300)}}},{key:"toggleThumbContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"toggleScrubbingContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"determineContainerAutoSizing",value:function(){(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}},{key:"setThumbContainerSizeAndPos",value:function(){if(this.sizeSpecifiedInCSS){if(this.elements.thumb.imageContainer.clientHeight>20&&this.elements.thumb.imageContainer.clientWidth<20){var e=Math.floor(this.elements.thumb.imageContainer.clientHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.width="".concat(e,"px")}else if(this.elements.thumb.imageContainer.clientHeight<20&&this.elements.thumb.imageContainer.clientWidth>20){var t=Math.floor(this.elements.thumb.imageContainer.clientWidth/this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(t,"px")}}else{var i=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(this.thumbContainerHeight,"px"),this.elements.thumb.imageContainer.style.width="".concat(i,"px")}this.setThumbContainerPos()}},{key:"setThumbContainerPos",value:function(){var e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),i=this.elements.thumb.container,n=t.left-e.left+10,a=t.right-e.left-i.clientWidth-10,s=this.mousePosX-e.left-i.clientWidth/2;s<n&&(s=n),s>a&&(s=a),i.style.left="".concat(s,"px")}},{key:"setScrubbingContainerSize",value:function(){var e=Mt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}),t=e.width,i=e.height;this.elements.scrubbing.container.style.width="".concat(t,"px"),this.elements.scrubbing.container.style.height="".concat(i,"px")}},{key:"setImageSizeAndOffset",value:function(e,t){if(this.usingSprites){var i=this.thumbContainerHeight/t.h;e.style.height="".concat(e.naturalHeight*i,"px"),e.style.width="".concat(e.naturalWidth*i,"px"),e.style.left="-".concat(t.x*i,"px"),e.style.top="-".concat(t.y*i,"px")}}},{key:"enabled",get:function(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}},{key:"currentImageContainer",get:function(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}},{key:"usingSprites",get:function(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}},{key:"thumbAspectRatio",get:function(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}},{key:"thumbContainerHeight",get:function(){return this.mouseDown?Mt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}).height:this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}},{key:"currentImageElement",get:function(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement},set:function(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}]),t}(),xt={insertElements:function(e,t){var i=this;Y(t)?pe(e,this.media,{src:t}):$(t)&&t.forEach((function(t){pe(e,i.media,t)}))},change:function(e){var t=this;le(e,"sources.length")?(Ve.cancelRequests.call(this),this.destroy.call(this,(function(){t.options.quality=[],me(t.media),t.media=null,G(t.elements.container)&&t.elements.container.removeAttribute("class");var i=e.sources,n=e.type,a=o(i,1)[0],s=a.provider,r=void 0===s?ut.html5:s,l=a.src,c="html5"===r?n:"div",u="html5"===r?{}:{src:l};Object.assign(t,{provider:r,type:n,supported:Ee.check(n,r,t.config.playsinline),media:he(c,u)}),t.elements.container.appendChild(t.media),Q(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),ae(e.poster)||(t.poster=e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.playsinline&&t.media.setAttribute("playsinline","")),yt.addStyleHook.call(t),t.isHTML5&&xt.insertElements.call(t,"source",i),t.config.title=e.title,Pt.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&xt.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&yt.build.call(t),t.isHTML5&&t.media.load(),ae(e.previewThumbnails)||(Object.assign(t.config.previewThumbnails,e.previewThumbnails),t.previewThumbnails&&t.previewThumbnails.loaded&&(t.previewThumbnails.destroy(),t.previewThumbnails=null),t.config.previewThumbnails.enabled&&(t.previewThumbnails=new Nt(t))),t.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};var It,Lt=function(){function t(i,n){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=Ee.touch,this.media=i,Y(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||J(this.media)||$(this.media))&&(this.media=this.media[0]),this.config=ce({},ot,t.defaults,n||{},function(){try{return JSON.parse(a.media.getAttribute("data-plyr-config"))}catch(e){return{}}}()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new mt(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",Ee),!W(this.media)&&G(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(Ee.check().api){var s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;var r=this.media.tagName.toLowerCase(),o=null,l=null;switch(r){case"div":if(o=this.media.querySelector("iframe"),G(o)){if(l=at(o.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?ut.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?ut.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=o,this.elements.container.className="",l.search.length){var c=["1","true"];c.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),c.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=c.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(ae(this.provider)||!Object.keys(ut).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=ht;break;case"video":case"audio":this.type=r,this.provider=ut.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=Ee.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new vt(this),this.storage=new $e(this),this.media.plyr=this,G(this.elements.container)||(this.elements.container=he("div",{tabindex:0}),ue(this.media,this.elements.container)),yt.migrateStyles.call(this),yt.addStyleHook.call(this),Pt.setup.call(this),this.config.debug&&xe.call(this,this.elements.container,this.config.events.join(" "),(function(e){a.debug.log("event: ".concat(e.type))})),this.fullscreen=new ft(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&yt.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Et(this)),this.isHTML5&&this.config.autoplay&&setTimeout((function(){return qe(a.play())}),10),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Nt(this))):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return i(t,[{key:"play",value:function(){var e=this;return X(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((function(){return e.ads.play()})).catch((function(){return qe(e.media.play())})),this.media.play()):null}},{key:"pause",value:function(){return this.playing&&X(this.media.pause)?this.media.pause():null}},{key:"togglePlay",value:function(e){return(Q(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):X(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime-=K(e)?e:this.config.seekTime}},{key:"forward",value:function(e){this.currentTime+=K(e)?e:this.config.seekTime}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(K(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){rt.toggle.call(this,e,!1)}},{key:"airplay",value:function(){Ee.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=we(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,n=be(this.elements.container,this.config.classNames.hideControls,i);if(n&&this.config.controls.includes("settings")&&!ae(this.config.settings)&&nt.toggleMenu.call(this,!1),n!==t){var a=n?"controlshidden":"controlsshown";Oe.call(this,this.media,a)}return!n}return!1}},{key:"on",value:function(e,t){xe.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){Le.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){Ie(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var n=function(){document.body.style.overflow="",t.embed=null,i?(Object.keys(t.elements).length&&(me(t.elements.buttons.play),me(t.elements.captions),me(t.elements.controls),me(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),X(e)&&e()):(_e.call(t),ge(t.elements.original,t.elements.container),Oe.call(t,t.elements.original,"destroyed",!0),X(e)&&e.call(t.elements.original),t.ready=!1,setTimeout((function(){t.elements=null,t.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(yt.toggleNativeControls.call(this,!0),n()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&X(this.embed.destroy)&&this.embed.destroy(),n()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(n),setTimeout(n,200))}}},{key:"supports",value:function(e){return Ee.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===ut.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===ut.youtube}},{key:"isVimeo",get:function(){return this.provider===ut.vimeo}},{key:"isVideo",get:function(){return this.type===ht}},{key:"isAudio",get:function(){return this.type===dt}},{key:"playing",get:function(){return Boolean(this.ready&&!this.paused&&!this.ended)}},{key:"paused",get:function(){return Boolean(this.media.paused)}},{key:"stopped",get:function(){return Boolean(this.paused&&0===this.currentTime)}},{key:"ended",get:function(){return Boolean(this.media.ended)}},{key:"currentTime",set:function(e){if(this.duration){var t=K(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log("Seeking to ".concat(this.currentTime," seconds"))}},get:function(){return Number(this.media.currentTime)}},{key:"buffered",get:function(){var e=this.media.buffered;return K(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}},{key:"seeking",get:function(){return Boolean(this.media.seeking)}},{key:"duration",get:function(){var e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=K(t)&&t!==1/0?t:0;return e||i}},{key:"volume",set:function(e){var t=e;Y(t)&&(t=Number(t)),K(t)||(t=this.storage.get("volume")),K(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!ae(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;Q(t)||(t=this.storage.get("muted")),Q(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return Boolean(this.media.muted)}},{key:"hasAudio",get:function(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}},{key:"speed",set:function(e){var t=this,i=null;K(e)&&(i=e),K(i)||(i=this.storage.get("speed")),K(i)||(i=this.config.speed.selected);var n=this.minimumSpeed,a=this.maximumSpeed;i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:255;return Math.min(Math.max(e,t),i)}(i,n,a),this.config.speed.selected=i,setTimeout((function(){t.media.playbackRate=i}),0)},get:function(){return Number(this.media.playbackRate)}},{key:"minimumSpeed",get:function(){return this.isYouTube?Math.min.apply(Math,l(this.options.speed)):this.isVimeo?.5:.0625}},{key:"maximumSpeed",get:function(){return this.isYouTube?Math.max.apply(Math,l(this.options.speed)):this.isVimeo?2:16}},{key:"quality",set:function(e){var t=this.config.quality,i=this.options.quality;if(i.length){var n=[!ae(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(K),a=!0;if(!i.includes(n)){var s=function(e,t){return $(e)&&e.length?e.reduce((function(e,i){return Math.abs(i-t)<Math.abs(e-t)?i:e})):null}(i,n);this.debug.warn("Unsupported quality option: ".concat(n,", using ").concat(s," instead")),n=s,a=!1}t.selected=n,this.media.quality=n,a&&this.storage.set({quality:n})}},get:function(){return this.media.quality}},{key:"loop",set:function(e){var t=Q(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t},get:function(){return Boolean(this.media.loop)}},{key:"source",set:function(e){xt.change.call(this,e)},get:function(){return this.media.currentSrc}},{key:"download",get:function(){var e=this.config.urls.download;return ne(e)?e:this.source},set:function(e){ne(e)&&(this.config.urls.download=e,nt.setDownloadUrl.call(this))}},{key:"poster",set:function(e){this.isVideo?yt.setPoster.call(this,e,!1).catch((function(){})):this.debug.warn("Poster can only be set for video")},get:function(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}},{key:"ratio",get:function(){if(!this.isVideo)return null;var e=He(Fe.call(this));return $(e)?e.join(":"):e},set:function(e){this.isVideo?Y(e)&&De(e)?(this.config.ratio=e,Re.call(this)):this.debug.error("Invalid aspect ratio specified (".concat(e,")")):this.debug.warn("Aspect ratio can only be set for video")}},{key:"autoplay",set:function(e){var t=Q(e)?e:this.config.autoplay;this.config.autoplay=t},get:function(){return Boolean(this.config.autoplay)}},{key:"currentTrack",set:function(e){rt.set.call(this,e,!1)},get:function(){var e=this.captions,t=e.toggled,i=e.currentTrack;return t?i:-1}},{key:"language",set:function(e){rt.setLanguage.call(this,e,!1)},get:function(){return(rt.getCurrentTrack.call(this)||{}).language}},{key:"pip",set:function(e){if(Ee.pip){var t=Q(e)?e:!this.pip;X(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?lt:ct),X(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}},get:function(){return Ee.pip?ae(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===lt:null}}],[{key:"supported",value:function(e,t,i){return Ee.check(e,t,i)}},{key:"loadSprite",value:function(e,t){return Ge(e,t)}},{key:"setup",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null;return Y(e)?n=Array.from(document.querySelectorAll(e)):J(e)?n=Array.from(e):$(e)&&(n=e.filter(G)),ae(n)?null:n.map((function(e){return new t(e,i)}))}}]),t}();return Lt.defaults=(It=ot,JSON.parse(JSON.stringify(It))),Lt}));
4
- //# sourceMappingURL=plyr.min.js.map
1
  "object"==typeof navigator&&function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):(e=e||self).Plyr=t()}(this,(function(){"use strict";function e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function t(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function i(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}function n(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function a(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function s(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?a(Object(i),!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):a(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function r(e,t){if(null==e)return{};var i,n,a=function(e,t){if(null==e)return{};var i,n,a={},s=Object.keys(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||(a[i]=e[i]);return a}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)i=s[n],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(a[i]=e[i])}return a}function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"==typeof Symbol||!(Symbol.iterator in Object(e)))return;var i=[],n=!0,a=!1,s=void 0;try{for(var r,o=e[Symbol.iterator]();!(n=(r=o.next()).done)&&(i.push(r.value),!t||i.length!==t);n=!0);}catch(e){a=!0,s=e}finally{try{n||null==o.return||o.return()}finally{if(a)throw s}}return i}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||c(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return u(e,t);var i=Object.prototype.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(i):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=new Array(t);i<t;i++)n[i]=e[i];return n}function d(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function h(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function p(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function m(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?p(Object(i),!0).forEach((function(t){h(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):p(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}var f={addCSS:!0,thumbWidth:15,watch:!0};function g(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}var y=function(e){return null!=e?e.constructor:null},v=function(e,t){return!!(e&&t&&e instanceof t)},b=function(e){return null==e},w=function(e){return y(e)===Object},k=function(e){return y(e)===String},T=function(e){return Array.isArray(e)},C=function(e){return v(e,NodeList)},A=k,S=T,P=C,E=function(e){return v(e,Element)},M=function(e){return v(e,Event)},N=function(e){return b(e)||(k(e)||T(e)||C(e))&&!e.length||w(e)&&!Object.keys(e).length};function x(e,t){if(1>t){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var I,L,O,_=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),E(t)?this.element=t:A(t)&&(this.element=document.querySelector(t)),E(this.element)&&N(this.element.rangeTouch)&&(this.config=m({},f,{},i),this.init())}return function(e,t,i){t&&d(e.prototype,t),i&&d(e,i)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!M(t))return null;var i,n=t.target,a=t.changedTouches[0],s=parseFloat(n.getAttribute("min"))||0,r=parseFloat(n.getAttribute("max"))||100,o=parseFloat(n.getAttribute("step"))||1,l=n.getBoundingClientRect(),c=100/l.width*(this.config.thumbWidth/2)/100;return 0>(i=100/l.width*(a.clientX-l.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*c:50<i&&(i+=2*(i-50)*c),s+x(i/100*(r-s),o)}},{key:"set",value:function(t){e.enabled&&M(t)&&!t.target.disabled&&(t.preventDefault(),t.target.value=this.get(t),function(e,t){if(e&&t){var i=new Event(t,{bubbles:!0});e.dispatchEvent(i)}}(t.target,"touchend"===t.type?"change":"input"))}}],[{key:"setup",value:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},n=null;if(N(t)||A(t)?n=Array.from(document.querySelectorAll(A(t)?t:'input[type="range"]')):E(t)?n=[t]:P(t)?n=Array.from(t):S(t)&&(n=t.filter(E)),N(n))return null;var a=m({},f,{},i);if(A(t)&&a.watch){var s=new MutationObserver((function(i){Array.from(i).forEach((function(i){Array.from(i.addedNodes).forEach((function(i){E(i)&&g(i,t)&&new e(i,a)}))}))}));s.observe(document.body,{childList:!0,subtree:!0})}return n.map((function(t){return new e(t,i)}))}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),e}(),j=function(e){return null!=e?e.constructor:null},q=function(e,t){return Boolean(e&&t&&e instanceof t)},D=function(e){return null==e},H=function(e){return j(e)===Object},F=function(e){return j(e)===String},R=function(e){return j(e)===Function},V=function(e){return Array.isArray(e)},B=function(e){return q(e,NodeList)},U=function(e){return D(e)||(F(e)||V(e)||B(e))&&!e.length||H(e)&&!Object.keys(e).length},W=D,z=H,K=function(e){return j(e)===Number&&!Number.isNaN(e)},Y=F,Q=function(e){return j(e)===Boolean},X=R,$=V,J=B,G=function(e){return q(e,Element)},Z=function(e){return q(e,Event)},ee=function(e){return q(e,KeyboardEvent)},te=function(e){return q(e,TextTrack)||!D(e)&&F(e.kind)},ie=function(e){return q(e,Promise)&&R(e.then)},ne=function(e){if(q(e,window.URL))return!0;if(!F(e))return!1;var t=e;e.startsWith("http://")&&e.startsWith("https://")||(t="http://".concat(e));try{return!U(new URL(t).hostname)}catch(e){return!1}},ae=U,se=(I=document.createElement("span"),L={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},O=Object.keys(L).find((function(e){return void 0!==I.style[e]})),!!Y(O)&&L[O]);function re(e,t){setTimeout((function(){try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}var oe={isIE:
2
  /* @cc_on!@ */
3
+ !!document.documentMode,isEdge:window.navigator.userAgent.includes("Edge"),isWebkit:"WebkitAppearance"in document.documentElement.style&&!/Edge/.test(navigator.userAgent),isIPhone:/(iPhone|iPod)/gi.test(navigator.platform),isIos:/(iPad|iPhone|iPod)/gi.test(navigator.platform)};function le(e,t){return t.split(".").reduce((function(e,t){return e&&e[t]}),e)}function ce(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length,i=new Array(t>1?t-1:0),a=1;a<t;a++)i[a-1]=arguments[a];if(!i.length)return e;var s=i.shift();return z(s)?(Object.keys(s).forEach((function(t){z(s[t])?(Object.keys(e).includes(t)||Object.assign(e,n({},t,{})),ce(e[t],s[t])):Object.assign(e,n({},t,s[t]))})),ce.apply(void 0,[e].concat(i))):e}function ue(e,t){var i=e.length?e:[e];Array.from(i).reverse().forEach((function(e,i){var n=i>0?t.cloneNode(!0):t,a=e.parentNode,s=e.nextSibling;n.appendChild(e),s?a.insertBefore(n,s):a.appendChild(n)}))}function de(e,t){G(e)&&!ae(t)&&Object.entries(t).filter((function(e){var t=o(e,2)[1];return!W(t)})).forEach((function(t){var i=o(t,2),n=i[0],a=i[1];return e.setAttribute(n,a)}))}function he(e,t,i){var n=document.createElement(e);return z(t)&&de(n,t),Y(i)&&(n.innerText=i),n}function pe(e,t,i,n){G(t)&&t.appendChild(he(e,i,n))}function me(e){J(e)||$(e)?Array.from(e).forEach(me):G(e)&&G(e.parentNode)&&e.parentNode.removeChild(e)}function fe(e){if(G(e))for(var t=e.childNodes.length;t>0;)e.removeChild(e.lastChild),t-=1}function ge(e,t){return G(t)&&G(t.parentNode)&&G(e)?(t.parentNode.replaceChild(e,t),e):null}function ye(e,t){if(!Y(e)||ae(e))return{};var i={},n=ce({},t);return e.split(",").forEach((function(e){var t=e.trim(),a=t.replace(".",""),s=t.replace(/[[\]]/g,"").split("="),r=o(s,1)[0],l=s.length>1?s[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":Y(n.class)?i.class="".concat(n.class," ").concat(a):i.class=a;break;case"#":i.id=t.replace("#","");break;case"[":i[r]=l}})),ce(n,i)}function ve(e,t){if(G(e)){var i=t;Q(i)||(i=!e.hidden),e.hidden=i}}function be(e,t,i){if(J(e))return Array.from(e).map((function(e){return be(e,t,i)}));if(G(e)){var n="toggle";return void 0!==i&&(n=i?"add":"remove"),e.classList[n](t),e.classList.contains(t)}return!1}function we(e,t){return G(e)&&e.classList.contains(t)}function ke(e,t){var i=Element.prototype;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function Te(e){return this.elements.container.querySelectorAll(e)}function Ce(e){return this.elements.container.querySelector(e)}function Ae(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];G(e)&&(e.focus({preventScroll:!0}),t&&be(e,this.config.classNames.tabFocus))}var Se,Pe={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},Ee={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check:function(e,t,i){var n=oe.isIPhone&&i&&Ee.playsinline,a=Ee[e]||"html5"!==t;return{api:a,ui:a&&Ee.rangeInput&&("video"!==e||!oe.isIPhone||n)}},pip:!(oe.isIPhone||!X(he("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||he("video").disablePictureInPicture)),airplay:X(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime:function(e){if(ae(e))return!1;var t=o(e.split("/"),1)[0],i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(Pe).includes(i)&&(i+='; codecs="'.concat(Pe[e],'"'));try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(Se=document.createElement("input"),Se.type="range","range"===Se.type),touch:"ontouchstart"in document.documentElement,transitions:!1!==se,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},Me=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){return e=!0,null}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e}();function Ne(e,t,i){var n=this,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=arguments.length>5&&void 0!==arguments[5]&&arguments[5];if(e&&"addEventListener"in e&&!ae(t)&&X(i)){var o=t.split(" "),l=r;Me&&(l={passive:s,capture:r}),o.forEach((function(t){n&&n.eventListeners&&a&&n.eventListeners.push({element:e,type:t,callback:i,options:l}),e[a?"addEventListener":"removeEventListener"](t,i,l)}))}}function xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ne.call(this,e,t,i,!0,n,a)}function Ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2?arguments[2]:void 0,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],a=arguments.length>4&&void 0!==arguments[4]&&arguments[4];Ne.call(this,e,t,i,!1,n,a)}function Le(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],s=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r=function r(){Ie(e,i,r,a,s);for(var o=arguments.length,l=new Array(o),c=0;c<o;c++)l[c]=arguments[c];n.apply(t,l)};Ne.call(this,e,i,r,!0,a,s)}function Oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if(G(e)&&!ae(t)){var a=new CustomEvent(t,{bubbles:i,detail:s({},n,{plyr:this})});e.dispatchEvent(a)}}function _e(){this&&this.eventListeners&&(this.eventListeners.forEach((function(e){var t=e.element,i=e.type,n=e.callback,a=e.options;t.removeEventListener(i,n,a)})),this.eventListeners=[])}function je(){var e=this;return new Promise((function(t){return e.ready?setTimeout(t,0):xe.call(e,e.elements.container,"ready",t)})).then((function(){}))}function qe(e){ie(e)&&e.then(null,(function(){}))}function De(e){return!!($(e)||Y(e)&&e.includes(":"))&&($(e)?e:e.split(":")).map(Number).every(K)}function He(e){if(!$(e)||!e.every(K))return null;var t=o(e,2),i=t[0],n=t[1],a=function e(t,i){return 0===i?t:e(i,t%i)}(i,n);return[i/a,n/a]}function Fe(e){var t=function(e){return De(e)?e.split(":").map(Number):null},i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!ae(this.embed)&&$(this.embed.ratio)&&(i=this.embed.ratio),null===i&&this.isHTML5){var n=this.media;i=He([n.videoWidth,n.videoHeight])}return i}function Re(e){if(!this.isVideo)return{};var t=this.elements.wrapper,i=Fe.call(this,e),n=o($(i)?i:[0,0],2),a=100/n[0]*n[1];if(t.style.paddingBottom="".concat(a,"%"),this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){var s=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),r=(s-a)/(s/50);this.media.style.transform="translateY(-".concat(r,"%)")}else this.isHTML5&&t.classList.toggle(this.config.classNames.videoFixedRatio,null!==i);return{padding:a,ratio:i}}var Ve={getSources:function(){var e=this;return this.isHTML5?Array.from(this.media.querySelectorAll("source")).filter((function(t){var i=t.getAttribute("type");return!!ae(i)||Ee.mime.call(e,i)})):[]},getQualityOptions:function(){return this.config.quality.forced?this.config.quality.options:Ve.getSources.call(this).map((function(e){return Number(e.getAttribute("size"))})).filter(Boolean)},setup:function(){if(this.isHTML5){var e=this;e.options.speed=e.config.speed.options,ae(this.config.ratio)||Re.call(e),Object.defineProperty(e.media,"quality",{get:function(){var t=Ve.getSources.call(e).find((function(t){return t.getAttribute("src")===e.source}));return t&&Number(t.getAttribute("size"))},set:function(t){if(e.quality!==t){if(e.config.quality.forced&&X(e.config.quality.onChange))e.config.quality.onChange(t);else{var i=Ve.getSources.call(e).find((function(e){return Number(e.getAttribute("size"))===t}));if(!i)return;var n=e.media,a=n.currentTime,s=n.paused,r=n.preload,o=n.readyState,l=n.playbackRate;e.media.src=i.getAttribute("src"),("none"!==r||o)&&(e.once("loadedmetadata",(function(){e.speed=l,e.currentTime=a,s||qe(e.play())})),e.media.load())}Oe.call(e,e.media,"qualitychange",!1,{quality:t})}}})}},cancelRequests:function(){this.isHTML5&&(me(Ve.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function Be(e){return $(e)?e.filter((function(t,i){return e.indexOf(t)===i})):e}function Ue(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),n=1;n<t;n++)i[n-1]=arguments[n];return ae(e)?e:e.toString().replace(/{(\d+)}/g,(function(e,t){return i[t].toString()}))}var We=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";return e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString())},ze=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.toString().replace(/\w\S*/g,(function(e){return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()}))};function Ke(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return t=We(t,"-"," "),t=We(t,"_"," "),t=ze(t),We(t," ","")}function Ye(e){var t=document.createElement("div");return t.appendChild(e),t.innerHTML}var Qe={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},Xe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(ae(e)||ae(t))return"";var i=le(t.i18n,e);if(ae(i))return Object.keys(Qe).includes(e)?Qe[e]:"";var n={"{seektime}":t.seekTime,"{title}":t.title};return Object.entries(n).forEach((function(e){var t=o(e,2),n=t[0],a=t[1];i=We(i,n,a)})),i},$e=function(){function t(i){e(this,t),this.enabled=i.config.storage.enabled,this.key=i.config.storage.key}return i(t,[{key:"get",value:function(e){if(!t.supported||!this.enabled)return null;var i=window.localStorage.getItem(this.key);if(ae(i))return null;var n=JSON.parse(i);return Y(e)&&e.length?n[e]:n}},{key:"set",value:function(e){if(t.supported&&this.enabled&&z(e)){var i=this.get();ae(i)&&(i={}),ce(i,e),window.localStorage.setItem(this.key,JSON.stringify(i))}}}],[{key:"supported",get:function(){try{if(!("localStorage"in window))return!1;return window.localStorage.setItem("___test","___test"),window.localStorage.removeItem("___test"),!0}catch(e){return!1}}}]),t}();function Je(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"text";return new Promise((function(i,n){try{var a=new XMLHttpRequest;if(!("withCredentials"in a))return;a.addEventListener("load",(function(){if("text"===t)try{i(JSON.parse(a.responseText))}catch(e){i(a.responseText)}else i(a.response)})),a.addEventListener("error",(function(){throw new Error(a.status)})),a.open("GET",e,!0),a.responseType=t,a.send()}catch(e){n(e)}}))}function Ge(e,t){if(Y(e)){var i=Y(t),n=function(){return null!==document.getElementById(t)},a=function(e,t){e.innerHTML=t,i&&n()||document.body.insertAdjacentElement("afterbegin",e)};if(!i||!n()){var s=$e.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),i&&r.setAttribute("id",t),s){var o=window.localStorage.getItem("".concat("cache","-").concat(t));if(null!==o){var l=JSON.parse(o);a(r,l.content)}}Je(e).then((function(e){ae(e)||(s&&window.localStorage.setItem("".concat("cache","-").concat(t),JSON.stringify({content:e})),a(r,e))})).catch((function(){}))}}}var Ze=function(e){return Math.trunc(e/60/60%60,10)},et=function(e){return Math.trunc(e/60%60,10)},tt=function(e){return Math.trunc(e%60,10)};function it(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(!K(e))return it(void 0,t,i);var n=function(e){return"0".concat(e).slice(-2)},a=Ze(e),s=et(e),r=tt(e);return a=t||a>0?"".concat(a,":"):"","".concat(i&&e>0?"-":"").concat(a).concat(n(s),":").concat(n(r))}var nt={getIconUrl:function(){var e=new URL(this.config.iconUrl,window.location).host!==window.location.host||oe.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:e}},findElements:function(){try{return this.elements.controls=Ce.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:Te.call(this,this.config.selectors.buttons.play),pause:Ce.call(this,this.config.selectors.buttons.pause),restart:Ce.call(this,this.config.selectors.buttons.restart),rewind:Ce.call(this,this.config.selectors.buttons.rewind),fastForward:Ce.call(this,this.config.selectors.buttons.fastForward),mute:Ce.call(this,this.config.selectors.buttons.mute),pip:Ce.call(this,this.config.selectors.buttons.pip),airplay:Ce.call(this,this.config.selectors.buttons.airplay),settings:Ce.call(this,this.config.selectors.buttons.settings),captions:Ce.call(this,this.config.selectors.buttons.captions),fullscreen:Ce.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=Ce.call(this,this.config.selectors.progress),this.elements.inputs={seek:Ce.call(this,this.config.selectors.inputs.seek),volume:Ce.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:Ce.call(this,this.config.selectors.display.buffer),currentTime:Ce.call(this,this.config.selectors.display.currentTime),duration:Ce.call(this,this.config.selectors.display.duration)},G(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(".".concat(this.config.classNames.tooltip))),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon:function(e,t){var i=nt.getIconUrl.call(this),n="".concat(i.cors?"":i.url,"#").concat(this.config.iconPrefix),a=document.createElementNS("http://www.w3.org/2000/svg","svg");de(a,ce(t,{"aria-hidden":"true",focusable:"false"}));var s=document.createElementNS("http://www.w3.org/2000/svg","use"),r="".concat(n,"-").concat(e);return"href"in s&&s.setAttributeNS("http://www.w3.org/1999/xlink","href",r),s.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),a.appendChild(s),a},createLabel:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=Xe(e,this.config),n=s({},t,{class:[t.class,this.config.classNames.hidden].filter(Boolean).join(" ")});return he("span",n,i)},createBadge:function(e){if(ae(e))return null;var t=he("span",{class:this.config.classNames.menu.value});return t.appendChild(he("span",{class:this.config.classNames.menu.badge},e)),t},createButton:function(e,t){var i=this,n=ce({},t),a=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=e.toString();return(t=Ke(t)).charAt(0).toLowerCase()+t.slice(1)}(e),s={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((function(e){Object.keys(n).includes(e)&&(s[e]=n[e],delete n[e])})),"button"!==s.element||Object.keys(n).includes("type")||(n.type="button"),Object.keys(n).includes("class")?n.class.split(" ").some((function(e){return e===i.config.classNames.control}))||ce(n,{class:"".concat(n.class," ").concat(this.config.classNames.control)}):n.class=this.config.classNames.control,e){case"play":s.toggle=!0,s.label="play",s.labelPressed="pause",s.icon="play",s.iconPressed="pause";break;case"mute":s.toggle=!0,s.label="mute",s.labelPressed="unmute",s.icon="volume",s.iconPressed="muted";break;case"captions":s.toggle=!0,s.label="enableCaptions",s.labelPressed="disableCaptions",s.icon="captions-off",s.iconPressed="captions-on";break;case"fullscreen":s.toggle=!0,s.label="enterFullscreen",s.labelPressed="exitFullscreen",s.icon="enter-fullscreen",s.iconPressed="exit-fullscreen";break;case"play-large":n.class+=" ".concat(this.config.classNames.control,"--overlaid"),a="play",s.label="play",s.icon="play";break;default:ae(s.label)&&(s.label=a),ae(s.icon)&&(s.icon=e)}var r=he(s.element);return s.toggle?(r.appendChild(nt.createIcon.call(this,s.iconPressed,{class:"icon--pressed"})),r.appendChild(nt.createIcon.call(this,s.icon,{class:"icon--not-pressed"})),r.appendChild(nt.createLabel.call(this,s.labelPressed,{class:"label--pressed"})),r.appendChild(nt.createLabel.call(this,s.label,{class:"label--not-pressed"}))):(r.appendChild(nt.createIcon.call(this,s.icon)),r.appendChild(nt.createLabel.call(this,s.label))),ce(n,ye(this.config.selectors.buttons[a],n)),de(r,n),"play"===a?($(this.elements.buttons[a])||(this.elements.buttons[a]=[]),this.elements.buttons[a].push(r)):this.elements.buttons[a]=r,r},createRange:function(e,t){var i=he("input",ce(ye(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":Xe(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,nt.updateRangeFill.call(this,i),_.setup(i),i},createProgress:function(e,t){var i=he("progress",ce(ye(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild(he("span",null,"0"));var n={played:"played",buffer:"buffered"}[e],a=n?Xe(n,this.config):"";i.innerText="% ".concat(a.toLowerCase())}return this.elements.display[e]=i,i},createTime:function(e,t){var i=ye(this.config.selectors.display[e],t),n=he("div",ce(i,{class:"".concat(i.class?i.class:""," ").concat(this.config.classNames.display.time," ").trim(),"aria-label":Xe(e,this.config)}),"00:00");return this.elements.display[e]=n,n},bindMenuItemShortcuts:function(e,t){var i=this;xe.call(this,e,"keydown keyup",(function(n){if([32,38,39,40].includes(n.which)&&(n.preventDefault(),n.stopPropagation(),"keydown"!==n.type)){var a,s=ke(e,'[role="menuitemradio"]');if(!s&&[32,39].includes(n.which))nt.showMenuPanel.call(i,t,!0);else 32!==n.which&&(40===n.which||s&&39===n.which?(a=e.nextElementSibling,G(a)||(a=e.parentNode.firstElementChild)):(a=e.previousElementSibling,G(a)||(a=e.parentNode.lastElementChild)),Ae.call(i,a,!0))}}),!1),xe.call(this,e,"keyup",(function(e){13===e.which&&nt.focusFirstMenuItem.call(i,null,!0)}))},createMenuItem:function(e){var t=this,i=e.value,n=e.list,a=e.type,s=e.title,r=e.badge,o=void 0===r?null:r,l=e.checked,c=void 0!==l&&l,u=ye(this.config.selectors.inputs[a]),d=he("button",ce(u,{type:"button",role:"menuitemradio",class:"".concat(this.config.classNames.control," ").concat(u.class?u.class:"").trim(),"aria-checked":c,value:i})),h=he("span");h.innerHTML=s,G(o)&&h.appendChild(o),d.appendChild(h),Object.defineProperty(d,"checked",{enumerable:!0,get:function(){return"true"===d.getAttribute("aria-checked")},set:function(e){e&&Array.from(d.parentNode.children).filter((function(e){return ke(e,'[role="menuitemradio"]')})).forEach((function(e){return e.setAttribute("aria-checked","false")})),d.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(d,"click keyup",(function(e){if(!ee(e)||32===e.which){switch(e.preventDefault(),e.stopPropagation(),d.checked=!0,a){case"language":t.currentTrack=Number(i);break;case"quality":t.quality=i;break;case"speed":t.speed=parseFloat(i)}nt.showMenuPanel.call(t,"home",ee(e))}}),a,!1),nt.bindMenuItemShortcuts.call(this,d,a),n.appendChild(d)},formatTime:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!K(e))return e;var i=Ze(this.duration)>0;return it(e,i,t)},updateTimeDisplay:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];G(e)&&K(t)&&(e.innerText=nt.formatTime(t,i))},updateVolume:function(){this.supported.ui&&(G(this.elements.inputs.volume)&&nt.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),G(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;G(e)&&(e.value=t,nt.updateRangeFill.call(this,e))},updateProgress:function(e){var t=this;if(this.supported.ui&&Z(e)){var i,n,a=0;if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":i=this.currentTime,n=this.duration,a=0===i||0===n||Number.isNaN(i)||Number.isNaN(n)?0:(i/n*100).toFixed(2),"timeupdate"===e.type&&nt.setRange.call(this,this.elements.inputs.seek,a);break;case"playing":case"progress":!function(e,i){var n=K(i)?i:0,a=G(e)?e:t.elements.display.buffer;if(G(a)){a.value=n;var s=a.getElementsByTagName("span")[0];G(s)&&(s.childNodes[0].nodeValue=n)}}(this.elements.display.buffer,100*this.buffered)}}},updateRangeFill:function(e){var t=Z(e)?e.target:e;if(G(t)&&"range"===t.getAttribute("type")){if(ke(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);var i=nt.formatTime(this.currentTime),n=nt.formatTime(this.duration),a=Xe("seekLabel",this.config);t.setAttribute("aria-valuetext",a.replace("{currentTime}",i).replace("{duration}",n))}else if(ke(t,this.config.selectors.inputs.volume)){var s=100*t.value;t.setAttribute("aria-valuenow",s),t.setAttribute("aria-valuetext","".concat(s.toFixed(1),"%"))}else t.setAttribute("aria-valuenow",t.value);oe.isWebkit&&t.style.setProperty("--value","".concat(t.value/t.max*100,"%"))}},updateSeekTooltip:function(e){var t=this;if(this.config.tooltips.seek&&G(this.elements.inputs.seek)&&G(this.elements.display.seekTooltip)&&0!==this.duration){var i="".concat(this.config.classNames.tooltip,"--visible"),n=function(e){return be(t.elements.display.seekTooltip,i,e)};if(this.touch)n(!1);else{var a=0,s=this.elements.progress.getBoundingClientRect();if(Z(e))a=100/s.width*(e.pageX-s.left);else{if(!we(this.elements.display.seekTooltip,i))return;a=parseFloat(this.elements.display.seekTooltip.style.left,10)}a<0?a=0:a>100&&(a=100),nt.updateTimeDisplay.call(this,this.elements.display.seekTooltip,this.duration/100*a),this.elements.display.seekTooltip.style.left="".concat(a,"%"),Z(e)&&["mouseenter","mouseleave"].includes(e.type)&&n("mouseenter"===e.type)}}},timeUpdate:function(e){var t=!G(this.elements.display.duration)&&this.config.invertTime;nt.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||nt.updateProgress.call(this,e)},durationUpdate:function(){if(this.supported.ui&&(this.config.invertTime||!this.currentTime)){if(this.duration>=Math.pow(2,32))return ve(this.elements.display.currentTime,!0),void ve(this.elements.progress,!0);G(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);var e=G(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&nt.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&nt.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),nt.updateSeekTooltip.call(this)}},toggleMenuButton:function(e,t){ve(this.elements.settings.buttons[e],!t)},updateSetting:function(e,t,i){var n=this.elements.settings.panels[e],a=null,s=t;if("captions"===e)a=this.currentTrack;else{if(a=ae(i)?this[e]:i,ae(a)&&(a=this.config[e].default),!ae(this.options[e])&&!this.options[e].includes(a))return void this.debug.warn("Unsupported value of '".concat(a,"' for ").concat(e));if(!this.config[e].options.includes(a))return void this.debug.warn("Disabled value of '".concat(a,"' for ").concat(e))}if(G(s)||(s=n&&n.querySelector('[role="menu"]')),G(s)){this.elements.settings.buttons[e].querySelector(".".concat(this.config.classNames.menu.value)).innerHTML=nt.getLabel.call(this,e,a);var r=s&&s.querySelector('[value="'.concat(a,'"]'));G(r)&&(r.checked=!0)}},getLabel:function(e,t){switch(e){case"speed":return 1===t?Xe("normal",this.config):"".concat(t,"&times;");case"quality":if(K(t)){var i=Xe("qualityLabel.".concat(t),this.config);return i.length?i:"".concat(t,"p")}return ze(t);case"captions":return rt.getLabel.call(this);default:return null}},setQualityMenu:function(e){var t=this;if(G(this.elements.settings.panels.quality)){var i=this.elements.settings.panels.quality.querySelector('[role="menu"]');$(e)&&(this.options.quality=Be(e).filter((function(e){return t.config.quality.options.includes(e)})));var n=!ae(this.options.quality)&&this.options.quality.length>1;if(nt.toggleMenuButton.call(this,"quality",n),fe(i),nt.checkMenu.call(this),n){var a=function(e){var i=Xe("qualityBadge.".concat(e),t.config);return i.length?nt.createBadge.call(t,i):null};this.options.quality.sort((function(e,i){var n=t.config.quality.options;return n.indexOf(e)>n.indexOf(i)?1:-1})).forEach((function(e){nt.createMenuItem.call(t,{value:e,list:i,type:"quality",title:nt.getLabel.call(t,"quality",e),badge:a(e)})})),nt.updateSetting.call(this,"quality",i)}}},setCaptionsMenu:function(){var e=this;if(G(this.elements.settings.panels.captions)){var t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=rt.getTracks.call(this),n=Boolean(i.length);if(nt.toggleMenuButton.call(this,"captions",n),fe(t),nt.checkMenu.call(this),n){var a=i.map((function(i,n){return{value:n,checked:e.captions.toggled&&e.currentTrack===n,title:rt.getLabel.call(e,i),badge:i.language&&nt.createBadge.call(e,i.language.toUpperCase()),list:t,type:"language"}}));a.unshift({value:-1,checked:!this.captions.toggled,title:Xe("disabled",this.config),list:t,type:"language"}),a.forEach(nt.createMenuItem.bind(this)),nt.updateSetting.call(this,"captions",t)}}},setSpeedMenu:function(){var e=this;if(G(this.elements.settings.panels.speed)){var t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((function(t){return t>=e.minimumSpeed&&t<=e.maximumSpeed}));var i=!ae(this.options.speed)&&this.options.speed.length>1;nt.toggleMenuButton.call(this,"speed",i),fe(t),nt.checkMenu.call(this),i&&(this.options.speed.forEach((function(i){nt.createMenuItem.call(e,{value:i,list:t,type:"speed",title:nt.getLabel.call(e,"speed",i)})})),nt.updateSetting.call(this,"speed",t))}},checkMenu:function(){var e=this.elements.settings.buttons,t=!ae(e)&&Object.values(e).some((function(e){return!e.hidden}));ve(this.elements.settings.menu,!t)},focusFirstMenuItem:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.elements.settings.popup.hidden){var i=e;G(i)||(i=Object.values(this.elements.settings.panels).find((function(e){return!e.hidden})));var n=i.querySelector('[role^="menuitem"]');Ae.call(this,n,t)}},toggleMenu:function(e){var t=this.elements.settings.popup,i=this.elements.buttons.settings;if(G(t)&&G(i)){var n=t.hidden,a=n;if(Q(e))a=e;else if(ee(e)&&27===e.which)a=!1;else if(Z(e)){var s=X(e.composedPath)?e.composedPath()[0]:e.target,r=t.contains(s);if(r||!r&&e.target!==i&&a)return}i.setAttribute("aria-expanded",a),ve(t,!a),be(this.elements.container,this.config.classNames.menu.open,a),a&&ee(e)?nt.focusFirstMenuItem.call(this,null,!0):a||n||Ae.call(this,i,ee(e))}},getMenuSize:function(e){var t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);var i=t.scrollWidth,n=t.scrollHeight;return me(t),{width:i,height:n}},showMenuPanel:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=this.elements.container.querySelector("#plyr-settings-".concat(this.id,"-").concat(t));if(G(n)){var a=n.parentNode,s=Array.from(a.children).find((function(e){return!e.hidden}));if(Ee.transitions&&!Ee.reducedMotion){a.style.width="".concat(s.scrollWidth,"px"),a.style.height="".concat(s.scrollHeight,"px");var r=nt.getMenuSize.call(this,n),o=function t(i){i.target===a&&["width","height"].includes(i.propertyName)&&(a.style.width="",a.style.height="",Ie.call(e,a,se,t))};xe.call(this,a,se,o),a.style.width="".concat(r.width,"px"),a.style.height="".concat(r.height,"px")}ve(s,!0),ve(n,!1),nt.focusFirstMenuItem.call(this,n,i)}},setDownloadUrl:function(){var e=this.elements.buttons.download;G(e)&&e.setAttribute("href",this.download)},create:function(e){var t=this,i=nt.bindMenuItemShortcuts,n=nt.createButton,a=nt.createProgress,s=nt.createRange,r=nt.createTime,o=nt.setQualityMenu,l=nt.setSpeedMenu,c=nt.showMenuPanel;this.elements.controls=null,this.config.controls.includes("play-large")&&this.elements.container.appendChild(n.call(this,"play-large"));var u=he("div",ye(this.config.selectors.controls.wrapper));this.elements.controls=u;var d={class:"plyr__controls__item"};return Be(this.config.controls).forEach((function(o){if("restart"===o&&u.appendChild(n.call(t,"restart",d)),"rewind"===o&&u.appendChild(n.call(t,"rewind",d)),"play"===o&&u.appendChild(n.call(t,"play",d)),"fast-forward"===o&&u.appendChild(n.call(t,"fast-forward",d)),"progress"===o){var l=he("div",{class:"".concat(d.class," plyr__progress__container")}),h=he("div",ye(t.config.selectors.progress));if(h.appendChild(s.call(t,"seek",{id:"plyr-seek-".concat(e.id)})),h.appendChild(a.call(t,"buffer")),t.config.tooltips.seek){var p=he("span",{class:t.config.classNames.tooltip},"00:00");h.appendChild(p),t.elements.display.seekTooltip=p}t.elements.progress=h,l.appendChild(t.elements.progress),u.appendChild(l)}if("current-time"===o&&u.appendChild(r.call(t,"currentTime",d)),"duration"===o&&u.appendChild(r.call(t,"duration",d)),"mute"===o||"volume"===o){var m=t.elements.volume;if(G(m)&&u.contains(m)||(m=he("div",ce({},d,{class:"".concat(d.class," plyr__volume").trim()})),t.elements.volume=m,u.appendChild(m)),"mute"===o&&m.appendChild(n.call(t,"mute")),"volume"===o&&!oe.isIos){var f={max:1,step:.05,value:t.config.volume};m.appendChild(s.call(t,"volume",ce(f,{id:"plyr-volume-".concat(e.id)})))}}if("captions"===o&&u.appendChild(n.call(t,"captions",d)),"settings"===o&&!ae(t.config.settings)){var g=he("div",ce({},d,{class:"".concat(d.class," plyr__menu").trim(),hidden:""}));g.appendChild(n.call(t,"settings",{"aria-haspopup":!0,"aria-controls":"plyr-settings-".concat(e.id),"aria-expanded":!1}));var y=he("div",{class:"plyr__menu__container",id:"plyr-settings-".concat(e.id),hidden:""}),v=he("div"),b=he("div",{id:"plyr-settings-".concat(e.id,"-home")}),w=he("div",{role:"menu"});b.appendChild(w),v.appendChild(b),t.elements.settings.panels.home=b,t.config.settings.forEach((function(n){var a=he("button",ce(ye(t.config.selectors.buttons.settings),{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--forward"),role:"menuitem","aria-haspopup":!0,hidden:""}));i.call(t,a,n),xe.call(t,a,"click",(function(){c.call(t,n,!1)}));var s=he("span",null,Xe(n,t.config)),r=he("span",{class:t.config.classNames.menu.value});r.innerHTML=e[n],s.appendChild(r),a.appendChild(s),w.appendChild(a);var o=he("div",{id:"plyr-settings-".concat(e.id,"-").concat(n),hidden:""}),l=he("button",{type:"button",class:"".concat(t.config.classNames.control," ").concat(t.config.classNames.control,"--back")});l.appendChild(he("span",{"aria-hidden":!0},Xe(n,t.config))),l.appendChild(he("span",{class:t.config.classNames.hidden},Xe("menuBack",t.config))),xe.call(t,o,"keydown",(function(e){37===e.which&&(e.preventDefault(),e.stopPropagation(),c.call(t,"home",!0))}),!1),xe.call(t,l,"click",(function(){c.call(t,"home",!1)})),o.appendChild(l),o.appendChild(he("div",{role:"menu"})),v.appendChild(o),t.elements.settings.buttons[n]=a,t.elements.settings.panels[n]=o})),y.appendChild(v),g.appendChild(y),u.appendChild(g),t.elements.settings.popup=y,t.elements.settings.menu=g}if("pip"===o&&Ee.pip&&u.appendChild(n.call(t,"pip",d)),"airplay"===o&&Ee.airplay&&u.appendChild(n.call(t,"airplay",d)),"download"===o){var k=ce({},d,{element:"a",href:t.download,target:"_blank"});t.isHTML5&&(k.download="");var T=t.config.urls.download;!ne(T)&&t.isEmbed&&ce(k,{icon:"logo-".concat(t.provider),label:t.provider}),u.appendChild(n.call(t,"download",k))}"fullscreen"===o&&u.appendChild(n.call(t,"fullscreen",d))})),this.isHTML5&&o.call(this,Ve.getQualityOptions.call(this)),l.call(this),u},inject:function(){var e=this;if(this.config.loadSprite){var t=nt.getIconUrl.call(this);t.cors&&Ge(t.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());var i=null;this.elements.controls=null;var n={id:this.id,seektime:this.config.seekTime,title:this.config.title},a=!0;X(this.config.controls)&&(this.config.controls=this.config.controls.call(this,n)),this.config.controls||(this.config.controls=[]),G(this.config.controls)||Y(this.config.controls)?i=this.config.controls:(i=nt.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:rt.getLabel.call(this)}),a=!1);var s,r=function(e){var t=e;return Object.entries(n).forEach((function(e){var i=o(e,2),n=i[0],a=i[1];t=We(t,"{".concat(n,"}"),a)})),t};if(a&&(Y(this.config.controls)?i=r(i):G(i)&&(i.innerHTML=r(i.innerHTML))),Y(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),G(s)||(s=this.elements.container),s[G(i)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",i),G(this.elements.controls)||nt.findElements.call(this),!ae(this.elements.buttons)){var l=function(t){var i=e.config.classNames.controlPressed;Object.defineProperty(t,"pressed",{enumerable:!0,get:function(){return we(t,i)},set:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];be(t,i,e)}})};Object.values(this.elements.buttons).filter(Boolean).forEach((function(e){$(e)||J(e)?Array.from(e).filter(Boolean).forEach(l):l(e)}))}if(oe.isEdge&&re(s),this.config.tooltips.controls){var c=this.config,u=c.classNames,d=c.selectors,h="".concat(d.controls.wrapper," ").concat(d.labels," .").concat(u.hidden),p=Te.call(this,h);Array.from(p).forEach((function(t){be(t,e.config.classNames.hidden,!1),be(t,e.config.classNames.tooltip,!0)}))}}};function at(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=e;if(t){var n=document.createElement("a");n.href=i,i=n.href}try{return new URL(i)}catch(e){return null}}function st(e){var t=new URLSearchParams;return z(e)&&Object.entries(e).forEach((function(e){var i=o(e,2),n=i[0],a=i[1];t.set(n,a)})),t}var rt={setup:function(){if(this.supported.ui)if(!this.isVideo||this.isYouTube||this.isHTML5&&!Ee.textTracks)$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this);else{if(G(this.elements.captions)||(this.elements.captions=he("div",ye(this.config.selectors.captions)),function(e,t){G(e)&&G(t)&&t.parentNode.insertBefore(e,t.nextSibling)}(this.elements.captions,this.elements.wrapper)),oe.isIE&&window.URL){var e=this.media.querySelectorAll("track");Array.from(e).forEach((function(e){var t=e.getAttribute("src"),i=at(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Je(t,"blob").then((function(t){e.setAttribute("src",window.URL.createObjectURL(t))})).catch((function(){me(e)}))}))}var t=Be((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((function(e){return e.split("-")[0]}))),i=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();if("auto"===i)i=o(t,1)[0];var n=this.storage.get("captions");if(Q(n)||(n=this.config.captions.active),Object.assign(this.captions,{toggled:!1,active:n,language:i,languages:t}),this.isHTML5){var a=this.config.captions.update?"addtrack removetrack":"removetrack";xe.call(this,this.media.textTracks,a,rt.update.bind(this))}setTimeout(rt.update.bind(this),0)}},update:function(){var e=this,t=rt.getTracks.call(this,!0),i=this.captions,n=i.active,a=i.language,s=i.meta,r=i.currentTrackNode,o=Boolean(t.find((function(e){return e.language===a})));this.isHTML5&&this.isVideo&&t.filter((function(e){return!s.get(e)})).forEach((function(t){e.debug.log("Track added",t),s.set(t,{default:"showing"===t.mode}),"showing"===t.mode&&(t.mode="hidden"),xe.call(e,t,"cuechange",(function(){return rt.updateCues.call(e)}))})),(o&&this.language!==a||!t.includes(r))&&(rt.setLanguage.call(this,a),rt.toggle.call(this,n&&o)),be(this.elements.container,this.config.classNames.captions.enabled,!ae(t)),$(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&nt.setCaptionsMenu.call(this)},toggle:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(this.supported.ui){var n=this.captions.toggled,a=this.config.classNames.captions.active,s=W(e)?!n:e;if(s!==n){if(i||(this.captions.active=s,this.storage.set({captions:s})),!this.language&&s&&!i){var r=rt.getTracks.call(this),o=rt.findTrack.call(this,[this.captions.language].concat(l(this.captions.languages)),!0);return this.captions.language=o.language,void rt.set.call(this,r.indexOf(o))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=s),be(this.elements.container,a,s),this.captions.toggled=s,nt.updateSetting.call(this,"captions"),Oe.call(this,this.media,s?"captionsenabled":"captionsdisabled")}setTimeout((function(){s&&t.captions.toggled&&(t.captions.currentTrackNode.mode="hidden")}))}},set:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=rt.getTracks.call(this);if(-1!==e)if(K(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;var n=i[e],a=n||{},s=a.language;this.captions.currentTrackNode=n,nt.updateSetting.call(this,"captions"),t||(this.captions.language=s,this.storage.set({language:s})),this.isVimeo&&this.embed.enableTextTrack(s),Oe.call(this,this.media,"languagechange")}rt.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&rt.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else rt.toggle.call(this,!1,t)},setLanguage:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(Y(e)){var i=e.toLowerCase();this.captions.language=i;var n=rt.getTracks.call(this),a=rt.findTrack.call(this,[i]);rt.set.call(this,n.indexOf(a),t)}else this.debug.warn("Invalid language argument",e)},getTracks:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=Array.from((this.media||{}).textTracks||[]);return i.filter((function(i){return!e.isHTML5||t||e.captions.meta.has(i)})).filter((function(e){return["captions","subtitles"].includes(e.kind)}))},findTrack:function(e){var t,i=this,n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=rt.getTracks.call(this),s=function(e){return Number((i.captions.meta.get(e)||{}).default)},r=Array.from(a).sort((function(e,t){return s(t)-s(e)}));return e.every((function(e){return!(t=r.find((function(t){return t.language===e})))})),t||(n?r[0]:void 0)},getCurrentTrack:function(){return rt.getTracks.call(this)[this.currentTrack]},getLabel:function(e){var t=e;return!te(t)&&Ee.textTracks&&this.captions.toggled&&(t=rt.getCurrentTrack.call(this)),te(t)?ae(t.label)?ae(t.language)?Xe("enabled",this.config):e.language.toUpperCase():t.label:Xe("disabled",this.config)},updateCues:function(e){if(this.supported.ui)if(G(this.elements.captions))if(W(e)||Array.isArray(e)){var t=e;if(!t){var i=rt.getCurrentTrack.call(this);t=Array.from((i||{}).activeCues||[]).map((function(e){return e.getCueAsHTML()})).map(Ye)}var n=t.map((function(e){return e.trim()})).join("\n");if(n!==this.elements.captions.innerHTML){fe(this.elements.captions);var a=he("span",ye(this.config.selectors.caption));a.innerHTML=n,this.elements.captions.appendChild(a),Oe.call(this,this.media,"cuechange")}}else this.debug.warn("updateCues: Invalid input",e);else this.debug.warn("No captions element to render to")}},ot={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.6.1/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"SD"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/v2/video/{0}.json"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isIos:"plyr--is-ios",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},tabFocus:"plyr__tab-focus",previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,premium:!1,referrerPolicy:null},youtube:{noCookie:!0,rel:0,showinfo:0,iv_load_policy:3,modestbranding:1}},lt="picture-in-picture",ct="inline",ut={html5:"html5",youtube:"youtube",vimeo:"vimeo"},dt="audio",ht="video";var pt=function(){},mt=function(){function t(){var i=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e(this,t),this.enabled=window.console&&i,this.enabled&&this.log("Debugging enabled")}return i(t,[{key:"log",get:function(){return this.enabled?Function.prototype.bind.call(console.log,console):pt}},{key:"warn",get:function(){return this.enabled?Function.prototype.bind.call(console.warn,console):pt}},{key:"error",get:function(){return this.enabled?Function.prototype.bind.call(console.error,console):pt}}]),t}(),ft=function(){function t(i){var n=this;e(this,t),this.player=i,this.prefix=t.prefix,this.property=t.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===i.config.fullscreen.fallback,this.player.elements.fullscreen=i.config.fullscreen.container&&function(e,t){return(Element.prototype.closest||function(){var e=this;do{if(ke.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,i.config.fullscreen.container),xe.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":"".concat(this.prefix,"fullscreenchange"),(function(){n.onChange()})),xe.call(this.player,this.player.elements.container,"dblclick",(function(e){G(n.player.elements.controls)&&n.player.elements.controls.contains(e.target)||n.toggle()})),xe.call(this,this.player.elements.container,"keydown",(function(e){return n.trapFocus(e)})),this.update()}return i(t,[{key:"onChange",value:function(){if(this.enabled){var e=this.player.elements.buttons.fullscreen;G(e)&&(e.pressed=this.active),Oe.call(this.player,this.target,this.active?"enterfullscreen":"exitfullscreen",!0)}}},{key:"toggleFallback",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(e?this.scrollPosition={x:window.scrollX||0,y:window.scrollY||0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",be(this.target,this.player.config.classNames.fullscreen.fallback,e),oe.isIos){var t=document.head.querySelector('meta[name="viewport"]'),i="viewport-fit=cover";t||(t=document.createElement("meta")).setAttribute("name","viewport");var n=Y(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!n,n||(t.content+=",".concat(i))):this.cleanupViewport&&(t.content=t.content.split(",").filter((function(e){return e.trim()!==i})).join(","))}this.onChange()}},{key:"trapFocus",value:function(e){if(!oe.isIos&&this.active&&"Tab"===e.key&&9===e.keyCode){var t=document.activeElement,i=Te.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),n=o(i,1)[0],a=i[i.length-1];t!==a||e.shiftKey?t===n&&e.shiftKey&&(a.focus(),e.preventDefault()):(n.focus(),e.preventDefault())}}},{key:"update",value:function(){var e;this.enabled?(e=this.forceFallback?"Fallback (forced)":t.native?"Native":"Fallback",this.player.debug.log("".concat(e," fullscreen enabled"))):this.player.debug.log("Fullscreen not supported and fallback disabled");be(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.enabled)}},{key:"enter",value:function(){this.enabled&&(oe.isIos&&this.player.config.fullscreen.iosNative?this.target.webkitEnterFullscreen():!t.native||this.forceFallback?this.toggleFallback(!0):this.prefix?ae(this.prefix)||this.target["".concat(this.prefix,"Request").concat(this.property)]():this.target.requestFullscreen({navigationUI:"hide"}))}},{key:"exit",value:function(){if(this.enabled)if(oe.isIos&&this.player.config.fullscreen.iosNative)this.target.webkitExitFullscreen(),qe(this.player.play());else if(!t.native||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!ae(this.prefix)){var e="moz"===this.prefix?"Cancel":"Exit";document["".concat(this.prefix).concat(e).concat(this.property)]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)}},{key:"toggle",value:function(){this.active?this.exit():this.enter()}},{key:"usingNative",get:function(){return t.native&&!this.forceFallback}},{key:"enabled",get:function(){return(t.native||this.player.config.fullscreen.fallback)&&this.player.config.fullscreen.enabled&&this.player.supported.ui&&this.player.isVideo}},{key:"active",get:function(){if(!this.enabled)return!1;if(!t.native||this.forceFallback)return we(this.target,this.player.config.classNames.fullscreen.fallback);var e=this.prefix?document["".concat(this.prefix).concat(this.property,"Element")]:document.fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}},{key:"target",get:function(){return oe.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen||this.player.elements.container}}],[{key:"native",get:function(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}},{key:"prefix",get:function(){if(X(document.exitFullscreen))return"";var e="";return["webkit","moz","ms"].some((function(t){return!(!X(document["".concat(t,"ExitFullscreen")])&&!X(document["".concat(t,"CancelFullScreen")]))&&(e=t,!0)})),e}},{key:"property",get:function(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}}]),t}();function gt(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return new Promise((function(i,n){var a=new Image,s=function(){delete a.onload,delete a.onerror,(a.naturalWidth>=t?i:n)(a)};Object.assign(a,{onload:s,onerror:s,src:e})}))}var yt={addStyleHook:function(){be(this.elements.container,this.config.selectors.container.replace(".",""),!0),be(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build:function(){var e=this;if(this.listeners.media(),!this.supported.ui)return this.debug.warn("Basic support only for ".concat(this.provider," ").concat(this.type)),void yt.toggleNativeControls.call(this,!0);G(this.elements.controls)||(nt.inject.call(this),this.listeners.controls()),yt.toggleNativeControls.call(this),this.isHTML5&&rt.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,nt.updateVolume.call(this),nt.timeUpdate.call(this),yt.checkPlaying.call(this),be(this.elements.container,this.config.classNames.pip.supported,Ee.pip&&this.isHTML5&&this.isVideo),be(this.elements.container,this.config.classNames.airplay.supported,Ee.airplay&&this.isHTML5),be(this.elements.container,this.config.classNames.isIos,oe.isIos),be(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((function(){Oe.call(e,e.media,"ready")}),0),yt.setTitle.call(this),this.poster&&yt.setPoster.call(this,this.poster,!1).catch((function(){})),this.config.duration&&nt.durationUpdate.call(this)},setTitle:function(){var e=Xe("play",this.config);if(Y(this.config.title)&&!ae(this.config.title)&&(e+=", ".concat(this.config.title)),Array.from(this.elements.buttons.play||[]).forEach((function(t){t.setAttribute("aria-label",e)})),this.isEmbed){var t=Ce.call(this,"iframe");if(!G(t))return;var i=ae(this.config.title)?"video":this.config.title,n=Xe("frameTitle",this.config);t.setAttribute("title",n.replace("{title}",i))}},togglePoster:function(e){be(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return i&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),je.call(this).then((function(){return gt(e)})).catch((function(i){throw e===t.poster&&yt.togglePoster.call(t,!1),i})).then((function(){if(e!==t.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((function(){return Object.assign(t.elements.poster.style,{backgroundImage:"url('".concat(e,"')"),backgroundSize:""}),yt.togglePoster.call(t,!0),e})))},checkPlaying:function(e){var t=this;be(this.elements.container,this.config.classNames.playing,this.playing),be(this.elements.container,this.config.classNames.paused,this.paused),be(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((function(e){Object.assign(e,{pressed:t.playing}),e.setAttribute("aria-label",Xe(t.playing?"pause":"play",t.config))})),Z(e)&&"timeupdate"===e.type||yt.toggleControls.call(this)},checkLoading:function(e){var t=this;this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((function(){be(t.elements.container,t.config.classNames.loading,t.loading),yt.toggleControls.call(t)}),this.loading?250:0)},toggleControls:function(e){var t=this.elements.controls;if(t&&this.config.hideControls){var i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles:function(){var e=this;Object.values(s({},this.media.style)).filter((function(e){return!ae(e)&&e.startsWith("--plyr")})).forEach((function(t){e.elements.container.style.setProperty(t,e.media.style.getPropertyValue(t)),e.media.style.removeProperty(t)})),ae(this.media.style)&&this.media.removeAttribute("style")}},vt=function(){function t(i){e(this,t),this.player=i,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.setTabFocus=this.setTabFocus.bind(this),this.firstTouch=this.firstTouch.bind(this)}return i(t,[{key:"handleKey",value:function(e){var t=this.player,i=t.elements,n=e.keyCode?e.keyCode:e.which,a="keydown"===e.type,s=a&&n===this.lastKey;if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)&&K(n)){if(a){var r=document.activeElement;if(G(r)){var o=t.config.selectors.editable;if(r!==i.inputs.seek&&ke(r,o))return;if(32===e.which&&ke(r,'button, [role^="menuitem"]'))return}switch([32,37,38,39,40,48,49,50,51,52,53,54,56,57,67,70,73,75,76,77,79].includes(n)&&(e.preventDefault(),e.stopPropagation()),n){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:s||(t.currentTime=t.duration/10*(n-48));break;case 32:case 75:s||qe(t.togglePlay());break;case 38:t.increaseVolume(.1);break;case 40:t.decreaseVolume(.1);break;case 77:s||(t.muted=!t.muted);break;case 39:t.forward();break;case 37:t.rewind();break;case 70:t.fullscreen.toggle();break;case 67:s||t.toggleCaptions();break;case 76:t.loop=!t.loop}27===n&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=n}else this.lastKey=null}}},{key:"toggleMenu",value:function(e){nt.toggleMenu.call(this.player,e)}},{key:"firstTouch",value:function(){var e=this.player,t=e.elements;e.touch=!0,be(t.container,e.config.classNames.isTouch,!0)}},{key:"setTabFocus",value:function(e){var t=this.player,i=t.elements;if(clearTimeout(this.focusTimer),"keydown"!==e.type||9===e.which){"keydown"===e.type&&(this.lastKeyDown=e.timeStamp);var n,a=e.timeStamp-this.lastKeyDown<=20;if("focus"!==e.type||a)n=t.config.classNames.tabFocus,be(Te.call(t,".".concat(n)),n,!1),"focusout"!==e.type&&(this.focusTimer=setTimeout((function(){var e=document.activeElement;i.container.contains(e)&&be(document.activeElement,t.config.classNames.tabFocus,!0)}),10))}}},{key:"global",value:function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=this.player;t.config.keyboard.global&&Ne.call(t,window,"keydown keyup",this.handleKey,e,!1),Ne.call(t,document.body,"click",this.toggleMenu,e),Le.call(t,document.body,"touchstart",this.firstTouch),Ne.call(t,document.body,"keydown focus blur focusout",this.setTabFocus,e,!1,!0)}},{key:"container",value:function(){var e=this.player,t=e.config,i=e.elements,n=e.timers;!t.keyboard.global&&t.keyboard.focused&&xe.call(e,i.container,"keydown keyup",this.handleKey,!1),xe.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(function(t){var a=i.controls;a&&"enterfullscreen"===t.type&&(a.pressed=!1,a.hover=!1);var s=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(yt.toggleControls.call(e,!0),s=e.touch?3e3:2e3),clearTimeout(n.controls),n.controls=setTimeout((function(){return yt.toggleControls.call(e,!1)}),s)}));var a=function(t){if(!t)return Re.call(e);var n=i.container.getBoundingClientRect(),a=n.width,s=n.height;return Re.call(e,"".concat(a,":").concat(s))},s=function(){clearTimeout(n.resized),n.resized=setTimeout(a,50)};xe.call(e,i.container,"enterfullscreen exitfullscreen",(function(t){var n=e.fullscreen,r=n.target,l=n.usingNative;if(r===i.container&&(e.isEmbed||!ae(e.config.ratio))){var c="enterfullscreen"===t.type,u=a(c);u.padding;!function(t,i,n){if(e.isVimeo&&!e.config.vimeo.premium){var a=e.elements.wrapper.firstChild,s=o(t,2)[1],r=o(Fe.call(e),2),l=r[0],c=r[1];a.style.maxWidth=n?"".concat(s/c*l,"px"):null,a.style.margin=n?"0 auto":null}}(u.ratio,0,c),l||(c?xe.call(e,window,"resize",s):Ie.call(e,window,"resize",s))}}))}},{key:"media",value:function(){var e=this,t=this.player,i=t.elements;if(xe.call(t,t.media,"timeupdate seeking seeked",(function(e){return nt.timeUpdate.call(t,e)})),xe.call(t,t.media,"durationchange loadeddata loadedmetadata",(function(e){return nt.durationUpdate.call(t,e)})),xe.call(t,t.media,"ended",(function(){t.isHTML5&&t.isVideo&&t.config.resetOnEnd&&(t.restart(),t.pause())})),xe.call(t,t.media,"progress playing seeking seeked",(function(e){return nt.updateProgress.call(t,e)})),xe.call(t,t.media,"volumechange",(function(e){return nt.updateVolume.call(t,e)})),xe.call(t,t.media,"playing play pause ended emptied timeupdate",(function(e){return yt.checkPlaying.call(t,e)})),xe.call(t,t.media,"waiting canplay seeked playing",(function(e){return yt.checkLoading.call(t,e)})),t.supported.ui&&t.config.clickToPlay&&!t.isAudio){var n=Ce.call(t,".".concat(t.config.classNames.video));if(!G(n))return;xe.call(t,i.container,"click",(function(a){([i.container,n].includes(a.target)||n.contains(a.target))&&(t.touch&&t.config.hideControls||(t.ended?(e.proxy(a,t.restart,"restart"),e.proxy(a,(function(){qe(t.play())}),"play")):e.proxy(a,(function(){qe(t.togglePlay())}),"play")))}))}t.supported.ui&&t.config.disableContextMenu&&xe.call(t,i.wrapper,"contextmenu",(function(e){e.preventDefault()}),!1),xe.call(t,t.media,"volumechange",(function(){t.storage.set({volume:t.volume,muted:t.muted})})),xe.call(t,t.media,"ratechange",(function(){nt.updateSetting.call(t,"speed"),t.storage.set({speed:t.speed})})),xe.call(t,t.media,"qualitychange",(function(e){nt.updateSetting.call(t,"quality",null,e.detail.quality)})),xe.call(t,t.media,"ready qualitychange",(function(){nt.setDownloadUrl.call(t)}));var a=t.config.events.concat(["keyup","keydown"]).join(" ");xe.call(t,t.media,a,(function(e){var n=e.detail,a=void 0===n?{}:n;"error"===e.type&&(a=t.media.error),Oe.call(t,i.container,e.type,!0,a)}))}},{key:"proxy",value:function(e,t,i){var n=this.player,a=n.config.listeners[i],s=!0;X(a)&&(s=a.call(n,e)),!1!==s&&X(t)&&t.call(n,e)}},{key:"bind",value:function(e,t,i,n){var a=this,s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.player,o=r.config.listeners[n],l=X(o);xe.call(r,e,t,(function(e){return a.proxy(e,i,n)}),s&&!l)}},{key:"controls",value:function(){var e=this,t=this.player,i=t.elements,n=oe.isIE?"change":"input";if(i.buttons.play&&Array.from(i.buttons.play).forEach((function(i){e.bind(i,"click",(function(){qe(t.togglePlay())}),"play")})),this.bind(i.buttons.restart,"click",t.restart,"restart"),this.bind(i.buttons.rewind,"click",t.rewind,"rewind"),this.bind(i.buttons.fastForward,"click",t.forward,"fastForward"),this.bind(i.buttons.mute,"click",(function(){t.muted=!t.muted}),"mute"),this.bind(i.buttons.captions,"click",(function(){return t.toggleCaptions()})),this.bind(i.buttons.download,"click",(function(){Oe.call(t,t.media,"download")}),"download"),this.bind(i.buttons.fullscreen,"click",(function(){t.fullscreen.toggle()}),"fullscreen"),this.bind(i.buttons.pip,"click",(function(){t.pip="toggle"}),"pip"),this.bind(i.buttons.airplay,"click",t.airplay,"airplay"),this.bind(i.buttons.settings,"click",(function(e){e.stopPropagation(),e.preventDefault(),nt.toggleMenu.call(t,e)}),null,!1),this.bind(i.buttons.settings,"keyup",(function(e){var i=e.which;[13,32].includes(i)&&(13!==i?(e.preventDefault(),e.stopPropagation(),nt.toggleMenu.call(t,e)):nt.focusFirstMenuItem.call(t,null,!0))}),null,!1),this.bind(i.settings.menu,"keydown",(function(e){27===e.which&&nt.toggleMenu.call(t,e)})),this.bind(i.inputs.seek,"mousedown mousemove",(function(e){var t=i.progress.getBoundingClientRect(),n=100/t.width*(e.pageX-t.left);e.currentTarget.setAttribute("seek-value",n)})),this.bind(i.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(function(e){var i=e.currentTarget,n=e.keyCode?e.keyCode:e.which;if(!ee(e)||39===n||37===n){t.lastSeekTime=Date.now();var a=i.hasAttribute("play-on-seeked"),s=["mouseup","touchend","keyup"].includes(e.type);a&&s?(i.removeAttribute("play-on-seeked"),qe(t.play())):!s&&t.playing&&(i.setAttribute("play-on-seeked",""),t.pause())}})),oe.isIos){var a=Te.call(t,'input[type="range"]');Array.from(a).forEach((function(t){return e.bind(t,n,(function(e){return re(e.target)}))}))}this.bind(i.inputs.seek,n,(function(e){var i=e.currentTarget,n=i.getAttribute("seek-value");ae(n)&&(n=i.value),i.removeAttribute("seek-value"),t.currentTime=n/i.max*t.duration}),"seek"),this.bind(i.progress,"mouseenter mouseleave mousemove",(function(e){return nt.updateSeekTooltip.call(t,e)})),this.bind(i.progress,"mousemove touchmove",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startMove(e)})),this.bind(i.progress,"mouseleave touchend click",(function(){var e=t.previewThumbnails;e&&e.loaded&&e.endMove(!1,!0)})),this.bind(i.progress,"mousedown touchstart",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.startScrubbing(e)})),this.bind(i.progress,"mouseup touchend",(function(e){var i=t.previewThumbnails;i&&i.loaded&&i.endScrubbing(e)})),oe.isWebkit&&Array.from(Te.call(t,'input[type="range"]')).forEach((function(i){e.bind(i,"input",(function(e){return nt.updateRangeFill.call(t,e.target)}))})),t.config.toggleInvert&&!G(i.display.duration)&&this.bind(i.display.currentTime,"click",(function(){0!==t.currentTime&&(t.config.invertTime=!t.config.invertTime,nt.timeUpdate.call(t))})),this.bind(i.inputs.volume,n,(function(e){t.volume=e.target.value}),"volume"),this.bind(i.controls,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type})),i.fullscreen&&Array.from(i.fullscreen.children).filter((function(e){return!e.contains(i.container)})).forEach((function(n){e.bind(n,"mouseenter mouseleave",(function(e){i.controls.hover=!t.touch&&"mouseenter"===e.type}))})),this.bind(i.controls,"mousedown mouseup touchstart touchend touchcancel",(function(e){i.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(i.controls,"focusin",(function(){var n=t.config,a=t.timers;be(i.controls,n.classNames.noTransition,!0),yt.toggleControls.call(t,!0),setTimeout((function(){be(i.controls,n.classNames.noTransition,!1)}),0);var s=e.touch?3e3:4e3;clearTimeout(a.controls),a.controls=setTimeout((function(){return yt.toggleControls.call(t,!1)}),s)})),this.bind(i.inputs.volume,"wheel",(function(e){var i=e.webkitDirectionInvertedFromDevice,n=o([e.deltaX,-e.deltaY].map((function(e){return i?-e:e})),2),a=n[0],s=n[1],r=Math.sign(Math.abs(a)>Math.abs(s)?a:s);t.increaseVolume(r/50);var l=t.media.volume;(1===r&&l<1||-1===r&&l>0)&&e.preventDefault()}),"volume",!1)}}]),t}();"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var bt=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},n={};function a(e,t){if(e){var a=n[e];if(i[e]=t,a)for(;a.length;)a[0](e,t),a.splice(0,1)}}function s(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function r(t,i,n,a){var s,o,l=document,c=n.async,u=(n.numRetries||0)+1,d=n.before||e,h=t.replace(/[\?|#].*$/,""),p=t.replace(/^(css|img)!/,"");a=a||0,/(^css!|\.css$)/.test(h)?((o=l.createElement("link")).rel="stylesheet",o.href=p,(s="hideFocus"in o)&&o.relList&&(s=0,o.rel="preload",o.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(h)?(o=l.createElement("img")).src=p:((o=l.createElement("script")).src=t,o.async=void 0===c||c),o.onload=o.onerror=o.onbeforeload=function(e){var l=e.type[0];if(s)try{o.sheet.cssText.length||(l="e")}catch(e){18!=e.code&&(l="e")}if("e"==l){if((a+=1)<u)return r(t,i,n,a)}else if("preload"==o.rel&&"style"==o.as)return o.rel="stylesheet";i(t,l,e.defaultPrevented)},!1!==d(t,o)&&l.head.appendChild(o)}function o(e,i,n){var o,l;if(i&&i.trim&&(o=i),l=(o?n:i)||{},o){if(o in t)throw"LoadJS";t[o]=!0}function c(t,i){!function(e,t,i){var n,a,s=(e=e.push?e:[e]).length,o=s,l=[];for(n=function(e,i,n){if("e"==i&&l.push(e),"b"==i){if(!n)return;l.push(e)}--s||t(l)},a=0;a<o;a++)r(e[a],n,i)}(e,(function(e){s(l,e),t&&s({success:t,error:i},e),a(o,e)}),l)}if(l.returnPromise)return new Promise(c);c()}return o.ready=function(e,t){return function(e,t){e=e.push?e:[e];var a,s,r,o=[],l=e.length,c=l;for(a=function(e,i){i.length&&o.push(e),--c||t(o)};l--;)s=e[l],(r=i[s])?a(s,r):(n[s]=n[s]||[]).push(a)}(e,(function(e){s(t,e)})),o},o.done=function(e){a(e,[])},o.reset=function(){t={},i={},n={}},o.isDefined=function(e){return e in t},o}()}));function wt(e){return new Promise((function(t,i){bt(e,{success:t,error:i})}))}function kt(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Oe.call(this,this.media,e?"play":"pause"))}var Tt={setup:function(){var e=this;be(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,Re.call(e),z(window.Vimeo)?Tt.ready.call(e):wt(e.config.urls.vimeo.sdk).then((function(){Tt.ready.call(e)})).catch((function(t){e.debug.warn("Vimeo SDK (player.js) failed to load",t)}))},ready:function(){var e=this,t=this,i=t.config.vimeo,n=i.premium,a=i.referrerPolicy,l=r(i,["premium","referrerPolicy"]);n&&Object.assign(l,{controls:!1,sidedock:!1});var c=st(s({loop:t.config.loop.active,autoplay:t.autoplay,muted:t.muted,gesture:"media",playsinline:!this.config.fullscreen.iosNative},l)),u=t.media.getAttribute("src");ae(u)&&(u=t.media.getAttribute(t.config.attributes.embed.id));var d,h=ae(d=u)?null:K(Number(d))?d:d.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:d,p=he("iframe"),m=Ue(t.config.urls.vimeo.iframe,h,c);p.setAttribute("src",m),p.setAttribute("allowfullscreen",""),p.setAttribute("allow","autoplay,fullscreen,picture-in-picture"),ae(a)||p.setAttribute("referrerPolicy",a);var f=t.poster;if(n)p.setAttribute("data-poster",f),t.media=ge(p,t.media);else{var g=he("div",{class:t.config.classNames.embedContainer,"data-poster":f});g.appendChild(p),t.media=ge(g,t.media)}Je(Ue(t.config.urls.vimeo.api,h),"json").then((function(e){if(!ae(e)){var i=new URL(e[0].thumbnail_large);i.pathname="".concat(i.pathname.split("_")[0],".jpg"),yt.setPoster.call(t,i.href).catch((function(){}))}})),t.embed=new window.Vimeo.Player(p,{autopause:t.config.autopause,muted:t.muted}),t.media.paused=!0,t.media.currentTime=0,t.supported.ui&&t.embed.disableTextTrack(),t.media.play=function(){return kt.call(t,!0),t.embed.play()},t.media.pause=function(){return kt.call(t,!1),t.embed.pause()},t.media.stop=function(){t.pause(),t.currentTime=0};var y=t.media.currentTime;Object.defineProperty(t.media,"currentTime",{get:function(){return y},set:function(e){var i=t.embed,n=t.media,a=t.paused,s=t.volume,r=a&&!i.hasPlayed;n.seeking=!0,Oe.call(t,n,"seeking"),Promise.resolve(r&&i.setVolume(0)).then((function(){return i.setCurrentTime(e)})).then((function(){return r&&i.pause()})).then((function(){return r&&i.setVolume(s)})).catch((function(){}))}});var v=t.config.speed.selected;Object.defineProperty(t.media,"playbackRate",{get:function(){return v},set:function(e){t.embed.setPlaybackRate(e).then((function(){v=e,Oe.call(t,t.media,"ratechange")})).catch((function(){t.options.speed=[1]}))}});var b=t.config.volume;Object.defineProperty(t.media,"volume",{get:function(){return b},set:function(e){t.embed.setVolume(e).then((function(){b=e,Oe.call(t,t.media,"volumechange")}))}});var w=t.config.muted;Object.defineProperty(t.media,"muted",{get:function(){return w},set:function(e){var i=!!Q(e)&&e;t.embed.setVolume(i?0:t.config.volume).then((function(){w=i,Oe.call(t,t.media,"volumechange")}))}});var k,T=t.config.loop;Object.defineProperty(t.media,"loop",{get:function(){return T},set:function(e){var i=Q(e)?e:t.config.loop.active;t.embed.setLoop(i).then((function(){T=i}))}}),t.embed.getVideoUrl().then((function(e){k=e,nt.setDownloadUrl.call(t)})).catch((function(t){e.debug.warn(t)})),Object.defineProperty(t.media,"currentSrc",{get:function(){return k}}),Object.defineProperty(t.media,"ended",{get:function(){return t.currentTime===t.duration}}),Promise.all([t.embed.getVideoWidth(),t.embed.getVideoHeight()]).then((function(i){var n=o(i,2),a=n[0],s=n[1];t.embed.ratio=[a,s],Re.call(e)})),t.embed.setAutopause(t.config.autopause).then((function(e){t.config.autopause=e})),t.embed.getVideoTitle().then((function(i){t.config.title=i,yt.setTitle.call(e)})),t.embed.getCurrentTime().then((function(e){y=e,Oe.call(t,t.media,"timeupdate")})),t.embed.getDuration().then((function(e){t.media.duration=e,Oe.call(t,t.media,"durationchange")})),t.embed.getTextTracks().then((function(e){t.media.textTracks=e,rt.setup.call(t)})),t.embed.on("cuechange",(function(e){var i=e.cues,n=(void 0===i?[]:i).map((function(e){return function(e){var t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)}));rt.updateCues.call(t,n)})),t.embed.on("loaded",(function(){(t.embed.getPaused().then((function(e){kt.call(t,!e),e||Oe.call(t,t.media,"playing")})),G(t.embed.element)&&t.supported.ui)&&t.embed.element.setAttribute("tabindex",-1)})),t.embed.on("bufferstart",(function(){Oe.call(t,t.media,"waiting")})),t.embed.on("bufferend",(function(){Oe.call(t,t.media,"playing")})),t.embed.on("play",(function(){kt.call(t,!0),Oe.call(t,t.media,"playing")})),t.embed.on("pause",(function(){kt.call(t,!1)})),t.embed.on("timeupdate",(function(e){t.media.seeking=!1,y=e.seconds,Oe.call(t,t.media,"timeupdate")})),t.embed.on("progress",(function(e){t.media.buffered=e.percent,Oe.call(t,t.media,"progress"),1===parseInt(e.percent,10)&&Oe.call(t,t.media,"canplaythrough"),t.embed.getDuration().then((function(e){e!==t.media.duration&&(t.media.duration=e,Oe.call(t,t.media,"durationchange"))}))})),t.embed.on("seeked",(function(){t.media.seeking=!1,Oe.call(t,t.media,"seeked")})),t.embed.on("ended",(function(){t.media.paused=!0,Oe.call(t,t.media,"ended")})),t.embed.on("error",(function(e){t.media.error=e,Oe.call(t,t.media,"error")})),setTimeout((function(){return yt.build.call(t)}),0)}};function Ct(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Oe.call(this,this.media,e?"play":"pause"))}function At(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}var St={setup:function(){var e=this;if(be(this.elements.wrapper,this.config.classNames.embed,!0),z(window.YT)&&X(window.YT.Player))St.ready.call(this);else{var t=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=function(){X(t)&&t(),St.ready.call(e)},wt(this.config.urls.youtube.sdk).catch((function(t){e.debug.warn("YouTube API failed to load",t)}))}},getTitle:function(e){var t=this;Je(Ue(this.config.urls.youtube.api,e)).then((function(e){if(z(e)){var i=e.title,n=e.height,a=e.width;t.config.title=i,yt.setTitle.call(t),t.embed.ratio=[a,n]}Re.call(t)})).catch((function(){Re.call(t)}))},ready:function(){var e=this,t=e.media&&e.media.getAttribute("id");if(ae(t)||!t.startsWith("youtube-")){var i=e.media.getAttribute("src");ae(i)&&(i=e.media.getAttribute(this.config.attributes.embed.id));var n,a,s=ae(n=i)?null:n.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:n,r=(a=e.provider,"".concat(a,"-").concat(Math.floor(1e4*Math.random()))),o=he("div",{id:r,"data-poster":e.poster});e.media=ge(o,e.media);var l=function(e){return"https://i.ytimg.com/vi/".concat(s,"/").concat(e,"default.jpg")};gt(l("maxres"),121).catch((function(){return gt(l("sd"),121)})).catch((function(){return gt(l("hq"))})).then((function(t){return yt.setPoster.call(e,t.src)})).then((function(t){t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")})).catch((function(){}));var c=e.config.youtube;e.embed=new window.YT.Player(r,{videoId:s,host:At(c),playerVars:ce({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui?0:1,disablekb:1,playsinline:e.config.fullscreen.iosNative?0:1,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},c),events:{onError:function(t){if(!e.media.error){var i=t.data,n={2:"The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occured";e.media.error={code:i,message:n},Oe.call(e,e.media,"error")}},onPlaybackRateChange:function(t){var i=t.target;e.media.playbackRate=i.getPlaybackRate(),Oe.call(e,e.media,"ratechange")},onReady:function(t){if(!X(e.media.play)){var i=t.target;St.getTitle.call(e,s),e.media.play=function(){Ct.call(e,!0),i.playVideo()},e.media.pause=function(){Ct.call(e,!1),i.pauseVideo()},e.media.stop=function(){i.stopVideo()},e.media.duration=i.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:function(){return Number(i.getCurrentTime())},set:function(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,Oe.call(e,e.media,"seeking"),i.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:function(){return i.getPlaybackRate()},set:function(e){i.setPlaybackRate(e)}});var n=e.config.volume;Object.defineProperty(e.media,"volume",{get:function(){return n},set:function(t){n=t,i.setVolume(100*n),Oe.call(e,e.media,"volumechange")}});var a=e.config.muted;Object.defineProperty(e.media,"muted",{get:function(){return a},set:function(t){var n=Q(t)?t:a;a=n,i[n?"mute":"unMute"](),Oe.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:function(){return i.getVideoUrl()}}),Object.defineProperty(e.media,"ended",{get:function(){return e.currentTime===e.duration}});var r=i.getAvailablePlaybackRates();e.options.speed=r.filter((function(t){return e.config.speed.options.includes(t)})),e.supported.ui&&e.media.setAttribute("tabindex",-1),Oe.call(e,e.media,"timeupdate"),Oe.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((function(){e.media.buffered=i.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&Oe.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),Oe.call(e,e.media,"canplaythrough"))}),200),setTimeout((function(){return yt.build.call(e)}),50)}},onStateChange:function(t){var i=t.target;switch(clearInterval(e.timers.playing),e.media.seeking&&[1,2].includes(t.data)&&(e.media.seeking=!1,Oe.call(e,e.media,"seeked")),t.data){case-1:Oe.call(e,e.media,"timeupdate"),e.media.buffered=i.getVideoLoadedFraction(),Oe.call(e,e.media,"progress");break;case 0:Ct.call(e,!1),e.media.loop?(i.stopVideo(),i.playVideo()):Oe.call(e,e.media,"ended");break;case 1:e.config.autoplay||!e.media.paused||e.embed.hasPlayed?(Ct.call(e,!0),Oe.call(e,e.media,"playing"),e.timers.playing=setInterval((function(){Oe.call(e,e.media,"timeupdate")}),50),e.media.duration!==i.getDuration()&&(e.media.duration=i.getDuration(),Oe.call(e,e.media,"durationchange"))):e.media.pause();break;case 2:e.muted||e.embed.unMute(),Ct.call(e,!1);break;case 3:Oe.call(e,e.media,"waiting")}Oe.call(e,e.elements.container,"statechange",!1,{code:t.data})}}})}}},Pt={setup:function(){this.media?(be(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),be(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&be(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=he("div",{class:this.config.classNames.video}),ue(this.media,this.elements.wrapper),this.elements.poster=he("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?Ve.setup.call(this):this.isYouTube?St.setup.call(this):this.isVimeo&&Tt.setup.call(this)):this.debug.warn("No media element found!")}},Et=function(){function t(i){var n=this;e(this,t),this.player=i,this.config=i.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise((function(e,t){n.on("loaded",e),n.on("error",t)})),this.load()}return i(t,[{key:"load",value:function(){var e=this;this.enabled&&(z(window.google)&&z(window.google.ima)?this.ready():wt(this.player.config.urls.googleIMA.sdk).then((function(){e.ready()})).catch((function(){e.trigger("error",new Error("Google IMA SDK failed to load"))})))}},{key:"ready",value:function(){var e,t=this;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then((function(){t.clearSafetyTimer("onAdsManagerLoaded()")})),this.listeners(),this.setupIMA()}},{key:"setupIMA",value:function(){var e=this;this.elements.container=he("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(function(t){return e.onAdsManagerLoaded(t)}),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(t){return e.onAdError(t)}),!1),this.requestAds()}},{key:"requestAds",value:function(){var e=this.player.elements.container;try{var t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}}},{key:"pollCountdown",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(!t)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");var i=function(){var t=it(Math.max(e.manager.getRemainingTime(),0)),i="".concat(Xe("advertisement",e.player.config)," - ").concat(t);e.elements.container.setAttribute("data-badge-text",i)};this.countdownTimer=setInterval(i,100)}},{key:"onAdsManagerLoaded",value:function(e){var t=this;if(this.enabled){var i=new google.ima.AdsRenderingSettings;i.restoreCustomPlaybackStateOnAdBreakComplete=!0,i.enablePreloading=!0,this.manager=e.getAdsManager(this.player,i),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(function(e){return t.onAdError(e)})),Object.keys(google.ima.AdEvent.Type).forEach((function(e){t.manager.addEventListener(google.ima.AdEvent.Type[e],(function(e){return t.onAdEvent(e)}))})),this.trigger("loaded")}}},{key:"addCuePoints",value:function(){var e=this;ae(this.cuePoints)||this.cuePoints.forEach((function(t){if(0!==t&&-1!==t&&t<e.player.duration){var i=e.player.elements.progress;if(G(i)){var n=100/e.player.duration*t,a=he("span",{class:e.player.config.classNames.cues});a.style.left="".concat(n.toString(),"%"),i.appendChild(a)}}}))}},{key:"onAdEvent",value:function(e){var t=this,i=this.player.elements.container,n=e.getAd(),a=e.getAdData();switch(function(e){Oe.call(t.player,t.player.media,"ads".concat(e.replace(/_/g,"").toLowerCase()))}(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),n.isLinear()||(n.width=i.offsetWidth,n.height=i.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:a.adError&&this.player.debug.warn("Non-fatal ad error: ".concat(a.adError.getMessage()))}}},{key:"onAdError",value:function(e){this.cancel(),this.player.debug.warn("Ads error",e)}},{key:"listeners",value:function(){var e,t=this,i=this.player.elements.container;this.player.on("canplay",(function(){t.addCuePoints()})),this.player.on("ended",(function(){t.loader.contentComplete()})),this.player.on("timeupdate",(function(){e=t.player.currentTime})),this.player.on("seeked",(function(){var i=t.player.currentTime;ae(t.cuePoints)||t.cuePoints.forEach((function(n,a){e<n&&n<i&&(t.manager.discardAdBreak(),t.cuePoints.splice(a,1))}))})),window.addEventListener("resize",(function(){t.manager&&t.manager.resize(i.offsetWidth,i.offsetHeight,google.ima.ViewMode.NORMAL)}))}},{key:"play",value:function(){var e=this,t=this.player.elements.container;this.managerPromise||this.resumeContent(),this.managerPromise.then((function(){e.manager.setVolume(e.player.volume),e.elements.displayContainer.initialize();try{e.initialized||(e.manager.init(t.offsetWidth,t.offsetHeight,google.ima.ViewMode.NORMAL),e.manager.start()),e.initialized=!0}catch(t){e.onAdError(t)}})).catch((function(){}))}},{key:"resumeContent",value:function(){this.elements.container.style.zIndex="",this.playing=!1,qe(this.player.media.play())}},{key:"pauseContent",value:function(){this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()}},{key:"cancel",value:function(){this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()}},{key:"loadAds",value:function(){var e=this;this.managerPromise.then((function(){e.manager&&e.manager.destroy(),e.managerPromise=new Promise((function(t){e.on("loaded",t),e.player.debug.log(e.manager)})),e.initialized=!1,e.requestAds()})).catch((function(){}))}},{key:"trigger",value:function(e){for(var t=this,i=arguments.length,n=new Array(i>1?i-1:0),a=1;a<i;a++)n[a-1]=arguments[a];var s=this.events[e];$(s)&&s.forEach((function(e){X(e)&&e.apply(t,n)}))}},{key:"on",value:function(e,t){return $(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this}},{key:"startSafetyTimer",value:function(e,t){var i=this;this.player.debug.log("Safety timer invoked from: ".concat(t)),this.safetyTimer=setTimeout((function(){i.cancel(),i.clearSafetyTimer("startSafetyTimer()")}),e)}},{key:"clearSafetyTimer",value:function(e){W(this.safetyTimer)||(this.player.debug.log("Safety timer cleared from: ".concat(e)),clearTimeout(this.safetyTimer),this.safetyTimer=null)}},{key:"enabled",get:function(){var e=this.config;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!ae(e.publisherId)||ne(e.tagUrl))}},{key:"tagUrl",get:function(){var e=this.config;if(ne(e.tagUrl))return e.tagUrl;var t={AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId};return"".concat("https://go.aniview.com/api/adserver6/vast/","?").concat(st(t))}}]),t}(),Mt=function(e,t){var i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i},Nt=function(){function t(i){e(this,t),this.player=i,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}return i(t,[{key:"load",value:function(){var e=this;this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((function(){e.enabled&&(e.render(),e.determineContainerAutoSizing(),e.loaded=!0)}))}},{key:"getThumbnails",value:function(){var e=this;return new Promise((function(t){var i=e.player.config.previewThumbnails.src;if(ae(i))throw new Error("Missing previewThumbnails.src config attribute");var n=function(){e.thumbnails.sort((function(e,t){return e.height-t.height})),e.player.debug.log("Preview thumbnails",e.thumbnails),t()};if(X(i))i((function(t){e.thumbnails=t,n()}));else{var a=(Y(i)?[i]:i).map((function(t){return e.getThumbnail(t)}));Promise.all(a).then(n)}}))}},{key:"getThumbnail",value:function(e){var t=this;return new Promise((function(i){Je(e).then((function(n){var a,s,r={frames:(a=n,s=[],a.split(/\r\n\r\n|\n\n|\r\r/).forEach((function(e){var t={};e.split(/\r\n|\n|\r/).forEach((function(e){if(K(t.startTime)){if(!ae(e.trim())&&ae(t.text)){var i=e.trim().split("#xywh="),n=o(i,1);if(t.text=n[0],i[1]){var a=o(i[1].split(","),4);t.x=a[0],t.y=a[1],t.w=a[2],t.h=a[3]}}}else{var s=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);s&&(t.startTime=60*Number(s[1]||0)*60+60*Number(s[2])+Number(s[3])+Number("0.".concat(s[4])),t.endTime=60*Number(s[6]||0)*60+60*Number(s[7])+Number(s[8])+Number("0.".concat(s[9])))}})),t.text&&s.push(t)})),s),height:null,urlPrefix:""};r.frames[0].text.startsWith("/")||r.frames[0].text.startsWith("http://")||r.frames[0].text.startsWith("https://")||(r.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));var l=new Image;l.onload=function(){r.height=l.naturalHeight,r.width=l.naturalWidth,t.thumbnails.push(r),i()},l.src=r.urlPrefix+r.frames[0].text}))}))}},{key:"startMove",value:function(e){if(this.loaded&&Z(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t=this.player.elements.progress.getBoundingClientRect(),i=100/t.width*(e.pageX-t.left);this.seekTime=this.player.media.duration*(i/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=it(this.seekTime)}this.showImageAtCurrentTime()}}},{key:"endMove",value:function(){this.toggleThumbContainer(!1,!0)}},{key:"startScrubbing",value:function(e){(W(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))}},{key:"endScrubbing",value:function(){var e=this;this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):Le.call(this.player,this.player.media,"timeupdate",(function(){e.mouseDown||e.toggleScrubbingContainer(!1)}))}},{key:"listeners",value:function(){var e=this;this.player.on("play",(function(){e.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(function(){e.toggleThumbContainer(!1)})),this.player.on("timeupdate",(function(){e.lastTime=e.player.media.currentTime}))}},{key:"render",value:function(){this.elements.thumb.container=he("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=he("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);var e=he("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=he("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.container.appendChild(e),G(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=he("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)}},{key:"destroy",value:function(){this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()}},{key:"showImageAtCurrentTime",value:function(){var e=this;this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();var t=this.thumbnails[0].frames.findIndex((function(t){return e.seekTime>=t.startTime&&e.seekTime<=t.endTime})),i=t>=0,n=0;this.mouseDown||this.toggleThumbContainer(i),i&&(this.thumbnails.forEach((function(i,a){e.loadedImages.includes(i.frames[t].text)&&(n=a)})),t!==this.showingThumb&&(this.showingThumb=t,this.loadImage(n)))}},{key:"loadImage",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,i=this.showingThumb,n=this.thumbnails[t],a=n.urlPrefix,s=n.frames[i],r=n.frames[i].text,o=a+r;if(this.currentImageElement&&this.currentImageElement.dataset.filename===r)this.showImage(this.currentImageElement,s,t,i,r,!1),this.currentImageElement.dataset.index=i,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);var l=new Image;l.src=o,l.dataset.index=i,l.dataset.filename=r,this.showingThumbFilename=r,this.player.debug.log("Loading image: ".concat(o)),l.onload=function(){return e.showImage(l,s,t,i,r,!0)},this.loadingImage=l,this.removeOldImages(l)}}},{key:"showImage",value:function(e,t,i,n,a){var s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];this.player.debug.log("Showing thumb: ".concat(a,". num: ").concat(n,". qual: ").concat(i,". newimg: ").concat(s)),this.setImageSizeAndOffset(e,t),s&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(a)||this.loadedImages.push(a)),this.preloadNearby(n,!0).then(this.preloadNearby(n,!1)).then(this.getHigherQuality(i,e,t,a))}},{key:"removeOldImages",value:function(e){var t=this;Array.from(this.currentImageContainer.children).forEach((function(i){if("img"===i.tagName.toLowerCase()){var n=t.usingSprites?500:1e3;if(i.dataset.index!==e.dataset.index&&!i.dataset.deleting){i.dataset.deleting=!0;var a=t.currentImageContainer;setTimeout((function(){a.removeChild(i),t.player.debug.log("Removing thumb: ".concat(i.dataset.filename))}),n)}}}))}},{key:"preloadNearby",value:function(e){var t=this,i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return new Promise((function(n){setTimeout((function(){var a=t.thumbnails[0].frames[e].text;if(t.showingThumbFilename===a){var s;s=i?t.thumbnails[0].frames.slice(e):t.thumbnails[0].frames.slice(0,e).reverse();var r=!1;s.forEach((function(e){var i=e.text;if(i!==a&&!t.loadedImages.includes(i)){r=!0,t.player.debug.log("Preloading thumb filename: ".concat(i));var s=t.thumbnails[0].urlPrefix+i,o=new Image;o.src=s,o.onload=function(){t.player.debug.log("Preloaded thumb filename: ".concat(i)),t.loadedImages.includes(i)||t.loadedImages.push(i),n()}}})),r||n()}}),300)}))}},{key:"getHigherQuality",value:function(e,t,i,n){var a=this;if(e<this.thumbnails.length-1){var s=t.naturalHeight;this.usingSprites&&(s=i.h),s<this.thumbContainerHeight&&setTimeout((function(){a.showingThumbFilename===n&&(a.player.debug.log("Showing higher quality thumb for: ".concat(n)),a.loadImage(e+1))}),300)}}},{key:"toggleThumbContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"toggleScrubbingContainer",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)}},{key:"determineContainerAutoSizing",value:function(){(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)}},{key:"setThumbContainerSizeAndPos",value:function(){if(this.sizeSpecifiedInCSS){if(this.elements.thumb.imageContainer.clientHeight>20&&this.elements.thumb.imageContainer.clientWidth<20){var e=Math.floor(this.elements.thumb.imageContainer.clientHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.width="".concat(e,"px")}else if(this.elements.thumb.imageContainer.clientHeight<20&&this.elements.thumb.imageContainer.clientWidth>20){var t=Math.floor(this.elements.thumb.imageContainer.clientWidth/this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(t,"px")}}else{var i=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);this.elements.thumb.imageContainer.style.height="".concat(this.thumbContainerHeight,"px"),this.elements.thumb.imageContainer.style.width="".concat(i,"px")}this.setThumbContainerPos()}},{key:"setThumbContainerPos",value:function(){var e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),i=this.elements.thumb.container,n=t.left-e.left+10,a=t.right-e.left-i.clientWidth-10,s=this.mousePosX-e.left-i.clientWidth/2;s<n&&(s=n),s>a&&(s=a),i.style.left="".concat(s,"px")}},{key:"setScrubbingContainerSize",value:function(){var e=Mt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}),t=e.width,i=e.height;this.elements.scrubbing.container.style.width="".concat(t,"px"),this.elements.scrubbing.container.style.height="".concat(i,"px")}},{key:"setImageSizeAndOffset",value:function(e,t){if(this.usingSprites){var i=this.thumbContainerHeight/t.h;e.style.height="".concat(e.naturalHeight*i,"px"),e.style.width="".concat(e.naturalWidth*i,"px"),e.style.left="-".concat(t.x*i,"px"),e.style.top="-".concat(t.y*i,"px")}}},{key:"enabled",get:function(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}},{key:"currentImageContainer",get:function(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}},{key:"usingSprites",get:function(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}},{key:"thumbAspectRatio",get:function(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}},{key:"thumbContainerHeight",get:function(){return this.mouseDown?Mt(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight}).height:this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}},{key:"currentImageElement",get:function(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement},set:function(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}]),t}(),xt={insertElements:function(e,t){var i=this;Y(t)?pe(e,this.media,{src:t}):$(t)&&t.forEach((function(t){pe(e,i.media,t)}))},change:function(e){var t=this;le(e,"sources.length")?(Ve.cancelRequests.call(this),this.destroy.call(this,(function(){t.options.quality=[],me(t.media),t.media=null,G(t.elements.container)&&t.elements.container.removeAttribute("class");var i=e.sources,n=e.type,a=o(i,1)[0],s=a.provider,r=void 0===s?ut.html5:s,l=a.src,c="html5"===r?n:"div",u="html5"===r?{}:{src:l};Object.assign(t,{provider:r,type:n,supported:Ee.check(n,r,t.config.playsinline),media:he(c,u)}),t.elements.container.appendChild(t.media),Q(e.autoplay)&&(t.config.autoplay=e.autoplay),t.isHTML5&&(t.config.crossorigin&&t.media.setAttribute("crossorigin",""),t.config.autoplay&&t.media.setAttribute("autoplay",""),ae(e.poster)||(t.poster=e.poster),t.config.loop.active&&t.media.setAttribute("loop",""),t.config.muted&&t.media.setAttribute("muted",""),t.config.playsinline&&t.media.setAttribute("playsinline","")),yt.addStyleHook.call(t),t.isHTML5&&xt.insertElements.call(t,"source",i),t.config.title=e.title,Pt.setup.call(t),t.isHTML5&&Object.keys(e).includes("tracks")&&xt.insertElements.call(t,"track",e.tracks),(t.isHTML5||t.isEmbed&&!t.supported.ui)&&yt.build.call(t),t.isHTML5&&t.media.load(),ae(e.previewThumbnails)||(Object.assign(t.config.previewThumbnails,e.previewThumbnails),t.previewThumbnails&&t.previewThumbnails.loaded&&(t.previewThumbnails.destroy(),t.previewThumbnails=null),t.config.previewThumbnails.enabled&&(t.previewThumbnails=new Nt(t))),t.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};var It,Lt=function(){function t(i,n){var a=this;if(e(this,t),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=Ee.touch,this.media=i,Y(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||J(this.media)||$(this.media))&&(this.media=this.media[0]),this.config=ce({},ot,t.defaults,n||{},function(){try{return JSON.parse(a.media.getAttribute("data-plyr-config"))}catch(e){return{}}}()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new mt(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",Ee),!W(this.media)&&G(this.media))if(this.media.plyr)this.debug.warn("Target already setup");else if(this.config.enabled)if(Ee.check().api){var s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;var r=this.media.tagName.toLowerCase(),o=null,l=null;switch(r){case"div":if(o=this.media.querySelector("iframe"),G(o)){if(l=at(o.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?ut.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?ut.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=o,this.elements.container.className="",l.search.length){var c=["1","true"];c.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),c.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=c.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(ae(this.provider)||!Object.keys(ut).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=ht;break;case"video":case"audio":this.type=r,this.provider=ut.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=Ee.check(this.type,this.provider,this.config.playsinline),this.supported.api?(this.eventListeners=[],this.listeners=new vt(this),this.storage=new $e(this),this.media.plyr=this,G(this.elements.container)||(this.elements.container=he("div",{tabindex:0}),ue(this.media,this.elements.container)),yt.migrateStyles.call(this),yt.addStyleHook.call(this),Pt.setup.call(this),this.config.debug&&xe.call(this,this.elements.container,this.config.events.join(" "),(function(e){a.debug.log("event: ".concat(e.type))})),this.fullscreen=new ft(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&yt.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Et(this)),this.isHTML5&&this.config.autoplay&&setTimeout((function(){return qe(a.play())}),10),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new Nt(this))):this.debug.error("Setup failed: no support")}else this.debug.error("Setup failed: no support");else this.debug.error("Setup failed: disabled by config");else this.debug.error("Setup failed: no suitable element passed")}return i(t,[{key:"play",value:function(){var e=this;return X(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((function(){return e.ads.play()})).catch((function(){return qe(e.media.play())})),this.media.play()):null}},{key:"pause",value:function(){return this.playing&&X(this.media.pause)?this.media.pause():null}},{key:"togglePlay",value:function(e){return(Q(e)?e:!this.playing)?this.play():this.pause()}},{key:"stop",value:function(){this.isHTML5?(this.pause(),this.restart()):X(this.media.stop)&&this.media.stop()}},{key:"restart",value:function(){this.currentTime=0}},{key:"rewind",value:function(e){this.currentTime-=K(e)?e:this.config.seekTime}},{key:"forward",value:function(e){this.currentTime+=K(e)?e:this.config.seekTime}},{key:"increaseVolume",value:function(e){var t=this.media.muted?0:this.volume;this.volume=t+(K(e)?e:0)}},{key:"decreaseVolume",value:function(e){this.increaseVolume(-e)}},{key:"toggleCaptions",value:function(e){rt.toggle.call(this,e,!1)}},{key:"airplay",value:function(){Ee.airplay&&this.media.webkitShowPlaybackTargetPicker()}},{key:"toggleControls",value:function(e){if(this.supported.ui&&!this.isAudio){var t=we(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,n=be(this.elements.container,this.config.classNames.hideControls,i);if(n&&this.config.controls.includes("settings")&&!ae(this.config.settings)&&nt.toggleMenu.call(this,!1),n!==t){var a=n?"controlshidden":"controlsshown";Oe.call(this,this.media,a)}return!n}return!1}},{key:"on",value:function(e,t){xe.call(this,this.elements.container,e,t)}},{key:"once",value:function(e,t){Le.call(this,this.elements.container,e,t)}},{key:"off",value:function(e,t){Ie(this.elements.container,e,t)}},{key:"destroy",value:function(e){var t=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ready){var n=function(){document.body.style.overflow="",t.embed=null,i?(Object.keys(t.elements).length&&(me(t.elements.buttons.play),me(t.elements.captions),me(t.elements.controls),me(t.elements.wrapper),t.elements.buttons.play=null,t.elements.captions=null,t.elements.controls=null,t.elements.wrapper=null),X(e)&&e()):(_e.call(t),ge(t.elements.original,t.elements.container),Oe.call(t,t.elements.original,"destroyed",!0),X(e)&&e.call(t.elements.original),t.ready=!1,setTimeout((function(){t.elements=null,t.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(yt.toggleNativeControls.call(this,!0),n()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&X(this.embed.destroy)&&this.embed.destroy(),n()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(n),setTimeout(n,200))}}},{key:"supports",value:function(e){return Ee.mime.call(this,e)}},{key:"isHTML5",get:function(){return this.provider===ut.html5}},{key:"isEmbed",get:function(){return this.isYouTube||this.isVimeo}},{key:"isYouTube",get:function(){return this.provider===ut.youtube}},{key:"isVimeo",get:function(){return this.provider===ut.vimeo}},{key:"isVideo",get:function(){return this.type===ht}},{key:"isAudio",get:function(){return this.type===dt}},{key:"playing",get:function(){return Boolean(this.ready&&!this.paused&&!this.ended)}},{key:"paused",get:function(){return Boolean(this.media.paused)}},{key:"stopped",get:function(){return Boolean(this.paused&&0===this.currentTime)}},{key:"ended",get:function(){return Boolean(this.media.ended)}},{key:"currentTime",set:function(e){if(this.duration){var t=K(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log("Seeking to ".concat(this.currentTime," seconds"))}},get:function(){return Number(this.media.currentTime)}},{key:"buffered",get:function(){var e=this.media.buffered;return K(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}},{key:"seeking",get:function(){return Boolean(this.media.seeking)}},{key:"duration",get:function(){var e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=K(t)&&t!==1/0?t:0;return e||i}},{key:"volume",set:function(e){var t=e;Y(t)&&(t=Number(t)),K(t)||(t=this.storage.get("volume")),K(t)||(t=this.config.volume),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!ae(e)&&this.muted&&t>0&&(this.muted=!1)},get:function(){return Number(this.media.volume)}},{key:"muted",set:function(e){var t=e;Q(t)||(t=this.storage.get("muted")),Q(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t},get:function(){return Boolean(this.media.muted)}},{key:"hasAudio",get:function(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}},{key:"speed",set:function(e){var t=this,i=null;K(e)&&(i=e),K(i)||(i=this.storage.get("speed")),K(i)||(i=this.config.speed.selected);var n=this.minimumSpeed,a=this.maximumSpeed;i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:255;return Math.min(Math.max(e,t),i)}(i,n,a),this.config.speed.selected=i,setTimeout((function(){t.media.playbackRate=i}),0)},get:function(){return Number(this.media.playbackRate)}},{key:"minimumSpeed",get:function(){return this.isYouTube?Math.min.apply(Math,l(this.options.speed)):this.isVimeo?.5:.0625}},{key:"maximumSpeed",get:function(){return this.isYouTube?Math.max.apply(Math,l(this.options.speed)):this.isVimeo?2:16}},{key:"quality",set:function(e){var t=this.config.quality,i=this.options.quality;if(i.length){var n=[!ae(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(K),a=!0;if(!i.includes(n)){var s=function(e,t){return $(e)&&e.length?e.reduce((function(e,i){return Math.abs(i-t)<Math.abs(e-t)?i:e})):null}(i,n);this.debug.warn("Unsupported quality option: ".concat(n,", using ").concat(s," instead")),n=s,a=!1}t.selected=n,this.media.quality=n,a&&this.storage.set({quality:n})}},get:function(){return this.media.quality}},{key:"loop",set:function(e){var t=Q(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t},get:function(){return Boolean(this.media.loop)}},{key:"source",set:function(e){xt.change.call(this,e)},get:function(){return this.media.currentSrc}},{key:"download",get:function(){var e=this.config.urls.download;return ne(e)?e:this.source},set:function(e){ne(e)&&(this.config.urls.download=e,nt.setDownloadUrl.call(this))}},{key:"poster",set:function(e){this.isVideo?yt.setPoster.call(this,e,!1).catch((function(){})):this.debug.warn("Poster can only be set for video")},get:function(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}},{key:"ratio",get:function(){if(!this.isVideo)return null;var e=He(Fe.call(this));return $(e)?e.join(":"):e},set:function(e){this.isVideo?Y(e)&&De(e)?(this.config.ratio=e,Re.call(this)):this.debug.error("Invalid aspect ratio specified (".concat(e,")")):this.debug.warn("Aspect ratio can only be set for video")}},{key:"autoplay",set:function(e){var t=Q(e)?e:this.config.autoplay;this.config.autoplay=t},get:function(){return Boolean(this.config.autoplay)}},{key:"currentTrack",set:function(e){rt.set.call(this,e,!1)},get:function(){var e=this.captions,t=e.toggled,i=e.currentTrack;return t?i:-1}},{key:"language",set:function(e){rt.setLanguage.call(this,e,!1)},get:function(){return(rt.getCurrentTrack.call(this)||{}).language}},{key:"pip",set:function(e){if(Ee.pip){var t=Q(e)?e:!this.pip;X(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?lt:ct),X(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}},get:function(){return Ee.pip?ae(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===lt:null}}],[{key:"supported",value:function(e,t,i){return Ee.check(e,t,i)}},{key:"loadSprite",value:function(e,t){return Ge(e,t)}},{key:"setup",value:function(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null;return Y(e)?n=Array.from(document.querySelectorAll(e)):J(e)?n=Array.from(e):$(e)&&(n=e.filter(G)),ae(n)?null:n.map((function(e){return new t(e,i)}))}}]),t}();return Lt.defaults=(It=ot,JSON.parse(JSON.stringify(It))),Lt}));
 
assets/front-end/js/view/general.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var n={};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)r.d(t,o,function(n){return e[n]}.bind(null,o));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=69)}({69:function(e,n,r){"use strict";r.r(n);var t=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(e){return function(n,r,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(n)&&t(r))if("function"==typeof i)if("number"==typeof u){var c={callback:i,priority:u,namespace:r};if(e[n]){var a,l=e[n].handlers;for(a=l.length;a>0&&!(u>=l[a-1].priority);a--);a===l.length?l[a]=c:l.splice(a,0,c),(e.__current||[]).forEach((function(e){e.name===n&&e.currentIndex>=a&&e.currentIndex++}))}else e[n]={handlers:[c],runs:0};"hookAdded"!==n&&p("hookAdded",n,r,i,u)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var u=function(e,n){return function(r,i){if(o(r)&&(n||t(i))){if(!e[r])return 0;var u=0;if(n)u=e[r].handlers.length,e[r]={runs:e[r].runs,handlers:[]};else for(var c=e[r].handlers,a=function(n){c[n].namespace===i&&(c.splice(n,1),u++,(e.__current||[]).forEach((function(e){e.name===r&&e.currentIndex>=n&&e.currentIndex--})))},l=c.length-1;l>=0;l--)a(l);return"hookRemoved"!==r&&p("hookRemoved",r,i),u}}};var c=function(e){return function(n,r){return void 0!==r?n in e&&e[n].handlers.some((function(e){return e.namespace===r})):n in e}};var a=function(e,n){return function(r){e[r]||(e[r]={handlers:[],runs:0}),e[r].runs++;var t=e[r].handlers;for(var o=arguments.length,i=new Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=arguments[u];if(!t||!t.length)return n?i[0]:void 0;var c={name:r,currentIndex:0};for(e.__current.push(c);c.currentIndex<t.length;){var a=t[c.currentIndex],l=a.callback.apply(null,i);n&&(i[0]=l),c.currentIndex++}return e.__current.pop(),n?i[0]:void 0}};var l=function(e){return function(){return e.__current&&e.__current.length?e.__current[e.__current.length-1].name:null}};var d=function(e){return function(n){return void 0===n?void 0!==e.__current[0]:!!e.__current[0]&&n===e.__current[0].name}};var s=function(e){return function(n){if(o(n))return e[n]&&e[n].runs?e[n].runs:0}};var f=function(){var e=Object.create(null),n=Object.create(null);return e.__current=[],n.__current=[],{addAction:i(e),addFilter:i(n),removeAction:u(e),removeFilter:u(n),hasAction:c(e),hasFilter:c(n),removeAllActions:u(e,!0),removeAllFilters:u(n,!0),doAction:a(e),applyFilters:a(n,!0),currentAction:l(e),currentFilter:l(n),doingAction:d(e),doingFilter:d(n),didAction:s(e),didFilter:s(n),actions:e,filters:n}},h=f(),p=(h.addAction,h.addFilter,h.removeAction,h.removeFilter,h.hasAction,h.hasFilter,h.removeAllActions,h.removeAllFilters,h.doAction);h.applyFilters,h.currentAction,h.currentFilter,h.doingAction,h.doingFilter,h.didAction,h.didFilter,h.actions,h.filters;window.isEditMode=!1,window.ea={hooks:f(),isEditMode:!1},jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.ea.isEditMode=elementorFrontend.isEditMode(),ea.hooks.doAction("init"),ea.isEditMode&&ea.hooks.doAction("editMode.init")}))}});
1
+ !function(e){var n={};function r(t){if(n[t])return n[t].exports;var o=n[t]={i:t,l:!1,exports:{}};return e[t].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=n,r.d=function(e,n,t){r.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,n){if(1&n&&(e=r(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(r.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)r.d(t,o,function(n){return e[n]}.bind(null,o));return t},r.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(n,"a",n),n},r.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},r.p="",r(r.s=71)}({71:function(e,n,r){"use strict";r.r(n);var t=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var o=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var i=function(e){return function(n,r,i){var u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(o(n)&&t(r))if("function"==typeof i)if("number"==typeof u){var c={callback:i,priority:u,namespace:r};if(e[n]){var a,l=e[n].handlers;for(a=l.length;a>0&&!(u>=l[a-1].priority);a--);a===l.length?l[a]=c:l.splice(a,0,c),(e.__current||[]).forEach((function(e){e.name===n&&e.currentIndex>=a&&e.currentIndex++}))}else e[n]={handlers:[c],runs:0};"hookAdded"!==n&&p("hookAdded",n,r,i,u)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var u=function(e,n){return function(r,i){if(o(r)&&(n||t(i))){if(!e[r])return 0;var u=0;if(n)u=e[r].handlers.length,e[r]={runs:e[r].runs,handlers:[]};else for(var c=e[r].handlers,a=function(n){c[n].namespace===i&&(c.splice(n,1),u++,(e.__current||[]).forEach((function(e){e.name===r&&e.currentIndex>=n&&e.currentIndex--})))},l=c.length-1;l>=0;l--)a(l);return"hookRemoved"!==r&&p("hookRemoved",r,i),u}}};var c=function(e){return function(n,r){return void 0!==r?n in e&&e[n].handlers.some((function(e){return e.namespace===r})):n in e}};var a=function(e,n){return function(r){e[r]||(e[r]={handlers:[],runs:0}),e[r].runs++;var t=e[r].handlers;for(var o=arguments.length,i=new Array(o>1?o-1:0),u=1;u<o;u++)i[u-1]=arguments[u];if(!t||!t.length)return n?i[0]:void 0;var c={name:r,currentIndex:0};for(e.__current.push(c);c.currentIndex<t.length;){var a=t[c.currentIndex],l=a.callback.apply(null,i);n&&(i[0]=l),c.currentIndex++}return e.__current.pop(),n?i[0]:void 0}};var l=function(e){return function(){return e.__current&&e.__current.length?e.__current[e.__current.length-1].name:null}};var d=function(e){return function(n){return void 0===n?void 0!==e.__current[0]:!!e.__current[0]&&n===e.__current[0].name}};var s=function(e){return function(n){if(o(n))return e[n]&&e[n].runs?e[n].runs:0}};var f=function(){var e=Object.create(null),n=Object.create(null);return e.__current=[],n.__current=[],{addAction:i(e),addFilter:i(n),removeAction:u(e),removeFilter:u(n),hasAction:c(e),hasFilter:c(n),removeAllActions:u(e,!0),removeAllFilters:u(n,!0),doAction:a(e),applyFilters:a(n,!0),currentAction:l(e),currentFilter:l(n),doingAction:d(e),doingFilter:d(n),didAction:s(e),didFilter:s(n),actions:e,filters:n}},h=f(),p=(h.addAction,h.addFilter,h.removeAction,h.removeFilter,h.hasAction,h.hasFilter,h.removeAllActions,h.removeAllFilters,h.doAction);h.applyFilters,h.currentAction,h.currentFilter,h.doingAction,h.doingFilter,h.didAction,h.didFilter,h.actions,h.filters;window.isEditMode=!1,window.ea={hooks:f(),isEditMode:!1},jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.ea.isEditMode=elementorFrontend.isEditMode(),ea.hooks.doAction("init"),ea.isEditMode&&ea.hooks.doAction("editMode.init")}))}});
assets/front-end/js/view/load-more.js CHANGED
@@ -93,7 +93,7 @@
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
- eval("(function ($) {\n \"use strict\";\n\n $(document).on(\"click\", \".eael-load-more-button\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n var $this = $(this),\n $text = $(\"span\", $this).html(),\n $widget_id = $this.data(\"widget\"),\n $scope = $(\".elementor-element-\" + $widget_id),\n $class = $this.data(\"class\"),\n $args = $this.data(\"args\"),\n $settings = $this.data(\"settings\"),\n $layout = $this.data(\"layout\"),\n $page = parseInt($this.data(\"page\")) + 1;\n\n if (typeof $widget_id == \"undefined\" || typeof $args == \"undefined\") {\n return;\n }\n\n var obj = {};\n var $data = {\n action: \"load_more\",\n \"class\": $class,\n args: $args,\n settings: $settings,\n page: $page\n };\n String($args).split(\"&\").forEach(function (item, index) {\n var arr = String(item).split(\"=\");\n obj[arr[0]] = arr[1];\n });\n\n if (obj.orderby == \"rand\") {\n var $printed = $(\".eael-grid-post\");\n\n if ($printed.length) {\n var $ids = [];\n $printed.each(function (index, item) {\n var $id = $(item).data(\"id\");\n $ids.push($id);\n });\n $data.post__not_in = $ids;\n }\n }\n\n $this.addClass(\"button--loading\");\n $(\"span\", $this).html(\"Loading...\");\n $.ajax({\n url: localize.ajaxurl,\n type: \"post\",\n data: $data,\n success: function success(response) {\n var $content = $(response);\n\n if ($content.hasClass(\"no-posts-found\") || $content.length == 0) {\n $this.remove();\n } else {\n if ($data[\"class\"] == \"Essential_Addons_Elementor\\\\Elements\\\\Product_Grid\") {\n $(\".eael-product-grid .products\", $scope).append($content);\n } else {\n $(\".eael-post-appender\", $scope).append($content);\n\n if ($layout == \"masonry\") {\n var $isotope = $(\".eael-post-appender\", $scope).isotope();\n $isotope.isotope(\"appended\", $content).isotope(\"layout\");\n $isotope.imagesLoaded().progress(function () {\n $isotope.isotope(\"layout\");\n });\n }\n }\n\n $this.removeClass(\"button--loading\");\n $(\"span\", $this).html($text);\n $this.data(\"page\", $page);\n }\n },\n error: function error(response) {\n console.log(response);\n }\n });\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/load-more.js?");
97
 
98
  /***/ })
99
 
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
+ eval("(function ($) {\n \"use strict\";\n\n $(document).on(\"click\", \".eael-load-more-button\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n var $this = $(this),\n $text = $(\"span\", $this).html(),\n $widget_id = $this.data(\"widget\"),\n $scope = $(\".elementor-element-\" + $widget_id),\n $class = $this.data(\"class\"),\n $args = $this.data(\"args\"),\n $settings = $this.data(\"settings\"),\n $layout = $this.data(\"layout\"),\n $template_info = $this.data('template'),\n $page = parseInt($this.data(\"page\")) + 1;\n\n if (typeof $widget_id == \"undefined\" || typeof $args == \"undefined\") {\n return;\n }\n\n var obj = {};\n var $data = {\n action: \"load_more\",\n \"class\": $class,\n args: $args,\n settings: $settings,\n page: $page,\n template_info: $template_info\n };\n String($args).split(\"&\").forEach(function (item, index) {\n var arr = String(item).split(\"=\");\n obj[arr[0]] = arr[1];\n });\n\n if (obj.orderby == \"rand\") {\n var $printed = $(\".eael-grid-post\");\n\n if ($printed.length) {\n var $ids = [];\n $printed.each(function (index, item) {\n var $id = $(item).data(\"id\");\n $ids.push($id);\n });\n $data.post__not_in = $ids;\n }\n }\n\n $this.addClass(\"button--loading\");\n $(\"span\", $this).html(\"Loading...\");\n $.ajax({\n url: localize.ajaxurl,\n type: \"post\",\n data: $data,\n success: function success(response) {\n var $content = $(response);\n\n if ($content.hasClass(\"no-posts-found\") || $content.length == 0) {\n $this.remove();\n } else {\n if ($data[\"class\"] == \"Essential_Addons_Elementor\\\\Elements\\\\Product_Grid\") {\n $(\".eael-product-grid .products\", $scope).append($content);\n } else {\n $(\".eael-post-appender\", $scope).append($content);\n\n if ($layout == \"masonry\") {\n var $isotope = $(\".eael-post-appender\", $scope).isotope();\n $isotope.isotope(\"appended\", $content).isotope(\"layout\");\n $isotope.imagesLoaded().progress(function () {\n $isotope.isotope(\"layout\");\n });\n }\n }\n\n $this.removeClass(\"button--loading\");\n $(\"span\", $this).html($text);\n $this.data(\"page\", $page);\n }\n },\n error: function error(response) {\n console.log(response);\n }\n });\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/load-more.js?");
97
 
98
  /***/ })
99
 
assets/front-end/js/view/load-more.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function o(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,o),a.l=!0,a.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)o.d(n,a,function(t){return e[t]}.bind(null,a));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=12)}({12:function(e,t){!function(e){"use strict";e(document).on("click",".eael-load-more-button",(function(t){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation();var o=e(this),n=e("span",o).html(),a=o.data("widget"),r=e(".elementor-element-"+a),i=o.data("class"),s=o.data("args"),l=o.data("settings"),u=o.data("layout"),d=parseInt(o.data("page"))+1;if(void 0!==a&&void 0!==s){var p={},c={action:"load_more",class:i,args:s,settings:l,page:d};if(String(s).split("&").forEach((function(e,t){var o=String(e).split("=");p[o[0]]=o[1]})),"rand"==p.orderby){var f=e(".eael-grid-post");if(f.length){var g=[];f.each((function(t,o){var n=e(o).data("id");g.push(n)})),c.post__not_in=g}}o.addClass("button--loading"),e("span",o).html("Loading..."),e.ajax({url:localize.ajaxurl,type:"post",data:c,success:function(t){var a=e(t);if(a.hasClass("no-posts-found")||0==a.length)o.remove();else{if("Essential_Addons_Elementor\\Elements\\Product_Grid"==c.class)e(".eael-product-grid .products",r).append(a);else if(e(".eael-post-appender",r).append(a),"masonry"==u){var i=e(".eael-post-appender",r).isotope();i.isotope("appended",a).isotope("layout"),i.imagesLoaded().progress((function(){i.isotope("layout")}))}o.removeClass("button--loading"),e("span",o).html(n),o.data("page",d)}},error:function(e){console.log(e)}})}}))}(jQuery)}});
1
+ !function(e){var t={};function o(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,o),a.l=!0,a.exports}o.m=e,o.c=t,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)o.d(n,a,function(t){return e[t]}.bind(null,a));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=12)}({12:function(e,t){!function(e){"use strict";e(document).on("click",".eael-load-more-button",(function(t){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation();var o=e(this),n=e("span",o).html(),a=o.data("widget"),r=e(".elementor-element-"+a),i=o.data("class"),s=o.data("args"),l=o.data("settings"),u=o.data("layout"),d=o.data("template"),p=parseInt(o.data("page"))+1;if(void 0!==a&&void 0!==s){var c={},f={action:"load_more",class:i,args:s,settings:l,page:p,template_info:d};if(String(s).split("&").forEach((function(e,t){var o=String(e).split("=");c[o[0]]=o[1]})),"rand"==c.orderby){var g=e(".eael-grid-post");if(g.length){var m=[];g.each((function(t,o){var n=e(o).data("id");m.push(n)})),f.post__not_in=m}}o.addClass("button--loading"),e("span",o).html("Loading..."),e.ajax({url:localize.ajaxurl,type:"post",data:f,success:function(t){var a=e(t);if(a.hasClass("no-posts-found")||0==a.length)o.remove();else{if("Essential_Addons_Elementor\\Elements\\Product_Grid"==f.class)e(".eael-product-grid .products",r).append(a);else if(e(".eael-post-appender",r).append(a),"masonry"==u){var i=e(".eael-post-appender",r).isotope();i.isotope("appended",a).isotope("layout"),i.imagesLoaded().progress((function(){i.isotope("layout")}))}o.removeClass("button--loading"),e("span",o).html(n),o.data("page",p)}},error:function(e){console.log(e)}})}}))}(jQuery)}});
assets/front-end/js/view/reading-progress.js CHANGED
@@ -93,7 +93,7 @@
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
- eval("jQuery(document).ready(function () {\n // scroll func\n jQuery(window).scroll(function () {\n var winScroll = document.body.scrollTop || document.documentElement.scrollTop;\n var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n var scrolled = winScroll / height * 100;\n jQuery(\".eael-reading-progress-fill\").css({\n width: scrolled + \"%\"\n });\n }); // live prev\n\n if (isEditMode) {\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress\", function (newValue) {\n var $settings = elementor.settings.page.getSettings();\n\n if (newValue == \"yes\") {\n if (jQuery(\".eael-reading-progress-wrap\").length == 0) {\n jQuery(\"body\").append('<div class=\"eael-reading-progress-wrap eael-reading-progress-wrap-local\"><div class=\"eael-reading-progress eael-reading-progress-local eael-reading-progress-' + $settings.settings.eael_ext_reading_progress_position + '\"><div class=\"eael-reading-progress-fill\"></div></div><div class=\"eael-reading-progress eael-reading-progress-global eael-reading-progress-' + $settings.settings.eael_ext_reading_progress_position + '\"><div class=\"eael-reading-progress-fill\"></div></div></div>');\n }\n\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-local\").removeClass(\"eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled\");\n } else {\n jQuery(\".eael-reading-progress-wrap\").removeClass(\"eael-reading-progress-wrap-local eael-reading-progress-wrap-global\");\n\n if ($settings.settings.eael_ext_reading_progress_has_global == true) {\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-global\");\n } else {\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-disabled\");\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress_position\", function (newValue) {\n elementor.settings.page.setSettings(\"eael_ext_reading_progress_position\", newValue);\n jQuery(\".eael-reading-progress\").removeClass(\"eael-reading-progress-top eael-reading-progress-bottom\").addClass(\"eael-reading-progress-\" + newValue);\n });\n }\n});\n\n//# sourceURL=webpack:///./src/js/view/reading-progress.js?");
97
 
98
  /***/ })
99
 
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
+ eval("jQuery(document).ready(function () {\n // scroll func\n jQuery(window).scroll(function () {\n var winScroll = document.body.scrollTop || document.documentElement.scrollTop;\n var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n var scrolled = winScroll / height * 100;\n jQuery(\".eael-reading-progress-fill\").css({\n width: scrolled + \"%\"\n });\n });\n});\n\n//# sourceURL=webpack:///./src/js/view/reading-progress.js?");
97
 
98
  /***/ })
99
 
assets/front-end/js/view/reading-progress.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var r={};function a(s){if(r[s])return r[s].exports;var n=r[s]={i:s,l:!1,exports:{}};return e[s].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=r,a.d=function(e,r,s){a.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:s})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,r){if(1&r&&(e=a(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(a.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)a.d(s,n,function(r){return e[r]}.bind(null,n));return s},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="",a(a.s=17)}({17:function(e,r){jQuery(document).ready((function(){jQuery(window).scroll((function(){var e=(document.body.scrollTop||document.documentElement.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)*100;jQuery(".eael-reading-progress-fill").css({width:e+"%"})})),isEditMode&&(elementor.settings.page.addChangeCallback("eael_ext_reading_progress",(function(e){var r=elementor.settings.page.getSettings();"yes"==e?(0==jQuery(".eael-reading-progress-wrap").length&&jQuery("body").append('<div class="eael-reading-progress-wrap eael-reading-progress-wrap-local"><div class="eael-reading-progress eael-reading-progress-local eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div><div class="eael-reading-progress eael-reading-progress-global eael-reading-progress-'+r.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div></div>'),jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-local").removeClass("eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled")):(jQuery(".eael-reading-progress-wrap").removeClass("eael-reading-progress-wrap-local eael-reading-progress-wrap-global"),1==r.settings.eael_ext_reading_progress_has_global?jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-global"):jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-disabled"))})),elementor.settings.page.addChangeCallback("eael_ext_reading_progress_position",(function(e){elementor.settings.page.setSettings("eael_ext_reading_progress_position",e),jQuery(".eael-reading-progress").removeClass("eael-reading-progress-top eael-reading-progress-bottom").addClass("eael-reading-progress-"+e)})))}))}});
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=17)}({17:function(e,t){jQuery(document).ready((function(){jQuery(window).scroll((function(){var e=(document.body.scrollTop||document.documentElement.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)*100;jQuery(".eael-reading-progress-fill").css({width:e+"%"})}))}))}});
assets/front-end/js/view/table-of-content.js CHANGED
@@ -93,7 +93,7 @@
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
- eval("function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n(function ($) {\n jQuery(document).ready(function () {\n /**\n * add ID in main content heading tag\n * @param selector\n * @param supportTag\n */\n function eael_toc_content(selector, supportTag) {\n var listId = document.getElementById(\"eael-toc-list\");\n\n if (selector === null || supportTag === undefined || !listId) {\n return null;\n }\n\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== 'undefined' ? eaelToc.dataset.titleurl : 'false';\n var excludeArr = typeof eaelToc.dataset.excludeSelector !== 'undefined' ? eaelToc.dataset.excludeSelector.replace(/^,|,$/g, '') : '';\n var allSupportTag = [];\n var mainSelector = document.querySelectorAll(selector),\n listIndex = 0;\n\n for (var j = 0; j < mainSelector.length; j++) {\n allSupportTag = [].concat(_toConsumableArray(allSupportTag), _toConsumableArray(mainSelector[j].querySelectorAll(supportTag)));\n }\n\n allSupportTag = Array.from(new Set(allSupportTag));\n allSupportTag.forEach(function (el) {\n if (eaelTocExclude(excludeArr, el)) {\n return;\n }\n\n el.id = listIndex + \"-\" + eael_build_id(titleUrl, el.textContent);\n el.classList.add(\"eael-heading-content\");\n listIndex++;\n }); //build toc list hierarchy\n\n eael_list_hierarchy(selector, supportTag, allSupportTag);\n var firstChild = $(\"ul.eael-toc-list > li\");\n\n if (firstChild.length < 1) {\n document.getElementById(\"eael-toc\").classList.add(\"eael-toc-disable\");\n }\n\n firstChild.each(function () {\n this.classList.add(\"eael-first-child\");\n });\n }\n /**\n * Make toc list\n * @param selector\n * @param supportTag\n */\n\n\n function eael_list_hierarchy(selector, supportTag, allSupportTagList) {\n var tagList = supportTag;\n var allHeadings = allSupportTagList;\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== 'undefined' ? eaelToc.dataset.titleurl : 'false';\n var listId = document.getElementById(\"eael-toc-list\");\n var excludeArr = typeof eaelToc.dataset.excludeselector !== 'undefined' ? eaelToc.dataset.excludeselector.replace(/^,|,$/g, '') : '';\n var parentLevel = '',\n baseTag = parentLevel = tagList.trim().split(\",\")[0].substr(1, 1),\n ListNode = listId;\n listId.innerHTML = \"\";\n\n if (allHeadings.length > 0) {\n document.getElementById(\"eael-toc\").classList.remove(\"eael-toc-disable\");\n }\n\n for (var i = 0, len = allHeadings.length; i < len; ++i) {\n var currentHeading = allHeadings[i];\n\n if (eaelTocExclude(excludeArr, currentHeading)) {\n continue;\n }\n\n var latestLavel = parseInt(currentHeading.tagName.substr(1, 1));\n var diff = latestLavel - parentLevel;\n\n if (diff > 0) {\n var containerLiNode = ListNode.lastChild;\n\n if (containerLiNode) {\n var createUlNode = document.createElement(\"UL\");\n containerLiNode.appendChild(createUlNode);\n ListNode = createUlNode;\n parentLevel = latestLavel;\n }\n }\n\n var sequenceParent = false;\n\n if (diff < 0) {\n while (0 !== diff++) {\n if (ListNode.parentNode.parentNode) {\n ListNode = ListNode.parentNode.parentNode;\n }\n }\n\n parentLevel = latestLavel;\n sequenceParent = true;\n }\n\n if (ListNode.tagName !== \"UL\") {\n ListNode = listId;\n }\n\n if (currentHeading.textContent.trim() === \"\") {\n continue;\n }\n\n var liNode = document.createElement(\"LI\");\n var anchorTag = document.createElement(\"A\");\n var spanTag = document.createElement(\"SPAN\");\n\n if (baseTag === parentLevel || sequenceParent) {\n liNode.setAttribute(\"itemscope\", \"\");\n liNode.setAttribute(\"itemtype\", \"http://schema.org/ListItem\");\n liNode.setAttribute(\"itemprop\", \"itemListElement\");\n }\n\n var Linkid = \"#\" + i + \"-\" + eael_build_id(titleUrl, currentHeading.textContent);\n anchorTag.className = \"eael-toc-link\";\n anchorTag.setAttribute(\"itemprop\", \"item\");\n anchorTag.setAttribute(\"href\", Linkid);\n spanTag.appendChild(document.createTextNode(currentHeading.textContent));\n anchorTag.appendChild(spanTag);\n liNode.appendChild(anchorTag);\n ListNode.appendChild(liNode);\n }\n } // expand collapse\n\n\n $(document).on(\"click\", \"ul.eael-toc-list a\", function (e) {\n e.preventDefault();\n $(document).off(\"scroll\");\n var target = this.hash;\n history.pushState(\"\", document.title, window.location.pathname + window.location.search);\n var parentLi = $(this).parent();\n\n if (parentLi.is(\".eael-highlight-parent.eael-highlight-active\")) {\n window.location.hash = target;\n return false;\n }\n\n $(\".eael-highlight-active, .eael-highlight-parent\").removeClass(\"eael-highlight-active eael-highlight-parent\");\n $(this).closest(\".eael-first-child\").addClass(\"eael-highlight-parent\");\n $(this).parent().addClass(\"eael-highlight-active\");\n window.location.hash = target;\n }); //some site not working with **window.onscroll**\n\n window.addEventListener('scroll', function (e) {\n eaelTocSticky();\n });\n var stickyScroll = $('#eael-toc').data('stickyscroll');\n /**\n * Check selector in array\n *\n * @param arr\n * @param el\n * @returns boolean\n */\n\n function eaelTocExclude(excludes, el) {\n return $(el).closest(excludes).length;\n }\n /**\n * check sticky\n */\n\n\n function eaelTocSticky() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (!eaelToc) {\n return;\n }\n\n stickyScroll = stickyScroll !== undefined ? stickyScroll : 200;\n\n if (window.pageYOffset >= stickyScroll && !eaelToc.classList.contains('eael-toc-disable')) {\n eaelToc.classList.add(\"eael-sticky\");\n } else {\n eaelToc.classList.remove(\"eael-sticky\");\n }\n }\n /**\n *\n * @param content\n * @returns {string}\n */\n\n\n function eael_build_id(showTitle, title) {\n if (showTitle == 'true' && title != '') {\n //create slug from Heading text\n return title.toString().toLowerCase().normalize('NFD').trim().replace(/[^a-z0-9 -]/g, '').replace(/\\s+/g, '-').replace(/^-+/, \"\").replace(/-+$/, \"\").replace(/-+/g, '-');\n } else {\n return \"eael-table-of-content\";\n }\n }\n /**\n *\n * @returns {null|selector}\n */\n\n\n function eael_toc_check_content() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (eaelToc && eaelToc.dataset.contentselector) {\n return eaelToc.dataset.contentselector;\n }\n\n var contentSelectro = '.site-content';\n\n if ($(\".site-content\")[0]) {\n contentSelectro = \".site-content\";\n } else if ($(\".elementor-inner\")[0]) {\n contentSelectro = \".elementor-inner\";\n } else if ($(\"#site-content\")[0]) {\n contentSelectro = \"#site-content\";\n }\n\n return contentSelectro;\n } //toc auto collapse\n\n\n $(\"body\").click(function (e) {\n var target = $(e.target);\n var eaToc = $(\"#eael-toc\");\n\n if (eaToc.hasClass(\"eael-toc-auto-collapse\") && eaToc.hasClass(\"eael-sticky\") && !eaToc.hasClass(\"collapsed\") && $(target).closest(\"#eael-toc\").length === 0) {\n eaToc.toggleClass(\"collapsed\");\n }\n });\n $(document).on(\"click\", \".eael-toc-close ,.eael-toc-button\", function (event) {\n event.stopPropagation();\n $(\".eael-toc\").toggleClass(\"collapsed\");\n });\n\n function eael_build_toc($settings) {\n var pageSetting = $settings.settings,\n title = pageSetting.eael_ext_toc_title,\n toc_style_class = \"eael-toc-list eael-toc-list-\" + pageSetting.eael_ext_table_of_content_list_style,\n icon = pageSetting.eael_ext_table_of_content_header_icon.value,\n el_class = pageSetting.eael_ext_toc_position === \"right\" ? \" eael-toc-right\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_collapse_sub_heading === \"yes\" ? \" eael-toc-collapse\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_list_icon === \"number\" ? \" eael-toc-number\" : \" eael-toc-bullet\";\n return '<div id=\"eael-toc\" class=\"eael-toc eael-toc-disable ' + el_class + '\">' + '<div class=\"eael-toc-header\"><span class=\"eael-toc-close\">×</span><h2 class=\"eael-toc-title\">' + title + \"</h2></div>\" + '<div class=\"eael-toc-body\"><ul id=\"eael-toc-list\" class=\"' + toc_style_class + '\"></ul></div>' + '<button class=\"eael-toc-button\"><i class=\"' + icon + '\"></i><span>' + title + \"</span></button>\" + \"</div>\";\n }\n\n var intSupportTag = $(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (intSupportTag !== \"\" && !isEditMode) {\n eael_toc_content(eael_toc_check_content(), intSupportTag);\n } //editor mode\n\n\n if (isEditMode) {\n var eael_toc_list_collapse = function eael_toc_list_collapse(newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-collapse\");\n } else {\n list.removeClass(\"eael-toc-collapse\");\n }\n };\n\n var ea_toc_title_change = function ea_toc_title_change(newValue) {\n elementorFrontend.elements.$document.find(\".eael-toc-title\").text(newValue);\n elementorFrontend.elements.$document.find(\".eael-toc-button span\").text(newValue);\n };\n\n elementorFrontend.hooks.addAction('frontend/element_ready/widget', function ($scope, $) {\n var tocLoad = $('#eael-toc #eael-toc-list');\n var TocList = tocLoad.find('li.eael-first-child');\n\n if (TocList.length < 1 && tocLoad.length >= 1) {\n var tagList = $(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (tagList) {\n eael_toc_content(eael_toc_check_content(), tagList);\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content\", function (newValue) {\n var tocGlobal = $(\".eael-toc-global\");\n\n if (tocGlobal.length > 0) {\n tocGlobal.attr(\"id\", \"eael-toc-temp\").removeClass(\"eael-toc\").hide();\n $(\".eael-toc-global #eael-toc-list\").attr(\"id\", \"\");\n }\n\n $(\"#eael-toc\").remove();\n\n if (newValue === \"yes\") {\n var $settings = elementor.settings.page.getSettings();\n $(\"body\").append(eael_build_toc($settings));\n eael_toc_content(eael_toc_check_content(), $settings.settings.eael_ext_toc_supported_heading_tag.join(\", \"));\n } else {\n if (tocGlobal.length > 0) {\n tocGlobal.addClass(\"eael-toc\").attr(\"id\", \"eael-toc\").show();\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_position\", function (newValue) {\n if (newValue === \"right\") {\n $(\"#eael-toc\").addClass(\"eael-toc-right\");\n } else {\n $(\"#eael-toc\").removeClass(\"eael-toc-right\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_list_style\", function (newValue) {\n var list = $(\".eael-toc-list\");\n list.removeClass(\"eael-toc-list-bar eael-toc-list-arrow\");\n\n if (newValue !== \"none\") {\n list.addClass(\"eael-toc-list-\" + newValue);\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_collapse_sub_heading\", eael_toc_list_collapse);\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_header_icon\", function (newValue) {\n var iconElement = $(\".eael-toc-button i\");\n iconElement.removeClass().addClass(newValue.value);\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_list_icon\", function (newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"number\") {\n list.addClass(\"eael-toc-number\").removeClass(\"eael-toc-bullet\");\n } else {\n list.addClass(\"eael-toc-bullet\").removeClass(\"eael-toc-number\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_word_wrap\", function (newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-word-wrap\");\n } else {\n list.removeClass(\"eael-toc-word-wrap\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_close_button_text_style\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"bottom_to_top\") {\n toc.addClass(\"eael-bottom-to-top\");\n } else {\n toc.removeClass(\"eael-bottom-to-top\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_box_shadow\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-box-shadow\");\n } else {\n toc.removeClass(\"eael-box-shadow\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_auto_collapse\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-toc-auto-collapse\");\n } else {\n toc.removeClass(\"eael-toc-auto-collapse\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_title\", ea_toc_title_change);\n }\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/table-of-content.js?");
97
 
98
  /***/ })
99
 
93
  /*! no static exports found */
94
  /***/ (function(module, exports) {
95
 
96
+ eval("function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n(function ($) {\n jQuery(document).ready(function () {\n /**\n * add ID in main content heading tag\n * @param selector\n * @param supportTag\n */\n function eael_toc_content(selector, supportTag) {\n var listId = document.getElementById(\"eael-toc-list\");\n\n if (selector === null || supportTag === undefined || !listId) {\n return null;\n }\n\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== \"undefined\" ? eaelToc.dataset.titleurl : \"false\";\n var excludeArr = typeof eaelToc.dataset.excludeSelector !== \"undefined\" ? eaelToc.dataset.excludeSelector.replace(/^,|,$/g, \"\") : \"\";\n var allSupportTag = [];\n var mainSelector = document.querySelectorAll(selector),\n listIndex = 0;\n\n for (var j = 0; j < mainSelector.length; j++) {\n allSupportTag = [].concat(_toConsumableArray(allSupportTag), _toConsumableArray(mainSelector[j].querySelectorAll(supportTag)));\n }\n\n allSupportTag = Array.from(new Set(allSupportTag));\n allSupportTag.forEach(function (el) {\n if (eaelTocExclude(excludeArr, el)) {\n return;\n }\n\n el.id = listIndex + \"-\" + eael_build_id(titleUrl, el.textContent);\n el.classList.add(\"eael-heading-content\");\n listIndex++;\n }); //build toc list hierarchy\n\n eael_list_hierarchy(selector, supportTag, allSupportTag);\n var firstChild = $(\"ul.eael-toc-list > li\");\n\n if (firstChild.length < 1) {\n document.getElementById(\"eael-toc\").classList.add(\"eael-toc-disable\");\n }\n\n firstChild.each(function () {\n this.classList.add(\"eael-first-child\");\n });\n }\n /**\n * Make toc list\n * @param selector\n * @param supportTag\n */\n\n\n function eael_list_hierarchy(selector, supportTag, allSupportTagList) {\n var tagList = supportTag;\n var allHeadings = allSupportTagList;\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== \"undefined\" ? eaelToc.dataset.titleurl : \"false\";\n var listId = document.getElementById(\"eael-toc-list\");\n var excludeArr = typeof eaelToc.dataset.excludeselector !== \"undefined\" ? eaelToc.dataset.excludeselector.replace(/^,|,$/g, \"\") : \"\";\n var parentLevel = \"\",\n baseTag = parentLevel = tagList.trim().split(\",\")[0].substr(1, 1),\n ListNode = listId;\n listId.innerHTML = \"\";\n\n if (allHeadings.length > 0) {\n document.getElementById(\"eael-toc\").classList.remove(\"eael-toc-disable\");\n }\n\n for (var i = 0, len = allHeadings.length; i < len; ++i) {\n var currentHeading = allHeadings[i];\n\n if (eaelTocExclude(excludeArr, currentHeading)) {\n continue;\n }\n\n var latestLavel = parseInt(currentHeading.tagName.substr(1, 1));\n var diff = latestLavel - parentLevel;\n\n if (diff > 0) {\n var containerLiNode = ListNode.lastChild;\n\n if (containerLiNode) {\n var createUlNode = document.createElement(\"UL\");\n containerLiNode.appendChild(createUlNode);\n ListNode = createUlNode;\n parentLevel = latestLavel;\n }\n }\n\n var sequenceParent = false;\n\n if (diff < 0) {\n while (0 !== diff++) {\n if (ListNode.parentNode.parentNode) {\n ListNode = ListNode.parentNode.parentNode;\n }\n }\n\n parentLevel = latestLavel;\n sequenceParent = true;\n }\n\n if (ListNode.tagName !== \"UL\") {\n ListNode = listId;\n }\n\n if (currentHeading.textContent.trim() === \"\") {\n continue;\n }\n\n var liNode = document.createElement(\"LI\");\n var anchorTag = document.createElement(\"A\");\n var spanTag = document.createElement(\"SPAN\");\n\n if (baseTag === parentLevel || sequenceParent) {\n liNode.setAttribute(\"itemscope\", \"\");\n liNode.setAttribute(\"itemtype\", \"http://schema.org/ListItem\");\n liNode.setAttribute(\"itemprop\", \"itemListElement\");\n }\n\n var Linkid = \"#\" + i + \"-\" + eael_build_id(titleUrl, currentHeading.textContent);\n anchorTag.className = \"eael-toc-link\";\n anchorTag.setAttribute(\"itemprop\", \"item\");\n anchorTag.setAttribute(\"href\", Linkid);\n spanTag.appendChild(document.createTextNode(currentHeading.textContent));\n anchorTag.appendChild(spanTag);\n liNode.appendChild(anchorTag);\n ListNode.appendChild(liNode);\n }\n } // expand collapse\n\n\n $(document).on(\"click\", \"ul.eael-toc-list a\", function (e) {\n e.preventDefault();\n $(document).off(\"scroll\");\n var target = this.hash;\n history.pushState(\"\", document.title, window.location.pathname + window.location.search);\n var parentLi = $(this).parent();\n\n if (parentLi.is(\".eael-highlight-parent.eael-highlight-active\")) {\n window.location.hash = target;\n return false;\n }\n\n $(\".eael-highlight-active, .eael-highlight-parent\").removeClass(\"eael-highlight-active eael-highlight-parent\");\n $(this).closest(\".eael-first-child\").addClass(\"eael-highlight-parent\");\n $(this).parent().addClass(\"eael-highlight-active\");\n window.location.hash = target;\n }); //some site not working with **window.onscroll**\n\n window.addEventListener(\"scroll\", function (e) {\n eaelTocSticky();\n });\n var stickyScroll = $(\"#eael-toc\").data(\"stickyscroll\");\n /**\n * Check selector in array\n *\n * @param arr\n * @param el\n * @returns boolean\n */\n\n function eaelTocExclude(excludes, el) {\n return $(el).closest(excludes).length;\n }\n /**\n * check sticky\n */\n\n\n function eaelTocSticky() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (!eaelToc) {\n return;\n }\n\n stickyScroll = stickyScroll !== undefined ? stickyScroll : 200;\n\n if (window.pageYOffset >= stickyScroll && !eaelToc.classList.contains(\"eael-toc-disable\")) {\n eaelToc.classList.add(\"eael-sticky\");\n } else {\n eaelToc.classList.remove(\"eael-sticky\");\n }\n }\n /**\n *\n * @param content\n * @returns {string}\n */\n\n\n function eael_build_id(showTitle, title) {\n if (showTitle == \"true\" && title != \"\") {\n //create slug from Heading text\n return title.toString().toLowerCase().normalize(\"NFD\").trim().replace(/[^a-z0-9 -]/g, \"\").replace(/\\s+/g, \"-\").replace(/^-+/, \"\").replace(/-+$/, \"\").replace(/-+/g, \"-\");\n } else {\n return \"eael-table-of-content\";\n }\n }\n /**\n *\n * @returns {null|selector}\n */\n\n\n function eael_toc_check_content() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (eaelToc && eaelToc.dataset.contentselector) {\n return eaelToc.dataset.contentselector;\n }\n\n var contentSelectro = \".site-content\";\n\n if ($(\".site-content\")[0]) {\n contentSelectro = \".site-content\";\n } else if ($(\".elementor-inner\")[0]) {\n contentSelectro = \".elementor-inner\";\n } else if ($(\"#site-content\")[0]) {\n contentSelectro = \"#site-content\";\n } else if ($(\".site-main\")) {\n contentSelectro = \".site-main\";\n }\n\n return contentSelectro;\n } //toc auto collapse\n\n\n $(\"body\").click(function (e) {\n var target = $(e.target);\n var eaToc = $(\"#eael-toc\");\n\n if (eaToc.hasClass(\"eael-toc-auto-collapse\") && eaToc.hasClass(\"eael-sticky\") && !eaToc.hasClass(\"collapsed\") && $(target).closest(\"#eael-toc\").length === 0) {\n eaToc.toggleClass(\"collapsed\");\n }\n });\n $(document).on(\"click\", \".eael-toc-close ,.eael-toc-button\", function (event) {\n event.stopPropagation();\n $(\".eael-toc\").toggleClass(\"collapsed\");\n });\n\n function eael_build_toc($settings) {\n var pageSetting = $settings.settings,\n title = pageSetting.eael_ext_toc_title,\n toc_style_class = \"eael-toc-list eael-toc-list-\" + pageSetting.eael_ext_table_of_content_list_style,\n icon = pageSetting.eael_ext_table_of_content_header_icon.value,\n el_class = pageSetting.eael_ext_toc_position === \"right\" ? \" eael-toc-right\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_collapse_sub_heading === \"yes\" ? \" eael-toc-collapse\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_list_icon === \"number\" ? \" eael-toc-number\" : \" eael-toc-bullet\";\n return '<div id=\"eael-toc\" class=\"eael-toc eael-toc-disable ' + el_class + '\">' + '<div class=\"eael-toc-header\"><span class=\"eael-toc-close\">×</span><h2 class=\"eael-toc-title\">' + title + \"</h2></div>\" + '<div class=\"eael-toc-body\"><ul id=\"eael-toc-list\" class=\"' + toc_style_class + '\"></ul></div>' + '<button class=\"eael-toc-button\"><i class=\"' + icon + '\"></i><span>' + title + \"</span></button>\" + \"</div>\";\n }\n\n if (typeof ea !== 'undefined') {\n ea.hooks.addAction(\"editMode.init\", \"ea\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/widget\", function ($scope, jQuery) {\n var tocLoad = jQuery(\"#eael-toc #eael-toc-list\");\n var TocList = tocLoad.find(\"li.eael-first-child\");\n\n if (TocList.length < 1 && tocLoad.length >= 1) {\n var tagList = jQuery(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (tagList) {\n eael_toc_content(eael_toc_check_content(), tagList);\n }\n }\n });\n });\n }\n\n var editMode = typeof isEditMode !== 'undefined' ? isEditMode : false;\n var intSupportTag = $(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (intSupportTag !== \"\" && !editMode) {\n eael_toc_content(eael_toc_check_content(), intSupportTag);\n }\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/table-of-content.js?");
97
 
98
  /***/ })
99
 
assets/front-end/js/view/table-of-content.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function a(l){if(t[l])return t[l].exports;var o=t[l]={i:l,l:!1,exports:{}};return e[l].call(o.exports,o,o.exports,a),o.l=!0,o.exports}a.m=e,a.c=t,a.d=function(e,t,l){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:l})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var l=Object.create(null);if(a.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)a.d(l,o,function(t){return e[t]}.bind(null,o));return l},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=19)}({19:function(e,t){function a(e){return function(e){if(Array.isArray(e))return l(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return l(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return l(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,l=new Array(t);a<t;a++)l[a]=e[a];return l}var o;o=jQuery,jQuery(document).ready((function(){function e(e,t){var c=document.getElementById("eael-toc-list");if(null===e||void 0===t||!c)return null;for(var r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=void 0!==r.dataset.excludeSelector?r.dataset.excludeSelector.replace(/^,|,$/g,""):"",d=[],u=document.querySelectorAll(e),g=0,m=0;m<u.length;m++)d=[].concat(a(d),a(u[m].querySelectorAll(t)));(d=Array.from(new Set(d))).forEach((function(e){l(i,e)||(e.id=g+"-"+n(s,e.textContent),e.classList.add("eael-heading-content"),g++)})),function(e,t,a){var o=t,c=a,r=document.getElementById("eael-toc"),s=void 0!==r.dataset.titleurl?r.dataset.titleurl:"false",i=document.getElementById("eael-toc-list"),d=void 0!==r.dataset.excludeselector?r.dataset.excludeselector.replace(/^,|,$/g,""):"",u="",g=u=o.trim().split(",")[0].substr(1,1),m=i;i.innerHTML="",c.length>0&&document.getElementById("eael-toc").classList.remove("eael-toc-disable");for(var p=0,f=c.length;p<f;++p){var h=c[p];if(!l(d,h)){var _=parseInt(h.tagName.substr(1,1)),b=_-u;if(b>0){var v=m.lastChild;if(v){var C=document.createElement("UL");v.appendChild(C),m=C,u=_}}var y=!1;if(b<0){for(;0!=b++;)m.parentNode.parentNode&&(m=m.parentNode.parentNode);u=_,y=!0}if("UL"!==m.tagName&&(m=i),""!==h.textContent.trim()){var x=document.createElement("LI"),w=document.createElement("A"),k=document.createElement("SPAN");(g===u||y)&&(x.setAttribute("itemscope",""),x.setAttribute("itemtype","http://schema.org/ListItem"),x.setAttribute("itemprop","itemListElement"));var S="#"+p+"-"+n(s,h.textContent);w.className="eael-toc-link",w.setAttribute("itemprop","item"),w.setAttribute("href",S),k.appendChild(document.createTextNode(h.textContent)),w.appendChild(k),x.appendChild(w),m.appendChild(x)}}}}(0,t,d);var p=o("ul.eael-toc-list > li");p.length<1&&document.getElementById("eael-toc").classList.add("eael-toc-disable"),p.each((function(){this.classList.add("eael-first-child")}))}o(document).on("click","ul.eael-toc-list a",(function(e){e.preventDefault(),o(document).off("scroll");var t=this.hash;if(history.pushState("",document.title,window.location.pathname+window.location.search),o(this).parent().is(".eael-highlight-parent.eael-highlight-active"))return window.location.hash=t,!1;o(".eael-highlight-active, .eael-highlight-parent").removeClass("eael-highlight-active eael-highlight-parent"),o(this).closest(".eael-first-child").addClass("eael-highlight-parent"),o(this).parent().addClass("eael-highlight-active"),window.location.hash=t})),window.addEventListener("scroll",(function(e){var a;(a=document.getElementById("eael-toc"))&&(t=void 0!==t?t:200,window.pageYOffset>=t&&!a.classList.contains("eael-toc-disable")?a.classList.add("eael-sticky"):a.classList.remove("eael-sticky"))}));var t=o("#eael-toc").data("stickyscroll");function l(e,t){return o(t).closest(e).length}function n(e,t){return"true"==e&&""!=t?t.toString().toLowerCase().normalize("NFD").trim().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-+/g,"-"):"eael-table-of-content"}function c(){var e=document.getElementById("eael-toc");if(e&&e.dataset.contentselector)return e.dataset.contentselector;var t=".site-content";return o(".site-content")[0]?t=".site-content":o(".elementor-inner")[0]?t=".elementor-inner":o("#site-content")[0]&&(t="#site-content"),t}o("body").click((function(e){var t=o(e.target),a=o("#eael-toc");a.hasClass("eael-toc-auto-collapse")&&a.hasClass("eael-sticky")&&!a.hasClass("collapsed")&&0===o(t).closest("#eael-toc").length&&a.toggleClass("collapsed")})),o(document).on("click",".eael-toc-close ,.eael-toc-button",(function(e){e.stopPropagation(),o(".eael-toc").toggleClass("collapsed")}));var r=o("#eael-toc").data("eaeltoctag");""===r||isEditMode||e(c(),r),isEditMode&&(elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t,a){var l=a("#eael-toc #eael-toc-list");if(l.find("li.eael-first-child").length<1&&l.length>=1){var o=a("#eael-toc").data("eaeltoctag");o&&e(c(),o)}})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content",(function(t){var a=o(".eael-toc-global");if(a.length>0&&(a.attr("id","eael-toc-temp").removeClass("eael-toc").hide(),o(".eael-toc-global #eael-toc-list").attr("id","")),o("#eael-toc").remove(),"yes"===t){var l=elementor.settings.page.getSettings();o("body").append(function(e){var t=e.settings,a=t.eael_ext_toc_title,l="eael-toc-list eael-toc-list-"+t.eael_ext_table_of_content_list_style,o=t.eael_ext_table_of_content_header_icon.value,n="right"===t.eael_ext_toc_position?" eael-toc-right":" ";return l+="yes"===t.eael_ext_toc_collapse_sub_heading?" eael-toc-collapse":" ",'<div id="eael-toc" class="eael-toc eael-toc-disable '+n+'"><div class="eael-toc-header"><span class="eael-toc-close">×</span><h2 class="eael-toc-title">'+a+'</h2></div><div class="eael-toc-body"><ul id="eael-toc-list" class="'+(l+="number"===t.eael_ext_toc_list_icon?" eael-toc-number":" eael-toc-bullet")+'"></ul></div><button class="eael-toc-button"><i class="'+o+'"></i><span>'+a+"</span></button></div>"}(l)),e(c(),l.settings.eael_ext_toc_supported_heading_tag.join(", "))}else a.length>0&&a.addClass("eael-toc").attr("id","eael-toc").show()})),elementor.settings.page.addChangeCallback("eael_ext_toc_position",(function(e){"right"===e?o("#eael-toc").addClass("eael-toc-right"):o("#eael-toc").removeClass("eael-toc-right")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_list_style",(function(e){var t=o(".eael-toc-list");t.removeClass("eael-toc-list-bar eael-toc-list-arrow"),"none"!==e&&t.addClass("eael-toc-list-"+e)})),elementor.settings.page.addChangeCallback("eael_ext_toc_collapse_sub_heading",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-collapse"):t.removeClass("eael-toc-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_header_icon",(function(e){o(".eael-toc-button i").removeClass().addClass(e.value)})),elementor.settings.page.addChangeCallback("eael_ext_toc_list_icon",(function(e){var t=o(".eael-toc-list");"number"===e?t.addClass("eael-toc-number").removeClass("eael-toc-bullet"):t.addClass("eael-toc-bullet").removeClass("eael-toc-number")})),elementor.settings.page.addChangeCallback("eael_ext_toc_word_wrap",(function(e){var t=o(".eael-toc-list");"yes"===e?t.addClass("eael-toc-word-wrap"):t.removeClass("eael-toc-word-wrap")})),elementor.settings.page.addChangeCallback("eael_ext_toc_close_button_text_style",(function(e){var t=o("#eael-toc");"bottom_to_top"===e?t.addClass("eael-bottom-to-top"):t.removeClass("eael-bottom-to-top")})),elementor.settings.page.addChangeCallback("eael_ext_toc_box_shadow",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-box-shadow"):t.removeClass("eael-box-shadow")})),elementor.settings.page.addChangeCallback("eael_ext_toc_auto_collapse",(function(e){var t=o("#eael-toc");"yes"===e?t.addClass("eael-toc-auto-collapse"):t.removeClass("eael-toc-auto-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_toc_title",(function(e){elementorFrontend.elements.$document.find(".eael-toc-title").text(e),elementorFrontend.elements.$document.find(".eael-toc-button span").text(e)})))}))}});
1
+ !function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=19)}({19:function(e,t){function n(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var o;o=jQuery,jQuery(document).ready((function(){function e(e,t){var l=document.getElementById("eael-toc-list");if(null===e||void 0===t||!l)return null;for(var i=document.getElementById("eael-toc"),c=void 0!==i.dataset.titleurl?i.dataset.titleurl:"false",s=void 0!==i.dataset.excludeSelector?i.dataset.excludeSelector.replace(/^,|,$/g,""):"",d=[],u=document.querySelectorAll(e),f=0,m=0;m<u.length;m++)d=[].concat(n(d),n(u[m].querySelectorAll(t)));(d=Array.from(new Set(d))).forEach((function(e){a(s,e)||(e.id=f+"-"+r(c,e.textContent),e.classList.add("eael-heading-content"),f++)})),function(e,t,n){var o=t,l=n,i=document.getElementById("eael-toc"),c=void 0!==i.dataset.titleurl?i.dataset.titleurl:"false",s=document.getElementById("eael-toc-list"),d=void 0!==i.dataset.excludeselector?i.dataset.excludeselector.replace(/^,|,$/g,""):"",u="",f=u=o.trim().split(",")[0].substr(1,1),m=s;s.innerHTML="",l.length>0&&document.getElementById("eael-toc").classList.remove("eael-toc-disable");for(var h=0,p=l.length;h<p;++h){var g=l[h];if(!a(d,g)){var y=parseInt(g.tagName.substr(1,1)),v=y-u;if(v>0){var b=m.lastChild;if(b){var C=document.createElement("UL");b.appendChild(C),m=C,u=y}}var w=!1;if(v<0){for(;0!=v++;)m.parentNode.parentNode&&(m=m.parentNode.parentNode);u=y,w=!0}if("UL"!==m.tagName&&(m=s),""!==g.textContent.trim()){var A=document.createElement("LI"),E=document.createElement("A"),S=document.createElement("SPAN");(f===u||w)&&(A.setAttribute("itemscope",""),A.setAttribute("itemtype","http://schema.org/ListItem"),A.setAttribute("itemprop","itemListElement"));var L="#"+h+"-"+r(c,g.textContent);E.className="eael-toc-link",E.setAttribute("itemprop","item"),E.setAttribute("href",L),S.appendChild(document.createTextNode(g.textContent)),E.appendChild(S),A.appendChild(E),m.appendChild(A)}}}}(0,t,d);var h=o("ul.eael-toc-list > li");h.length<1&&document.getElementById("eael-toc").classList.add("eael-toc-disable"),h.each((function(){this.classList.add("eael-first-child")}))}o(document).on("click","ul.eael-toc-list a",(function(e){e.preventDefault(),o(document).off("scroll");var t=this.hash;if(history.pushState("",document.title,window.location.pathname+window.location.search),o(this).parent().is(".eael-highlight-parent.eael-highlight-active"))return window.location.hash=t,!1;o(".eael-highlight-active, .eael-highlight-parent").removeClass("eael-highlight-active eael-highlight-parent"),o(this).closest(".eael-first-child").addClass("eael-highlight-parent"),o(this).parent().addClass("eael-highlight-active"),window.location.hash=t})),window.addEventListener("scroll",(function(e){var n;(n=document.getElementById("eael-toc"))&&(t=void 0!==t?t:200,window.pageYOffset>=t&&!n.classList.contains("eael-toc-disable")?n.classList.add("eael-sticky"):n.classList.remove("eael-sticky"))}));var t=o("#eael-toc").data("stickyscroll");function a(e,t){return o(t).closest(e).length}function r(e,t){return"true"==e&&""!=t?t.toString().toLowerCase().normalize("NFD").trim().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-+/g,"-"):"eael-table-of-content"}function l(){var e=document.getElementById("eael-toc");if(e&&e.dataset.contentselector)return e.dataset.contentselector;var t=".site-content";return o(".site-content")[0]?t=".site-content":o(".elementor-inner")[0]?t=".elementor-inner":o("#site-content")[0]?t="#site-content":o(".site-main")&&(t=".site-main"),t}o("body").click((function(e){var t=o(e.target),n=o("#eael-toc");n.hasClass("eael-toc-auto-collapse")&&n.hasClass("eael-sticky")&&!n.hasClass("collapsed")&&0===o(t).closest("#eael-toc").length&&n.toggleClass("collapsed")})),o(document).on("click",".eael-toc-close ,.eael-toc-button",(function(e){e.stopPropagation(),o(".eael-toc").toggleClass("collapsed")})),"undefined"!=typeof ea&&ea.hooks.addAction("editMode.init","ea",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t,n){var a=n("#eael-toc #eael-toc-list");if(a.find("li.eael-first-child").length<1&&a.length>=1){var o=n("#eael-toc").data("eaeltoctag");o&&e(l(),o)}}))}));var i="undefined"!=typeof isEditMode&&isEditMode,c=o("#eael-toc").data("eaeltoctag");""===c||i||e(l(),c)}))}});
assets/front-end/js/view/view.js DELETED
@@ -1,558 +0,0 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
- /******/ }
41
- /******/ };
42
- /******/
43
- /******/ // define __esModule on exports
44
- /******/ __webpack_require__.r = function(exports) {
45
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
- /******/ }
48
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
- /******/ };
50
- /******/
51
- /******/ // create a fake namespace object
52
- /******/ // mode & 1: value is a module id, require it
53
- /******/ // mode & 2: merge all properties of value into the ns
54
- /******/ // mode & 4: return value when already ns object
55
- /******/ // mode & 8|1: behave like require
56
- /******/ __webpack_require__.t = function(value, mode) {
57
- /******/ if(mode & 1) value = __webpack_require__(value);
58
- /******/ if(mode & 8) return value;
59
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
- /******/ var ns = Object.create(null);
61
- /******/ __webpack_require__.r(ns);
62
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
- /******/ return ns;
65
- /******/ };
66
- /******/
67
- /******/ // getDefaultExport function for compatibility with non-harmony modules
68
- /******/ __webpack_require__.n = function(module) {
69
- /******/ var getter = module && module.__esModule ?
70
- /******/ function getDefault() { return module['default']; } :
71
- /******/ function getModuleExports() { return module; };
72
- /******/ __webpack_require__.d(getter, 'a', getter);
73
- /******/ return getter;
74
- /******/ };
75
- /******/
76
- /******/ // Object.prototype.hasOwnProperty.call
77
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
- /******/
79
- /******/ // __webpack_public_path__
80
- /******/ __webpack_require__.p = "";
81
- /******/
82
- /******/
83
- /******/ // Load entry module and return exports
84
- /******/ return __webpack_require__(__webpack_require__.s = 0);
85
- /******/ })
86
- /************************************************************************/
87
- /******/ ({
88
-
89
- /***/ "./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js":
90
- /*!*********************************************************************!*\
91
- !*** ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js ***!
92
- \*********************************************************************/
93
- /*! exports provided: default */
94
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
95
-
96
- "use strict";
97
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayLikeToArray; });\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js?");
98
-
99
- /***/ }),
100
-
101
- /***/ "./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js":
102
- /*!**********************************************************************!*\
103
- !*** ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js ***!
104
- \**********************************************************************/
105
- /*! exports provided: default */
106
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
107
-
108
- "use strict";
109
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _arrayWithoutHoles; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js?");
110
-
111
- /***/ }),
112
-
113
- /***/ "./node_modules/@babel/runtime/helpers/esm/iterableToArray.js":
114
- /*!********************************************************************!*\
115
- !*** ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js ***!
116
- \********************************************************************/
117
- /*! exports provided: default */
118
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
119
-
120
- "use strict";
121
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _iterableToArray; });\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js?");
122
-
123
- /***/ }),
124
-
125
- /***/ "./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js":
126
- /*!**********************************************************************!*\
127
- !*** ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js ***!
128
- \**********************************************************************/
129
- /*! exports provided: default */
130
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
131
-
132
- "use strict";
133
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _nonIterableSpread; });\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js?");
134
-
135
- /***/ }),
136
-
137
- /***/ "./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js":
138
- /*!**********************************************************************!*\
139
- !*** ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js ***!
140
- \**********************************************************************/
141
- /*! exports provided: default */
142
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
143
-
144
- "use strict";
145
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _toConsumableArray; });\n/* harmony import */ var _arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayWithoutHoles */ \"./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\");\n/* harmony import */ var _iterableToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\");\n/* harmony import */ var _unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\");\n/* harmony import */ var _nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./nonIterableSpread */ \"./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\");\n\n\n\n\nfunction _toConsumableArray(arr) {\n return Object(_arrayWithoutHoles__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(arr) || Object(_iterableToArray__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(arr) || Object(_unsupportedIterableToArray__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(arr) || Object(_nonIterableSpread__WEBPACK_IMPORTED_MODULE_3__[\"default\"])();\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js?");
146
-
147
- /***/ }),
148
-
149
- /***/ "./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js":
150
- /*!*******************************************************************************!*\
151
- !*** ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js ***!
152
- \*******************************************************************************/
153
- /*! exports provided: default */
154
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
155
-
156
- "use strict";
157
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return _unsupportedIterableToArray; });\n/* harmony import */ var _arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Object(_arrayLikeToArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(o, minLen);\n}\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js?");
158
-
159
- /***/ }),
160
-
161
- /***/ "./node_modules/@wordpress/hooks/build-module/createAddHook.js":
162
- /*!*********************************************************************!*\
163
- !*** ./node_modules/@wordpress/hooks/build-module/createAddHook.js ***!
164
- \*********************************************************************/
165
- /*! exports provided: default */
166
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
167
-
168
- "use strict";
169
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ \"./node_modules/@wordpress/hooks/build-module/validateNamespace.js\");\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ */ \"./node_modules/@wordpress/hooks/build-module/index.js\");\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns a function which, when invoked, will add a hook.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n *\n * @return {Function} Function that adds a new hook.\n */\n\nfunction createAddHook(hooks) {\n /**\n * Adds the hook to the appropriate hooks container.\n *\n * @param {string} hookName Name of hook to add\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n * @param {Function} callback Function to call when the hook is run\n * @param {?number} priority Priority of this hook (default=10)\n */\n return function addHook(hookName, namespace, callback) {\n var priority = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 10;\n\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(hookName)) {\n return;\n }\n\n if (!Object(_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(namespace)) {\n return;\n }\n\n if ('function' !== typeof callback) {\n // eslint-disable-next-line no-console\n console.error('The hook callback must be a function.');\n return;\n } // Validate numeric priority\n\n\n if ('number' !== typeof priority) {\n // eslint-disable-next-line no-console\n console.error('If specified, the hook priority must be a number.');\n return;\n }\n\n var handler = {\n callback: callback,\n priority: priority,\n namespace: namespace\n };\n\n if (hooks[hookName]) {\n // Find the correct insert index of the new hook.\n var handlers = hooks[hookName].handlers;\n var i;\n\n for (i = handlers.length; i > 0; i--) {\n if (priority >= handlers[i - 1].priority) {\n break;\n }\n }\n\n if (i === handlers.length) {\n // If append, operate via direct assignment.\n handlers[i] = handler;\n } else {\n // Otherwise, insert before index via splice.\n handlers.splice(i, 0, handler);\n } // We may also be currently executing this hook. If the callback\n // we're adding would come after the current callback, there's no\n // problem; otherwise we need to increase the execution index of\n // any other runs by 1 to account for the added element.\n\n\n (hooks.__current || []).forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex++;\n }\n });\n } else {\n // This is the first hook of its type.\n hooks[hookName] = {\n handlers: [handler],\n runs: 0\n };\n }\n\n if (hookName !== 'hookAdded') {\n Object(___WEBPACK_IMPORTED_MODULE_2__[\"doAction\"])('hookAdded', hookName, namespace, callback, priority);\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createAddHook);\n//# sourceMappingURL=createAddHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createAddHook.js?");
170
-
171
- /***/ }),
172
-
173
- /***/ "./node_modules/@wordpress/hooks/build-module/createCurrentHook.js":
174
- /*!*************************************************************************!*\
175
- !*** ./node_modules/@wordpress/hooks/build-module/createCurrentHook.js ***!
176
- \*************************************************************************/
177
- /*! exports provided: default */
178
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
179
-
180
- "use strict";
181
- eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Returns a function which, when invoked, will return the name of the\n * currently running hook, or `null` if no hook of the given type is currently\n * running.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n *\n * @return {Function} Function that returns the current hook.\n */\nfunction createCurrentHook(hooks) {\n /**\n * Returns the name of the currently running hook, or `null` if no hook of\n * the given type is currently running.\n *\n * @return {?string} The name of the currently running hook, or\n * `null` if no hook is currently running.\n */\n return function currentHook() {\n if (!hooks.__current || !hooks.__current.length) {\n return null;\n }\n\n return hooks.__current[hooks.__current.length - 1].name;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createCurrentHook);\n//# sourceMappingURL=createCurrentHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createCurrentHook.js?");
182
-
183
- /***/ }),
184
-
185
- /***/ "./node_modules/@wordpress/hooks/build-module/createDidHook.js":
186
- /*!*********************************************************************!*\
187
- !*** ./node_modules/@wordpress/hooks/build-module/createDidHook.js ***!
188
- \*********************************************************************/
189
- /*! exports provided: default */
190
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
191
-
192
- "use strict";
193
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/**\n * Internal dependencies\n */\n\n/**\n * Returns a function which, when invoked, will return the number of times a\n * hook has been called.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n *\n * @return {Function} Function that returns a hook's call count.\n */\n\nfunction createDidHook(hooks) {\n /**\n * Returns the number of times an action has been fired.\n *\n * @param {string} hookName The hook name to check.\n *\n * @return {number} The number of times the hook has run.\n */\n return function didHook(hookName) {\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hookName)) {\n return;\n }\n\n return hooks[hookName] && hooks[hookName].runs ? hooks[hookName].runs : 0;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createDidHook);\n//# sourceMappingURL=createDidHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createDidHook.js?");
194
-
195
- /***/ }),
196
-
197
- /***/ "./node_modules/@wordpress/hooks/build-module/createDoingHook.js":
198
- /*!***********************************************************************!*\
199
- !*** ./node_modules/@wordpress/hooks/build-module/createDoingHook.js ***!
200
- \***********************************************************************/
201
- /*! exports provided: default */
202
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
203
-
204
- "use strict";
205
- eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Returns a function which, when invoked, will return whether a hook is\n * currently being executed.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n *\n * @return {Function} Function that returns whether a hook is currently\n * being executed.\n */\nfunction createDoingHook(hooks) {\n /**\n * Returns whether a hook is currently being executed.\n *\n * @param {?string} hookName The name of the hook to check for. If\n * omitted, will check for any hook being executed.\n *\n * @return {boolean} Whether the hook is being executed.\n */\n return function doingHook(hookName) {\n // If the hookName was not passed, check for any current hook.\n if ('undefined' === typeof hookName) {\n return 'undefined' !== typeof hooks.__current[0];\n } // Return the __current hook.\n\n\n return hooks.__current[0] ? hookName === hooks.__current[0].name : false;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createDoingHook);\n//# sourceMappingURL=createDoingHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createDoingHook.js?");
206
-
207
- /***/ }),
208
-
209
- /***/ "./node_modules/@wordpress/hooks/build-module/createHasHook.js":
210
- /*!*********************************************************************!*\
211
- !*** ./node_modules/@wordpress/hooks/build-module/createHasHook.js ***!
212
- \*********************************************************************/
213
- /*! exports provided: default */
214
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
215
-
216
- "use strict";
217
- eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Returns a function which, when invoked, will return whether any handlers are\n * attached to a particular hook.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n *\n * @return {Function} Function that returns whether any handlers are\n * attached to a particular hook and optional namespace.\n */\nfunction createHasHook(hooks) {\n /**\n * Returns whether any handlers are attached for the given hookName and optional namespace.\n *\n * @param {string} hookName The name of the hook to check for.\n * @param {?string} namespace Optional. The unique namespace identifying the callback\n * in the form `vendor/plugin/function`.\n *\n * @return {boolean} Whether there are handlers that are attached to the given hook.\n */\n return function hasHook(hookName, namespace) {\n // Use the namespace if provided.\n if ('undefined' !== typeof namespace) {\n return hookName in hooks && hooks[hookName].handlers.some(function (hook) {\n return hook.namespace === namespace;\n });\n }\n\n return hookName in hooks;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createHasHook);\n//# sourceMappingURL=createHasHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createHasHook.js?");
218
-
219
- /***/ }),
220
-
221
- /***/ "./node_modules/@wordpress/hooks/build-module/createHooks.js":
222
- /*!*******************************************************************!*\
223
- !*** ./node_modules/@wordpress/hooks/build-module/createHooks.js ***!
224
- \*******************************************************************/
225
- /*! exports provided: default */
226
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
227
-
228
- "use strict";
229
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _createAddHook__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createAddHook */ \"./node_modules/@wordpress/hooks/build-module/createAddHook.js\");\n/* harmony import */ var _createRemoveHook__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./createRemoveHook */ \"./node_modules/@wordpress/hooks/build-module/createRemoveHook.js\");\n/* harmony import */ var _createHasHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createHasHook */ \"./node_modules/@wordpress/hooks/build-module/createHasHook.js\");\n/* harmony import */ var _createRunHook__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createRunHook */ \"./node_modules/@wordpress/hooks/build-module/createRunHook.js\");\n/* harmony import */ var _createCurrentHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createCurrentHook */ \"./node_modules/@wordpress/hooks/build-module/createCurrentHook.js\");\n/* harmony import */ var _createDoingHook__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createDoingHook */ \"./node_modules/@wordpress/hooks/build-module/createDoingHook.js\");\n/* harmony import */ var _createDidHook__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./createDidHook */ \"./node_modules/@wordpress/hooks/build-module/createDidHook.js\");\n/**\n * Internal dependencies\n */\n\n\n\n\n\n\n\n/**\n * Returns an instance of the hooks object.\n *\n * @return {Object} Object that contains all hooks.\n */\n\nfunction createHooks() {\n var actions = Object.create(null);\n var filters = Object.create(null);\n actions.__current = [];\n filters.__current = [];\n return {\n addAction: Object(_createAddHook__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(actions),\n addFilter: Object(_createAddHook__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(filters),\n removeAction: Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(actions),\n removeFilter: Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(filters),\n hasAction: Object(_createHasHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(actions),\n hasFilter: Object(_createHasHook__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(filters),\n removeAllActions: Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(actions, true),\n removeAllFilters: Object(_createRemoveHook__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(filters, true),\n doAction: Object(_createRunHook__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(actions),\n applyFilters: Object(_createRunHook__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(filters, true),\n currentAction: Object(_createCurrentHook__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(actions),\n currentFilter: Object(_createCurrentHook__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(filters),\n doingAction: Object(_createDoingHook__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(actions),\n doingFilter: Object(_createDoingHook__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(filters),\n didAction: Object(_createDidHook__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(actions),\n didFilter: Object(_createDidHook__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(filters),\n actions: actions,\n filters: filters\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createHooks);\n//# sourceMappingURL=createHooks.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createHooks.js?");
230
-
231
- /***/ }),
232
-
233
- /***/ "./node_modules/@wordpress/hooks/build-module/createRemoveHook.js":
234
- /*!************************************************************************!*\
235
- !*** ./node_modules/@wordpress/hooks/build-module/createRemoveHook.js ***!
236
- \************************************************************************/
237
- /*! exports provided: default */
238
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
239
-
240
- "use strict";
241
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validateNamespace.js */ \"./node_modules/@wordpress/hooks/build-module/validateNamespace.js\");\n/* harmony import */ var _validateHookName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./validateHookName.js */ \"./node_modules/@wordpress/hooks/build-module/validateHookName.js\");\n/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ */ \"./node_modules/@wordpress/hooks/build-module/index.js\");\n/**\n * Internal dependencies\n */\n\n\n\n/**\n * Returns a function which, when invoked, will remove a specified hook or all\n * hooks by the given name.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n * @param {boolean} removeAll Whether to remove all callbacks for a hookName, without regard to namespace. Used to create `removeAll*` functions.\n *\n * @return {Function} Function that removes hooks.\n */\n\nfunction createRemoveHook(hooks, removeAll) {\n /**\n * Removes the specified callback (or all callbacks) from the hook with a\n * given hookName and namespace.\n *\n * @param {string} hookName The name of the hook to modify.\n * @param {string} namespace The unique namespace identifying the callback in the form `vendor/plugin/function`.\n *\n * @return {number} The number of callbacks removed.\n */\n return function removeHook(hookName, namespace) {\n if (!Object(_validateHookName_js__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(hookName)) {\n return;\n }\n\n if (!removeAll && !Object(_validateNamespace_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(namespace)) {\n return;\n } // Bail if no hooks exist by this name\n\n\n if (!hooks[hookName]) {\n return 0;\n }\n\n var handlersRemoved = 0;\n\n if (removeAll) {\n handlersRemoved = hooks[hookName].handlers.length;\n hooks[hookName] = {\n runs: hooks[hookName].runs,\n handlers: []\n };\n } else {\n // Try to find the specified callback to remove.\n var handlers = hooks[hookName].handlers;\n\n var _loop = function _loop(i) {\n if (handlers[i].namespace === namespace) {\n handlers.splice(i, 1);\n handlersRemoved++; // This callback may also be part of a hook that is\n // currently executing. If the callback we're removing\n // comes after the current callback, there's no problem;\n // otherwise we need to decrease the execution index of any\n // other runs by 1 to account for the removed element.\n\n (hooks.__current || []).forEach(function (hookInfo) {\n if (hookInfo.name === hookName && hookInfo.currentIndex >= i) {\n hookInfo.currentIndex--;\n }\n });\n }\n };\n\n for (var i = handlers.length - 1; i >= 0; i--) {\n _loop(i);\n }\n }\n\n if (hookName !== 'hookRemoved') {\n Object(___WEBPACK_IMPORTED_MODULE_2__[\"doAction\"])('hookRemoved', hookName, namespace);\n }\n\n return handlersRemoved;\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createRemoveHook);\n//# sourceMappingURL=createRemoveHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createRemoveHook.js?");
242
-
243
- /***/ }),
244
-
245
- /***/ "./node_modules/@wordpress/hooks/build-module/createRunHook.js":
246
- /*!*********************************************************************!*\
247
- !*** ./node_modules/@wordpress/hooks/build-module/createRunHook.js ***!
248
- \*********************************************************************/
249
- /*! exports provided: default */
250
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
251
-
252
- "use strict";
253
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/esm/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\");\n\n\n/**\n * Returns a function which, when invoked, will execute all callbacks\n * registered to a hook of the specified type, optionally returning the final\n * value of the call chain.\n *\n * @param {Object} hooks Stored hooks, keyed by hook name.\n * @param {?boolean} returnFirstArg Whether each hook callback is expected to\n * return its first argument.\n *\n * @return {Function} Function that runs hook callbacks.\n */\nfunction createRunHook(hooks, returnFirstArg) {\n /**\n * Runs all callbacks for the specified hook.\n *\n * @param {string} hookName The name of the hook to run.\n * @param {...*} args Arguments to pass to the hook callbacks.\n *\n * @return {*} Return value of runner, if applicable.\n */\n return function runHooks(hookName) {\n if (!hooks[hookName]) {\n hooks[hookName] = {\n handlers: [],\n runs: 0\n };\n }\n\n hooks[hookName].runs++;\n var handlers = hooks[hookName].handlers; // The following code is stripped from production builds.\n\n if (true) {\n // Handle any 'all' hooks registered.\n if ('hookAdded' !== hookName && hooks.all) {\n handlers.push.apply(handlers, Object(_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(hooks.all.handlers));\n }\n }\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (!handlers || !handlers.length) {\n return returnFirstArg ? args[0] : undefined;\n }\n\n var hookInfo = {\n name: hookName,\n currentIndex: 0\n };\n\n hooks.__current.push(hookInfo);\n\n while (hookInfo.currentIndex < handlers.length) {\n var handler = handlers[hookInfo.currentIndex];\n var result = handler.callback.apply(null, args);\n\n if (returnFirstArg) {\n args[0] = result;\n }\n\n hookInfo.currentIndex++;\n }\n\n hooks.__current.pop();\n\n if (returnFirstArg) {\n return args[0];\n }\n };\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (createRunHook);\n//# sourceMappingURL=createRunHook.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/createRunHook.js?");
254
-
255
- /***/ }),
256
-
257
- /***/ "./node_modules/@wordpress/hooks/build-module/index.js":
258
- /*!*************************************************************!*\
259
- !*** ./node_modules/@wordpress/hooks/build-module/index.js ***!
260
- \*************************************************************/
261
- /*! exports provided: createHooks, addAction, addFilter, removeAction, removeFilter, hasAction, hasFilter, removeAllActions, removeAllFilters, doAction, applyFilters, currentAction, currentFilter, doingAction, doingFilter, didAction, didFilter, actions, filters */
262
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
263
-
264
- "use strict";
265
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addAction\", function() { return addAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addFilter\", function() { return addFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAction\", function() { return removeAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeFilter\", function() { return removeFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasAction\", function() { return hasAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"hasFilter\", function() { return hasFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAllActions\", function() { return removeAllActions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeAllFilters\", function() { return removeAllFilters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doAction\", function() { return doAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"applyFilters\", function() { return applyFilters; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentAction\", function() { return currentAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentFilter\", function() { return currentFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doingAction\", function() { return doingAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"doingFilter\", function() { return doingFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"didAction\", function() { return didAction; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"didFilter\", function() { return didFilter; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"actions\", function() { return actions; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"filters\", function() { return filters; });\n/* harmony import */ var _createHooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./createHooks */ \"./node_modules/@wordpress/hooks/build-module/createHooks.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"createHooks\", function() { return _createHooks__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/**\n * Internal dependencies\n */\n\n\nvar _createHooks = Object(_createHooks__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(),\n addAction = _createHooks.addAction,\n addFilter = _createHooks.addFilter,\n removeAction = _createHooks.removeAction,\n removeFilter = _createHooks.removeFilter,\n hasAction = _createHooks.hasAction,\n hasFilter = _createHooks.hasFilter,\n removeAllActions = _createHooks.removeAllActions,\n removeAllFilters = _createHooks.removeAllFilters,\n doAction = _createHooks.doAction,\n applyFilters = _createHooks.applyFilters,\n currentAction = _createHooks.currentAction,\n currentFilter = _createHooks.currentFilter,\n doingAction = _createHooks.doingAction,\n doingFilter = _createHooks.doingFilter,\n didAction = _createHooks.didAction,\n didFilter = _createHooks.didFilter,\n actions = _createHooks.actions,\n filters = _createHooks.filters;\n\n\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/index.js?");
266
-
267
- /***/ }),
268
-
269
- /***/ "./node_modules/@wordpress/hooks/build-module/validateHookName.js":
270
- /*!************************************************************************!*\
271
- !*** ./node_modules/@wordpress/hooks/build-module/validateHookName.js ***!
272
- \************************************************************************/
273
- /*! exports provided: default */
274
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
275
-
276
- "use strict";
277
- eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Validate a hookName string.\n *\n * @param {string} hookName The hook name to validate. Should be a non empty string containing\n * only numbers, letters, dashes, periods and underscores. Also,\n * the hook name cannot begin with `__`.\n *\n * @return {boolean} Whether the hook name is valid.\n */\nfunction validateHookName(hookName) {\n if ('string' !== typeof hookName || '' === hookName) {\n // eslint-disable-next-line no-console\n console.error('The hook name must be a non-empty string.');\n return false;\n }\n\n if (/^__/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name cannot begin with `__`.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(hookName)) {\n // eslint-disable-next-line no-console\n console.error('The hook name can only contain numbers, letters, dashes, periods and underscores.');\n return false;\n }\n\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (validateHookName);\n//# sourceMappingURL=validateHookName.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/validateHookName.js?");
278
-
279
- /***/ }),
280
-
281
- /***/ "./node_modules/@wordpress/hooks/build-module/validateNamespace.js":
282
- /*!*************************************************************************!*\
283
- !*** ./node_modules/@wordpress/hooks/build-module/validateNamespace.js ***!
284
- \*************************************************************************/
285
- /*! exports provided: default */
286
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
287
-
288
- "use strict";
289
- eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Validate a namespace string.\n *\n * @param {string} namespace The namespace to validate - should take the form\n * `vendor/plugin/function`.\n *\n * @return {boolean} Whether the namespace is valid.\n */\nfunction validateNamespace(namespace) {\n if ('string' !== typeof namespace || '' === namespace) {\n // eslint-disable-next-line no-console\n console.error('The namespace must be a non-empty string.');\n return false;\n }\n\n if (!/^[a-zA-Z][a-zA-Z0-9_.\\-\\/]*$/.test(namespace)) {\n // eslint-disable-next-line no-console\n console.error('The namespace can only contain numbers, letters, dashes, periods, underscores and slashes.');\n return false;\n }\n\n return true;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (validateNamespace);\n//# sourceMappingURL=validateNamespace.js.map\n\n//# sourceURL=webpack:///./node_modules/@wordpress/hooks/build-module/validateNamespace.js?");
290
-
291
- /***/ }),
292
-
293
- /***/ "./src/js/view/advanced-accordion.js":
294
- /*!*******************************************!*\
295
- !*** ./src/js/view/advanced-accordion.js ***!
296
- \*******************************************/
297
- /*! no static exports found */
298
- /***/ (function(module, exports) {
299
-
300
- eval("var AdvAccordionHandler = function AdvAccordionHandler($scope, $) {\n var $advanceAccordion = $scope.find(\".eael-adv-accordion\"),\n $accordionHeader = $scope.find(\".eael-accordion-header\"),\n $accordionType = $advanceAccordion.data(\"accordion-type\"),\n $accordionSpeed = $advanceAccordion.data(\"toogle-speed\"); // Open default actived tab\n\n $accordionHeader.each(function () {\n if ($(this).hasClass(\"active-default\")) {\n $(this).addClass(\"show active\");\n $(this).next().slideDown($accordionSpeed);\n }\n }); // Remove multiple click event for nested accordion\n\n $accordionHeader.unbind(\"click\");\n $accordionHeader.click(function (e) {\n e.preventDefault();\n var $this = $(this);\n\n if ($accordionType === \"accordion\") {\n if ($this.hasClass(\"show\")) {\n $this.removeClass(\"show active\");\n $this.next().slideUp($accordionSpeed);\n } else {\n $this.parent().parent().find(\".eael-accordion-header\").removeClass(\"show active\");\n $this.parent().parent().find(\".eael-accordion-content\").slideUp($accordionSpeed);\n $this.toggleClass(\"show active\");\n $this.next().slideToggle($accordionSpeed);\n }\n } else {\n // For acccordion type 'toggle'\n if ($this.hasClass(\"show\")) {\n $this.removeClass(\"show active\");\n $this.next().slideUp($accordionSpeed);\n } else {\n $this.addClass(\"show active\");\n $this.next().slideDown($accordionSpeed);\n }\n }\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-adv-accordion.default\", AdvAccordionHandler);\n});\n\n//# sourceURL=webpack:///./src/js/view/advanced-accordion.js?");
301
-
302
- /***/ }),
303
-
304
- /***/ "./src/js/view/advanced-data-table.js":
305
- /*!********************************************!*\
306
- !*** ./src/js/view/advanced-data-table.js ***!
307
- \********************************************/
308
- /*! no static exports found */
309
- /***/ (function(module, exports) {
310
-
311
- eval("function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar advancedDataTable = /*#__PURE__*/function () {\n function advancedDataTable() {\n _classCallCheck(this, advancedDataTable);\n\n // register hooks\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-advanced-data-table.default\", this.initFrontend.bind(this));\n } // init frontend features\n\n\n _createClass(advancedDataTable, [{\n key: \"initFrontend\",\n value: function initFrontend($scope, $) {\n var table = $scope.context.querySelector(\".ea-advanced-data-table\");\n var search = $scope.context.querySelector(\".ea-advanced-data-table-search\");\n var pagination = $scope.context.querySelector(\".ea-advanced-data-table-pagination\");\n var classCollection = {};\n\n if (!ea.isEditMode && table !== null) {\n // search\n this.initTableSearch(table, search, pagination); // sort\n\n this.initTableSort(table, pagination, classCollection); // paginated table\n\n this.initTablePagination(table, pagination, classCollection); // woocommerce\n\n this.initWooFeatures(table);\n }\n } // frontend - search\n\n }, {\n key: \"initTableSearch\",\n value: function initTableSearch(table, search, pagination) {\n if (search) {\n search.addEventListener(\"input\", function (e) {\n var input = e.target.value.toLowerCase();\n var hasSort = table.classList.contains(\"ea-advanced-data-table-sortable\");\n var offset = table.rows[0].parentNode.tagName.toLowerCase() == \"thead\" ? 1 : 0;\n\n if (table.rows.length > 1) {\n if (input.length > 0) {\n if (hasSort) {\n table.classList.add(\"ea-advanced-data-table-unsortable\");\n }\n\n if (pagination && pagination.innerHTML.length > 0) {\n pagination.style.display = \"none\";\n }\n\n for (var i = offset; i < table.rows.length; i++) {\n var matchFound = false;\n\n if (table.rows[i].cells.length > 0) {\n for (var j = 0; j < table.rows[i].cells.length; j++) {\n if (table.rows[i].cells[j].textContent.toLowerCase().indexOf(input) > -1) {\n matchFound = true;\n break;\n }\n }\n }\n\n if (matchFound) {\n table.rows[i].style.display = \"table-row\";\n } else {\n table.rows[i].style.display = \"none\";\n }\n }\n } else {\n if (hasSort) {\n table.classList.remove(\"ea-advanced-data-table-unsortable\");\n }\n\n if (pagination && pagination.innerHTML.length > 0) {\n pagination.style.display = \"\";\n var currentPage = pagination.querySelector(\".ea-advanced-data-table-pagination-current\").dataset.page;\n var startIndex = (currentPage - 1) * table.dataset.itemsPerPage + 1;\n var endIndex = currentPage * table.dataset.itemsPerPage;\n\n for (var _i = 1; _i <= table.rows.length - 1; _i++) {\n if (_i >= startIndex && _i <= endIndex) {\n table.rows[_i].style.display = \"table-row\";\n } else {\n table.rows[_i].style.display = \"none\";\n }\n }\n } else {\n for (var _i2 = 1; _i2 <= table.rows.length - 1; _i2++) {\n table.rows[_i2].style.display = \"table-row\";\n }\n }\n }\n }\n });\n }\n } // frontend - sort\n\n }, {\n key: \"initTableSort\",\n value: function initTableSort(table, pagination, classCollection) {\n if (table.classList.contains(\"ea-advanced-data-table-sortable\")) {\n table.addEventListener(\"click\", function (e) {\n if (e.target.tagName.toLowerCase() === \"th\") {\n var index = e.target.cellIndex;\n var currentPage = 1;\n var startIndex = 1;\n var endIndex = table.rows.length - 1;\n var sort = \"\";\n var classList = e.target.classList;\n var collection = [];\n var origTable = table.cloneNode(true);\n\n if (classList.contains(\"asc\")) {\n e.target.classList.remove(\"asc\");\n e.target.classList.add(\"desc\");\n sort = \"desc\";\n } else if (classList.contains(\"desc\")) {\n e.target.classList.remove(\"desc\");\n e.target.classList.add(\"asc\");\n sort = \"asc\";\n } else {\n e.target.classList.add(\"asc\");\n sort = \"asc\";\n }\n\n if (pagination && pagination.innerHTML.length > 0) {\n currentPage = pagination.querySelector(\".ea-advanced-data-table-pagination-current\").dataset.page;\n startIndex = (currentPage - 1) * table.dataset.itemsPerPage + 1;\n endIndex = endIndex - (currentPage - 1) * table.dataset.itemsPerPage >= table.dataset.itemsPerPage ? currentPage * table.dataset.itemsPerPage : endIndex;\n } // collect header class\n\n\n classCollection[currentPage] = [];\n table.querySelectorAll(\"th\").forEach(function (el) {\n if (el.cellIndex != index) {\n el.classList.remove(\"asc\", \"desc\");\n }\n\n classCollection[currentPage].push(el.classList.contains(\"asc\") ? \"asc\" : el.classList.contains(\"desc\") ? \"desc\" : \"\");\n }); // collect table cells value\n\n for (var i = startIndex; i <= endIndex; i++) {\n var value = void 0;\n var cell = table.rows[i].cells[index];\n\n if (isNaN(parseInt(cell.innerText))) {\n value = cell.innerText.toLowerCase();\n } else {\n value = parseInt(cell.innerText);\n }\n\n collection.push({\n index: i,\n value: value\n });\n } // sort collection array\n\n\n if (sort == \"asc\") {\n collection.sort(function (x, y) {\n return x.value > y.value ? 1 : -1;\n });\n } else if (sort == \"desc\") {\n collection.sort(function (x, y) {\n return x.value < y.value ? 1 : -1;\n });\n } // sort table\n\n\n collection.forEach(function (row, index) {\n table.rows[startIndex + index].innerHTML = origTable.rows[row.index].innerHTML;\n });\n }\n });\n }\n } // frontend - pagination\n\n }, {\n key: \"initTablePagination\",\n value: function initTablePagination(table, pagination, classCollection) {\n if (table.classList.contains(\"ea-advanced-data-table-paginated\")) {\n var paginationHTML = \"\";\n var paginationType = pagination.classList.contains(\"ea-advanced-data-table-pagination-button\") ? \"button\" : \"select\";\n var currentPage = 1;\n var startIndex = table.rows[0].parentNode.tagName.toLowerCase() == \"thead\" ? 1 : 0;\n var endIndex = currentPage * table.dataset.itemsPerPage;\n var maxPages = Math.ceil((table.rows.length - 1) / table.dataset.itemsPerPage); // insert pagination\n\n if (maxPages > 1) {\n if (paginationType == \"button\") {\n for (var i = 1; i <= maxPages; i++) {\n paginationHTML += \"<a href=\\\"#\\\" data-page=\\\"\".concat(i, \"\\\" class=\\\"\").concat(i == 1 ? \"ea-advanced-data-table-pagination-current\" : \"\", \"\\\">\").concat(i, \"</a>\");\n }\n\n pagination.insertAdjacentHTML(\"beforeend\", \"<a href=\\\"#\\\" data-page=\\\"1\\\">&laquo;</a>\".concat(paginationHTML, \"<a href=\\\"#\\\" data-page=\\\"\").concat(maxPages, \"\\\">&raquo;</a>\"));\n } else {\n for (var _i3 = 1; _i3 <= maxPages; _i3++) {\n paginationHTML += \"<option value=\\\"\".concat(_i3, \"\\\">\").concat(_i3, \"</option>\");\n }\n\n pagination.insertAdjacentHTML(\"beforeend\", \"<select>\".concat(paginationHTML, \"</select>\"));\n }\n } // make initial item visible\n\n\n for (var _i4 = 0; _i4 <= endIndex; _i4++) {\n if (_i4 >= table.rows.length) {\n break;\n }\n\n table.rows[_i4].style.display = \"table-row\";\n } // paginate on click\n\n\n if (paginationType == \"button\") {\n pagination.addEventListener(\"click\", function (e) {\n e.preventDefault();\n\n if (e.target.tagName.toLowerCase() == \"a\") {\n currentPage = e.target.dataset.page;\n offset = table.rows[0].parentNode.tagName.toLowerCase() == \"thead\" ? 1 : 0;\n startIndex = (currentPage - 1) * table.dataset.itemsPerPage + offset;\n endIndex = currentPage * table.dataset.itemsPerPage;\n pagination.querySelectorAll(\".ea-advanced-data-table-pagination-current\").forEach(function (el) {\n el.classList.remove(\"ea-advanced-data-table-pagination-current\");\n });\n pagination.querySelectorAll(\"[data-page=\\\"\".concat(currentPage, \"\\\"]\")).forEach(function (el) {\n el.classList.add(\"ea-advanced-data-table-pagination-current\");\n });\n\n for (var _i5 = offset; _i5 <= table.rows.length - 1; _i5++) {\n if (_i5 >= startIndex && _i5 <= endIndex) {\n table.rows[_i5].style.display = \"table-row\";\n } else {\n table.rows[_i5].style.display = \"none\";\n }\n }\n\n table.querySelectorAll(\"th\").forEach(function (el, index) {\n el.classList.remove(\"asc\", \"desc\");\n\n if (typeof classCollection[currentPage] != \"undefined\") {\n if (classCollection[currentPage][index]) {\n el.classList.add(classCollection[currentPage][index]);\n }\n }\n });\n }\n });\n } else {\n if (pagination.hasChildNodes()) {\n pagination.querySelector(\"select\").addEventListener(\"input\", function (e) {\n e.preventDefault();\n currentPage = e.target.value;\n offset = table.rows[0].parentNode.tagName.toLowerCase() == \"thead\" ? 1 : 0;\n startIndex = (currentPage - 1) * table.dataset.itemsPerPage + offset;\n endIndex = currentPage * table.dataset.itemsPerPage;\n\n for (var _i6 = offset; _i6 <= table.rows.length - 1; _i6++) {\n if (_i6 >= startIndex && _i6 <= endIndex) {\n table.rows[_i6].style.display = \"table-row\";\n } else {\n table.rows[_i6].style.display = \"none\";\n }\n }\n\n table.querySelectorAll(\"th\").forEach(function (el, index) {\n el.classList.remove(\"asc\", \"desc\");\n\n if (typeof classCollection[currentPage] != \"undefined\") {\n if (classCollection[currentPage][index]) {\n el.classList.add(classCollection[currentPage][index]);\n }\n }\n });\n });\n }\n }\n }\n } // woocommerce features\n\n }, {\n key: \"initWooFeatures\",\n value: function initWooFeatures(table) {\n table.querySelectorAll(\".nt_button_woo\").forEach(function (el) {\n el.classList.add(\"add_to_cart_button\", \"ajax_add_to_cart\");\n });\n table.querySelectorAll(\".nt_woo_quantity\").forEach(function (el) {\n el.addEventListener(\"input\", function (e) {\n var product_id = e.target.dataset.product_id;\n var quantity = e.target.value;\n $(\".nt_add_to_cart_\".concat(product_id), $(table)).data(\"quantity\", quantity);\n });\n });\n }\n }]);\n\n return advancedDataTable;\n}();\n\nea.hooks.addAction(\"init\", \"ea\", function () {\n new advancedDataTable();\n});\n\n//# sourceURL=webpack:///./src/js/view/advanced-data-table.js?");
312
-
313
- /***/ }),
314
-
315
- /***/ "./src/js/view/advanced-tabs.js":
316
- /*!**************************************!*\
317
- !*** ./src/js/view/advanced-tabs.js ***!
318
- \**************************************/
319
- /*! no static exports found */
320
- /***/ (function(module, exports) {
321
-
322
- eval("var AdvanceTabHandler = function AdvanceTabHandler($scope, $) {\n var $currentTab = $scope.find('.eael-advance-tabs'),\n $currentTabId = '#' + $currentTab.attr('id').toString();\n $($currentTabId + ' .eael-tabs-nav ul li').each(function (index) {\n if ($(this).hasClass('active-default')) {\n $($currentTabId + ' .eael-tabs-nav > ul li').removeClass('active').addClass('inactive');\n $(this).removeClass('inactive');\n } else {\n if (index == 0) {\n $(this).removeClass('inactive').addClass('active');\n }\n }\n });\n $($currentTabId + ' .eael-tabs-content div').each(function (index) {\n if ($(this).hasClass('active-default')) {\n $($currentTabId + ' .eael-tabs-content > div').removeClass('active');\n } else {\n if (index == 0) {\n $(this).removeClass('inactive').addClass('active');\n }\n }\n });\n $($currentTabId + ' .eael-tabs-nav ul li').click(function () {\n var currentTabIndex = $(this).index();\n var tabsContainer = $(this).closest('.eael-advance-tabs');\n var tabsNav = $(tabsContainer).children('.eael-tabs-nav').children('ul').children('li');\n var tabsContent = $(tabsContainer).children('.eael-tabs-content').children('div');\n $(this).parent('li').addClass('active');\n $(tabsNav).removeClass('active active-default').addClass('inactive');\n $(this).addClass('active').removeClass('inactive');\n $(tabsContent).removeClass('active').addClass('inactive');\n $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive');\n var $filterGallery = tabsContent.eq(currentTabIndex).find('.eael-filter-gallery-container'),\n $postGridGallery = tabsContent.eq(currentTabIndex).find('.eael-post-grid.eael-post-appender'),\n $twitterfeedGallery = tabsContent.eq(currentTabIndex).find('.eael-twitter-feed-masonry'),\n $instaGallery = tabsContent.eq(currentTabIndex).find('.eael-instafeed'),\n $paGallery = tabsContent.eq(currentTabIndex).find('.premium-gallery-container');\n\n if ($postGridGallery.length) {\n $postGridGallery.isotope('layout');\n }\n\n if ($twitterfeedGallery.length) {\n $twitterfeedGallery.isotope('layout');\n }\n\n if ($filterGallery.length) {\n $filterGallery.isotope('layout');\n }\n\n if ($instaGallery.length) {\n $instaGallery.isotope('layout');\n }\n\n if ($paGallery.length) {\n $paGallery.each(function (index, item) {\n $(item).isotope('layout');\n });\n }\n\n $(tabsContent).each(function (index) {\n $(this).removeClass('active-default');\n });\n });\n};\n\njQuery(window).on('elementor/frontend/init', function () {\n elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-tabs.default', AdvanceTabHandler);\n});\n\n//# sourceURL=webpack:///./src/js/view/advanced-tabs.js?");
323
-
324
- /***/ }),
325
-
326
- /***/ "./src/js/view/betterdocs-category-grid.js":
327
- /*!*************************************************!*\
328
- !*** ./src/js/view/betterdocs-category-grid.js ***!
329
- \*************************************************/
330
- /*! no static exports found */
331
- /***/ (function(module, exports) {
332
-
333
- eval("var PostGrid = function PostGrid($scope, $) {\n var $gallery = $(\".eael-better-docs-category-grid\", $scope),\n $layout_mode = $gallery.data('layout-mode');\n\n if ($layout_mode === 'masonry') {\n $gallery.isotope({\n itemSelector: \".eael-better-docs-category-grid-post\",\n layoutMode: $layout_mode,\n percentPosition: true\n }); // layout gal, while images are loading\n\n $gallery.imagesLoaded().progress(function () {\n $gallery.isotope(\"layout\");\n });\n }\n\n $('.eael-bd-grid-sub-cat-title').on('click', function (e) {\n e.preventDefault();\n $(this).children(\".toggle-arrow\").toggle();\n $(this).next(\".docs-sub-cat-list\").slideToggle();\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-betterdocs-category-grid.default\", PostGrid);\n});\n\n//# sourceURL=webpack:///./src/js/view/betterdocs-category-grid.js?");
334
-
335
- /***/ }),
336
-
337
- /***/ "./src/js/view/content-ticker.js":
338
- /*!***************************************!*\
339
- !*** ./src/js/view/content-ticker.js ***!
340
- \***************************************/
341
- /*! no static exports found */
342
- /***/ (function(module, exports) {
343
-
344
- eval("var ContentTicker = function ContentTicker($scope, $) {\n var $contentTicker = $scope.find(\".eael-content-ticker\").eq(0),\n $items = $contentTicker.data(\"items\") !== undefined ? $contentTicker.data(\"items\") : 1,\n $items_tablet = $contentTicker.data(\"items-tablet\") !== undefined ? $contentTicker.data(\"items-tablet\") : 1,\n $items_mobile = $contentTicker.data(\"items-mobile\") !== undefined ? $contentTicker.data(\"items-mobile\") : 1,\n $margin = $contentTicker.data(\"margin\") !== undefined ? $contentTicker.data(\"margin\") : 10,\n $margin_tablet = $contentTicker.data(\"margin-tablet\") !== undefined ? $contentTicker.data(\"margin-tablet\") : 10,\n $margin_mobile = $contentTicker.data(\"margin-mobile\") !== undefined ? $contentTicker.data(\"margin-mobile\") : 10,\n $effect = $contentTicker.data(\"effect\") !== undefined ? $contentTicker.data(\"effect\") : \"slide\",\n $speed = $contentTicker.data(\"speed\") !== undefined ? $contentTicker.data(\"speed\") : 400,\n $autoplay = $contentTicker.data(\"autoplay\") !== undefined ? $contentTicker.data(\"autoplay\") : 5000,\n $loop = $contentTicker.data(\"loop\") !== undefined ? $contentTicker.data(\"loop\") : false,\n $grab_cursor = $contentTicker.data(\"grab-cursor\") !== undefined ? $contentTicker.data(\"grab-cursor\") : false,\n $pagination = $contentTicker.data(\"pagination\") !== undefined ? $contentTicker.data(\"pagination\") : \".swiper-pagination\",\n $arrow_next = $contentTicker.data(\"arrow-next\") !== undefined ? $contentTicker.data(\"arrow-next\") : \".swiper-button-next\",\n $arrow_prev = $contentTicker.data(\"arrow-prev\") !== undefined ? $contentTicker.data(\"arrow-prev\") : \".swiper-button-prev\",\n $pause_on_hover = $contentTicker.data(\"pause-on-hover\") !== undefined ? $contentTicker.data(\"pause-on-hover\") : \"\",\n $contentTickerOptions = {\n direction: \"horizontal\",\n loop: $loop,\n speed: $speed,\n effect: $effect,\n slidesPerView: $items,\n spaceBetween: $margin,\n grabCursor: $grab_cursor,\n paginationClickable: true,\n autoHeight: true,\n autoplay: {\n delay: $autoplay\n },\n pagination: {\n el: $pagination,\n clickable: true\n },\n navigation: {\n nextEl: $arrow_next,\n prevEl: $arrow_prev\n },\n breakpoints: {\n // when window width is <= 480px\n 480: {\n slidesPerView: $items_mobile,\n spaceBetween: $margin_mobile\n },\n // when window width is <= 640px\n 768: {\n slidesPerView: $items_tablet,\n spaceBetween: $margin_tablet\n }\n }\n };\n var $contentTickerSlider = new Swiper($contentTicker, $contentTickerOptions);\n\n if ($autoplay === 0) {\n $contentTickerSlider.autoplay.stop();\n }\n\n if ($pause_on_hover && $autoplay !== 0) {\n $contentTicker.on(\"mouseenter\", function () {\n $contentTickerSlider.autoplay.stop();\n });\n $contentTicker.on(\"mouseleave\", function () {\n $contentTickerSlider.autoplay.start();\n });\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-content-ticker.default\", ContentTicker);\n});\n\n//# sourceURL=webpack:///./src/js/view/content-ticker.js?");
345
-
346
- /***/ }),
347
-
348
- /***/ "./src/js/view/count-down.js":
349
- /*!***********************************!*\
350
- !*** ./src/js/view/count-down.js ***!
351
- \***********************************/
352
- /*! no static exports found */
353
- /***/ (function(module, exports) {
354
-
355
- eval("var CountDown = function CountDown($scope, $) {\n var $coundDown = $scope.find(\".eael-countdown-wrapper\").eq(0),\n $countdown_id = $coundDown.data(\"countdown-id\") !== undefined ? $coundDown.data(\"countdown-id\") : \"\",\n $expire_type = $coundDown.data(\"expire-type\") !== undefined ? $coundDown.data(\"expire-type\") : \"\",\n $expiry_text = $coundDown.data(\"expiry-text\") !== undefined ? $coundDown.data(\"expiry-text\") : \"\",\n $expiry_title = $coundDown.data(\"expiry-title\") !== undefined ? $coundDown.data(\"expiry-title\") : \"\",\n $redirect_url = $coundDown.data(\"redirect-url\") !== undefined ? $coundDown.data(\"redirect-url\") : \"\",\n $template = $coundDown.data(\"template\") !== undefined ? $coundDown.data(\"template\") : \"\";\n jQuery(document).ready(function ($) {\n \"use strict\";\n\n var countDown = $(\"#eael-countdown-\" + $countdown_id);\n countDown.countdown({\n end: function end() {\n if ($expire_type == \"text\") {\n countDown.html('<div class=\"eael-countdown-finish-message\"><h4 class=\"expiry-title\">' + $expiry_title + \"</h4>\" + '<div class=\"eael-countdown-finish-text\">' + $expiry_text + \"</div></div>\");\n } else if ($expire_type === \"url\") {\n if (isEditMode) {\n countDown.html(\"Your Page will be redirected to given URL (only on Frontend).\");\n } else {\n window.location.href = $redirect_url;\n }\n } else if ($expire_type === \"template\") {\n countDown.html($template);\n } else {//do nothing!\n }\n }\n });\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-countdown.default\", CountDown);\n});\n\n//# sourceURL=webpack:///./src/js/view/count-down.js?");
356
-
357
- /***/ }),
358
-
359
- /***/ "./src/js/view/data-table.js":
360
- /*!***********************************!*\
361
- !*** ./src/js/view/data-table.js ***!
362
- \***********************************/
363
- /*! no static exports found */
364
- /***/ (function(module, exports) {
365
-
366
- eval("var dataTable = function dataTable($scope, $) {\n var $_this = $scope.find(\".eael-data-table-wrap\"),\n $id = $_this.data(\"table_id\");\n\n if (typeof enableProSorter !== \"undefined\" && $.isFunction(enableProSorter)) {\n $(document).ready(function () {\n enableProSorter(jQuery, $_this);\n });\n }\n\n var responsive = $_this.data(\"custom_responsive\");\n\n if (true == responsive) {\n var $th = $scope.find(\".eael-data-table\").find(\"th\");\n var $tbody = $scope.find(\".eael-data-table\").find(\"tbody\");\n $tbody.find(\"tr\").each(function (i, item) {\n $(item).find(\"td .td-content-wrapper\").each(function (index, item) {\n $(this).prepend('<div class=\"th-mobile-screen\">' + $th.eq(index).html() + \"</div>\");\n });\n });\n }\n};\n\nvar Data_Table_Click_Handler = function Data_Table_Click_Handler(panel, model, view) {\n if (event.target.dataset.event == \"ea:table:export\") {\n // export\n var table = view.el.querySelector(\"#eael-data-table-\" + model.attributes.id);\n var rows = table.querySelectorAll(\"table tr\");\n var csv = []; // generate csv\n\n for (var i = 0; i < rows.length; i++) {\n var row = [];\n var cols = rows[i].querySelectorAll(\"th, td\");\n\n for (var j = 0; j < cols.length; j++) {\n row.push(JSON.stringify(cols[j].innerText.replace(/(\\r\\n|\\n|\\r)/gm, \" \").trim()));\n }\n\n csv.push(row.join(\",\"));\n } // download\n\n\n var csv_file = new Blob([csv.join(\"\\n\")], {\n type: \"text/csv\"\n });\n var download_link = parent.document.createElement(\"a\");\n download_link.classList.add(\"eael-data-table-download-\" + model.attributes.id);\n download_link.download = \"eael-data-table-\" + model.attributes.id + \".csv\";\n download_link.href = window.URL.createObjectURL(csv_file);\n download_link.style.display = \"none\";\n parent.document.body.appendChild(download_link);\n download_link.click();\n parent.document.querySelector(\".eael-data-table-download-\" + model.attributes.id).remove();\n }\n};\n\nvar data_table_panel = function data_table_panel(panel, model, view) {\n var handler = Data_Table_Click_Handler.bind(this, panel, model, view);\n panel.el.addEventListener(\"click\", handler);\n panel.currentPageView.on(\"destroy\", function () {\n panel.el.removeEventListener(\"click\", handler);\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n // export table\n if (isEditMode) {\n elementor.hooks.addAction(\"panel/open_editor/widget/eael-data-table\", data_table_panel);\n }\n\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-data-table.default\", dataTable);\n});\n\n//# sourceURL=webpack:///./src/js/view/data-table.js?");
367
-
368
- /***/ }),
369
-
370
- /***/ "./src/js/view/event-calendar.js":
371
- /*!***************************************!*\
372
- !*** ./src/js/view/event-calendar.js ***!
373
- \***************************************/
374
- /*! no static exports found */
375
- /***/ (function(module, exports) {
376
-
377
- eval("var EventCalendar = function EventCalendar($scope, $) {\n var Calendar = FullCalendar.Calendar;\n var element = $(\".eael-event-calendar-cls\", $scope),\n CloseButton = $(\".eaelec-modal-close\", $scope).eq(0),\n ecModal = $(\"#eaelecModal\", $scope),\n eventAll = element.data(\"events\"),\n firstDay = element.data(\"first_day\"),\n calendarID = element.data(\"cal_id\"),\n locale = element.data(\"locale\"),\n translate = element.data(\"translate\"),\n defaultView = element.data(\"defaultview\"),\n calendarEl = document.getElementById(\"eael-event-calendar-\" + calendarID);\n var calendar = new Calendar(calendarEl, {\n plugins: [\"dayGrid\", \"timeGrid\", \"list\"],\n editable: false,\n selectable: false,\n draggable: false,\n firstDay: firstDay,\n eventTimeFormat: {\n hour: '2-digit',\n minute: '2-digit',\n meridiem: 'short'\n },\n nextDayThreshold: \"00:00:00\",\n header: {\n left: \"prev,next today\",\n center: \"title\",\n right: \"timeGridDay,timeGridWeek,dayGridMonth,listMonth\"\n },\n events: eventAll,\n selectHelper: true,\n locale: locale,\n eventLimit: 3,\n defaultView: defaultView,\n eventRender: function eventRender(info) {\n var element = $(info.el),\n event = info.event; // when event is finished event text are cross\n\n if (event.extendedProps.eventHasComplete !== undefined && event.extendedProps.eventHasComplete === 'yes') {\n element.find('div.fc-content .fc-title').addClass('eael-event-completed');\n element.find('td.fc-list-item-title').addClass('eael-event-completed');\n }\n\n translate.today = info.event._calendar.dateEnv.locale.options.buttonText.today;\n element.attr(\"href\", \"javascript:void(0);\");\n element.click(function (e) {\n e.preventDefault();\n e.stopPropagation();\n var startDate = event.start,\n timeFormate = \"h:mm A\",\n endDate = event.end,\n startSelector = $(\"span.eaelec-event-date-start\"),\n endSelector = $(\"span.eaelec-event-date-end\");\n\n if (event.allDay === \"yes\") {\n var newEnd = moment(endDate).subtract(1, \"days\");\n endDate = newEnd._d;\n timeFormate = \" \";\n }\n\n var startYear = moment(startDate).format(\"YYYY\"),\n endYear = moment(endDate).format(\"YYYY\"),\n yearDiff = endYear > startYear,\n startView = '',\n endView = '';\n startSelector.html(\" \");\n endSelector.html(\" \");\n ecModal.addClass(\"eael-ec-popup-ready\").removeClass(\"eael-ec-modal-removing\");\n\n if (event.allDay === \"yes\" && moment(startDate).format(\"MM-DD-YYYY\") === moment(endDate).format(\"MM-DD-YYYY\")) {\n startView = moment(startDate).format(\"MMM Do\");\n\n if (moment(startDate).isSame(Date.now(), \"day\") === true) {\n startView = translate.today;\n } else if (moment(startDate).format(\"MM-DD-YYYY\") === moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\")) {\n startView = translate.tomorrow;\n }\n } else {\n if (moment(event.start).isSame(Date.now(), \"day\") === true) {\n startView = translate.today + ' ' + moment(event.start).format(timeFormate);\n }\n\n if (moment(startDate).format(\"MM-DD-YYYY\") === moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\")) {\n startView = translate.tomorrow + ' ' + moment(event.start).format(timeFormate);\n }\n\n if (moment(startDate).format(\"MM-DD-YYYY\") < moment(new Date()).format(\"MM-DD-YYYY\") || moment(startDate).format(\"MM-DD-YYYY\") > moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\")) {\n startView = moment(event.start).format(\"MMM Do \" + timeFormate);\n }\n\n startView = yearDiff ? startYear + ' ' + startView : startView;\n\n if (moment(endDate).isSame(Date.now(), \"day\") === true) {\n if (moment(startDate).isSame(Date.now(), \"day\") !== true) {\n endView = translate.today + \" \" + moment(endDate).format(timeFormate);\n } else {\n endView = moment(endDate).format(timeFormate);\n }\n }\n\n if (moment(startDate).format(\"MM-DD-YYYY\") !== moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\") && moment(endDate).format(\"MM-DD-YYYY\") === moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\")) {\n endView = translate.tomorrow + \" \" + moment(endDate).format(timeFormate);\n }\n\n if (moment(startDate).format(\"MM-DD-YYYY\") === moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\") && moment(endDate).format(\"MM-DD-YYYY\") === moment(new Date()).add(1, \"days\").format(\"MM-DD-YYYY\")) {\n endView = moment(endDate).format(timeFormate);\n }\n\n if (moment(endDate).diff(moment(startDate), \"days\") > 0 && endSelector.text().trim().length < 1) {\n endView = moment(endDate).format(\"MMM Do \" + timeFormate);\n }\n\n if (moment(startDate).format(\"MM-DD-YYYY\") === moment(endDate).format(\"MM-DD-YYYY\")) {\n endView = moment(endDate).format(timeFormate);\n }\n\n endView = yearDiff ? endYear + ' ' + endView : endView;\n }\n\n if (event.extendedProps.hideEndDate !== undefined && event.extendedProps.hideEndDate === 'yes') {\n endSelector.html(\" \");\n } else {\n endSelector.html(endView != '' ? \"- \" + endView : '');\n }\n\n startSelector.html('<i class=\"eicon-calendar\"></i> ' + startView);\n $(\".eaelec-modal-header h2\").html(event.title);\n $(\".eaelec-modal-body p\").html(event.extendedProps.description);\n\n if (event.extendedProps.description.length < 1) {\n $(\".eaelec-modal-body\").css(\"height\", \"auto\");\n } else {\n $(\".eaelec-modal-body\").css(\"height\", \"300px\");\n }\n\n $(\".eaelec-modal-footer a\").attr(\"href\", event.url);\n\n if (event.extendedProps.external === \"on\") {\n $(\".eaelec-modal-footer a\").attr(\"target\", \"_blank\");\n }\n\n if (event.extendedProps.nofollow === \"on\") {\n $(\".eaelec-modal-footer a\").attr(\"rel\", \"nofollow\");\n }\n\n if (event.url == \"\") {\n $(\".eaelec-modal-footer a\").css(\"display\", \"none\");\n } // Popup color\n\n\n $(\".eaelec-modal-header\").css(\"border-left\", \"5px solid \" + event.borderColor);\n });\n }\n });\n CloseButton.on(\"click\", function () {\n event.stopPropagation();\n ecModal.addClass(\"eael-ec-modal-removing\").removeClass(\"eael-ec-popup-ready\");\n });\n $(document).on('click', function (event) {\n if (event.target.closest(\".eaelec-modal-content\")) return;\n\n if (ecModal.hasClass(\"eael-ec-popup-ready\")) {\n ecModal.addClass(\"eael-ec-modal-removing\").removeClass(\"eael-ec-popup-ready\");\n }\n });\n calendar.render();\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-event-calendar.default\", EventCalendar);\n});\n\n//# sourceURL=webpack:///./src/js/view/event-calendar.js?");
378
-
379
- /***/ }),
380
-
381
- /***/ "./src/js/view/facebook-feed.js":
382
- /*!**************************************!*\
383
- !*** ./src/js/view/facebook-feed.js ***!
384
- \**************************************/
385
- /*! no static exports found */
386
- /***/ (function(module, exports) {
387
-
388
- eval("var FacebookFeed = function FacebookFeed($scope, $) {\n if (!isEditMode) {\n $facebook_gallery = $(\".eael-facebook-feed\", $scope).isotope({\n itemSelector: \".eael-facebook-feed-item\",\n percentPosition: true,\n columnWidth: \".eael-facebook-feed-item\"\n });\n $facebook_gallery.imagesLoaded().progress(function () {\n $facebook_gallery.isotope(\"layout\");\n });\n } // ajax load more\n\n\n $(\".eael-load-more-button\", $scope).on(\"click\", function (e) {\n e.preventDefault();\n $this = $(this);\n $settings = $this.attr(\"data-settings\");\n $page = $this.attr(\"data-page\");\n $loadmore_text = $this.attr(\"data-loadmore-text\"); // update load moer button\n\n $this.addClass(\"button--loading\");\n $(\"span\", $this).html(\"Loading...\");\n $.ajax({\n url: localize.ajaxurl,\n type: \"post\",\n data: {\n action: \"facebook_feed_load_more\",\n security: localize.nonce,\n settings: $settings,\n page: $page\n },\n success: function success(response) {\n $html = $(response.html); // append items\n\n $facebook_gallery = $(\".eael-facebook-feed\", $scope).isotope();\n $(\".eael-facebook-feed\", $scope).append($html);\n $facebook_gallery.isotope(\"appended\", $html);\n $facebook_gallery.imagesLoaded().progress(function () {\n $facebook_gallery.isotope(\"layout\");\n }); // update load more button\n\n if (response.num_pages > $page) {\n $this.attr(\"data-page\", parseInt($page) + 1);\n $this.removeClass(\"button--loading\");\n $(\"span\", $this).html($loadmore_text);\n } else {\n $this.remove();\n }\n },\n error: function error() {}\n });\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-facebook-feed.default\", FacebookFeed);\n});\n\n//# sourceURL=webpack:///./src/js/view/facebook-feed.js?");
389
-
390
- /***/ }),
391
-
392
- /***/ "./src/js/view/fancy-text.js":
393
- /*!***********************************!*\
394
- !*** ./src/js/view/fancy-text.js ***!
395
- \***********************************/
396
- /*! no static exports found */
397
- /***/ (function(module, exports) {
398
-
399
- eval("var FancyText = function FancyText($scope, $) {\n var $fancyText = $scope.find(\".eael-fancy-text-container\").eq(0),\n $id = $fancyText.data(\"fancy-text-id\") !== undefined ? $fancyText.data(\"fancy-text-id\") : \"\",\n $fancy_text = $fancyText.data(\"fancy-text\") !== undefined ? $fancyText.data(\"fancy-text\") : \"\",\n $transition_type = $fancyText.data(\"fancy-text-transition-type\") !== undefined ? $fancyText.data(\"fancy-text-transition-type\") : \"\",\n $fancy_text_speed = $fancyText.data(\"fancy-text-speed\") !== undefined ? $fancyText.data(\"fancy-text-speed\") : \"\",\n $fancy_text_delay = $fancyText.data(\"fancy-text-delay\") !== undefined ? $fancyText.data(\"fancy-text-delay\") : \"\",\n $fancy_text_cursor = $fancyText.data(\"fancy-text-cursor\") === \"yes\" ? true : false,\n $fancy_text_loop = $fancyText.data(\"fancy-text-loop\") !== undefined ? $fancyText.data(\"fancy-text-loop\") == \"yes\" ? true : false : false;\n $fancy_text = $fancy_text.split(\"|\");\n\n if ($transition_type == \"typing\") {\n new Typed(\"#eael-fancy-text-\" + $id, {\n strings: $fancy_text,\n typeSpeed: $fancy_text_speed,\n backSpeed: 0,\n startDelay: 300,\n backDelay: $fancy_text_delay,\n showCursor: $fancy_text_cursor,\n loop: $fancy_text_loop\n });\n }\n\n if ($transition_type != \"typing\") {\n $(\"#eael-fancy-text-\" + $id).Morphext({\n animation: $transition_type,\n separator: \", \",\n speed: $fancy_text_delay,\n complete: function complete() {// Overrides default empty function\n }\n });\n }\n\n jQuery(window).on(\"load\", function () {\n setTimeout(function () {\n $(\".eael-fancy-text-strings\", $scope).css(\"display\", \"inline-block\");\n }, 500);\n });\n\n if (isEditMode) {\n setTimeout(function () {\n $(\".eael-fancy-text-strings\", $scope).css(\"display\", \"inline-block\");\n }, 800);\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-fancy-text.default\", FancyText);\n});\n\n//# sourceURL=webpack:///./src/js/view/fancy-text.js?");
400
-
401
- /***/ }),
402
-
403
- /***/ "./src/js/view/filterable-gallery.js":
404
- /*!*******************************************!*\
405
- !*** ./src/js/view/filterable-gallery.js ***!
406
- \*******************************************/
407
- /*! no static exports found */
408
- /***/ (function(module, exports) {
409
-
410
- eval("var filterableGalleryHandler = function filterableGalleryHandler($scope, $) {\n var filterControls = $scope.find(\".fg-layout-3-filter-controls\").eq(0),\n filterTrigger = $scope.find(\"#fg-filter-trigger\"),\n form = $scope.find(\".fg-layout-3-search-box\"),\n input = $scope.find(\"#fg-search-box-input\"),\n searchRegex,\n buttonFilter,\n timer;\n\n if (form.length) {\n form.on(\"submit\", function (e) {\n e.preventDefault();\n });\n }\n\n filterTrigger.on(\"click\", function () {\n filterControls.toggleClass(\"open-filters\");\n }).blur(function () {\n filterControls.toggleClass(\"open-filters\");\n });\n\n if (!isEditMode) {\n var $gallery = $(\".eael-filter-gallery-container\", $scope),\n $settings = $gallery.data(\"settings\"),\n $gallery_items = $gallery.data(\"gallery-items\"),\n $layout_mode = $settings.grid_style == \"masonry\" ? \"masonry\" : \"fitRows\",\n $gallery_enabled = $settings.gallery_enabled == \"yes\" ? true : false; // init isotope\n\n var layoutMode = $(\".eael-filter-gallery-wrapper\").data(\"layout-mode\");\n var mfpCaption = $(\".eael-filter-gallery-wrapper\").data(\"mfp_caption\");\n var $isotope_gallery = $gallery.isotope({\n itemSelector: \".eael-filterable-gallery-item-wrap\",\n layoutMode: $layout_mode,\n percentPosition: true,\n stagger: 30,\n transitionDuration: $settings.duration + \"ms\",\n filter: function filter() {\n var $this = $(this);\n var $result = searchRegex ? $this.text().match(searchRegex) : true;\n\n if (buttonFilter == undefined) {\n if (layoutMode != \"layout_3\") {\n buttonFilter = $scope.find(\".eael-filter-gallery-control ul li\").first().data(\"filter\");\n } else {\n buttonFilter = $scope.find(\".fg-layout-3-filter-controls li\").first().data(\"filter\");\n }\n }\n\n var buttonResult = buttonFilter ? $this.is(buttonFilter) : true;\n return $result && buttonResult;\n }\n }); // Popup\n\n $($scope).magnificPopup({\n delegate: \".eael-magnific-link\",\n type: \"image\",\n gallery: {\n enabled: $gallery_enabled\n },\n image: {\n titleSrc: function titleSrc(item) {\n if (mfpCaption == \"yes\") {\n return item.el.parents('.gallery-item-caption-over').find('.fg-item-title').html() || item.el.parents('.gallery-item-caption-wrap').find('.fg-item-title').html() || item.el.parents('.eael-filterable-gallery-item-wrap').find('.fg-item-title').html();\n }\n }\n }\n }); // filter\n\n $scope.on(\"click\", \".control\", function () {\n var $this = $(this);\n buttonFilter = $(this).attr(\"data-filter\");\n\n if ($scope.find(\"#fg-filter-trigger > span\")) {\n $scope.find(\"#fg-filter-trigger > span\").text($this.text());\n }\n\n $this.siblings().removeClass(\"active\");\n $this.addClass(\"active\");\n $isotope_gallery.isotope();\n }); //quick search\n\n input.on(\"input\", function () {\n var $this = $(this);\n clearTimeout(timer);\n timer = setTimeout(function () {\n searchRegex = new RegExp($this.val(), \"gi\");\n $isotope_gallery.isotope();\n }, 600);\n }); // layout gal, while images are loading\n\n $isotope_gallery.imagesLoaded().progress(function () {\n $isotope_gallery.isotope(\"layout\");\n }); // layout gal, on click tabs\n\n $isotope_gallery.on(\"arrangeComplete\", function () {\n $isotope_gallery.isotope(\"layout\");\n }); // layout gal, after window loaded\n\n $(window).on(\"load\", function () {\n $isotope_gallery.isotope(\"layout\");\n }); // Load more button\n\n $scope.on(\"click\", \".eael-gallery-load-more\", function (e) {\n e.preventDefault();\n var $this = $(this),\n $init_show = $(\".eael-filter-gallery-container\", $scope).children(\".eael-filterable-gallery-item-wrap\").length,\n $total_items = $gallery.data(\"total-gallery-items\"),\n $images_per_page = $gallery.data(\"images-per-page\"),\n $nomore_text = $gallery.data(\"nomore-item-text\"),\n $items = [];\n\n if ($init_show == $total_items) {\n $this.html('<div class=\"no-more-items-text\">' + $nomore_text + \"</div>\");\n setTimeout(function () {\n $this.fadeOut(\"slow\");\n }, 600);\n } // new items html\n\n\n for (var i = $init_show; i < $init_show + $images_per_page; i++) {\n $items.push($($gallery_items[i])[0]);\n } // append items\n\n\n $gallery.append($items);\n $isotope_gallery.isotope(\"appended\", $items);\n $isotope_gallery.imagesLoaded().progress(function () {\n $isotope_gallery.isotope(\"layout\");\n });\n });\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-filterable-gallery.default\", filterableGalleryHandler);\n});\n\n//# sourceURL=webpack:///./src/js/view/filterable-gallery.js?");
411
-
412
- /***/ }),
413
-
414
- /***/ "./src/js/view/general.js":
415
- /*!********************************!*\
416
- !*** ./src/js/view/general.js ***!
417
- \********************************/
418
- /*! no exports provided */
419
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
420
-
421
- "use strict";
422
- eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/hooks */ \"./node_modules/@wordpress/hooks/build-module/index.js\");\n\nwindow.isEditMode = false;\nwindow.ea = {\n hooks: Object(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_0__[\"createHooks\"])(),\n isEditMode: false\n};\njQuery(window).on(\"elementor/frontend/init\", function () {\n window.isEditMode = elementorFrontend.isEditMode();\n window.ea.isEditMode = elementorFrontend.isEditMode(); // hooks\n\n ea.hooks.doAction(\"init\"); // init edit mode hook\n\n if (ea.isEditMode) {\n ea.hooks.doAction(\"editMode.init\");\n }\n});\n\n//# sourceURL=webpack:///./src/js/view/general.js?");
423
-
424
- /***/ }),
425
-
426
- /***/ "./src/js/view/image-accordion.js":
427
- /*!****************************************!*\
428
- !*** ./src/js/view/image-accordion.js ***!
429
- \****************************************/
430
- /*! no static exports found */
431
- /***/ (function(module, exports) {
432
-
433
- eval("var ImageAccordion = function ImageAccordion($scope, $) {\n var $imageAccordion = $scope.find(\".eael-img-accordion\").eq(0),\n $id = $imageAccordion.data(\"img-accordion-id\") !== undefined ? $imageAccordion.data(\"img-accordion-id\") : \"\",\n $type = $imageAccordion.data(\"img-accordion-type\") !== undefined ? $imageAccordion.data(\"img-accordion-type\") : \"\";\n var $clickCount = 0;\n\n if (\"on-click\" === $type) {\n $(\"#eael-img-accordion-\" + $id + \" a\").on(\"click\", function (e) {\n if ($(this).hasClass(\"overlay-active\") == false) {\n e.preventDefault();\n }\n\n if ($clickCount == 0) {\n if ($(\"#eael-img-accordion-\" + $id + \" a\").hasClass('overlay-active')) {\n $(\"#eael-img-accordion-\" + $id + \" a\").removeClass(\"overlay-active\");\n }\n\n $clickCount += 1;\n }\n\n $(\"#eael-img-accordion-\" + $id + \" a\").css(\"flex\", \"1\");\n $(this).find(\".overlay\").parent(\"a\").addClass(\"overlay-active\");\n $(\"#eael-img-accordion-\" + $id + \" a\").find(\".overlay-inner\").removeClass(\"overlay-inner-show\");\n $(this).find(\".overlay-inner\").addClass(\"overlay-inner-show\");\n $(this).css(\"flex\", \"3\");\n });\n $(\"#eael-img-accordion-\" + $id + \" a\").on(\"blur\", function (e) {\n $(\"#eael-img-accordion-\" + $id + \" a\").css(\"flex\", \"1\");\n $(\"#eael-img-accordion-\" + $id + \" a\").find(\".overlay-inner\").removeClass(\"overlay-inner-show\");\n $(this).find(\".overlay\").parent(\"a\").removeClass(\"overlay-active\");\n });\n } else {\n $(\"#eael-img-accordion-\" + $id + \" a\").on('hover', function () {\n if ($(\"#eael-img-accordion-\" + $id + \" a\").hasClass('overlay-active')) {\n $(\"#eael-img-accordion-\" + $id + \" a.overlay-active\").css(\"flex\", \"1\");\n $(\"#eael-img-accordion-\" + $id + \" a\").removeClass(\"overlay-active\");\n $(\"#eael-img-accordion-\" + $id + \" a .overlay .overlay-inner\").removeClass('overlay-inner-show');\n }\n });\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-image-accordion.default\", ImageAccordion);\n});\n\n//# sourceURL=webpack:///./src/js/view/image-accordion.js?");
434
-
435
- /***/ }),
436
-
437
- /***/ "./src/js/view/load-more.js":
438
- /*!**********************************!*\
439
- !*** ./src/js/view/load-more.js ***!
440
- \**********************************/
441
- /*! no static exports found */
442
- /***/ (function(module, exports) {
443
-
444
- eval("(function ($) {\n \"use strict\";\n\n $(document).on(\"click\", \".eael-load-more-button\", function (e) {\n e.preventDefault();\n e.stopPropagation();\n e.stopImmediatePropagation();\n var $this = $(this),\n $text = $(\"span\", $this).html(),\n $widget_id = $this.data(\"widget\"),\n $scope = $(\".elementor-element-\" + $widget_id),\n $class = $this.data(\"class\"),\n $args = $this.data(\"args\"),\n $settings = $this.data(\"settings\"),\n $layout = $this.data(\"layout\"),\n $page = parseInt($this.data(\"page\")) + 1;\n\n if (typeof $widget_id == \"undefined\" || typeof $args == \"undefined\") {\n return;\n }\n\n var obj = {};\n var $data = {\n action: \"load_more\",\n \"class\": $class,\n args: $args,\n settings: $settings,\n page: $page\n };\n String($args).split(\"&\").forEach(function (item, index) {\n var arr = String(item).split(\"=\");\n obj[arr[0]] = arr[1];\n });\n\n if (obj.orderby == \"rand\") {\n var $printed = $(\".eael-grid-post\");\n\n if ($printed.length) {\n var $ids = [];\n $printed.each(function (index, item) {\n var $id = $(item).data(\"id\");\n $ids.push($id);\n });\n $data.post__not_in = $ids;\n }\n }\n\n $this.addClass(\"button--loading\");\n $(\"span\", $this).html(\"Loading...\");\n $.ajax({\n url: localize.ajaxurl,\n type: \"post\",\n data: $data,\n success: function success(response) {\n var $content = $(response);\n\n if ($content.hasClass(\"no-posts-found\") || $content.length == 0) {\n $this.remove();\n } else {\n if ($data[\"class\"] == \"Essential_Addons_Elementor\\\\Elements\\\\Product_Grid\") {\n $(\".eael-product-grid .products\", $scope).append($content);\n } else {\n $(\".eael-post-appender\", $scope).append($content);\n\n if ($layout == \"masonry\") {\n var $isotope = $(\".eael-post-appender\", $scope).isotope();\n $isotope.isotope(\"appended\", $content).isotope(\"layout\");\n $isotope.imagesLoaded().progress(function () {\n $isotope.isotope(\"layout\");\n });\n }\n }\n\n $this.removeClass(\"button--loading\");\n $(\"span\", $this).html($text);\n $this.data(\"page\", $page);\n }\n },\n error: function error(response) {\n console.log(response);\n }\n });\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/load-more.js?");
445
-
446
- /***/ }),
447
-
448
- /***/ "./src/js/view/post-grid.js":
449
- /*!**********************************!*\
450
- !*** ./src/js/view/post-grid.js ***!
451
- \**********************************/
452
- /*! no static exports found */
453
- /***/ (function(module, exports) {
454
-
455
- eval("var PostGrid = function PostGrid($scope, $) {\n var $gallery = $(\".eael-post-appender\", $scope),\n $layout_mode = $gallery.data('layout-mode');\n\n if ($layout_mode === 'masonry') {\n $gallery.isotope({\n itemSelector: \".eael-grid-post\",\n layoutMode: $layout_mode,\n percentPosition: true\n }); // layout gal, while images are loading\n\n $gallery.imagesLoaded().progress(function () {\n $gallery.isotope(\"layout\");\n });\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-post-grid.default\", PostGrid);\n});\n\n//# sourceURL=webpack:///./src/js/view/post-grid.js?");
456
-
457
- /***/ }),
458
-
459
- /***/ "./src/js/view/price-table.js":
460
- /*!************************************!*\
461
- !*** ./src/js/view/price-table.js ***!
462
- \************************************/
463
- /*! no static exports found */
464
- /***/ (function(module, exports) {
465
-
466
- eval("var PricingTooltip = function PricingTooltip($scope, $) {\n if ($.fn.tooltipster) {\n var $tooltip = $scope.find(\".tooltip\"),\n i;\n\n for (i = 0; i < $tooltip.length; i++) {\n var $currentTooltip = $(\"#\" + $($tooltip[i]).attr(\"id\")),\n $tooltipSide = $currentTooltip.data(\"side\") !== undefined ? $currentTooltip.data(\"side\") : false,\n $tooltipTrigger = $currentTooltip.data(\"trigger\") !== undefined ? $currentTooltip.data(\"trigger\") : \"hover\",\n $animation = $currentTooltip.data(\"animation\") !== undefined ? $currentTooltip.data(\"animation\") : \"fade\",\n $anim_duration = $currentTooltip.data(\"animation_duration\") !== undefined ? $currentTooltip.data(\"animation_duration\") : 300,\n $theme = $currentTooltip.data(\"theme\") !== undefined ? $currentTooltip.data(\"theme\") : \"default\",\n $arrow = \"yes\" == $currentTooltip.data(\"arrow\") ? true : false;\n $currentTooltip.tooltipster({\n animation: $animation,\n trigger: $tooltipTrigger,\n side: $tooltipSide,\n delay: $anim_duration,\n arrow: $arrow,\n theme: \"tooltipster-\" + $theme\n });\n }\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-pricing-table.default\", PricingTooltip);\n});\n\n//# sourceURL=webpack:///./src/js/view/price-table.js?");
467
-
468
- /***/ }),
469
-
470
- /***/ "./src/js/view/progress-bar.js":
471
- /*!*************************************!*\
472
- !*** ./src/js/view/progress-bar.js ***!
473
- \*************************************/
474
- /*! no static exports found */
475
- /***/ (function(module, exports) {
476
-
477
- eval("var ProgressBar = function ProgressBar($scope, $) {\n var $this = $(\".eael-progressbar\", $scope);\n var $layout = $this.data(\"layout\");\n var $num = $this.data(\"count\");\n var $duration = $this.data(\"duration\");\n\n if ($num > 100) {\n $num = 100;\n }\n\n $this.one(\"inview\", function () {\n if ($layout == \"line\") {\n $(\".eael-progressbar-line-fill\", $this).css({\n width: $num + \"%\"\n });\n } else if ($layout == \"half_circle\") {\n $(\".eael-progressbar-circle-half\", $this).css({\n transform: \"rotate(\" + $num * 1.8 + \"deg)\"\n });\n }\n\n ea.hooks.doAction(\"progressBar.initValue\", $this, $layout, $num);\n $(\".eael-progressbar-count\", $this).prop({\n counter: 0\n }).animate({\n counter: $num\n }, {\n duration: $duration,\n easing: \"linear\",\n step: function step(counter) {\n if ($layout == \"circle\" || $layout == \"circle_fill\") {\n var rotate = counter * 3.6;\n $(\".eael-progressbar-circle-half-left\", $this).css({\n transform: \"rotate(\" + rotate + \"deg)\"\n });\n\n if (rotate > 180) {\n $(\".eael-progressbar-circle-pie\", $this).css({\n \"-webkit-clip-path\": \"inset(0)\",\n \"clip-path\": \"inset(0)\"\n });\n $(\".eael-progressbar-circle-half-right\", $this).css({\n visibility: \"visible\"\n });\n }\n }\n\n $(this).text(Math.ceil(counter));\n }\n });\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-progress-bar.default\", ProgressBar);\n});\n\n//# sourceURL=webpack:///./src/js/view/progress-bar.js?");
478
-
479
- /***/ }),
480
-
481
- /***/ "./src/js/view/reading-progress.js":
482
- /*!*****************************************!*\
483
- !*** ./src/js/view/reading-progress.js ***!
484
- \*****************************************/
485
- /*! no static exports found */
486
- /***/ (function(module, exports) {
487
-
488
- eval("jQuery(document).ready(function () {\n // scroll func\n jQuery(window).scroll(function () {\n var winScroll = document.body.scrollTop || document.documentElement.scrollTop;\n var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;\n var scrolled = winScroll / height * 100;\n jQuery(\".eael-reading-progress-fill\").css({\n width: scrolled + \"%\"\n });\n }); // live prev\n\n if (isEditMode) {\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress\", function (newValue) {\n var $settings = elementor.settings.page.getSettings();\n\n if (newValue == \"yes\") {\n if (jQuery(\".eael-reading-progress-wrap\").length == 0) {\n jQuery(\"body\").append('<div class=\"eael-reading-progress-wrap eael-reading-progress-wrap-local\"><div class=\"eael-reading-progress eael-reading-progress-local eael-reading-progress-' + $settings.settings.eael_ext_reading_progress_position + '\"><div class=\"eael-reading-progress-fill\"></div></div><div class=\"eael-reading-progress eael-reading-progress-global eael-reading-progress-' + $settings.settings.eael_ext_reading_progress_position + '\"><div class=\"eael-reading-progress-fill\"></div></div></div>');\n }\n\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-local\").removeClass(\"eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled\");\n } else {\n jQuery(\".eael-reading-progress-wrap\").removeClass(\"eael-reading-progress-wrap-local eael-reading-progress-wrap-global\");\n\n if ($settings.settings.eael_ext_reading_progress_has_global == true) {\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-global\");\n } else {\n jQuery(\".eael-reading-progress-wrap\").addClass(\"eael-reading-progress-wrap-disabled\");\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_reading_progress_position\", function (newValue) {\n elementor.settings.page.setSettings(\"eael_ext_reading_progress_position\", newValue);\n jQuery(\".eael-reading-progress\").removeClass(\"eael-reading-progress-top eael-reading-progress-bottom\").addClass(\"eael-reading-progress-\" + newValue);\n });\n }\n});\n\n//# sourceURL=webpack:///./src/js/view/reading-progress.js?");
489
-
490
- /***/ }),
491
-
492
- /***/ "./src/js/view/sticky-video.js":
493
- /*!*************************************!*\
494
- !*** ./src/js/view/sticky-video.js ***!
495
- \*************************************/
496
- /*! no static exports found */
497
- /***/ (function(module, exports) {
498
-
499
- eval("var eaelsvPosition = '';\nvar eaelsvWidth = 0;\nvar eaelsvHeight = 0;\nvar eaelsvDomHeight = 0;\nvar videoIsActive = 'off';\nvar eaelMakeItSticky = 0;\nvar scrollHeight = 0;\njQuery(window).on('elementor/frontend/init', function () {\n if (isEditMode) {\n elementor.hooks.addAction('panel/open_editor/widget/eael-sticky-video', function (panel, model, view) {\n var interval;\n model.attributes.settings.on('change:eaelsv_sticky_width', function () {\n clearTimeout(interval);\n interval = setTimeout(function () {\n var height = Math.ceil(model.getSetting('eaelsv_sticky_width') / 1.78);\n model.attributes.settings.attributes.eaelsv_sticky_height = height;\n panel.el.querySelector('[data-setting=\"eaelsv_sticky_height\"]').value = height;\n }, 250);\n });\n model.attributes.settings.on('change:eaelsv_sticky_height', function () {\n clearTimeout(interval);\n interval = setTimeout(function () {\n var width = Math.ceil(model.getSetting('eaelsv_sticky_height') * 1.78);\n model.attributes.settings.attributes.eaelsv_sticky_width = width;\n panel.el.querySelector('[data-setting=\"eaelsv_sticky_width\"]').value = width;\n }, 250);\n });\n });\n }\n\n elementorFrontend.hooks.addAction('frontend/element_ready/eael-sticky-video.default', function ($scope, $) {\n $('.eaelsv-sticky-player-close', $scope).hide();\n var element = $scope.find('.eael-sticky-video-player2');\n var sticky = '';\n var autoplay = '';\n var overlay = '';\n sticky = element.data('sticky');\n autoplay = element.data('autoplay');\n eaelsvPosition = element.data('position');\n eaelsvHeight = element.data('sheight');\n eaelsvWidth = element.data('swidth');\n overlay = element.data('overlay');\n scrollHeight = element.data('scroll_height');\n PositionStickyPlayer(eaelsvPosition, eaelsvHeight, eaelsvWidth);\n var playerAbc = new Plyr('#eaelsv-player-' + $scope.data('id')); // If element is Sticky video\n\n if (overlay === 'no') {\n // If autoplay is enable\n if ('yes' === autoplay && sticky === 'yes') {\n eaelsvDomHeight = GetDomElementHeight(element);\n element.attr('id', 'videobox');\n videoIsActive = 'on'; // When play event is cliked\n // Do the sticky process\n\n PlayerPlay(playerAbc, element);\n }\n } // Overlay Operation Started\n\n\n if (overlay === 'yes') {\n var ovrlyElmnt = element.prev();\n videoIsActive = 'off';\n $(ovrlyElmnt).on('click', function () {\n $('.eael-sticky-video-wrapper > i').hide();\n $(this).css('display', 'none');\n playerAbc.play();\n\n if ($(this).next().data('autoplay') === 'yes') {\n playerAbc.restart();\n eaelsvDomHeight = GetDomElementHeight(this);\n\n if (sticky === 'yes') {\n $(this).next().attr('id', 'videobox');\n videoIsActive = 'on';\n }\n }\n });\n }\n\n playerAbc.on('pause', function (event) {\n videoIsActive = 'off';\n });\n playerAbc.on('play', function (event) {\n videoIsActive = 'on';\n });\n $('.eaelsv-sticky-player-close').on('click', function () {\n element.removeClass('out').addClass('in');\n $('.eael-sticky-video-player2').removeAttr('style');\n videoIsActive = 'off';\n });\n element.parent().css('height', element.height() + 'px');\n $(window).resize(function () {\n element.parent().css('height', element.height() + 'px');\n });\n });\n});\njQuery(window).scroll(function () {\n var scrollTop = jQuery(window).scrollTop();\n var scrollBottom = jQuery(document).height() - scrollTop;\n\n if (scrollBottom > jQuery(window).height() + 400) {\n if (scrollTop >= eaelsvDomHeight) {\n if (videoIsActive == 'on') {\n jQuery('#videobox').find('.eaelsv-sticky-player-close').css('display', 'block');\n jQuery('#videobox').removeClass('in').addClass('out');\n PositionStickyPlayer(eaelsvPosition, eaelsvHeight, eaelsvWidth);\n }\n } else {\n jQuery('.eaelsv-sticky-player-close').hide();\n jQuery('#videobox').removeClass('out').addClass('in');\n jQuery('.eael-sticky-video-player2').removeAttr('style');\n }\n }\n});\n\nfunction GetDomElementHeight(elem) {\n var contentHeight = jQuery(elem).parent().height();\n var expHeight = scrollHeight * contentHeight / 100;\n var hght = jQuery(elem).parent().offset().top + expHeight;\n return hght;\n}\n\nfunction PositionStickyPlayer(p, h, w) {\n if (p == 'top-left') {\n jQuery('.eael-sticky-video-player2.out').css('top', '40px');\n jQuery('.eael-sticky-video-player2.out').css('left', '40px');\n }\n\n if (p == 'top-right') {\n jQuery('.eael-sticky-video-player2.out').css('top', '40px');\n jQuery('.eael-sticky-video-player2.out').css('right', '40px');\n }\n\n if (p == 'bottom-right') {\n jQuery('.eael-sticky-video-player2.out').css('bottom', '40px');\n jQuery('.eael-sticky-video-player2.out').css('right', '40px');\n }\n\n if (p == 'bottom-left') {\n jQuery('.eael-sticky-video-player2.out').css('bottom', '40px');\n jQuery('.eael-sticky-video-player2.out').css('left', '40px');\n }\n\n jQuery('.eael-sticky-video-player2.out').css('width', w + 'px');\n jQuery('.eael-sticky-video-player2.out').css('height', h + 'px');\n}\n\nfunction PlayerPlay(a, b) {\n a.on('play', function (event) {\n eaelsvDomHeight = GetDomElementHeight(b);\n jQuery('.eael-sticky-video-player2').removeAttr('id');\n jQuery('.eael-sticky-video-player2').removeClass('out');\n b.attr('id', 'videobox');\n videoIsActive = 'on';\n eaelsvPosition = b.data('position');\n eaelsvHeight = b.data('sheight');\n eaelsvWidth = b.data('swidth');\n });\n}\n\nfunction RunStickyPlayer(elem) {\n var ovrplyer = new Plyr('#' + elem);\n ovrplyer.start();\n}\n\n//# sourceURL=webpack:///./src/js/view/sticky-video.js?");
500
-
501
- /***/ }),
502
-
503
- /***/ "./src/js/view/table-of-content.js":
504
- /*!*****************************************!*\
505
- !*** ./src/js/view/table-of-content.js ***!
506
- \*****************************************/
507
- /*! no static exports found */
508
- /***/ (function(module, exports) {
509
-
510
- eval("function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n(function ($) {\n jQuery(document).ready(function () {\n /**\n * add ID in main content heading tag\n * @param selector\n * @param supportTag\n */\n function eael_toc_content(selector, supportTag) {\n var listId = document.getElementById(\"eael-toc-list\");\n\n if (selector === null || supportTag === undefined || !listId) {\n return null;\n }\n\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== 'undefined' ? eaelToc.dataset.titleurl : 'false';\n var excludeArr = typeof eaelToc.dataset.excludeSelector !== 'undefined' ? eaelToc.dataset.excludeSelector.replace(/^,|,$/g, '') : '';\n var allSupportTag = [];\n var mainSelector = document.querySelectorAll(selector),\n listIndex = 0;\n\n for (var j = 0; j < mainSelector.length; j++) {\n allSupportTag = [].concat(_toConsumableArray(allSupportTag), _toConsumableArray(mainSelector[j].querySelectorAll(supportTag)));\n }\n\n allSupportTag = Array.from(new Set(allSupportTag));\n allSupportTag.forEach(function (el) {\n if (eaelTocExclude(excludeArr, el)) {\n return;\n }\n\n el.id = listIndex + \"-\" + eael_build_id(titleUrl, el.textContent);\n el.classList.add(\"eael-heading-content\");\n listIndex++;\n }); //build toc list hierarchy\n\n eael_list_hierarchy(selector, supportTag, allSupportTag);\n var firstChild = $(\"ul.eael-toc-list > li\");\n\n if (firstChild.length < 1) {\n document.getElementById(\"eael-toc\").classList.add(\"eael-toc-disable\");\n }\n\n firstChild.each(function () {\n this.classList.add(\"eael-first-child\");\n });\n }\n /**\n * Make toc list\n * @param selector\n * @param supportTag\n */\n\n\n function eael_list_hierarchy(selector, supportTag, allSupportTagList) {\n var tagList = supportTag;\n var allHeadings = allSupportTagList;\n var eaelToc = document.getElementById(\"eael-toc\");\n var titleUrl = typeof eaelToc.dataset.titleurl !== 'undefined' ? eaelToc.dataset.titleurl : 'false';\n var listId = document.getElementById(\"eael-toc-list\");\n var excludeArr = typeof eaelToc.dataset.excludeselector !== 'undefined' ? eaelToc.dataset.excludeselector.replace(/^,|,$/g, '') : '';\n var parentLevel = '',\n baseTag = parentLevel = tagList.trim().split(\",\")[0].substr(1, 1),\n ListNode = listId;\n listId.innerHTML = \"\";\n\n if (allHeadings.length > 0) {\n document.getElementById(\"eael-toc\").classList.remove(\"eael-toc-disable\");\n }\n\n for (var i = 0, len = allHeadings.length; i < len; ++i) {\n var currentHeading = allHeadings[i];\n\n if (eaelTocExclude(excludeArr, currentHeading)) {\n continue;\n }\n\n var latestLavel = parseInt(currentHeading.tagName.substr(1, 1));\n var diff = latestLavel - parentLevel;\n\n if (diff > 0) {\n var containerLiNode = ListNode.lastChild;\n\n if (containerLiNode) {\n var createUlNode = document.createElement(\"UL\");\n containerLiNode.appendChild(createUlNode);\n ListNode = createUlNode;\n parentLevel = latestLavel;\n }\n }\n\n var sequenceParent = false;\n\n if (diff < 0) {\n while (0 !== diff++) {\n if (ListNode.parentNode.parentNode) {\n ListNode = ListNode.parentNode.parentNode;\n }\n }\n\n parentLevel = latestLavel;\n sequenceParent = true;\n }\n\n if (ListNode.tagName !== \"UL\") {\n ListNode = listId;\n }\n\n if (currentHeading.textContent.trim() === \"\") {\n continue;\n }\n\n var liNode = document.createElement(\"LI\");\n var anchorTag = document.createElement(\"A\");\n var spanTag = document.createElement(\"SPAN\");\n\n if (baseTag === parentLevel || sequenceParent) {\n liNode.setAttribute(\"itemscope\", \"\");\n liNode.setAttribute(\"itemtype\", \"http://schema.org/ListItem\");\n liNode.setAttribute(\"itemprop\", \"itemListElement\");\n }\n\n var Linkid = \"#\" + i + \"-\" + eael_build_id(titleUrl, currentHeading.textContent);\n anchorTag.className = \"eael-toc-link\";\n anchorTag.setAttribute(\"itemprop\", \"item\");\n anchorTag.setAttribute(\"href\", Linkid);\n spanTag.appendChild(document.createTextNode(currentHeading.textContent));\n anchorTag.appendChild(spanTag);\n liNode.appendChild(anchorTag);\n ListNode.appendChild(liNode);\n }\n } // expand collapse\n\n\n $(document).on(\"click\", \"ul.eael-toc-list a\", function (e) {\n e.preventDefault();\n $(document).off(\"scroll\");\n var target = this.hash;\n history.pushState(\"\", document.title, window.location.pathname + window.location.search);\n var parentLi = $(this).parent();\n\n if (parentLi.is(\".eael-highlight-parent.eael-highlight-active\")) {\n window.location.hash = target;\n return false;\n }\n\n $(\".eael-highlight-active, .eael-highlight-parent\").removeClass(\"eael-highlight-active eael-highlight-parent\");\n $(this).closest(\".eael-first-child\").addClass(\"eael-highlight-parent\");\n $(this).parent().addClass(\"eael-highlight-active\");\n window.location.hash = target;\n }); //some site not working with **window.onscroll**\n\n window.addEventListener('scroll', function (e) {\n eaelTocSticky();\n });\n var stickyScroll = $('#eael-toc').data('stickyscroll');\n /**\n * Check selector in array\n *\n * @param arr\n * @param el\n * @returns boolean\n */\n\n function eaelTocExclude(excludes, el) {\n return $(el).closest(excludes).length;\n }\n /**\n * check sticky\n */\n\n\n function eaelTocSticky() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (!eaelToc) {\n return;\n }\n\n stickyScroll = stickyScroll !== undefined ? stickyScroll : 200;\n\n if (window.pageYOffset >= stickyScroll && !eaelToc.classList.contains('eael-toc-disable')) {\n eaelToc.classList.add(\"eael-sticky\");\n } else {\n eaelToc.classList.remove(\"eael-sticky\");\n }\n }\n /**\n *\n * @param content\n * @returns {string}\n */\n\n\n function eael_build_id(showTitle, title) {\n if (showTitle == 'true' && title != '') {\n //create slug from Heading text\n return title.toString().toLowerCase().normalize('NFD').trim().replace(/[^a-z0-9 -]/g, '').replace(/\\s+/g, '-').replace(/^-+/, \"\").replace(/-+$/, \"\").replace(/-+/g, '-');\n } else {\n return \"eael-table-of-content\";\n }\n }\n /**\n *\n * @returns {null|selector}\n */\n\n\n function eael_toc_check_content() {\n var eaelToc = document.getElementById(\"eael-toc\");\n\n if (eaelToc && eaelToc.dataset.contentselector) {\n return eaelToc.dataset.contentselector;\n }\n\n var contentSelectro = '.site-content';\n\n if ($(\".site-content\")[0]) {\n contentSelectro = \".site-content\";\n } else if ($(\".elementor-inner\")[0]) {\n contentSelectro = \".elementor-inner\";\n } else if ($(\"#site-content\")[0]) {\n contentSelectro = \"#site-content\";\n }\n\n return contentSelectro;\n } //toc auto collapse\n\n\n $(\"body\").click(function (e) {\n var target = $(e.target);\n var eaToc = $(\"#eael-toc\");\n\n if (eaToc.hasClass(\"eael-toc-auto-collapse\") && eaToc.hasClass(\"eael-sticky\") && !eaToc.hasClass(\"collapsed\") && $(target).closest(\"#eael-toc\").length === 0) {\n eaToc.toggleClass(\"collapsed\");\n }\n });\n $(document).on(\"click\", \".eael-toc-close ,.eael-toc-button\", function (event) {\n event.stopPropagation();\n $(\".eael-toc\").toggleClass(\"collapsed\");\n });\n\n function eael_build_toc($settings) {\n var pageSetting = $settings.settings,\n title = pageSetting.eael_ext_toc_title,\n toc_style_class = \"eael-toc-list eael-toc-list-\" + pageSetting.eael_ext_table_of_content_list_style,\n icon = pageSetting.eael_ext_table_of_content_header_icon.value,\n el_class = pageSetting.eael_ext_toc_position === \"right\" ? \" eael-toc-right\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_collapse_sub_heading === \"yes\" ? \" eael-toc-collapse\" : \" \";\n toc_style_class += pageSetting.eael_ext_toc_list_icon === \"number\" ? \" eael-toc-number\" : \" eael-toc-bullet\";\n return '<div id=\"eael-toc\" class=\"eael-toc eael-toc-disable ' + el_class + '\">' + '<div class=\"eael-toc-header\"><span class=\"eael-toc-close\">×</span><h2 class=\"eael-toc-title\">' + title + \"</h2></div>\" + '<div class=\"eael-toc-body\"><ul id=\"eael-toc-list\" class=\"' + toc_style_class + '\"></ul></div>' + '<button class=\"eael-toc-button\"><i class=\"' + icon + '\"></i><span>' + title + \"</span></button>\" + \"</div>\";\n }\n\n var intSupportTag = $(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (intSupportTag !== \"\" && !isEditMode) {\n eael_toc_content(eael_toc_check_content(), intSupportTag);\n } //editor mode\n\n\n if (isEditMode) {\n var eael_toc_list_collapse = function eael_toc_list_collapse(newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-collapse\");\n } else {\n list.removeClass(\"eael-toc-collapse\");\n }\n };\n\n var ea_toc_title_change = function ea_toc_title_change(newValue) {\n elementorFrontend.elements.$document.find(\".eael-toc-title\").text(newValue);\n elementorFrontend.elements.$document.find(\".eael-toc-button span\").text(newValue);\n };\n\n elementorFrontend.hooks.addAction('frontend/element_ready/widget', function ($scope, $) {\n var tocLoad = $('#eael-toc #eael-toc-list');\n var TocList = tocLoad.find('li.eael-first-child');\n\n if (TocList.length < 1 && tocLoad.length >= 1) {\n var tagList = $(\"#eael-toc\").data(\"eaeltoctag\");\n\n if (tagList) {\n eael_toc_content(eael_toc_check_content(), tagList);\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content\", function (newValue) {\n var tocGlobal = $(\".eael-toc-global\");\n\n if (tocGlobal.length > 0) {\n tocGlobal.attr(\"id\", \"eael-toc-temp\").removeClass(\"eael-toc\").hide();\n $(\".eael-toc-global #eael-toc-list\").attr(\"id\", \"\");\n }\n\n $(\"#eael-toc\").remove();\n\n if (newValue === \"yes\") {\n var $settings = elementor.settings.page.getSettings();\n $(\"body\").append(eael_build_toc($settings));\n eael_toc_content(eael_toc_check_content(), $settings.settings.eael_ext_toc_supported_heading_tag.join(\", \"));\n } else {\n if (tocGlobal.length > 0) {\n tocGlobal.addClass(\"eael-toc\").attr(\"id\", \"eael-toc\").show();\n }\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_position\", function (newValue) {\n if (newValue === \"right\") {\n $(\"#eael-toc\").addClass(\"eael-toc-right\");\n } else {\n $(\"#eael-toc\").removeClass(\"eael-toc-right\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_list_style\", function (newValue) {\n var list = $(\".eael-toc-list\");\n list.removeClass(\"eael-toc-list-bar eael-toc-list-arrow\");\n\n if (newValue !== \"none\") {\n list.addClass(\"eael-toc-list-\" + newValue);\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_collapse_sub_heading\", eael_toc_list_collapse);\n elementor.settings.page.addChangeCallback(\"eael_ext_table_of_content_header_icon\", function (newValue) {\n var iconElement = $(\".eael-toc-button i\");\n iconElement.removeClass().addClass(newValue.value);\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_list_icon\", function (newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"number\") {\n list.addClass(\"eael-toc-number\").removeClass(\"eael-toc-bullet\");\n } else {\n list.addClass(\"eael-toc-bullet\").removeClass(\"eael-toc-number\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_word_wrap\", function (newValue) {\n var list = $(\".eael-toc-list\");\n\n if (newValue === \"yes\") {\n list.addClass(\"eael-toc-word-wrap\");\n } else {\n list.removeClass(\"eael-toc-word-wrap\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_close_button_text_style\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"bottom_to_top\") {\n toc.addClass(\"eael-bottom-to-top\");\n } else {\n toc.removeClass(\"eael-bottom-to-top\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_box_shadow\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-box-shadow\");\n } else {\n toc.removeClass(\"eael-box-shadow\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_auto_collapse\", function (newValue) {\n var toc = $(\"#eael-toc\");\n\n if (newValue === \"yes\") {\n toc.addClass(\"eael-toc-auto-collapse\");\n } else {\n toc.removeClass(\"eael-toc-auto-collapse\");\n }\n });\n elementor.settings.page.addChangeCallback(\"eael_ext_toc_title\", ea_toc_title_change);\n }\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./src/js/view/table-of-content.js?");
511
-
512
- /***/ }),
513
-
514
- /***/ "./src/js/view/twitter-feed.js":
515
- /*!*************************************!*\
516
- !*** ./src/js/view/twitter-feed.js ***!
517
- \*************************************/
518
- /*! no static exports found */
519
- /***/ (function(module, exports) {
520
-
521
- eval("var TwitterFeedHandler = function TwitterFeedHandler($scope, $) {\n if (!isEditMode) {\n $gutter = $(\".eael-twitter-feed-masonry\", $scope).data(\"gutter\");\n $settings = {\n itemSelector: \".eael-twitter-feed-item\",\n percentPosition: true,\n masonry: {\n columnWidth: \".eael-twitter-feed-item\",\n gutter: $gutter\n }\n }; // init isotope\n\n $twitter_feed_gallery = $(\".eael-twitter-feed-masonry\", $scope).isotope($settings); // layout gal, while images are loading\n\n $twitter_feed_gallery.imagesLoaded().progress(function () {\n $twitter_feed_gallery.isotope(\"layout\");\n });\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-twitter-feed.default\", TwitterFeedHandler);\n});\n\n//# sourceURL=webpack:///./src/js/view/twitter-feed.js?");
522
-
523
- /***/ }),
524
-
525
- /***/ "./src/js/view/typeform.js":
526
- /*!*********************************!*\
527
- !*** ./src/js/view/typeform.js ***!
528
- \*********************************/
529
- /*! no static exports found */
530
- /***/ (function(module, exports) {
531
-
532
- eval("var TypeFormHandler = function TypeFormHandler($scope, $) {\n if (typeformEmbed) {\n var typeForm = $scope.find(\".eael-typeform\"),\n id = typeForm.attr(\"id\"),\n data = typeForm.data('typeform');\n\n if (typeof id != 'undefined' && typeof data !== 'undefined') {\n var el = document.getElementById(id);\n\n if (data.url) {\n typeformEmbed.makeWidget(el, data.url, {\n hideFooter: data.hideFooter,\n hideHeaders: data.hideHeaders,\n opacity: data.opacity\n });\n }\n }\n }\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-typeform.default\", TypeFormHandler);\n});\n\n//# sourceURL=webpack:///./src/js/view/typeform.js?");
533
-
534
- /***/ }),
535
-
536
- /***/ "./src/js/view/woo-checkout.js":
537
- /*!*************************************!*\
538
- !*** ./src/js/view/woo-checkout.js ***!
539
- \*************************************/
540
- /*! no static exports found */
541
- /***/ (function(module, exports) {
542
-
543
- eval("var WooCheckout = function WooCheckout($scope, $) {\n $.blockUI.defaults.overlayCSS.cursor = \"default\";\n\n function render_order_review_template() {\n var wooCheckout = $(\".ea-woo-checkout\");\n setTimeout(function () {\n $(\".ea-checkout-review-order-table\").addClass(\"processing\").block({\n message: null,\n overlayCSS: {\n background: \"#fff\",\n opacity: 0.6\n }\n });\n $.ajax({\n type: \"POST\",\n url: localize.ajaxurl,\n data: {\n action: \"woo_checkout_update_order_review\",\n orderReviewData: wooCheckout.data(\"checkout\")\n },\n success: function success(data) {\n $(\".ea-checkout-review-order-table\").replaceWith(data.order_review);\n setTimeout(function () {\n $(\".ea-checkout-review-order-table\").removeClass(\"processing\").unblock();\n }, 100000);\n }\n });\n }, 2000);\n }\n\n $(document).on(\"click\", \".woocommerce-remove-coupon\", function (e) {\n render_order_review_template();\n });\n $(\"form.checkout_coupon\").submit(function (event) {\n render_order_review_template();\n });\n};\n\njQuery(window).on(\"elementor/frontend/init\", function () {\n elementorFrontend.hooks.addAction(\"frontend/element_ready/eael-woo-checkout.default\", WooCheckout);\n});\n\n//# sourceURL=webpack:///./src/js/view/woo-checkout.js?");
544
-
545
- /***/ }),
546
-
547
- /***/ 0:
548
- /*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
549
- !*** multi ./src/js/view/general.js ./src/js/view/advanced-accordion.js ./src/js/view/advanced-data-table.js ./src/js/view/advanced-tabs.js ./src/js/view/betterdocs-category-grid.js ./src/js/view/content-ticker.js ./src/js/view/count-down.js ./src/js/view/data-table.js ./src/js/view/event-calendar.js ./src/js/view/facebook-feed.js ./src/js/view/fancy-text.js ./src/js/view/filterable-gallery.js ./src/js/view/image-accordion.js ./src/js/view/load-more.js ./src/js/view/post-grid.js ./src/js/view/price-table.js ./src/js/view/progress-bar.js ./src/js/view/reading-progress.js ./src/js/view/sticky-video.js ./src/js/view/table-of-content.js ./src/js/view/twitter-feed.js ./src/js/view/typeform.js ./src/js/view/woo-checkout.js ***!
550
- \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
551
- /*! no static exports found */
552
- /***/ (function(module, exports, __webpack_require__) {
553
-
554
- eval("__webpack_require__(/*! ./src/js/view/general.js */\"./src/js/view/general.js\");\n__webpack_require__(/*! ./src/js/view/advanced-accordion.js */\"./src/js/view/advanced-accordion.js\");\n__webpack_require__(/*! ./src/js/view/advanced-data-table.js */\"./src/js/view/advanced-data-table.js\");\n__webpack_require__(/*! ./src/js/view/advanced-tabs.js */\"./src/js/view/advanced-tabs.js\");\n__webpack_require__(/*! ./src/js/view/betterdocs-category-grid.js */\"./src/js/view/betterdocs-category-grid.js\");\n__webpack_require__(/*! ./src/js/view/content-ticker.js */\"./src/js/view/content-ticker.js\");\n__webpack_require__(/*! ./src/js/view/count-down.js */\"./src/js/view/count-down.js\");\n__webpack_require__(/*! ./src/js/view/data-table.js */\"./src/js/view/data-table.js\");\n__webpack_require__(/*! ./src/js/view/event-calendar.js */\"./src/js/view/event-calendar.js\");\n__webpack_require__(/*! ./src/js/view/facebook-feed.js */\"./src/js/view/facebook-feed.js\");\n__webpack_require__(/*! ./src/js/view/fancy-text.js */\"./src/js/view/fancy-text.js\");\n__webpack_require__(/*! ./src/js/view/filterable-gallery.js */\"./src/js/view/filterable-gallery.js\");\n__webpack_require__(/*! ./src/js/view/image-accordion.js */\"./src/js/view/image-accordion.js\");\n__webpack_require__(/*! ./src/js/view/load-more.js */\"./src/js/view/load-more.js\");\n__webpack_require__(/*! ./src/js/view/post-grid.js */\"./src/js/view/post-grid.js\");\n__webpack_require__(/*! ./src/js/view/price-table.js */\"./src/js/view/price-table.js\");\n__webpack_require__(/*! ./src/js/view/progress-bar.js */\"./src/js/view/progress-bar.js\");\n__webpack_require__(/*! ./src/js/view/reading-progress.js */\"./src/js/view/reading-progress.js\");\n__webpack_require__(/*! ./src/js/view/sticky-video.js */\"./src/js/view/sticky-video.js\");\n__webpack_require__(/*! ./src/js/view/table-of-content.js */\"./src/js/view/table-of-content.js\");\n__webpack_require__(/*! ./src/js/view/twitter-feed.js */\"./src/js/view/twitter-feed.js\");\n__webpack_require__(/*! ./src/js/view/typeform.js */\"./src/js/view/typeform.js\");\nmodule.exports = __webpack_require__(/*! ./src/js/view/woo-checkout.js */\"./src/js/view/woo-checkout.js\");\n\n\n//# sourceURL=webpack:///multi_./src/js/view/general.js_./src/js/view/advanced-accordion.js_./src/js/view/advanced-data-table.js_./src/js/view/advanced-tabs.js_./src/js/view/betterdocs-category-grid.js_./src/js/view/content-ticker.js_./src/js/view/count-down.js_./src/js/view/data-table.js_./src/js/view/event-calendar.js_./src/js/view/facebook-feed.js_./src/js/view/fancy-text.js_./src/js/view/filterable-gallery.js_./src/js/view/image-accordion.js_./src/js/view/load-more.js_./src/js/view/post-grid.js_./src/js/view/price-table.js_./src/js/view/progress-bar.js_./src/js/view/reading-progress.js_./src/js/view/sticky-video.js_./src/js/view/table-of-content.js_./src/js/view/twitter-feed.js_./src/js/view/typeform.js_./src/js/view/woo-checkout.js?");
555
-
556
- /***/ })
557
-
558
- /******/ });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
assets/front-end/js/view/view.min.js DELETED
@@ -1 +0,0 @@
1
- !function(e){var t={};function a(o){if(t[o])return t[o].exports;var n=t[o]={i:o,l:!1,exports:{}};return e[o].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.m=e,a.c=t,a.d=function(e,t,o){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(a.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(o,n,function(t){return e[t]}.bind(null,n));return o},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="",a(a.s=0)}([function(e,t,a){a(70),a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9),a(10),a(11),a(12),a(13),a(14),a(15),a(16),a(17),a(18),a(19),a(20),a(21),e.exports=a(22)},function(e,t){var a=function(e,t){var a=e.find(".eael-adv-accordion"),o=e.find(".eael-accordion-header"),n=a.data("accordion-type"),r=a.data("toogle-speed");o.each((function(){t(this).hasClass("active-default")&&(t(this).addClass("show active"),t(this).next().slideDown(r))})),o.unbind("click"),o.click((function(e){e.preventDefault();var a=t(this);"accordion"===n?a.hasClass("show")?(a.removeClass("show active"),a.next().slideUp(r)):(a.parent().parent().find(".eael-accordion-header").removeClass("show active"),a.parent().parent().find(".eael-accordion-content").slideUp(r),a.toggleClass("show active"),a.next().slideToggle(r)):a.hasClass("show")?(a.removeClass("show active"),a.next().slideUp(r)):(a.addClass("show active"),a.next().slideDown(r))}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-adv-accordion.default",a)}))},function(e,t){function a(e,t){for(var a=0;a<t.length;a++){var o=t[a];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}var o=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),elementorFrontend.hooks.addAction("frontend/element_ready/eael-advanced-data-table.default",this.initFrontend.bind(this))}var t,o,n;return t=e,(o=[{key:"initFrontend",value:function(e,t){var a=e.context.querySelector(".ea-advanced-data-table"),o=e.context.querySelector(".ea-advanced-data-table-search"),n=e.context.querySelector(".ea-advanced-data-table-pagination"),r={};ea.isEditMode||null===a||(this.initTableSearch(a,o,n),this.initTableSort(a,n,r),this.initTablePagination(a,n,r),this.initWooFeatures(a))}},{key:"initTableSearch",value:function(e,t,a){t&&t.addEventListener("input",(function(t){var o=t.target.value.toLowerCase(),n=e.classList.contains("ea-advanced-data-table-sortable"),r="thead"==e.rows[0].parentNode.tagName.toLowerCase()?1:0;if(e.rows.length>1)if(o.length>0){n&&e.classList.add("ea-advanced-data-table-unsortable"),a&&a.innerHTML.length>0&&(a.style.display="none");for(var i=r;i<e.rows.length;i++){var l=!1;if(e.rows[i].cells.length>0)for(var s=0;s<e.rows[i].cells.length;s++)if(e.rows[i].cells[s].textContent.toLowerCase().indexOf(o)>-1){l=!0;break}e.rows[i].style.display=l?"table-row":"none"}}else if(n&&e.classList.remove("ea-advanced-data-table-unsortable"),a&&a.innerHTML.length>0){a.style.display="";for(var d=a.querySelector(".ea-advanced-data-table-pagination-current").dataset.page,c=(d-1)*e.dataset.itemsPerPage+1,u=d*e.dataset.itemsPerPage,f=1;f<=e.rows.length-1;f++)e.rows[f].style.display=f>=c&&f<=u?"table-row":"none"}else for(var m=1;m<=e.rows.length-1;m++)e.rows[m].style.display="table-row"}))}},{key:"initTableSort",value:function(e,t,a){e.classList.contains("ea-advanced-data-table-sortable")&&e.addEventListener("click",(function(o){if("th"===o.target.tagName.toLowerCase()){var n=o.target.cellIndex,r=1,i=1,l=e.rows.length-1,s="",d=o.target.classList,c=[],u=e.cloneNode(!0);d.contains("asc")?(o.target.classList.remove("asc"),o.target.classList.add("desc"),s="desc"):d.contains("desc")?(o.target.classList.remove("desc"),o.target.classList.add("asc"),s="asc"):(o.target.classList.add("asc"),s="asc"),t&&t.innerHTML.length>0&&(r=t.querySelector(".ea-advanced-data-table-pagination-current").dataset.page,i=(r-1)*e.dataset.itemsPerPage+1,l=l-(r-1)*e.dataset.itemsPerPage>=e.dataset.itemsPerPage?r*e.dataset.itemsPerPage:l),a[r]=[],e.querySelectorAll("th").forEach((function(e){e.cellIndex!=n&&e.classList.remove("asc","desc"),a[r].push(e.classList.contains("asc")?"asc":e.classList.contains("desc")?"desc":"")}));for(var f=i;f<=l;f++){var m=void 0,p=e.rows[f].cells[n];m=isNaN(parseInt(p.innerText))?p.innerText.toLowerCase():parseInt(p.innerText),c.push({index:f,value:m})}"asc"==s?c.sort((function(e,t){return e.value>t.value?1:-1})):"desc"==s&&c.sort((function(e,t){return e.value<t.value?1:-1})),c.forEach((function(t,a){e.rows[i+a].innerHTML=u.rows[t.index].innerHTML}))}}))}},{key:"initTablePagination",value:function(e,t,a){if(e.classList.contains("ea-advanced-data-table-paginated")){var o="",n=t.classList.contains("ea-advanced-data-table-pagination-button")?"button":"select",r=1,i="thead"==e.rows[0].parentNode.tagName.toLowerCase()?1:0,l=r*e.dataset.itemsPerPage,s=Math.ceil((e.rows.length-1)/e.dataset.itemsPerPage);if(s>1)if("button"==n){for(var d=1;d<=s;d++)o+='<a href="#" data-page="'.concat(d,'" class="').concat(1==d?"ea-advanced-data-table-pagination-current":"",'">').concat(d,"</a>");t.insertAdjacentHTML("beforeend",'<a href="#" data-page="1">&laquo;</a>'.concat(o,'<a href="#" data-page="').concat(s,'">&raquo;</a>'))}else{for(var c=1;c<=s;c++)o+='<option value="'.concat(c,'">').concat(c,"</option>");t.insertAdjacentHTML("beforeend","<select>".concat(o,"</select>"))}for(var u=0;u<=l&&!(u>=e.rows.length);u++)e.rows[u].style.display="table-row";"button"==n?t.addEventListener("click",(function(o){if(o.preventDefault(),"a"==o.target.tagName.toLowerCase()){r=o.target.dataset.page,offset="thead"==e.rows[0].parentNode.tagName.toLowerCase()?1:0,i=(r-1)*e.dataset.itemsPerPage+offset,l=r*e.dataset.itemsPerPage,t.querySelectorAll(".ea-advanced-data-table-pagination-current").forEach((function(e){e.classList.remove("ea-advanced-data-table-pagination-current")})),t.querySelectorAll('[data-page="'.concat(r,'"]')).forEach((function(e){e.classList.add("ea-advanced-data-table-pagination-current")}));for(var n=offset;n<=e.rows.length-1;n++)e.rows[n].style.display=n>=i&&n<=l?"table-row":"none";e.querySelectorAll("th").forEach((function(e,t){e.classList.remove("asc","desc"),void 0!==a[r]&&a[r][t]&&e.classList.add(a[r][t])}))}})):t.hasChildNodes()&&t.querySelector("select").addEventListener("input",(function(t){t.preventDefault(),r=t.target.value,offset="thead"==e.rows[0].parentNode.tagName.toLowerCase()?1:0,i=(r-1)*e.dataset.itemsPerPage+offset,l=r*e.dataset.itemsPerPage;for(var o=offset;o<=e.rows.length-1;o++)e.rows[o].style.display=o>=i&&o<=l?"table-row":"none";e.querySelectorAll("th").forEach((function(e,t){e.classList.remove("asc","desc"),void 0!==a[r]&&a[r][t]&&e.classList.add(a[r][t])}))}))}}},{key:"initWooFeatures",value:function(e){e.querySelectorAll(".nt_button_woo").forEach((function(e){e.classList.add("add_to_cart_button","ajax_add_to_cart")})),e.querySelectorAll(".nt_woo_quantity").forEach((function(t){t.addEventListener("input",(function(t){var a=t.target.dataset.product_id,o=t.target.value;$(".nt_add_to_cart_".concat(a),$(e)).data("quantity",o)}))}))}}])&&a(t.prototype,o),n&&a(t,n),e}();ea.hooks.addAction("init","ea",(function(){new o}))},function(e,t){var a=function(e,t){var a="#"+e.find(".eael-advance-tabs").attr("id").toString();t(a+" .eael-tabs-nav ul li").each((function(e){t(this).hasClass("active-default")?(t(a+" .eael-tabs-nav > ul li").removeClass("active").addClass("inactive"),t(this).removeClass("inactive")):0==e&&t(this).removeClass("inactive").addClass("active")})),t(a+" .eael-tabs-content div").each((function(e){t(this).hasClass("active-default")?t(a+" .eael-tabs-content > div").removeClass("active"):0==e&&t(this).removeClass("inactive").addClass("active")})),t(a+" .eael-tabs-nav ul li").click((function(){var e=t(this).index(),a=t(this).closest(".eael-advance-tabs"),o=t(a).children(".eael-tabs-nav").children("ul").children("li"),n=t(a).children(".eael-tabs-content").children("div");t(this).parent("li").addClass("active"),t(o).removeClass("active active-default").addClass("inactive"),t(this).addClass("active").removeClass("inactive"),t(n).removeClass("active").addClass("inactive"),t(n).eq(e).addClass("active").removeClass("inactive");var r=n.eq(e).find(".eael-filter-gallery-container"),i=n.eq(e).find(".eael-post-grid.eael-post-appender"),l=n.eq(e).find(".eael-twitter-feed-masonry"),s=n.eq(e).find(".eael-instafeed"),d=n.eq(e).find(".premium-gallery-container");i.length&&i.isotope("layout"),l.length&&l.isotope("layout"),r.length&&r.isotope("layout"),s.length&&s.isotope("layout"),d.length&&d.each((function(e,a){t(a).isotope("layout")})),t(n).each((function(e){t(this).removeClass("active-default")}))}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-adv-tabs.default",a)}))},function(e,t){var a=function(e,t){var a=t(".eael-better-docs-category-grid",e),o=a.data("layout-mode");"masonry"===o&&(a.isotope({itemSelector:".eael-better-docs-category-grid-post",layoutMode:o,percentPosition:!0}),a.imagesLoaded().progress((function(){a.isotope("layout")}))),t(".eael-bd-grid-sub-cat-title").on("click",(function(e){e.preventDefault(),t(this).children(".toggle-arrow").toggle(),t(this).next(".docs-sub-cat-list").slideToggle()}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-betterdocs-category-grid.default",a)}))},function(e,t){var a=function(e,t){var a=e.find(".eael-content-ticker").eq(0),o=void 0!==a.data("items")?a.data("items"):1,n=void 0!==a.data("items-tablet")?a.data("items-tablet"):1,r=void 0!==a.data("items-mobile")?a.data("items-mobile"):1,i=void 0!==a.data("margin")?a.data("margin"):10,l=void 0!==a.data("margin-tablet")?a.data("margin-tablet"):10,s=void 0!==a.data("margin-mobile")?a.data("margin-mobile"):10,d=void 0!==a.data("effect")?a.data("effect"):"slide",c=void 0!==a.data("speed")?a.data("speed"):400,u=void 0!==a.data("autoplay")?a.data("autoplay"):5e3,f=void 0!==a.data("loop")&&a.data("loop"),m=void 0!==a.data("grab-cursor")&&a.data("grab-cursor"),p=void 0!==a.data("pagination")?a.data("pagination"):".swiper-pagination",g=void 0!==a.data("arrow-next")?a.data("arrow-next"):".swiper-button-next",v=void 0!==a.data("arrow-prev")?a.data("arrow-prev"):".swiper-button-prev",y=void 0!==a.data("pause-on-hover")?a.data("pause-on-hover"):"",h=new Swiper(a,{direction:"horizontal",loop:f,speed:c,effect:d,slidesPerView:o,spaceBetween:i,grabCursor:m,paginationClickable:!0,autoHeight:!0,autoplay:{delay:u},pagination:{el:p,clickable:!0},navigation:{nextEl:g,prevEl:v},breakpoints:{480:{slidesPerView:r,spaceBetween:s},768:{slidesPerView:n,spaceBetween:l}}});0===u&&h.autoplay.stop(),y&&0!==u&&(a.on("mouseenter",(function(){h.autoplay.stop()})),a.on("mouseleave",(function(){h.autoplay.start()})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-content-ticker.default",a)}))},function(e,t){var a=function(e,t){var a=e.find(".eael-countdown-wrapper").eq(0),o=void 0!==a.data("countdown-id")?a.data("countdown-id"):"",n=void 0!==a.data("expire-type")?a.data("expire-type"):"",r=void 0!==a.data("expiry-text")?a.data("expiry-text"):"",i=void 0!==a.data("expiry-title")?a.data("expiry-title"):"",l=void 0!==a.data("redirect-url")?a.data("redirect-url"):"",s=void 0!==a.data("template")?a.data("template"):"";jQuery(document).ready((function(e){"use strict";var t=e("#eael-countdown-"+o);t.countdown({end:function(){"text"==n?t.html('<div class="eael-countdown-finish-message"><h4 class="expiry-title">'+i+'</h4><div class="eael-countdown-finish-text">'+r+"</div></div>"):"url"===n?isEditMode?t.html("Your Page will be redirected to given URL (only on Frontend)."):window.location.href=l:"template"===n&&t.html(s)}})}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-countdown.default",a)}))},function(e,t){var a=function(e,t){var a=e.find(".eael-data-table-wrap");a.data("table_id");if("undefined"!=typeof enableProSorter&&t.isFunction(enableProSorter)&&t(document).ready((function(){enableProSorter(jQuery,a)})),1==a.data("custom_responsive")){var o=e.find(".eael-data-table").find("th");e.find(".eael-data-table").find("tbody").find("tr").each((function(e,a){t(a).find("td .td-content-wrapper").each((function(e,a){t(this).prepend('<div class="th-mobile-screen">'+o.eq(e).html()+"</div>")}))}))}},o=function(e,t,a){if("ea:table:export"==event.target.dataset.event){for(var o=a.el.querySelector("#eael-data-table-"+t.attributes.id).querySelectorAll("table tr"),n=[],r=0;r<o.length;r++){for(var i=[],l=o[r].querySelectorAll("th, td"),s=0;s<l.length;s++)i.push(JSON.stringify(l[s].innerText.replace(/(\r\n|\n|\r)/gm," ").trim()));n.push(i.join(","))}var d=new Blob([n.join("\n")],{type:"text/csv"}),c=parent.document.createElement("a");c.classList.add("eael-data-table-download-"+t.attributes.id),c.download="eael-data-table-"+t.attributes.id+".csv",c.href=window.URL.createObjectURL(d),c.style.display="none",parent.document.body.appendChild(c),c.click(),parent.document.querySelector(".eael-data-table-download-"+t.attributes.id).remove()}},n=function(e,t,a){var n=o.bind(this,e,t,a);e.el.addEventListener("click",n),e.currentPageView.on("destroy",(function(){e.el.removeEventListener("click",n)}))};jQuery(window).on("elementor/frontend/init",(function(){isEditMode&&elementor.hooks.addAction("panel/open_editor/widget/eael-data-table",n),elementorFrontend.hooks.addAction("frontend/element_ready/eael-data-table.default",a)}))},function(e,t){var a=function(e,t){var a=FullCalendar.Calendar,o=t(".eael-event-calendar-cls",e),n=t(".eaelec-modal-close",e).eq(0),r=t("#eaelecModal",e),i=o.data("events"),l=o.data("first_day"),s=o.data("cal_id"),d=o.data("locale"),c=o.data("translate"),u=o.data("defaultview"),f=new a(document.getElementById("eael-event-calendar-"+s),{plugins:["dayGrid","timeGrid","list"],editable:!1,selectable:!1,draggable:!1,firstDay:l,eventTimeFormat:{hour:"2-digit",minute:"2-digit",meridiem:"short"},nextDayThreshold:"00:00:00",header:{left:"prev,next today",center:"title",right:"timeGridDay,timeGridWeek,dayGridMonth,listMonth"},events:i,selectHelper:!0,locale:d,eventLimit:3,defaultView:u,eventRender:function(e){var a=t(e.el),o=e.event;void 0!==o.extendedProps.eventHasComplete&&"yes"===o.extendedProps.eventHasComplete&&(a.find("div.fc-content .fc-title").addClass("eael-event-completed"),a.find("td.fc-list-item-title").addClass("eael-event-completed")),c.today=e.event._calendar.dateEnv.locale.options.buttonText.today,a.attr("href","javascript:void(0);"),a.click((function(e){e.preventDefault(),e.stopPropagation();var a=o.start,n="h:mm A",i=o.end,l=t("span.eaelec-event-date-start"),s=t("span.eaelec-event-date-end");"yes"===o.allDay&&(i=moment(i).subtract(1,"days")._d,n=" ");var d=moment(a).format("YYYY"),u=moment(i).format("YYYY"),f=u>d,m="",p="";l.html(" "),s.html(" "),r.addClass("eael-ec-popup-ready").removeClass("eael-ec-modal-removing"),"yes"===o.allDay&&moment(a).format("MM-DD-YYYY")===moment(i).format("MM-DD-YYYY")?(m=moment(a).format("MMM Do"),!0===moment(a).isSame(Date.now(),"day")?m=c.today:moment(a).format("MM-DD-YYYY")===moment(new Date).add(1,"days").format("MM-DD-YYYY")&&(m=c.tomorrow)):(!0===moment(o.start).isSame(Date.now(),"day")&&(m=c.today+" "+moment(o.start).format(n)),moment(a).format("MM-DD-YYYY")===moment(new Date).add(1,"days").format("MM-DD-YYYY")&&(m=c.tomorrow+" "+moment(o.start).format(n)),(moment(a).format("MM-DD-YYYY")<moment(new Date).format("MM-DD-YYYY")||moment(a).format("MM-DD-YYYY")>moment(new Date).add(1,"days").format("MM-DD-YYYY"))&&(m=moment(o.start).format("MMM Do "+n)),m=f?d+" "+m:m,!0===moment(i).isSame(Date.now(),"day")&&(p=!0!==moment(a).isSame(Date.now(),"day")?c.today+" "+moment(i).format(n):moment(i).format(n)),moment(a).format("MM-DD-YYYY")!==moment(new Date).add(1,"days").format("MM-DD-YYYY")&&moment(i).format("MM-DD-YYYY")===moment(new Date).add(1,"days").format("MM-DD-YYYY")&&(p=c.tomorrow+" "+moment(i).format(n)),moment(a).format("MM-DD-YYYY")===moment(new Date).add(1,"days").format("MM-DD-YYYY")&&moment(i).format("MM-DD-YYYY")===moment(new Date).add(1,"days").format("MM-DD-YYYY")&&(p=moment(i).format(n)),moment(i).diff(moment(a),"days")>0&&s.text().trim().length<1&&(p=moment(i).format("MMM Do "+n)),moment(a).format("MM-DD-YYYY")===moment(i).format("MM-DD-YYYY")&&(p=moment(i).format(n)),p=f?u+" "+p:p),void 0!==o.extendedProps.hideEndDate&&"yes"===o.extendedProps.hideEndDate?s.html(" "):s.html(""!=p?"- "+p:""),l.html('<i class="eicon-calendar"></i> '+m),t(".eaelec-modal-header h2").html(o.title),t(".eaelec-modal-body p").html(o.extendedProps.description),o.extendedProps.description.length<1?t(".eaelec-modal-body").css("height","auto"):t(".eaelec-modal-body").css("height","300px"),t(".eaelec-modal-footer a").attr("href",o.url),"on"===o.extendedProps.external&&t(".eaelec-modal-footer a").attr("target","_blank"),"on"===o.extendedProps.nofollow&&t(".eaelec-modal-footer a").attr("rel","nofollow"),""==o.url&&t(".eaelec-modal-footer a").css("display","none"),t(".eaelec-modal-header").css("border-left","5px solid "+o.borderColor)}))}});n.on("click",(function(){event.stopPropagation(),r.addClass("eael-ec-modal-removing").removeClass("eael-ec-popup-ready")})),t(document).on("click",(function(e){e.target.closest(".eaelec-modal-content")||r.hasClass("eael-ec-popup-ready")&&r.addClass("eael-ec-modal-removing").removeClass("eael-ec-popup-ready")})),f.render()};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-event-calendar.default",a)}))},function(e,t){var a=function(e,t){isEditMode||($facebook_gallery=t(".eael-facebook-feed",e).isotope({itemSelector:".eael-facebook-feed-item",percentPosition:!0,columnWidth:".eael-facebook-feed-item"}),$facebook_gallery.imagesLoaded().progress((function(){$facebook_gallery.isotope("layout")}))),t(".eael-load-more-button",e).on("click",(function(a){a.preventDefault(),$this=t(this),$settings=$this.attr("data-settings"),$page=$this.attr("data-page"),$loadmore_text=$this.attr("data-loadmore-text"),$this.addClass("button--loading"),t("span",$this).html("Loading..."),t.ajax({url:localize.ajaxurl,type:"post",data:{action:"facebook_feed_load_more",security:localize.nonce,settings:$settings,page:$page},success:function(a){$html=t(a.html),$facebook_gallery=t(".eael-facebook-feed",e).isotope(),t(".eael-facebook-feed",e).append($html),$facebook_gallery.isotope("appended",$html),$facebook_gallery.imagesLoaded().progress((function(){$facebook_gallery.isotope("layout")})),a.num_pages>$page?($this.attr("data-page",parseInt($page)+1),$this.removeClass("button--loading"),t("span",$this).html($loadmore_text)):$this.remove()},error:function(){}})}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-facebook-feed.default",a)}))},function(e,t){var a=function(e,t){var a=e.find(".eael-fancy-text-container").eq(0),o=void 0!==a.data("fancy-text-id")?a.data("fancy-text-id"):"",n=void 0!==a.data("fancy-text")?a.data("fancy-text"):"",r=void 0!==a.data("fancy-text-transition-type")?a.data("fancy-text-transition-type"):"",i=void 0!==a.data("fancy-text-speed")?a.data("fancy-text-speed"):"",l=void 0!==a.data("fancy-text-delay")?a.data("fancy-text-delay"):"",s="yes"===a.data("fancy-text-cursor"),d=void 0!==a.data("fancy-text-loop")&&"yes"==a.data("fancy-text-loop");n=n.split("|"),"typing"==r&&new Typed("#eael-fancy-text-"+o,{strings:n,typeSpeed:i,backSpeed:0,startDelay:300,backDelay:l,showCursor:s,loop:d}),"typing"!=r&&t("#eael-fancy-text-"+o).Morphext({animation:r,separator:", ",speed:l,complete:function(){}}),jQuery(window).on("load",(function(){setTimeout((function(){t(".eael-fancy-text-strings",e).css("display","inline-block")}),500)})),isEditMode&&setTimeout((function(){t(".eael-fancy-text-strings",e).css("display","inline-block")}),800)};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-fancy-text.default",a)}))},function(e,t){var a=function(e,t){var a,o,n,r=e.find(".fg-layout-3-filter-controls").eq(0),i=e.find("#fg-filter-trigger"),l=e.find(".fg-layout-3-search-box"),s=e.find("#fg-search-box-input");if(l.length&&l.on("submit",(function(e){e.preventDefault()})),i.on("click",(function(){r.toggleClass("open-filters")})).blur((function(){r.toggleClass("open-filters")})),!isEditMode){var d=t(".eael-filter-gallery-container",e),c=d.data("settings"),u=d.data("gallery-items"),f="masonry"==c.grid_style?"masonry":"fitRows",m="yes"==c.gallery_enabled,p=t(".eael-filter-gallery-wrapper").data("layout-mode"),g=t(".eael-filter-gallery-wrapper").data("mfp_caption"),v=d.isotope({itemSelector:".eael-filterable-gallery-item-wrap",layoutMode:f,percentPosition:!0,stagger:30,transitionDuration:c.duration+"ms",filter:function(){var n=t(this),r=!a||n.text().match(a);null==o&&(o="layout_3"!=p?e.find(".eael-filter-gallery-control ul li").first().data("filter"):e.find(".fg-layout-3-filter-controls li").first().data("filter"));var i=!o||n.is(o);return r&&i}});t(e).magnificPopup({delegate:".eael-magnific-link",type:"image",gallery:{enabled:m},image:{titleSrc:function(e){if("yes"==g)return e.el.parents(".gallery-item-caption-over").find(".fg-item-title").html()||e.el.parents(".gallery-item-caption-wrap").find(".fg-item-title").html()||e.el.parents(".eael-filterable-gallery-item-wrap").find(".fg-item-title").html()}}}),e.on("click",".control",(function(){var a=t(this);o=t(this).attr("data-filter"),e.find("#fg-filter-trigger > span")&&e.find("#fg-filter-trigger > span").text(a.text()),a.siblings().removeClass("active"),a.addClass("active"),v.isotope()})),s.on("input",(function(){var e=t(this);clearTimeout(n),n=setTimeout((function(){a=new RegExp(e.val(),"gi"),v.isotope()}),600)})),v.imagesLoaded().progress((function(){v.isotope("layout")})),v.on("arrangeComplete",(function(){v.isotope("layout")})),t(window).on("load",(function(){v.isotope("layout")})),e.on("click",".eael-gallery-load-more",(function(a){a.preventDefault();var o=t(this),n=t(".eael-filter-gallery-container",e).children(".eael-filterable-gallery-item-wrap").length,r=d.data("total-gallery-items"),i=d.data("images-per-page"),l=d.data("nomore-item-text"),s=[];n==r&&(o.html('<div class="no-more-items-text">'+l+"</div>"),setTimeout((function(){o.fadeOut("slow")}),600));for(var c=n;c<n+i;c++)s.push(t(u[c])[0]);d.append(s),v.isotope("appended",s),v.imagesLoaded().progress((function(){v.isotope("layout")}))}))}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-filterable-gallery.default",a)}))},function(e,t){var a=function(e,t){var a=e.find(".eael-img-accordion").eq(0),o=void 0!==a.data("img-accordion-id")?a.data("img-accordion-id"):"",n=void 0!==a.data("img-accordion-type")?a.data("img-accordion-type"):"",r=0;"on-click"===n?(t("#eael-img-accordion-"+o+" a").on("click",(function(e){0==t(this).hasClass("overlay-active")&&e.preventDefault(),0==r&&(t("#eael-img-accordion-"+o+" a").hasClass("overlay-active")&&t("#eael-img-accordion-"+o+" a").removeClass("overlay-active"),r+=1),t("#eael-img-accordion-"+o+" a").css("flex","1"),t(this).find(".overlay").parent("a").addClass("overlay-active"),t("#eael-img-accordion-"+o+" a").find(".overlay-inner").removeClass("overlay-inner-show"),t(this).find(".overlay-inner").addClass("overlay-inner-show"),t(this).css("flex","3")})),t("#eael-img-accordion-"+o+" a").on("blur",(function(e){t("#eael-img-accordion-"+o+" a").css("flex","1"),t("#eael-img-accordion-"+o+" a").find(".overlay-inner").removeClass("overlay-inner-show"),t(this).find(".overlay").parent("a").removeClass("overlay-active")}))):t("#eael-img-accordion-"+o+" a").on("hover",(function(){t("#eael-img-accordion-"+o+" a").hasClass("overlay-active")&&(t("#eael-img-accordion-"+o+" a.overlay-active").css("flex","1"),t("#eael-img-accordion-"+o+" a").removeClass("overlay-active"),t("#eael-img-accordion-"+o+" a .overlay .overlay-inner").removeClass("overlay-inner-show"))}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-image-accordion.default",a)}))},function(e,t){!function(e){"use strict";e(document).on("click",".eael-load-more-button",(function(t){t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation();var a=e(this),o=e("span",a).html(),n=a.data("widget"),r=e(".elementor-element-"+n),i=a.data("class"),l=a.data("args"),s=a.data("settings"),d=a.data("layout"),c=parseInt(a.data("page"))+1;if(void 0!==n&&void 0!==l){var u={},f={action:"load_more",class:i,args:l,settings:s,page:c};if(String(l).split("&").forEach((function(e,t){var a=String(e).split("=");u[a[0]]=a[1]})),"rand"==u.orderby){var m=e(".eael-grid-post");if(m.length){var p=[];m.each((function(t,a){var o=e(a).data("id");p.push(o)})),f.post__not_in=p}}a.addClass("button--loading"),e("span",a).html("Loading..."),e.ajax({url:localize.ajaxurl,type:"post",data:f,success:function(t){var n=e(t);if(n.hasClass("no-posts-found")||0==n.length)a.remove();else{if("Essential_Addons_Elementor\\Elements\\Product_Grid"==f.class)e(".eael-product-grid .products",r).append(n);else if(e(".eael-post-appender",r).append(n),"masonry"==d){var i=e(".eael-post-appender",r).isotope();i.isotope("appended",n).isotope("layout"),i.imagesLoaded().progress((function(){i.isotope("layout")}))}a.removeClass("button--loading"),e("span",a).html(o),a.data("page",c)}},error:function(e){console.log(e)}})}}))}(jQuery)},function(e,t){var a=function(e,t){var a=t(".eael-post-appender",e),o=a.data("layout-mode");"masonry"===o&&(a.isotope({itemSelector:".eael-grid-post",layoutMode:o,percentPosition:!0}),a.imagesLoaded().progress((function(){a.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-post-grid.default",a)}))},function(e,t){var a=function(e,t){if(t.fn.tooltipster){var a,o=e.find(".tooltip");for(a=0;a<o.length;a++){var n=t("#"+t(o[a]).attr("id")),r=void 0!==n.data("side")&&n.data("side"),i=void 0!==n.data("trigger")?n.data("trigger"):"hover",l=void 0!==n.data("animation")?n.data("animation"):"fade",s=void 0!==n.data("animation_duration")?n.data("animation_duration"):300,d=void 0!==n.data("theme")?n.data("theme"):"default",c="yes"==n.data("arrow");n.tooltipster({animation:l,trigger:i,side:r,delay:s,arrow:c,theme:"tooltipster-"+d})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-pricing-table.default",a)}))},function(e,t){var a=function(e,t){var a=t(".eael-progressbar",e),o=a.data("layout"),n=a.data("count"),r=a.data("duration");n>100&&(n=100),a.one("inview",(function(){"line"==o?t(".eael-progressbar-line-fill",a).css({width:n+"%"}):"half_circle"==o&&t(".eael-progressbar-circle-half",a).css({transform:"rotate("+1.8*n+"deg)"}),ea.hooks.doAction("progressBar.initValue",a,o,n),t(".eael-progressbar-count",a).prop({counter:0}).animate({counter:n},{duration:r,easing:"linear",step:function(e){if("circle"==o||"circle_fill"==o){var n=3.6*e;t(".eael-progressbar-circle-half-left",a).css({transform:"rotate("+n+"deg)"}),n>180&&(t(".eael-progressbar-circle-pie",a).css({"-webkit-clip-path":"inset(0)","clip-path":"inset(0)"}),t(".eael-progressbar-circle-half-right",a).css({visibility:"visible"}))}t(this).text(Math.ceil(e))}})}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-progress-bar.default",a)}))},function(e,t){jQuery(document).ready((function(){jQuery(window).scroll((function(){var e=(document.body.scrollTop||document.documentElement.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)*100;jQuery(".eael-reading-progress-fill").css({width:e+"%"})})),isEditMode&&(elementor.settings.page.addChangeCallback("eael_ext_reading_progress",(function(e){var t=elementor.settings.page.getSettings();"yes"==e?(0==jQuery(".eael-reading-progress-wrap").length&&jQuery("body").append('<div class="eael-reading-progress-wrap eael-reading-progress-wrap-local"><div class="eael-reading-progress eael-reading-progress-local eael-reading-progress-'+t.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div><div class="eael-reading-progress eael-reading-progress-global eael-reading-progress-'+t.settings.eael_ext_reading_progress_position+'"><div class="eael-reading-progress-fill"></div></div></div>'),jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-local").removeClass("eael-reading-progress-wrap-global eael-reading-progress-wrap-disabled")):(jQuery(".eael-reading-progress-wrap").removeClass("eael-reading-progress-wrap-local eael-reading-progress-wrap-global"),1==t.settings.eael_ext_reading_progress_has_global?jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-global"):jQuery(".eael-reading-progress-wrap").addClass("eael-reading-progress-wrap-disabled"))})),elementor.settings.page.addChangeCallback("eael_ext_reading_progress_position",(function(e){elementor.settings.page.setSettings("eael_ext_reading_progress_position",e),jQuery(".eael-reading-progress").removeClass("eael-reading-progress-top eael-reading-progress-bottom").addClass("eael-reading-progress-"+e)})))}))},function(e,t){var a="",o=0,n=0,r=0,i="off",l=0;function s(e){var t=jQuery(e).parent().height(),a=l*t/100;return jQuery(e).parent().offset().top+a}function d(e,t,a){"top-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),"top-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("top","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-right"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("right","40px")),"bottom-left"==e&&(jQuery(".eael-sticky-video-player2.out").css("bottom","40px"),jQuery(".eael-sticky-video-player2.out").css("left","40px")),jQuery(".eael-sticky-video-player2.out").css("width",a+"px"),jQuery(".eael-sticky-video-player2.out").css("height",t+"px")}jQuery(window).on("elementor/frontend/init",(function(){isEditMode&&elementor.hooks.addAction("panel/open_editor/widget/eael-sticky-video",(function(e,t,a){var o;t.attributes.settings.on("change:eaelsv_sticky_width",(function(){clearTimeout(o),o=setTimeout((function(){var a=Math.ceil(t.getSetting("eaelsv_sticky_width")/1.78);t.attributes.settings.attributes.eaelsv_sticky_height=a,e.el.querySelector('[data-setting="eaelsv_sticky_height"]').value=a}),250)})),t.attributes.settings.on("change:eaelsv_sticky_height",(function(){clearTimeout(o),o=setTimeout((function(){var a=Math.ceil(1.78*t.getSetting("eaelsv_sticky_height"));t.attributes.settings.attributes.eaelsv_sticky_width=a,e.el.querySelector('[data-setting="eaelsv_sticky_width"]').value=a}),250)}))})),elementorFrontend.hooks.addAction("frontend/element_ready/eael-sticky-video.default",(function(e,t){t(".eaelsv-sticky-player-close",e).hide();var c,u,f,m=e.find(".eael-sticky-video-player2");c=m.data("sticky"),u=m.data("autoplay"),a=m.data("position"),n=m.data("sheight"),o=m.data("swidth"),f=m.data("overlay"),l=m.data("scroll_height"),d(a,n,o);var p,g=new Plyr("#eaelsv-player-"+e.data("id"));if("no"===f&&"yes"===u&&"yes"===c&&(r=s(m),m.attr("id","videobox"),i="on",p=m,g.on("play",(function(e){r=s(p),jQuery(".eael-sticky-video-player2").removeAttr("id"),jQuery(".eael-sticky-video-player2").removeClass("out"),p.attr("id","videobox"),i="on",a=p.data("position"),n=p.data("sheight"),o=p.data("swidth")}))),"yes"===f){var v=m.prev();i="off",t(v).on("click",(function(){t(".eael-sticky-video-wrapper > i").hide(),t(this).css("display","none"),g.play(),"yes"===t(this).next().data("autoplay")&&(g.restart(),r=s(this),"yes"===c&&(t(this).next().attr("id","videobox"),i="on"))}))}g.on("pause",(function(e){i="off"})),g.on("play",(function(e){i="on"})),t(".eaelsv-sticky-player-close").on("click",(function(){m.removeClass("out").addClass("in"),t(".eael-sticky-video-player2").removeAttr("style"),i="off"})),m.parent().css("height",m.height()+"px"),t(window).resize((function(){m.parent().css("height",m.height()+"px")}))}))})),jQuery(window).scroll((function(){var e=jQuery(window).scrollTop();jQuery(document).height()-e>jQuery(window).height()+400&&(e>=r?"on"==i&&(jQuery("#videobox").find(".eaelsv-sticky-player-close").css("display","block"),jQuery("#videobox").removeClass("in").addClass("out"),d(a,n,o)):(jQuery(".eaelsv-sticky-player-close").hide(),jQuery("#videobox").removeClass("out").addClass("in"),jQuery(".eael-sticky-video-player2").removeAttr("style")))}))},function(e,t){function a(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return o(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return o(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,o=new Array(t);a<t;a++)o[a]=e[a];return o}!function(e){jQuery(document).ready((function(){function t(t,o){var i=document.getElementById("eael-toc-list");if(null===t||void 0===o||!i)return null;for(var l=document.getElementById("eael-toc"),s=void 0!==l.dataset.titleurl?l.dataset.titleurl:"false",d=void 0!==l.dataset.excludeSelector?l.dataset.excludeSelector.replace(/^,|,$/g,""):"",c=[],u=document.querySelectorAll(t),f=0,m=0;m<u.length;m++)c=[].concat(a(c),a(u[m].querySelectorAll(o)));(c=Array.from(new Set(c))).forEach((function(e){n(d,e)||(e.id=f+"-"+r(s,e.textContent),e.classList.add("eael-heading-content"),f++)})),function(e,t,a){var o=t,i=a,l=document.getElementById("eael-toc"),s=void 0!==l.dataset.titleurl?l.dataset.titleurl:"false",d=document.getElementById("eael-toc-list"),c=void 0!==l.dataset.excludeselector?l.dataset.excludeselector.replace(/^,|,$/g,""):"",u="",f=u=o.trim().split(",")[0].substr(1,1),m=d;d.innerHTML="",i.length>0&&document.getElementById("eael-toc").classList.remove("eael-toc-disable");for(var p=0,g=i.length;p<g;++p){var v=i[p];if(!n(c,v)){var y=parseInt(v.tagName.substr(1,1)),h=y-u;if(h>0){var b=m.lastChild;if(b){var w=document.createElement("UL");b.appendChild(w),m=w,u=y}}var _=!1;if(h<0){for(;0!=h++;)m.parentNode.parentNode&&(m=m.parentNode.parentNode);u=y,_=!0}if("UL"!==m.tagName&&(m=d),""!==v.textContent.trim()){var x=document.createElement("LI"),C=document.createElement("A"),k=document.createElement("SPAN");(f===u||_)&&(x.setAttribute("itemscope",""),x.setAttribute("itemtype","http://schema.org/ListItem"),x.setAttribute("itemprop","itemListElement"));var M="#"+p+"-"+r(s,v.textContent);C.className="eael-toc-link",C.setAttribute("itemprop","item"),C.setAttribute("href",M),k.appendChild(document.createTextNode(v.textContent)),C.appendChild(k),x.appendChild(C),m.appendChild(x)}}}}(0,o,c);var p=e("ul.eael-toc-list > li");p.length<1&&document.getElementById("eael-toc").classList.add("eael-toc-disable"),p.each((function(){this.classList.add("eael-first-child")}))}e(document).on("click","ul.eael-toc-list a",(function(t){t.preventDefault(),e(document).off("scroll");var a=this.hash;if(history.pushState("",document.title,window.location.pathname+window.location.search),e(this).parent().is(".eael-highlight-parent.eael-highlight-active"))return window.location.hash=a,!1;e(".eael-highlight-active, .eael-highlight-parent").removeClass("eael-highlight-active eael-highlight-parent"),e(this).closest(".eael-first-child").addClass("eael-highlight-parent"),e(this).parent().addClass("eael-highlight-active"),window.location.hash=a})),window.addEventListener("scroll",(function(e){!function(){var e=document.getElementById("eael-toc");if(!e)return;o=void 0!==o?o:200,window.pageYOffset>=o&&!e.classList.contains("eael-toc-disable")?e.classList.add("eael-sticky"):e.classList.remove("eael-sticky")}()}));var o=e("#eael-toc").data("stickyscroll");function n(t,a){return e(a).closest(t).length}function r(e,t){return"true"==e&&""!=t?t.toString().toLowerCase().normalize("NFD").trim().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/^-+/,"").replace(/-+$/,"").replace(/-+/g,"-"):"eael-table-of-content"}function i(){var t=document.getElementById("eael-toc");if(t&&t.dataset.contentselector)return t.dataset.contentselector;var a=".site-content";return e(".site-content")[0]?a=".site-content":e(".elementor-inner")[0]?a=".elementor-inner":e("#site-content")[0]&&(a="#site-content"),a}e("body").click((function(t){var a=e(t.target),o=e("#eael-toc");o.hasClass("eael-toc-auto-collapse")&&o.hasClass("eael-sticky")&&!o.hasClass("collapsed")&&0===e(a).closest("#eael-toc").length&&o.toggleClass("collapsed")})),e(document).on("click",".eael-toc-close ,.eael-toc-button",(function(t){t.stopPropagation(),e(".eael-toc").toggleClass("collapsed")}));var l=e("#eael-toc").data("eaeltoctag");if(""===l||isEditMode||t(i(),l),isEditMode){elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(e,a){var o=a("#eael-toc #eael-toc-list");if(o.find("li.eael-first-child").length<1&&o.length>=1){var n=a("#eael-toc").data("eaeltoctag");n&&t(i(),n)}})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content",(function(a){var o=e(".eael-toc-global");if(o.length>0&&(o.attr("id","eael-toc-temp").removeClass("eael-toc").hide(),e(".eael-toc-global #eael-toc-list").attr("id","")),e("#eael-toc").remove(),"yes"===a){var n=elementor.settings.page.getSettings();e("body").append(function(e){var t=e.settings,a=t.eael_ext_toc_title,o="eael-toc-list eael-toc-list-"+t.eael_ext_table_of_content_list_style,n=t.eael_ext_table_of_content_header_icon.value,r="right"===t.eael_ext_toc_position?" eael-toc-right":" ";return o+="yes"===t.eael_ext_toc_collapse_sub_heading?" eael-toc-collapse":" ",'<div id="eael-toc" class="eael-toc eael-toc-disable '+r+'"><div class="eael-toc-header"><span class="eael-toc-close">×</span><h2 class="eael-toc-title">'+a+'</h2></div><div class="eael-toc-body"><ul id="eael-toc-list" class="'+(o+="number"===t.eael_ext_toc_list_icon?" eael-toc-number":" eael-toc-bullet")+'"></ul></div><button class="eael-toc-button"><i class="'+n+'"></i><span>'+a+"</span></button></div>"}(n)),t(i(),n.settings.eael_ext_toc_supported_heading_tag.join(", "))}else o.length>0&&o.addClass("eael-toc").attr("id","eael-toc").show()})),elementor.settings.page.addChangeCallback("eael_ext_toc_position",(function(t){"right"===t?e("#eael-toc").addClass("eael-toc-right"):e("#eael-toc").removeClass("eael-toc-right")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_list_style",(function(t){var a=e(".eael-toc-list");a.removeClass("eael-toc-list-bar eael-toc-list-arrow"),"none"!==t&&a.addClass("eael-toc-list-"+t)})),elementor.settings.page.addChangeCallback("eael_ext_toc_collapse_sub_heading",(function(t){var a=e(".eael-toc-list");"yes"===t?a.addClass("eael-toc-collapse"):a.removeClass("eael-toc-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_table_of_content_header_icon",(function(t){e(".eael-toc-button i").removeClass().addClass(t.value)})),elementor.settings.page.addChangeCallback("eael_ext_toc_list_icon",(function(t){var a=e(".eael-toc-list");"number"===t?a.addClass("eael-toc-number").removeClass("eael-toc-bullet"):a.addClass("eael-toc-bullet").removeClass("eael-toc-number")})),elementor.settings.page.addChangeCallback("eael_ext_toc_word_wrap",(function(t){var a=e(".eael-toc-list");"yes"===t?a.addClass("eael-toc-word-wrap"):a.removeClass("eael-toc-word-wrap")})),elementor.settings.page.addChangeCallback("eael_ext_toc_close_button_text_style",(function(t){var a=e("#eael-toc");"bottom_to_top"===t?a.addClass("eael-bottom-to-top"):a.removeClass("eael-bottom-to-top")})),elementor.settings.page.addChangeCallback("eael_ext_toc_box_shadow",(function(t){var a=e("#eael-toc");"yes"===t?a.addClass("eael-box-shadow"):a.removeClass("eael-box-shadow")})),elementor.settings.page.addChangeCallback("eael_ext_toc_auto_collapse",(function(t){var a=e("#eael-toc");"yes"===t?a.addClass("eael-toc-auto-collapse"):a.removeClass("eael-toc-auto-collapse")})),elementor.settings.page.addChangeCallback("eael_ext_toc_title",(function(e){elementorFrontend.elements.$document.find(".eael-toc-title").text(e),elementorFrontend.elements.$document.find(".eael-toc-button span").text(e)}))}}))}(jQuery)},function(e,t){var a=function(e,t){isEditMode||($gutter=t(".eael-twitter-feed-masonry",e).data("gutter"),$settings={itemSelector:".eael-twitter-feed-item",percentPosition:!0,masonry:{columnWidth:".eael-twitter-feed-item",gutter:$gutter}},$twitter_feed_gallery=t(".eael-twitter-feed-masonry",e).isotope($settings),$twitter_feed_gallery.imagesLoaded().progress((function(){$twitter_feed_gallery.isotope("layout")})))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-twitter-feed.default",a)}))},function(e,t){var a=function(e,t){if(typeformEmbed){var a=e.find(".eael-typeform"),o=a.attr("id"),n=a.data("typeform");if(void 0!==o&&void 0!==n){var r=document.getElementById(o);n.url&&typeformEmbed.makeWidget(r,n.url,{hideFooter:n.hideFooter,hideHeaders:n.hideHeaders,opacity:n.opacity})}}};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-typeform.default",a)}))},function(e,t){var a=function(e,t){function a(){var e=t(".ea-woo-checkout");setTimeout((function(){t(".ea-checkout-review-order-table").addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}}),t.ajax({type:"POST",url:localize.ajaxurl,data:{action:"woo_checkout_update_order_review",orderReviewData:e.data("checkout")},success:function(e){t(".ea-checkout-review-order-table").replaceWith(e.order_review),setTimeout((function(){t(".ea-checkout-review-order-table").removeClass("processing").unblock()}),1e5)}})}),2e3)}t.blockUI.defaults.overlayCSS.cursor="default",t(document).on("click",".woocommerce-remove-coupon",(function(e){a()})),t("form.checkout_coupon").submit((function(e){a()}))};jQuery(window).on("elementor/frontend/init",(function(){elementorFrontend.hooks.addAction("frontend/element_ready/eael-woo-checkout.default",a)}))},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,a){"use strict";a.r(t);var o=function(e){return"string"!=typeof e||""===e?(console.error("The namespace must be a non-empty string."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.\-\/]*$/.test(e)||(console.error("The namespace can only contain numbers, letters, dashes, periods, underscores and slashes."),!1)};var n=function(e){return"string"!=typeof e||""===e?(console.error("The hook name must be a non-empty string."),!1):/^__/.test(e)?(console.error("The hook name cannot begin with `__`."),!1):!!/^[a-zA-Z][a-zA-Z0-9_.-]*$/.test(e)||(console.error("The hook name can only contain numbers, letters, dashes, periods and underscores."),!1)};var r=function(e){return function(t,a,r){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:10;if(n(t)&&o(a))if("function"==typeof r)if("number"==typeof i){var l={callback:r,priority:i,namespace:a};if(e[t]){var s,d=e[t].handlers;for(s=d.length;s>0&&!(i>=d[s-1].priority);s--);s===d.length?d[s]=l:d.splice(s,0,l),(e.__current||[]).forEach((function(e){e.name===t&&e.currentIndex>=s&&e.currentIndex++}))}else e[t]={handlers:[l],runs:0};"hookAdded"!==t&&p("hookAdded",t,a,r,i)}else console.error("If specified, the hook priority must be a number.");else console.error("The hook callback must be a function.")}};var i=function(e,t){return function(a,r){if(n(a)&&(t||o(r))){if(!e[a])return 0;var i=0;if(t)i=e[a].handlers.length,e[a]={runs:e[a].runs,handlers:[]};else for(var l=e[a].handlers,s=function(t){l[t].namespace===r&&(l.splice(t,1),i++,(e.__current||[]).forEach((function(e){e.name===a&&e.currentIndex>=t&&e.currentIndex--})))},d=l.length-1;d>=0;d--)s(d);return"hookRemoved"!==a&&p("hookRemoved",a,r),i}}};var l=function(e){return function(t,a){return void 0!==a?t in e&&e[t].handlers.some((function(e){return e.namespace===a})):t in e}};var s=function(e,t){return function(a){e[a]||(e[a]={handlers:[],runs:0}),e[a].runs++;var o=e[a].handlers;for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];if(!o||!o.length)return t?r[0]:void 0;var l={name:a,currentIndex:0};for(e.__current.push(l);l.currentIndex<o.length;){var s=o[l.currentIndex],d=s.callback.apply(null,r);t&&(r[0]=d),l.currentIndex++}return e.__current.pop(),t?r[0]:void 0}};var d=function(e){return function(){return e.__current&&e.__current.length?e.__current[e.__current.length-1].name:null}};var c=function(e){return function(t){return void 0===t?void 0!==e.__current[0]:!!e.__current[0]&&t===e.__current[0].name}};var u=function(e){return function(t){if(n(t))return e[t]&&e[t].runs?e[t].runs:0}};var f=function(){var e=Object.create(null),t=Object.create(null);return e.__current=[],t.__current=[],{addAction:r(e),addFilter:r(t),removeAction:i(e),removeFilter:i(t),hasAction:l(e),hasFilter:l(t),removeAllActions:i(e,!0),removeAllFilters:i(t,!0),doAction:s(e),applyFilters:s(t,!0),currentAction:d(e),currentFilter:d(t),doingAction:c(e),doingFilter:c(t),didAction:u(e),didFilter:u(t),actions:e,filters:t}},m=f(),p=(m.addAction,m.addFilter,m.removeAction,m.removeFilter,m.hasAction,m.hasFilter,m.removeAllActions,m.removeAllFilters,m.doAction);m.applyFilters,m.currentAction,m.currentFilter,m.doingAction,m.doingFilter,m.didAction,m.didFilter,m.actions,m.filters;window.isEditMode=!1,window.ea={hooks:f(),isEditMode:!1},jQuery(window).on("elementor/frontend/init",(function(){window.isEditMode=elementorFrontend.isEditMode(),window.ea.isEditMode=elementorFrontend.isEditMode(),ea.hooks.doAction("init"),ea.isEditMode&&ea.hooks.doAction("editMode.init")}))}]);
 
config.php CHANGED
@@ -866,51 +866,56 @@ $config = [
866
  ],
867
  ],
868
  'extensions' => [
869
- 'eael-promotion' => [
870
  'class' => '\Essential_Addons_Elementor\Extensions\Promotion',
871
  ],
872
- 'eael-custom-js' => [
873
  'class' => '\Essential_Addons_Elementor\Extensions\Custom_JS',
874
  ],
875
- 'eael-reading-progress' => [
876
  'class' => '\Essential_Addons_Elementor\Extensions\Reading_Progress',
877
  'dependency' => [
878
- 'css' => [
879
- [
880
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/reading-progress.min.css',
881
- 'type' => 'self',
882
- 'context' => 'view',
883
- ],
884
- ],
885
  'js' => [
886
  [
887
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/reading-progress.min.js',
888
  'type' => 'self',
889
- 'context' => 'view',
890
  ],
 
 
 
 
 
891
  ],
892
  ],
893
  ],
894
- 'eael-table-of-content' => [
895
  'class' => '\Essential_Addons_Elementor\Extensions\Table_of_Content',
896
- 'dependency' => [
897
- 'css' => [
898
- [
899
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/table-of-content.min.css',
900
- 'type' => 'self',
901
- 'context' => 'view',
902
- ],
903
- ],
904
- 'js' => [
905
- [
906
- 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/table-of-content.min.js',
907
- 'type' => 'self',
908
- 'context' => 'view',
909
- ],
910
- ],
911
- ],
912
- ],
913
- 'eael-post-duplicator' => [
914
  'class' => '\Essential_Addons_Elementor\Extensions\Post_Duplicator',
915
  ],
916
  ],
866
  ],
867
  ],
868
  'extensions' => [
869
+ 'promotion' => [
870
  'class' => '\Essential_Addons_Elementor\Extensions\Promotion',
871
  ],
872
+ 'custom-js' => [
873
  'class' => '\Essential_Addons_Elementor\Extensions\Custom_JS',
874
  ],
875
+ 'reading-progress' => [
876
  'class' => '\Essential_Addons_Elementor\Extensions\Reading_Progress',
877
  'dependency' => [
878
+ // 'css' => [
879
+ // [
880
+ // 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/reading-progress.min.css',
881
+ // 'type' => 'self',
882
+ // 'context' => 'view',
883
+ // ],
884
+ // ],
885
  'js' => [
886
  [
887
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/edit/reading-progress.min.js',
888
  'type' => 'self',
889
+ 'context' => 'edit',
890
  ],
891
+ // [
892
+ // 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/view/reading-progress.min.js',
893
+ // 'type' => 'self',
894
+ // 'context' => 'view',
895
+ // ],
896
  ],
897
  ],
898
  ],
899
+ 'table-of-content' => [
900
  'class' => '\Essential_Addons_Elementor\Extensions\Table_of_Content',
901
+ 'dependency' => [
902
+ // 'css' => [
903
+ // [
904
+ // 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/css/view/table-of-content.min.css',
905
+ // 'type' => 'self',
906
+ // 'context' => 'edit',
907
+ // ],
908
+ // ],
909
+ 'js' => [
910
+ [
911
+ 'file' => EAEL_PLUGIN_PATH . 'assets/front-end/js/edit/table-of-content.min.js',
912
+ 'type' => 'self',
913
+ 'context' => 'edit',
914
+ ],
915
+ ],
916
+ ],
917
+ ],
918
+ 'post-duplicator' => [
919
  'class' => '\Essential_Addons_Elementor\Extensions\Post_Duplicator',
920
  ],
921
  ],
essential_adons_elementor.php CHANGED
@@ -4,7 +4,7 @@
4
  * Description: The Essential plugin you install after Elementor! 70+ Premium elements, including WooCommerce, Event Calender, Data Table, Post Grid, Instagram Feed.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
- * Version: 4.2.4
8
  * Author URI: https://wpdeveloper.net/
9
  * Text Domain: essential-addons-for-elementor-lite
10
  * Domain Path: /languages
@@ -26,7 +26,7 @@ define('EAEL_PLUGIN_FILE', __FILE__);
26
  define('EAEL_PLUGIN_BASENAME', plugin_basename(__FILE__));
27
  define('EAEL_PLUGIN_PATH', trailingslashit(plugin_dir_path(__FILE__)));
28
  define('EAEL_PLUGIN_URL', trailingslashit(plugins_url('/', __FILE__)));
29
- define('EAEL_PLUGIN_VERSION', '4.2.4');
30
  define('EAEL_ASSET_PATH', wp_upload_dir()['basedir'] . '/essential-addons-elementor');
31
  define('EAEL_ASSET_URL', wp_upload_dir()['baseurl'] . '/essential-addons-elementor');
32
  /**
4
  * Description: The Essential plugin you install after Elementor! 70+ Premium elements, including WooCommerce, Event Calender, Data Table, Post Grid, Instagram Feed.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
+ * Version: 4.3.0
8
  * Author URI: https://wpdeveloper.net/
9
  * Text Domain: essential-addons-for-elementor-lite
10
  * Domain Path: /languages
26
  define('EAEL_PLUGIN_BASENAME', plugin_basename(__FILE__));
27
  define('EAEL_PLUGIN_PATH', trailingslashit(plugin_dir_path(__FILE__)));
28
  define('EAEL_PLUGIN_URL', trailingslashit(plugins_url('/', __FILE__)));
29
+ define('EAEL_PLUGIN_VERSION', '4.3.0');
30
  define('EAEL_ASSET_PATH', wp_upload_dir()['basedir'] . '/essential-addons-elementor');
31
  define('EAEL_ASSET_URL', wp_upload_dir()['baseurl'] . '/essential-addons-elementor');
32
  /**
includes/Classes/Bootstrap.php CHANGED
@@ -2,26 +2,27 @@
2
 
3
  namespace Essential_Addons_Elementor\Classes;
4
 
 
 
5
  if (!defined('ABSPATH')) {
6
  exit;
7
  } // Exit if accessed directly
8
 
9
- use Essential_Addons_Elementor\Classes\WPDeveloper_Dashboard_Widget;
10
  use Essential_Addons_Elementor\Classes\WPML\Eael_WPML;
11
- use Essential_Addons_Elementor\Traits\Admin;
12
- use Essential_Addons_Elementor\Traits\Core;
13
- use Essential_Addons_Elementor\Traits\Elements;
14
- use Essential_Addons_Elementor\Traits\Enqueue;
15
- use Essential_Addons_Elementor\Traits\Generator;
16
- use Essential_Addons_Elementor\Traits\Helper;
17
- use Essential_Addons_Elementor\Traits\Library;
18
- use Essential_Addons_Elementor\Traits\Login_Registration;
19
- use Essential_Addons_Elementor\Traits\Shared;
 
20
 
21
  class Bootstrap
22
  {
23
  use Library;
24
- use Shared;
25
  use Core;
26
  use Helper;
27
  use Generator;
@@ -30,34 +31,45 @@ class Bootstrap
30
  use Elements;
31
  use Eael_WPML;
32
  use Login_Registration;
 
 
33
 
34
  // instance container
35
  private static $instance = null;
36
 
 
 
 
37
  // registered elements container
38
- public $registered_elements;
39
 
40
  // registered extensions container
41
- public $registered_extensions;
42
 
43
  // identify whether pro is enabled
44
- public $pro_enabled;
45
 
46
  // localize objects
47
  public $localize_objects = [];
48
 
 
 
 
49
  // loaded templates in a request
50
- public $loaded_templates = [];
51
 
52
- // loaded widgets in a request
53
- public $loaded_widgets = [];
54
 
55
- // css strings, used for inline embed
56
  protected $css_strings;
57
 
58
- // js strings, used for inline embed
59
  protected $js_strings;
60
 
 
 
 
61
  /**
62
  * Singleton instance
63
  *
@@ -101,6 +113,7 @@ class Bootstrap
101
 
102
  // register hooks
103
  $this->register_hooks();
 
104
  }
105
 
106
  protected function register_hooks()
@@ -108,22 +121,24 @@ class Bootstrap
108
  // Core
109
  add_action('init', [$this, 'i18n']);
110
  add_filter('eael/active_plugins', [$this, 'active_plugins'], 10, 1);
111
- add_filter('wpml_elementor_widgets_to_translate', [$this, 'eael_translatable_widgets']);
112
  add_action('elementor/editor/after_save', array($this, 'save_global_values'), 10, 2);
113
 
114
  // Enqueue
115
- add_action('eael/before_enqueue_styles', array($this, 'before_enqueue_styles'));
116
- add_action('elementor/editor/before_enqueue_scripts', array($this, 'lr_enqueue_scripts'));
117
- add_action('wp_enqueue_scripts', array($this, 'lr_enqueue_scripts'));
118
- add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
119
- add_action('elementor/css-file/post/enqueue', [$this, 'enqueue_template_scripts']);
120
- add_action('elementor/editor/before_enqueue_scripts', array($this, 'editor_enqueue_scripts'));
121
  add_action('wp_head', [$this, 'enqueue_inline_styles']);
122
  add_action('wp_footer', [$this, 'enqueue_inline_scripts']);
123
 
 
 
 
 
 
124
  // Ajax
125
- add_action('wp_ajax_load_more', array($this, 'eael_load_more_ajax'));
126
- add_action('wp_ajax_nopriv_load_more', array($this, 'eael_load_more_ajax'));
127
 
128
  add_action('wp_ajax_facebook_feed_load_more', [$this, 'facebook_feed_render_items']);
129
  add_action('wp_ajax_nopriv_facebook_feed_load_more', [$this, 'facebook_feed_render_items']);
@@ -131,30 +146,50 @@ class Bootstrap
131
  add_action('wp_ajax_woo_checkout_update_order_review', [$this, 'woo_checkout_update_order_review']);
132
  add_action('wp_ajax_nopriv_woo_checkout_update_order_review', [$this, 'woo_checkout_update_order_review']);
133
 
 
 
 
 
 
 
 
134
  //handle typeform auth token
135
- add_action('admin_post_nopriv_typeform_token_data', [$this, 'eael_typeform_auth_handle']);
136
 
137
  // Elements
 
138
  add_action('elementor/elements/categories_registered', array($this, 'register_widget_categories'));
139
  add_action('elementor/widgets/widgets_registered', array($this, 'register_elements'));
140
  add_filter('elementor/editor/localize_settings', [$this, 'promote_pro_elements']);
141
- add_action('wp_footer', array($this, 'render_global_html'));
 
 
 
 
 
 
 
 
 
 
 
 
142
 
143
- add_filter('eael/event-calendar/source', [$this, 'eael_event_calendar_source']);
144
- add_action('eael/advanced-data-table/source/control', [$this, 'advanced_data_table_source_control']);
145
- add_filter('eael/advanced-data-table/table_html/integration/ninja', [$this, 'advanced_data_table_ninja_integration'], 10, 1);
146
  // Login | Register
147
- add_action( 'init', [ $this, 'login_or_register_user'] );
148
- add_filter( 'wp_new_user_notification_email', array( $this, 'new_user_notification_email' ), 10, 3 );
149
- add_filter( 'wp_new_user_notification_email_admin', array( $this, 'new_user_notification_email_admin' ), 10, 3 );
 
150
  //rank math support
151
- add_filter('rank_math/researches/toc_plugins', [$this, 'eael_toc_rank_math_support']);
152
 
153
  // Admin
154
  if (is_admin()) {
155
  // Admin
156
- if ( ! $this->pro_enabled ) {
157
  $this->admin_notice();
 
 
158
  }
159
 
160
  add_action('admin_menu', array($this, 'admin_menu'));
2
 
3
  namespace Essential_Addons_Elementor\Classes;
4
 
5
+ use Essential_Addons_Elementor\Classes\WPDeveloper_Core_Installer;
6
+
7
  if (!defined('ABSPATH')) {
8
  exit;
9
  } // Exit if accessed directly
10
 
 
11
  use Essential_Addons_Elementor\Classes\WPML\Eael_WPML;
12
+ use \Essential_Addons_Elementor\Traits\Admin;
13
+ use \Essential_Addons_Elementor\Traits\Controls;
14
+ use \Essential_Addons_Elementor\Traits\Core;
15
+ use \Essential_Addons_Elementor\Traits\Elements;
16
+ use \Essential_Addons_Elementor\Traits\Enqueue;
17
+ use \Essential_Addons_Elementor\Traits\Facebook_Feed;
18
+ use \Essential_Addons_Elementor\Traits\Generator;
19
+ use \Essential_Addons_Elementor\Traits\Helper;
20
+ use \Essential_Addons_Elementor\Traits\Library;
21
+ use \Essential_Addons_Elementor\Traits\Login_Registration;
22
 
23
  class Bootstrap
24
  {
25
  use Library;
 
26
  use Core;
27
  use Helper;
28
  use Generator;
31
  use Elements;
32
  use Eael_WPML;
33
  use Login_Registration;
34
+ use Controls;
35
+ use Facebook_Feed;
36
 
37
  // instance container
38
  private static $instance = null;
39
 
40
+ // request unique id container
41
+ protected $uid = null;
42
+
43
  // registered elements container
44
+ protected $registered_elements;
45
 
46
  // registered extensions container
47
+ protected $registered_extensions;
48
 
49
  // identify whether pro is enabled
50
+ protected $pro_enabled;
51
 
52
  // localize objects
53
  public $localize_objects = [];
54
 
55
+ // request data container
56
+ protected $request_requires_update;
57
+
58
  // loaded templates in a request
59
+ protected $loaded_templates = [];
60
 
61
+ // loaded elements in a request
62
+ protected $loaded_elements = [];
63
 
64
+ // used for internal css
65
  protected $css_strings;
66
 
67
+ // used for internal js
68
  protected $js_strings;
69
 
70
+ // used to store custom js
71
+ protected $custom_js_strings;
72
+
73
  /**
74
  * Singleton instance
75
  *
113
 
114
  // register hooks
115
  $this->register_hooks();
116
+
117
  }
118
 
119
  protected function register_hooks()
121
  // Core
122
  add_action('init', [$this, 'i18n']);
123
  add_filter('eael/active_plugins', [$this, 'active_plugins'], 10, 1);
124
+ add_filter('wpml_elementor_widgets_to_translate', [$this, 'translatable_widgets']);
125
  add_action('elementor/editor/after_save', array($this, 'save_global_values'), 10, 2);
126
 
127
  // Enqueue
128
+ add_action('eael/before_enqueue_styles', [$this, 'before_enqueue_styles']);
129
+ add_action('wp_enqueue_scripts', [$this, 'enqueue_scripts']);
130
+ add_action('elementor/editor/before_enqueue_scripts', [$this, 'editor_enqueue_scripts']);
 
 
 
131
  add_action('wp_head', [$this, 'enqueue_inline_styles']);
132
  add_action('wp_footer', [$this, 'enqueue_inline_scripts']);
133
 
134
+ // Generator
135
+ add_action('wp', [$this, 'init_request_data']);
136
+ add_filter('elementor/frontend/builder_content_data', [$this, 'collect_loaded_templates'], 10, 2);
137
+ add_action('wp_print_footer_scripts', [$this, 'update_request_data']);
138
+
139
  // Ajax
140
+ add_action('wp_ajax_load_more', array($this, 'ajax_load_more'));
141
+ add_action('wp_ajax_nopriv_load_more', array($this, 'ajax_load_more'));
142
 
143
  add_action('wp_ajax_facebook_feed_load_more', [$this, 'facebook_feed_render_items']);
144
  add_action('wp_ajax_nopriv_facebook_feed_load_more', [$this, 'facebook_feed_render_items']);
146
  add_action('wp_ajax_woo_checkout_update_order_review', [$this, 'woo_checkout_update_order_review']);
147
  add_action('wp_ajax_nopriv_woo_checkout_update_order_review', [$this, 'woo_checkout_update_order_review']);
148
 
149
+ //handle select2 ajax search
150
+ add_action('wp_ajax_eael_select2_search_post', [$this, 'select2_ajax_posts_filter_autocomplete']);
151
+ add_action('wp_ajax_nopriv_eael_select2_search_post', [$this, 'select2_ajax_posts_filter_autocomplete']);
152
+
153
+ add_action('wp_ajax_eael_select2_get_title', [$this, 'select2_ajax_get_posts_value_titles']);
154
+ add_action('wp_ajax_nopriv_eael_select2_get_title', [$this, 'select2_ajax_get_posts_value_titles']);
155
+
156
  //handle typeform auth token
157
+ add_action('admin_post_nopriv_typeform_token_data', [$this, 'typeform_auth_handle']);
158
 
159
  // Elements
160
+ add_action('elementor/controls/controls_registered', array($this, 'register_controls'));
161
  add_action('elementor/elements/categories_registered', array($this, 'register_widget_categories'));
162
  add_action('elementor/widgets/widgets_registered', array($this, 'register_elements'));
163
  add_filter('elementor/editor/localize_settings', [$this, 'promote_pro_elements']);
164
+ add_action('wp_footer', [$this, 'render_global_html']);
165
+
166
+ // Controls
167
+ add_action('eael/controls/query', [$this, 'query'], 10, 1);
168
+ add_action('eael/controls/betterdocs/query', [$this, 'betterdocs_query'], 10, 1);
169
+ add_action('eael/controls/layout', [$this, 'layout'], 10, 1);
170
+ add_action('eael/controls/terms_style', [$this, 'terms_style'], 10, 1);
171
+ add_action('eael/controls/read_more_button_style', [$this, 'read_more_button_style'], 10, 1);
172
+ add_action('eael/controls/load_more_button_style', [$this, 'load_more_button_style'], 10, 1);
173
+ add_action('eael/controls/custom_positioning', [$this, 'custom_positioning'], 10, 5);
174
+
175
+ add_filter('eael/controls/event-calendar/source', [$this, 'event_calendar_source']);
176
+ add_action('eael/controls/advanced-data-table/source', [$this, 'advanced_data_table_source']);
177
 
 
 
 
178
  // Login | Register
179
+ add_action('init', [$this, 'login_or_register_user']);
180
+ add_filter('wp_new_user_notification_email', array($this, 'new_user_notification_email'), 10, 3);
181
+ add_filter('wp_new_user_notification_email_admin', array($this, 'new_user_notification_email_admin'), 10, 3);
182
+
183
  //rank math support
184
+ add_filter('rank_math/researches/toc_plugins', [$this, 'toc_rank_math_support']);
185
 
186
  // Admin
187
  if (is_admin()) {
188
  // Admin
189
+ if (!$this->pro_enabled) {
190
  $this->admin_notice();
191
+ } else {
192
+ new WPDeveloper_Core_Installer( basename( EAEL_PLUGIN_BASENAME, '.php' ) );
193
  }
194
 
195
  add_action('admin_menu', array($this, 'admin_menu'));
includes/Classes/Helper.php ADDED
@@ -0,0 +1,752 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Essential_Addons_Elementor\Classes;
4
+
5
+ if (!defined('ABSPATH')) {
6
+ exit;
7
+ } // Exit if accessed directly
8
+
9
+ use \Elementor\Controls_Manager;
10
+
11
+ class Helper
12
+ {
13
+
14
+ /**
15
+ * Include a file with variables
16
+ *
17
+ * @param $file_path
18
+ * @param $variables
19
+ *
20
+ * @return string
21
+ * @since 4.2.2
22
+ */
23
+ public static function include_with_variable(string $file_path, array $variables = [])
24
+ {
25
+ if (file_exists($file_path)) {
26
+ extract($variables);
27
+
28
+ ob_start();
29
+
30
+ include $file_path;
31
+
32
+ return ob_get_clean();
33
+ }
34
+
35
+ return '';
36
+ }
37
+
38
+ /**
39
+ * check EAEL extension can load this page or post
40
+ *
41
+ * @param $id page or post id
42
+ *
43
+ * @return bool
44
+ * @since 4.0.4
45
+ */
46
+ public static function prevent_extension_loading($post_id)
47
+ {
48
+ $template_name = get_post_meta($post_id, '_elementor_template_type', true);
49
+ $template_list = [
50
+ 'header',
51
+ 'footer',
52
+ 'single',
53
+ 'post',
54
+ 'page',
55
+ 'archive',
56
+ 'search-results',
57
+ 'error-404',
58
+ 'product',
59
+ 'product-archive',
60
+ 'section',
61
+ ];
62
+
63
+ return in_array($template_name, $template_list);
64
+ }
65
+
66
+ public static function fix_old_query($settings)
67
+ {
68
+ $update_query = false;
69
+
70
+ foreach ($settings as $key => $value) {
71
+ if (strpos($key, 'eaeposts_') !== false) {
72
+ $settings[str_replace('eaeposts_', '', $key)] = $value;
73
+ $update_query = true;
74
+ }
75
+ }
76
+
77
+ if ($update_query) {
78
+ global $wpdb;
79
+
80
+ $post_id = get_the_ID();
81
+ $data = get_post_meta($post_id, '_elementor_data', true);
82
+ $data = str_replace('eaeposts_', '', $data);
83
+ $wpdb->update(
84
+ $wpdb->postmeta,
85
+ [
86
+ 'meta_value' => $data,
87
+ ],
88
+ [
89
+ 'post_id' => $post_id,
90
+ 'meta_key' => '_elementor_data',
91
+ ]
92
+ );
93
+ }
94
+
95
+ return $settings;
96
+ }
97
+
98
+ public static function get_query_args($settings = [], $post_type = 'post')
99
+ {
100
+ $settings = wp_parse_args($settings, [
101
+ 'post_type' => $post_type,
102
+ 'posts_ids' => [],
103
+ 'orderby' => 'date',
104
+ 'order' => 'desc',
105
+ 'posts_per_page' => 3,
106
+ 'offset' => 0,
107
+ 'post__not_in' => [],
108
+ ]);
109
+
110
+ $args = [
111
+ 'orderby' => $settings['orderby'],
112
+ 'order' => $settings['order'],
113
+ 'ignore_sticky_posts' => 1,
114
+ 'post_status' => 'publish',
115
+ 'posts_per_page' => $settings['posts_per_page'],
116
+ 'offset' => $settings['offset'],
117
+ ];
118
+
119
+ if ('by_id' === $settings['post_type']) {
120
+ $args['post_type'] = 'any';
121
+ $args['post__in'] = empty($settings['posts_ids']) ? [0] : $settings['posts_ids'];
122
+ } else {
123
+ $args['post_type'] = $settings['post_type'];
124
+
125
+ if ($args['post_type'] !== 'page') {
126
+ $args['tax_query'] = [];
127
+
128
+ $taxonomies = get_object_taxonomies($settings['post_type'], 'objects');
129
+
130
+ foreach ($taxonomies as $object) {
131
+ $setting_key = $object->name . '_ids';
132
+
133
+ if (!empty($settings[$setting_key])) {
134
+ $args['tax_query'][] = [
135
+ 'taxonomy' => $object->name,
136
+ 'field' => 'term_id',
137
+ 'terms' => $settings[$setting_key],
138
+ ];
139
+ }
140
+ }
141
+
142
+ if (!empty($args['tax_query'])) {
143
+ $args['tax_query']['relation'] = 'AND';
144
+ }
145
+ }
146
+ }
147
+
148
+ if (!empty($settings['authors'])) {
149
+ $args['author__in'] = $settings['authors'];
150
+ }
151
+
152
+ if (!empty($settings['post__not_in'])) {
153
+ $args['post__not_in'] = $settings['post__not_in'];
154
+ }
155
+
156
+ return $args;
157
+ }
158
+
159
+ /**
160
+ * Go Premium
161
+ *
162
+ */
163
+ public static function go_premium($wb)
164
+ {
165
+ $wb->start_controls_section(
166
+ 'eael_section_pro',
167
+ [
168
+ 'label' => __('Go Premium for More Features', 'essential-addons-for-elementor-lite'),
169
+ ]
170
+ );
171
+
172
+ $wb->add_control(
173
+ 'eael_control_get_pro',
174
+ [
175
+ 'label' => __('Unlock more possibilities', 'essential-addons-for-elementor-lite'),
176
+ 'type' => Controls_Manager::CHOOSE,
177
+ 'options' => [
178
+ '1' => [
179
+ 'title' => __('', 'essential-addons-for-elementor-lite'),
180
+ 'icon' => 'fa fa-unlock-alt',
181
+ ],
182
+ ],
183
+ 'default' => '1',
184
+ 'description' => '<span class="pro-feature"> Get the <a href="http://essential-addons.com/elementor/#pricing" target="_blank">Pro version</a> for more stunning elements and customization options.</span>',
185
+ ]
186
+ );
187
+
188
+ $wb->end_controls_section();
189
+ }
190
+
191
+ /**
192
+ * Get All POst Types
193
+ * @return array
194
+ */
195
+ public static function get_post_types()
196
+ {
197
+ $post_types = get_post_types(['public' => true, 'show_in_nav_menus' => true], 'objects');
198
+ $post_types = wp_list_pluck($post_types, 'label', 'name');
199
+
200
+ return array_diff_key($post_types, ['elementor_library', 'attachment']);
201
+ }
202
+
203
+ /**
204
+ * Get all types of post.
205
+ *
206
+ * @param string $post_type
207
+ *
208
+ * @return array
209
+ */
210
+ public static function get_post_list($post_type = 'any')
211
+ {
212
+ return self::get_query_post_list($post_type);
213
+ }
214
+
215
+ /**
216
+ * POst Orderby Options
217
+ *
218
+ * @return array
219
+ */
220
+ public static function get_post_orderby_options()
221
+ {
222
+ $orderby = array(
223
+ 'ID' => 'Post ID',
224
+ 'author' => 'Post Author',
225
+ 'title' => 'Title',
226
+ 'date' => 'Date',
227
+ 'modified' => 'Last Modified Date',
228
+ 'parent' => 'Parent Id',
229
+ 'rand' => 'Random',
230
+ 'comment_count' => 'Comment Count',
231
+ 'menu_order' => 'Menu Order',
232
+ );
233
+
234
+ return $orderby;
235
+ }
236
+
237
+ /**
238
+ * Get Post Categories
239
+ *
240
+ * @return array
241
+ */
242
+ public static function get_terms_list($taxonomy = 'category', $key = 'term_id')
243
+ {
244
+ $options = [];
245
+ $terms = get_terms([
246
+ 'taxonomy' => $taxonomy,
247
+ 'hide_empty' => true,
248
+ ]);
249
+
250
+ if (!empty($terms) && !is_wp_error($terms)) {
251
+ foreach ($terms as $term) {
252
+ $options[$term->{$key}] = $term->name;
253
+ }
254
+ }
255
+
256
+ return $options;
257
+ }
258
+
259
+ /**
260
+ * Get all elementor page templates
261
+ *
262
+ * @param null $type
263
+ *
264
+ * @return array
265
+ */
266
+ public static function get_elementor_templates($type = null)
267
+ {
268
+ $options = [];
269
+
270
+ if ($type) {
271
+ $args = [
272
+ 'post_type' => 'elementor_library',
273
+ 'posts_per_page' => -1,
274
+ ];
275
+ $args['tax_query'] = [
276
+ [
277
+ 'taxonomy' => 'elementor_library_type',
278
+ 'field' => 'slug',
279
+ 'terms' => $type,
280
+ ],
281
+ ];
282
+
283
+ $page_templates = get_posts($args);
284
+
285
+ if (!empty($page_templates) && !is_wp_error($page_templates)) {
286
+ foreach ($page_templates as $post) {
287
+ $options[$post->ID] = $post->post_title;
288
+ }
289
+ }
290
+ } else {
291
+ $options = self::get_query_post_list('elementor_library');
292
+ }
293
+
294
+ return $options;
295
+ }
296
+
297
+ /**
298
+ * Get all Authors
299
+ *
300
+ * @return array
301
+ */
302
+ public static function get_authors_list()
303
+ {
304
+ $users = get_users([
305
+ 'who' => 'authors',
306
+ 'has_published_posts' => true,
307
+ 'fields' => [
308
+ 'ID',
309
+ 'display_name',
310
+ ],
311
+ ]);
312
+
313
+ if (!empty($users)) {
314
+ return wp_list_pluck($users, 'display_name', 'ID');
315
+ }
316
+
317
+ return [];
318
+ }
319
+
320
+ /**
321
+ * Get all Tags
322
+ *
323
+ * @param array $args
324
+ *
325
+ * @return array
326
+ */
327
+ public static function get_tags_list($args = array())
328
+ {
329
+ $options = [];
330
+ $tags = get_tags($args);
331
+
332
+ if (!is_wp_error($tags) && !empty($tags)) {
333
+ foreach ($tags as $tag) {
334
+ $options[$tag->term_id] = $tag->name;
335
+ }
336
+ }
337
+
338
+ return $options;
339
+ }
340
+
341
+ /**
342
+ * Get all taxonomies by post
343
+ *
344
+ * @param array $args
345
+ *
346
+ * @param string $output
347
+ * @param string $operator
348
+ *
349
+ * @return array
350
+ */
351
+ public static function get_taxonomies_by_post($args = [], $output = 'names', $operator = 'and')
352
+ {
353
+ global $wp_taxonomies;
354
+
355
+ $field = ('names' === $output) ? 'name' : false;
356
+
357
+ // Handle 'object_type' separately.
358
+ if (isset($args['object_type'])) {
359
+ $object_type = (array) $args['object_type'];
360
+ unset($args['object_type']);
361
+ }
362
+
363
+ $taxonomies = wp_filter_object_list($wp_taxonomies, $args, $operator);
364
+
365
+ if (isset($object_type)) {
366
+ foreach ($taxonomies as $tax => $tax_data) {
367
+ if (!array_intersect($object_type, $tax_data->object_type)) {
368
+ unset($taxonomies[$tax]);
369
+ }
370
+ }
371
+ }
372
+
373
+ if ($field) {
374
+ $taxonomies = wp_list_pluck($taxonomies, $field);
375
+ }
376
+
377
+ return $taxonomies;
378
+ }
379
+
380
+ /**
381
+ * Get Contact Form 7 [ if exists ]
382
+ */
383
+ public static function get_wpcf7_list()
384
+ {
385
+ $options = array();
386
+
387
+ if (function_exists('wpcf7')) {
388
+ $wpcf7_form_list = get_posts(array(
389
+ 'post_type' => 'wpcf7_contact_form',
390
+ 'showposts' => 999,
391
+ ));
392
+ $options[0] = esc_html__('Select a Contact Form', 'essential-addons-for-elementor-lite');
393
+ if (!empty($wpcf7_form_list) && !is_wp_error($wpcf7_form_list)) {
394
+ foreach ($wpcf7_form_list as $post) {
395
+ $options[$post->ID] = $post->post_title;
396
+ }
397
+ } else {
398
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
399
+ }
400
+ }
401
+ return $options;
402
+ }
403
+
404
+ /**
405
+ * Get Gravity Form [ if exists ]
406
+ *
407
+ * @return array
408
+ */
409
+ public static function get_gravity_form_list()
410
+ {
411
+ $options = array();
412
+
413
+ if (class_exists('GFCommon')) {
414
+ $gravity_forms = \RGFormsModel::get_forms(null, 'title');
415
+
416
+ if (!empty($gravity_forms) && !is_wp_error($gravity_forms)) {
417
+
418
+ $options[0] = esc_html__('Select Gravity Form', 'essential-addons-for-elementor-lite');
419
+ foreach ($gravity_forms as $form) {
420
+ $options[$form->id] = $form->title;
421
+ }
422
+
423
+ } else {
424
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
425
+ }
426
+ }
427
+
428
+ return $options;
429
+ }
430
+
431
+ /**
432
+ * Get WeForms Form List
433
+ *
434
+ * @return array
435
+ */
436
+ public static function get_weform_list()
437
+ {
438
+ $wpuf_form_list = get_posts(array(
439
+ 'post_type' => 'wpuf_contact_form',
440
+ 'showposts' => 999,
441
+ ));
442
+
443
+ $options = array();
444
+
445
+ if (!empty($wpuf_form_list) && !is_wp_error($wpuf_form_list)) {
446
+ $options[0] = esc_html__('Select weForm', 'essential-addons-for-elementor-lite');
447
+ foreach ($wpuf_form_list as $post) {
448
+ $options[$post->ID] = $post->post_title;
449
+ }
450
+ } else {
451
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
452
+ }
453
+
454
+ return $options;
455
+ }
456
+
457
+ /**
458
+ * Get Ninja Form List
459
+ *
460
+ * @return array
461
+ */
462
+ public static function get_ninja_form_list()
463
+ {
464
+ $options = array();
465
+
466
+ if (class_exists('Ninja_Forms')) {
467
+ $contact_forms = Ninja_Forms()->form()->get_forms();
468
+
469
+ if (!empty($contact_forms) && !is_wp_error($contact_forms)) {
470
+
471
+ $options[0] = esc_html__('Select Ninja Form', 'essential-addons-for-elementor-lite');
472
+
473
+ foreach ($contact_forms as $form) {
474
+ $options[$form->get_id()] = $form->get_setting('title');
475
+ }
476
+ }
477
+ } else {
478
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
479
+ }
480
+
481
+ return $options;
482
+ }
483
+
484
+ /**
485
+ * Get Caldera Form List
486
+ *
487
+ * @return array
488
+ */
489
+ public static function get_caldera_form_list()
490
+ {
491
+ $options = array();
492
+
493
+ if (class_exists('Caldera_Forms')) {
494
+ $contact_forms = \Caldera_Forms_Forms::get_forms(true, true);
495
+
496
+ if (!empty($contact_forms) && !is_wp_error($contact_forms)) {
497
+ $options[0] = esc_html__('Select Caldera Form', 'essential-addons-for-elementor-lite');
498
+ foreach ($contact_forms as $form) {
499
+ $options[$form['ID']] = $form['name'];
500
+ }
501
+ }
502
+ } else {
503
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
504
+ }
505
+
506
+ return $options;
507
+ }
508
+
509
+ /**
510
+ * Get WPForms List
511
+ *
512
+ * @return array
513
+ */
514
+ public static function get_wpforms_list()
515
+ {
516
+ $options = array();
517
+
518
+ if (class_exists('\WPForms\WPForms')) {
519
+ $args = array(
520
+ 'post_type' => 'wpforms',
521
+ 'posts_per_page' => -1,
522
+ );
523
+
524
+ $contact_forms = get_posts($args);
525
+
526
+ if (!empty($contact_forms) && !is_wp_error($contact_forms)) {
527
+ $options[0] = esc_html__('Select a WPForm', 'essential-addons-for-elementor-lite');
528
+ foreach ($contact_forms as $post) {
529
+ $options[$post->ID] = $post->post_title;
530
+ }
531
+ }
532
+ } else {
533
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
534
+ }
535
+
536
+ return $options;
537
+ }
538
+
539
+ /**
540
+ * Get FluentForms List
541
+ *
542
+ * @return array
543
+ */
544
+ public static function get_fluent_forms_list()
545
+ {
546
+
547
+ $options = array();
548
+
549
+ if (defined('FLUENTFORM')) {
550
+ global $wpdb;
551
+
552
+ $result = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}fluentform_forms");
553
+ if ($result) {
554
+ $options[0] = esc_html__('Select a Fluent Form', 'essential-addons-for-elementor-lite');
555
+ foreach ($result as $form) {
556
+ $options[$form->id] = $form->title;
557
+ }
558
+ } else {
559
+ $options[0] = esc_html__('Create a Form First', 'essential-addons-for-elementor-lite');
560
+ }
561
+ }
562
+
563
+ return $options;
564
+
565
+ }
566
+
567
+ public static function get_ninja_tables_list()
568
+ {
569
+ $tables = get_posts([
570
+ 'post_type' => 'ninja-table',
571
+ 'post_status' => 'publish',
572
+ 'posts_per_page' => '-1',
573
+ ]);
574
+
575
+ if (!empty($tables)) {
576
+ return wp_list_pluck($tables, 'post_title', 'ID');
577
+ }
578
+
579
+ return [];
580
+ }
581
+
582
+ public static function get_terms_as_list($term_type = 'category', $length = 1)
583
+ {
584
+ if ($term_type === 'category') {
585
+ $terms = get_the_category();
586
+ }
587
+
588
+ if ($term_type === 'tags') {
589
+ $terms = get_the_tags();
590
+ }
591
+
592
+ if (empty($terms)) {
593
+ return;
594
+ }
595
+
596
+ $count = 0;
597
+
598
+ $html = '<ul class="post-carousel-categories">';
599
+ foreach ($terms as $term) {
600
+ if ($count === $length) {break;}
601
+ $link = ($term_type === 'category') ? get_category_link($term->term_id) : get_tag_link($term->term_id);
602
+ $html .= '<li>';
603
+ $html .= '<a href="' . esc_url($link) . '">';
604
+ $html .= $term->name;
605
+ $html .= '</a>';
606
+ $html .= '</li>';
607
+ $count++;
608
+ }
609
+ $html .= '</ul>';
610
+
611
+ return $html;
612
+
613
+ }
614
+
615
+ /**
616
+ * This function is responsible for counting doc post under a category.
617
+ *
618
+ * @param int $term_count
619
+ * @param int $term_id
620
+ * @return int $term_count;
621
+ */
622
+ public static function get_doc_post_count($term_count = 0, $term_id)
623
+ {
624
+ $tax_terms = get_terms('doc_category', ['child_of' => $term_id]);
625
+
626
+ foreach ($tax_terms as $tax_term) {
627
+ $term_count += $tax_term->count;
628
+ }
629
+
630
+ return $term_count;
631
+ }
632
+
633
+ public static function get_dynamic_args(array $settings, array $args)
634
+ {
635
+ if ($settings['post_type'] === 'source_dynamic' && is_archive()) {
636
+
637
+ $data = get_queried_object();
638
+
639
+ if ($data) {
640
+ $args['post_type'] = $data->post_type;
641
+
642
+ $args['tax_query'] = [];
643
+
644
+ if ($data->taxonomy) {
645
+ $args['tax_query'][] = [
646
+ 'taxonomy' => $data->taxonomy,
647
+ 'field' => 'term_id',
648
+ 'terms' => $data->term_id,
649
+ ];
650
+ }
651
+ } else {
652
+ global $wp_query;
653
+
654
+ $args['post_type'] = $wp_query->query_vars['post_type'];
655
+ }
656
+
657
+ if (get_query_var('author') > 0) {
658
+ $args['author__in'] = get_query_var('author');
659
+ }
660
+
661
+ if (get_query_var('year') || get_query_var('monthnum') || get_query_var('day')) {
662
+ $args['date_query'] = [
663
+ 'year' => get_query_var('year'),
664
+ 'month' => get_query_var('monthnum'),
665
+ 'day' => get_query_var('day'),
666
+ ];
667
+ }
668
+
669
+ if (!empty($args['tax_query'])) {
670
+ $args['tax_query']['relation'] = 'AND';
671
+ }
672
+ }
673
+
674
+ return $args;
675
+ }
676
+
677
+ public static function get_multiple_kb_terms($prettify = false, $term_id = true)
678
+ {
679
+ $args = [
680
+ 'taxonomy' => 'knowledge_base',
681
+ 'hide_empty' => true,
682
+ 'parent' => 0,
683
+ ];
684
+
685
+ $terms = get_terms($args);
686
+
687
+ if (is_wp_error($terms)) {
688
+ return [];
689
+ }
690
+
691
+ if ($prettify) {
692
+ $pretty_taxonomies = [];
693
+
694
+ foreach ($terms as $term) {
695
+ $pretty_taxonomies[$term_id ? $term->term_id : $term->slug] = $term->name;
696
+ }
697
+
698
+ return $pretty_taxonomies;
699
+ }
700
+
701
+ return $terms;
702
+ }
703
+
704
+ public static function get_betterdocs_multiple_kb_status()
705
+ {
706
+ if (\BetterDocs_DB::get_settings('multiple_kb') == 1) {
707
+ return 'true';
708
+ }
709
+
710
+ return '';
711
+ }
712
+
713
+ public static function get_query_post_list($post_type = 'any', $limit = -1, $search = '')
714
+ {
715
+ global $wpdb;
716
+ $where = '';
717
+ $data = [];
718
+
719
+ if (-1 == $limit) {
720
+ $limit = '';
721
+ } elseif (0 == $limit) {
722
+ $limit = "limit 0,1";
723
+ } else {
724
+ $limit = $wpdb->prepare(" limit 0,%d", esc_sql($limit));
725
+ }
726
+
727
+ if ('any' === $post_type) {
728
+ $in_search_post_types = get_post_types(['exclude_from_search' => false]);
729
+ if (empty($in_search_post_types)) {
730
+ $where .= ' AND 1=0 ';
731
+ } else {
732
+ $where .= " AND {$wpdb->posts}.post_type IN ('" . join("', '",
733
+ array_map('esc_sql', $in_search_post_types)) . "')";
734
+ }
735
+ } elseif (!empty($post_type)) {
736
+ $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_type = %s", esc_sql($post_type));
737
+ }
738
+
739
+ if (!empty($search)) {
740
+ $where .= $wpdb->prepare(" AND {$wpdb->posts}.post_title LIKE %s", '%' . esc_sql($search) . '%');
741
+ }
742
+
743
+ $query = "select post_title,ID from $wpdb->posts where post_status = 'publish' $where $limit";
744
+ $results = $wpdb->get_results($query);
745
+ if (!empty($results)) {
746
+ foreach ($results as $row) {
747
+ $data[$row->ID] = $row->post_title;
748
+ }
749
+ }
750
+ return $data;
751
+ }
752
+ }
includes/Classes/WPDeveloper_Notice.php CHANGED
@@ -127,7 +127,7 @@ class WPDeveloper_Notice {
127
  array_walk( $value, function( $v, $k ){
128
  array_walk( $v, function( $vv, $kk ){
129
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $vv, true );
130
- } );
131
  } );
132
  } );
133
  }
@@ -163,7 +163,7 @@ class WPDeveloper_Notice {
163
  $options_data = $this->get_options_data();
164
  $user_notices = $this->get_user_notices();
165
 
166
- $notice_time = isset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] )
167
  ? $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] : $this->timestamp;
168
  $next_notice_time = $next_notice ? $options_data[ $this->plugin_name ]['notice_will_show'][ $next_notice ] : $this->timestamp;
169
  $current_notice_end = $this->makeTime( $notice_time, $this->cne_time );
@@ -189,7 +189,7 @@ class WPDeveloper_Notice {
189
  $notice_time = false;
190
  }
191
  }
192
-
193
  if( $notice_time != false ) {
194
  if( $notice_time <= $this->timestamp ) {
195
  if( $current_notice === 'upsale' ) {
@@ -199,7 +199,7 @@ class WPDeveloper_Notice {
199
  $this->update_options_data( $options_data[ $this->plugin_name ] );
200
  } else {
201
  /**
202
- * For Upsale Remove
203
  * if the plugin is activated.
204
  */
205
  if( isset( $upsale_args['condition'], $upsale_args['condition']['by'] ) ) {
@@ -211,7 +211,7 @@ class WPDeveloper_Notice {
211
  return;
212
  }
213
  break;
214
- case 'function' :
215
  if( isset( $upsale_args['condition']['function'] ) && function_exists( $upsale_args['condition']['function'] ) ) {
216
  unset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] );
217
  $this->update_options_data( $options_data[ $this->plugin_name ] );
@@ -267,7 +267,7 @@ class WPDeveloper_Notice {
267
  * When links are clicked, this function will invoked.
268
  * @return void
269
  */
270
- public function clicked(){
271
  if( isset( $_GET['plugin'] ) ) {
272
  $plugin = sanitize_text_field( $_GET['plugin'] );
273
  if( $plugin === $this->plugin_name ) {
@@ -282,40 +282,40 @@ class WPDeveloper_Notice {
282
  if( isset( $_GET['later'] ) ) {
283
  $later = sanitize_text_field( $_GET['later'] );
284
  }
285
-
286
  $later_time = '';
287
-
288
  switch( $clicked_from ) {
289
-
290
  case 'opt_in' :
291
  $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
292
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
293
  break;
294
-
295
- case 'first_install' :
296
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
297
  break;
298
-
299
- case 'update' :
300
  $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
301
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
302
  break;
303
- // case 'update_400k' :
304
  // $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
305
  // $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
306
  // break;
307
- case 'review' :
308
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
309
  break;
310
- case 'upsale' :
311
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
312
  break;
313
  }
314
-
315
- if( isset( $later ) && $later == true ) {
316
  $options_data[ $this->plugin_name ]['notice_will_show'][ $clicked_from ] = $later_time;
317
  }
318
- if( isset( $dismiss ) && $dismiss == true ) {
319
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $clicked_from, true );
320
  $this->update( $clicked_from );
321
  }
@@ -383,26 +383,26 @@ class WPDeveloper_Notice {
383
  case 'opt_in' :
384
  do_action('wpdeveloper_optin_notice_for_' . $this->plugin_name );
385
  break;
386
- case 'first_install' :
387
  if( $options_data[ $this->plugin_name ]['first_install'] !== 'deactivated' ) {
388
  do_action( 'wpdeveloper_first_install_notice_for_' . $this->plugin_name );
389
  $this->get_thumbnail( 'first_install' );
390
  $this->get_message( 'first_install' );
391
  }
392
  break;
393
- case 'update' :
394
  do_action( 'wpdeveloper_update_notice_for_' . $this->plugin_name );
395
  $this->dismiss_button_scripts();
396
  $this->get_thumbnail( 'update' );
397
  $this->get_message( 'update' );
398
  break;
399
- // case 'update_400k' :
400
  // do_action( 'wpdeveloper_update_notice_for_' . $this->plugin_name );
401
  // $this->dismiss_button_scripts();
402
  // $this->get_thumbnail( 'update_400k' );
403
  // $this->get_message( 'update_400k' );
404
  // break;
405
- case 'review' :
406
  do_action( 'wpdeveloper_review_notice_for_' . $this->plugin_name );
407
  $this->get_thumbnail( 'review' );
408
  $this->get_message( 'review' );
@@ -522,7 +522,7 @@ class WPDeveloper_Notice {
522
  * @param string $notice
523
  * @return boolean
524
  */
525
- private function deserve_notice( $notice ) {
526
  $notices = $this->get_user_notices();
527
  if( $notice === false ) {
528
  return false;
@@ -624,7 +624,7 @@ class WPDeveloper_Notice {
624
  }
625
  $options_data = $this->get_options_data();
626
  $args = wp_parse_args( $args, $this->get_args() );
627
- if( ! isset( $options_data[ $this->plugin_name ] )
628
  || ( isset( $options_data[ $this->plugin_name ]['version'] ) && version_compare( $options_data[ $this->plugin_name ]['version'], $this->version, '!=' ) ) ) {
629
  $this->update_options_data( $args );
630
  }
@@ -782,14 +782,14 @@ class WPDeveloper_Notice {
782
  if( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'wpdeveloper_notice_dissmiss' ) ) {
783
  return;
784
  }
785
-
786
  if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_notice_dissmiss_for_' . $this->plugin_name ) ) {
787
  return;
788
  }
789
-
790
  $dismiss = isset( $_POST['dismiss'] ) ? $_POST['dismiss'] : false;
791
  $notice = isset( $_POST['notice'] ) ? $_POST['notice'] : false;
792
- if( $dismiss ) {
793
  $this->update( $notice );
794
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $notice, true );
795
  echo 'success';
@@ -800,21 +800,21 @@ class WPDeveloper_Notice {
800
  }
801
 
802
  /**
803
- * This function is responsible for do action when
804
  * the dismiss button clicked in upsale notice.
805
  */
806
  public function upsale_notice_dissmiss(){
807
-
808
  if( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'wpdeveloper_upsale_notice_dissmiss' ) ) {
809
  return;
810
  }
811
-
812
  if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_upsale_notice_dissmiss_for_' . $this->plugin_name ) ) {
813
  return;
814
  }
815
-
816
  $dismiss = isset( $_POST['dismiss'] ) ? $_POST['dismiss'] : false;
817
- if( $dismiss ) {
818
  $this->update( 'upsale' );
819
  echo 'success';
820
  } else {
@@ -929,7 +929,7 @@ class WPDeveloper_Notice {
929
  });
930
  } );
931
  </script>
932
-
933
  <?php
934
  }
935
  }
127
  array_walk( $value, function( $v, $k ){
128
  array_walk( $v, function( $vv, $kk ){
129
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $vv, true );
130
+ } );
131
  } );
132
  } );
133
  }
163
  $options_data = $this->get_options_data();
164
  $user_notices = $this->get_user_notices();
165
 
166
+ $notice_time = isset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] )
167
  ? $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] : $this->timestamp;
168
  $next_notice_time = $next_notice ? $options_data[ $this->plugin_name ]['notice_will_show'][ $next_notice ] : $this->timestamp;
169
  $current_notice_end = $this->makeTime( $notice_time, $this->cne_time );
189
  $notice_time = false;
190
  }
191
  }
192
+
193
  if( $notice_time != false ) {
194
  if( $notice_time <= $this->timestamp ) {
195
  if( $current_notice === 'upsale' ) {
199
  $this->update_options_data( $options_data[ $this->plugin_name ] );
200
  } else {
201
  /**
202
+ * For Upsale Remove
203
  * if the plugin is activated.
204
  */
205
  if( isset( $upsale_args['condition'], $upsale_args['condition']['by'] ) ) {
211
  return;
212
  }
213
  break;
214
+ case 'function' :
215
  if( isset( $upsale_args['condition']['function'] ) && function_exists( $upsale_args['condition']['function'] ) ) {
216
  unset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] );
217
  $this->update_options_data( $options_data[ $this->plugin_name ] );
267
  * When links are clicked, this function will invoked.
268
  * @return void
269
  */
270
+ public function clicked(){
271
  if( isset( $_GET['plugin'] ) ) {
272
  $plugin = sanitize_text_field( $_GET['plugin'] );
273
  if( $plugin === $this->plugin_name ) {
282
  if( isset( $_GET['later'] ) ) {
283
  $later = sanitize_text_field( $_GET['later'] );
284
  }
285
+
286
  $later_time = '';
287
+
288
  switch( $clicked_from ) {
289
+
290
  case 'opt_in' :
291
  $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
292
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
293
  break;
294
+
295
+ case 'first_install' :
296
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
297
  break;
298
+
299
+ case 'update' :
300
  $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
301
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
302
  break;
303
+ // case 'update_400k' :
304
  // $dismiss = ( isset( $plugin_action ) ) ? $plugin_action : false ;
305
  // $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
306
  // break;
307
+ case 'review' :
308
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
309
  break;
310
+ case 'upsale' :
311
  $later_time = $this->makeTime( $this->timestamp, $this->maybe_later_time );
312
  break;
313
  }
314
+
315
+ if( isset( $later ) && $later == true ) {
316
  $options_data[ $this->plugin_name ]['notice_will_show'][ $clicked_from ] = $later_time;
317
  }
318
+ if( isset( $dismiss ) && $dismiss == true ) {
319
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $clicked_from, true );
320
  $this->update( $clicked_from );
321
  }
383
  case 'opt_in' :
384
  do_action('wpdeveloper_optin_notice_for_' . $this->plugin_name );
385
  break;
386
+ case 'first_install' :
387
  if( $options_data[ $this->plugin_name ]['first_install'] !== 'deactivated' ) {
388
  do_action( 'wpdeveloper_first_install_notice_for_' . $this->plugin_name );
389
  $this->get_thumbnail( 'first_install' );
390
  $this->get_message( 'first_install' );
391
  }
392
  break;
393
+ case 'update' :
394
  do_action( 'wpdeveloper_update_notice_for_' . $this->plugin_name );
395
  $this->dismiss_button_scripts();
396
  $this->get_thumbnail( 'update' );
397
  $this->get_message( 'update' );
398
  break;
399
+ // case 'update_400k' :
400
  // do_action( 'wpdeveloper_update_notice_for_' . $this->plugin_name );
401
  // $this->dismiss_button_scripts();
402
  // $this->get_thumbnail( 'update_400k' );
403
  // $this->get_message( 'update_400k' );
404
  // break;
405
+ case 'review' :
406
  do_action( 'wpdeveloper_review_notice_for_' . $this->plugin_name );
407
  $this->get_thumbnail( 'review' );
408
  $this->get_message( 'review' );
522
  * @param string $notice
523
  * @return boolean
524
  */
525
+ private function deserve_notice( $notice ) {
526
  $notices = $this->get_user_notices();
527
  if( $notice === false ) {
528
  return false;
624
  }
625
  $options_data = $this->get_options_data();
626
  $args = wp_parse_args( $args, $this->get_args() );
627
+ if( ! isset( $options_data[ $this->plugin_name ] )
628
  || ( isset( $options_data[ $this->plugin_name ]['version'] ) && version_compare( $options_data[ $this->plugin_name ]['version'], $this->version, '!=' ) ) ) {
629
  $this->update_options_data( $args );
630
  }
782
  if( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'wpdeveloper_notice_dissmiss' ) ) {
783
  return;
784
  }
785
+
786
  if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_notice_dissmiss_for_' . $this->plugin_name ) ) {
787
  return;
788
  }
789
+
790
  $dismiss = isset( $_POST['dismiss'] ) ? $_POST['dismiss'] : false;
791
  $notice = isset( $_POST['notice'] ) ? $_POST['notice'] : false;
792
+ if( $dismiss ) {
793
  $this->update( $notice );
794
  update_user_meta( get_current_user_id(), $this->plugin_name . '_' . $notice, true );
795
  echo 'success';
800
  }
801
 
802
  /**
803
+ * This function is responsible for do action when
804
  * the dismiss button clicked in upsale notice.
805
  */
806
  public function upsale_notice_dissmiss(){
807
+
808
  if( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( sanitize_key( wp_unslash( $_POST['_wpnonce'] ) ), 'wpdeveloper_upsale_notice_dissmiss' ) ) {
809
  return;
810
  }
811
+
812
  if( ! isset( $_POST['action'] ) || ( $_POST['action'] !== 'wpdeveloper_upsale_notice_dissmiss_for_' . $this->plugin_name ) ) {
813
  return;
814
  }
815
+
816
  $dismiss = isset( $_POST['dismiss'] ) ? $_POST['dismiss'] : false;
817
+ if( $dismiss ) {
818
  $this->update( 'upsale' );
819
  echo 'success';
820
  } else {
929
  });
930
  } );
931
  </script>
932
+
933
  <?php
934
  }
935
  }
includes/Classes/WPML/Eael_WPML.php CHANGED
@@ -6,10 +6,10 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  } // Exit if accessed directly
8
 
 
 
9
 
10
- trait Eael_WPML {
11
-
12
- public function eael_translatable_widgets($widgets)
13
  {
14
  $widgets['eael-adv-accordion'] = [
15
  'conditions' => ['widgetType' => 'eael-adv-accordion'],
@@ -25,20 +25,20 @@ trait Eael_WPML {
25
  'conditions' => ['widgetType' => 'eael-creative-button'],
26
  'fields' => [
27
  [
28
- 'field' => 'creative_button_text',
29
- 'type' => __('Creative Button: Text', 'essential-addons-for-elementor-lite'),
30
  'editor_type' => 'LINE',
31
  ],
32
  [
33
- 'field' => 'creative_button_secondary_text',
34
- 'type' => __('Creative Button: Secondary Text', 'essential-addons-for-elementor-lite'),
35
  'editor_type' => 'LINE',
36
  ],
37
  'creative_button_link_url' => [
38
  'field' => 'url',
39
- 'type' => __('Creative Button: Link', 'essential-addons-for-elementor-lite'),
40
- 'editor_type' => 'LINK'
41
- ]
42
  ],
43
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Creative_Button',
44
  ];
@@ -47,47 +47,47 @@ trait Eael_WPML {
47
  'conditions' => ['widgetType' => 'eael-cta-box'],
48
  'fields' => [
49
  [
50
- 'field' => 'eael_cta_title',
51
- 'type' => __('Call to Action: Title', 'essential-addons-for-elementor-lite'),
52
  'editor_type' => 'LINE',
53
  ],
54
  [
55
- 'field' => 'eael_cta_content',
56
- 'type' => __('Call to Action: Content', 'essential-addons-for-elementor-lite'),
57
  'editor_type' => 'VISUAL',
58
  ],
59
  [
60
  'field' => 'eael_cta_btn_text',
61
- 'type' => __('Call to Action: Button Text', 'essential-addons-for-elementor-lite'),
62
  'editor_type' => 'LINE',
63
- ]
64
  ],
65
  ];
66
 
67
  //Doesn't work properly
68
  $widgets['eael-data-table'] = [
69
  'conditions' => ['widgetType' => 'eael-data-table'],
70
- 'integration-class' => ['\Essential_Addons_Elementor\Classes\WPML\Widgets\Data_Table', '\Essential_Addons_Elementor\Classes\WPML\Widgets\Data_Table_Body']
71
  ];
72
 
73
  $widgets['eicon-animated-headline'] = [
74
  'conditions' => ['widgetType' => 'eael-dual-color-header'],
75
  'fields' => [
76
  [
77
- 'field' => 'eael_dch_first_title',
78
- 'type' => __('Dual Color Heading: Title ( First Part )', 'essential-addons-for-elementor-lite'),
79
  'editor_type' => 'LINE',
80
  ],
81
  [
82
- 'field' => 'eael_dch_last_title',
83
- 'type' => __('Dual Color Heading: Title ( Last Part )', 'essential-addons-for-elementor-lite'),
84
  'editor_type' => 'LINE',
85
  ],
86
  [
87
- 'field' => 'eael_dch_subtext',
88
- 'type' => __('Dual Color Heading: Sub Text', 'essential-addons-for-elementor-lite'),
89
  'editor_type' => 'VISUAL',
90
- ]
91
  ],
92
  ];
93
 
@@ -96,15 +96,15 @@ trait Eael_WPML {
96
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Fancy_Text',
97
  'fields' => [
98
  [
99
- 'field' => 'eael_fancy_text_prefix',
100
- 'type' => __('Fancy Text: Prefix Text', 'essential-addons-for-elementor-lite'),
101
  'editor_type' => 'LINE',
102
  ],
103
  [
104
- 'field' => 'eael_fancy_text_suffix',
105
- 'type' => __('Fancy Text: Suffix Text', 'essential-addons-for-elementor-lite'),
106
  'editor_type' => 'LINE',
107
- ]
108
  ],
109
  ];
110
 
@@ -136,7 +136,7 @@ trait Eael_WPML {
136
 
137
  $widgets['eael-image-accordion'] = [
138
  'conditions' => ['widgetType' => 'eael-image-accordion'],
139
- 'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Image_Accordion'
140
  ];
141
 
142
  // have to work on this later.
@@ -170,15 +170,15 @@ trait Eael_WPML {
170
  'conditions' => ['widgetType' => 'eael-info-box'],
171
  'fields' => [
172
  [
173
- 'field' => 'eael_infobox_title',
174
- 'type' => __('Infobox: Title', 'essential-addons-for-elementor-lite'),
175
  'editor_type' => 'LINE',
176
  ],
177
  [
178
- 'field' => 'eael_infobox_text',
179
- 'type' => __('Infobox Content', 'essential-addons-for-elementor-lite'),
180
  'editor_type' => 'VISUAL',
181
- ]
182
  ],
183
  ];
184
 
@@ -186,15 +186,15 @@ trait Eael_WPML {
186
  'conditions' => ['widgetType' => 'eael-post-grid'],
187
  'fields' => [
188
  [
189
- 'field' => 'show_load_more_text',
190
- 'type' => __('Post Grid: Load More Button', 'essential-addons-for-elementor-lite'),
191
  'editor_type' => 'LINE',
192
  ],
193
  [
194
- 'field' => 'read_more_button_text',
195
- 'type' => __('Post Grid: Read More Button', 'essential-addons-for-elementor-lite'),
196
  'editor_type' => 'LINE',
197
- ]
198
  ],
199
  ];
200
 
@@ -202,10 +202,10 @@ trait Eael_WPML {
202
  'conditions' => ['widgetType' => 'eael-post-timeline'],
203
  'fields' => [
204
  [
205
- 'field' => 'show_load_more_text',
206
- 'type' => __('Post Timeline: Load More Button', 'essential-addons-for-elementor-lite'),
207
  'editor_type' => 'LINE',
208
- ]
209
  ],
210
  ];
211
 
@@ -214,45 +214,45 @@ trait Eael_WPML {
214
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Pricing_Table',
215
  'fields' => [
216
  [
217
- 'field' => 'eael_pricing_table_title',
218
- 'type' => __('Pricing Table: Title', 'essential-addons-for-elementor-lite'),
219
  'editor_type' => 'LINE',
220
  ],
221
  [
222
- 'field' => 'eael_pricing_table_sub_title',
223
- 'type' => __('Pricing Table: Sub Title', 'essential-addons-for-elementor-lite'),
224
  'editor_type' => 'LINE',
225
  ],
226
  [
227
- 'field' => 'eael_pricing_table_price',
228
- 'type' => __('Pricing Table: Price', 'essential-addons-for-elementor-lite'),
229
  'editor_type' => 'LINE',
230
  ],
231
  [
232
- 'field' => 'eael_pricing_table_price_cur',
233
- 'type' => __('Pricing Table: Currency Placement', 'essential-addons-for-elementor-lite'),
234
  'editor_type' => 'LINE',
235
  ],
236
  [
237
- 'field' => 'eael_pricing_table_price_period',
238
- 'type' => __('Pricing Table: Price Period (per)', 'essential-addons-for-elementor-lite'),
239
  'editor_type' => 'LINE',
240
  ],
241
  [
242
- 'field' => 'eael_pricing_table_btn',
243
- 'type' => __('Pricing Table: Button Text', 'essential-addons-for-elementor-lite'),
244
  'editor_type' => 'LINE',
245
  ],
246
  [
247
- 'field' => 'eael_pricing_table_btn',
248
- 'type' => __('Pricing Table: Button Text', 'essential-addons-for-elementor-lite'),
249
  'editor_type' => 'LINE',
250
  ],
251
  [
252
- 'field' => 'eael_pricing_table_featured_tag_text',
253
- 'type' => __('Pricing Table: Featured Tag Text', 'essential-addons-for-elementor-lite'),
254
  'editor_type' => 'LINE',
255
- ]
256
  ],
257
  ];
258
 
@@ -260,10 +260,10 @@ trait Eael_WPML {
260
  'conditions' => ['widgetType' => 'eael-progress-bar'],
261
  'fields' => [
262
  [
263
- 'field' => 'progress_bar_title',
264
- 'type' => __('Progressbar: Title', 'essential-addons-for-elementor-lite'),
265
  'editor_type' => 'LINE',
266
- ]
267
  ],
268
  ];
269
 
@@ -271,20 +271,20 @@ trait Eael_WPML {
271
  'conditions' => ['widgetType' => 'eael-team-member'],
272
  'fields' => [
273
  [
274
- 'field' => 'eael_team_member_name',
275
- 'type' => __('Team Member: Name', 'essential-addons-for-elementor-lite'),
276
  'editor_type' => 'LINE',
277
  ],
278
  [
279
- 'field' => 'eael_team_member_job_title',
280
- 'type' => __('Team Member: Job Position', 'essential-addons-for-elementor-lite'),
281
  'editor_type' => 'LINE',
282
  ],
283
  [
284
- 'field' => 'eael_team_member_description',
285
- 'type' => __('Team Member: Description', 'essential-addons-for-elementor-lite'),
286
  'editor_type' => 'AREA',
287
- ]
288
  ],
289
  ];
290
 
@@ -293,55 +293,53 @@ trait Eael_WPML {
293
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Team_Member',
294
  'fields' => [
295
  [
296
- 'field' => 'eael_testimonial_name',
297
- 'type' => __('Testimonial: User Name', 'essential-addons-for-elementor-lite'),
298
  'editor_type' => 'LINE',
299
  ],
300
  [
301
- 'field' => 'eael_testimonial_company_title',
302
- 'type' => __('Testimonial: Company Name', 'essential-addons-for-elementor-lite'),
303
  'editor_type' => 'LINE',
304
  ],
305
  [
306
- 'field' => 'eael_testimonial_description',
307
- 'type' => __('Testimonial: Testimonial Description', 'essential-addons-for-elementor-lite'),
308
  'editor_type' => 'VISUAL',
309
- ]
310
  ],
311
  ];
312
 
313
-
314
  $widgets['eael-tooltip'] = [
315
  'conditions' => ['widgetType' => 'eael-tooltip'],
316
  'fields' => [
317
  [
318
- 'field' => 'eael_tooltip_content',
319
- 'type' => __('Tooltip: Content', 'essential-addons-for-elementor-lite'),
320
  'editor_type' => 'LINE',
321
  ],
322
  [
323
- 'field' => 'eael_tooltip_hover_content',
324
- 'type' => __('Tooltip: Content', 'essential-addons-for-elementor-lite'),
325
  'editor_type' => 'VISUAL',
326
- ]
327
  ],
328
  ];
329
 
330
-
331
  $widgets['eael-feature-list'] = [
332
  'conditions' => ['widgetType' => 'eael-feature-list'],
333
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Feature_List',
334
  'fields' => [
335
  [
336
- 'field' => 'eael_feature_list_title',
337
- 'type' => __('Feature List: Title', 'essential-addons-for-elementor-lite'),
338
  'editor_type' => 'LINE',
339
  ],
340
  [
341
- 'field' => 'eael_feature_list_content',
342
- 'type' => __('Feature List: Content', 'essential-addons-for-elementor-lite'),
343
  'editor_type' => 'AREA',
344
- ]
345
  ],
346
  ];
347
 
@@ -349,15 +347,15 @@ trait Eael_WPML {
349
  'conditions' => ['widgetType' => 'eael-caldera-form'],
350
  'fields' => [
351
  [
352
- 'field' => 'form_title_custom',
353
- 'type' => __('Caldera Form: Title', 'essential-addons-for-elementor-lite'),
354
  'editor_type' => 'LINE',
355
  ],
356
  [
357
- 'field' => 'form_description_custom',
358
- 'type' => __('Caldera Form: Description', 'essential-addons-for-elementor-lite'),
359
  'editor_type' => 'AREA',
360
- ]
361
  ],
362
  ];
363
 
@@ -365,15 +363,15 @@ trait Eael_WPML {
365
  'conditions' => ['widgetType' => 'eael-contact-form-7'],
366
  'fields' => [
367
  [
368
- 'field' => 'form_title_text',
369
- 'type' => __('Contact Form-7: Title', 'essential-addons-for-elementor-lite'),
370
  'editor_type' => 'LINE',
371
  ],
372
  [
373
- 'field' => 'form_description_text',
374
- 'type' => __('Contact Form-7: Description', 'essential-addons-for-elementor-lite'),
375
  'editor_type' => 'AREA',
376
- ]
377
  ],
378
  ];
379
 
@@ -381,15 +379,15 @@ trait Eael_WPML {
381
  'conditions' => ['widgetType' => 'eael-gravity-form'],
382
  'fields' => [
383
  [
384
- 'field' => 'form_title_custom',
385
- 'type' => __('Gravity Form: Title', 'essential-addons-for-elementor-lite'),
386
  'editor_type' => 'LINE',
387
  ],
388
  [
389
- 'field' => 'form_description_custom',
390
- 'type' => __('Gravity Form: Description', 'essential-addons-for-elementor-lite'),
391
  'editor_type' => 'AREA',
392
- ]
393
  ],
394
  ];
395
 
@@ -397,15 +395,15 @@ trait Eael_WPML {
397
  'conditions' => ['widgetType' => 'eael-wpforms'],
398
  'fields' => [
399
  [
400
- 'field' => 'form_title_custom',
401
- 'type' => __('WPForms: Title', 'essential-addons-for-elementor-lite'),
402
  'editor_type' => 'LINE',
403
  ],
404
  [
405
- 'field' => 'form_description_custom',
406
- 'type' => __('WPForms: Description', 'essential-addons-for-elementor-lite'),
407
  'editor_type' => 'AREA',
408
- ]
409
  ],
410
  ];
411
 
@@ -413,31 +411,31 @@ trait Eael_WPML {
413
  'conditions' => ['widgetType' => 'eael-ninja'],
414
  'fields' => [
415
  [
416
- 'field' => 'form_title_custom',
417
- 'type' => __('NinjaForm: Title', 'essential-addons-for-elementor-lite'),
418
  'editor_type' => 'LINE',
419
  ],
420
  [
421
- 'field' => 'form_description_custom',
422
- 'type' => __('NinjaForm: Description', 'essential-addons-for-elementor-lite'),
423
  'editor_type' => 'AREA',
424
- ]
425
  ],
426
  ];
427
 
428
  $widgets['eael-event-calendar'] = [
429
  'conditions' => ['widgetType' => 'eael-event-calendar'],
430
- 'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Event_Calendar'
431
  ];
432
 
433
  $widgets['eael-advanced-data-table'] = [
434
  'conditions' => ['widgetType' => 'eael-advanced-data-table'],
435
  'fields' => [
436
  [
437
- 'field' => 'ea_adv_data_table_search_placeholder',
438
- 'type' => __('Adv Data Table: Search Placeholder', 'essential-addons-for-elementor-lite'),
439
- 'editor_type' => 'LINE'
440
- ]
441
  ],
442
  ];
443
 
@@ -445,15 +443,15 @@ trait Eael_WPML {
445
  'conditions' => ['widgetType' => 'eael-formstack'],
446
  'fields' => [
447
  [
448
- 'field' => 'eael_formstack_form_title_custom',
449
- 'type' => __('Formstack: Custom Title', 'essential-addons-for-elementor-lite'),
450
- 'editor_type' => 'LINE'
451
  ],
452
  [
453
- 'field' => 'eael_formstack_form_description_custom',
454
- 'type' => __('Formstack: Custom Description', 'essential-addons-for-elementor-lite'),
455
- 'editor_type' => 'VISUAL'
456
- ]
457
  ],
458
  ];
459
 
@@ -461,19 +459,18 @@ trait Eael_WPML {
461
  'conditions' => ['widgetType' => 'eael-fluentform'],
462
  'fields' => [
463
  [
464
- 'field' => 'form_title_custom',
465
- 'type' => __('Fluent Form: Title', 'essential-addons-for-elementor-lite'),
466
- 'editor_type' => 'LINE'
467
  ],
468
  [
469
- 'field' => 'form_description_custom',
470
- 'type' => __('Fluent Form: Description', 'essential-addons-for-elementor-lite'),
471
- 'editor_type' => 'VISUAL'
472
- ]
473
  ],
474
  ];
475
 
476
  return $widgets;
477
  }
478
-
479
- }
6
  exit;
7
  } // Exit if accessed directly
8
 
9
+ trait Eael_WPML
10
+ {
11
 
12
+ public function translatable_widgets($widgets)
 
 
13
  {
14
  $widgets['eael-adv-accordion'] = [
15
  'conditions' => ['widgetType' => 'eael-adv-accordion'],
25
  'conditions' => ['widgetType' => 'eael-creative-button'],
26
  'fields' => [
27
  [
28
+ 'field' => 'creative_button_text',
29
+ 'type' => __('Creative Button: Text', 'essential-addons-for-elementor-lite'),
30
  'editor_type' => 'LINE',
31
  ],
32
  [
33
+ 'field' => 'creative_button_secondary_text',
34
+ 'type' => __('Creative Button: Secondary Text', 'essential-addons-for-elementor-lite'),
35
  'editor_type' => 'LINE',
36
  ],
37
  'creative_button_link_url' => [
38
  'field' => 'url',
39
+ 'type' => __('Creative Button: Link', 'essential-addons-for-elementor-lite'),
40
+ 'editor_type' => 'LINK',
41
+ ],
42
  ],
43
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Creative_Button',
44
  ];
47
  'conditions' => ['widgetType' => 'eael-cta-box'],
48
  'fields' => [
49
  [
50
+ 'field' => 'eael_cta_title',
51
+ 'type' => __('Call to Action: Title', 'essential-addons-for-elementor-lite'),
52
  'editor_type' => 'LINE',
53
  ],
54
  [
55
+ 'field' => 'eael_cta_content',
56
+ 'type' => __('Call to Action: Content', 'essential-addons-for-elementor-lite'),
57
  'editor_type' => 'VISUAL',
58
  ],
59
  [
60
  'field' => 'eael_cta_btn_text',
61
+ 'type' => __('Call to Action: Button Text', 'essential-addons-for-elementor-lite'),
62
  'editor_type' => 'LINE',
63
+ ],
64
  ],
65
  ];
66
 
67
  //Doesn't work properly
68
  $widgets['eael-data-table'] = [
69
  'conditions' => ['widgetType' => 'eael-data-table'],
70
+ 'integration-class' => ['\Essential_Addons_Elementor\Classes\WPML\Widgets\Data_Table', '\Essential_Addons_Elementor\Classes\WPML\Widgets\Data_Table_Body'],
71
  ];
72
 
73
  $widgets['eicon-animated-headline'] = [
74
  'conditions' => ['widgetType' => 'eael-dual-color-header'],
75
  'fields' => [
76
  [
77
+ 'field' => 'eael_dch_first_title',
78
+ 'type' => __('Dual Color Heading: Title ( First Part )', 'essential-addons-for-elementor-lite'),
79
  'editor_type' => 'LINE',
80
  ],
81
  [
82
+ 'field' => 'eael_dch_last_title',
83
+ 'type' => __('Dual Color Heading: Title ( Last Part )', 'essential-addons-for-elementor-lite'),
84
  'editor_type' => 'LINE',
85
  ],
86
  [
87
+ 'field' => 'eael_dch_subtext',
88
+ 'type' => __('Dual Color Heading: Sub Text', 'essential-addons-for-elementor-lite'),
89
  'editor_type' => 'VISUAL',
90
+ ],
91
  ],
92
  ];
93
 
96
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Fancy_Text',
97
  'fields' => [
98
  [
99
+ 'field' => 'eael_fancy_text_prefix',
100
+ 'type' => __('Fancy Text: Prefix Text', 'essential-addons-for-elementor-lite'),
101
  'editor_type' => 'LINE',
102
  ],
103
  [
104
+ 'field' => 'eael_fancy_text_suffix',
105
+ 'type' => __('Fancy Text: Suffix Text', 'essential-addons-for-elementor-lite'),
106
  'editor_type' => 'LINE',
107
+ ],
108
  ],
109
  ];
110
 
136
 
137
  $widgets['eael-image-accordion'] = [
138
  'conditions' => ['widgetType' => 'eael-image-accordion'],
139
+ 'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Image_Accordion',
140
  ];
141
 
142
  // have to work on this later.
170
  'conditions' => ['widgetType' => 'eael-info-box'],
171
  'fields' => [
172
  [
173
+ 'field' => 'eael_infobox_title',
174
+ 'type' => __('Infobox: Title', 'essential-addons-for-elementor-lite'),
175
  'editor_type' => 'LINE',
176
  ],
177
  [
178
+ 'field' => 'eael_infobox_text',
179
+ 'type' => __('Infobox Content', 'essential-addons-for-elementor-lite'),
180
  'editor_type' => 'VISUAL',
181
+ ],
182
  ],
183
  ];
184
 
186
  'conditions' => ['widgetType' => 'eael-post-grid'],
187
  'fields' => [
188
  [
189
+ 'field' => 'show_load_more_text',
190
+ 'type' => __('Post Grid: Load More Button', 'essential-addons-for-elementor-lite'),
191
  'editor_type' => 'LINE',
192
  ],
193
  [
194
+ 'field' => 'read_more_button_text',
195
+ 'type' => __('Post Grid: Read More Button', 'essential-addons-for-elementor-lite'),
196
  'editor_type' => 'LINE',
197
+ ],
198
  ],
199
  ];
200
 
202
  'conditions' => ['widgetType' => 'eael-post-timeline'],
203
  'fields' => [
204
  [
205
+ 'field' => 'show_load_more_text',
206
+ 'type' => __('Post Timeline: Load More Button', 'essential-addons-for-elementor-lite'),
207
  'editor_type' => 'LINE',
208
+ ],
209
  ],
210
  ];
211
 
214
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Pricing_Table',
215
  'fields' => [
216
  [
217
+ 'field' => 'eael_pricing_table_title',
218
+ 'type' => __('Pricing Table: Title', 'essential-addons-for-elementor-lite'),
219
  'editor_type' => 'LINE',
220
  ],
221
  [
222
+ 'field' => 'eael_pricing_table_sub_title',
223
+ 'type' => __('Pricing Table: Sub Title', 'essential-addons-for-elementor-lite'),
224
  'editor_type' => 'LINE',
225
  ],
226
  [
227
+ 'field' => 'eael_pricing_table_price',
228
+ 'type' => __('Pricing Table: Price', 'essential-addons-for-elementor-lite'),
229
  'editor_type' => 'LINE',
230
  ],
231
  [
232
+ 'field' => 'eael_pricing_table_price_cur',
233
+ 'type' => __('Pricing Table: Currency Placement', 'essential-addons-for-elementor-lite'),
234
  'editor_type' => 'LINE',
235
  ],
236
  [
237
+ 'field' => 'eael_pricing_table_price_period',
238
+ 'type' => __('Pricing Table: Price Period (per)', 'essential-addons-for-elementor-lite'),
239
  'editor_type' => 'LINE',
240
  ],
241
  [
242
+ 'field' => 'eael_pricing_table_btn',
243
+ 'type' => __('Pricing Table: Button Text', 'essential-addons-for-elementor-lite'),
244
  'editor_type' => 'LINE',
245
  ],
246
  [
247
+ 'field' => 'eael_pricing_table_btn',
248
+ 'type' => __('Pricing Table: Button Text', 'essential-addons-for-elementor-lite'),
249
  'editor_type' => 'LINE',
250
  ],
251
  [
252
+ 'field' => 'eael_pricing_table_featured_tag_text',
253
+ 'type' => __('Pricing Table: Featured Tag Text', 'essential-addons-for-elementor-lite'),
254
  'editor_type' => 'LINE',
255
+ ],
256
  ],
257
  ];
258
 
260
  'conditions' => ['widgetType' => 'eael-progress-bar'],
261
  'fields' => [
262
  [
263
+ 'field' => 'progress_bar_title',
264
+ 'type' => __('Progressbar: Title', 'essential-addons-for-elementor-lite'),
265
  'editor_type' => 'LINE',
266
+ ],
267
  ],
268
  ];
269
 
271
  'conditions' => ['widgetType' => 'eael-team-member'],
272
  'fields' => [
273
  [
274
+ 'field' => 'eael_team_member_name',
275
+ 'type' => __('Team Member: Name', 'essential-addons-for-elementor-lite'),
276
  'editor_type' => 'LINE',
277
  ],
278
  [
279
+ 'field' => 'eael_team_member_job_title',
280
+ 'type' => __('Team Member: Job Position', 'essential-addons-for-elementor-lite'),
281
  'editor_type' => 'LINE',
282
  ],
283
  [
284
+ 'field' => 'eael_team_member_description',
285
+ 'type' => __('Team Member: Description', 'essential-addons-for-elementor-lite'),
286
  'editor_type' => 'AREA',
287
+ ],
288
  ],
289
  ];
290
 
293
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Team_Member',
294
  'fields' => [
295
  [
296
+ 'field' => 'eael_testimonial_name',
297
+ 'type' => __('Testimonial: User Name', 'essential-addons-for-elementor-lite'),
298
  'editor_type' => 'LINE',
299
  ],
300
  [
301
+ 'field' => 'eael_testimonial_company_title',
302
+ 'type' => __('Testimonial: Company Name', 'essential-addons-for-elementor-lite'),
303
  'editor_type' => 'LINE',
304
  ],
305
  [
306
+ 'field' => 'eael_testimonial_description',
307
+ 'type' => __('Testimonial: Testimonial Description', 'essential-addons-for-elementor-lite'),
308
  'editor_type' => 'VISUAL',
309
+ ],
310
  ],
311
  ];
312
 
 
313
  $widgets['eael-tooltip'] = [
314
  'conditions' => ['widgetType' => 'eael-tooltip'],
315
  'fields' => [
316
  [
317
+ 'field' => 'eael_tooltip_content',
318
+ 'type' => __('Tooltip: Content', 'essential-addons-for-elementor-lite'),
319
  'editor_type' => 'LINE',
320
  ],
321
  [
322
+ 'field' => 'eael_tooltip_hover_content',
323
+ 'type' => __('Tooltip: Content', 'essential-addons-for-elementor-lite'),
324
  'editor_type' => 'VISUAL',
325
+ ],
326
  ],
327
  ];
328
 
 
329
  $widgets['eael-feature-list'] = [
330
  'conditions' => ['widgetType' => 'eael-feature-list'],
331
  'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Feature_List',
332
  'fields' => [
333
  [
334
+ 'field' => 'eael_feature_list_title',
335
+ 'type' => __('Feature List: Title', 'essential-addons-for-elementor-lite'),
336
  'editor_type' => 'LINE',
337
  ],
338
  [
339
+ 'field' => 'eael_feature_list_content',
340
+ 'type' => __('Feature List: Content', 'essential-addons-for-elementor-lite'),
341
  'editor_type' => 'AREA',
342
+ ],
343
  ],
344
  ];
345
 
347
  'conditions' => ['widgetType' => 'eael-caldera-form'],
348
  'fields' => [
349
  [
350
+ 'field' => 'form_title_custom',
351
+ 'type' => __('Caldera Form: Title', 'essential-addons-for-elementor-lite'),
352
  'editor_type' => 'LINE',
353
  ],
354
  [
355
+ 'field' => 'form_description_custom',
356
+ 'type' => __('Caldera Form: Description', 'essential-addons-for-elementor-lite'),
357
  'editor_type' => 'AREA',
358
+ ],
359
  ],
360
  ];
361
 
363
  'conditions' => ['widgetType' => 'eael-contact-form-7'],
364
  'fields' => [
365
  [
366
+ 'field' => 'form_title_text',
367
+ 'type' => __('Contact Form-7: Title', 'essential-addons-for-elementor-lite'),
368
  'editor_type' => 'LINE',
369
  ],
370
  [
371
+ 'field' => 'form_description_text',
372
+ 'type' => __('Contact Form-7: Description', 'essential-addons-for-elementor-lite'),
373
  'editor_type' => 'AREA',
374
+ ],
375
  ],
376
  ];
377
 
379
  'conditions' => ['widgetType' => 'eael-gravity-form'],
380
  'fields' => [
381
  [
382
+ 'field' => 'form_title_custom',
383
+ 'type' => __('Gravity Form: Title', 'essential-addons-for-elementor-lite'),
384
  'editor_type' => 'LINE',
385
  ],
386
  [
387
+ 'field' => 'form_description_custom',
388
+ 'type' => __('Gravity Form: Description', 'essential-addons-for-elementor-lite'),
389
  'editor_type' => 'AREA',
390
+ ],
391
  ],
392
  ];
393
 
395
  'conditions' => ['widgetType' => 'eael-wpforms'],
396
  'fields' => [
397
  [
398
+ 'field' => 'form_title_custom',
399
+ 'type' => __('WPForms: Title', 'essential-addons-for-elementor-lite'),
400
  'editor_type' => 'LINE',
401
  ],
402
  [
403
+ 'field' => 'form_description_custom',
404
+ 'type' => __('WPForms: Description', 'essential-addons-for-elementor-lite'),
405
  'editor_type' => 'AREA',
406
+ ],
407
  ],
408
  ];
409
 
411
  'conditions' => ['widgetType' => 'eael-ninja'],
412
  'fields' => [
413
  [
414
+ 'field' => 'form_title_custom',
415
+ 'type' => __('NinjaForm: Title', 'essential-addons-for-elementor-lite'),
416
  'editor_type' => 'LINE',
417
  ],
418
  [
419
+ 'field' => 'form_description_custom',
420
+ 'type' => __('NinjaForm: Description', 'essential-addons-for-elementor-lite'),
421
  'editor_type' => 'AREA',
422
+ ],
423
  ],
424
  ];
425
 
426
  $widgets['eael-event-calendar'] = [
427
  'conditions' => ['widgetType' => 'eael-event-calendar'],
428
+ 'integration-class' => '\Essential_Addons_Elementor\Classes\WPML\Widgets\Event_Calendar',
429
  ];
430
 
431
  $widgets['eael-advanced-data-table'] = [
432
  'conditions' => ['widgetType' => 'eael-advanced-data-table'],
433
  'fields' => [
434
  [
435
+ 'field' => 'ea_adv_data_table_search_placeholder',
436
+ 'type' => __('Adv Data Table: Search Placeholder', 'essential-addons-for-elementor-lite'),
437
+ 'editor_type' => 'LINE',
438
+ ],
439
  ],
440
  ];
441
 
443
  'conditions' => ['widgetType' => 'eael-formstack'],
444
  'fields' => [
445
  [
446
+ 'field' => 'eael_formstack_form_title_custom',
447
+ 'type' => __('Formstack: Custom Title', 'essential-addons-for-elementor-lite'),
448
+ 'editor_type' => 'LINE',
449
  ],
450
  [
451
+ 'field' => 'eael_formstack_form_description_custom',
452
+ 'type' => __('Formstack: Custom Description', 'essential-addons-for-elementor-lite'),
453
+ 'editor_type' => 'VISUAL',
454
+ ],
455
  ],
456
  ];
457
 
459
  'conditions' => ['widgetType' => 'eael-fluentform'],
460
  'fields' => [
461
  [
462
+ 'field' => 'form_title_custom',
463
+ 'type' => __('Fluent Form: Title', 'essential-addons-for-elementor-lite'),
464
+ 'editor_type' => 'LINE',
465
  ],
466
  [
467
+ 'field' => 'form_description_custom',
468
+ 'type' => __('Fluent Form: Description', 'essential-addons-for-elementor-lite'),
469
+ 'editor_type' => 'VISUAL',
470
+ ],
471
  ],
472
  ];
473
 
474
  return $widgets;
475
  }
476
+ }
 
includes/Controls/Select2.php ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ namespace Essential_Addons_Elementor\Controls;
4
+
5
+ // If this file is called directly, abort.
6
+ if (!defined('ABSPATH')) {
7
+ exit;
8
+ }
9
+
10
+ use \Elementor\Base_Data_Control;
11
+
12
+ class Select2 extends Base_Data_Control
13
+ {
14
+ public function get_type()
15
+ {
16
+ return 'eael-select2';
17
+ }
18
+
19
+ public function enqueue()
20
+ {
21
+ wp_register_script('eael-select2', EAEL_PLUGIN_URL . 'assets/front-end/js/edit/ea-select2.js',
22
+ ['jquery-elementor-select2'], '1.0.0', true);
23
+ wp_localize_script(
24
+ 'eael-select2',
25
+ 'eael_select2_localize',
26
+ [
27
+ 'ajaxurl' => admin_url('admin-ajax.php'),
28
+ 'search_text' => esc_html__('Search', 'essential-addons-for-elementor-lite'),
29
+ ]
30
+ );
31
+ wp_enqueue_script('eael-select2');
32
+ }
33
+
34
+ protected function get_default_settings()
35
+ {
36
+ return [
37
+ 'multiple' => false,
38
+ 'source_type' => 'post',
39
+ ];
40
+ }
41
+
42
+ public function content_template()
43
+ {
44
+ $control_uid = $this->get_control_uid();
45
+ ?>
46
+ <# var controlUID = '<?php echo $control_uid; ?>'; #>
47
+ <# var currentID = elementor.panel.currentView.currentPageView.model.attributes.settings.attributes[data.name]; #>
48
+ <div class="elementor-control-field">
49
+ <# if ( data.label ) { #>
50
+ <label for="<?php echo $control_uid; ?>" class="elementor-control-title">{{{data.label }}}</label>
51
+ <# } #>
52
+ <div class="elementor-control-input-wrapper elementor-control-unit-5">
53
+ <select id="<?php echo $control_uid; ?>" class="ea-select2" data-setting="{{ data.name }}"></select>
54
+ </div>
55
+ </div>
56
+ <#
57
+ ( function( $ ) {
58
+ $( document.body ).trigger( 'eael_select2_init',{currentID:currentID,data:data,controlUID:controlUID} );
59
+ }( jQuery ) );
60
+ #>
61
+ <?php
62
+ }
63
+ }
includes/Elements/Adv_Accordion.php CHANGED
@@ -15,10 +15,10 @@ use \Elementor\Group_Control_Typography;
15
  use \Elementor\Plugin;
16
  use \Elementor\Widget_Base;
17
 
 
 
18
  class Adv_Accordion extends Widget_Base
19
  {
20
- use \Essential_Addons_Elementor\Traits\Helper;
21
-
22
  public function get_name()
23
  {
24
  return 'eael-adv-accordion';
@@ -234,10 +234,10 @@ class Adv_Accordion extends Widget_Base
234
  'default' => 'content',
235
  ],
236
  [
237
- 'name' => 'eael_primary_templates',
238
- 'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
239
- 'type' => Controls_Manager::SELECT,
240
- 'options' => $this->eael_get_page_templates(),
241
  'condition' => [
242
  'eael_adv_accordion_text_type' => 'template',
243
  ],
15
  use \Elementor\Plugin;
16
  use \Elementor\Widget_Base;
17
 
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
+
20
  class Adv_Accordion extends Widget_Base
21
  {
 
 
22
  public function get_name()
23
  {
24
  return 'eael-adv-accordion';
234
  'default' => 'content',
235
  ],
236
  [
237
+ 'name' => 'eael_primary_templates',
238
+ 'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
239
+ 'type' => Controls_Manager::SELECT,
240
+ 'options' => Helper::get_elementor_templates(),
241
  'condition' => [
242
  'eael_adv_accordion_text_type' => 'template',
243
  ],
includes/Elements/Adv_Tabs.php CHANGED
@@ -8,18 +8,17 @@ if (!defined('ABSPATH')) {
8
  }
9
 
10
  use \Elementor\Controls_Manager;
11
- use \Elementor\Plugin;
12
  use \Elementor\Group_Control_Border;
13
  use \Elementor\Group_Control_Box_Shadow;
14
  use \Elementor\Group_Control_Typography;
 
15
  use \Elementor\Utils;
16
  use \Elementor\Widget_Base;
17
- use \Elementor\Group_Control_Background;
18
 
19
  class Adv_Tabs extends Widget_Base
20
  {
21
- use \Essential_Addons_Elementor\Traits\Helper;
22
-
23
  public function get_name()
24
  {
25
  return 'eael-adv-tabs';
@@ -53,7 +52,7 @@ class Adv_Tabs extends Widget_Base
53
  'tabs content',
54
  'product tabs',
55
  'ea',
56
- 'essential addons'
57
  ];
58
  }
59
 
@@ -206,7 +205,7 @@ class Adv_Tabs extends Widget_Base
206
  'name' => 'eael_primary_templates',
207
  'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
208
  'type' => Controls_Manager::SELECT,
209
- 'options' => $this->eael_get_page_templates(),
210
  'condition' => [
211
  'eael_adv_tabs_text_type' => 'template',
212
  ],
@@ -231,7 +230,7 @@ class Adv_Tabs extends Widget_Base
231
  $this->start_controls_section(
232
  'eael_section_pro',
233
  [
234
- 'label' => __('Go Premium for More Features', 'essential-addons-for-elementor-lite')
235
  ]
236
  );
237
 
@@ -247,7 +246,7 @@ class Adv_Tabs extends Widget_Base
247
  ],
248
  ],
249
  'default' => '1',
250
- 'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank">Pro version</a> for more stunning elements and customization options.</span>'
251
  ]
252
  );
253
 
@@ -451,7 +450,7 @@ class Adv_Tabs extends Widget_Base
451
  [
452
  'name' => 'eael_adv_tabs_tab_bgtype',
453
  'types' => ['classic', 'gradient'],
454
- 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li'
455
  ]
456
  );
457
  $this->add_control(
@@ -517,7 +516,7 @@ class Adv_Tabs extends Widget_Base
517
  [
518
  'name' => 'eael_adv_tabs_tab_bgtype_hover',
519
  'types' => ['classic', 'gradient'],
520
- 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li:hover'
521
  ]
522
  );
523
  $this->add_control(
@@ -538,7 +537,7 @@ class Adv_Tabs extends Widget_Base
538
  'type' => Controls_Manager::COLOR,
539
  'default' => '#fff',
540
  'selectors' => [
541
- '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li:hover > i' => 'color: {{VALUE}};'
542
  ],
543
  'condition' => [
544
  'eael_adv_tabs_icon_show' => 'yes',
@@ -584,7 +583,7 @@ class Adv_Tabs extends Widget_Base
584
  [
585
  'name' => 'eael_adv_tabs_tab_bgtype_active',
586
  'types' => ['classic', 'gradient'],
587
- 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li.active,{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li.active-default'
588
  ]
589
  );
590
  $this->add_control(
@@ -666,7 +665,7 @@ class Adv_Tabs extends Widget_Base
666
  [
667
  'name' => 'adv_tabs_content_bgtype',
668
  'types' => ['classic', 'gradient'],
669
- 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-content > div'
670
  ]
671
  );
672
  $this->add_control(
@@ -814,9 +813,9 @@ class Adv_Tabs extends Widget_Base
814
  $this->add_control(
815
  'responsive_vertical_layout',
816
  [
817
- 'label' => __('Vertical Layout', 'essential-addons-elementor'),
818
- 'type' => Controls_Manager::SWITCHER,
819
- 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
820
  'label_off' => __('No', 'essential-addons-for-elementor-lite'),
821
  'return_value' => 'yes',
822
  'default' => 'yes',
@@ -851,47 +850,46 @@ class Adv_Tabs extends Widget_Base
851
  $this->add_render_attribute('eael_tab_wrapper', 'class', 'responsive-vertical-layout');
852
  }
853
 
854
- $this->add_render_attribute('eael_tab_icon_position', 'class', esc_attr($settings['eael_adv_tab_icon_position'])); ?>
855
  <div <?php echo $this->get_render_attribute_string('eael_tab_wrapper'); ?>>
856
  <div class="eael-tabs-nav">
857
  <ul <?php echo $this->get_render_attribute_string('eael_tab_icon_position'); ?>>
858
- <?php foreach ($settings['eael_adv_tabs_tab'] as $tab) : ?>
859
- <li class="<?php echo esc_attr($tab['eael_adv_tabs_tab_show_as_default']); ?>"><?php if ($settings['eael_adv_tabs_icon_show'] === 'yes') :
860
- if ($tab['eael_adv_tabs_icon_type'] === 'icon') : ?>
 
861
  <?php if ($tab_icon_is_new || $tab_icon_migrated) {
862
- if (isset($tab['eael_adv_tabs_tab_title_icon_new']['value']['url'])) {
863
- echo '<img src="' . $tab['eael_adv_tabs_tab_title_icon_new']['value']['url'] . '"/>';
864
- } else {
865
- echo '<i class="' . $tab['eael_adv_tabs_tab_title_icon_new']['value'] . '"></i>';
866
- }
867
- } else {
868
- echo '<i class="' . $tab['eael_adv_tabs_tab_title_icon'] . '"></i>';
869
- } ?>
870
- <?php elseif ($tab['eael_adv_tabs_icon_type'] === 'image') : ?>
871
  <img src="<?php echo esc_attr($tab['eael_adv_tabs_tab_title_image']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($tab['eael_adv_tabs_tab_title_image']['id'], '_wp_attachment_image_alt', true)); ?>">
872
- <?php endif; ?>
873
- <?php endif; ?> <span class="eael-tab-title"><?php echo $tab['eael_adv_tabs_tab_title']; ?></span></li>
874
- <?php endforeach; ?>
 
875
  </ul>
876
  </div>
877
  <div class="eael-tabs-content">
878
- <?php foreach ($settings['eael_adv_tabs_tab'] as $tab) : $eael_find_default_tab[] = $tab['eael_adv_tabs_tab_show_as_default']; ?>
 
 
879
  <div class="clearfix <?php echo esc_attr($tab['eael_adv_tabs_tab_show_as_default']); ?>">
880
- <?php if ('content' == $tab['eael_adv_tabs_text_type']) : ?>
881
  <?php echo do_shortcode($tab['eael_adv_tabs_tab_content']); ?>
882
- <?php elseif ('template' == $tab['eael_adv_tabs_text_type']) : ?>
883
- <?php if (!empty($tab['eael_primary_templates'])) {
884
  echo Plugin::$instance->frontend->get_builder_content($tab['eael_primary_templates'], true);
885
- } ?>
886
- <?php endif; ?>
887
- </div>
888
- <?php endforeach; ?>
889
- </div>
890
  </div>
891
- <?php
892
- }
893
-
894
- protected function content_template()
895
- {
896
- }
897
  }
8
  }
9
 
10
  use \Elementor\Controls_Manager;
11
+ use \Elementor\Group_Control_Background;
12
  use \Elementor\Group_Control_Border;
13
  use \Elementor\Group_Control_Box_Shadow;
14
  use \Elementor\Group_Control_Typography;
15
+ use \Elementor\Plugin;
16
  use \Elementor\Utils;
17
  use \Elementor\Widget_Base;
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
 
20
  class Adv_Tabs extends Widget_Base
21
  {
 
 
22
  public function get_name()
23
  {
24
  return 'eael-adv-tabs';
52
  'tabs content',
53
  'product tabs',
54
  'ea',
55
+ 'essential addons',
56
  ];
57
  }
58
 
205
  'name' => 'eael_primary_templates',
206
  'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
207
  'type' => Controls_Manager::SELECT,
208
+ 'options' => Helper::get_elementor_templates(),
209
  'condition' => [
210
  'eael_adv_tabs_text_type' => 'template',
211
  ],
230
  $this->start_controls_section(
231
  'eael_section_pro',
232
  [
233
+ 'label' => __('Go Premium for More Features', 'essential-addons-for-elementor-lite'),
234
  ]
235
  );
236
 
246
  ],
247
  ],
248
  'default' => '1',
249
+ 'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank">Pro version</a> for more stunning elements and customization options.</span>',
250
  ]
251
  );
252
 
450
  [
451
  'name' => 'eael_adv_tabs_tab_bgtype',
452
  'types' => ['classic', 'gradient'],
453
+ 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li',
454
  ]
455
  );
456
  $this->add_control(
516
  [
517
  'name' => 'eael_adv_tabs_tab_bgtype_hover',
518
  'types' => ['classic', 'gradient'],
519
+ 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li:hover',
520
  ]
521
  );
522
  $this->add_control(
537
  'type' => Controls_Manager::COLOR,
538
  'default' => '#fff',
539
  'selectors' => [
540
+ '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li:hover > i' => 'color: {{VALUE}};',
541
  ],
542
  'condition' => [
543
  'eael_adv_tabs_icon_show' => 'yes',
583
  [
584
  'name' => 'eael_adv_tabs_tab_bgtype_active',
585
  'types' => ['classic', 'gradient'],
586
+ 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li.active,{{WRAPPER}} .eael-advance-tabs .eael-tabs-nav > ul li.active-default',
587
  ]
588
  );
589
  $this->add_control(
665
  [
666
  'name' => 'adv_tabs_content_bgtype',
667
  'types' => ['classic', 'gradient'],
668
+ 'selector' => '{{WRAPPER}} .eael-advance-tabs .eael-tabs-content > div',
669
  ]
670
  );
671
  $this->add_control(
813
  $this->add_control(
814
  'responsive_vertical_layout',
815
  [
816
+ 'label' => __('Vertical Layout', 'essential-addons-elementor'),
817
+ 'type' => Controls_Manager::SWITCHER,
818
+ 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
819
  'label_off' => __('No', 'essential-addons-for-elementor-lite'),
820
  'return_value' => 'yes',
821
  'default' => 'yes',
850
  $this->add_render_attribute('eael_tab_wrapper', 'class', 'responsive-vertical-layout');
851
  }
852
 
853
+ $this->add_render_attribute('eael_tab_icon_position', 'class', esc_attr($settings['eael_adv_tab_icon_position']));?>
854
  <div <?php echo $this->get_render_attribute_string('eael_tab_wrapper'); ?>>
855
  <div class="eael-tabs-nav">
856
  <ul <?php echo $this->get_render_attribute_string('eael_tab_icon_position'); ?>>
857
+ <?php foreach ($settings['eael_adv_tabs_tab'] as $tab): ?>
858
+ <li class="<?php echo esc_attr($tab['eael_adv_tabs_tab_show_as_default']); ?>">
859
+ <?php if ($settings['eael_adv_tabs_icon_show'] === 'yes'):
860
+ if ($tab['eael_adv_tabs_icon_type'] === 'icon'): ?>
861
  <?php if ($tab_icon_is_new || $tab_icon_migrated) {
862
+ if (isset($tab['eael_adv_tabs_tab_title_icon_new']['value']['url'])) {
863
+ echo '<img src="' . $tab['eael_adv_tabs_tab_title_icon_new']['value']['url'] . '"/>';
864
+ } else {
865
+ echo '<i class="' . $tab['eael_adv_tabs_tab_title_icon_new']['value'] . '"></i>';
866
+ }
867
+ } else {
868
+ echo '<i class="' . $tab['eael_adv_tabs_tab_title_icon'] . '"></i>';
869
+ }?>
870
+ <?php elseif ($tab['eael_adv_tabs_icon_type'] === 'image'): ?>
871
  <img src="<?php echo esc_attr($tab['eael_adv_tabs_tab_title_image']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($tab['eael_adv_tabs_tab_title_image']['id'], '_wp_attachment_image_alt', true)); ?>">
872
+ <?php endif;?>
873
+ <?php endif;?> <span class="eael-tab-title"><?php echo $tab['eael_adv_tabs_tab_title']; ?></span>
874
+ </li>
875
+ <?php endforeach;?>
876
  </ul>
877
  </div>
878
  <div class="eael-tabs-content">
879
+ <?php foreach ($settings['eael_adv_tabs_tab'] as $tab):
880
+ $eael_find_default_tab[] = $tab['eael_adv_tabs_tab_show_as_default'];?>
881
+
882
  <div class="clearfix <?php echo esc_attr($tab['eael_adv_tabs_tab_show_as_default']); ?>">
883
+ <?php if ('content' == $tab['eael_adv_tabs_text_type']): ?>
884
  <?php echo do_shortcode($tab['eael_adv_tabs_tab_content']); ?>
885
+ <?php elseif ('template' == $tab['eael_adv_tabs_text_type']): ?>
886
+ <?php if (!empty($tab['eael_primary_templates'])) {
887
  echo Plugin::$instance->frontend->get_builder_content($tab['eael_primary_templates'], true);
888
+ }?>
889
+ <?php endif;?>
890
+ </div>
891
+ <?php endforeach;?>
892
+ </div>
893
  </div>
894
+ <?php }
 
 
 
 
 
895
  }
includes/Elements/Advanced_Data_Table.php CHANGED
@@ -76,21 +76,21 @@ class Advanced_Data_Table extends Widget_Base
76
  $this->add_control(
77
  'ea_adv_data_table_source',
78
  [
79
- 'label' => esc_html__('Source', 'essential-addons-for-elementor-lite'),
80
- 'type' => Controls_Manager::SELECT,
81
  'options' => call_user_func(function () {
82
- $source = [];
83
  $source['static'] = __('Static Data', 'essential-addons-for-elementor-lite');
84
 
85
  if (apply_filters('eael/pro_enabled', false)) {
86
- $source['database'] = __('Database', 'essential-addons-for-elementor-lite');
87
- $source['remote'] = __('Remote Database', 'essential-addons-for-elementor-lite');
88
- $source['google'] = __('Google Sheets', 'essential-addons-for-elementor-lite');
89
  $source['tablepress'] = __('TablePress', 'essential-addons-for-elementor-lite');
90
  } else {
91
- $source['database'] = __('Database(PRO)', 'essential-addons-for-elementor-lite');
92
- $source['remote'] = __('Remote Database(PRO)', 'essential-addons-for-elementor-lite');
93
- $source['google'] = __('Google Sheets(PRO)', 'essential-addons-for-elementor-lite');
94
  $source['tablepress'] = __('TablePress(PRO)', 'essential-addons-for-elementor-lite');
95
  }
96
 
@@ -102,12 +102,15 @@ class Advanced_Data_Table extends Widget_Base
102
  ]
103
  );
104
 
 
105
  do_action('eael/advanced-data-table/source/control', $this);
106
 
 
 
107
  $this->add_control(
108
  'ea_adv_data_table_static_html',
109
  [
110
- 'type' => Controls_Manager::HIDDEN,
111
  'default' => '<thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody>',
112
  ]
113
  );
@@ -125,29 +128,29 @@ class Advanced_Data_Table extends Widget_Base
125
  $this->add_control(
126
  'ea_adv_data_table_sort',
127
  [
128
- 'label' => esc_html__('Sort', 'essential-addons-for-elementor-lite'),
129
- 'type' => Controls_Manager::SWITCHER,
130
  'return_value' => 'yes',
131
- 'default' => 'yes',
132
  ]
133
  );
134
 
135
  $this->add_control(
136
  'ea_adv_data_table_search',
137
  [
138
- 'label' => esc_html__('Search', 'essential-addons-for-elementor-lite'),
139
- 'type' => Controls_Manager::SWITCHER,
140
  'return_value' => 'yes',
141
- 'default' => 'yes',
142
  ]
143
  );
144
 
145
  $this->add_control(
146
  'ea_adv_data_table_search_placeholder',
147
  [
148
- 'label' => __('Placeholder', 'essential-addons-for-elementor-lite'),
149
- 'type' => Controls_Manager::TEXT,
150
- 'default' => __('Search', 'essential-addons-for-elementor-lite'),
151
  'condition' => [
152
  'ea_adv_data_table_search' => 'yes',
153
  ],
@@ -157,23 +160,23 @@ class Advanced_Data_Table extends Widget_Base
157
  $this->add_control(
158
  'ea_adv_data_table_pagination',
159
  [
160
- 'label' => esc_html__('Pagination', 'essential-addons-for-elementor-lite'),
161
- 'type' => Controls_Manager::SWITCHER,
162
  'return_value' => 'yes',
163
- 'default' => 'yes',
164
  ]
165
  );
166
 
167
  $this->add_control(
168
  'ea_adv_data_table_pagination_type',
169
  [
170
- 'label' => esc_html__('Pagination Type', 'essential-addons-for-elementor-lite'),
171
- 'type' => Controls_Manager::SELECT,
172
- 'options' => [
173
  'button' => esc_html__('Button', 'essential-addons-for-elementor-lite'),
174
  'select' => esc_html__('Select', 'essential-addons-for-elementor-lite'),
175
  ],
176
- 'default' => 'button',
177
  'condition' => [
178
  'ea_adv_data_table_pagination' => 'yes',
179
  ],
@@ -183,10 +186,10 @@ class Advanced_Data_Table extends Widget_Base
183
  $this->add_control(
184
  'ea_adv_data_table_items_per_page',
185
  [
186
- 'label' => esc_html__('Rows Per Page', 'essential-addons-for-elementor-lite'),
187
- 'type' => Controls_Manager::NUMBER,
188
- 'min' => 1,
189
- 'default' => 10,
190
  'condition' => [
191
  'ea_adv_data_table_pagination' => 'yes',
192
  ],
@@ -196,10 +199,10 @@ class Advanced_Data_Table extends Widget_Base
196
  $this->add_control(
197
  'eael_global_warning_text',
198
  [
199
- 'type' => Controls_Manager::RAW_HTML,
200
- 'raw' => __('Note: Pagination will be applied on Live Preview only.', 'essential-addons-for-elementor-lite'),
201
  'content_classes' => 'eael-warning',
202
- 'condition' => [
203
  'ea_adv_data_table_pagination' => 'yes',
204
  ],
205
  ]
@@ -219,8 +222,8 @@ class Advanced_Data_Table extends Widget_Base
219
  'ea_adv_data_table_export_csv_button',
220
  [
221
  'label' => __('Export table as CSV file', 'essential-addons-for-elementor-lite'),
222
- 'type' => Controls_Manager::BUTTON,
223
- 'text' => __('Export', 'essential-addons-for-elementor-lite'),
224
  'event' => 'ea:advTable:export',
225
  ]
226
  );
@@ -228,8 +231,8 @@ class Advanced_Data_Table extends Widget_Base
228
  $this->add_control(
229
  'heading-import',
230
  [
231
- 'label' => __('Import', 'essential-addons-for-elementor-lite'),
232
- 'type' => Controls_Manager::HEADING,
233
  'condition' => [
234
  'ea_adv_data_table_source' => 'static',
235
  ],
@@ -239,8 +242,8 @@ class Advanced_Data_Table extends Widget_Base
239
  $this->add_control(
240
  'ea_adv_data_table_csv_string',
241
  [
242
- 'type' => Controls_Manager::RAW_HTML,
243
- 'raw' => '<textarea class="ea_adv_table_csv_string" rows="5" placeholder="Paste CSV string"></textarea><label for="ea_adv_table_csv_string_table"><input type="checkbox" id="ea_adv_table_csv_string_table" class="ea_adv_table_csv_string_table"> Import first row as Header</label>',
244
  'condition' => [
245
  'ea_adv_data_table_source' => 'static',
246
  ],
@@ -250,12 +253,12 @@ class Advanced_Data_Table extends Widget_Base
250
  $this->add_control(
251
  'ea_adv_data_table_import_csv_button',
252
  [
253
- 'label' => __('Import', 'essential-addons-for-elementor-lite'),
254
- 'type' => Controls_Manager::BUTTON,
255
  'show_label' => false,
256
- 'text' => __('Import', 'essential-addons-for-elementor-lite'),
257
- 'event' => 'ea:advTable:import',
258
- 'condition' => [
259
  'ea_adv_data_table_source' => 'static',
260
  ],
261
  ]
@@ -268,25 +271,25 @@ class Advanced_Data_Table extends Widget_Base
268
  'ea_section_adv_data_table_style_table',
269
  [
270
  'label' => __('Table', 'essential-addons-for-elementor-lite'),
271
- 'tab' => Controls_Manager::TAB_STYLE,
272
  ]
273
  );
274
 
275
  $this->add_responsive_control(
276
  'ea_adv_data_table_width',
277
  [
278
- 'label' => __('Width', 'essential-addons-for-elementor-lite'),
279
- 'type' => Controls_Manager::SLIDER,
280
- 'size_units' => ['px', '%'],
281
- 'range' => [
282
  'px' => [
283
- 'min' => 100,
284
- 'max' => 10000,
285
  'step' => 1,
286
  ],
287
- '%' => [
288
- 'min' => 10,
289
- 'max' => 100,
290
  'step' => 1,
291
  ],
292
  ],
@@ -294,15 +297,15 @@ class Advanced_Data_Table extends Widget_Base
294
  'unit' => '%',
295
  'size' => 100,
296
  ],
297
- 'tablet_default' => [
298
  'unit' => '%',
299
  'size' => 100,
300
  ],
301
- 'mobile_default' => [
302
  'unit' => '%',
303
  'size' => 100,
304
  ],
305
- 'selectors' => [
306
  '{{WRAPPER}} .ea-advanced-data-table' => 'width: {{SIZE}}{{UNIT}}',
307
  ],
308
  ]
@@ -311,37 +314,37 @@ class Advanced_Data_Table extends Widget_Base
311
  $this->add_group_control(
312
  Group_Control_Border::get_type(),
313
  [
314
- 'name' => 'ea_adv_data_table_border',
315
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
316
  'fields_options' => [
317
  'border' => [
318
  'default' => 'solid',
319
  ],
320
- 'width' => [
321
  'default' => [
322
- 'unit' => 'px',
323
- 'top' => '1',
324
- 'right' => '1',
325
- 'bottom' => '1',
326
- 'left' => '1',
327
  'isLinked' => true,
328
  ],
329
  ],
330
- 'color' => [
331
  'default' => '#eeeeee',
332
  ],
333
  ],
334
- 'selector' => '{{WRAPPER}} .ea-advanced-data-table',
335
  ]
336
  );
337
 
338
  $this->add_control(
339
  'ea_adv_data_table_border_radius',
340
  [
341
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
342
- 'type' => Controls_Manager::DIMENSIONS,
343
  'size_units' => ['px'],
344
- 'selectors' => [
345
  '{{WRAPPER}} .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
346
  ],
347
  ]
@@ -350,8 +353,8 @@ class Advanced_Data_Table extends Widget_Base
350
  $this->add_group_control(
351
  Group_Control_Box_Shadow::get_type(),
352
  [
353
- 'name' => 'ea_adv_data_table_width_box_shadow',
354
- 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
355
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner',
356
  ]
357
  );
@@ -362,15 +365,15 @@ class Advanced_Data_Table extends Widget_Base
362
  'ea_section_adv_data_table_style_head',
363
  [
364
  'label' => __('Head', 'essential-addons-for-elementor-lite'),
365
- 'tab' => Controls_Manager::TAB_STYLE,
366
  ]
367
  );
368
 
369
  $this->add_group_control(
370
  Group_Control_Typography::get_type(),
371
  [
372
- 'name' => 'ea_adv_data_table_head_typography',
373
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
374
  'selector' => '{{WRAPPER}} th',
375
  ]
376
  );
@@ -378,25 +381,25 @@ class Advanced_Data_Table extends Widget_Base
378
  $this->add_control(
379
  'ea_adv_data_table_head_horizontal_alignment',
380
  [
381
- 'label' => esc_html__('Text Alignment', 'essential-addons-for-elementor-lite'),
382
- 'type' => Controls_Manager::CHOOSE,
383
- 'options' => [
384
- 'left' => [
385
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
386
- 'icon' => 'fa fa-align-left',
387
  ],
388
  'center' => [
389
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
390
- 'icon' => 'fa fa-align-center',
391
  ],
392
- 'right' => [
393
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
394
- 'icon' => 'fa fa-align-right',
395
  ],
396
  ],
397
- 'default' => 'left',
398
  'selectors' => [
399
- '{{WRAPPER}} th' => 'text-align: {{VALUE}};',
400
  '{{WRAPPER}} th .ql-editor' => 'text-align: {{VALUE}};',
401
  ],
402
  ]
@@ -405,13 +408,13 @@ class Advanced_Data_Table extends Widget_Base
405
  $this->add_control(
406
  'ea_adv_data_table_head_color',
407
  [
408
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
409
- 'type' => Controls_Manager::COLOR,
410
- 'default' => '#444444',
411
  'selectors' => [
412
- '{{WRAPPER}} th' => 'color: {{VALUE}};',
413
- '{{WRAPPER}} th:before' => 'border-bottom-color: {{VALUE}};',
414
- '{{WRAPPER}} th:after' => 'border-top-color: {{VALUE}};',
415
  ],
416
  ]
417
  );
@@ -419,9 +422,9 @@ class Advanced_Data_Table extends Widget_Base
419
  $this->add_control(
420
  'ea_adv_data_table_head_background',
421
  [
422
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
423
- 'type' => Controls_Manager::COLOR,
424
- 'default' => '#fbfbfb',
425
  'selectors' => [
426
  '{{WRAPPER}} thead' => 'background-color: {{VALUE}};',
427
  ],
@@ -431,45 +434,45 @@ class Advanced_Data_Table extends Widget_Base
431
  $this->add_group_control(
432
  Group_Control_Border::get_type(),
433
  [
434
- 'name' => 'ea_adv_data_table_head_cell_border',
435
- 'label' => __('Cell Border', 'essential-addons-for-elementor-lite'),
436
  'fields_options' => [
437
  'border' => [
438
  'default' => 'solid',
439
  ],
440
- 'width' => [
441
  'default' => [
442
- 'unit' => 'px',
443
- 'top' => '1',
444
- 'right' => '1',
445
- 'bottom' => '1',
446
- 'left' => '1',
447
  'isLinked' => true,
448
  ],
449
  ],
450
- 'color' => [
451
  'default' => '#eeeeee',
452
  ],
453
  ],
454
- 'selector' => '{{WRAPPER}} th',
455
  ]
456
  );
457
 
458
  $this->add_responsive_control(
459
  'ea_adv_data_table_head_cell_padding',
460
  [
461
- 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
462
- 'type' => Controls_Manager::DIMENSIONS,
463
- 'size_units' => ['px'],
464
  'desktop_default' => [
465
- 'unit' => 'px',
466
- 'top' => '10',
467
- 'right' => '10',
468
- 'bottom' => '10',
469
- 'left' => '10',
470
  'isLinked' => true,
471
  ],
472
- 'selectors' => [
473
  '{{WRAPPER}} .ea-advanced-data-table th' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
474
  ],
475
  ]
@@ -481,15 +484,15 @@ class Advanced_Data_Table extends Widget_Base
481
  'ea_section_adv_data_table_style_body',
482
  [
483
  'label' => __('Body', 'essential-addons-for-elementor-lite'),
484
- 'tab' => Controls_Manager::TAB_STYLE,
485
  ]
486
  );
487
 
488
  $this->add_group_control(
489
  Group_Control_Typography::get_type(),
490
  [
491
- 'name' => 'ea_adv_data_table_body_typography',
492
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
493
  'selector' => '{{WRAPPER}} td',
494
  ]
495
  );
@@ -497,25 +500,25 @@ class Advanced_Data_Table extends Widget_Base
497
  $this->add_control(
498
  'ea_adv_data_table_body_horizontal_alignment',
499
  [
500
- 'label' => esc_html__('Text Alignment', 'essential-addons-for-elementor-lite'),
501
- 'type' => Controls_Manager::CHOOSE,
502
- 'options' => [
503
- 'left' => [
504
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
505
- 'icon' => 'fa fa-align-left',
506
  ],
507
  'center' => [
508
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
509
- 'icon' => 'fa fa-align-center',
510
  ],
511
- 'right' => [
512
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
513
- 'icon' => 'fa fa-align-right',
514
  ],
515
  ],
516
- 'default' => 'left',
517
  'selectors' => [
518
- '{{WRAPPER}} td' => 'text-align: {{VALUE}};',
519
  '{{WRAPPER}} td .ql-editor' => 'text-align: {{VALUE}};',
520
  ],
521
  ]
@@ -524,11 +527,11 @@ class Advanced_Data_Table extends Widget_Base
524
  $this->add_control(
525
  'ea_adv_data_table_body_color',
526
  [
527
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
528
- 'type' => Controls_Manager::COLOR,
529
- 'default' => '#666666',
530
  'selectors' => [
531
- '{{WRAPPER}} td' => 'color: {{VALUE}};',
532
  ],
533
  ]
534
  );
@@ -536,11 +539,11 @@ class Advanced_Data_Table extends Widget_Base
536
  $this->add_control(
537
  'ea_adv_data_table_body_link_color',
538
  [
539
- 'label' => __('Link Color', 'essential-addons-for-elementor-lite'),
540
- 'type' => Controls_Manager::COLOR,
541
- 'default' => '',
542
  'selectors' => [
543
- '{{WRAPPER}} td a' => 'color: {{VALUE}};',
544
  ],
545
  ]
546
  );
@@ -548,11 +551,11 @@ class Advanced_Data_Table extends Widget_Base
548
  $this->add_control(
549
  'ea_adv_data_table_body_link_hovercolor',
550
  [
551
- 'label' => __('Link Hover Color', 'essential-addons-for-elementor-lite'),
552
- 'type' => Controls_Manager::COLOR,
553
- 'default' => '',
554
  'selectors' => [
555
- '{{WRAPPER}} td a:hover' => 'color: {{VALUE}};',
556
  ],
557
  ]
558
  );
@@ -560,9 +563,9 @@ class Advanced_Data_Table extends Widget_Base
560
  $this->add_control(
561
  'ea_adv_data_table_body_background',
562
  [
563
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
564
- 'type' => Controls_Manager::COLOR,
565
- 'default' => '#ffffff',
566
  'selectors' => [
567
  '{{WRAPPER}} tbody' => 'background-color: {{VALUE}};',
568
  ],
@@ -572,37 +575,37 @@ class Advanced_Data_Table extends Widget_Base
572
  $this->add_group_control(
573
  Group_Control_Border::get_type(),
574
  [
575
- 'name' => 'ea_adv_data_table_body_cell_border',
576
- 'label' => __('Cell Border', 'essential-addons-for-elementor-lite'),
577
  'fields_options' => [
578
  'border' => [
579
  'default' => 'solid',
580
  ],
581
- 'width' => [
582
  'default' => [
583
- 'unit' => 'px',
584
- 'top' => '1',
585
- 'right' => '1',
586
- 'bottom' => '1',
587
- 'left' => '1',
588
  'isLinked' => true,
589
  ],
590
  ],
591
- 'color' => [
592
  'default' => '#eeeeee',
593
  ],
594
  ],
595
- 'selector' => '{{WRAPPER}} td',
596
  ]
597
  );
598
 
599
  $this->add_control(
600
  'ea_adv_data_table_body_highlight',
601
  [
602
- 'label' => esc_html__('Highlight', 'essential-addons-for-elementor-lite'),
603
- 'type' => Controls_Manager::SELECT,
604
  'options' => [
605
- 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
606
  'f-col' => esc_html__('First Column', 'essential-addons-for-elementor-lite'),
607
  'l-col' => esc_html__('Last Column', 'essential-addons-for-elementor-lite'),
608
  'e-col' => esc_html__('Even Column', 'essential-addons-for-elementor-lite'),
@@ -618,11 +621,11 @@ class Advanced_Data_Table extends Widget_Base
618
  $this->add_control(
619
  'ea_adv_data_table_body_f_col_highlight_color',
620
  [
621
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
622
- 'type' => Controls_Manager::COLOR,
623
- 'default' => '#444444',
624
  'selectors' => [
625
- '{{WRAPPER}} tbody td:first-child' => 'color: {{VALUE}}',
626
  ],
627
  'condition' => [
628
  'ea_adv_data_table_body_highlight' => 'f-col',
@@ -633,11 +636,11 @@ class Advanced_Data_Table extends Widget_Base
633
  $this->add_control(
634
  'ea_adv_data_table_body_f_col_highlight_background',
635
  [
636
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
637
- 'type' => Controls_Manager::COLOR,
638
- 'default' => '#fbfbfb',
639
  'selectors' => [
640
- '{{WRAPPER}} tbody td:first-child' => 'background-color: {{VALUE}} !important',
641
  ],
642
  'condition' => [
643
  'ea_adv_data_table_body_highlight' => 'f-col',
@@ -649,11 +652,11 @@ class Advanced_Data_Table extends Widget_Base
649
  $this->add_control(
650
  'ea_adv_data_table_body_l_col_highlight_color',
651
  [
652
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
653
- 'type' => Controls_Manager::COLOR,
654
- 'default' => '#444444',
655
  'selectors' => [
656
- '{{WRAPPER}} tbody td:last-child' => 'color: {{VALUE}}',
657
  ],
658
  'condition' => [
659
  'ea_adv_data_table_body_highlight' => 'l-col',
@@ -664,11 +667,11 @@ class Advanced_Data_Table extends Widget_Base
664
  $this->add_control(
665
  'ea_adv_data_table_body_l_col_highlight_background',
666
  [
667
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
668
- 'type' => Controls_Manager::COLOR,
669
- 'default' => '#fbfbfb',
670
  'selectors' => [
671
- '{{WRAPPER}} tbody td:last-child' => 'background-color: {{VALUE}} !important',
672
  ],
673
  'condition' => [
674
  'ea_adv_data_table_body_highlight' => 'l-col',
@@ -680,11 +683,11 @@ class Advanced_Data_Table extends Widget_Base
680
  $this->add_control(
681
  'ea_adv_data_table_body_e_col_highlight_color',
682
  [
683
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
684
- 'type' => Controls_Manager::COLOR,
685
- 'default' => '#444444',
686
  'selectors' => [
687
- '{{WRAPPER}} tbody td:nth-child(even)' => 'color: {{VALUE}}',
688
  ],
689
  'condition' => [
690
  'ea_adv_data_table_body_highlight' => 'e-col',
@@ -695,11 +698,11 @@ class Advanced_Data_Table extends Widget_Base
695
  $this->add_control(
696
  'ea_adv_data_table_body_e_col_highlight_background',
697
  [
698
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
699
- 'type' => Controls_Manager::COLOR,
700
- 'default' => '#fbfbfb',
701
  'selectors' => [
702
- '{{WRAPPER}} tbody td:nth-child(even)' => 'background-color: {{VALUE}} !important',
703
  ],
704
  'condition' => [
705
  'ea_adv_data_table_body_highlight' => 'e-col',
@@ -711,11 +714,11 @@ class Advanced_Data_Table extends Widget_Base
711
  $this->add_control(
712
  'ea_adv_data_table_body_o_col_highlight_color',
713
  [
714
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
715
- 'type' => Controls_Manager::COLOR,
716
- 'default' => '#444444',
717
  'selectors' => [
718
- '{{WRAPPER}} tbody td:nth-child(odd)' => 'color: {{VALUE}}',
719
  ],
720
  'condition' => [
721
  'ea_adv_data_table_body_highlight' => 'o-col',
@@ -726,11 +729,11 @@ class Advanced_Data_Table extends Widget_Base
726
  $this->add_control(
727
  'ea_adv_data_table_body_o_col_highlight_background',
728
  [
729
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
730
- 'type' => Controls_Manager::COLOR,
731
- 'default' => '#fbfbfb',
732
  'selectors' => [
733
- '{{WRAPPER}} tbody td:nth-child(odd)' => 'background-color: {{VALUE}} !important',
734
  ],
735
  'condition' => [
736
  'ea_adv_data_table_body_highlight' => 'o-col',
@@ -742,11 +745,11 @@ class Advanced_Data_Table extends Widget_Base
742
  $this->add_control(
743
  'ea_adv_data_table_body_e_row_highlight_color',
744
  [
745
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
746
- 'type' => Controls_Manager::COLOR,
747
- 'default' => '#444444',
748
  'selectors' => [
749
- '{{WRAPPER}} tbody tr:nth-child(even)' => 'color: {{VALUE}}',
750
  ],
751
  'condition' => [
752
  'ea_adv_data_table_body_highlight' => 'e-row',
@@ -757,11 +760,11 @@ class Advanced_Data_Table extends Widget_Base
757
  $this->add_control(
758
  'ea_adv_data_table_body_e_row_highlight_background',
759
  [
760
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
761
- 'type' => Controls_Manager::COLOR,
762
- 'default' => '#fbfbfb',
763
  'selectors' => [
764
- '{{WRAPPER}} tbody tr:nth-child(even)' => 'background-color: {{VALUE}} !important',
765
  ],
766
  'condition' => [
767
  'ea_adv_data_table_body_highlight' => 'e-row',
@@ -773,11 +776,11 @@ class Advanced_Data_Table extends Widget_Base
773
  $this->add_control(
774
  'ea_adv_data_table_body_o_row_highlight_color',
775
  [
776
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
777
- 'type' => Controls_Manager::COLOR,
778
- 'default' => '#444444',
779
  'selectors' => [
780
- '{{WRAPPER}} tbody tr:nth-child(odd)' => 'color: {{VALUE}}',
781
  ],
782
  'condition' => [
783
  'ea_adv_data_table_body_highlight' => 'o-row',
@@ -788,11 +791,11 @@ class Advanced_Data_Table extends Widget_Base
788
  $this->add_control(
789
  'ea_adv_data_table_body_o_row_highlight_background',
790
  [
791
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
792
- 'type' => Controls_Manager::COLOR,
793
- 'default' => '#fbfbfb',
794
  'selectors' => [
795
- '{{WRAPPER}} tbody tr:nth-child(odd)' => 'background-color: {{VALUE}} !important',
796
  ],
797
  'condition' => [
798
  'ea_adv_data_table_body_highlight' => 'o-row',
@@ -803,18 +806,18 @@ class Advanced_Data_Table extends Widget_Base
803
  $this->add_responsive_control(
804
  'ea_adv_data_table_body_cell_padding',
805
  [
806
- 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
807
- 'type' => Controls_Manager::DIMENSIONS,
808
- 'size_units' => ['px'],
809
  'desktop_default' => [
810
- 'unit' => 'px',
811
- 'top' => '10',
812
- 'right' => '10',
813
- 'bottom' => '10',
814
- 'left' => '10',
815
  'isLinked' => true,
816
  ],
817
- 'selectors' => [
818
  '{{WRAPPER}} .ea-advanced-data-table td' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
819
  ],
820
  ]
@@ -825,8 +828,8 @@ class Advanced_Data_Table extends Widget_Base
825
  $this->start_controls_section(
826
  'ea_section_adv_data_table_style_search',
827
  [
828
- 'label' => __('Search', 'essential-addons-for-elementor-lite'),
829
- 'tab' => Controls_Manager::TAB_STYLE,
830
  'condition' => [
831
  'ea_adv_data_table_search' => 'yes',
832
  ],
@@ -836,26 +839,26 @@ class Advanced_Data_Table extends Widget_Base
836
  $this->add_control(
837
  'ea_adv_data_table_search_width',
838
  [
839
- 'label' => __('Width', 'essential-addons-for-elementor-lite'),
840
- 'type' => Controls_Manager::SLIDER,
841
  'size_units' => ['px', '%'],
842
- 'range' => [
843
  'px' => [
844
- 'min' => 100,
845
- 'max' => 1000,
846
  'step' => 1,
847
  ],
848
- '%' => [
849
- 'min' => 1,
850
- 'max' => 100,
851
  'step' => 1,
852
  ],
853
  ],
854
- 'default' => [
855
  'unit' => 'px',
856
  'size' => 200,
857
  ],
858
- 'selectors' => [
859
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'width: {{SIZE}}{{UNIT}}',
860
  ],
861
  ]
@@ -864,21 +867,21 @@ class Advanced_Data_Table extends Widget_Base
864
  $this->add_control(
865
  'ea_adv_data_table_search_height',
866
  [
867
- 'label' => __('Height', 'essential-addons-for-elementor-lite'),
868
- 'type' => Controls_Manager::SLIDER,
869
  'size_units' => ['px'],
870
- 'range' => [
871
  'px' => [
872
- 'min' => 10,
873
- 'max' => 100,
874
  'step' => 1,
875
  ],
876
  ],
877
- 'default' => [
878
  'unit' => 'px',
879
  'size' => 40,
880
  ],
881
- 'selectors' => [
882
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'height: {{SIZE}}{{UNIT}}',
883
  ],
884
  ]
@@ -887,10 +890,10 @@ class Advanced_Data_Table extends Widget_Base
887
  $this->add_responsive_control(
888
  'ea_adv_data_table_search_padding',
889
  [
890
- 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
891
- 'type' => Controls_Manager::DIMENSIONS,
892
  'size_units' => ['px'],
893
- 'selectors' => [
894
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
895
  ],
896
  ]
@@ -899,21 +902,21 @@ class Advanced_Data_Table extends Widget_Base
899
  $this->add_control(
900
  'ea_adv_data_table_search_margin',
901
  [
902
- 'label' => __('Margin Bottom', 'essential-addons-for-elementor-lite'),
903
- 'type' => Controls_Manager::SLIDER,
904
  'size_units' => ['px'],
905
- 'range' => [
906
  'px' => [
907
- 'min' => 0,
908
- 'max' => 100,
909
  'step' => 1,
910
  ],
911
  ],
912
- 'default' => [
913
  'unit' => 'px',
914
  'size' => 10,
915
  ],
916
- 'selectors' => [
917
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'margin-bottom: {{SIZE}}{{UNIT}}',
918
  ],
919
  ]
@@ -922,32 +925,32 @@ class Advanced_Data_Table extends Widget_Base
922
  $this->add_control(
923
  'ea_adv_data_table_search_alignment',
924
  [
925
- 'label' => esc_html__('Alignment', 'essential-addons-for-elementor-lite'),
926
- 'type' => Controls_Manager::CHOOSE,
927
  'label_block' => true,
928
- 'options' => [
929
- 'left' => [
930
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
931
- 'icon' => 'fa fa-align-left',
932
  ],
933
  'center' => [
934
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
935
- 'icon' => 'fa fa-align-center',
936
  ],
937
- 'right' => [
938
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
939
- 'icon' => 'fa fa-align-right',
940
  ],
941
  ],
942
- 'default' => 'right',
943
  ]
944
  );
945
 
946
  $this->add_group_control(
947
  Group_Control_Typography::get_type(),
948
  [
949
- 'name' => 'ea_adv_data_table_search_typography',
950
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
951
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-search',
952
  ]
953
  );
@@ -955,9 +958,9 @@ class Advanced_Data_Table extends Widget_Base
955
  $this->add_control(
956
  'ea_adv_data_table_search_color',
957
  [
958
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
959
- 'type' => Controls_Manager::COLOR,
960
- 'default' => '#666666',
961
  'selectors' => [
962
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'color: {{VALUE}};',
963
  ],
@@ -967,9 +970,9 @@ class Advanced_Data_Table extends Widget_Base
967
  $this->add_control(
968
  'ea_adv_data_table_search_background',
969
  [
970
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
971
- 'type' => Controls_Manager::COLOR,
972
- 'default' => '#ffffff',
973
  'selectors' => [
974
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'background-color: {{VALUE}};',
975
  ],
@@ -979,37 +982,37 @@ class Advanced_Data_Table extends Widget_Base
979
  $this->add_group_control(
980
  Group_Control_Border::get_type(),
981
  [
982
- 'name' => 'ea_adv_data_table_search_border',
983
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
984
  'fields_options' => [
985
  'border' => [
986
  'default' => 'solid',
987
  ],
988
- 'width' => [
989
  'default' => [
990
- 'unit' => 'px',
991
- 'top' => '1',
992
- 'right' => '1',
993
- 'bottom' => '1',
994
- 'left' => '1',
995
  'isLinked' => true,
996
  ],
997
  ],
998
- 'color' => [
999
  'default' => '#eeeeee',
1000
  ],
1001
  ],
1002
- 'selector' => '{{WRAPPER}} .ea-advanced-data-table-search',
1003
  ]
1004
  );
1005
 
1006
  $this->add_control(
1007
  'ea_adv_data_table_search_border_radius',
1008
  [
1009
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1010
- 'type' => Controls_Manager::DIMENSIONS,
1011
  'size_units' => ['px'],
1012
- 'selectors' => [
1013
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1014
  ],
1015
  ]
@@ -1020,8 +1023,8 @@ class Advanced_Data_Table extends Widget_Base
1020
  $this->start_controls_section(
1021
  'ea_section_adv_data_table_style_pagination',
1022
  [
1023
- 'label' => __('Pagination', 'essential-addons-for-elementor-lite'),
1024
- 'tab' => Controls_Manager::TAB_STYLE,
1025
  'condition' => [
1026
  'ea_adv_data_table_pagination' => 'yes',
1027
  ],
@@ -1031,18 +1034,18 @@ class Advanced_Data_Table extends Widget_Base
1031
  $this->add_responsive_control(
1032
  'ea_adv_data_table_pagination_select_width',
1033
  [
1034
- 'label' => __('Width', 'essential-addons-for-elementor-lite'),
1035
- 'type' => Controls_Manager::SLIDER,
1036
- 'size_units' => ['px', '%'],
1037
- 'range' => [
1038
  'px' => [
1039
- 'min' => 100,
1040
- 'max' => 10000,
1041
  'step' => 1,
1042
  ],
1043
- '%' => [
1044
- 'min' => 10,
1045
- 'max' => 100,
1046
  'step' => 1,
1047
  ],
1048
  ],
@@ -1050,18 +1053,18 @@ class Advanced_Data_Table extends Widget_Base
1050
  'unit' => 'px',
1051
  'size' => 100,
1052
  ],
1053
- 'tablet_default' => [
1054
  'unit' => 'px',
1055
  'size' => 100,
1056
  ],
1057
- 'mobile_default' => [
1058
  'unit' => '%',
1059
  'size' => 100,
1060
  ],
1061
- 'selectors' => [
1062
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'width: {{SIZE}}{{UNIT}}',
1063
  ],
1064
- 'condition' => [
1065
  'ea_adv_data_table_pagination_type' => 'select',
1066
  ],
1067
  ]
@@ -1070,23 +1073,23 @@ class Advanced_Data_Table extends Widget_Base
1070
  $this->add_control(
1071
  'ea_adv_data_table_pagination_alignment',
1072
  [
1073
- 'label' => esc_html__('Alignment', 'essential-addons-for-elementor-lite'),
1074
- 'type' => Controls_Manager::CHOOSE,
1075
- 'options' => [
1076
- 'left' => [
1077
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
1078
- 'icon' => 'fa fa-align-left',
1079
  ],
1080
  'center' => [
1081
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
1082
- 'icon' => 'fa fa-align-center',
1083
  ],
1084
- 'right' => [
1085
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
1086
- 'icon' => 'fa fa-align-right',
1087
  ],
1088
  ],
1089
- 'default' => 'left',
1090
  'selectors' => [
1091
  '{{WRAPPER}} .ea-advanced-data-table-pagination' => 'text-align: {{VALUE}};',
1092
  ],
@@ -1096,8 +1099,8 @@ class Advanced_Data_Table extends Widget_Base
1096
  $this->add_group_control(
1097
  Group_Control_Typography::get_type(),
1098
  [
1099
- 'name' => 'ea_adv_data_table_pagination_typography',
1100
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1101
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a, {{WRAPPER}} .ea-advanced-data-table-pagination select',
1102
  ]
1103
  );
@@ -1105,19 +1108,19 @@ class Advanced_Data_Table extends Widget_Base
1105
  $this->add_responsive_control(
1106
  'ea_adv_data_table_pagination_padding',
1107
  [
1108
- 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
1109
- 'type' => Controls_Manager::DIMENSIONS,
1110
- 'size_units' => ['px'],
1111
  'desktop_default' => [
1112
- 'unit' => 'px',
1113
- 'top' => '5',
1114
- 'right' => '15',
1115
- 'bottom' => '5',
1116
- 'left' => '15',
1117
  'isLinked' => false,
1118
  ],
1119
- 'selectors' => [
1120
- '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1121
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1122
  ],
1123
  ]
@@ -1126,19 +1129,19 @@ class Advanced_Data_Table extends Widget_Base
1126
  $this->add_responsive_control(
1127
  'ea_adv_data_table_pagination_margin',
1128
  [
1129
- 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
1130
- 'type' => Controls_Manager::DIMENSIONS,
1131
- 'size_units' => ['px'],
1132
  'desktop_default' => [
1133
- 'unit' => 'px',
1134
- 'top' => '5',
1135
- 'right' => '5',
1136
- 'bottom' => '0',
1137
- 'left' => '0',
1138
  'isLinked' => false,
1139
  ],
1140
- 'selectors' => [
1141
- '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1142
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1143
  ],
1144
  ]
@@ -1151,11 +1154,11 @@ class Advanced_Data_Table extends Widget_Base
1151
  $this->add_control(
1152
  'ea_adv_data_table_pagination_color',
1153
  [
1154
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1155
- 'type' => Controls_Manager::COLOR,
1156
- 'default' => '#666666',
1157
  'selectors' => [
1158
- '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'color: {{VALUE}};',
1159
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'color: {{VALUE}};',
1160
  ],
1161
  ]
@@ -1164,11 +1167,11 @@ class Advanced_Data_Table extends Widget_Base
1164
  $this->add_control(
1165
  'ea_adv_data_table_pagination_background',
1166
  [
1167
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1168
- 'type' => Controls_Manager::COLOR,
1169
- 'default' => '#ffffff',
1170
  'selectors' => [
1171
- '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'background-color: {{VALUE}};',
1172
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'background-color: {{VALUE}};',
1173
  ],
1174
  ]
@@ -1177,38 +1180,38 @@ class Advanced_Data_Table extends Widget_Base
1177
  $this->add_group_control(
1178
  Group_Control_Border::get_type(),
1179
  [
1180
- 'name' => 'ea_adv_data_table_pagination_border',
1181
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1182
  'fields_options' => [
1183
  'border' => [
1184
  'default' => 'solid',
1185
  ],
1186
- 'width' => [
1187
  'default' => [
1188
- 'unit' => 'px',
1189
- 'top' => '1',
1190
- 'right' => '1',
1191
- 'bottom' => '1',
1192
- 'left' => '1',
1193
  'isLinked' => true,
1194
  ],
1195
  ],
1196
- 'color' => [
1197
  'default' => '#eeeeee',
1198
  ],
1199
  ],
1200
- 'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a, {{WRAPPER}} .ea-advanced-data-table-pagination select',
1201
  ]
1202
  );
1203
 
1204
  $this->add_control(
1205
  'ea_adv_data_table_pagination_border_radius',
1206
  [
1207
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1208
- 'type' => Controls_Manager::DIMENSIONS,
1209
  'size_units' => ['px'],
1210
- 'selectors' => [
1211
- '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1212
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1213
  ],
1214
  ]
@@ -1221,13 +1224,13 @@ class Advanced_Data_Table extends Widget_Base
1221
  $this->add_control(
1222
  'ea_adv_data_table_pagination_color_hover',
1223
  [
1224
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1225
- 'type' => Controls_Manager::COLOR,
1226
- 'default' => '#666666',
1227
  'selectors' => [
1228
- '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'color: {{VALUE}};',
1229
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'color: {{VALUE}};',
1230
- '{{WRAPPER}} .ea-advanced-data-table-pagination select:hover' => 'color: {{VALUE}};',
1231
  ],
1232
  ]
1233
  );
@@ -1235,13 +1238,13 @@ class Advanced_Data_Table extends Widget_Base
1235
  $this->add_control(
1236
  'ea_adv_data_table_pagination_background_hover',
1237
  [
1238
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1239
- 'type' => Controls_Manager::COLOR,
1240
- 'default' => '#fafafa',
1241
  'selectors' => [
1242
- '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'background-color: {{VALUE}};',
1243
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'background-color: {{VALUE}};',
1244
- '{{WRAPPER}} .ea-advanced-data-table-pagination select:hover' => 'background-color: {{VALUE}};',
1245
  ],
1246
  ]
1247
  );
@@ -1249,40 +1252,40 @@ class Advanced_Data_Table extends Widget_Base
1249
  $this->add_group_control(
1250
  Group_Control_Border::get_type(),
1251
  [
1252
- 'name' => 'ea_adv_data_table_pagination_border_hover',
1253
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1254
  'fields_options' => [
1255
  'border' => [
1256
  'default' => 'solid',
1257
  ],
1258
- 'width' => [
1259
  'default' => [
1260
- 'unit' => 'px',
1261
- 'top' => '1',
1262
- 'right' => '1',
1263
- 'bottom' => '1',
1264
- 'left' => '1',
1265
  'isLinked' => true,
1266
  ],
1267
  ],
1268
- 'color' => [
1269
  'default' => '#eeeeee',
1270
  ],
1271
  ],
1272
- 'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover, {{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current, {{WRAPPER}} .ea-advanced-data-table-pagination select:hover',
1273
  ]
1274
  );
1275
 
1276
  $this->add_control(
1277
  'ea_adv_data_table_pagination_border_radius_hover',
1278
  [
1279
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1280
- 'type' => Controls_Manager::DIMENSIONS,
1281
  'size_units' => ['px'],
1282
- 'selectors' => [
1283
- '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1284
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1285
- '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1286
  ],
1287
  ]
1288
  );
@@ -1297,15 +1300,15 @@ class Advanced_Data_Table extends Widget_Base
1297
  'ea_section_adv_data_table_style_button',
1298
  [
1299
  'label' => __('Button', 'essential-addons-for-elementor-lite'),
1300
- 'tab' => Controls_Manager::TAB_STYLE,
1301
  ]
1302
  );
1303
 
1304
  $this->add_group_control(
1305
  Group_Control_Typography::get_type(),
1306
  [
1307
- 'name' => 'ea_adv_data_table_button_typography',
1308
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1309
  'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1310
  ]
1311
  );
@@ -1317,12 +1320,12 @@ class Advanced_Data_Table extends Widget_Base
1317
  $this->add_control(
1318
  'ea_adv_data_table_button_color',
1319
  [
1320
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1321
- 'type' => Controls_Manager::COLOR,
1322
- 'default' => '',
1323
  'selectors' => [
1324
- '{{WRAPPER}} td button' => 'color: {{VALUE}};',
1325
- '{{WRAPPER}} td .button' => 'color: {{VALUE}};',
1326
  ],
1327
  ]
1328
  );
@@ -1330,12 +1333,12 @@ class Advanced_Data_Table extends Widget_Base
1330
  $this->add_control(
1331
  'ea_adv_data_table_button_background_color',
1332
  [
1333
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1334
- 'type' => Controls_Manager::COLOR,
1335
- 'default' => '',
1336
  'selectors' => [
1337
- '{{WRAPPER}} td button' => 'background-color: {{VALUE}};',
1338
- '{{WRAPPER}} td .button' => 'background-color: {{VALUE}};',
1339
  ],
1340
  ]
1341
  );
@@ -1347,12 +1350,12 @@ class Advanced_Data_Table extends Widget_Base
1347
  $this->add_control(
1348
  'ea_adv_data_table_button_color_hover',
1349
  [
1350
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1351
- 'type' => Controls_Manager::COLOR,
1352
- 'default' => '',
1353
  'selectors' => [
1354
- '{{WRAPPER}} td button:hover' => 'color: {{VALUE}};',
1355
- '{{WRAPPER}} td .button:hover' => 'color: {{VALUE}};',
1356
  ],
1357
  ]
1358
  );
@@ -1360,12 +1363,12 @@ class Advanced_Data_Table extends Widget_Base
1360
  $this->add_control(
1361
  'ea_adv_data_table_button_background_color_hover',
1362
  [
1363
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1364
- 'type' => Controls_Manager::COLOR,
1365
- 'default' => '',
1366
  'selectors' => [
1367
- '{{WRAPPER}} td button:hover' => 'background-color: {{VALUE}};',
1368
- '{{WRAPPER}} td .button:hover' => 'background-color: {{VALUE}};',
1369
  ],
1370
  ]
1371
  );
@@ -1377,35 +1380,35 @@ class Advanced_Data_Table extends Widget_Base
1377
  $this->add_group_control(
1378
  Group_Control_Border::get_type(),
1379
  [
1380
- 'name' => 'ea_adv_data_table_button_border',
1381
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1382
  'fields_options' => [
1383
  'border' => [
1384
  'default' => '',
1385
  ],
1386
- 'width' => [
1387
  'default' => [
1388
- 'unit' => 'px',
1389
  'isLinked' => true,
1390
  ],
1391
  ],
1392
- 'color' => [
1393
  'default' => '',
1394
  ],
1395
  ],
1396
- 'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1397
  ]
1398
  );
1399
 
1400
  $this->add_control(
1401
  'ea_adv_data_table_button_border_radius',
1402
  [
1403
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1404
- 'type' => Controls_Manager::DIMENSIONS,
1405
  'size_units' => ['px'],
1406
- 'selectors' => [
1407
- '{{WRAPPER}} td button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1408
- '{{WRAPPER}} td .button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1409
  ],
1410
  ]
1411
  );
@@ -1413,8 +1416,8 @@ class Advanced_Data_Table extends Widget_Base
1413
  $this->add_group_control(
1414
  Group_Control_Box_Shadow::get_type(),
1415
  [
1416
- 'name' => 'ea_adv_data_table_button_box_shadow',
1417
- 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1418
  'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1419
  ]
1420
  );
@@ -1422,12 +1425,12 @@ class Advanced_Data_Table extends Widget_Base
1422
  $this->add_control(
1423
  'ea_adv_data_table_button_border_padding',
1424
  [
1425
- 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
1426
- 'type' => Controls_Manager::DIMENSIONS,
1427
  'size_units' => ['px'],
1428
- 'selectors' => [
1429
- '{{WRAPPER}} td button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1430
- '{{WRAPPER}} td .button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1431
  ],
1432
  ]
1433
  );
@@ -1458,12 +1461,12 @@ class Advanced_Data_Table extends Widget_Base
1458
  }
1459
 
1460
  $this->add_render_attribute('ea-adv-data-table-wrap', [
1461
- 'class' => "ea-advanced-data-table-wrap",
1462
  'data-id' => $this->get_id(),
1463
  ]);
1464
 
1465
  $this->add_render_attribute('ea-adv-data-table', [
1466
- 'class' => "ea-advanced-data-table ea-advanced-data-table-{$settings['ea_adv_data_table_source']} ea-advanced-data-table-{$this->get_id()}",
1467
  'data-id' => $this->get_id(),
1468
  ]);
1469
 
@@ -1481,7 +1484,7 @@ class Advanced_Data_Table extends Widget_Base
1481
 
1482
  if ($settings['ea_adv_data_table_pagination'] == 'yes') {
1483
  $this->add_render_attribute('ea-adv-data-table', [
1484
- 'class' => "ea-advanced-data-table-paginated",
1485
  'data-items-per-page' => $settings['ea_adv_data_table_items_per_page'],
1486
  ]);
1487
  }
@@ -1498,13 +1501,13 @@ class Advanced_Data_Table extends Widget_Base
1498
 
1499
  echo '<div ' . $this->get_render_attribute_string('ea-adv-data-table-wrap') . '>';
1500
 
1501
- if ($table_html = $this->table_html()) {
1502
  if ($settings['ea_adv_data_table_search'] == 'yes') {
1503
  echo '<div ' . $this->get_render_attribute_string('ea-adv-data-table-search-wrap') . '><input type="search" placeholder="' . $settings['ea_adv_data_table_search_placeholder'] . '" class="ea-advanced-data-table-search"></div>';
1504
  }
1505
 
1506
  echo '<div class="ea-advanced-data-table-wrap-inner">
1507
- <table ' . $this->get_render_attribute_string('ea-adv-data-table') . '>' . $this->table_html() . '</table>
1508
  </div>';
1509
 
1510
  if ($settings['ea_adv_data_table_pagination'] == 'yes') {
@@ -1535,21 +1538,72 @@ class Advanced_Data_Table extends Widget_Base
1535
  echo '</div>';
1536
  }
1537
 
1538
- protected function table_html()
1539
  {
1540
- $settings = $this->get_parsed_dynamic_settings();
1541
-
1542
- if (in_array($settings['ea_adv_data_table_source'], ['database', 'remote'])) {
1543
- return apply_filters('eael/advanced-data-table/table_html/database', $settings);
1544
- } else if ($settings['ea_adv_data_table_source'] == 'google') {
1545
- return apply_filters('eael/advanced-data-table/table_html/integration/google_sheets', $settings);
1546
- } else if ($settings['ea_adv_data_table_source'] == 'tablepress') {
1547
- return apply_filters('eael/advanced-data-table/table_html/integration/tablepress', $settings);
1548
  } else if ($settings['ea_adv_data_table_source'] == 'ninja') {
1549
- return apply_filters('eael/advanced-data-table/table_html/integration/ninja', $settings);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1550
  }
1551
 
1552
- return $settings['ea_adv_data_table_static_html'];
1553
  }
1554
 
1555
  }
76
  $this->add_control(
77
  'ea_adv_data_table_source',
78
  [
79
+ 'label' => esc_html__('Source', 'essential-addons-for-elementor-lite'),
80
+ 'type' => Controls_Manager::SELECT,
81
  'options' => call_user_func(function () {
82
+ $source = [];
83
  $source['static'] = __('Static Data', 'essential-addons-for-elementor-lite');
84
 
85
  if (apply_filters('eael/pro_enabled', false)) {
86
+ $source['database'] = __('Database', 'essential-addons-for-elementor-lite');
87
+ $source['remote'] = __('Remote Database', 'essential-addons-for-elementor-lite');
88
+ $source['google'] = __('Google Sheets', 'essential-addons-for-elementor-lite');
89
  $source['tablepress'] = __('TablePress', 'essential-addons-for-elementor-lite');
90
  } else {
91
+ $source['database'] = __('Database(PRO)', 'essential-addons-for-elementor-lite');
92
+ $source['remote'] = __('Remote Database(PRO)', 'essential-addons-for-elementor-lite');
93
+ $source['google'] = __('Google Sheets(PRO)', 'essential-addons-for-elementor-lite');
94
  $source['tablepress'] = __('TablePress(PRO)', 'essential-addons-for-elementor-lite');
95
  }
96
 
102
  ]
103
  );
104
 
105
+ // TODO: RM
106
  do_action('eael/advanced-data-table/source/control', $this);
107
 
108
+ do_action('eael/controls/advanced-data-table/source', $this);
109
+
110
  $this->add_control(
111
  'ea_adv_data_table_static_html',
112
  [
113
+ 'type' => Controls_Manager::HIDDEN,
114
  'default' => '<thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td><td></td></tr></tbody>',
115
  ]
116
  );
128
  $this->add_control(
129
  'ea_adv_data_table_sort',
130
  [
131
+ 'label' => esc_html__('Sort', 'essential-addons-for-elementor-lite'),
132
+ 'type' => Controls_Manager::SWITCHER,
133
  'return_value' => 'yes',
134
+ 'default' => 'yes',
135
  ]
136
  );
137
 
138
  $this->add_control(
139
  'ea_adv_data_table_search',
140
  [
141
+ 'label' => esc_html__('Search', 'essential-addons-for-elementor-lite'),
142
+ 'type' => Controls_Manager::SWITCHER,
143
  'return_value' => 'yes',
144
+ 'default' => 'yes',
145
  ]
146
  );
147
 
148
  $this->add_control(
149
  'ea_adv_data_table_search_placeholder',
150
  [
151
+ 'label' => __('Placeholder', 'essential-addons-for-elementor-lite'),
152
+ 'type' => Controls_Manager::TEXT,
153
+ 'default' => __('Search', 'essential-addons-for-elementor-lite'),
154
  'condition' => [
155
  'ea_adv_data_table_search' => 'yes',
156
  ],
160
  $this->add_control(
161
  'ea_adv_data_table_pagination',
162
  [
163
+ 'label' => esc_html__('Pagination', 'essential-addons-for-elementor-lite'),
164
+ 'type' => Controls_Manager::SWITCHER,
165
  'return_value' => 'yes',
166
+ 'default' => 'yes',
167
  ]
168
  );
169
 
170
  $this->add_control(
171
  'ea_adv_data_table_pagination_type',
172
  [
173
+ 'label' => esc_html__('Pagination Type', 'essential-addons-for-elementor-lite'),
174
+ 'type' => Controls_Manager::SELECT,
175
+ 'options' => [
176
  'button' => esc_html__('Button', 'essential-addons-for-elementor-lite'),
177
  'select' => esc_html__('Select', 'essential-addons-for-elementor-lite'),
178
  ],
179
+ 'default' => 'button',
180
  'condition' => [
181
  'ea_adv_data_table_pagination' => 'yes',
182
  ],
186
  $this->add_control(
187
  'ea_adv_data_table_items_per_page',
188
  [
189
+ 'label' => esc_html__('Rows Per Page', 'essential-addons-for-elementor-lite'),
190
+ 'type' => Controls_Manager::NUMBER,
191
+ 'min' => 1,
192
+ 'default' => 10,
193
  'condition' => [
194
  'ea_adv_data_table_pagination' => 'yes',
195
  ],
199
  $this->add_control(
200
  'eael_global_warning_text',
201
  [
202
+ 'type' => Controls_Manager::RAW_HTML,
203
+ 'raw' => __('Note: Pagination will be applied on Live Preview only.', 'essential-addons-for-elementor-lite'),
204
  'content_classes' => 'eael-warning',
205
+ 'condition' => [
206
  'ea_adv_data_table_pagination' => 'yes',
207
  ],
208
  ]
222
  'ea_adv_data_table_export_csv_button',
223
  [
224
  'label' => __('Export table as CSV file', 'essential-addons-for-elementor-lite'),
225
+ 'type' => Controls_Manager::BUTTON,
226
+ 'text' => __('Export', 'essential-addons-for-elementor-lite'),
227
  'event' => 'ea:advTable:export',
228
  ]
229
  );
231
  $this->add_control(
232
  'heading-import',
233
  [
234
+ 'label' => __('Import', 'essential-addons-for-elementor-lite'),
235
+ 'type' => Controls_Manager::HEADING,
236
  'condition' => [
237
  'ea_adv_data_table_source' => 'static',
238
  ],
242
  $this->add_control(
243
  'ea_adv_data_table_csv_string',
244
  [
245
+ 'type' => Controls_Manager::RAW_HTML,
246
+ 'raw' => '<textarea class="ea_adv_table_csv_string" rows="5" placeholder="Paste CSV string"></textarea><label for="ea_adv_table_csv_string_table"><input type="checkbox" id="ea_adv_table_csv_string_table" class="ea_adv_table_csv_string_table"> Import first row as Header</label>',
247
  'condition' => [
248
  'ea_adv_data_table_source' => 'static',
249
  ],
253
  $this->add_control(
254
  'ea_adv_data_table_import_csv_button',
255
  [
256
+ 'label' => __('Import', 'essential-addons-for-elementor-lite'),
257
+ 'type' => Controls_Manager::BUTTON,
258
  'show_label' => false,
259
+ 'text' => __('Import', 'essential-addons-for-elementor-lite'),
260
+ 'event' => 'ea:advTable:import',
261
+ 'condition' => [
262
  'ea_adv_data_table_source' => 'static',
263
  ],
264
  ]
271
  'ea_section_adv_data_table_style_table',
272
  [
273
  'label' => __('Table', 'essential-addons-for-elementor-lite'),
274
+ 'tab' => Controls_Manager::TAB_STYLE,
275
  ]
276
  );
277
 
278
  $this->add_responsive_control(
279
  'ea_adv_data_table_width',
280
  [
281
+ 'label' => __('Width', 'essential-addons-for-elementor-lite'),
282
+ 'type' => Controls_Manager::SLIDER,
283
+ 'size_units' => ['px', '%'],
284
+ 'range' => [
285
  'px' => [
286
+ 'min' => 100,
287
+ 'max' => 10000,
288
  'step' => 1,
289
  ],
290
+ '%' => [
291
+ 'min' => 10,
292
+ 'max' => 100,
293
  'step' => 1,
294
  ],
295
  ],
297
  'unit' => '%',
298
  'size' => 100,
299
  ],
300
+ 'tablet_default' => [
301
  'unit' => '%',
302
  'size' => 100,
303
  ],
304
+ 'mobile_default' => [
305
  'unit' => '%',
306
  'size' => 100,
307
  ],
308
+ 'selectors' => [
309
  '{{WRAPPER}} .ea-advanced-data-table' => 'width: {{SIZE}}{{UNIT}}',
310
  ],
311
  ]
314
  $this->add_group_control(
315
  Group_Control_Border::get_type(),
316
  [
317
+ 'name' => 'ea_adv_data_table_border',
318
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
319
  'fields_options' => [
320
  'border' => [
321
  'default' => 'solid',
322
  ],
323
+ 'width' => [
324
  'default' => [
325
+ 'unit' => 'px',
326
+ 'top' => '1',
327
+ 'right' => '1',
328
+ 'bottom' => '1',
329
+ 'left' => '1',
330
  'isLinked' => true,
331
  ],
332
  ],
333
+ 'color' => [
334
  'default' => '#eeeeee',
335
  ],
336
  ],
337
+ 'selector' => '{{WRAPPER}} .ea-advanced-data-table',
338
  ]
339
  );
340
 
341
  $this->add_control(
342
  'ea_adv_data_table_border_radius',
343
  [
344
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
345
+ 'type' => Controls_Manager::DIMENSIONS,
346
  'size_units' => ['px'],
347
+ 'selectors' => [
348
  '{{WRAPPER}} .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
349
  ],
350
  ]
353
  $this->add_group_control(
354
  Group_Control_Box_Shadow::get_type(),
355
  [
356
+ 'name' => 'ea_adv_data_table_width_box_shadow',
357
+ 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
358
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-wrap .ea-advanced-data-table-wrap-inner',
359
  ]
360
  );
365
  'ea_section_adv_data_table_style_head',
366
  [
367
  'label' => __('Head', 'essential-addons-for-elementor-lite'),
368
+ 'tab' => Controls_Manager::TAB_STYLE,
369
  ]
370
  );
371
 
372
  $this->add_group_control(
373
  Group_Control_Typography::get_type(),
374
  [
375
+ 'name' => 'ea_adv_data_table_head_typography',
376
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
377
  'selector' => '{{WRAPPER}} th',
378
  ]
379
  );
381
  $this->add_control(
382
  'ea_adv_data_table_head_horizontal_alignment',
383
  [
384
+ 'label' => esc_html__('Text Alignment', 'essential-addons-for-elementor-lite'),
385
+ 'type' => Controls_Manager::CHOOSE,
386
+ 'options' => [
387
+ 'left' => [
388
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
389
+ 'icon' => 'fa fa-align-left',
390
  ],
391
  'center' => [
392
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
393
+ 'icon' => 'fa fa-align-center',
394
  ],
395
+ 'right' => [
396
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
397
+ 'icon' => 'fa fa-align-right',
398
  ],
399
  ],
400
+ 'default' => 'left',
401
  'selectors' => [
402
+ '{{WRAPPER}} th' => 'text-align: {{VALUE}};',
403
  '{{WRAPPER}} th .ql-editor' => 'text-align: {{VALUE}};',
404
  ],
405
  ]
408
  $this->add_control(
409
  'ea_adv_data_table_head_color',
410
  [
411
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
412
+ 'type' => Controls_Manager::COLOR,
413
+ 'default' => '#444444',
414
  'selectors' => [
415
+ '{{WRAPPER}} th' => 'color: {{VALUE}};',
416
+ '{{WRAPPER}} th:before' => 'border-bottom-color: {{VALUE}};',
417
+ '{{WRAPPER}} th:after' => 'border-top-color: {{VALUE}};',
418
  ],
419
  ]
420
  );
422
  $this->add_control(
423
  'ea_adv_data_table_head_background',
424
  [
425
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
426
+ 'type' => Controls_Manager::COLOR,
427
+ 'default' => '#fbfbfb',
428
  'selectors' => [
429
  '{{WRAPPER}} thead' => 'background-color: {{VALUE}};',
430
  ],
434
  $this->add_group_control(
435
  Group_Control_Border::get_type(),
436
  [
437
+ 'name' => 'ea_adv_data_table_head_cell_border',
438
+ 'label' => __('Cell Border', 'essential-addons-for-elementor-lite'),
439
  'fields_options' => [
440
  'border' => [
441
  'default' => 'solid',
442
  ],
443
+ 'width' => [
444
  'default' => [
445
+ 'unit' => 'px',
446
+ 'top' => '1',
447
+ 'right' => '1',
448
+ 'bottom' => '1',
449
+ 'left' => '1',
450
  'isLinked' => true,
451
  ],
452
  ],
453
+ 'color' => [
454
  'default' => '#eeeeee',
455
  ],
456
  ],
457
+ 'selector' => '{{WRAPPER}} th',
458
  ]
459
  );
460
 
461
  $this->add_responsive_control(
462
  'ea_adv_data_table_head_cell_padding',
463
  [
464
+ 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
465
+ 'type' => Controls_Manager::DIMENSIONS,
466
+ 'size_units' => ['px'],
467
  'desktop_default' => [
468
+ 'unit' => 'px',
469
+ 'top' => '10',
470
+ 'right' => '10',
471
+ 'bottom' => '10',
472
+ 'left' => '10',
473
  'isLinked' => true,
474
  ],
475
+ 'selectors' => [
476
  '{{WRAPPER}} .ea-advanced-data-table th' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
477
  ],
478
  ]
484
  'ea_section_adv_data_table_style_body',
485
  [
486
  'label' => __('Body', 'essential-addons-for-elementor-lite'),
487
+ 'tab' => Controls_Manager::TAB_STYLE,
488
  ]
489
  );
490
 
491
  $this->add_group_control(
492
  Group_Control_Typography::get_type(),
493
  [
494
+ 'name' => 'ea_adv_data_table_body_typography',
495
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
496
  'selector' => '{{WRAPPER}} td',
497
  ]
498
  );
500
  $this->add_control(
501
  'ea_adv_data_table_body_horizontal_alignment',
502
  [
503
+ 'label' => esc_html__('Text Alignment', 'essential-addons-for-elementor-lite'),
504
+ 'type' => Controls_Manager::CHOOSE,
505
+ 'options' => [
506
+ 'left' => [
507
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
508
+ 'icon' => 'fa fa-align-left',
509
  ],
510
  'center' => [
511
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
512
+ 'icon' => 'fa fa-align-center',
513
  ],
514
+ 'right' => [
515
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
516
+ 'icon' => 'fa fa-align-right',
517
  ],
518
  ],
519
+ 'default' => 'left',
520
  'selectors' => [
521
+ '{{WRAPPER}} td' => 'text-align: {{VALUE}};',
522
  '{{WRAPPER}} td .ql-editor' => 'text-align: {{VALUE}};',
523
  ],
524
  ]
527
  $this->add_control(
528
  'ea_adv_data_table_body_color',
529
  [
530
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
531
+ 'type' => Controls_Manager::COLOR,
532
+ 'default' => '#666666',
533
  'selectors' => [
534
+ '{{WRAPPER}} td' => 'color: {{VALUE}};',
535
  ],
536
  ]
537
  );
539
  $this->add_control(
540
  'ea_adv_data_table_body_link_color',
541
  [
542
+ 'label' => __('Link Color', 'essential-addons-for-elementor-lite'),
543
+ 'type' => Controls_Manager::COLOR,
544
+ 'default' => '',
545
  'selectors' => [
546
+ '{{WRAPPER}} td a' => 'color: {{VALUE}};',
547
  ],
548
  ]
549
  );
551
  $this->add_control(
552
  'ea_adv_data_table_body_link_hovercolor',
553
  [
554
+ 'label' => __('Link Hover Color', 'essential-addons-for-elementor-lite'),
555
+ 'type' => Controls_Manager::COLOR,
556
+ 'default' => '',
557
  'selectors' => [
558
+ '{{WRAPPER}} td a:hover' => 'color: {{VALUE}};',
559
  ],
560
  ]
561
  );
563
  $this->add_control(
564
  'ea_adv_data_table_body_background',
565
  [
566
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
567
+ 'type' => Controls_Manager::COLOR,
568
+ 'default' => '#ffffff',
569
  'selectors' => [
570
  '{{WRAPPER}} tbody' => 'background-color: {{VALUE}};',
571
  ],
575
  $this->add_group_control(
576
  Group_Control_Border::get_type(),
577
  [
578
+ 'name' => 'ea_adv_data_table_body_cell_border',
579
+ 'label' => __('Cell Border', 'essential-addons-for-elementor-lite'),
580
  'fields_options' => [
581
  'border' => [
582
  'default' => 'solid',
583
  ],
584
+ 'width' => [
585
  'default' => [
586
+ 'unit' => 'px',
587
+ 'top' => '1',
588
+ 'right' => '1',
589
+ 'bottom' => '1',
590
+ 'left' => '1',
591
  'isLinked' => true,
592
  ],
593
  ],
594
+ 'color' => [
595
  'default' => '#eeeeee',
596
  ],
597
  ],
598
+ 'selector' => '{{WRAPPER}} td',
599
  ]
600
  );
601
 
602
  $this->add_control(
603
  'ea_adv_data_table_body_highlight',
604
  [
605
+ 'label' => esc_html__('Highlight', 'essential-addons-for-elementor-lite'),
606
+ 'type' => Controls_Manager::SELECT,
607
  'options' => [
608
+ 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
609
  'f-col' => esc_html__('First Column', 'essential-addons-for-elementor-lite'),
610
  'l-col' => esc_html__('Last Column', 'essential-addons-for-elementor-lite'),
611
  'e-col' => esc_html__('Even Column', 'essential-addons-for-elementor-lite'),
621
  $this->add_control(
622
  'ea_adv_data_table_body_f_col_highlight_color',
623
  [
624
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
625
+ 'type' => Controls_Manager::COLOR,
626
+ 'default' => '#444444',
627
  'selectors' => [
628
+ '{{WRAPPER}} tbody td:first-child' => 'color: {{VALUE}}',
629
  ],
630
  'condition' => [
631
  'ea_adv_data_table_body_highlight' => 'f-col',
636
  $this->add_control(
637
  'ea_adv_data_table_body_f_col_highlight_background',
638
  [
639
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
640
+ 'type' => Controls_Manager::COLOR,
641
+ 'default' => '#fbfbfb',
642
  'selectors' => [
643
+ '{{WRAPPER}} tbody td:first-child' => 'background-color: {{VALUE}} !important',
644
  ],
645
  'condition' => [
646
  'ea_adv_data_table_body_highlight' => 'f-col',
652
  $this->add_control(
653
  'ea_adv_data_table_body_l_col_highlight_color',
654
  [
655
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
656
+ 'type' => Controls_Manager::COLOR,
657
+ 'default' => '#444444',
658
  'selectors' => [
659
+ '{{WRAPPER}} tbody td:last-child' => 'color: {{VALUE}}',
660
  ],
661
  'condition' => [
662
  'ea_adv_data_table_body_highlight' => 'l-col',
667
  $this->add_control(
668
  'ea_adv_data_table_body_l_col_highlight_background',
669
  [
670
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
671
+ 'type' => Controls_Manager::COLOR,
672
+ 'default' => '#fbfbfb',
673
  'selectors' => [
674
+ '{{WRAPPER}} tbody td:last-child' => 'background-color: {{VALUE}} !important',
675
  ],
676
  'condition' => [
677
  'ea_adv_data_table_body_highlight' => 'l-col',
683
  $this->add_control(
684
  'ea_adv_data_table_body_e_col_highlight_color',
685
  [
686
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
687
+ 'type' => Controls_Manager::COLOR,
688
+ 'default' => '#444444',
689
  'selectors' => [
690
+ '{{WRAPPER}} tbody td:nth-child(even)' => 'color: {{VALUE}}',
691
  ],
692
  'condition' => [
693
  'ea_adv_data_table_body_highlight' => 'e-col',
698
  $this->add_control(
699
  'ea_adv_data_table_body_e_col_highlight_background',
700
  [
701
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
702
+ 'type' => Controls_Manager::COLOR,
703
+ 'default' => '#fbfbfb',
704
  'selectors' => [
705
+ '{{WRAPPER}} tbody td:nth-child(even)' => 'background-color: {{VALUE}} !important',
706
  ],
707
  'condition' => [
708
  'ea_adv_data_table_body_highlight' => 'e-col',
714
  $this->add_control(
715
  'ea_adv_data_table_body_o_col_highlight_color',
716
  [
717
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
718
+ 'type' => Controls_Manager::COLOR,
719
+ 'default' => '#444444',
720
  'selectors' => [
721
+ '{{WRAPPER}} tbody td:nth-child(odd)' => 'color: {{VALUE}}',
722
  ],
723
  'condition' => [
724
  'ea_adv_data_table_body_highlight' => 'o-col',
729
  $this->add_control(
730
  'ea_adv_data_table_body_o_col_highlight_background',
731
  [
732
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
733
+ 'type' => Controls_Manager::COLOR,
734
+ 'default' => '#fbfbfb',
735
  'selectors' => [
736
+ '{{WRAPPER}} tbody td:nth-child(odd)' => 'background-color: {{VALUE}} !important',
737
  ],
738
  'condition' => [
739
  'ea_adv_data_table_body_highlight' => 'o-col',
745
  $this->add_control(
746
  'ea_adv_data_table_body_e_row_highlight_color',
747
  [
748
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
749
+ 'type' => Controls_Manager::COLOR,
750
+ 'default' => '#444444',
751
  'selectors' => [
752
+ '{{WRAPPER}} tbody tr:nth-child(even)' => 'color: {{VALUE}}',
753
  ],
754
  'condition' => [
755
  'ea_adv_data_table_body_highlight' => 'e-row',
760
  $this->add_control(
761
  'ea_adv_data_table_body_e_row_highlight_background',
762
  [
763
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
764
+ 'type' => Controls_Manager::COLOR,
765
+ 'default' => '#fbfbfb',
766
  'selectors' => [
767
+ '{{WRAPPER}} tbody tr:nth-child(even)' => 'background-color: {{VALUE}} !important',
768
  ],
769
  'condition' => [
770
  'ea_adv_data_table_body_highlight' => 'e-row',
776
  $this->add_control(
777
  'ea_adv_data_table_body_o_row_highlight_color',
778
  [
779
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
780
+ 'type' => Controls_Manager::COLOR,
781
+ 'default' => '#444444',
782
  'selectors' => [
783
+ '{{WRAPPER}} tbody tr:nth-child(odd)' => 'color: {{VALUE}}',
784
  ],
785
  'condition' => [
786
  'ea_adv_data_table_body_highlight' => 'o-row',
791
  $this->add_control(
792
  'ea_adv_data_table_body_o_row_highlight_background',
793
  [
794
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
795
+ 'type' => Controls_Manager::COLOR,
796
+ 'default' => '#fbfbfb',
797
  'selectors' => [
798
+ '{{WRAPPER}} tbody tr:nth-child(odd)' => 'background-color: {{VALUE}} !important',
799
  ],
800
  'condition' => [
801
  'ea_adv_data_table_body_highlight' => 'o-row',
806
  $this->add_responsive_control(
807
  'ea_adv_data_table_body_cell_padding',
808
  [
809
+ 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
810
+ 'type' => Controls_Manager::DIMENSIONS,
811
+ 'size_units' => ['px'],
812
  'desktop_default' => [
813
+ 'unit' => 'px',
814
+ 'top' => '10',
815
+ 'right' => '10',
816
+ 'bottom' => '10',
817
+ 'left' => '10',
818
  'isLinked' => true,
819
  ],
820
+ 'selectors' => [
821
  '{{WRAPPER}} .ea-advanced-data-table td' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
822
  ],
823
  ]
828
  $this->start_controls_section(
829
  'ea_section_adv_data_table_style_search',
830
  [
831
+ 'label' => __('Search', 'essential-addons-for-elementor-lite'),
832
+ 'tab' => Controls_Manager::TAB_STYLE,
833
  'condition' => [
834
  'ea_adv_data_table_search' => 'yes',
835
  ],
839
  $this->add_control(
840
  'ea_adv_data_table_search_width',
841
  [
842
+ 'label' => __('Width', 'essential-addons-for-elementor-lite'),
843
+ 'type' => Controls_Manager::SLIDER,
844
  'size_units' => ['px', '%'],
845
+ 'range' => [
846
  'px' => [
847
+ 'min' => 100,
848
+ 'max' => 1000,
849
  'step' => 1,
850
  ],
851
+ '%' => [
852
+ 'min' => 1,
853
+ 'max' => 100,
854
  'step' => 1,
855
  ],
856
  ],
857
+ 'default' => [
858
  'unit' => 'px',
859
  'size' => 200,
860
  ],
861
+ 'selectors' => [
862
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'width: {{SIZE}}{{UNIT}}',
863
  ],
864
  ]
867
  $this->add_control(
868
  'ea_adv_data_table_search_height',
869
  [
870
+ 'label' => __('Height', 'essential-addons-for-elementor-lite'),
871
+ 'type' => Controls_Manager::SLIDER,
872
  'size_units' => ['px'],
873
+ 'range' => [
874
  'px' => [
875
+ 'min' => 10,
876
+ 'max' => 100,
877
  'step' => 1,
878
  ],
879
  ],
880
+ 'default' => [
881
  'unit' => 'px',
882
  'size' => 40,
883
  ],
884
+ 'selectors' => [
885
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'height: {{SIZE}}{{UNIT}}',
886
  ],
887
  ]
890
  $this->add_responsive_control(
891
  'ea_adv_data_table_search_padding',
892
  [
893
+ 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
894
+ 'type' => Controls_Manager::DIMENSIONS,
895
  'size_units' => ['px'],
896
+ 'selectors' => [
897
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
898
  ],
899
  ]
902
  $this->add_control(
903
  'ea_adv_data_table_search_margin',
904
  [
905
+ 'label' => __('Margin Bottom', 'essential-addons-for-elementor-lite'),
906
+ 'type' => Controls_Manager::SLIDER,
907
  'size_units' => ['px'],
908
+ 'range' => [
909
  'px' => [
910
+ 'min' => 0,
911
+ 'max' => 100,
912
  'step' => 1,
913
  ],
914
  ],
915
+ 'default' => [
916
  'unit' => 'px',
917
  'size' => 10,
918
  ],
919
+ 'selectors' => [
920
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'margin-bottom: {{SIZE}}{{UNIT}}',
921
  ],
922
  ]
925
  $this->add_control(
926
  'ea_adv_data_table_search_alignment',
927
  [
928
+ 'label' => esc_html__('Alignment', 'essential-addons-for-elementor-lite'),
929
+ 'type' => Controls_Manager::CHOOSE,
930
  'label_block' => true,
931
+ 'options' => [
932
+ 'left' => [
933
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
934
+ 'icon' => 'fa fa-align-left',
935
  ],
936
  'center' => [
937
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
938
+ 'icon' => 'fa fa-align-center',
939
  ],
940
+ 'right' => [
941
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
942
+ 'icon' => 'fa fa-align-right',
943
  ],
944
  ],
945
+ 'default' => 'right',
946
  ]
947
  );
948
 
949
  $this->add_group_control(
950
  Group_Control_Typography::get_type(),
951
  [
952
+ 'name' => 'ea_adv_data_table_search_typography',
953
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
954
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-search',
955
  ]
956
  );
958
  $this->add_control(
959
  'ea_adv_data_table_search_color',
960
  [
961
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
962
+ 'type' => Controls_Manager::COLOR,
963
+ 'default' => '#666666',
964
  'selectors' => [
965
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'color: {{VALUE}};',
966
  ],
970
  $this->add_control(
971
  'ea_adv_data_table_search_background',
972
  [
973
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
974
+ 'type' => Controls_Manager::COLOR,
975
+ 'default' => '#ffffff',
976
  'selectors' => [
977
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'background-color: {{VALUE}};',
978
  ],
982
  $this->add_group_control(
983
  Group_Control_Border::get_type(),
984
  [
985
+ 'name' => 'ea_adv_data_table_search_border',
986
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
987
  'fields_options' => [
988
  'border' => [
989
  'default' => 'solid',
990
  ],
991
+ 'width' => [
992
  'default' => [
993
+ 'unit' => 'px',
994
+ 'top' => '1',
995
+ 'right' => '1',
996
+ 'bottom' => '1',
997
+ 'left' => '1',
998
  'isLinked' => true,
999
  ],
1000
  ],
1001
+ 'color' => [
1002
  'default' => '#eeeeee',
1003
  ],
1004
  ],
1005
+ 'selector' => '{{WRAPPER}} .ea-advanced-data-table-search',
1006
  ]
1007
  );
1008
 
1009
  $this->add_control(
1010
  'ea_adv_data_table_search_border_radius',
1011
  [
1012
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1013
+ 'type' => Controls_Manager::DIMENSIONS,
1014
  'size_units' => ['px'],
1015
+ 'selectors' => [
1016
  '{{WRAPPER}} .ea-advanced-data-table-search' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1017
  ],
1018
  ]
1023
  $this->start_controls_section(
1024
  'ea_section_adv_data_table_style_pagination',
1025
  [
1026
+ 'label' => __('Pagination', 'essential-addons-for-elementor-lite'),
1027
+ 'tab' => Controls_Manager::TAB_STYLE,
1028
  'condition' => [
1029
  'ea_adv_data_table_pagination' => 'yes',
1030
  ],
1034
  $this->add_responsive_control(
1035
  'ea_adv_data_table_pagination_select_width',
1036
  [
1037
+ 'label' => __('Width', 'essential-addons-for-elementor-lite'),
1038
+ 'type' => Controls_Manager::SLIDER,
1039
+ 'size_units' => ['px', '%'],
1040
+ 'range' => [
1041
  'px' => [
1042
+ 'min' => 100,
1043
+ 'max' => 10000,
1044
  'step' => 1,
1045
  ],
1046
+ '%' => [
1047
+ 'min' => 10,
1048
+ 'max' => 100,
1049
  'step' => 1,
1050
  ],
1051
  ],
1053
  'unit' => 'px',
1054
  'size' => 100,
1055
  ],
1056
+ 'tablet_default' => [
1057
  'unit' => 'px',
1058
  'size' => 100,
1059
  ],
1060
+ 'mobile_default' => [
1061
  'unit' => '%',
1062
  'size' => 100,
1063
  ],
1064
+ 'selectors' => [
1065
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'width: {{SIZE}}{{UNIT}}',
1066
  ],
1067
+ 'condition' => [
1068
  'ea_adv_data_table_pagination_type' => 'select',
1069
  ],
1070
  ]
1073
  $this->add_control(
1074
  'ea_adv_data_table_pagination_alignment',
1075
  [
1076
+ 'label' => esc_html__('Alignment', 'essential-addons-for-elementor-lite'),
1077
+ 'type' => Controls_Manager::CHOOSE,
1078
+ 'options' => [
1079
+ 'left' => [
1080
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
1081
+ 'icon' => 'fa fa-align-left',
1082
  ],
1083
  'center' => [
1084
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
1085
+ 'icon' => 'fa fa-align-center',
1086
  ],
1087
+ 'right' => [
1088
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
1089
+ 'icon' => 'fa fa-align-right',
1090
  ],
1091
  ],
1092
+ 'default' => 'left',
1093
  'selectors' => [
1094
  '{{WRAPPER}} .ea-advanced-data-table-pagination' => 'text-align: {{VALUE}};',
1095
  ],
1099
  $this->add_group_control(
1100
  Group_Control_Typography::get_type(),
1101
  [
1102
+ 'name' => 'ea_adv_data_table_pagination_typography',
1103
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1104
  'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a, {{WRAPPER}} .ea-advanced-data-table-pagination select',
1105
  ]
1106
  );
1108
  $this->add_responsive_control(
1109
  'ea_adv_data_table_pagination_padding',
1110
  [
1111
+ 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
1112
+ 'type' => Controls_Manager::DIMENSIONS,
1113
+ 'size_units' => ['px'],
1114
  'desktop_default' => [
1115
+ 'unit' => 'px',
1116
+ 'top' => '5',
1117
+ 'right' => '15',
1118
+ 'bottom' => '5',
1119
+ 'left' => '15',
1120
  'isLinked' => false,
1121
  ],
1122
+ 'selectors' => [
1123
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1124
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1125
  ],
1126
  ]
1129
  $this->add_responsive_control(
1130
  'ea_adv_data_table_pagination_margin',
1131
  [
1132
+ 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
1133
+ 'type' => Controls_Manager::DIMENSIONS,
1134
+ 'size_units' => ['px'],
1135
  'desktop_default' => [
1136
+ 'unit' => 'px',
1137
+ 'top' => '5',
1138
+ 'right' => '5',
1139
+ 'bottom' => '0',
1140
+ 'left' => '0',
1141
  'isLinked' => false,
1142
  ],
1143
+ 'selectors' => [
1144
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1145
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1146
  ],
1147
  ]
1154
  $this->add_control(
1155
  'ea_adv_data_table_pagination_color',
1156
  [
1157
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1158
+ 'type' => Controls_Manager::COLOR,
1159
+ 'default' => '#666666',
1160
  'selectors' => [
1161
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'color: {{VALUE}};',
1162
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'color: {{VALUE}};',
1163
  ],
1164
  ]
1167
  $this->add_control(
1168
  'ea_adv_data_table_pagination_background',
1169
  [
1170
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1171
+ 'type' => Controls_Manager::COLOR,
1172
+ 'default' => '#ffffff',
1173
  'selectors' => [
1174
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'background-color: {{VALUE}};',
1175
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'background-color: {{VALUE}};',
1176
  ],
1177
  ]
1180
  $this->add_group_control(
1181
  Group_Control_Border::get_type(),
1182
  [
1183
+ 'name' => 'ea_adv_data_table_pagination_border',
1184
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1185
  'fields_options' => [
1186
  'border' => [
1187
  'default' => 'solid',
1188
  ],
1189
+ 'width' => [
1190
  'default' => [
1191
+ 'unit' => 'px',
1192
+ 'top' => '1',
1193
+ 'right' => '1',
1194
+ 'bottom' => '1',
1195
+ 'left' => '1',
1196
  'isLinked' => true,
1197
  ],
1198
  ],
1199
+ 'color' => [
1200
  'default' => '#eeeeee',
1201
  ],
1202
  ],
1203
+ 'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a, {{WRAPPER}} .ea-advanced-data-table-pagination select',
1204
  ]
1205
  );
1206
 
1207
  $this->add_control(
1208
  'ea_adv_data_table_pagination_border_radius',
1209
  [
1210
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1211
+ 'type' => Controls_Manager::DIMENSIONS,
1212
  'size_units' => ['px'],
1213
+ 'selectors' => [
1214
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1215
  '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1216
  ],
1217
  ]
1224
  $this->add_control(
1225
  'ea_adv_data_table_pagination_color_hover',
1226
  [
1227
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1228
+ 'type' => Controls_Manager::COLOR,
1229
+ 'default' => '#666666',
1230
  'selectors' => [
1231
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'color: {{VALUE}};',
1232
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'color: {{VALUE}};',
1233
+ '{{WRAPPER}} .ea-advanced-data-table-pagination select:hover' => 'color: {{VALUE}};',
1234
  ],
1235
  ]
1236
  );
1238
  $this->add_control(
1239
  'ea_adv_data_table_pagination_background_hover',
1240
  [
1241
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1242
+ 'type' => Controls_Manager::COLOR,
1243
+ 'default' => '#fafafa',
1244
  'selectors' => [
1245
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'background-color: {{VALUE}};',
1246
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'background-color: {{VALUE}};',
1247
+ '{{WRAPPER}} .ea-advanced-data-table-pagination select:hover' => 'background-color: {{VALUE}};',
1248
  ],
1249
  ]
1250
  );
1252
  $this->add_group_control(
1253
  Group_Control_Border::get_type(),
1254
  [
1255
+ 'name' => 'ea_adv_data_table_pagination_border_hover',
1256
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1257
  'fields_options' => [
1258
  'border' => [
1259
  'default' => 'solid',
1260
  ],
1261
+ 'width' => [
1262
  'default' => [
1263
+ 'unit' => 'px',
1264
+ 'top' => '1',
1265
+ 'right' => '1',
1266
+ 'bottom' => '1',
1267
+ 'left' => '1',
1268
  'isLinked' => true,
1269
  ],
1270
  ],
1271
+ 'color' => [
1272
  'default' => '#eeeeee',
1273
  ],
1274
  ],
1275
+ 'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover, {{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current, {{WRAPPER}} .ea-advanced-data-table-pagination select:hover',
1276
  ]
1277
  );
1278
 
1279
  $this->add_control(
1280
  'ea_adv_data_table_pagination_border_radius_hover',
1281
  [
1282
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1283
+ 'type' => Controls_Manager::DIMENSIONS,
1284
  'size_units' => ['px'],
1285
+ 'selectors' => [
1286
+ '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1287
  '{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-advanced-data-table-pagination-current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1288
+ '{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1289
  ],
1290
  ]
1291
  );
1300
  'ea_section_adv_data_table_style_button',
1301
  [
1302
  'label' => __('Button', 'essential-addons-for-elementor-lite'),
1303
+ 'tab' => Controls_Manager::TAB_STYLE,
1304
  ]
1305
  );
1306
 
1307
  $this->add_group_control(
1308
  Group_Control_Typography::get_type(),
1309
  [
1310
+ 'name' => 'ea_adv_data_table_button_typography',
1311
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1312
  'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1313
  ]
1314
  );
1320
  $this->add_control(
1321
  'ea_adv_data_table_button_color',
1322
  [
1323
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1324
+ 'type' => Controls_Manager::COLOR,
1325
+ 'default' => '',
1326
  'selectors' => [
1327
+ '{{WRAPPER}} td button' => 'color: {{VALUE}};',
1328
+ '{{WRAPPER}} td .button' => 'color: {{VALUE}};',
1329
  ],
1330
  ]
1331
  );
1333
  $this->add_control(
1334
  'ea_adv_data_table_button_background_color',
1335
  [
1336
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1337
+ 'type' => Controls_Manager::COLOR,
1338
+ 'default' => '',
1339
  'selectors' => [
1340
+ '{{WRAPPER}} td button' => 'background-color: {{VALUE}};',
1341
+ '{{WRAPPER}} td .button' => 'background-color: {{VALUE}};',
1342
  ],
1343
  ]
1344
  );
1350
  $this->add_control(
1351
  'ea_adv_data_table_button_color_hover',
1352
  [
1353
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1354
+ 'type' => Controls_Manager::COLOR,
1355
+ 'default' => '',
1356
  'selectors' => [
1357
+ '{{WRAPPER}} td button:hover' => 'color: {{VALUE}};',
1358
+ '{{WRAPPER}} td .button:hover' => 'color: {{VALUE}};',
1359
  ],
1360
  ]
1361
  );
1363
  $this->add_control(
1364
  'ea_adv_data_table_button_background_color_hover',
1365
  [
1366
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1367
+ 'type' => Controls_Manager::COLOR,
1368
+ 'default' => '',
1369
  'selectors' => [
1370
+ '{{WRAPPER}} td button:hover' => 'background-color: {{VALUE}};',
1371
+ '{{WRAPPER}} td .button:hover' => 'background-color: {{VALUE}};',
1372
  ],
1373
  ]
1374
  );
1380
  $this->add_group_control(
1381
  Group_Control_Border::get_type(),
1382
  [
1383
+ 'name' => 'ea_adv_data_table_button_border',
1384
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1385
  'fields_options' => [
1386
  'border' => [
1387
  'default' => '',
1388
  ],
1389
+ 'width' => [
1390
  'default' => [
1391
+ 'unit' => 'px',
1392
  'isLinked' => true,
1393
  ],
1394
  ],
1395
+ 'color' => [
1396
  'default' => '',
1397
  ],
1398
  ],
1399
+ 'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1400
  ]
1401
  );
1402
 
1403
  $this->add_control(
1404
  'ea_adv_data_table_button_border_radius',
1405
  [
1406
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1407
+ 'type' => Controls_Manager::DIMENSIONS,
1408
  'size_units' => ['px'],
1409
+ 'selectors' => [
1410
+ '{{WRAPPER}} td button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1411
+ '{{WRAPPER}} td .button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1412
  ],
1413
  ]
1414
  );
1416
  $this->add_group_control(
1417
  Group_Control_Box_Shadow::get_type(),
1418
  [
1419
+ 'name' => 'ea_adv_data_table_button_box_shadow',
1420
+ 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1421
  'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
1422
  ]
1423
  );
1425
  $this->add_control(
1426
  'ea_adv_data_table_button_border_padding',
1427
  [
1428
+ 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
1429
+ 'type' => Controls_Manager::DIMENSIONS,
1430
  'size_units' => ['px'],
1431
+ 'selectors' => [
1432
+ '{{WRAPPER}} td button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1433
+ '{{WRAPPER}} td .button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1434
  ],
1435
  ]
1436
  );
1461
  }
1462
 
1463
  $this->add_render_attribute('ea-adv-data-table-wrap', [
1464
+ 'class' => "ea-advanced-data-table-wrap",
1465
  'data-id' => $this->get_id(),
1466
  ]);
1467
 
1468
  $this->add_render_attribute('ea-adv-data-table', [
1469
+ 'class' => "ea-advanced-data-table ea-advanced-data-table-{$settings['ea_adv_data_table_source']} ea-advanced-data-table-{$this->get_id()}",
1470
  'data-id' => $this->get_id(),
1471
  ]);
1472
 
1484
 
1485
  if ($settings['ea_adv_data_table_pagination'] == 'yes') {
1486
  $this->add_render_attribute('ea-adv-data-table', [
1487
+ 'class' => "ea-advanced-data-table-paginated",
1488
  'data-items-per-page' => $settings['ea_adv_data_table_items_per_page'],
1489
  ]);
1490
  }
1501
 
1502
  echo '<div ' . $this->get_render_attribute_string('ea-adv-data-table-wrap') . '>';
1503
 
1504
+ if ($content = $this->get_table_content()) {
1505
  if ($settings['ea_adv_data_table_search'] == 'yes') {
1506
  echo '<div ' . $this->get_render_attribute_string('ea-adv-data-table-search-wrap') . '><input type="search" placeholder="' . $settings['ea_adv_data_table_search_placeholder'] . '" class="ea-advanced-data-table-search"></div>';
1507
  }
1508
 
1509
  echo '<div class="ea-advanced-data-table-wrap-inner">
1510
+ <table ' . $this->get_render_attribute_string('ea-adv-data-table') . '>' . $content . '</table>
1511
  </div>';
1512
 
1513
  if ($settings['ea_adv_data_table_pagination'] == 'yes') {
1538
  echo '</div>';
1539
  }
1540
 
1541
+ public function get_table_content()
1542
  {
1543
+ $settings = $this->get_settings_for_display();
1544
+
1545
+ if ($settings['ea_adv_data_table_source'] == 'static') {
1546
+ return $settings['ea_adv_data_table_static_html'];
 
 
 
 
1547
  } else if ($settings['ea_adv_data_table_source'] == 'ninja') {
1548
+ return $this->ninja_integration();
1549
+ }
1550
+
1551
+ $content = apply_filters('eael/advanced-data-table/table_html/integration/' . $settings['ea_adv_data_table_source'], $settings);
1552
+
1553
+ if (is_array($content)) {
1554
+ return '';
1555
+ }
1556
+
1557
+ return $content;
1558
+ }
1559
+
1560
+ public function ninja_integration()
1561
+ {
1562
+ $settings = $this->get_settings_for_display();
1563
+
1564
+ if (empty($settings['ea_adv_data_table_source_ninja_table_id'])) {
1565
+ return;
1566
+ }
1567
+
1568
+ $html = '';
1569
+ $table_settings = ninja_table_get_table_settings($settings['ea_adv_data_table_source_ninja_table_id']);
1570
+ $table_headers = ninja_table_get_table_columns($settings['ea_adv_data_table_source_ninja_table_id']);
1571
+ $table_rows = ninjaTablesGetTablesDataByID($settings['ea_adv_data_table_source_ninja_table_id']);
1572
+
1573
+ if (!empty($table_rows)) {
1574
+ if (!isset($table_settings['hide_header_row']) || $table_settings['hide_header_row'] != true) {
1575
+ $html .= '<thead><tr>';
1576
+ foreach ($table_headers as $key => $th) {
1577
+ $style = isset($settings['ea_adv_data_table_dynamic_th_width']) && isset($settings['ea_adv_data_table_dynamic_th_width'][$key]) ? ' style="width:' . $settings['ea_adv_data_table_dynamic_th_width'][$key] . '"' : '';
1578
+ $html .= '<th' . $style . '>' . $th['name'] . '</th>';
1579
+ }
1580
+ $html .= '</tr></thead>';
1581
+ }
1582
+
1583
+ $html .= '<tbody>';
1584
+ foreach ($table_rows as $key => $tr) {
1585
+ $html .= '<tr>';
1586
+ foreach ($table_headers as $th) {
1587
+ if (!isset($th['data_type'])) {
1588
+ $th['data_type'] = '';
1589
+ }
1590
+
1591
+ if ($th['data_type'] == 'image') {
1592
+ $html .= '<td>' . (isset($tr[$th['key']]['image_thumb']) ? '<a href="' . $tr[$th['key']]['image_full'] . '"><img src="' . $tr[$th['key']]['image_thumb'] . '"></a>' : '') . '</td>';
1593
+ } elseif ($th['data_type'] == 'selection') {
1594
+ $html .= '<td>' . (!empty($tr[$th['key']]) ? implode((array) $tr[$th['key']], ', ') : '') . '</td>';
1595
+ } elseif ($th['data_type'] == 'button') {
1596
+ $html .= '<td>' . (!empty($tr[$th['key']]) ? '<a href="' . $tr[$th['key']] . '" class="button" target="' . $th['link_target'] . '">' . $th['button_text'] . '</a>' : '') . '</td>';
1597
+ } else {
1598
+ $html .= '<td>' . (!empty($tr[$th['key']]) ? $tr[$th['key']] : '') . '</td>';
1599
+ }
1600
+ }
1601
+ $html .= '</tr>';
1602
+ }
1603
+ $html .= '</tbody>';
1604
  }
1605
 
1606
+ return $html;
1607
  }
1608
 
1609
  }
includes/Elements/Betterdocs_Category_Box.php CHANGED
@@ -8,17 +8,20 @@ if (!defined('ABSPATH'))
8
  exit;
9
  }
10
 
11
- use \Elementor\Controls_Manager as Controls_Manager;
12
- use \Elementor\Group_Control_Border as Group_Control_Border;
13
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
14
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
15
  use \Elementor\Group_Control_Background;
16
- use \Elementor\Scheme_Typography as Scheme_Typography;
17
- use \Elementor\Widget_Base as Widget_Base;
 
 
 
18
 
19
  class Betterdocs_Category_Box extends Widget_Base {
20
 
21
- use \Essential_Addons_Elementor\Traits\Helper;
22
  use \Essential_Addons_Elementor\Traits\Template_Query;
23
 
24
  public function get_name()
@@ -102,7 +105,7 @@ class Betterdocs_Category_Box extends Widget_Base {
102
  * Query Controls!
103
  * @source includes/elementor-helper.php
104
  */
105
- $this->eael_betterdocs_query_controls();
106
 
107
  /**
108
  * ----------------------------------------------------------
@@ -121,7 +124,7 @@ class Betterdocs_Category_Box extends Widget_Base {
121
  [
122
  'label' => __('Select Layout', 'essential-addons-for-elementor-lite'),
123
  'type' => Controls_Manager::SELECT2,
124
- 'options' => $this->template_list(),
125
  'default' => $this->get_default(),
126
  'label_block' => true
127
  ]
@@ -213,7 +216,7 @@ class Betterdocs_Category_Box extends Widget_Base {
213
  'type' => Controls_Manager::TEXT,
214
  'condition' => [
215
  'show_count' => 'true',
216
- 'layout_template' => 'Layout_Default'
217
  ]
218
  ]
219
  );
@@ -226,7 +229,7 @@ class Betterdocs_Category_Box extends Widget_Base {
226
  'default' => __('articles', 'essential-addons-for-elementor-lite'),
227
  'condition' => [
228
  'show_count' => 'true',
229
- 'layout_template' => 'Layout_Default'
230
  ]
231
  ]
232
  );
@@ -236,13 +239,13 @@ class Betterdocs_Category_Box extends Widget_Base {
236
 
237
  /**
238
  * ----------------------------------------------------------
239
- * Section: Column Settings
240
  * ----------------------------------------------------------
241
  */
242
  $this->start_controls_section(
243
- 'section_column_settings',
244
  [
245
- 'label' => __('Column', 'essential-addons-for-elementor-lite'),
246
  'tab' => Controls_Manager::TAB_STYLE,
247
  ]
248
  );
@@ -267,22 +270,7 @@ class Betterdocs_Category_Box extends Widget_Base {
267
  'size_units' => ['px', 'em', '%'],
268
  'selectors' => [
269
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
270
- ],
271
- ]
272
- );
273
-
274
- $this->end_controls_section(); # end of 'Column Settings'
275
-
276
- /**
277
- * ----------------------------------------------------------
278
- * Section: Box Styles
279
- * ----------------------------------------------------------
280
- */
281
- $this->start_controls_section(
282
- 'section_card_settings',
283
- [
284
- 'label' => __('Box', 'essential-addons-for-elementor-lite'),
285
- 'tab' => Controls_Manager::TAB_STYLE,
286
  ]
287
  );
288
 
@@ -511,7 +499,7 @@ class Betterdocs_Category_Box extends Widget_Base {
511
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
512
  ],
513
  'condition' => [
514
- 'layout_template' => 'Layout_Default'
515
  ]
516
  ]
517
  );
@@ -526,7 +514,7 @@ class Betterdocs_Category_Box extends Widget_Base {
526
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
527
  ],
528
  'condition' => [
529
- 'layout_template' => 'Layout_Default'
530
  ]
531
  ]
532
  );
@@ -545,7 +533,7 @@ class Betterdocs_Category_Box extends Widget_Base {
545
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'margin: {{TOP}}{{UNIT}} auto {{BOTTOM}}{{UNIT}} auto;'
546
  ],
547
  'condition' => [
548
- 'layout_template' => 'Layout_Default'
549
  ]
550
  ]
551
  );
@@ -588,7 +576,7 @@ class Betterdocs_Category_Box extends Widget_Base {
588
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-inner:hover .eael-bd-cb-cat-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
589
  ],
590
  'condition' => [
591
- 'layout_template' => 'Layout_Default'
592
  ]
593
  ]
594
  );
@@ -643,7 +631,10 @@ class Betterdocs_Category_Box extends Widget_Base {
643
  'title_styles_area_heading',
644
  [
645
  'label' => __( 'Area', 'essential-addons-for-elementor-lite' ),
646
- 'type' => Controls_Manager::HEADING
 
 
 
647
  ]
648
  );
649
 
@@ -696,14 +687,6 @@ class Betterdocs_Category_Box extends Widget_Base {
696
  ]
697
  );
698
 
699
- $this->add_group_control(
700
- Group_Control_Typography::get_type(),
701
- [
702
- 'name' => 'cat_title_typography_normal',
703
- 'selector' => '{{WRAPPER}} .eael-bd-cb-inner .eael-bd-cb-cat-title, {{WRAPPER}} .layout__2 .eael-bd-cb-cat-title__layout-2'
704
- ]
705
- );
706
-
707
  $this->add_responsive_control(
708
  'title_spacing',
709
  [
@@ -764,6 +747,43 @@ class Betterdocs_Category_Box extends Widget_Base {
764
 
765
  $this->end_controls_tabs();
766
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
767
  $this->end_controls_section(); # end of 'Icon Styles'
768
 
769
  /**
@@ -1069,51 +1089,110 @@ class Betterdocs_Category_Box extends Widget_Base {
1069
 
1070
  if ($settings['include'])
1071
  {
1072
- unset($terms_object['parent']);
1073
  $terms_object['include'] = array_diff($settings['include'], (array) $settings['exclude']);
1074
- $terms_object['orderby'] = 'include';
1075
  }
1076
 
1077
  if ($settings['exclude'])
1078
  {
1079
- unset($terms_object['parent']);
1080
  $terms_object['exclude'] = $settings['exclude'];
1081
- $terms_object['orderby'] = 'exclude';
1082
  }
1083
 
1084
- $taxonomy_objects = get_terms($terms_object);
1085
 
1086
- $html = '<div ' . $this->get_render_attribute_string('bd_category_box_wrapper') . '>';
1087
- $html .= '<div ' . $this->get_render_attribute_string('bd_category_box_inner') . '>';
1088
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1089
 
1090
- if (file_exists($this->get_template($settings['layout_template'])))
1091
- {
1092
 
1093
- if ($taxonomy_objects && !is_wp_error($taxonomy_objects))
 
 
 
 
1094
  {
1095
- foreach ($taxonomy_objects as $term)
 
1096
  {
1097
- ob_start();
1098
- include($this->get_template($settings['layout_template']));
1099
- $html .= ob_get_clean();
 
 
 
 
 
 
1100
  }
 
 
 
1101
  } else
1102
  {
1103
- _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1104
  }
1105
 
1106
- wp_reset_postdata();
 
1107
 
1108
- } else
1109
- {
1110
- $html .= '<h4>' . __('File Not Found', 'essential-addons-for-elementor-lite') . '</h4>';
1111
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1112
 
1113
- $html .= '</div>';
1114
- $html .= '</div>';
1115
 
1116
- echo $html;
 
 
1117
 
1118
  }
1119
 
8
  exit;
9
  }
10
 
11
+ use \Elementor\Controls_Manager;
12
+ use \Elementor\Group_Control_Border;
13
+ use \Elementor\Group_Control_Box_Shadow;
14
+ use \Elementor\Group_Control_Typography;
15
  use \Elementor\Group_Control_Background;
16
+ use \Elementor\Scheme_Typography;
17
+ use \Elementor\Widget_Base;
18
+
19
+ use \Essential_Addons_Elementor\Classes\Controls;
20
+ use \Essential_Addons_Elementor\Classes\Helper;
21
 
22
  class Betterdocs_Category_Box extends Widget_Base {
23
 
24
+
25
  use \Essential_Addons_Elementor\Traits\Template_Query;
26
 
27
  public function get_name()
105
  * Query Controls!
106
  * @source includes/elementor-helper.php
107
  */
108
+ do_action('eael/controls/betterdocs/query', $this);
109
 
110
  /**
111
  * ----------------------------------------------------------
124
  [
125
  'label' => __('Select Layout', 'essential-addons-for-elementor-lite'),
126
  'type' => Controls_Manager::SELECT2,
127
+ 'options' => $this->template_options(),
128
  'default' => $this->get_default(),
129
  'label_block' => true
130
  ]
216
  'type' => Controls_Manager::TEXT,
217
  'condition' => [
218
  'show_count' => 'true',
219
+ 'layout_template' => 'default'
220
  ]
221
  ]
222
  );
229
  'default' => __('articles', 'essential-addons-for-elementor-lite'),
230
  'condition' => [
231
  'show_count' => 'true',
232
+ 'layout_template' => 'default'
233
  ]
234
  ]
235
  );
239
 
240
  /**
241
  * ----------------------------------------------------------
242
+ * Section: Box Styles
243
  * ----------------------------------------------------------
244
  */
245
  $this->start_controls_section(
246
+ 'section_card_settings',
247
  [
248
+ 'label' => __('Box', 'essential-addons-for-elementor-lite'),
249
  'tab' => Controls_Manager::TAB_STYLE,
250
  ]
251
  );
270
  'size_units' => ['px', 'em', '%'],
271
  'selectors' => [
272
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-inner' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
273
+ ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
274
  ]
275
  );
276
 
499
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
500
  ],
501
  'condition' => [
502
+ 'layout_template' => 'default'
503
  ]
504
  ]
505
  );
514
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
515
  ],
516
  'condition' => [
517
+ 'layout_template' => 'default'
518
  ]
519
  ]
520
  );
533
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-cat-icon' => 'margin: {{TOP}}{{UNIT}} auto {{BOTTOM}}{{UNIT}} auto;'
534
  ],
535
  'condition' => [
536
+ 'layout_template' => 'default'
537
  ]
538
  ]
539
  );
576
  '{{WRAPPER}} .eael-better-docs-category-box-post .eael-bd-cb-inner:hover .eael-bd-cb-cat-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
577
  ],
578
  'condition' => [
579
+ 'layout_template' => 'default'
580
  ]
581
  ]
582
  );
631
  'title_styles_area_heading',
632
  [
633
  'label' => __( 'Area', 'essential-addons-for-elementor-lite' ),
634
+ 'type' => Controls_Manager::HEADING,
635
+ 'condition' => [
636
+ 'layout_template' => 'Layout_2'
637
+ ]
638
  ]
639
  );
640
 
687
  ]
688
  );
689
 
 
 
 
 
 
 
 
 
690
  $this->add_responsive_control(
691
  'title_spacing',
692
  [
747
 
748
  $this->end_controls_tabs();
749
 
750
+ $this->add_group_control(
751
+ Group_Control_Typography::get_type(),
752
+ [
753
+ 'name' => 'cat_title_typography_normal',
754
+ 'selector' => '{{WRAPPER}} .eael-bd-cb-inner .eael-bd-cb-cat-title, {{WRAPPER}} .layout__2 .eael-bd-cb-cat-title__layout-2'
755
+ ]
756
+ );
757
+
758
+ $this->add_responsive_control(
759
+ 'title_alignment',
760
+ [
761
+ 'label' => __('Text Alignment', 'essential-addons-for-elementor-lite'),
762
+ 'type' => Controls_Manager::CHOOSE,
763
+ 'options' => [
764
+ 'flex-start' => [
765
+ 'title' => __('Left', 'essential-addons-for-elementor-lite'),
766
+ 'icon' => 'fa fa-align-left',
767
+ ],
768
+ 'center' => [
769
+ 'title' => __('Center', 'essential-addons-for-elementor-lite'),
770
+ 'icon' => 'fa fa-align-center',
771
+ ],
772
+ 'flex-end' => [
773
+ 'title' => __('Right', 'essential-addons-for-elementor-lite'),
774
+ 'icon' => 'fa fa-align-right',
775
+ ],
776
+ ],
777
+ 'selectors' => [
778
+ '{{WRAPPER}} .layout__2 .eael-bd-cb-cat-title__layout-2' => 'justify-content: {{VALUE}};',
779
+ ],
780
+ 'condition' => [
781
+ 'layout_template' => 'Layout_2'
782
+ ],
783
+ 'separator' => 'before'
784
+ ]
785
+ );
786
+
787
  $this->end_controls_section(); # end of 'Icon Styles'
788
 
789
  /**
1089
 
1090
  if ($settings['include'])
1091
  {
 
1092
  $terms_object['include'] = array_diff($settings['include'], (array) $settings['exclude']);
 
1093
  }
1094
 
1095
  if ($settings['exclude'])
1096
  {
 
1097
  $terms_object['exclude'] = $settings['exclude'];
 
1098
  }
1099
 
 
1100
 
1101
+ $default_multiple_kb = Helper::get_betterdocs_multiple_kb_status();
 
1102
 
1103
+ if ($settings['layout_template'] == 'Layout_2') {
1104
+ $settings['layout_template'] = 'layout-2';
1105
+ }
1106
+
1107
+ if($default_multiple_kb) {
1108
+
1109
+ $taxonomy_objects = Helper::get_multiple_kb_terms(false, false);
1110
+
1111
+ $meta_query = '';
1112
+
1113
+ if(!empty($settings['selected_knowledge_base'])){
1114
+ $terms_object['meta_query'] = array(
1115
+ array(
1116
+ 'relation' => 'OR',
1117
+ array(
1118
+ 'key' => 'doc_category_knowledge_base',
1119
+ 'value' => $settings['selected_knowledge_base'],
1120
+ 'compare' => 'LIKE'
1121
+ )
1122
+ ),
1123
+ );
1124
+ }
1125
 
1126
+ $taxonomy_objects = get_terms( $terms_object );
 
1127
 
1128
+ $html = '<div ' . $this->get_render_attribute_string('bd_category_box_wrapper') . '>';
1129
+ $html .= '<div ' . $this->get_render_attribute_string('bd_category_box_inner') . '>';
1130
+
1131
+
1132
+ if (file_exists($this->get_template($settings['layout_template'])))
1133
  {
1134
+
1135
+ if ($taxonomy_objects && !is_wp_error($taxonomy_objects))
1136
  {
1137
+ foreach ($taxonomy_objects as $term)
1138
+ {
1139
+ ob_start();
1140
+ include($this->get_template($settings['layout_template']));
1141
+ $html .= ob_get_clean();
1142
+ }
1143
+ } else
1144
+ {
1145
+ _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1146
  }
1147
+
1148
+ wp_reset_postdata();
1149
+
1150
  } else
1151
  {
1152
+ $html .= '<h4>' . __('File Not Found', 'essential-addons-for-elementor-lite') . '</h4>';
1153
  }
1154
 
1155
+ $html .= '</div>';
1156
+ $html .= '</div>';
1157
 
1158
+ echo $html;
1159
+
1160
+ }else {
1161
+ $taxonomy_objects = get_terms($terms_object);
1162
+
1163
+ $html = '<div ' . $this->get_render_attribute_string('bd_category_box_wrapper') . '>';
1164
+ $html .= '<div ' . $this->get_render_attribute_string('bd_category_box_inner') . '>';
1165
+
1166
+
1167
+ if (file_exists($this->get_template($settings['layout_template'])))
1168
+ {
1169
+
1170
+ if ($taxonomy_objects && !is_wp_error($taxonomy_objects))
1171
+ {
1172
+ foreach ($taxonomy_objects as $term)
1173
+ {
1174
+ ob_start();
1175
+ include($this->get_template($settings['layout_template']));
1176
+ $html .= ob_get_clean();
1177
+ }
1178
+ } else
1179
+ {
1180
+ _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1181
+ }
1182
+
1183
+ wp_reset_postdata();
1184
+
1185
+ } else
1186
+ {
1187
+ $html .= '<h4>' . __('File Not Found', 'essential-addons-for-elementor-lite') . '</h4>';
1188
+ }
1189
 
1190
+ $html .= '</div>';
1191
+ $html .= '</div>';
1192
 
1193
+ echo $html;
1194
+
1195
+ }
1196
 
1197
  }
1198
 
includes/Elements/Betterdocs_Category_Grid.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  namespace Essential_Addons_Elementor\Elements;
3
 
4
  // If this file is called directly, abort.
@@ -6,17 +7,17 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
  use \Elementor\Group_Control_Background;
11
- use \Elementor\Group_Control_Border as Group_Control_Border;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Widget_Base as Widget_Base;
14
  use \Elementor\Group_Control_Box_Shadow;
 
 
15
 
16
  class Betterdocs_Category_Grid extends Widget_Base
17
  {
18
-
19
- use \Essential_Addons_Elementor\Traits\Helper;
20
  use \Essential_Addons_Elementor\Traits\Template_Query;
21
 
22
  public function get_name()
@@ -106,7 +107,7 @@ class Betterdocs_Category_Grid extends Widget_Base
106
  * Query Controls!
107
  * @source includes/elementor-helper.php
108
  */
109
- $this->eael_betterdocs_query_controls();
110
 
111
  /**
112
  * ----------------------------------------------------------
@@ -125,7 +126,7 @@ class Betterdocs_Category_Grid extends Widget_Base
125
  [
126
  'label' => __('Select Layout', 'essential-addons-for-elementor-lite'),
127
  'type' => Controls_Manager::SELECT2,
128
- 'options' => $this->template_list(),
129
  'default' => $this->get_default(),
130
  'label_block' => true
131
  ]
@@ -646,7 +647,8 @@ class Betterdocs_Category_Grid extends Widget_Base
646
  'size_units' => [ 'px', '%', 'em' ],
647
  'selectors' => [
648
  '{{WRAPPER}} .layout-2 .eael-docs-cat-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
649
- '{{WRAPPER}} .eael-bd-cg-header' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
 
650
  ]
651
  ]
652
  );
@@ -757,6 +759,43 @@ class Betterdocs_Category_Grid extends Widget_Base
757
  ]
758
  );
759
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
760
  $this->add_control(
761
  'count_color',
762
  [
@@ -794,41 +833,99 @@ class Betterdocs_Category_Grid extends Widget_Base
794
  ]
795
  );
796
 
797
- $this->add_responsive_control(
798
- 'count_font_size',
799
  [
800
- 'label' => __('Font Size', 'essential-addons-for-elementor-lite'),
801
- 'type' => Controls_Manager::SLIDER,
802
- 'size_units' => ['px', '%', 'em'],
803
- 'range' => [
804
- '%' => [
805
- 'max' => 100,
806
- 'step' => 1,
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
807
  ],
808
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
  'selectors' => [
810
- '{{WRAPPER}} .eael-docs-item-count' => 'font-size: {{SIZE}}{{UNIT}};',
811
  ],
812
  ]
813
  );
814
 
815
- $this->add_responsive_control(
816
- 'count_size',
817
  [
818
- 'label' => __('Size', 'essential-addons-for-elementor-lite'),
819
- 'type' => Controls_Manager::SLIDER,
820
- 'size_units' => ['px', '%', 'em'],
821
- 'range' => [
822
- '%' => [
823
- 'max' => 100,
824
- 'step' => 1,
825
- ],
826
  ],
 
 
 
 
 
 
 
 
827
  'selectors' => [
828
- '{{WRAPPER}} .eael-docs-item-count' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
829
  ],
830
  'condition' => [
831
- 'layout_template!' => 'Layout_2'
832
  ]
833
  ]
834
  );
@@ -836,9 +933,9 @@ class Betterdocs_Category_Grid extends Widget_Base
836
  $this->add_group_control(
837
  Group_Control_Border::get_type(),
838
  [
839
- 'name' => 'count_border', // Legacy control name change it with 'border_size' if anything happens.
840
  'label' => __( 'Border', 'essential-addons-for-elementor-lite' ),
841
- 'selector' => '{{WRAPPER}} .eael-docs-item-count',
842
  'condition' => [
843
  'layout_template!' => 'Layout_2'
844
  ]
@@ -846,13 +943,13 @@ class Betterdocs_Category_Grid extends Widget_Base
846
  );
847
 
848
  $this->add_control(
849
- 'count_border_radius',
850
  [
851
  'label' => __( 'Border Radius', 'essential-addons-for-elementor-lite' ),
852
  'type' => Controls_Manager::DIMENSIONS,
853
  'size_units' => [ 'px', '%', 'em' ],
854
  'selectors' => [
855
- '{{WRAPPER}} .eael-docs-item-count' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
856
  ],
857
  'condition' => [
858
  'layout_template!' => 'Layout_2'
@@ -860,6 +957,11 @@ class Betterdocs_Category_Grid extends Widget_Base
860
  ]
861
  );
862
 
 
 
 
 
 
863
  $this->end_controls_section(); # end of 'Count Settings'
864
 
865
  /**
@@ -1326,6 +1428,29 @@ class Betterdocs_Category_Grid extends Widget_Base
1326
  ['label' => esc_html__('Hover', 'essential-addons-for-elementor-lite')]
1327
  );
1328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1329
  $this->add_control(
1330
  'button_color_hover',
1331
  [
@@ -1471,48 +1596,101 @@ class Betterdocs_Category_Grid extends Widget_Base
1471
  );
1472
 
1473
  if ( $settings['include'] ) {
1474
- unset($terms_object['parent']);
1475
  $terms_object['include'] = array_diff($settings['include'], (array) $settings['exclude']);
1476
- $terms_object['orderby'] = 'include';
1477
  }
1478
 
1479
  if($settings['exclude']) {
1480
- unset($terms_object['parent']);
1481
  $terms_object['exclude'] = $settings['exclude'];
1482
- $terms_object['orderby'] = 'exclude';
1483
  }
1484
 
1485
- $taxonomy_objects = get_terms($terms_object);
1486
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1487
 
1488
- $html = '<div ' . $this->get_render_attribute_string('bd_category_grid_wrapper') . '>';
1489
- $html .= '<div '.$this->get_render_attribute_string('bd_category_grid_inner').'>';
1490
- if(file_exists($this->get_template($settings['layout_template']))) {
1491
 
1492
- if($taxonomy_objects && ! is_wp_error( $taxonomy_objects )) {
1493
- foreach($taxonomy_objects as $term) {
1494
- ob_start();
1495
- include($this->get_template($settings['layout_template']));
1496
- $html .= ob_get_clean();
 
 
 
 
 
1497
  }
 
 
 
1498
  }else {
1499
- _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1500
  }
 
 
1501
 
1502
- wp_reset_postdata();
1503
-
1504
- }else {
1505
- $html .= '<h4>'.__( 'File Not Found', 'essential-addons-for-elementor-lite' ).'</h4>';
1506
- }
1507
  $html .= '</div>';
1508
- $html .= '<div class="clearfix"></div>';
1509
 
1510
- if (\Elementor\Plugin::instance()->editor->is_edit_mode()) {
1511
- $this->render_editor_script();
1512
- }
1513
- $html .= '</div>';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1514
 
1515
- echo $html;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1516
 
1517
  }
1518
 
@@ -1526,8 +1704,6 @@ class Betterdocs_Category_Grid extends Widget_Base
1526
  $gallery = $(this);
1527
  $layout_mode = $gallery.data('layout-mode');
1528
 
1529
- console.log($layout_mode);
1530
-
1531
 
1532
  if($layout_mode === 'masonry') {
1533
  // init isotope
1
  <?php
2
+
3
  namespace Essential_Addons_Elementor\Elements;
4
 
5
  // If this file is called directly, abort.
7
  exit;
8
  }
9
 
10
+ use \Elementor\Controls_Manager;
11
  use \Elementor\Group_Control_Background;
12
+ use \Elementor\Group_Control_Border;
13
+ use \Elementor\Group_Control_Typography;
14
+ use \Elementor\Widget_Base;
15
  use \Elementor\Group_Control_Box_Shadow;
16
+ use \Essential_Addons_Elementor\Classes\Controls;
17
+ use \Essential_Addons_Elementor\Classes\Helper;
18
 
19
  class Betterdocs_Category_Grid extends Widget_Base
20
  {
 
 
21
  use \Essential_Addons_Elementor\Traits\Template_Query;
22
 
23
  public function get_name()
107
  * Query Controls!
108
  * @source includes/elementor-helper.php
109
  */
110
+ do_action('eael/controls/betterdocs/query', $this);
111
 
112
  /**
113
  * ----------------------------------------------------------
126
  [
127
  'label' => __('Select Layout', 'essential-addons-for-elementor-lite'),
128
  'type' => Controls_Manager::SELECT2,
129
+ 'options' => $this->template_options(),
130
  'default' => $this->get_default(),
131
  'label_block' => true
132
  ]
647
  'size_units' => [ 'px', '%', 'em' ],
648
  'selectors' => [
649
  '{{WRAPPER}} .layout-2 .eael-docs-cat-title' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
650
+ '{{WRAPPER}} .eael-bd-cg-header' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
651
+ '{{WRAPPER}} .eael-bd-cg-header .eael-bd-cg-header-inner' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
652
  ]
653
  ]
654
  );
759
  ]
760
  );
761
 
762
+ $this->add_group_control(
763
+ Group_Control_Typography::get_type(),
764
+ [
765
+ 'name' => 'count_font_size',
766
+ 'selector' => '{{WRAPPER}} .eael-docs-item-count',
767
+ ]
768
+ );
769
+
770
+ $this->add_responsive_control(
771
+ 'count_size',
772
+ [
773
+ 'label' => __('Size', 'essential-addons-for-elementor-lite'),
774
+ 'type' => Controls_Manager::SLIDER,
775
+ 'size_units' => ['px', '%', 'em'],
776
+ 'range' => [
777
+ '%' => [
778
+ 'max' => 100,
779
+ 'step' => 1,
780
+ ],
781
+ ],
782
+ 'selectors' => [
783
+ '{{WRAPPER}} .eael-docs-item-count' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
784
+ ],
785
+ 'condition' => [
786
+ 'layout_template!' => 'Layout_2'
787
+ ]
788
+ ]
789
+ );
790
+
791
+ $this->start_controls_tabs( 'count_settings_tabs' );
792
+
793
+ // Normal State Tab
794
+ $this->start_controls_tab(
795
+ 'count_normal',
796
+ ['label' => esc_html__('Normal', 'essential-addons-for-elementor-lite')]
797
+ );
798
+
799
  $this->add_control(
800
  'count_color',
801
  [
833
  ]
834
  );
835
 
836
+ $this->add_group_control(
837
+ Group_Control_Border::get_type(),
838
  [
839
+ 'name' => 'count_border', // Legacy control name change it with 'border_size' if anything happens.
840
+ 'label' => __( 'Border', 'essential-addons-for-elementor-lite' ),
841
+ 'selector' => '{{WRAPPER}} .eael-docs-item-count',
842
+ 'condition' => [
843
+ 'layout_template!' => 'Layout_2'
844
+ ]
845
+ ]
846
+ );
847
+
848
+ $this->add_control(
849
+ 'count_border_radius',
850
+ [
851
+ 'label' => __( 'Border Radius', 'essential-addons-for-elementor-lite' ),
852
+ 'type' => Controls_Manager::DIMENSIONS,
853
+ 'size_units' => [ 'px', '%', 'em' ],
854
+ 'selectors' => [
855
+ '{{WRAPPER}} .eael-docs-item-count' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
856
+ ],
857
+ 'condition' => [
858
+ 'layout_template!' => 'Layout_2'
859
+ ]
860
+ ]
861
+ );
862
+
863
+ $this->end_controls_tab();
864
+
865
+ // Hover State Tab
866
+ $this->start_controls_tab(
867
+ 'count_hover',
868
+ ['label' => esc_html__('Hover', 'essential-addons-for-elementor-lite')]
869
+ );
870
+
871
+ $this->add_control(
872
+ 'count_transition',
873
+ [
874
+ 'label' => __( 'Transition', 'essential-addons-elementor' ),
875
+ 'type' => Controls_Manager::SLIDER,
876
+ 'default' => [
877
+ 'size' => '300',
878
+ 'unit' => 'px',
879
+ ],
880
+ 'range' => [
881
+ 'px' => [
882
+ 'min' => 0,
883
+ 'max' => 10000,
884
+ 'step' => 100,
885
  ],
886
  ],
887
+ 'size_units' => [ 'px' ],
888
+ 'selectors' => [
889
+ '{{WRAPPER}} .eael-docs-item-count' => 'transition: {{SIZE}}ms;',
890
+ '{{WRAPPER}} .eael-docs-item-count:after' => 'transition: {{SIZE}}ms;',
891
+ '{{WRAPPER}} .eael-docs-item-count:after' => 'transition: {{SIZE}}ms;',
892
+ ]
893
+ ]
894
+ );
895
+
896
+ $this->add_control(
897
+ 'count_color_hover',
898
+ [
899
+ 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
900
+ 'type' => Controls_Manager::COLOR,
901
  'selectors' => [
902
+ '{{WRAPPER}} .eael-docs-item-count:hover' => 'color: {{VALUE}};',
903
  ],
904
  ]
905
  );
906
 
907
+ $this->add_group_control(
908
+ Group_Control_Background::get_type(),
909
  [
910
+ 'name' => 'count_bg_hover',
911
+ 'types' => ['classic', 'gradient'],
912
+ 'selector' => '{{WRAPPER}} .eael-docs-item-count:hover, {{WRAPPER}} .layout-2 .eael-docs-item-count:hover:before',
913
+ 'exclude' => [
914
+ 'image',
 
 
 
915
  ],
916
+ ]
917
+ );
918
+
919
+ $this->add_control(
920
+ 'count_ticker_color_hover',
921
+ [
922
+ 'label' => esc_html__('Ticker Background', 'essential-addons-for-elementor-lite'),
923
+ 'type' => Controls_Manager::COLOR,
924
  'selectors' => [
925
+ '{{WRAPPER}} .layout-2 .eael-docs-item-count:hover:after' => 'border-top-color: {{VALUE}};',
926
  ],
927
  'condition' => [
928
+ 'layout_template' => 'Layout_2'
929
  ]
930
  ]
931
  );
933
  $this->add_group_control(
934
  Group_Control_Border::get_type(),
935
  [
936
+ 'name' => 'count_border_hover', // Legacy control name change it with 'border_size' if anything happens.
937
  'label' => __( 'Border', 'essential-addons-for-elementor-lite' ),
938
+ 'selector' => '{{WRAPPER}} .eael-docs-item-count:hover',
939
  'condition' => [
940
  'layout_template!' => 'Layout_2'
941
  ]
943
  );
944
 
945
  $this->add_control(
946
+ 'count_border_radius_hover',
947
  [
948
  'label' => __( 'Border Radius', 'essential-addons-for-elementor-lite' ),
949
  'type' => Controls_Manager::DIMENSIONS,
950
  'size_units' => [ 'px', '%', 'em' ],
951
  'selectors' => [
952
+ '{{WRAPPER}} .eael-docs-item-count:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
953
  ],
954
  'condition' => [
955
  'layout_template!' => 'Layout_2'
957
  ]
958
  );
959
 
960
+ $this->end_controls_tab();
961
+
962
+ $this->end_controls_tabs();
963
+
964
+
965
  $this->end_controls_section(); # end of 'Count Settings'
966
 
967
  /**
1428
  ['label' => esc_html__('Hover', 'essential-addons-for-elementor-lite')]
1429
  );
1430
 
1431
+ $this->add_control(
1432
+ 'button_transition',
1433
+ [
1434
+ 'label' => __( 'Transition', 'essential-addons-elementor' ),
1435
+ 'type' => Controls_Manager::SLIDER,
1436
+ 'default' => [
1437
+ 'size' => '300',
1438
+ 'unit' => 'px',
1439
+ ],
1440
+ 'range' => [
1441
+ 'px' => [
1442
+ 'min' => 0,
1443
+ 'max' => 10000,
1444
+ 'step' => 100,
1445
+ ],
1446
+ ],
1447
+ 'size_units' => [ 'px' ],
1448
+ 'selectors' => [
1449
+ '{{WRAPPER}} .eael-bd-cg-button' => 'transition: {{SIZE}}ms;',
1450
+ ]
1451
+ ]
1452
+ );
1453
+
1454
  $this->add_control(
1455
  'button_color_hover',
1456
  [
1596
  );
1597
 
1598
  if ( $settings['include'] ) {
 
1599
  $terms_object['include'] = array_diff($settings['include'], (array) $settings['exclude']);
 
1600
  }
1601
 
1602
  if($settings['exclude']) {
 
1603
  $terms_object['exclude'] = $settings['exclude'];
 
1604
  }
1605
 
1606
+ $default_multiple_kb = Helper::get_betterdocs_multiple_kb_status();
1607
 
1608
+ if ($settings['layout_template'] == 'Layout_2') {
1609
+ $settings['layout_template'] = 'layout-2';
1610
+ }
1611
+
1612
+ if($default_multiple_kb) {
1613
+
1614
+ $taxonomy_objects = Helper::get_multiple_kb_terms(false, false);
1615
+
1616
+ $meta_query = '';
1617
+
1618
+ if(!empty($settings['selected_knowledge_base'])){
1619
+ $terms_object['meta_query'] = array(
1620
+ array(
1621
+ 'relation' => 'OR',
1622
+ array(
1623
+ 'key' => 'doc_category_knowledge_base',
1624
+ 'value' => $settings['selected_knowledge_base'],
1625
+ 'compare' => 'LIKE'
1626
+ )
1627
+ ),
1628
+ );
1629
+ }
1630
 
1631
+
1632
+ $taxonomy_objects = get_terms( $terms_object );
 
1633
 
1634
+ $html = '<div ' . $this->get_render_attribute_string('bd_category_grid_wrapper') . '>';
1635
+ $html .= '<div '.$this->get_render_attribute_string('bd_category_grid_inner').'>';
1636
+ if(file_exists($this->get_template($settings['layout_template']))) {
1637
+
1638
+ if($taxonomy_objects && ! is_wp_error( $taxonomy_objects )) {
1639
+ foreach($taxonomy_objects as $term) {
1640
+ echo Helper::include_with_variable($this->get_template($settings['layout_template']), ['term' => $term, 'settings' => $settings, 'default_multiple_kb' => $default_multiple_kb]);
1641
+ }
1642
+ }else {
1643
+ _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1644
  }
1645
+
1646
+ wp_reset_postdata();
1647
+
1648
  }else {
1649
+ $html .= '<h4>'.__( 'File Not Found', 'essential-addons-for-elementor-lite' ).'</h4>';
1650
  }
1651
+ $html .= '</div>';
1652
+ $html .= '<div class="clearfix"></div>';
1653
 
1654
+ if (\Elementor\Plugin::instance()->editor->is_edit_mode()) {
1655
+ $this->render_editor_script();
1656
+ }
 
 
1657
  $html .= '</div>';
 
1658
 
1659
+ echo $html;
1660
+
1661
+
1662
+ }else {
1663
+ $taxonomy_objects = get_terms($terms_object);
1664
+
1665
+ $html = '<div ' . $this->get_render_attribute_string('bd_category_grid_wrapper') . '>';
1666
+ $html .= '<div '.$this->get_render_attribute_string('bd_category_grid_inner').'>';
1667
+ if(file_exists($this->get_template($settings['layout_template']))) {
1668
+
1669
+ if($taxonomy_objects && ! is_wp_error( $taxonomy_objects )) {
1670
+ foreach($taxonomy_objects as $term) {
1671
+ ob_start();
1672
+ include($this->get_template($settings['layout_template']));
1673
+ $html .= ob_get_clean();
1674
+ }
1675
+ }else {
1676
+ _e('<p class="no-posts-found">No posts found!</p>', 'essential-addons-for-elementor-lite');
1677
+ }
1678
 
1679
+ wp_reset_postdata();
1680
+
1681
+ }else {
1682
+ $html .= '<h4>'.__( 'File Not Found', 'essential-addons-for-elementor-lite' ).'</h4>';
1683
+ }
1684
+ $html .= '</div>';
1685
+ $html .= '<div class="clearfix"></div>';
1686
+
1687
+ if (\Elementor\Plugin::instance()->editor->is_edit_mode()) {
1688
+ $this->render_editor_script();
1689
+ }
1690
+ $html .= '</div>';
1691
+
1692
+ echo $html;
1693
+ }
1694
 
1695
  }
1696
 
1704
  $gallery = $(this);
1705
  $layout_mode = $gallery.data('layout-mode');
1706
 
 
 
1707
 
1708
  if($layout_mode === 'masonry') {
1709
  // init isotope
includes/Elements/Betterdocs_Search_Form.php CHANGED
@@ -7,18 +7,18 @@ if (!defined('ABSPATH')) {
7
  exit;
8
  }
9
 
10
- use \Elementor\Controls_Manager as Controls_Manager;
11
- use \Elementor\Group_Control_Border as Group_Control_Border;
12
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
13
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
14
  use \Elementor\Group_Control_Background;
15
- use \Elementor\Scheme_Typography as Scheme_Typography;
16
- use \Elementor\Widget_Base as Widget_Base;
17
 
18
  class Betterdocs_Search_Form extends Widget_Base
19
  {
20
 
21
- use \Essential_Addons_Elementor\Traits\Helper;
22
 
23
  public function get_name()
24
  {
7
  exit;
8
  }
9
 
10
+ use \Elementor\Controls_Manager;
11
+ use \Elementor\Group_Control_Border;
12
+ use \Elementor\Group_Control_Box_Shadow;
13
+ use \Elementor\Group_Control_Typography;
14
  use \Elementor\Group_Control_Background;
15
+ use \Elementor\Scheme_Typography;
16
+ use \Elementor\Widget_Base;
17
 
18
  class Betterdocs_Search_Form extends Widget_Base
19
  {
20
 
21
+
22
 
23
  public function get_name()
24
  {
includes/Elements/Caldera_Forms.php CHANGED
@@ -6,18 +6,17 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Scheme_Typography as Scheme_Typography;
14
- use \Elementor\Widget_Base as Widget_Base;
 
15
 
16
  class Caldera_Forms extends Widget_Base
17
  {
18
 
19
- use \Essential_Addons_Elementor\Traits\Helper;
20
-
21
  public function get_name()
22
  {
23
  return 'eael-caldera-form';
@@ -97,7 +96,7 @@ class Caldera_Forms extends Widget_Base
97
  'label' => esc_html__('Caldera Form', 'essential-addons-for-elementor-lite'),
98
  'type' => Controls_Manager::SELECT,
99
  'label_block' => true,
100
- 'options' => $this->eael_select_caldera_form(),
101
  'default' => '0',
102
  ]
103
  );
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
+ use \Elementor\Scheme_Typography;
14
+ use \Elementor\Widget_Base;
15
+ use \Essential_Addons_Elementor\Classes\Helper;
16
 
17
  class Caldera_Forms extends Widget_Base
18
  {
19
 
 
 
20
  public function get_name()
21
  {
22
  return 'eael-caldera-form';
96
  'label' => esc_html__('Caldera Form', 'essential-addons-for-elementor-lite'),
97
  'type' => Controls_Manager::SELECT,
98
  'label_block' => true,
99
+ 'options' => Helper::get_caldera_form_list(),
100
  'default' => '0',
101
  ]
102
  );
includes/Elements/Contact_Form_7.php CHANGED
@@ -7,18 +7,18 @@ if (!defined('ABSPATH')) {
7
  exit;
8
  }
9
 
10
- use \Elementor\Controls_Manager as Controls_Manager;
11
- use \Elementor\Group_Control_Background as Group_Control_Background;
12
- use \Elementor\Group_Control_Border as Group_Control_Border;
13
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
14
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
15
- use \Elementor\Scheme_Typography as Scheme_Typography;
16
- use \Elementor\Widget_Base as Widget_Base;
 
 
17
 
18
  class Contact_Form_7 extends Widget_Base
19
  {
20
- use \Essential_Addons_Elementor\Traits\Helper;
21
-
22
  /**
23
  * Retrieve contact form 7 widget name.
24
  *
@@ -138,7 +138,7 @@ class Contact_Form_7 extends Widget_Base
138
  'label' => esc_html__('Select Form', 'essential-addons-for-elementor-lite'),
139
  'type' => Controls_Manager::SELECT,
140
  'label_block' => true,
141
- 'options' => $this->eael_select_contact_form(),
142
  'default' => '0',
143
  ]
144
  );
7
  exit;
8
  }
9
 
10
+ use \Elementor\Controls_Manager;
11
+ use \Elementor\Group_Control_Background;
12
+ use \Elementor\Group_Control_Border;
13
+ use \Elementor\Group_Control_Box_Shadow;
14
+ use \Elementor\Group_Control_Typography;
15
+ use \Elementor\Scheme_Typography;
16
+ use \Elementor\Widget_Base;
17
+
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
 
20
  class Contact_Form_7 extends Widget_Base
21
  {
 
 
22
  /**
23
  * Retrieve contact form 7 widget name.
24
  *
138
  'label' => esc_html__('Select Form', 'essential-addons-for-elementor-lite'),
139
  'type' => Controls_Manager::SELECT,
140
  'label_block' => true,
141
+ 'options' => Helper::get_wpcf7_list(),
142
  'default' => '0',
143
  ]
144
  );
includes/Elements/Content_Ticker.php CHANGED
@@ -11,11 +11,13 @@ use \Elementor\Controls_Manager;
11
  use \Elementor\Group_Control_Border;
12
  use \Elementor\Group_Control_Typography;
13
  use \Elementor\Widget_Base;
 
 
14
 
15
  class Content_Ticker extends Widget_Base
16
  {
17
- use \Essential_Addons_Elementor\Traits\Helper;
18
- use \Essential_Addons_Elementor\Template\Content\Content_Ticker;
19
 
20
  public function get_name()
21
  {
@@ -122,7 +124,7 @@ class Content_Ticker extends Widget_Base
122
  * Query Controls
123
  * @source includes/helper.php
124
  */
125
- $this->eael_query_controls();
126
 
127
  do_action('eael_ticker_custom_content_controls', $this);
128
 
@@ -457,9 +459,9 @@ class Content_Ticker extends Widget_Base
457
  $this->add_control(
458
  'eael_ticker_tag_color',
459
  [
460
- 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
461
- 'type' => Controls_Manager::COLOR,
462
- 'default' => '#fff',
463
  'selectors' => [
464
  '{{WRAPPER}} .eael-ticker-wrap .ticker-badge span' => 'color: {{VALUE}};',
465
  ],
@@ -733,8 +735,8 @@ class Content_Ticker extends Widget_Base
733
  protected function render()
734
  {
735
  $settings = $this->get_settings_for_display();
736
- $settings = $this->fix_old_query($settings);
737
- $args = $this->eael_get_query_args($settings);
738
 
739
  $this->add_render_attribute('content-ticker-wrap', 'class', 'swiper-container-wrap eael-ticker');
740
 
@@ -789,7 +791,7 @@ class Content_Ticker extends Widget_Base
789
  if ($settings['arrows'] == 'yes') {
790
  $this->add_render_attribute('content-ticker', 'data-arrows', '1');
791
  }
792
-
793
  echo '<div class="eael-ticker-wrap" id="eael-ticker-wrap-' . $this->get_id() . '">';
794
  if (!empty($settings['eael_ticker_tag_text'])) {
795
  echo '<div class="ticker-badge">
@@ -800,12 +802,33 @@ class Content_Ticker extends Widget_Base
800
  echo '<div ' . $this->get_render_attribute_string('content-ticker-wrap') . '>
801
  <div ' . $this->get_render_attribute_string('content-ticker') . '>
802
  <div class="swiper-wrapper">';
803
- if ('dynamic' === $settings['eael_ticker_type']) {
804
- echo self::render_template_($args, null);
805
- }
806
 
807
- do_action('render_content_ticker_custom_content', $settings);
808
- echo '</div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
809
  </div>
810
  ' . $this->render_arrows() . '
811
  </div>
11
  use \Elementor\Group_Control_Border;
12
  use \Elementor\Group_Control_Typography;
13
  use \Elementor\Widget_Base;
14
+ use \Essential_Addons_Elementor\Classes\Helper;
15
+ use \Essential_Addons_Elementor\Classes\Controls;
16
 
17
  class Content_Ticker extends Widget_Base
18
  {
19
+
20
+ use \Essential_Addons_Elementor\Traits\Template_Query;
21
 
22
  public function get_name()
23
  {
124
  * Query Controls
125
  * @source includes/helper.php
126
  */
127
+ do_action('eael/controls/query', $this);
128
 
129
  do_action('eael_ticker_custom_content_controls', $this);
130
 
459
  $this->add_control(
460
  'eael_ticker_tag_color',
461
  [
462
+ 'label' => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
463
+ 'type' => Controls_Manager::COLOR,
464
+ 'default' => '#fff',
465
  'selectors' => [
466
  '{{WRAPPER}} .eael-ticker-wrap .ticker-badge span' => 'color: {{VALUE}};',
467
  ],
735
  protected function render()
736
  {
737
  $settings = $this->get_settings_for_display();
738
+ $settings = Helper::fix_old_query($settings);
739
+ $args = Helper::get_query_args($settings);
740
 
741
  $this->add_render_attribute('content-ticker-wrap', 'class', 'swiper-container-wrap eael-ticker');
742
 
791
  if ($settings['arrows'] == 'yes') {
792
  $this->add_render_attribute('content-ticker', 'data-arrows', '1');
793
  }
794
+
795
  echo '<div class="eael-ticker-wrap" id="eael-ticker-wrap-' . $this->get_id() . '">';
796
  if (!empty($settings['eael_ticker_tag_text'])) {
797
  echo '<div class="ticker-badge">
802
  echo '<div ' . $this->get_render_attribute_string('content-ticker-wrap') . '>
803
  <div ' . $this->get_render_attribute_string('content-ticker') . '>
804
  <div class="swiper-wrapper">';
 
 
 
805
 
806
+ if ('dynamic' === $settings['eael_ticker_type']) {
807
+ if (\file_exists($this->get_template($settings['eael_ticker_type']))) {
808
+ $query = new \WP_Query($args);
809
+
810
+ if ($query->have_posts()) {
811
+ while ($query->have_posts()) {
812
+ $query->the_post();
813
+
814
+ include $this->get_template($settings['eael_ticker_type']);
815
+ }
816
+
817
+ wp_reset_postdata();
818
+ }
819
+
820
+ } else {
821
+ echo '<div class="swiper-slide"><a href="#" class="ticker-content">' . __('No content found!', 'essential-addons-for-elementor-lite') . '</a></div>';
822
+ }
823
+ } elseif ('custom' === $settings['eael_ticker_type']) {
824
+ if (\file_exists($this->get_template($settings['eael_ticker_type']))) {
825
+ foreach ($settings['eael_ticker_custom_contents'] as $content) {
826
+ echo Helper::include_with_variable($this->get_template($settings['eael_ticker_type']), ['content' => $content['eael_ticker_custom_content'], 'link' => $content['eael_ticker_custom_content_link']]);
827
+ }
828
+ }
829
+ }
830
+
831
+ echo '</div>
832
  </div>
833
  ' . $this->render_arrows() . '
834
  </div>
includes/Elements/Countdown.php CHANGED
@@ -6,16 +6,18 @@ if ( !defined( 'ABSPATH' ) ) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
  use \Elementor\Plugin;
14
- use \Elementor\Scheme_Typography as Scheme_Typography;
15
- use \Elementor\Widget_Base as Widget_Base;
 
 
16
 
17
  class Countdown extends Widget_Base {
18
- use \Essential_Addons_Elementor\Traits\Helper;
19
 
20
  public function get_name() {
21
  return 'eael-countdown';
@@ -435,7 +437,7 @@ class Countdown extends Widget_Base {
435
  [
436
  'label' => __( 'Choose Template', 'essential-addons-for-elementor-lite' ),
437
  'type' => Controls_Manager::SELECT,
438
- 'options' => $this->eael_get_page_templates(),
439
  'condition' => [
440
  'countdown_expire_type' => 'template',
441
  ],
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
  use \Elementor\Plugin;
14
+ use \Elementor\Scheme_Typography;
15
+ use \Elementor\Widget_Base;
16
+
17
+ use \Essential_Addons_Elementor\Classes\Helper;
18
 
19
  class Countdown extends Widget_Base {
20
+
21
 
22
  public function get_name() {
23
  return 'eael-countdown';
437
  [
438
  'label' => __( 'Choose Template', 'essential-addons-for-elementor-lite' ),
439
  'type' => Controls_Manager::SELECT,
440
+ 'options' => Helper::get_elementor_templates(),
441
  'condition' => [
442
  'countdown_expire_type' => 'template',
443
  ],
includes/Elements/Creative_Button.php CHANGED
@@ -61,8 +61,7 @@ class Creative_Button extends Widget_Base
61
  protected function _register_controls()
62
  {
63
 
64
- if (!apply_filters('eael/pro_enabled', false)) {
65
-
66
  // Content Controls
67
  $this->start_controls_section(
68
  'eael_section_creative_button_content',
@@ -165,9 +164,7 @@ class Creative_Button extends Widget_Base
165
  do_action('eael_creative_button_pro_controls', $this);
166
  }
167
 
168
-
169
-
170
- if (!apply_filters('eael/pro_enabled', false)) {
171
  $this->start_controls_section(
172
  'eael_section_pro',
173
  [
61
  protected function _register_controls()
62
  {
63
 
64
+ if ( !apply_filters( 'eael/pro_enabled', false ) ) {
 
65
  // Content Controls
66
  $this->start_controls_section(
67
  'eael_section_creative_button_content',
164
  do_action('eael_creative_button_pro_controls', $this);
165
  }
166
 
167
+ if ( !apply_filters( 'eael/pro_enabled', false ) ) {
 
 
168
  $this->start_controls_section(
169
  'eael_section_pro',
170
  [
includes/Elements/Cta_Box.php CHANGED
@@ -14,9 +14,11 @@ use \Elementor\Group_Control_Typography;
14
  use \Elementor\Utils;
15
  use \Elementor\Widget_Base;
16
 
 
 
17
  class Cta_Box extends Widget_Base
18
  {
19
- use \Essential_Addons_Elementor\Traits\Helper;
20
 
21
  public function get_name()
22
  {
@@ -216,7 +218,7 @@ class Cta_Box extends Widget_Base
216
  [
217
  'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
218
  'type' => Controls_Manager::SELECT,
219
- 'options' => $this->eael_get_page_templates(),
220
  'condition' => [
221
  'eael_cta_title_content_type' => 'template',
222
  ],
14
  use \Elementor\Utils;
15
  use \Elementor\Widget_Base;
16
 
17
+ use \Essential_Addons_Elementor\Classes\Helper;
18
+
19
  class Cta_Box extends Widget_Base
20
  {
21
+
22
 
23
  public function get_name()
24
  {
218
  [
219
  'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
220
  'type' => Controls_Manager::SELECT,
221
+ 'options' => Helper::get_elementor_templates(),
222
  'condition' => [
223
  'eael_cta_title_content_type' => 'template',
224
  ],
includes/Elements/Data_Table.php CHANGED
@@ -15,9 +15,10 @@ use \Elementor\Utils;
15
  use \Elementor\Widget_Base;
16
  use \Elementor\Repeater;
17
 
18
- class Data_Table extends Widget_Base
19
- {
20
- use \Essential_Addons_Elementor\Traits\Helper;
 
21
 
22
  public $unique_id = null;
23
  public function get_name()
@@ -317,7 +318,7 @@ class Data_Table extends Widget_Base
317
  [
318
  'label' => __( 'Choose Template', 'essential-addons-for-elementor-lite'),
319
  'type' => Controls_Manager::SELECT,
320
- 'options' => $this->eael_get_page_templates(),
321
  'condition' => [
322
  'eael_data_table_content_type' => 'template',
323
  ],
15
  use \Elementor\Widget_Base;
16
  use \Elementor\Repeater;
17
 
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
+
20
+ class Data_Table extends Widget_Base {
21
+
22
 
23
  public $unique_id = null;
24
  public function get_name()
318
  [
319
  'label' => __( 'Choose Template', 'essential-addons-for-elementor-lite'),
320
  'type' => Controls_Manager::SELECT,
321
+ 'options' => Helper::get_elementor_templates(),
322
  'condition' => [
323
  'eael_data_table_content_type' => 'template',
324
  ],
includes/Elements/Event_Calendar.php CHANGED
@@ -14,34 +14,42 @@ use \Elementor\Group_Control_Box_Shadow;
14
  use \Elementor\Group_Control_Typography;
15
  use \Elementor\Repeater;
16
  use \Elementor\Widget_Base;
 
17
 
18
- class Event_Calendar extends Widget_Base {
19
- use \Essential_Addons_Elementor\Traits\Helper;
 
20
 
21
- public function get_name () {
 
22
  return 'eael-event-calendar';
23
  }
24
 
25
- public function get_style_depends () {
 
26
  return [
27
  'font-awesome-5-all',
28
  'font-awesome-4-shim',
29
  ];
30
  }
31
 
32
- public function get_title () {
 
33
  return esc_html__('Event Calendar', 'essential-addons-for-elementor-lite');
34
  }
35
 
36
- public function get_icon () {
 
37
  return 'eaicon-event-calendar';
38
  }
39
 
40
- public function get_categories () {
 
41
  return ['essential-addons-elementor'];
42
  }
43
-
44
- public function get_keywords() {
 
45
  return [
46
  'event',
47
  'events',
@@ -55,15 +63,17 @@ class Event_Calendar extends Widget_Base {
55
  'event calendar',
56
  'modern events',
57
  'ea',
58
- 'essential addons'
59
  ];
60
  }
61
 
62
- public function get_custom_help_url() {
 
63
  return 'https://essential-addons.com/elementor/docs/event-calendar/';
64
  }
65
 
66
- protected function _register_controls () {
 
67
  /**
68
  * -------------------------------------------
69
  * Events
@@ -73,16 +83,16 @@ class Event_Calendar extends Widget_Base {
73
  'eael_event_section',
74
  [
75
  'label' => __('Events', 'essential-addons-for-elementor-lite'),
76
- 'tab' => Controls_Manager::TAB_CONTENT,
77
  ]
78
  );
79
 
80
  $this->add_control(
81
  'eael_event_calendar_type',
82
  [
83
- 'label' => __('Source', 'essential-addons-for-elementor-lite'),
84
- 'type' => Controls_Manager::SELECT,
85
- 'options' => apply_filters('eael/event-calendar/source', [
86
  'manual' => __('Manual', 'essential-addons-for-elementor-lite'),
87
  'google' => __('Google', 'essential-addons-for-elementor-lite'),
88
  'the_events_calendar' => __('The Events Calendar', 'essential-addons-for-elementor-lite'),
@@ -96,8 +106,8 @@ class Event_Calendar extends Widget_Base {
96
  $this->add_control(
97
  'eael_the_event_calendar_warning_text',
98
  [
99
- 'type' => Controls_Manager::RAW_HTML,
100
- 'raw' => __('<strong>The Events Calendar</strong> is not installed/activated on your site. Please install and activate <a href="plugin-install.php?s=the-events-calendar&tab=search&type=term" target="_blank">The Events Calendar</a> first.',
101
  'essential-addons-for-elementor'),
102
  'content_classes' => 'eael-warning',
103
  'condition' => [
@@ -120,7 +130,6 @@ class Event_Calendar extends Widget_Base {
120
  );
121
  }
122
 
123
-
124
  do_action('eael/event-calendar/activation-notice', $this);
125
 
126
  $repeater = new Repeater;
@@ -136,8 +145,8 @@ class Event_Calendar extends Widget_Base {
136
  $repeater->add_control(
137
  'eael_event_title',
138
  [
139
- 'label' => __('Title', 'essential-addons-for-elementor-lite'),
140
- 'type' => Controls_Manager::TEXT,
141
  'label_block' => true,
142
  ]
143
  );
@@ -145,9 +154,9 @@ class Event_Calendar extends Widget_Base {
145
  $repeater->add_control(
146
  'eael_event_link',
147
  [
148
- 'label' => __('Link', 'essential-addons-for-elementor-lite'),
149
- 'type' => Controls_Manager::URL,
150
- 'placeholder' => __('https://sample-domain.com', 'essential-addons-for-elementor-lite'),
151
  'show_external' => true,
152
  ]
153
  );
@@ -155,9 +164,9 @@ class Event_Calendar extends Widget_Base {
155
  $repeater->add_control(
156
  'eael_event_all_day',
157
  [
158
- 'label' => __('All Day', 'essential-addons-for-elementor-lite'),
159
- 'type' => Controls_Manager::SWITCHER,
160
- 'label_block' => false,
161
  'return_value' => 'yes',
162
  ]
163
  );
@@ -165,9 +174,9 @@ class Event_Calendar extends Widget_Base {
165
  $repeater->add_control(
166
  'eael_event_start_date',
167
  [
168
- 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
169
- 'type' => Controls_Manager::DATE_TIME,
170
- 'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
171
  'condition' => [
172
  'eael_event_all_day' => '',
173
  ],
@@ -177,9 +186,9 @@ class Event_Calendar extends Widget_Base {
177
  $repeater->add_control(
178
  'eael_event_end_date',
179
  [
180
- 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
181
- 'type' => Controls_Manager::DATE_TIME,
182
- 'default' => date('Y-m-d H:i', strtotime("+59 minute", current_time('timestamp', 0))),
183
  'condition' => [
184
  'eael_event_all_day' => '',
185
  ],
@@ -189,11 +198,11 @@ class Event_Calendar extends Widget_Base {
189
  $repeater->add_control(
190
  'eael_event_start_date_allday',
191
  [
192
- 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
193
- 'type' => Controls_Manager::DATE_TIME,
194
  'picker_options' => ['enableTime' => false],
195
- 'default' => date('Y-m-d', current_time('timestamp', 0)),
196
- 'condition' => [
197
  'eael_event_all_day' => 'yes',
198
  ],
199
  ]
@@ -202,11 +211,11 @@ class Event_Calendar extends Widget_Base {
202
  $repeater->add_control(
203
  'eael_event_end_date_allday',
204
  [
205
- 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
206
- 'type' => Controls_Manager::DATE_TIME,
207
  'picker_options' => ['enableTime' => false],
208
- 'default' => date('Y-m-d', current_time('timestamp', 0)),
209
- 'condition' => [
210
  'eael_event_all_day' => 'yes',
211
  ],
212
  ]
@@ -215,8 +224,8 @@ class Event_Calendar extends Widget_Base {
215
  $repeater->add_control(
216
  'eael_event_bg_color',
217
  [
218
- 'label' => __('Event Background Color', 'essential-addons-for-elementor-lite'),
219
- 'type' => Controls_Manager::COLOR,
220
  'default' => '#5725ff',
221
  ]
222
  );
@@ -224,8 +233,8 @@ class Event_Calendar extends Widget_Base {
224
  $repeater->add_control(
225
  'eael_event_text_color',
226
  [
227
- 'label' => __('Event Text Color', 'essential-addons-for-elementor-lite'),
228
- 'type' => Controls_Manager::COLOR,
229
  'default' => '#ffffff',
230
  ]
231
  );
@@ -233,8 +242,8 @@ class Event_Calendar extends Widget_Base {
233
  $repeater->add_control(
234
  'eael_event_border_color',
235
  [
236
- 'label' => __('Popup Ribbon Color', 'essential-addons-for-elementor-lite'),
237
- 'type' => Controls_Manager::COLOR,
238
  'default' => '#E8E6ED',
239
  ]
240
  );
@@ -252,7 +261,7 @@ class Event_Calendar extends Widget_Base {
252
  'eael_event_description',
253
  [
254
  'label' => __('Description', 'essential-addons-for-elementor-lite'),
255
- 'type' => Controls_Manager::WYSIWYG,
256
  ]
257
  );
258
 
@@ -261,14 +270,14 @@ class Event_Calendar extends Widget_Base {
261
  $this->add_control(
262
  'eael_event_items',
263
  [
264
- 'label' => __('Event', 'essential-addons-for-elementor-lite'),
265
- 'type' => Controls_Manager::REPEATER,
266
- 'fields' => $repeater->get_controls(),
267
- 'default' => [
268
  ['eael_event_title' => 'Event Title'],
269
  ],
270
  'title_field' => '{{ eael_event_title }}',
271
- 'condition' => [
272
  'eael_event_calendar_type' => 'manual',
273
  ],
274
  ]
@@ -281,8 +290,8 @@ class Event_Calendar extends Widget_Base {
281
  $this->start_controls_section(
282
  'eael_event_google_calendar',
283
  [
284
- 'label' => __('Google Calendar', 'essential-addons-for-elementor-lite'),
285
- 'tab' => Controls_Manager::TAB_CONTENT,
286
  'condition' => [
287
  'eael_event_calendar_type' => 'google',
288
  ],
@@ -292,8 +301,8 @@ class Event_Calendar extends Widget_Base {
292
  $this->add_control(
293
  'eael_event_google_api_key',
294
  [
295
- 'label' => __('APi Key', 'essential-addons-for-elementor-lite'),
296
- 'type' => Controls_Manager::TEXT,
297
  'label_block' => true,
298
  'description' => sprintf(__('<a href="https://essential-addons.com/elementor/docs/google-api-key/" class="eael-btn" target="_blank">%s</a>',
299
  'essential-addons-for-elementor-lite'), 'Get API Key'),
@@ -303,8 +312,8 @@ class Event_Calendar extends Widget_Base {
303
  $this->add_control(
304
  'eael_event_calendar_id',
305
  [
306
- 'label' => __('Calendar ID', 'essential-addons-for-elementor-lite'),
307
- 'type' => Controls_Manager::TEXT,
308
  'label_block' => true,
309
  'description' => sprintf(__('<a href="https://essential-addons.com/elementor/docs/google-calendar-id/" class="eael-btn" target="_blank">%s</a>',
310
  'essential-addons-for-elementor-lite'), 'Get google calendar ID'),
@@ -314,8 +323,8 @@ class Event_Calendar extends Widget_Base {
314
  $this->add_control(
315
  'eael_google_calendar_start_date',
316
  [
317
- 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
318
- 'type' => Controls_Manager::DATE_TIME,
319
  'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
320
  ]
321
  );
@@ -323,8 +332,8 @@ class Event_Calendar extends Widget_Base {
323
  $this->add_control(
324
  'eael_google_calendar_end_date',
325
  [
326
- 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
327
- 'type' => Controls_Manager::DATE_TIME,
328
  'default' => date('Y-m-d H:i', strtotime("+6 months", current_time('timestamp', 0))),
329
  ]
330
  );
@@ -332,9 +341,9 @@ class Event_Calendar extends Widget_Base {
332
  $this->add_control(
333
  'eael_google_calendar_max_result',
334
  [
335
- 'label' => __('Max Result', 'essential-addons-for-elementor-lite'),
336
- 'type' => Controls_Manager::NUMBER,
337
- 'min' => 1,
338
  'default' => 100,
339
  ]
340
  );
@@ -346,8 +355,8 @@ class Event_Calendar extends Widget_Base {
346
  $this->start_controls_section(
347
  'eael_event_the_events_calendar',
348
  [
349
- 'label' => __('The Event Calendar', 'essential-addons-for-elementor-lite'),
350
- 'tab' => Controls_Manager::TAB_CONTENT,
351
  'condition' => [
352
  'eael_event_calendar_type' => 'the_events_calendar',
353
  ],
@@ -357,25 +366,24 @@ class Event_Calendar extends Widget_Base {
357
  $this->add_control(
358
  'eael_the_events_calendar_fetch',
359
  [
360
- 'label' => __('Get Events', 'essential-addons-for-elementor-lite'),
361
- 'type' => Controls_Manager::SELECT,
362
  'label_block' => true,
363
- 'default' => ['all'],
364
- 'options' => [
365
- 'all' => __('All', 'essential-addons-for-elementor-lite'),
366
  'date_range' => __('Date Range', 'essential-addons-for-elementor-lite'),
367
  ],
368
  'render_type' => 'none',
369
  ]
370
  );
371
 
372
-
373
  $this->add_control(
374
  'eael_the_events_calendar_start_date',
375
  [
376
- 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
377
- 'type' => Controls_Manager::DATE_TIME,
378
- 'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
379
  'condition' => [
380
  'eael_the_events_calendar_fetch' => 'date_range',
381
  ],
@@ -385,9 +393,9 @@ class Event_Calendar extends Widget_Base {
385
  $this->add_control(
386
  'eael_the_events_calendar_end_date',
387
  [
388
- 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
389
- 'type' => Controls_Manager::DATE_TIME,
390
- 'default' => date('Y-m-d H:i', strtotime("+6 months", current_time('timestamp', 0))),
391
  'condition' => [
392
  'eael_the_events_calendar_fetch' => 'date_range',
393
  ],
@@ -397,21 +405,21 @@ class Event_Calendar extends Widget_Base {
397
  $this->add_control(
398
  'eael_the_events_calendar_category',
399
  [
400
- 'label' => __('Event Category', 'essential-addons-for-elementor-lite'),
401
- 'type' => Controls_Manager::SELECT2,
402
- 'multiple' => true,
403
  'label_block' => true,
404
- 'default' => [],
405
- 'options' => $this->eael_get_tags(['taxonomy' => 'tribe_events_cat', 'hide_empty' => false]),
406
  ]
407
  );
408
 
409
  $this->add_control(
410
  'eael_the_events_calendar_max_result',
411
  [
412
- 'label' => __('Max Result', 'essential-addons-for-elementor-lite'),
413
- 'type' => Controls_Manager::NUMBER,
414
- 'min' => 1,
415
  'default' => 100,
416
  ]
417
  );
@@ -419,37 +427,91 @@ class Event_Calendar extends Widget_Base {
419
  $this->end_controls_section();
420
  }
421
 
422
-
423
  do_action('eael/event-calendar/source/control', $this);
424
 
425
  $this->start_controls_section(
426
  'eael_event_calendar_section',
427
  [
428
  'label' => __('Calendar', 'essential-addons-for-elementor-lite'),
429
- 'tab' => Controls_Manager::TAB_CONTENT,
430
  ]
431
  );
432
 
433
  $this->add_control(
434
  'eael_event_calendar_language',
435
  [
436
- 'label' => __('Language', 'essential-addons-for-elementor-lite'),
437
- 'type' => Controls_Manager::SELECT,
438
- 'options' => $this->eael_language_code_list(),
439
- 'default' => 'en'
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
440
  ]
441
  );
442
 
443
  $this->add_control(
444
  'eael_event_calendar_default_view',
445
  [
446
- 'label' => __('Calendar Default View', 'essential-addons-for-elementor-lite'),
447
- 'type' => Controls_Manager::SELECT,
448
  'options' => [
449
- 'timeGridDay' => __('Day', 'essential-addons-for-elementor-lite'),
450
  'timeGridWeek' => __('Week', 'essential-addons-for-elementor-lite'),
451
  'dayGridMonth' => __('Month', 'essential-addons-for-elementor-lite'),
452
- 'listMonth' => __('List', 'essential-addons-for-elementor-lite'),
453
  ],
454
  'default' => 'dayGridMonth',
455
  ]
@@ -458,8 +520,8 @@ class Event_Calendar extends Widget_Base {
458
  $this->add_control(
459
  'eael_event_calendar_first_day',
460
  [
461
- 'label' => __('First Day of Week', 'essential-addons-for-elementor-lite'),
462
- 'type' => Controls_Manager::SELECT,
463
  'options' => [
464
  '0' => __('Sunday', 'essential-addons-for-elementor-lite'),
465
  '1' => __('Monday', 'essential-addons-for-elementor-lite'),
@@ -476,11 +538,11 @@ class Event_Calendar extends Widget_Base {
476
  $this->add_control(
477
  'eael_event_details_link_hide',
478
  [
479
- 'label' => __('Hide Event Details Link', 'essential-addons-for-elementor-lite'),
480
- 'type' => Controls_Manager::SWITCHER,
481
- 'label_block' => false,
482
  'return_value' => 'yes',
483
- 'description' => __('Hide Event Details link in event popup','essential-addons-for-elementor-lite')
484
  ]
485
  );
486
 
@@ -488,9 +550,9 @@ class Event_Calendar extends Widget_Base {
488
  $this->add_control(
489
  'eael_event_on_featured_color',
490
  [
491
- 'label' => __('Featured Event Color', 'essential-addons-for-elementor-lite'),
492
- 'type' => Controls_Manager::COLOR,
493
- 'default' => '#ffcb55',
494
  'condition' => [
495
  'eael_event_calendar_type' => 'eventon',
496
  ],
@@ -498,13 +560,12 @@ class Event_Calendar extends Widget_Base {
498
  );
499
  }
500
 
501
-
502
  $this->add_control(
503
  'eael_event_global_bg_color',
504
  [
505
- 'label' => __('Event Background Color', 'essential-addons-for-elementor-lite'),
506
- 'type' => Controls_Manager::COLOR,
507
- 'default' => '#5725ff',
508
  'condition' => [
509
  'eael_event_calendar_type!' => 'manual',
510
  ],
@@ -514,9 +575,9 @@ class Event_Calendar extends Widget_Base {
514
  $this->add_control(
515
  'eael_event_global_text_color',
516
  [
517
- 'label' => __('Event Text Color', 'essential-addons-for-elementor-lite'),
518
- 'type' => Controls_Manager::COLOR,
519
- 'default' => '#ffffff',
520
  'condition' => [
521
  'eael_event_calendar_type!' => 'manual',
522
  ],
@@ -525,16 +586,15 @@ class Event_Calendar extends Widget_Base {
525
  $this->add_control(
526
  'eael_event_global_popup_ribbon_color',
527
  [
528
- 'label' => __('Popup Ribbon Color', 'essential-addons-for-elementor-lite'),
529
- 'type' => Controls_Manager::COLOR,
530
- 'default' => '#10ecab',
531
  'condition' => [
532
  'eael_event_calendar_type!' => 'manual',
533
  ],
534
  ]
535
  );
536
 
537
-
538
  $this->end_controls_section();
539
 
540
  /**
@@ -544,17 +604,17 @@ class Event_Calendar extends Widget_Base {
544
  'eael_event_calendar_interface',
545
  [
546
  'label' => __('Calendar', 'essential-addons-for-elementor-lite'),
547
- 'tab' => Controls_Manager::TAB_STYLE,
548
  ]
549
  );
550
 
551
  $this->add_control(
552
  'calendar_background_color',
553
  [
554
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
555
- 'type' => Controls_Manager::COLOR,
556
  'selectors' => [
557
- '{{WRAPPER}} .eael-event-calendar-wrapper' => 'background: {{VALUE}}',
558
  '{{WRAPPER}} .eael-event-calendar-wrapper table tbody > tr > td' => 'background: {{VALUE}}',
559
  ],
560
  ]
@@ -563,17 +623,17 @@ class Event_Calendar extends Widget_Base {
563
  $this->add_control(
564
  'calendar_border_color',
565
  [
566
- 'label' => __('Border Color', 'essential-addons-for-elementor-lite'),
567
- 'type' => Controls_Manager::COLOR,
568
- 'default' => '#CFCFDA',
569
  'selectors' => [
570
- '{{WRAPPER}} .eael-event-calendar-wrapper .fc td' => 'border-color: {{VALUE}}',
571
- '{{WRAPPER}} .eael-event-calendar-wrapper hr.fc-divider' => 'border-color: {{VALUE}}',
572
- '{{WRAPPER}} .eael-event-calendar-wrapper .fc th' => 'border-color: {{VALUE}}',
573
- '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view td.fc-today' => 'border-left-color: {{VALUE}}',
574
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view table thead:first-child tr:first-child td' => 'border-top-color: {{VALUE}} !important;',
575
- '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view' => 'border-color: {{VALUE}} !important;',
576
- '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view' => 'border-color: {{VALUE}} !important;',
577
  ],
578
  ]
579
  );
@@ -581,8 +641,8 @@ class Event_Calendar extends Widget_Base {
581
  $this->add_group_control(
582
  Group_Control_Box_Shadow::get_type(),
583
  [
584
- 'name' => 'eael_calendar_box_shadow',
585
- 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
586
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view-container .fc-view > table',
587
  ]
588
  );
@@ -590,10 +650,10 @@ class Event_Calendar extends Widget_Base {
590
  $this->add_responsive_control(
591
  'calendar_inside',
592
  [
593
- 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
594
- 'type' => Controls_Manager::DIMENSIONS,
595
  'size_units' => ['px', '%'],
596
- 'selectors' => [
597
  '{{WRAPPER}} .eael-event-calendar-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
598
  ],
599
  ]
@@ -602,13 +662,13 @@ class Event_Calendar extends Widget_Base {
602
  $this->add_responsive_control(
603
  'calendar_outside',
604
  [
605
- 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
606
- 'type' => Controls_Manager::DIMENSIONS,
607
  'size_units' => ['px', '%'],
608
- 'selectors' => [
609
  '{{WRAPPER}} .eael-event-calendar-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
610
  ],
611
- 'separator' => 'after',
612
  ]
613
  );
614
 
@@ -616,15 +676,15 @@ class Event_Calendar extends Widget_Base {
616
  'calendar_title_heading',
617
  [
618
  'label' => __('Title', 'essential-addons-for-elementor-lite'),
619
- 'type' => Controls_Manager::HEADING,
620
  ]
621
  );
622
 
623
  $this->add_group_control(
624
  Group_Control_Typography::get_type(),
625
  [
626
- 'name' => 'calendar_title_typography',
627
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
628
  'selector' => '{{WRAPPER}} .fc-toolbar h2',
629
  ]
630
  );
@@ -632,8 +692,8 @@ class Event_Calendar extends Widget_Base {
632
  $this->add_control(
633
  'calendar_title_color',
634
  [
635
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
636
- 'type' => Controls_Manager::COLOR,
637
  'selectors' => [
638
  '{{WRAPPER}} .fc-toolbar h2' => 'color: {{VALUE}};',
639
  ],
@@ -644,8 +704,8 @@ class Event_Calendar extends Widget_Base {
644
  $this->add_control(
645
  'buttons_style_heading',
646
  [
647
- 'label' => __('Button', 'essential-addons-for-elementor-lite'),
648
- 'type' => Controls_Manager::HEADING,
649
  'separator' => 'before',
650
  ]
651
  );
@@ -653,8 +713,8 @@ class Event_Calendar extends Widget_Base {
653
  $this->add_group_control(
654
  Group_Control_Typography::get_type(),
655
  [
656
- 'name' => 'calendar_button_typography_normal',
657
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
658
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .fc-toolbar.fc-header-toolbar .fc-button',
659
  ]
660
  );
@@ -672,8 +732,8 @@ class Event_Calendar extends Widget_Base {
672
  $this->add_control(
673
  'button_color_normal',
674
  [
675
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
676
- 'type' => Controls_Manager::COLOR,
677
  'selectors' => [
678
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'color: {{VALUE}};',
679
  ],
@@ -683,8 +743,8 @@ class Event_Calendar extends Widget_Base {
683
  $this->add_control(
684
  'button_background_normal',
685
  [
686
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
687
- 'type' => Controls_Manager::COLOR,
688
  'selectors' => [
689
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'background-color: {{VALUE}};',
690
  ],
@@ -694,8 +754,8 @@ class Event_Calendar extends Widget_Base {
694
  $this->add_group_control(
695
  Group_Control_Border::get_type(),
696
  [
697
- 'name' => 'button_border_normal',
698
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
699
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)',
700
  ]
701
  );
@@ -703,10 +763,10 @@ class Event_Calendar extends Widget_Base {
703
  $this->add_responsive_control(
704
  'button_border_radius_normal',
705
  [
706
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
707
- 'type' => Controls_Manager::DIMENSIONS,
708
  'size_units' => ['px', '%'],
709
- 'selectors' => [
710
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
711
  ],
712
  ]
@@ -715,13 +775,13 @@ class Event_Calendar extends Widget_Base {
715
  $this->add_responsive_control(
716
  'buttons_margin',
717
  [
718
- 'label' => esc_html__('Space', 'essential-addons-for-elementor-lite'),
719
- 'type' => Controls_Manager::DIMENSIONS,
720
  'size_units' => ['px', '%'],
721
- 'selectors' => [
722
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
723
  ],
724
- 'separator' => 'after',
725
  ]
726
  );
727
  // Buttons style
@@ -739,8 +799,8 @@ class Event_Calendar extends Widget_Base {
739
  $this->add_control(
740
  'button_color_hover',
741
  [
742
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
743
- 'type' => Controls_Manager::COLOR,
744
  'selectors' => [
745
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'color: {{VALUE}};',
746
  ],
@@ -750,8 +810,8 @@ class Event_Calendar extends Widget_Base {
750
  $this->add_control(
751
  'button_background_hover',
752
  [
753
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
754
- 'type' => Controls_Manager::COLOR,
755
  'selectors' => [
756
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'background-color: {{VALUE}};',
757
  ],
@@ -761,8 +821,8 @@ class Event_Calendar extends Widget_Base {
761
  $this->add_group_control(
762
  Group_Control_Border::get_type(),
763
  [
764
- 'name' => 'button_border_hover',
765
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
766
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover',
767
  ]
768
  );
@@ -770,13 +830,13 @@ class Event_Calendar extends Widget_Base {
770
  $this->add_responsive_control(
771
  'button_border_radius_hover',
772
  [
773
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
774
- 'type' => Controls_Manager::DIMENSIONS,
775
  'size_units' => ['px', '%'],
776
- 'selectors' => [
777
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
778
  ],
779
- 'separator' => 'after',
780
  ]
781
  );
782
 
@@ -793,8 +853,8 @@ class Event_Calendar extends Widget_Base {
793
  $this->add_control(
794
  'button_color_active',
795
  [
796
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
797
- 'type' => Controls_Manager::COLOR,
798
  'selectors' => [
799
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'color: {{VALUE}};',
800
  ],
@@ -804,8 +864,8 @@ class Event_Calendar extends Widget_Base {
804
  $this->add_control(
805
  'button_background_active',
806
  [
807
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
808
- 'type' => Controls_Manager::COLOR,
809
  'selectors' => [
810
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'background-color: {{VALUE}};',
811
  ],
@@ -815,8 +875,8 @@ class Event_Calendar extends Widget_Base {
815
  $this->add_group_control(
816
  Group_Control_Border::get_type(),
817
  [
818
- 'name' => 'button_border_active',
819
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
820
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active',
821
  ]
822
  );
@@ -824,10 +884,10 @@ class Event_Calendar extends Widget_Base {
824
  $this->add_responsive_control(
825
  'button_border_radius_active',
826
  [
827
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
828
- 'type' => Controls_Manager::DIMENSIONS,
829
  'size_units' => ['px', '%'],
830
- 'selectors' => [
831
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
832
  ],
833
  ]
@@ -836,13 +896,13 @@ class Event_Calendar extends Widget_Base {
836
  $this->add_responsive_control(
837
  'buttons_margin_active',
838
  [
839
- 'label' => esc_html__('Space', 'essential-addons-for-elementor-lite'),
840
- 'type' => Controls_Manager::DIMENSIONS,
841
  'size_units' => ['px', '%'],
842
- 'selectors' => [
843
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
844
  ],
845
- 'separator' => 'after',
846
  ]
847
  );
848
 
@@ -860,15 +920,15 @@ class Event_Calendar extends Widget_Base {
860
  'calendar_week_days',
861
  [
862
  'label' => __('Day', 'essential-addons-for-elementor-lite'),
863
- 'tab' => Controls_Manager::TAB_STYLE,
864
  ]
865
  );
866
 
867
  $this->add_group_control(
868
  Group_Control_Typography::get_type(),
869
  [
870
- 'name' => 'days_typography',
871
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
872
  'selector' => '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th > span,{{WRAPPER}} .fc-listWeek-view .fc-list-table .fc-widget-header span,{{WRAPPER}} .fc-listMonth-view .fc-list-table .fc-widget-header span',
873
  ]
874
  );
@@ -876,8 +936,8 @@ class Event_Calendar extends Widget_Base {
876
  $this->add_control(
877
  'days_color',
878
  [
879
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
880
- 'type' => Controls_Manager::COLOR,
881
  'selectors' => [
882
  '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th > span' => 'color: {{VALUE}};',
883
 
@@ -888,24 +948,24 @@ class Event_Calendar extends Widget_Base {
888
  $this->add_responsive_control(
889
  'days_position_alignment',
890
  [
891
- 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
892
- 'type' => Controls_Manager::CHOOSE,
893
- 'options' => [
894
- 'left' => [
895
  'title' => __('Left', 'essential-addons-for-elementor-lite'),
896
- 'icon' => 'fa fa-align-left',
897
  ],
898
  'center' => [
899
  'title' => __('Center', 'essential-addons-for-elementor-lite'),
900
- 'icon' => 'fa fa-align-center',
901
  ],
902
- 'right' => [
903
  'title' => __('Right', 'essential-addons-for-elementor-lite'),
904
- 'icon' => 'fa fa-align-right',
905
  ],
906
  ],
907
- 'default' => 'center',
908
- 'toggle' => true,
909
  'selectors' => [
910
  '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th' => 'text-align: {{VALUE}};',
911
  ],
@@ -915,11 +975,11 @@ class Event_Calendar extends Widget_Base {
915
  $this->add_group_control(
916
  Group_Control_Background::get_type(),
917
  [
918
- 'name' => 'days_background',
919
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
920
- 'types' => ['classic', 'gradient'],
921
  'selector' => '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th',
922
- 'exclude' => [
923
  'image',
924
  ],
925
  ]
@@ -935,15 +995,15 @@ class Event_Calendar extends Widget_Base {
935
  'calendar_week_time',
936
  [
937
  'label' => __('Time', 'essential-addons-for-elementor-lite'),
938
- 'tab' => Controls_Manager::TAB_STYLE,
939
  ]
940
  );
941
 
942
  $this->add_group_control(
943
  Group_Control_Typography::get_type(),
944
  [
945
- 'name' => 'time_typography',
946
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
947
  'selector' => '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-bg table tbody tr>td span, {{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-bg table tbody tr>td span ,{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-slats table tbody tr>td span ,{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-slats table tbody tr>td span',
948
  ]
949
  );
@@ -951,13 +1011,13 @@ class Event_Calendar extends Widget_Base {
951
  $this->add_control(
952
  'time_color',
953
  [
954
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
955
- 'type' => Controls_Manager::COLOR,
956
  'selectors' => [
957
- '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-bg table tbody tr>td span' => 'color: {{VALUE}};',
958
- '{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-bg table tbody tr>td span' => 'color: {{VALUE}};',
959
  '{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-slats table tbody tr>td span' => 'color: {{VALUE}};',
960
- '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-slats table tbody tr>td span' => 'color: {{VALUE}};',
961
 
962
  ],
963
  ]
@@ -969,15 +1029,15 @@ class Event_Calendar extends Widget_Base {
969
  'date_styles',
970
  [
971
  'label' => __('Date', 'essential-addons-for-elementor-lite'),
972
- 'tab' => Controls_Manager::TAB_STYLE,
973
  ]
974
  );
975
 
976
  $this->add_group_control(
977
  Group_Control_Typography::get_type(),
978
  [
979
- 'name' => 'date_typography',
980
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
981
  'selector' => '{{WRAPPER}} .fc-day-number',
982
  ]
983
  );
@@ -985,8 +1045,8 @@ class Event_Calendar extends Widget_Base {
985
  $this->add_control(
986
  'date_color',
987
  [
988
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
989
- 'type' => Controls_Manager::COLOR,
990
  'selectors' => [
991
  '{{WRAPPER}} .fc-day-number' => 'color: {{VALUE}}',
992
  ],
@@ -996,8 +1056,8 @@ class Event_Calendar extends Widget_Base {
996
  $this->add_control(
997
  'date_number_background',
998
  [
999
- 'type' => Controls_Manager::COLOR,
1000
- 'label' => __('Number Background', 'essential-addons-for-elementor-lite'),
1001
  'selectors' => [
1002
  '{{WRAPPER}} .fc-day-number' => 'background: {{VALUE}}',
1003
  ],
@@ -1007,12 +1067,12 @@ class Event_Calendar extends Widget_Base {
1007
  $this->add_control(
1008
  'date_background',
1009
  [
1010
- 'type' => Controls_Manager::COLOR,
1011
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1012
  'selectors' => [
1013
- '{{WRAPPER}} .fc-day' => 'background: {{VALUE}} !important',
1014
  '{{WRAPPER}} .fc-unthemed td.fc-today' => 'background: {{VALUE}} !important',
1015
- '{{WRAPPER}} table tbody > tr > td' => 'background: {{VALUE}} !important',
1016
  ],
1017
  ]
1018
  );
@@ -1020,26 +1080,26 @@ class Event_Calendar extends Widget_Base {
1020
  $this->add_responsive_control(
1021
  'date_position_alignment',
1022
  [
1023
- 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
1024
- 'type' => Controls_Manager::CHOOSE,
1025
- 'options' => [
1026
- 'left' => [
1027
  'title' => __('Left', 'essential-addons-for-elementor-lite'),
1028
- 'icon' => 'fa fa-align-left',
1029
  ],
1030
  'center' => [
1031
  'title' => __('Center', 'essential-addons-for-elementor-lite'),
1032
- 'icon' => 'fa fa-align-center',
1033
  ],
1034
- 'right' => [
1035
  'title' => __('Right', 'essential-addons-for-elementor-lite'),
1036
- 'icon' => 'fa fa-align-right',
1037
  ],
1038
  ],
1039
- 'default' => 'center',
1040
- 'toggle' => true,
1041
  'selectors' => [
1042
- '{{WRAPPER}} .fc-day-number' => 'float: unset',
1043
  '{{WRAPPER}} .fc-view table thead:first-child tr:first-child td' => 'text-align: {{VALUE}};',
1044
  ],
1045
  ]
@@ -1048,10 +1108,10 @@ class Event_Calendar extends Widget_Base {
1048
  $this->add_responsive_control(
1049
  'date_padding',
1050
  [
1051
- 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
1052
- 'type' => Controls_Manager::DIMENSIONS,
1053
  'size_units' => ['px', 'em', '%'],
1054
- 'selectors' => [
1055
  '{{WRAPPER}} .fc-day-number' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1056
  ],
1057
  ]
@@ -1060,10 +1120,10 @@ class Event_Calendar extends Widget_Base {
1060
  $this->add_responsive_control(
1061
  'date_border_radius',
1062
  [
1063
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1064
- 'type' => Controls_Manager::DIMENSIONS,
1065
  'size_units' => ['px', '%'],
1066
- 'selectors' => [
1067
  '{{WRAPPER}} .fc-day-number' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1068
  ],
1069
  ]
@@ -1072,10 +1132,10 @@ class Event_Calendar extends Widget_Base {
1072
  $this->add_responsive_control(
1073
  'date_margin',
1074
  [
1075
- 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
1076
- 'type' => Controls_Manager::DIMENSIONS,
1077
  'size_units' => ['px', 'em', '%'],
1078
- 'selectors' => [
1079
  '{{WRAPPER}} .fc-day-number' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1080
  ],
1081
  ]
@@ -1084,8 +1144,8 @@ class Event_Calendar extends Widget_Base {
1084
  $this->add_control(
1085
  'today_date_setting',
1086
  [
1087
- 'label' => __('Today Date', 'essential-addons-for-elementor-lite'),
1088
- 'type' => Controls_Manager::HEADING,
1089
  'separator' => 'before',
1090
  ]
1091
  );
@@ -1093,9 +1153,9 @@ class Event_Calendar extends Widget_Base {
1093
  $this->add_control(
1094
  'today_date_color',
1095
  [
1096
- 'type' => Controls_Manager::COLOR,
1097
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1098
- 'default' => '#1111e1',
1099
  'selectors' => [
1100
  '{{WRAPPER}} .fc-today .fc-day-number' => 'color: {{VALUE}}',
1101
  ],
@@ -1105,8 +1165,8 @@ class Event_Calendar extends Widget_Base {
1105
  $this->add_control(
1106
  'today_date_background',
1107
  [
1108
- 'type' => Controls_Manager::COLOR,
1109
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1110
  'selectors' => [
1111
  '{{WRAPPER}} .fc-unthemed td.fc-today' => 'background: {{VALUE}} !important',
1112
  ],
@@ -1115,7 +1175,6 @@ class Event_Calendar extends Widget_Base {
1115
 
1116
  $this->end_controls_section();
1117
 
1118
-
1119
  /**
1120
  * Tab: Style => Panel: List
1121
  * -----------------------------------------------
@@ -1124,7 +1183,7 @@ class Event_Calendar extends Widget_Base {
1124
  'calendar_list_view',
1125
  [
1126
  'label' => __('List view', 'essential-addons-for-elementor-lite'),
1127
- 'tab' => Controls_Manager::TAB_STYLE,
1128
  ]
1129
  );
1130
 
@@ -1132,15 +1191,15 @@ class Event_Calendar extends Widget_Base {
1132
  'eael_list_view_header_heading',
1133
  [
1134
  'label' => __('Header', 'essential-addons-for-elementor-lite'),
1135
- 'type' => Controls_Manager::HEADING,
1136
  ]
1137
  );
1138
 
1139
  $this->add_control(
1140
  'list_row_header_color',
1141
  [
1142
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1143
- 'type' => Controls_Manager::COLOR,
1144
  'selectors' => [
1145
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listWeek-view .fc-list-table .fc-widget-header span' => 'color: {{VALUE}};',
1146
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listMonth-view .fc-list-table .fc-widget-header span' => 'color: {{VALUE}};',
@@ -1151,9 +1210,9 @@ class Event_Calendar extends Widget_Base {
1151
  $this->add_control(
1152
  'list_header_background_color',
1153
  [
1154
- 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1155
- 'type' => Controls_Manager::COLOR,
1156
- 'default' => '#f1edf8',
1157
  'selectors' => [
1158
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-heading td.fc-widget-header' => 'background-color: {{VALUE}};',
1159
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-heading td.fc-widget-header' => 'background-color: {{VALUE}};',
@@ -1165,15 +1224,15 @@ class Event_Calendar extends Widget_Base {
1165
  'eael_list_view_body_heading',
1166
  [
1167
  'label' => __('Body', 'essential-addons-for-elementor-lite'),
1168
- 'type' => Controls_Manager::HEADING,
1169
  ]
1170
  );
1171
 
1172
  $this->add_control(
1173
  'list_element_text_color',
1174
  [
1175
- 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1176
- 'type' => Controls_Manager::COLOR,
1177
  'selectors' => [
1178
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listWeek-view .fc-list-table .fc-list-item' => 'color: {{VALUE}};',
1179
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listMonth-view .fc-list-table .fc-list-item' => 'color: {{VALUE}};',
@@ -1184,9 +1243,9 @@ class Event_Calendar extends Widget_Base {
1184
  $this->add_control(
1185
  'list_element_even_color',
1186
  [
1187
- 'label' => __('Even row Color', 'essential-addons-for-elementor-lite'),
1188
- 'type' => Controls_Manager::COLOR,
1189
- 'default' => '#ffffff',
1190
  'selectors' => [
1191
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-item:nth-child(even) td' => 'background-color: {{VALUE}};',
1192
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-item:nth-child(even) td' => 'background-color: {{VALUE}};',
@@ -1196,9 +1255,9 @@ class Event_Calendar extends Widget_Base {
1196
  $this->add_control(
1197
  'list_element_odd_color',
1198
  [
1199
- 'label' => __('Odd row Color', 'essential-addons-for-elementor-lite'),
1200
- 'type' => Controls_Manager::COLOR,
1201
- 'default' => '#ffffff',
1202
  'selectors' => [
1203
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-item:nth-child(odd) td' => 'background-color: {{VALUE}};',
1204
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-item:nth-child(odd) td' => 'background-color: {{VALUE}};',
@@ -1213,15 +1272,15 @@ class Event_Calendar extends Widget_Base {
1213
  'eaelec_event_section',
1214
  [
1215
  'label' => __('Events', 'essential-addons-for-elementor-lite'),
1216
- 'tab' => Controls_Manager::TAB_STYLE,
1217
  ]
1218
  );
1219
 
1220
  $this->add_group_control(
1221
  Group_Control_Typography::get_type(),
1222
  [
1223
- 'name' => 'eael_event_typography',
1224
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1225
  'selector' => '{{WRAPPER}} .fc-content .fc-title,{{WRAPPER}} .fc-content .fc-time,{{WRAPPER}} .eael-event-calendar-wrapper .fc-list-table .fc-list-item td',
1226
  ]
1227
  );
@@ -1229,10 +1288,10 @@ class Event_Calendar extends Widget_Base {
1229
  $this->add_responsive_control(
1230
  'day_event_border_radius',
1231
  [
1232
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1233
- 'type' => Controls_Manager::DIMENSIONS,
1234
  'size_units' => ['px', '%'],
1235
- 'selectors' => [
1236
  '{{WRAPPER}} .fc-day-grid-event' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1237
  ],
1238
  ]
@@ -1241,10 +1300,10 @@ class Event_Calendar extends Widget_Base {
1241
  $this->add_responsive_control(
1242
  'day_event_padding',
1243
  [
1244
- 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
1245
- 'type' => Controls_Manager::DIMENSIONS,
1246
- 'size_units' => ['px'.'em', '%'],
1247
- 'selectors' => [
1248
  '{{WRAPPER}} .fc-day-grid-event' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1249
  ],
1250
  ]
@@ -1253,10 +1312,10 @@ class Event_Calendar extends Widget_Base {
1253
  $this->add_responsive_control(
1254
  'day_event_margin',
1255
  [
1256
- 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
1257
- 'type' => Controls_Manager::DIMENSIONS,
1258
- 'size_units' => ['px'.'em', '%'],
1259
- 'selectors' => [
1260
  '{{WRAPPER}} .fc-day-grid-event' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1261
  ],
1262
  ]
@@ -1268,7 +1327,7 @@ class Event_Calendar extends Widget_Base {
1268
  'event_popup',
1269
  [
1270
  'label' => __('Event Popup', 'essential-addons-for-elementor-lite'),
1271
- 'tab' => Controls_Manager::TAB_STYLE,
1272
  ]
1273
  );
1274
 
@@ -1276,15 +1335,15 @@ class Event_Calendar extends Widget_Base {
1276
  'event_popup_title_heading',
1277
  [
1278
  'label' => __('Title', 'essential-addons-for-elementor-lite'),
1279
- 'type' => Controls_Manager::HEADING,
1280
  ]
1281
  );
1282
 
1283
  $this->add_group_control(
1284
  Group_Control_Typography::get_type(),
1285
  [
1286
- 'name' => 'event_popup_title_typography',
1287
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1288
  'selector' => '{{WRAPPER}} .eaelec-modal-header .eael-ec-modal-title',
1289
  ]
1290
  );
@@ -1292,8 +1351,8 @@ class Event_Calendar extends Widget_Base {
1292
  $this->add_control(
1293
  'event_popup_title_color',
1294
  [
1295
- 'label' => __('Title Color', 'essential-addons-for-elementor-lite'),
1296
- 'type' => Controls_Manager::COLOR,
1297
  'selectors' => [
1298
  '{{WRAPPER}} .eaelec-modal-header .eael-ec-modal-title' => 'color: {{VALUE}}',
1299
  ],
@@ -1303,8 +1362,8 @@ class Event_Calendar extends Widget_Base {
1303
  $this->add_control(
1304
  'event_popup_date_heading',
1305
  [
1306
- 'label' => __('Date', 'essential-addons-for-elementor-lite'),
1307
- 'type' => Controls_Manager::HEADING,
1308
  'separator' => 'before',
1309
  ]
1310
  );
@@ -1312,8 +1371,8 @@ class Event_Calendar extends Widget_Base {
1312
  $this->add_group_control(
1313
  Group_Control_Typography::get_type(),
1314
  [
1315
- 'name' => 'event_popup_date_typography',
1316
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1317
  'selector' => '{{WRAPPER}} .eaelec-modal-header > span.eaelec-event-popup-date',
1318
  ]
1319
  );
@@ -1321,11 +1380,11 @@ class Event_Calendar extends Widget_Base {
1321
  $this->add_control(
1322
  'event_popup_date_color',
1323
  [
1324
- 'label' => __('Date Color', 'essential-addons-for-elementor-lite'),
1325
- 'type' => Controls_Manager::COLOR,
1326
  'selectors' => [
1327
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start' => 'color: {{VALUE}};',
1328
- '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-end' => 'color: {{VALUE}};',
1329
  ],
1330
  ]
1331
  );
@@ -1333,8 +1392,8 @@ class Event_Calendar extends Widget_Base {
1333
  $this->add_control(
1334
  'event_popup_date_icon',
1335
  [
1336
- 'label' => __('Date Icon', 'essential-addons-for-elementor-lite'),
1337
- 'type' => Controls_Manager::HEADING,
1338
  'separator' => 'before',
1339
  ]
1340
  );
@@ -1342,16 +1401,16 @@ class Event_Calendar extends Widget_Base {
1342
  $this->add_control(
1343
  'event_popup_date_icon_size',
1344
  [
1345
- 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1346
- 'type' => Controls_Manager::SLIDER,
1347
  'size_units' => ['px'],
1348
- 'range' => [
1349
  'px' => [
1350
  'min' => 0,
1351
  'max' => 100,
1352
- ]
1353
  ],
1354
- 'selectors' => [
1355
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start i' => 'font-size: {{SIZE}}{{UNIT}};',
1356
  ],
1357
  ]
@@ -1360,8 +1419,8 @@ class Event_Calendar extends Widget_Base {
1360
  $this->add_control(
1361
  'event_popup_date_icon_color',
1362
  [
1363
- 'label' => __('Icon Color', 'essential-addons-for-elementor-lite'),
1364
- 'type' => Controls_Manager::COLOR,
1365
  'selectors' => [
1366
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start i' => 'color: {{VALUE}};',
1367
  ],
@@ -1371,8 +1430,8 @@ class Event_Calendar extends Widget_Base {
1371
  $this->add_control(
1372
  'event_popup_content_heading',
1373
  [
1374
- 'label' => __('Content', 'essential-addons-for-elementor-lite'),
1375
- 'type' => Controls_Manager::HEADING,
1376
  'separator' => 'before',
1377
  ]
1378
  );
@@ -1380,8 +1439,8 @@ class Event_Calendar extends Widget_Base {
1380
  $this->add_group_control(
1381
  Group_Control_Typography::get_type(),
1382
  [
1383
- 'name' => 'event_popup_content_typography',
1384
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1385
  'selector' => '{{WRAPPER}} .eaelec-modal-body',
1386
  ]
1387
  );
@@ -1389,8 +1448,8 @@ class Event_Calendar extends Widget_Base {
1389
  $this->add_control(
1390
  'event_popup_content_color',
1391
  [
1392
- 'label' => __('Content Color', 'essential-addons-for-elementor-lite'),
1393
- 'type' => Controls_Manager::COLOR,
1394
  'selectors' => [
1395
  '{{WRAPPER}} .eaelec-modal-body' => 'color: {{VALUE}};',
1396
  ],
@@ -1400,8 +1459,8 @@ class Event_Calendar extends Widget_Base {
1400
  $this->add_control(
1401
  'event_popup_close_button_style',
1402
  [
1403
- 'label' => __(' Close Button', 'essential-addons-for-elementor-lite'),
1404
- 'type' => Controls_Manager::HEADING,
1405
  'separator' => 'before',
1406
  ]
1407
  );
@@ -1409,10 +1468,10 @@ class Event_Calendar extends Widget_Base {
1409
  $this->add_responsive_control(
1410
  'close_button_icon_size',
1411
  [
1412
- 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1413
- 'type' => Controls_Manager::SLIDER,
1414
  'size_units' => ['px', 'em', '%'],
1415
- 'range' => [
1416
  'px' => [
1417
  'min' => 0,
1418
  'max' => 100,
@@ -1421,12 +1480,12 @@ class Event_Calendar extends Widget_Base {
1421
  'min' => 0,
1422
  'max' => 100,
1423
  ],
1424
- '%' => [
1425
  'min' => 0,
1426
  'max' => 100,
1427
  ],
1428
  ],
1429
- 'selectors' => [
1430
  '{{WRAPPER}} .eaelec-modal-close > span' => 'font-size: {{SIZE}}{{UNIT}};',
1431
  ],
1432
  ]
@@ -1435,10 +1494,10 @@ class Event_Calendar extends Widget_Base {
1435
  $this->add_responsive_control(
1436
  'close_button_size',
1437
  [
1438
- 'label' => __('Button Size', 'essential-addons-for-elementor-lite'),
1439
- 'type' => Controls_Manager::SLIDER,
1440
  'size_units' => ['px', 'em', '%'],
1441
- 'range' => [
1442
  'px' => [
1443
  'min' => 0,
1444
  'max' => 100,
@@ -1447,12 +1506,12 @@ class Event_Calendar extends Widget_Base {
1447
  'min' => 0,
1448
  'max' => 100,
1449
  ],
1450
- '%' => [
1451
  'min' => 0,
1452
  'max' => 100,
1453
  ],
1454
  ],
1455
- 'selectors' => [
1456
  '{{WRAPPER}} .eaelec-modal-close' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
1457
  ],
1458
  ]
@@ -1461,8 +1520,8 @@ class Event_Calendar extends Widget_Base {
1461
  $this->add_control(
1462
  'close_button_color',
1463
  [
1464
- 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1465
- 'type' => Controls_Manager::COLOR,
1466
  'selectors' => [
1467
  '{{WRAPPER}} .eaelec-modal-close > span' => 'color: {{VALUE}};',
1468
  ],
@@ -1472,14 +1531,14 @@ class Event_Calendar extends Widget_Base {
1472
  $this->add_group_control(
1473
  Group_Control_Background::get_type(),
1474
  [
1475
- 'name' => 'close_button_background',
1476
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1477
- 'types' => [
1478
  'classic',
1479
  'gradient',
1480
  ],
1481
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1482
- 'exclude' => [
1483
  'image',
1484
  ],
1485
  ]
@@ -1488,8 +1547,8 @@ class Event_Calendar extends Widget_Base {
1488
  $this->add_group_control(
1489
  Group_Control_Border::get_type(),
1490
  [
1491
- 'name' => 'close_button_border',
1492
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1493
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1494
  ]
1495
  );
@@ -1497,21 +1556,21 @@ class Event_Calendar extends Widget_Base {
1497
  $this->add_responsive_control(
1498
  'close_button_border_radius',
1499
  [
1500
- 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1501
- 'type' => Controls_Manager::SLIDER,
1502
  'size_units' => ['px', '%'],
1503
- 'range' => [
1504
  'px' => [
1505
- 'min' => 0,
1506
- 'max' => 100,
1507
  'step' => 1,
1508
  ],
1509
- '%' => [
1510
  'min' => 0,
1511
  'max' => 100,
1512
  ],
1513
  ],
1514
- 'selectors' => [
1515
  '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close' => 'border-radius: {{SIZE}}{{UNIT}};',
1516
  ],
1517
  ]
@@ -1520,8 +1579,8 @@ class Event_Calendar extends Widget_Base {
1520
  $this->add_group_control(
1521
  Group_Control_Box_Shadow::get_type(),
1522
  [
1523
- 'name' => 'close_button_box_shadow',
1524
- 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1525
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1526
  ]
1527
  );
@@ -1529,8 +1588,8 @@ class Event_Calendar extends Widget_Base {
1529
  $this->add_control(
1530
  'event_popup_ext_link_heading',
1531
  [
1532
- 'label' => __('External Link', 'essential-addons-for-elementor-lite'),
1533
- 'type' => Controls_Manager::HEADING,
1534
  'separator' => 'before',
1535
  ]
1536
  );
@@ -1538,8 +1597,8 @@ class Event_Calendar extends Widget_Base {
1538
  $this->add_group_control(
1539
  Group_Control_Typography::get_type(),
1540
  [
1541
- 'name' => 'event_popup_ext_link_typography',
1542
- 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1543
  'selector' => '{{WRAPPER}} .eaelec-modal-footer .eaelec-event-details-link',
1544
  ]
1545
  );
@@ -1547,8 +1606,8 @@ class Event_Calendar extends Widget_Base {
1547
  $this->add_control(
1548
  'event_popup_ext_link_color',
1549
  [
1550
- 'label' => __('Date Color', 'essential-addons-for-elementor-lite'),
1551
- 'type' => Controls_Manager::COLOR,
1552
  'selectors' => [
1553
  '{{WRAPPER}} .eaelec-modal-footer .eaelec-event-details-link' => 'color: {{VALUE}};',
1554
  ],
@@ -1559,8 +1618,8 @@ class Event_Calendar extends Widget_Base {
1559
  $this->add_group_control(
1560
  Group_Control_Border::get_type(),
1561
  [
1562
- 'name' => 'event_popup_border',
1563
- 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1564
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1565
  ]
1566
  );
@@ -1568,24 +1627,24 @@ class Event_Calendar extends Widget_Base {
1568
  $this->add_responsive_control(
1569
  'event_popup_border_radius',
1570
  [
1571
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1572
- 'type' => Controls_Manager::DIMENSIONS,
1573
  'size_units' => ['px', '%'],
1574
- 'selectors' => [
1575
  '{{WRAPPER}} .eaelec-modal .eaelec-modal-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1576
  ],
1577
- 'separator' => 'after',
1578
  ]
1579
  );
1580
 
1581
  $this->add_group_control(
1582
  Group_Control_Background::get_type(),
1583
  [
1584
- 'name' => 'event_popup_background',
1585
- 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1586
- 'types' => ['classic', 'gradient'],
1587
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1588
- 'exclude' => [
1589
  'image',
1590
  ],
1591
  ]
@@ -1594,8 +1653,8 @@ class Event_Calendar extends Widget_Base {
1594
  $this->add_group_control(
1595
  Group_Control_Box_Shadow::get_type(),
1596
  [
1597
- 'name' => 'event_popup_box_shadow',
1598
- 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1599
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1600
  ]
1601
  );
@@ -1603,7 +1662,8 @@ class Event_Calendar extends Widget_Base {
1603
  $this->end_controls_section();
1604
  }
1605
 
1606
- protected function render () {
 
1607
  $settings = $this->get_settings_for_display();
1608
 
1609
  if (in_array($settings['eael_event_calendar_type'], ['eventon'])) {
@@ -1619,24 +1679,25 @@ class Event_Calendar extends Widget_Base {
1619
  $local = $settings['eael_event_calendar_language'];
1620
  $default_view = $settings['eael_event_calendar_default_view'];
1621
  $translate_date = [
1622
- 'today' =>__('Today', 'essential-addons-for-elementor-lite'),
1623
- 'tomorrow' =>__('Tomorrow', 'essential-addons-for-elementor-lite'),
1624
  ];
1625
 
1626
  echo '<div class="eael-event-calendar-wrapper">';
1627
 
1628
- echo '<div id="eael-event-calendar-'.$this->get_id().'" class="eael-event-calendar-cls"
1629
- data-cal_id = "'.$this->get_id().'"
1630
- data-locale = "'.$local.'"
1631
- data-translate = "'.htmlspecialchars(json_encode($translate_date), ENT_QUOTES, 'UTF-8').'"
1632
- data-defaultview = "'.$default_view.'"
1633
- data-events="'.htmlspecialchars(json_encode($data), ENT_QUOTES, 'UTF-8').'"
1634
- data-first_day="'.$settings['eael_event_calendar_first_day'].'"></div>
1635
- '.$this->eaelec_load_event_details().'
1636
  </div>';
1637
  }
1638
 
1639
- protected function eaelec_load_event_details () {
 
1640
  return '<div id="eaelecModal" class="eaelec-modal eael-zoom-in">
1641
  <div class="eael-ec-modal-bg"></div>
1642
  <div class="eaelec-modal-content">
@@ -1650,13 +1711,14 @@ class Event_Calendar extends Widget_Base {
1650
  <p></p>
1651
  </div>
1652
  <div class="eaelec-modal-footer">
1653
- <a class="eaelec-event-details-link">'.__('Event Details', 'essential-addons-for-elementor-lite').'</a>
1654
  </div>
1655
  </div>
1656
  </div>';
1657
  }
1658
 
1659
- public function get_manual_calendar_events ($settings) {
 
1660
  $events = $settings['eael_event_items'];
1661
  $data = [];
1662
  if ($events) {
@@ -1669,22 +1731,22 @@ class Event_Calendar extends Widget_Base {
1669
  $end = date('Y-m-d', strtotime("+1 days", strtotime($event["eael_event_end_date_allday"])));
1670
  } else {
1671
  $start = $event["eael_event_start_date"];
1672
- $end = date('Y-m-d H:i', strtotime($event["eael_event_end_date"])).":01";
1673
  }
1674
 
1675
  $data[] = [
1676
- 'id' => $i,
1677
- 'title' => !empty($event["eael_event_title"]) ? $event["eael_event_title"] : 'No Title',
1678
  'description' => $event["eael_event_description"],
1679
- 'start' => $start,
1680
- 'end' => $end,
1681
  'borderColor' => !empty($event['eael_event_border_color']) ? $event['eael_event_border_color'] : '#10ecab',
1682
- 'textColor' => $event['eael_event_text_color'],
1683
- 'color' => $event['eael_event_bg_color'],
1684
- 'url' => ($settings['eael_event_details_link_hide']!=='yes')?$event["eael_event_link"]["url"]:'',
1685
- 'allDay' => $event['eael_event_all_day'],
1686
- 'external' => $event['eael_event_link']['is_external'],
1687
- 'nofollow' => $event['eael_event_link']['nofollow'],
1688
  ];
1689
 
1690
  $i++;
@@ -1700,7 +1762,8 @@ class Event_Calendar extends Widget_Base {
1700
  *
1701
  * @return array
1702
  */
1703
- public function get_google_calendar_events ($settings) {
 
1704
 
1705
  if (empty($settings['eael_event_google_api_key']) && empty($settings['eael_event_calendar_id'])) {
1706
  return [];
@@ -1713,25 +1776,25 @@ class Event_Calendar extends Widget_Base {
1713
  $end_date = strtotime($settings['eael_google_calendar_end_date']);
1714
 
1715
  $arg = [
1716
- 'key' => $settings['eael_event_google_api_key'],
1717
- 'maxResults' => $settings['eael_google_calendar_max_result'],
1718
- 'timeMin' => urlencode(date('c', $start_date)),
1719
  'singleEvents' => 'true',
1720
- 'calendar_id' => urlencode($settings['eael_event_calendar_id']),
1721
  ];
1722
 
1723
  if (!empty($end_date) && $end_date > $start_date) {
1724
  $arg['timeMax'] = urlencode(date('c', $end_date));
1725
  }
1726
 
1727
- $transient_key = 'eael_google_calendar_'.md5(implode('', $arg));
1728
  $data = get_transient($transient_key);
1729
 
1730
  if (isset($arg['calendar_id'])) {
1731
  unset($arg['calendar_id']);
1732
  }
1733
 
1734
- if(empty($data)){
1735
  $data = wp_remote_retrieve_body(wp_remote_get(add_query_arg($arg, $base_url)));
1736
  set_transient($transient_key, $data, 1 * HOUR_IN_SECONDS);
1737
  }
@@ -1759,22 +1822,21 @@ class Event_Calendar extends Widget_Base {
1759
  }
1760
 
1761
  $calendar_data[] = [
1762
- 'id' => ++$key,
1763
- 'title' => !empty($item->summary) ? $item->summary : 'No Title',
1764
  'description' => isset($item->description) ? $item->description : '',
1765
- 'start' => $ev_start_date,
1766
- 'end' => $ev_end_date,
1767
  'borderColor' => !empty($settings['eael_event_global_popup_ribbon_color']) ? $settings['eael_event_global_popup_ribbon_color'] : '#10ecab',
1768
- 'textColor' => $settings['eael_event_global_text_color'],
1769
- 'color' => $settings['eael_event_global_bg_color'],
1770
- 'url' => ($settings['eael_event_details_link_hide']!=='yes')?$item->htmlLink:'',
1771
- 'allDay' => $all_day,
1772
- 'external' => 'on',
1773
- 'nofollow' => 'on',
1774
  ];
1775
  }
1776
 
1777
-
1778
  }
1779
 
1780
  return $calendar_data;
@@ -1786,7 +1848,8 @@ class Event_Calendar extends Widget_Base {
1786
  * @return array
1787
  * @since 3.8.2
1788
  */
1789
- public function get_the_events_calendar_events ($settings) {
 
1790
 
1791
  if (!function_exists('tribe_get_events')) {
1792
  return [];
@@ -1802,8 +1865,8 @@ class Event_Calendar extends Widget_Base {
1802
  $arg['tax_query'] = [
1803
  [
1804
  'taxonomy' => 'tribe_events_cat', 'field' => 'id',
1805
- 'terms' => $settings['eael_the_events_calendar_category']
1806
- ]
1807
  ];
1808
  }
1809
  $events = tribe_get_events($arg);
@@ -1819,21 +1882,21 @@ class Event_Calendar extends Widget_Base {
1819
  $all_day = '';
1820
  }
1821
  $calendar_data[] = [
1822
- 'id' => ++$key,
1823
- 'title' => !empty($event->post_title) ? $event->post_title : __('No Title',
1824
  'essential-addons-for-elementor-lite'),
1825
  'description' => $event->post_content,
1826
- 'start' => tribe_get_start_date($event->ID, true, $date_format),
1827
- 'end' => tribe_get_end_date($event->ID, true, $date_format),
1828
  'borderColor' => !empty($settings['eael_event_global_popup_ribbon_color']) ? $settings['eael_event_global_popup_ribbon_color'] : '#10ecab',
1829
- 'textColor' => $settings['eael_event_global_text_color'],
1830
- 'color' => $settings['eael_event_global_bg_color'],
1831
- 'url' => ($settings['eael_event_details_link_hide']!=='yes')?get_the_permalink($event->ID):'',
1832
- 'allDay' => $all_day,
1833
- 'external' => 'on',
1834
- 'nofollow' => 'on',
1835
  ];
1836
  }
1837
  return $calendar_data;
1838
  }
1839
- }
14
  use \Elementor\Group_Control_Typography;
15
  use \Elementor\Repeater;
16
  use \Elementor\Widget_Base;
17
+ use \Essential_Addons_Elementor\Classes\Helper;
18
 
19
+ class Event_Calendar extends Widget_Base
20
+ {
21
+
22
 
23
+ public function get_name()
24
+ {
25
  return 'eael-event-calendar';
26
  }
27
 
28
+ public function get_style_depends()
29
+ {
30
  return [
31
  'font-awesome-5-all',
32
  'font-awesome-4-shim',
33
  ];
34
  }
35
 
36
+ public function get_title()
37
+ {
38
  return esc_html__('Event Calendar', 'essential-addons-for-elementor-lite');
39
  }
40
 
41
+ public function get_icon()
42
+ {
43
  return 'eaicon-event-calendar';
44
  }
45
 
46
+ public function get_categories()
47
+ {
48
  return ['essential-addons-elementor'];
49
  }
50
+
51
+ public function get_keywords()
52
+ {
53
  return [
54
  'event',
55
  'events',
63
  'event calendar',
64
  'modern events',
65
  'ea',
66
+ 'essential addons',
67
  ];
68
  }
69
 
70
+ public function get_custom_help_url()
71
+ {
72
  return 'https://essential-addons.com/elementor/docs/event-calendar/';
73
  }
74
 
75
+ protected function _register_controls()
76
+ {
77
  /**
78
  * -------------------------------------------
79
  * Events
83
  'eael_event_section',
84
  [
85
  'label' => __('Events', 'essential-addons-for-elementor-lite'),
86
+ 'tab' => Controls_Manager::TAB_CONTENT,
87
  ]
88
  );
89
 
90
  $this->add_control(
91
  'eael_event_calendar_type',
92
  [
93
+ 'label' => __('Source', 'essential-addons-for-elementor-lite'),
94
+ 'type' => Controls_Manager::SELECT,
95
+ 'options' => apply_filters('eael/controls/event-calendar/source', [
96
  'manual' => __('Manual', 'essential-addons-for-elementor-lite'),
97
  'google' => __('Google', 'essential-addons-for-elementor-lite'),
98
  'the_events_calendar' => __('The Events Calendar', 'essential-addons-for-elementor-lite'),
106
  $this->add_control(
107
  'eael_the_event_calendar_warning_text',
108
  [
109
+ 'type' => Controls_Manager::RAW_HTML,
110
+ 'raw' => __('<strong>The Events Calendar</strong> is not installed/activated on your site. Please install and activate <a href="plugin-install.php?s=the-events-calendar&tab=search&type=term" target="_blank">The Events Calendar</a> first.',
111
  'essential-addons-for-elementor'),
112
  'content_classes' => 'eael-warning',
113
  'condition' => [
130
  );
131
  }
132
 
 
133
  do_action('eael/event-calendar/activation-notice', $this);
134
 
135
  $repeater = new Repeater;
145
  $repeater->add_control(
146
  'eael_event_title',
147
  [
148
+ 'label' => __('Title', 'essential-addons-for-elementor-lite'),
149
+ 'type' => Controls_Manager::TEXT,
150
  'label_block' => true,
151
  ]
152
  );
154
  $repeater->add_control(
155
  'eael_event_link',
156
  [
157
+ 'label' => __('Link', 'essential-addons-for-elementor-lite'),
158
+ 'type' => Controls_Manager::URL,
159
+ 'placeholder' => __('https://sample-domain.com', 'essential-addons-for-elementor-lite'),
160
  'show_external' => true,
161
  ]
162
  );
164
  $repeater->add_control(
165
  'eael_event_all_day',
166
  [
167
+ 'label' => __('All Day', 'essential-addons-for-elementor-lite'),
168
+ 'type' => Controls_Manager::SWITCHER,
169
+ 'label_block' => false,
170
  'return_value' => 'yes',
171
  ]
172
  );
174
  $repeater->add_control(
175
  'eael_event_start_date',
176
  [
177
+ 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
178
+ 'type' => Controls_Manager::DATE_TIME,
179
+ 'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
180
  'condition' => [
181
  'eael_event_all_day' => '',
182
  ],
186
  $repeater->add_control(
187
  'eael_event_end_date',
188
  [
189
+ 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
190
+ 'type' => Controls_Manager::DATE_TIME,
191
+ 'default' => date('Y-m-d H:i', strtotime("+59 minute", current_time('timestamp', 0))),
192
  'condition' => [
193
  'eael_event_all_day' => '',
194
  ],
198
  $repeater->add_control(
199
  'eael_event_start_date_allday',
200
  [
201
+ 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
202
+ 'type' => Controls_Manager::DATE_TIME,
203
  'picker_options' => ['enableTime' => false],
204
+ 'default' => date('Y-m-d', current_time('timestamp', 0)),
205
+ 'condition' => [
206
  'eael_event_all_day' => 'yes',
207
  ],
208
  ]
211
  $repeater->add_control(
212
  'eael_event_end_date_allday',
213
  [
214
+ 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
215
+ 'type' => Controls_Manager::DATE_TIME,
216
  'picker_options' => ['enableTime' => false],
217
+ 'default' => date('Y-m-d', current_time('timestamp', 0)),
218
+ 'condition' => [
219
  'eael_event_all_day' => 'yes',
220
  ],
221
  ]
224
  $repeater->add_control(
225
  'eael_event_bg_color',
226
  [
227
+ 'label' => __('Event Background Color', 'essential-addons-for-elementor-lite'),
228
+ 'type' => Controls_Manager::COLOR,
229
  'default' => '#5725ff',
230
  ]
231
  );
233
  $repeater->add_control(
234
  'eael_event_text_color',
235
  [
236
+ 'label' => __('Event Text Color', 'essential-addons-for-elementor-lite'),
237
+ 'type' => Controls_Manager::COLOR,
238
  'default' => '#ffffff',
239
  ]
240
  );
242
  $repeater->add_control(
243
  'eael_event_border_color',
244
  [
245
+ 'label' => __('Popup Ribbon Color', 'essential-addons-for-elementor-lite'),
246
+ 'type' => Controls_Manager::COLOR,
247
  'default' => '#E8E6ED',
248
  ]
249
  );
261
  'eael_event_description',
262
  [
263
  'label' => __('Description', 'essential-addons-for-elementor-lite'),
264
+ 'type' => Controls_Manager::WYSIWYG,
265
  ]
266
  );
267
 
270
  $this->add_control(
271
  'eael_event_items',
272
  [
273
+ 'label' => __('Event', 'essential-addons-for-elementor-lite'),
274
+ 'type' => Controls_Manager::REPEATER,
275
+ 'fields' => $repeater->get_controls(),
276
+ 'default' => [
277
  ['eael_event_title' => 'Event Title'],
278
  ],
279
  'title_field' => '{{ eael_event_title }}',
280
+ 'condition' => [
281
  'eael_event_calendar_type' => 'manual',
282
  ],
283
  ]
290
  $this->start_controls_section(
291
  'eael_event_google_calendar',
292
  [
293
+ 'label' => __('Google Calendar', 'essential-addons-for-elementor-lite'),
294
+ 'tab' => Controls_Manager::TAB_CONTENT,
295
  'condition' => [
296
  'eael_event_calendar_type' => 'google',
297
  ],
301
  $this->add_control(
302
  'eael_event_google_api_key',
303
  [
304
+ 'label' => __('APi Key', 'essential-addons-for-elementor-lite'),
305
+ 'type' => Controls_Manager::TEXT,
306
  'label_block' => true,
307
  'description' => sprintf(__('<a href="https://essential-addons.com/elementor/docs/google-api-key/" class="eael-btn" target="_blank">%s</a>',
308
  'essential-addons-for-elementor-lite'), 'Get API Key'),
312
  $this->add_control(
313
  'eael_event_calendar_id',
314
  [
315
+ 'label' => __('Calendar ID', 'essential-addons-for-elementor-lite'),
316
+ 'type' => Controls_Manager::TEXT,
317
  'label_block' => true,
318
  'description' => sprintf(__('<a href="https://essential-addons.com/elementor/docs/google-calendar-id/" class="eael-btn" target="_blank">%s</a>',
319
  'essential-addons-for-elementor-lite'), 'Get google calendar ID'),
323
  $this->add_control(
324
  'eael_google_calendar_start_date',
325
  [
326
+ 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
327
+ 'type' => Controls_Manager::DATE_TIME,
328
  'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
329
  ]
330
  );
332
  $this->add_control(
333
  'eael_google_calendar_end_date',
334
  [
335
+ 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
336
+ 'type' => Controls_Manager::DATE_TIME,
337
  'default' => date('Y-m-d H:i', strtotime("+6 months", current_time('timestamp', 0))),
338
  ]
339
  );
341
  $this->add_control(
342
  'eael_google_calendar_max_result',
343
  [
344
+ 'label' => __('Max Result', 'essential-addons-for-elementor-lite'),
345
+ 'type' => Controls_Manager::NUMBER,
346
+ 'min' => 1,
347
  'default' => 100,
348
  ]
349
  );
355
  $this->start_controls_section(
356
  'eael_event_the_events_calendar',
357
  [
358
+ 'label' => __('The Event Calendar', 'essential-addons-for-elementor-lite'),
359
+ 'tab' => Controls_Manager::TAB_CONTENT,
360
  'condition' => [
361
  'eael_event_calendar_type' => 'the_events_calendar',
362
  ],
366
  $this->add_control(
367
  'eael_the_events_calendar_fetch',
368
  [
369
+ 'label' => __('Get Events', 'essential-addons-for-elementor-lite'),
370
+ 'type' => Controls_Manager::SELECT,
371
  'label_block' => true,
372
+ 'default' => ['all'],
373
+ 'options' => [
374
+ 'all' => __('All', 'essential-addons-for-elementor-lite'),
375
  'date_range' => __('Date Range', 'essential-addons-for-elementor-lite'),
376
  ],
377
  'render_type' => 'none',
378
  ]
379
  );
380
 
 
381
  $this->add_control(
382
  'eael_the_events_calendar_start_date',
383
  [
384
+ 'label' => __('Start Date', 'essential-addons-for-elementor-lite'),
385
+ 'type' => Controls_Manager::DATE_TIME,
386
+ 'default' => date('Y-m-d H:i', current_time('timestamp', 0)),
387
  'condition' => [
388
  'eael_the_events_calendar_fetch' => 'date_range',
389
  ],
393
  $this->add_control(
394
  'eael_the_events_calendar_end_date',
395
  [
396
+ 'label' => __('End Date', 'essential-addons-for-elementor-lite'),
397
+ 'type' => Controls_Manager::DATE_TIME,
398
+ 'default' => date('Y-m-d H:i', strtotime("+6 months", current_time('timestamp', 0))),
399
  'condition' => [
400
  'eael_the_events_calendar_fetch' => 'date_range',
401
  ],
405
  $this->add_control(
406
  'eael_the_events_calendar_category',
407
  [
408
+ 'label' => __('Event Category', 'essential-addons-for-elementor-lite'),
409
+ 'type' => Controls_Manager::SELECT2,
410
+ 'multiple' => true,
411
  'label_block' => true,
412
+ 'default' => [],
413
+ 'options' => Helper::get_tags_list(['taxonomy' => 'tribe_events_cat', 'hide_empty' => false]),
414
  ]
415
  );
416
 
417
  $this->add_control(
418
  'eael_the_events_calendar_max_result',
419
  [
420
+ 'label' => __('Max Result', 'essential-addons-for-elementor-lite'),
421
+ 'type' => Controls_Manager::NUMBER,
422
+ 'min' => 1,
423
  'default' => 100,
424
  ]
425
  );
427
  $this->end_controls_section();
428
  }
429
 
 
430
  do_action('eael/event-calendar/source/control', $this);
431
 
432
  $this->start_controls_section(
433
  'eael_event_calendar_section',
434
  [
435
  'label' => __('Calendar', 'essential-addons-for-elementor-lite'),
436
+ 'tab' => Controls_Manager::TAB_CONTENT,
437
  ]
438
  );
439
 
440
  $this->add_control(
441
  'eael_event_calendar_language',
442
  [
443
+ 'label' => __('Language', 'essential-addons-for-elementor-lite'),
444
+ 'type' => Controls_Manager::SELECT,
445
+ 'options' => [
446
+ 'af' => 'Afrikaans',
447
+ 'sq' => 'Albanian',
448
+ 'ar' => 'Arabic',
449
+ 'eu' => 'Basque',
450
+ 'bn' => 'Bengali',
451
+ 'bs' => 'Bosnian',
452
+ 'bg' => 'Bulgarian',
453
+ 'ca' => 'Catalan',
454
+ 'zh-cn' => 'Chinese',
455
+ 'zh-tw' => 'Chinese-tw',
456
+ 'hr' => 'Croatian',
457
+ 'cs' => 'Czech',
458
+ 'da' => 'Danish',
459
+ 'nl' => 'Dutch',
460
+ 'en' => 'English',
461
+ 'et' => 'Estonian',
462
+ 'fi' => 'Finnish',
463
+ 'fr' => 'French',
464
+ 'gl' => 'Galician',
465
+ 'ka' => 'Georgian',
466
+ 'de' => 'German',
467
+ 'el' => 'Greek (Modern)',
468
+ 'he' => 'Hebrew',
469
+ 'hi' => 'Hindi',
470
+ 'hu' => 'Hungarian',
471
+ 'is' => 'Icelandic',
472
+ 'io' => 'Ido',
473
+ 'id' => 'Indonesian',
474
+ 'it' => 'Italian',
475
+ 'ja' => 'Japanese',
476
+ 'kk' => 'Kazakh',
477
+ 'ko' => 'Korean',
478
+ 'lv' => 'Latvian',
479
+ 'lb' => 'Letzeburgesch',
480
+ 'lt' => 'Lithuanian',
481
+ 'lu' => 'Luba-Katanga',
482
+ 'mk' => 'Macedonian',
483
+ 'mg' => 'Malagasy',
484
+ 'ms' => 'Malay',
485
+ 'ro' => 'Moldovan, Moldavian, Romanian',
486
+ 'nb' => 'Norwegian Bokmål',
487
+ 'nn' => 'Norwegian Nynorsk',
488
+ 'fa' => 'Persian',
489
+ 'pl' => 'Polish',
490
+ 'pt' => 'Portuguese',
491
+ 'ru' => 'Russian',
492
+ 'sr' => 'Serbian',
493
+ 'sk' => 'Slovak',
494
+ 'sl' => 'Slovenian',
495
+ 'es' => 'Spanish',
496
+ 'sv' => 'Swedish',
497
+ 'tr' => 'Turkish',
498
+ 'uk' => 'Ukrainian',
499
+ 'vi' => 'Vietnamese',
500
+ ],
501
+ 'default' => 'en',
502
  ]
503
  );
504
 
505
  $this->add_control(
506
  'eael_event_calendar_default_view',
507
  [
508
+ 'label' => __('Calendar Default View', 'essential-addons-for-elementor-lite'),
509
+ 'type' => Controls_Manager::SELECT,
510
  'options' => [
511
+ 'timeGridDay' => __('Day', 'essential-addons-for-elementor-lite'),
512
  'timeGridWeek' => __('Week', 'essential-addons-for-elementor-lite'),
513
  'dayGridMonth' => __('Month', 'essential-addons-for-elementor-lite'),
514
+ 'listMonth' => __('List', 'essential-addons-for-elementor-lite'),
515
  ],
516
  'default' => 'dayGridMonth',
517
  ]
520
  $this->add_control(
521
  'eael_event_calendar_first_day',
522
  [
523
+ 'label' => __('First Day of Week', 'essential-addons-for-elementor-lite'),
524
+ 'type' => Controls_Manager::SELECT,
525
  'options' => [
526
  '0' => __('Sunday', 'essential-addons-for-elementor-lite'),
527
  '1' => __('Monday', 'essential-addons-for-elementor-lite'),
538
  $this->add_control(
539
  'eael_event_details_link_hide',
540
  [
541
+ 'label' => __('Hide Event Details Link', 'essential-addons-for-elementor-lite'),
542
+ 'type' => Controls_Manager::SWITCHER,
543
+ 'label_block' => false,
544
  'return_value' => 'yes',
545
+ 'description' => __('Hide Event Details link in event popup', 'essential-addons-for-elementor-lite'),
546
  ]
547
  );
548
 
550
  $this->add_control(
551
  'eael_event_on_featured_color',
552
  [
553
+ 'label' => __('Featured Event Color', 'essential-addons-for-elementor-lite'),
554
+ 'type' => Controls_Manager::COLOR,
555
+ 'default' => '#ffcb55',
556
  'condition' => [
557
  'eael_event_calendar_type' => 'eventon',
558
  ],
560
  );
561
  }
562
 
 
563
  $this->add_control(
564
  'eael_event_global_bg_color',
565
  [
566
+ 'label' => __('Event Background Color', 'essential-addons-for-elementor-lite'),
567
+ 'type' => Controls_Manager::COLOR,
568
+ 'default' => '#5725ff',
569
  'condition' => [
570
  'eael_event_calendar_type!' => 'manual',
571
  ],
575
  $this->add_control(
576
  'eael_event_global_text_color',
577
  [
578
+ 'label' => __('Event Text Color', 'essential-addons-for-elementor-lite'),
579
+ 'type' => Controls_Manager::COLOR,
580
+ 'default' => '#ffffff',
581
  'condition' => [
582
  'eael_event_calendar_type!' => 'manual',
583
  ],
586
  $this->add_control(
587
  'eael_event_global_popup_ribbon_color',
588
  [
589
+ 'label' => __('Popup Ribbon Color', 'essential-addons-for-elementor-lite'),
590
+ 'type' => Controls_Manager::COLOR,
591
+ 'default' => '#10ecab',
592
  'condition' => [
593
  'eael_event_calendar_type!' => 'manual',
594
  ],
595
  ]
596
  );
597
 
 
598
  $this->end_controls_section();
599
 
600
  /**
604
  'eael_event_calendar_interface',
605
  [
606
  'label' => __('Calendar', 'essential-addons-for-elementor-lite'),
607
+ 'tab' => Controls_Manager::TAB_STYLE,
608
  ]
609
  );
610
 
611
  $this->add_control(
612
  'calendar_background_color',
613
  [
614
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
615
+ 'type' => Controls_Manager::COLOR,
616
  'selectors' => [
617
+ '{{WRAPPER}} .eael-event-calendar-wrapper' => 'background: {{VALUE}}',
618
  '{{WRAPPER}} .eael-event-calendar-wrapper table tbody > tr > td' => 'background: {{VALUE}}',
619
  ],
620
  ]
623
  $this->add_control(
624
  'calendar_border_color',
625
  [
626
+ 'label' => __('Border Color', 'essential-addons-for-elementor-lite'),
627
+ 'type' => Controls_Manager::COLOR,
628
+ 'default' => '#CFCFDA',
629
  'selectors' => [
630
+ '{{WRAPPER}} .eael-event-calendar-wrapper .fc td' => 'border-color: {{VALUE}}',
631
+ '{{WRAPPER}} .eael-event-calendar-wrapper hr.fc-divider' => 'border-color: {{VALUE}}',
632
+ '{{WRAPPER}} .eael-event-calendar-wrapper .fc th' => 'border-color: {{VALUE}}',
633
+ '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view td.fc-today' => 'border-left-color: {{VALUE}}',
634
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view table thead:first-child tr:first-child td' => 'border-top-color: {{VALUE}} !important;',
635
+ '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view' => 'border-color: {{VALUE}} !important;',
636
+ '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view' => 'border-color: {{VALUE}} !important;',
637
  ],
638
  ]
639
  );
641
  $this->add_group_control(
642
  Group_Control_Box_Shadow::get_type(),
643
  [
644
+ 'name' => 'eael_calendar_box_shadow',
645
+ 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
646
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view-container .fc-view > table',
647
  ]
648
  );
650
  $this->add_responsive_control(
651
  'calendar_inside',
652
  [
653
+ 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
654
+ 'type' => Controls_Manager::DIMENSIONS,
655
  'size_units' => ['px', '%'],
656
+ 'selectors' => [
657
  '{{WRAPPER}} .eael-event-calendar-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
658
  ],
659
  ]
662
  $this->add_responsive_control(
663
  'calendar_outside',
664
  [
665
+ 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
666
+ 'type' => Controls_Manager::DIMENSIONS,
667
  'size_units' => ['px', '%'],
668
+ 'selectors' => [
669
  '{{WRAPPER}} .eael-event-calendar-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
670
  ],
671
+ 'separator' => 'after',
672
  ]
673
  );
674
 
676
  'calendar_title_heading',
677
  [
678
  'label' => __('Title', 'essential-addons-for-elementor-lite'),
679
+ 'type' => Controls_Manager::HEADING,
680
  ]
681
  );
682
 
683
  $this->add_group_control(
684
  Group_Control_Typography::get_type(),
685
  [
686
+ 'name' => 'calendar_title_typography',
687
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
688
  'selector' => '{{WRAPPER}} .fc-toolbar h2',
689
  ]
690
  );
692
  $this->add_control(
693
  'calendar_title_color',
694
  [
695
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
696
+ 'type' => Controls_Manager::COLOR,
697
  'selectors' => [
698
  '{{WRAPPER}} .fc-toolbar h2' => 'color: {{VALUE}};',
699
  ],
704
  $this->add_control(
705
  'buttons_style_heading',
706
  [
707
+ 'label' => __('Button', 'essential-addons-for-elementor-lite'),
708
+ 'type' => Controls_Manager::HEADING,
709
  'separator' => 'before',
710
  ]
711
  );
713
  $this->add_group_control(
714
  Group_Control_Typography::get_type(),
715
  [
716
+ 'name' => 'calendar_button_typography_normal',
717
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
718
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .fc-toolbar.fc-header-toolbar .fc-button',
719
  ]
720
  );
732
  $this->add_control(
733
  'button_color_normal',
734
  [
735
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
736
+ 'type' => Controls_Manager::COLOR,
737
  'selectors' => [
738
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'color: {{VALUE}};',
739
  ],
743
  $this->add_control(
744
  'button_background_normal',
745
  [
746
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
747
+ 'type' => Controls_Manager::COLOR,
748
  'selectors' => [
749
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'background-color: {{VALUE}};',
750
  ],
754
  $this->add_group_control(
755
  Group_Control_Border::get_type(),
756
  [
757
+ 'name' => 'button_border_normal',
758
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
759
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)',
760
  ]
761
  );
763
  $this->add_responsive_control(
764
  'button_border_radius_normal',
765
  [
766
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
767
+ 'type' => Controls_Manager::DIMENSIONS,
768
  'size_units' => ['px', '%'],
769
+ 'selectors' => [
770
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
771
  ],
772
  ]
775
  $this->add_responsive_control(
776
  'buttons_margin',
777
  [
778
+ 'label' => esc_html__('Space', 'essential-addons-for-elementor-lite'),
779
+ 'type' => Controls_Manager::DIMENSIONS,
780
  'size_units' => ['px', '%'],
781
+ 'selectors' => [
782
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:not(.fc-button-active)' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
783
  ],
784
+ 'separator' => 'after',
785
  ]
786
  );
787
  // Buttons style
799
  $this->add_control(
800
  'button_color_hover',
801
  [
802
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
803
+ 'type' => Controls_Manager::COLOR,
804
  'selectors' => [
805
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'color: {{VALUE}};',
806
  ],
810
  $this->add_control(
811
  'button_background_hover',
812
  [
813
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
814
+ 'type' => Controls_Manager::COLOR,
815
  'selectors' => [
816
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'background-color: {{VALUE}};',
817
  ],
821
  $this->add_group_control(
822
  Group_Control_Border::get_type(),
823
  [
824
+ 'name' => 'button_border_hover',
825
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
826
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover',
827
  ]
828
  );
830
  $this->add_responsive_control(
831
  'button_border_radius_hover',
832
  [
833
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
834
+ 'type' => Controls_Manager::DIMENSIONS,
835
  'size_units' => ['px', '%'],
836
+ 'selectors' => [
837
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
838
  ],
839
+ 'separator' => 'after',
840
  ]
841
  );
842
 
853
  $this->add_control(
854
  'button_color_active',
855
  [
856
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
857
+ 'type' => Controls_Manager::COLOR,
858
  'selectors' => [
859
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'color: {{VALUE}};',
860
  ],
864
  $this->add_control(
865
  'button_background_active',
866
  [
867
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
868
+ 'type' => Controls_Manager::COLOR,
869
  'selectors' => [
870
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'background-color: {{VALUE}};',
871
  ],
875
  $this->add_group_control(
876
  Group_Control_Border::get_type(),
877
  [
878
+ 'name' => 'button_border_active',
879
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
880
  'selector' => '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active',
881
  ]
882
  );
884
  $this->add_responsive_control(
885
  'button_border_radius_active',
886
  [
887
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
888
+ 'type' => Controls_Manager::DIMENSIONS,
889
  'size_units' => ['px', '%'],
890
+ 'selectors' => [
891
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
892
  ],
893
  ]
896
  $this->add_responsive_control(
897
  'buttons_margin_active',
898
  [
899
+ 'label' => esc_html__('Space', 'essential-addons-for-elementor-lite'),
900
+ 'type' => Controls_Manager::DIMENSIONS,
901
  'size_units' => ['px', '%'],
902
+ 'selectors' => [
903
  '{{WRAPPER}} .fc-toolbar.fc-header-toolbar .fc-button.fc-button-active' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
904
  ],
905
+ 'separator' => 'after',
906
  ]
907
  );
908
 
920
  'calendar_week_days',
921
  [
922
  'label' => __('Day', 'essential-addons-for-elementor-lite'),
923
+ 'tab' => Controls_Manager::TAB_STYLE,
924
  ]
925
  );
926
 
927
  $this->add_group_control(
928
  Group_Control_Typography::get_type(),
929
  [
930
+ 'name' => 'days_typography',
931
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
932
  'selector' => '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th > span,{{WRAPPER}} .fc-listWeek-view .fc-list-table .fc-widget-header span,{{WRAPPER}} .fc-listMonth-view .fc-list-table .fc-widget-header span',
933
  ]
934
  );
936
  $this->add_control(
937
  'days_color',
938
  [
939
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
940
+ 'type' => Controls_Manager::COLOR,
941
  'selectors' => [
942
  '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th > span' => 'color: {{VALUE}};',
943
 
948
  $this->add_responsive_control(
949
  'days_position_alignment',
950
  [
951
+ 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
952
+ 'type' => Controls_Manager::CHOOSE,
953
+ 'options' => [
954
+ 'left' => [
955
  'title' => __('Left', 'essential-addons-for-elementor-lite'),
956
+ 'icon' => 'fa fa-align-left',
957
  ],
958
  'center' => [
959
  'title' => __('Center', 'essential-addons-for-elementor-lite'),
960
+ 'icon' => 'fa fa-align-center',
961
  ],
962
+ 'right' => [
963
  'title' => __('Right', 'essential-addons-for-elementor-lite'),
964
+ 'icon' => 'fa fa-align-right',
965
  ],
966
  ],
967
+ 'default' => 'center',
968
+ 'toggle' => true,
969
  'selectors' => [
970
  '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th' => 'text-align: {{VALUE}};',
971
  ],
975
  $this->add_group_control(
976
  Group_Control_Background::get_type(),
977
  [
978
+ 'name' => 'days_background',
979
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
980
+ 'types' => ['classic', 'gradient'],
981
  'selector' => '{{WRAPPER}} .fc-row table thead:first-child tr:first-child th',
982
+ 'exclude' => [
983
  'image',
984
  ],
985
  ]
995
  'calendar_week_time',
996
  [
997
  'label' => __('Time', 'essential-addons-for-elementor-lite'),
998
+ 'tab' => Controls_Manager::TAB_STYLE,
999
  ]
1000
  );
1001
 
1002
  $this->add_group_control(
1003
  Group_Control_Typography::get_type(),
1004
  [
1005
+ 'name' => 'time_typography',
1006
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1007
  'selector' => '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-bg table tbody tr>td span, {{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-bg table tbody tr>td span ,{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-slats table tbody tr>td span ,{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-slats table tbody tr>td span',
1008
  ]
1009
  );
1011
  $this->add_control(
1012
  'time_color',
1013
  [
1014
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1015
+ 'type' => Controls_Manager::COLOR,
1016
  'selectors' => [
1017
+ '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-bg table tbody tr>td span' => 'color: {{VALUE}};',
1018
+ '{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-bg table tbody tr>td span' => 'color: {{VALUE}};',
1019
  '{{WRAPPER}} .fc-unthemed .fc-timeGridWeek-view .fc-slats table tbody tr>td span' => 'color: {{VALUE}};',
1020
+ '{{WRAPPER}} .fc-unthemed .fc-timeGridDay-view .fc-slats table tbody tr>td span' => 'color: {{VALUE}};',
1021
 
1022
  ],
1023
  ]
1029
  'date_styles',
1030
  [
1031
  'label' => __('Date', 'essential-addons-for-elementor-lite'),
1032
+ 'tab' => Controls_Manager::TAB_STYLE,
1033
  ]
1034
  );
1035
 
1036
  $this->add_group_control(
1037
  Group_Control_Typography::get_type(),
1038
  [
1039
+ 'name' => 'date_typography',
1040
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1041
  'selector' => '{{WRAPPER}} .fc-day-number',
1042
  ]
1043
  );
1045
  $this->add_control(
1046
  'date_color',
1047
  [
1048
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1049
+ 'type' => Controls_Manager::COLOR,
1050
  'selectors' => [
1051
  '{{WRAPPER}} .fc-day-number' => 'color: {{VALUE}}',
1052
  ],
1056
  $this->add_control(
1057
  'date_number_background',
1058
  [
1059
+ 'type' => Controls_Manager::COLOR,
1060
+ 'label' => __('Number Background', 'essential-addons-for-elementor-lite'),
1061
  'selectors' => [
1062
  '{{WRAPPER}} .fc-day-number' => 'background: {{VALUE}}',
1063
  ],
1067
  $this->add_control(
1068
  'date_background',
1069
  [
1070
+ 'type' => Controls_Manager::COLOR,
1071
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1072
  'selectors' => [
1073
+ '{{WRAPPER}} .fc-day' => 'background: {{VALUE}} !important',
1074
  '{{WRAPPER}} .fc-unthemed td.fc-today' => 'background: {{VALUE}} !important',
1075
+ '{{WRAPPER}} table tbody > tr > td' => 'background: {{VALUE}} !important',
1076
  ],
1077
  ]
1078
  );
1080
  $this->add_responsive_control(
1081
  'date_position_alignment',
1082
  [
1083
+ 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
1084
+ 'type' => Controls_Manager::CHOOSE,
1085
+ 'options' => [
1086
+ 'left' => [
1087
  'title' => __('Left', 'essential-addons-for-elementor-lite'),
1088
+ 'icon' => 'fa fa-align-left',
1089
  ],
1090
  'center' => [
1091
  'title' => __('Center', 'essential-addons-for-elementor-lite'),
1092
+ 'icon' => 'fa fa-align-center',
1093
  ],
1094
+ 'right' => [
1095
  'title' => __('Right', 'essential-addons-for-elementor-lite'),
1096
+ 'icon' => 'fa fa-align-right',
1097
  ],
1098
  ],
1099
+ 'default' => 'center',
1100
+ 'toggle' => true,
1101
  'selectors' => [
1102
+ '{{WRAPPER}} .fc-day-number' => 'float: unset',
1103
  '{{WRAPPER}} .fc-view table thead:first-child tr:first-child td' => 'text-align: {{VALUE}};',
1104
  ],
1105
  ]
1108
  $this->add_responsive_control(
1109
  'date_padding',
1110
  [
1111
+ 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
1112
+ 'type' => Controls_Manager::DIMENSIONS,
1113
  'size_units' => ['px', 'em', '%'],
1114
+ 'selectors' => [
1115
  '{{WRAPPER}} .fc-day-number' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1116
  ],
1117
  ]
1120
  $this->add_responsive_control(
1121
  'date_border_radius',
1122
  [
1123
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1124
+ 'type' => Controls_Manager::DIMENSIONS,
1125
  'size_units' => ['px', '%'],
1126
+ 'selectors' => [
1127
  '{{WRAPPER}} .fc-day-number' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1128
  ],
1129
  ]
1132
  $this->add_responsive_control(
1133
  'date_margin',
1134
  [
1135
+ 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
1136
+ 'type' => Controls_Manager::DIMENSIONS,
1137
  'size_units' => ['px', 'em', '%'],
1138
+ 'selectors' => [
1139
  '{{WRAPPER}} .fc-day-number' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1140
  ],
1141
  ]
1144
  $this->add_control(
1145
  'today_date_setting',
1146
  [
1147
+ 'label' => __('Today Date', 'essential-addons-for-elementor-lite'),
1148
+ 'type' => Controls_Manager::HEADING,
1149
  'separator' => 'before',
1150
  ]
1151
  );
1153
  $this->add_control(
1154
  'today_date_color',
1155
  [
1156
+ 'type' => Controls_Manager::COLOR,
1157
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1158
+ 'default' => '#1111e1',
1159
  'selectors' => [
1160
  '{{WRAPPER}} .fc-today .fc-day-number' => 'color: {{VALUE}}',
1161
  ],
1165
  $this->add_control(
1166
  'today_date_background',
1167
  [
1168
+ 'type' => Controls_Manager::COLOR,
1169
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1170
  'selectors' => [
1171
  '{{WRAPPER}} .fc-unthemed td.fc-today' => 'background: {{VALUE}} !important',
1172
  ],
1175
 
1176
  $this->end_controls_section();
1177
 
 
1178
  /**
1179
  * Tab: Style => Panel: List
1180
  * -----------------------------------------------
1183
  'calendar_list_view',
1184
  [
1185
  'label' => __('List view', 'essential-addons-for-elementor-lite'),
1186
+ 'tab' => Controls_Manager::TAB_STYLE,
1187
  ]
1188
  );
1189
 
1191
  'eael_list_view_header_heading',
1192
  [
1193
  'label' => __('Header', 'essential-addons-for-elementor-lite'),
1194
+ 'type' => Controls_Manager::HEADING,
1195
  ]
1196
  );
1197
 
1198
  $this->add_control(
1199
  'list_row_header_color',
1200
  [
1201
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1202
+ 'type' => Controls_Manager::COLOR,
1203
  'selectors' => [
1204
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listWeek-view .fc-list-table .fc-widget-header span' => 'color: {{VALUE}};',
1205
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listMonth-view .fc-list-table .fc-widget-header span' => 'color: {{VALUE}};',
1210
  $this->add_control(
1211
  'list_header_background_color',
1212
  [
1213
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
1214
+ 'type' => Controls_Manager::COLOR,
1215
+ 'default' => '#f1edf8',
1216
  'selectors' => [
1217
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-heading td.fc-widget-header' => 'background-color: {{VALUE}};',
1218
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-heading td.fc-widget-header' => 'background-color: {{VALUE}};',
1224
  'eael_list_view_body_heading',
1225
  [
1226
  'label' => __('Body', 'essential-addons-for-elementor-lite'),
1227
+ 'type' => Controls_Manager::HEADING,
1228
  ]
1229
  );
1230
 
1231
  $this->add_control(
1232
  'list_element_text_color',
1233
  [
1234
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
1235
+ 'type' => Controls_Manager::COLOR,
1236
  'selectors' => [
1237
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listWeek-view .fc-list-table .fc-list-item' => 'color: {{VALUE}};',
1238
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-listMonth-view .fc-list-table .fc-list-item' => 'color: {{VALUE}};',
1243
  $this->add_control(
1244
  'list_element_even_color',
1245
  [
1246
+ 'label' => __('Even row Color', 'essential-addons-for-elementor-lite'),
1247
+ 'type' => Controls_Manager::COLOR,
1248
+ 'default' => '#ffffff',
1249
  'selectors' => [
1250
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-item:nth-child(even) td' => 'background-color: {{VALUE}};',
1251
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-item:nth-child(even) td' => 'background-color: {{VALUE}};',
1255
  $this->add_control(
1256
  'list_element_odd_color',
1257
  [
1258
+ 'label' => __('Odd row Color', 'essential-addons-for-elementor-lite'),
1259
+ 'type' => Controls_Manager::COLOR,
1260
+ 'default' => '#ffffff',
1261
  'selectors' => [
1262
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listWeek-view .fc-list-table tr.fc-list-item:nth-child(odd) td' => 'background-color: {{VALUE}};',
1263
  '{{WRAPPER}} .eael-event-calendar-wrapper .fc-view.fc-listMonth-view .fc-list-table tr.fc-list-item:nth-child(odd) td' => 'background-color: {{VALUE}};',
1272
  'eaelec_event_section',
1273
  [
1274
  'label' => __('Events', 'essential-addons-for-elementor-lite'),
1275
+ 'tab' => Controls_Manager::TAB_STYLE,
1276
  ]
1277
  );
1278
 
1279
  $this->add_group_control(
1280
  Group_Control_Typography::get_type(),
1281
  [
1282
+ 'name' => 'eael_event_typography',
1283
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1284
  'selector' => '{{WRAPPER}} .fc-content .fc-title,{{WRAPPER}} .fc-content .fc-time,{{WRAPPER}} .eael-event-calendar-wrapper .fc-list-table .fc-list-item td',
1285
  ]
1286
  );
1288
  $this->add_responsive_control(
1289
  'day_event_border_radius',
1290
  [
1291
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1292
+ 'type' => Controls_Manager::DIMENSIONS,
1293
  'size_units' => ['px', '%'],
1294
+ 'selectors' => [
1295
  '{{WRAPPER}} .fc-day-grid-event' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1296
  ],
1297
  ]
1300
  $this->add_responsive_control(
1301
  'day_event_padding',
1302
  [
1303
+ 'label' => esc_html__('Inside Space', 'essential-addons-for-elementor-lite'),
1304
+ 'type' => Controls_Manager::DIMENSIONS,
1305
+ 'size_units' => ['px' . 'em', '%'],
1306
+ 'selectors' => [
1307
  '{{WRAPPER}} .fc-day-grid-event' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1308
  ],
1309
  ]
1312
  $this->add_responsive_control(
1313
  'day_event_margin',
1314
  [
1315
+ 'label' => esc_html__('Outside Space', 'essential-addons-for-elementor-lite'),
1316
+ 'type' => Controls_Manager::DIMENSIONS,
1317
+ 'size_units' => ['px' . 'em', '%'],
1318
+ 'selectors' => [
1319
  '{{WRAPPER}} .fc-day-grid-event' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1320
  ],
1321
  ]
1327
  'event_popup',
1328
  [
1329
  'label' => __('Event Popup', 'essential-addons-for-elementor-lite'),
1330
+ 'tab' => Controls_Manager::TAB_STYLE,
1331
  ]
1332
  );
1333
 
1335
  'event_popup_title_heading',
1336
  [
1337
  'label' => __('Title', 'essential-addons-for-elementor-lite'),
1338
+ 'type' => Controls_Manager::HEADING,
1339
  ]
1340
  );
1341
 
1342
  $this->add_group_control(
1343
  Group_Control_Typography::get_type(),
1344
  [
1345
+ 'name' => 'event_popup_title_typography',
1346
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1347
  'selector' => '{{WRAPPER}} .eaelec-modal-header .eael-ec-modal-title',
1348
  ]
1349
  );
1351
  $this->add_control(
1352
  'event_popup_title_color',
1353
  [
1354
+ 'label' => __('Title Color', 'essential-addons-for-elementor-lite'),
1355
+ 'type' => Controls_Manager::COLOR,
1356
  'selectors' => [
1357
  '{{WRAPPER}} .eaelec-modal-header .eael-ec-modal-title' => 'color: {{VALUE}}',
1358
  ],
1362
  $this->add_control(
1363
  'event_popup_date_heading',
1364
  [
1365
+ 'label' => __('Date', 'essential-addons-for-elementor-lite'),
1366
+ 'type' => Controls_Manager::HEADING,
1367
  'separator' => 'before',
1368
  ]
1369
  );
1371
  $this->add_group_control(
1372
  Group_Control_Typography::get_type(),
1373
  [
1374
+ 'name' => 'event_popup_date_typography',
1375
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1376
  'selector' => '{{WRAPPER}} .eaelec-modal-header > span.eaelec-event-popup-date',
1377
  ]
1378
  );
1380
  $this->add_control(
1381
  'event_popup_date_color',
1382
  [
1383
+ 'label' => __('Date Color', 'essential-addons-for-elementor-lite'),
1384
+ 'type' => Controls_Manager::COLOR,
1385
  'selectors' => [
1386
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start' => 'color: {{VALUE}};',
1387
+ '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-end' => 'color: {{VALUE}};',
1388
  ],
1389
  ]
1390
  );
1392
  $this->add_control(
1393
  'event_popup_date_icon',
1394
  [
1395
+ 'label' => __('Date Icon', 'essential-addons-for-elementor-lite'),
1396
+ 'type' => Controls_Manager::HEADING,
1397
  'separator' => 'before',
1398
  ]
1399
  );
1401
  $this->add_control(
1402
  'event_popup_date_icon_size',
1403
  [
1404
+ 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1405
+ 'type' => Controls_Manager::SLIDER,
1406
  'size_units' => ['px'],
1407
+ 'range' => [
1408
  'px' => [
1409
  'min' => 0,
1410
  'max' => 100,
1411
+ ],
1412
  ],
1413
+ 'selectors' => [
1414
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start i' => 'font-size: {{SIZE}}{{UNIT}};',
1415
  ],
1416
  ]
1419
  $this->add_control(
1420
  'event_popup_date_icon_color',
1421
  [
1422
+ 'label' => __('Icon Color', 'essential-addons-for-elementor-lite'),
1423
+ 'type' => Controls_Manager::COLOR,
1424
  'selectors' => [
1425
  '{{WRAPPER}} .eaelec-modal-header span.eaelec-event-date-start i' => 'color: {{VALUE}};',
1426
  ],
1430
  $this->add_control(
1431
  'event_popup_content_heading',
1432
  [
1433
+ 'label' => __('Content', 'essential-addons-for-elementor-lite'),
1434
+ 'type' => Controls_Manager::HEADING,
1435
  'separator' => 'before',
1436
  ]
1437
  );
1439
  $this->add_group_control(
1440
  Group_Control_Typography::get_type(),
1441
  [
1442
+ 'name' => 'event_popup_content_typography',
1443
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1444
  'selector' => '{{WRAPPER}} .eaelec-modal-body',
1445
  ]
1446
  );
1448
  $this->add_control(
1449
  'event_popup_content_color',
1450
  [
1451
+ 'label' => __('Content Color', 'essential-addons-for-elementor-lite'),
1452
+ 'type' => Controls_Manager::COLOR,
1453
  'selectors' => [
1454
  '{{WRAPPER}} .eaelec-modal-body' => 'color: {{VALUE}};',
1455
  ],
1459
  $this->add_control(
1460
  'event_popup_close_button_style',
1461
  [
1462
+ 'label' => __(' Close Button', 'essential-addons-for-elementor-lite'),
1463
+ 'type' => Controls_Manager::HEADING,
1464
  'separator' => 'before',
1465
  ]
1466
  );
1468
  $this->add_responsive_control(
1469
  'close_button_icon_size',
1470
  [
1471
+ 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1472
+ 'type' => Controls_Manager::SLIDER,
1473
  'size_units' => ['px', 'em', '%'],
1474
+ 'range' => [
1475
  'px' => [
1476
  'min' => 0,
1477
  'max' => 100,
1480
  'min' => 0,
1481
  'max' => 100,
1482
  ],
1483
+ '%' => [
1484
  'min' => 0,
1485
  'max' => 100,
1486
  ],
1487
  ],
1488
+ 'selectors' => [
1489
  '{{WRAPPER}} .eaelec-modal-close > span' => 'font-size: {{SIZE}}{{UNIT}};',
1490
  ],
1491
  ]
1494
  $this->add_responsive_control(
1495
  'close_button_size',
1496
  [
1497
+ 'label' => __('Button Size', 'essential-addons-for-elementor-lite'),
1498
+ 'type' => Controls_Manager::SLIDER,
1499
  'size_units' => ['px', 'em', '%'],
1500
+ 'range' => [
1501
  'px' => [
1502
  'min' => 0,
1503
  'max' => 100,
1506
  'min' => 0,
1507
  'max' => 100,
1508
  ],
1509
+ '%' => [
1510
  'min' => 0,
1511
  'max' => 100,
1512
  ],
1513
  ],
1514
+ 'selectors' => [
1515
  '{{WRAPPER}} .eaelec-modal-close' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
1516
  ],
1517
  ]
1520
  $this->add_control(
1521
  'close_button_color',
1522
  [
1523
+ 'label' => __('Color', 'essential-addons-for-elementor-lite'),
1524
+ 'type' => Controls_Manager::COLOR,
1525
  'selectors' => [
1526
  '{{WRAPPER}} .eaelec-modal-close > span' => 'color: {{VALUE}};',
1527
  ],
1531
  $this->add_group_control(
1532
  Group_Control_Background::get_type(),
1533
  [
1534
+ 'name' => 'close_button_background',
1535
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1536
+ 'types' => [
1537
  'classic',
1538
  'gradient',
1539
  ],
1540
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1541
+ 'exclude' => [
1542
  'image',
1543
  ],
1544
  ]
1547
  $this->add_group_control(
1548
  Group_Control_Border::get_type(),
1549
  [
1550
+ 'name' => 'close_button_border',
1551
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1552
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1553
  ]
1554
  );
1556
  $this->add_responsive_control(
1557
  'close_button_border_radius',
1558
  [
1559
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
1560
+ 'type' => Controls_Manager::SLIDER,
1561
  'size_units' => ['px', '%'],
1562
+ 'range' => [
1563
  'px' => [
1564
+ 'min' => 0,
1565
+ 'max' => 100,
1566
  'step' => 1,
1567
  ],
1568
+ '%' => [
1569
  'min' => 0,
1570
  'max' => 100,
1571
  ],
1572
  ],
1573
+ 'selectors' => [
1574
  '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close' => 'border-radius: {{SIZE}}{{UNIT}};',
1575
  ],
1576
  ]
1579
  $this->add_group_control(
1580
  Group_Control_Box_Shadow::get_type(),
1581
  [
1582
+ 'name' => 'close_button_box_shadow',
1583
+ 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1584
  'selector' => '{{WRAPPER}} .eael-event-calendar-wrapper .eaelec-modal-close',
1585
  ]
1586
  );
1588
  $this->add_control(
1589
  'event_popup_ext_link_heading',
1590
  [
1591
+ 'label' => __('External Link', 'essential-addons-for-elementor-lite'),
1592
+ 'type' => Controls_Manager::HEADING,
1593
  'separator' => 'before',
1594
  ]
1595
  );
1597
  $this->add_group_control(
1598
  Group_Control_Typography::get_type(),
1599
  [
1600
+ 'name' => 'event_popup_ext_link_typography',
1601
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
1602
  'selector' => '{{WRAPPER}} .eaelec-modal-footer .eaelec-event-details-link',
1603
  ]
1604
  );
1606
  $this->add_control(
1607
  'event_popup_ext_link_color',
1608
  [
1609
+ 'label' => __('Date Color', 'essential-addons-for-elementor-lite'),
1610
+ 'type' => Controls_Manager::COLOR,
1611
  'selectors' => [
1612
  '{{WRAPPER}} .eaelec-modal-footer .eaelec-event-details-link' => 'color: {{VALUE}};',
1613
  ],
1618
  $this->add_group_control(
1619
  Group_Control_Border::get_type(),
1620
  [
1621
+ 'name' => 'event_popup_border',
1622
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
1623
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1624
  ]
1625
  );
1627
  $this->add_responsive_control(
1628
  'event_popup_border_radius',
1629
  [
1630
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1631
+ 'type' => Controls_Manager::DIMENSIONS,
1632
  'size_units' => ['px', '%'],
1633
+ 'selectors' => [
1634
  '{{WRAPPER}} .eaelec-modal .eaelec-modal-content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1635
  ],
1636
+ 'separator' => 'after',
1637
  ]
1638
  );
1639
 
1640
  $this->add_group_control(
1641
  Group_Control_Background::get_type(),
1642
  [
1643
+ 'name' => 'event_popup_background',
1644
+ 'label' => __('Background', 'essential-addons-for-elementor-lite'),
1645
+ 'types' => ['classic', 'gradient'],
1646
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1647
+ 'exclude' => [
1648
  'image',
1649
  ],
1650
  ]
1653
  $this->add_group_control(
1654
  Group_Control_Box_Shadow::get_type(),
1655
  [
1656
+ 'name' => 'event_popup_box_shadow',
1657
+ 'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
1658
  'selector' => '{{WRAPPER}} .eaelec-modal .eaelec-modal-content',
1659
  ]
1660
  );
1662
  $this->end_controls_section();
1663
  }
1664
 
1665
+ protected function render()
1666
+ {
1667
  $settings = $this->get_settings_for_display();
1668
 
1669
  if (in_array($settings['eael_event_calendar_type'], ['eventon'])) {
1679
  $local = $settings['eael_event_calendar_language'];
1680
  $default_view = $settings['eael_event_calendar_default_view'];
1681
  $translate_date = [
1682
+ 'today' => __('Today', 'essential-addons-for-elementor-lite'),
1683
+ 'tomorrow' => __('Tomorrow', 'essential-addons-for-elementor-lite'),
1684
  ];
1685
 
1686
  echo '<div class="eael-event-calendar-wrapper">';
1687
 
1688
+ echo '<div id="eael-event-calendar-' . $this->get_id() . '" class="eael-event-calendar-cls"
1689
+ data-cal_id = "' . $this->get_id() . '"
1690
+ data-locale = "' . $local . '"
1691
+ data-translate = "' . htmlspecialchars(json_encode($translate_date), ENT_QUOTES, 'UTF-8') . '"
1692
+ data-defaultview = "' . $default_view . '"
1693
+ data-events="' . htmlspecialchars(json_encode($data), ENT_QUOTES, 'UTF-8') . '"
1694
+ data-first_day="' . $settings['eael_event_calendar_first_day'] . '"></div>
1695
+ ' . $this->eaelec_load_event_details() . '
1696
  </div>';
1697
  }
1698
 
1699
+ protected function eaelec_load_event_details()
1700
+ {
1701
  return '<div id="eaelecModal" class="eaelec-modal eael-zoom-in">
1702
  <div class="eael-ec-modal-bg"></div>
1703
  <div class="eaelec-modal-content">
1711
  <p></p>
1712
  </div>
1713
  <div class="eaelec-modal-footer">
1714
+ <a class="eaelec-event-details-link">' . __("Event Details", "essential-addons-for-elementor-lite") . '</a>
1715
  </div>
1716
  </div>
1717
  </div>';
1718
  }
1719
 
1720
+ public function get_manual_calendar_events($settings)
1721
+ {
1722
  $events = $settings['eael_event_items'];
1723
  $data = [];
1724
  if ($events) {
1731
  $end = date('Y-m-d', strtotime("+1 days", strtotime($event["eael_event_end_date_allday"])));
1732
  } else {
1733
  $start = $event["eael_event_start_date"];
1734
+ $end = date('Y-m-d H:i', strtotime($event["eael_event_end_date"])) . ":01";
1735
  }
1736
 
1737
  $data[] = [
1738
+ 'id' => $i,
1739
+ 'title' => !empty($event["eael_event_title"]) ? $event["eael_event_title"] : 'No Title',
1740
  'description' => $event["eael_event_description"],
1741
+ 'start' => $start,
1742
+ 'end' => $end,
1743
  'borderColor' => !empty($event['eael_event_border_color']) ? $event['eael_event_border_color'] : '#10ecab',
1744
+ 'textColor' => $event['eael_event_text_color'],
1745
+ 'color' => $event['eael_event_bg_color'],
1746
+ 'url' => ($settings['eael_event_details_link_hide'] !== 'yes') ? $event["eael_event_link"]["url"] : '',
1747
+ 'allDay' => $event['eael_event_all_day'],
1748
+ 'external' => $event['eael_event_link']['is_external'],
1749
+ 'nofollow' => $event['eael_event_link']['nofollow'],
1750
  ];
1751
 
1752
  $i++;
1762
  *
1763
  * @return array
1764
  */
1765
+ public function get_google_calendar_events($settings)
1766
+ {
1767
 
1768
  if (empty($settings['eael_event_google_api_key']) && empty($settings['eael_event_calendar_id'])) {
1769
  return [];
1776
  $end_date = strtotime($settings['eael_google_calendar_end_date']);
1777
 
1778
  $arg = [
1779
+ 'key' => $settings['eael_event_google_api_key'],
1780
+ 'maxResults' => $settings['eael_google_calendar_max_result'],
1781
+ 'timeMin' => urlencode(date('c', $start_date)),
1782
  'singleEvents' => 'true',
1783
+ 'calendar_id' => urlencode($settings['eael_event_calendar_id']),
1784
  ];
1785
 
1786
  if (!empty($end_date) && $end_date > $start_date) {
1787
  $arg['timeMax'] = urlencode(date('c', $end_date));
1788
  }
1789
 
1790
+ $transient_key = 'eael_google_calendar_' . md5(implode('', $arg));
1791
  $data = get_transient($transient_key);
1792
 
1793
  if (isset($arg['calendar_id'])) {
1794
  unset($arg['calendar_id']);
1795
  }
1796
 
1797
+ if (empty($data)) {
1798
  $data = wp_remote_retrieve_body(wp_remote_get(add_query_arg($arg, $base_url)));
1799
  set_transient($transient_key, $data, 1 * HOUR_IN_SECONDS);
1800
  }
1822
  }
1823
 
1824
  $calendar_data[] = [
1825
+ 'id' => ++$key,
1826
+ 'title' => !empty($item->summary) ? $item->summary : 'No Title',
1827
  'description' => isset($item->description) ? $item->description : '',
1828
+ 'start' => $ev_start_date,
1829
+ 'end' => $ev_end_date,
1830
  'borderColor' => !empty($settings['eael_event_global_popup_ribbon_color']) ? $settings['eael_event_global_popup_ribbon_color'] : '#10ecab',
1831
+ 'textColor' => $settings['eael_event_global_text_color'],
1832
+ 'color' => $settings['eael_event_global_bg_color'],
1833
+ 'url' => ($settings['eael_event_details_link_hide'] !== 'yes') ? $item->htmlLink : '',
1834
+ 'allDay' => $all_day,
1835
+ 'external' => 'on',
1836
+ 'nofollow' => 'on',
1837
  ];
1838
  }
1839
 
 
1840
  }
1841
 
1842
  return $calendar_data;
1848
  * @return array
1849
  * @since 3.8.2
1850
  */
1851
+ public function get_the_events_calendar_events($settings)
1852
+ {
1853
 
1854
  if (!function_exists('tribe_get_events')) {
1855
  return [];
1865
  $arg['tax_query'] = [
1866
  [
1867
  'taxonomy' => 'tribe_events_cat', 'field' => 'id',
1868
+ 'terms' => $settings['eael_the_events_calendar_category'],
1869
+ ],
1870
  ];
1871
  }
1872
  $events = tribe_get_events($arg);
1882
  $all_day = '';
1883
  }
1884
  $calendar_data[] = [
1885
+ 'id' => ++$key,
1886
+ 'title' => !empty($event->post_title) ? $event->post_title : __('No Title',
1887
  'essential-addons-for-elementor-lite'),
1888
  'description' => $event->post_content,
1889
+ 'start' => tribe_get_start_date($event->ID, true, $date_format),
1890
+ 'end' => tribe_get_end_date($event->ID, true, $date_format),
1891
  'borderColor' => !empty($settings['eael_event_global_popup_ribbon_color']) ? $settings['eael_event_global_popup_ribbon_color'] : '#10ecab',
1892
+ 'textColor' => $settings['eael_event_global_text_color'],
1893
+ 'color' => $settings['eael_event_global_bg_color'],
1894
+ 'url' => ($settings['eael_event_details_link_hide'] !== 'yes') ? get_the_permalink($event->ID) : '',
1895
+ 'allDay' => $all_day,
1896
+ 'external' => 'on',
1897
+ 'nofollow' => 'on',
1898
  ];
1899
  }
1900
  return $calendar_data;
1901
  }
1902
+ }
includes/Elements/Facebook_Feed.php CHANGED
@@ -7,6 +7,7 @@ use \Elementor\Group_Control_Border;
7
  use \Elementor\Group_Control_Typography;
8
  use \Elementor\Scheme_Typography;
9
  use \Elementor\Widget_Base;
 
10
 
11
  if (!defined('ABSPATH')) {
12
  exit;
@@ -14,7 +15,7 @@ if (!defined('ABSPATH')) {
14
 
15
  class Facebook_Feed extends Widget_Base
16
  {
17
- use \Essential_Addons_Elementor\Traits\Helper;
18
 
19
  public function get_name()
20
  {
@@ -1142,7 +1143,7 @@ class Facebook_Feed extends Widget_Base
1142
 
1143
  $this->end_controls_section();
1144
 
1145
- $this->eael_load_more_button_style();
1146
  }
1147
 
1148
  protected function render()
7
  use \Elementor\Group_Control_Typography;
8
  use \Elementor\Scheme_Typography;
9
  use \Elementor\Widget_Base;
10
+ use \Essential_Addons_Elementor\Classes\Controls;
11
 
12
  if (!defined('ABSPATH')) {
13
  exit;
15
 
16
  class Facebook_Feed extends Widget_Base
17
  {
18
+ use \Essential_Addons_Elementor\Traits\Facebook_Feed;
19
 
20
  public function get_name()
21
  {
1143
 
1144
  $this->end_controls_section();
1145
 
1146
+ do_action('eael/controls/load_more_button_style', $this);
1147
  }
1148
 
1149
  protected function render()
includes/Elements/Fancy_Text.php CHANGED
@@ -6,11 +6,11 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
12
- use \Elementor\Scheme_Typography as Scheme_Typography;
13
- use \Elementor\Widget_Base as Widget_Base;
14
  use \Elementor\Repeater;
15
 
16
  class Fancy_Text extends Widget_Base {
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Typography;
12
+ use \Elementor\Scheme_Typography;
13
+ use \Elementor\Widget_Base;
14
  use \Elementor\Repeater;
15
 
16
  class Fancy_Text extends Widget_Base {
includes/Elements/Filterable_Gallery.php CHANGED
@@ -2904,7 +2904,7 @@ class Filterable_Gallery extends Widget_Base
2904
  return $gallery_store;
2905
  }
2906
 
2907
- protected function eael_render_fg_buttons($settings, $item)
2908
  {
2909
  $zoom_icon_migrated = isset($settings['__fa4_migrated']['eael_section_fg_zoom_icon_new']);
2910
  $zoom_icon_is_new = empty($settings['eael_section_fg_zoom_icon']);
@@ -3025,7 +3025,7 @@ class Filterable_Gallery extends Widget_Base
3025
 
3026
  if (empty($settings['eael_section_fg_full_image_clickable'])) {
3027
 
3028
- $html .= ($this->eael_render_fg_buttons($settings, $item));
3029
  }
3030
  }
3031
 
@@ -3059,11 +3059,11 @@ class Filterable_Gallery extends Widget_Base
3059
  $settings = $this->get_settings_for_display();
3060
  $gallery = $this->gallery_item_store();
3061
  $gallery_markup = [];
3062
-
3063
  $caption_style = $settings['eael_fg_caption_style'] == 'card' ? 'caption-style-card' : 'caption-style-hoverer';
3064
 
3065
  foreach ($gallery as $item) {
3066
  $popup_status = false;
 
3067
  if ($item['controls'] != '') {
3068
  $html = '<div class="eael-filterable-gallery-item-wrap eael-cf-' . $item['controls'] . '">
3069
  <div class="eael-gallery-grid-item">';
@@ -3077,18 +3077,16 @@ class Filterable_Gallery extends Widget_Base
3077
  && $item['video_gallery_switch'] != 'true'
3078
  && $settings['eael_fg_show_popup'] === 'media'
3079
  ) {
 
3080
  $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3081
  }
3082
 
3083
  if ($settings['eael_section_fg_full_image_clickable']) {
3084
-
3085
- if ($settings['eael_section_fg_full_image_action'] === 'lightbox') {
3086
-
3087
  $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3088
  }
3089
 
3090
  if ($settings['eael_section_fg_full_image_action'] === 'link') {
3091
-
3092
  $fia_string = 'href="' . esc_url($item['link']['url']) . '"';
3093
 
3094
  if ($item['link']['nofollow']) {
@@ -3102,43 +3100,45 @@ class Filterable_Gallery extends Widget_Base
3102
  $html .= '<a ' . $fia_string . '>';
3103
  }
3104
  }
 
3105
  $html .= '<div class="gallery-item-thumbnail-wrap">';
3106
- $html .= '<img src="' . $item['image'] . '" data-lazy-src="' . $item['image'] . '" alt="' . esc_attr(get_post_meta($item['image_id'], '_wp_attachment_image_alt', true)) . '" class="gallery-item-thumbnail">';
3107
-
3108
- if (empty($settings['eael_section_fg_full_image_clickable'])) {
3109
 
3110
- if ($settings['eael_fg_show_popup'] == 'buttons' && $settings['eael_fg_caption_style'] === 'card') {
3111
- $html .= '<div class="gallery-item-caption-wrap card-hover-bg caption-style-hoverer ' . $settings['eael_fg_grid_hover_style'] . '">';
3112
- $html .= ($this->eael_render_fg_buttons($settings, $item));
3113
- $html .= '</div>';
 
 
3114
  }
3115
- }
3116
 
3117
- if (isset($item['video_gallery_switch']) && ($item['video_gallery_switch'] === 'true')) {
3118
- $icon_url = isset($item['play_icon']['url']) ? $item['play_icon']['url'] : '';
3119
- $video_url = isset($item['video_link']) ? $item['video_link'] : '#';
3120
 
3121
- $html .= '<a href="' . esc_url($video_url) . '" class="video-popup eael-magnific-link eael-magnific-video-link mfp-iframe">';
3122
- $html .= '<div class="video-popup-bg"></div>';
3123
- if (!empty($icon_url)) $html .= '<img src="' . esc_url($icon_url) . '">';
3124
- $html .= '</a>';
3125
- }
 
3126
 
3127
- $html .= '</div>';
3128
- if ($settings['eael_fg_caption_style'] == 'card') $html .= '</a>';
3129
 
 
3130
 
 
 
 
3131
 
3132
- if (
3133
- $settings['eael_fg_show_popup'] == 'media'
3134
- && $settings['eael_fg_caption_style'] !== 'card'
3135
- ) $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3136
 
3137
 
3138
  if ($item['video_gallery_switch'] != 'true' || $settings['eael_fg_caption_style'] == 'card') {
3139
-
3140
  if ($settings['eael_fg_grid_hover_style'] !== 'eael-none') {
3141
-
3142
  $html .= '<div class="gallery-item-caption-wrap ' . $caption_style . ' ' . $settings['eael_fg_grid_hover_style'] . '">';
3143
 
3144
  if ('hoverer' == $settings['eael_fg_caption_style']) {
@@ -3146,29 +3146,34 @@ class Filterable_Gallery extends Widget_Base
3146
  }
3147
 
3148
  $html .= '<div class="gallery-item-caption-over">';
3149
- if (isset($item['title']) && !empty($item['title']) || isset($item['content']) && !empty($item['content'])) {
3150
- if (!empty($item['title'])) {
3151
- $html .= '<' . $settings['title_tag'] . ' class="fg-item-title">' . $item['title'] . '</' . $settings['title_tag'] . '>';
3152
- }
3153
- if (!empty($item['content'])) {
3154
- $html .= '<div class="fg-item-content">' . wpautop($item['content']) . '</div>';
3155
- }
3156
- }
3157
 
3158
- if ($settings['eael_fg_show_popup'] == 'buttons' && $settings['eael_fg_caption_style'] !== 'card') {
 
 
 
3159
 
3160
- if (empty($settings['eael_section_fg_full_image_clickable'])) {
3161
- $html .= ($this->eael_render_fg_buttons($settings, $item));
 
 
3162
  }
3163
- }
3164
  $html .= '</div>';
3165
 
3166
  $html .= '</div>';
3167
- if ($settings['eael_section_fg_full_image_clickable']) $html .= '</a>';
 
 
 
3168
  }
3169
  }
3170
 
3171
- if ($settings['eael_fg_show_popup'] == 'media') $html .= '</a>';
 
 
3172
 
3173
 
3174
  $html .= '</div></div>';
@@ -3176,13 +3181,11 @@ class Filterable_Gallery extends Widget_Base
3176
  $gallery_markup[] = $html;
3177
  }
3178
 
3179
-
3180
  return $gallery_markup;
3181
  }
3182
 
3183
- protected function render()
3184
- {
3185
- $settings = $this->get_settings();
3186
 
3187
  if (!empty($settings['eael_fg_filter_duration'])) {
3188
  $filter_duration = $settings['eael_fg_filter_duration'];
2904
  return $gallery_store;
2905
  }
2906
 
2907
+ protected function render_fg_buttons($settings, $item)
2908
  {
2909
  $zoom_icon_migrated = isset($settings['__fa4_migrated']['eael_section_fg_zoom_icon_new']);
2910
  $zoom_icon_is_new = empty($settings['eael_section_fg_zoom_icon']);
3025
 
3026
  if (empty($settings['eael_section_fg_full_image_clickable'])) {
3027
 
3028
+ $html .= $this->render_fg_buttons($settings, $item);
3029
  }
3030
  }
3031
 
3059
  $settings = $this->get_settings_for_display();
3060
  $gallery = $this->gallery_item_store();
3061
  $gallery_markup = [];
 
3062
  $caption_style = $settings['eael_fg_caption_style'] == 'card' ? 'caption-style-card' : 'caption-style-hoverer';
3063
 
3064
  foreach ($gallery as $item) {
3065
  $popup_status = false;
3066
+
3067
  if ($item['controls'] != '') {
3068
  $html = '<div class="eael-filterable-gallery-item-wrap eael-cf-' . $item['controls'] . '">
3069
  <div class="eael-gallery-grid-item">';
3077
  && $item['video_gallery_switch'] != 'true'
3078
  && $settings['eael_fg_show_popup'] === 'media'
3079
  ) {
3080
+ $popup_status = true;
3081
  $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3082
  }
3083
 
3084
  if ($settings['eael_section_fg_full_image_clickable']) {
3085
+ if ($settings['eael_section_fg_full_image_action'] === 'lightbox' && !$popup_status) {
 
 
3086
  $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3087
  }
3088
 
3089
  if ($settings['eael_section_fg_full_image_action'] === 'link') {
 
3090
  $fia_string = 'href="' . esc_url($item['link']['url']) . '"';
3091
 
3092
  if ($item['link']['nofollow']) {
3100
  $html .= '<a ' . $fia_string . '>';
3101
  }
3102
  }
3103
+
3104
  $html .= '<div class="gallery-item-thumbnail-wrap">';
3105
+ $html .= '<img src="' . $item['image'] . '" data-lazy-src="'.$item['image'].'" alt="' . esc_attr(get_post_meta($item['image_id'], '_wp_attachment_image_alt', true)) . '" class="gallery-item-thumbnail">';
 
 
3106
 
3107
+ if ( empty($settings['eael_section_fg_full_image_clickable']) ) {
3108
+ if ($settings['eael_fg_show_popup'] == 'buttons' && $settings['eael_fg_caption_style'] === 'card') {
3109
+ $html .= '<div class="gallery-item-caption-wrap card-hover-bg caption-style-hoverer ' . $settings['eael_fg_grid_hover_style'] . '">
3110
+ ' . $this->render_fg_buttons($settings, $item) . '
3111
+ </div>';
3112
+ }
3113
  }
 
3114
 
3115
+ if (isset($item['video_gallery_switch']) && ($item['video_gallery_switch'] === 'true')) {
3116
+ $icon_url = isset($item['play_icon']['url']) ? $item['play_icon']['url'] : '';
3117
+ $video_url = isset($item['video_link']) ? $item['video_link'] : '#';
3118
 
3119
+ $html .= '<a href="' . esc_url($video_url) . '" class="video-popup eael-magnific-link eael-magnific-video-link mfp-iframe">';
3120
+ $html .= '<div class="video-popup-bg"></div>';
3121
+
3122
+ if (!empty($icon_url)) {
3123
+ $html .= '<img src="' . esc_url($icon_url) . '">';
3124
+ }
3125
 
3126
+ $html .= '</a>';
3127
+ }
3128
 
3129
+ $html .= '</div>';
3130
 
3131
+ if ($settings['eael_fg_caption_style'] == 'card') {
3132
+ $html .= '</a>';
3133
+ }
3134
 
3135
+ if ($settings['eael_fg_show_popup'] == 'media' && $settings['eael_fg_caption_style'] !== 'card') {
3136
+ $html .= '<a href="' . esc_url($item['image']) . '" class="eael-magnific-link media-content-wrap" data-elementor-open-lightbox="no">';
3137
+ }
 
3138
 
3139
 
3140
  if ($item['video_gallery_switch'] != 'true' || $settings['eael_fg_caption_style'] == 'card') {
 
3141
  if ($settings['eael_fg_grid_hover_style'] !== 'eael-none') {
 
3142
  $html .= '<div class="gallery-item-caption-wrap ' . $caption_style . ' ' . $settings['eael_fg_grid_hover_style'] . '">';
3143
 
3144
  if ('hoverer' == $settings['eael_fg_caption_style']) {
3146
  }
3147
 
3148
  $html .= '<div class="gallery-item-caption-over">';
3149
+ if (isset($item['title']) && !empty($item['title']) || isset($item['content']) && !empty($item['content'])) {
3150
+ if (!empty($item['title'])) {
3151
+ $html .= '<' . $settings['title_tag'] . ' class="fg-item-title">' . $item['title'] . '</' . $settings['title_tag'] . '>';
3152
+ }
 
 
 
 
3153
 
3154
+ if (!empty($item['content'])) {
3155
+ $html .= '<div class="fg-item-content">' . wpautop($item['content']) . '</div>';
3156
+ }
3157
+ }
3158
 
3159
+ if ($settings['eael_fg_show_popup'] == 'buttons' && $settings['eael_fg_caption_style'] !== 'card') {
3160
+ if (empty($settings['eael_section_fg_full_image_clickable'])) {
3161
+ $html .= ($this->render_fg_buttons($settings, $item));
3162
+ }
3163
  }
 
3164
  $html .= '</div>';
3165
 
3166
  $html .= '</div>';
3167
+
3168
+ if ($settings['eael_section_fg_full_image_clickable']) {
3169
+ $html .= '</a>';
3170
+ }
3171
  }
3172
  }
3173
 
3174
+ if ($settings['eael_fg_show_popup'] == 'media') {
3175
+ $html .= '</a>';
3176
+ }
3177
 
3178
 
3179
  $html .= '</div></div>';
3181
  $gallery_markup[] = $html;
3182
  }
3183
 
 
3184
  return $gallery_markup;
3185
  }
3186
 
3187
+ protected function render() {
3188
+ $settings = $this->get_settings_for_display();
 
3189
 
3190
  if (!empty($settings['eael_fg_filter_duration'])) {
3191
  $filter_duration = $settings['eael_fg_filter_duration'];
includes/Elements/FluentForm.php CHANGED
@@ -6,20 +6,20 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Scheme_Typography as Scheme_Typography;
14
- use \Elementor\Widget_Base as Widget_Base;
15
- use \Elementor\Group_Control_Background as Group_Control_Background;
16
  use \Elementor\Scheme_Color;
17
 
 
 
18
  class FluentForm extends Widget_Base
19
  {
20
 
21
- use \Essential_Addons_Elementor\Traits\Helper;
22
-
23
  public function get_name()
24
  {
25
  return 'eael-fluentform';
@@ -110,7 +110,7 @@ class FluentForm extends Widget_Base
110
  'label' => esc_html__('Fluent Form', 'essential-addons-for-elementor-lite'),
111
  'type' => Controls_Manager::SELECT,
112
  'label_block' => true,
113
- 'options' => $this->eael_select_fluent_forms(),
114
  'default' => '0',
115
  ]
116
  );
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
+ use \Elementor\Scheme_Typography;
14
+ use \Elementor\Widget_Base;
15
+ use \Elementor\Group_Control_Background;
16
  use \Elementor\Scheme_Color;
17
 
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
+
20
  class FluentForm extends Widget_Base
21
  {
22
 
 
 
23
  public function get_name()
24
  {
25
  return 'eael-fluentform';
110
  'label' => esc_html__('Fluent Form', 'essential-addons-for-elementor-lite'),
111
  'type' => Controls_Manager::SELECT,
112
  'label_block' => true,
113
+ 'options' => Helper::get_fluent_forms_list(),
114
  'default' => '0',
115
  ]
116
  );
includes/Elements/Formstack.php CHANGED
@@ -7,18 +7,18 @@ if (!defined('ABSPATH')) {
7
  exit;
8
  }
9
 
10
- use \Elementor\Controls_Manager as Controls_Manager;
11
- use \Elementor\Group_Control_Border as Group_Control_Border;
12
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
13
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
14
- use \Elementor\Scheme_Typography as Scheme_Typography;
15
- use \Elementor\Widget_Base as Widget_Base;
16
- use \Elementor\Group_Control_Background as Group_Control_Background;
17
  use \Elementor\Scheme_Color;
18
 
19
  class Formstack extends Widget_Base {
20
 
21
- // use \Essential_Addons_Elementor\Traits\Helper;
22
 
23
  public function get_name () {
24
  return 'eael-formstack';
7
  exit;
8
  }
9
 
10
+ use \Elementor\Controls_Manager;
11
+ use \Elementor\Group_Control_Border;
12
+ use \Elementor\Group_Control_Box_Shadow;
13
+ use \Elementor\Group_Control_Typography;
14
+ use \Elementor\Scheme_Typography;
15
+ use \Elementor\Widget_Base;
16
+ use \Elementor\Group_Control_Background;
17
  use \Elementor\Scheme_Color;
18
 
19
  class Formstack extends Widget_Base {
20
 
21
+ //
22
 
23
  public function get_name () {
24
  return 'eael-formstack';
includes/Elements/GravityForms.php CHANGED
@@ -6,18 +6,20 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Scheme_Typography as Scheme_Typography;
14
- use \Elementor\Widget_Base as Widget_Base;
 
 
 
15
 
16
  /**
17
  * Gravity Forms Widget
18
  */
19
  class GravityForms extends Widget_Base {
20
- use \Essential_Addons_Elementor\Traits\Helper;
21
 
22
  /**
23
  * Retrieve gravity forms widget name.
@@ -134,7 +136,7 @@ class GravityForms extends Widget_Base {
134
  'label' => esc_html__( 'Select Form', 'essential-addons-for-elementor-lite'),
135
  'type' => Controls_Manager::SELECT,
136
  'label_block' => true,
137
- 'options' => $this->eael_select_gravity_form(),
138
  'default' => '0',
139
  ]
140
  );
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
+ use \Elementor\Scheme_Typography;
14
+ use \Elementor\Widget_Base;
15
+
16
+ use \Essential_Addons_Elementor\Classes\Helper;
17
+
18
 
19
  /**
20
  * Gravity Forms Widget
21
  */
22
  class GravityForms extends Widget_Base {
 
23
 
24
  /**
25
  * Retrieve gravity forms widget name.
136
  'label' => esc_html__( 'Select Form', 'essential-addons-for-elementor-lite'),
137
  'type' => Controls_Manager::SELECT,
138
  'label_block' => true,
139
+ 'options' => Helper::get_gravity_form_list(),
140
  'default' => '0',
141
  ]
142
  );
includes/Elements/Image_Accordion.php CHANGED
@@ -6,11 +6,11 @@ if ( !defined( 'ABSPATH' ) ) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Widget_Base as Widget_Base;
14
 
15
  class Image_Accordion extends Widget_Base {
16
  public function get_name() {
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
+ use \Elementor\Widget_Base;
14
 
15
  class Image_Accordion extends Widget_Base {
16
  public function get_name() {
includes/Elements/Info_Box.php CHANGED
@@ -15,11 +15,10 @@ use \Elementor\Group_Control_Typography;
15
  use \Elementor\Plugin;
16
  use \Elementor\Utils;
17
  use \Elementor\Widget_Base;
 
18
 
19
  class Info_Box extends Widget_Base
20
  {
21
- use \Essential_Addons_Elementor\Traits\Helper;
22
-
23
  public function get_name()
24
  {
25
  return 'eael-info-box';
@@ -76,13 +75,13 @@ class Info_Box extends Widget_Base
76
  $this->add_control(
77
  'eael_infobox_img_type',
78
  [
79
- 'label' => esc_html__('Infobox Type', 'essential-addons-for-elementor-lite'),
80
- 'type' => Controls_Manager::SELECT,
81
- 'default' => 'img-on-top',
82
  'label_block' => false,
83
- 'options' => [
84
- 'img-on-top' => esc_html__('Image/Icon On Top', 'essential-addons-for-elementor-lite'),
85
- 'img-on-left' => esc_html__('Image/Icon On Left', 'essential-addons-for-elementor-lite'),
86
  'img-on-right' => esc_html__('Image/Icon On Right', 'essential-addons-for-elementor-lite'),
87
  ],
88
  ]
@@ -91,59 +90,59 @@ class Info_Box extends Widget_Base
91
  $this->add_responsive_control(
92
  'eael_infobox_img_or_icon',
93
  [
94
- 'label' => esc_html__('Image or Icon', 'essential-addons-for-elementor-lite'),
95
- 'type' => Controls_Manager::CHOOSE,
96
  'label_block' => true,
97
- 'options' => [
98
- 'none' => [
99
  'title' => esc_html__('None', 'essential-addons-for-elementor-lite'),
100
- 'icon' => 'fa fa-ban',
101
  ],
102
  'number' => [
103
  'title' => esc_html__('Number', 'essential-addons-for-elementor-lite'),
104
- 'icon' => 'fa fa-sort-numeric-desc',
105
  ],
106
- 'icon' => [
107
  'title' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
108
- 'icon' => 'fa fa-info-circle',
109
  ],
110
- 'img' => [
111
  'title' => esc_html__('Image', 'essential-addons-for-elementor-lite'),
112
- 'icon' => 'fa fa-picture-o',
113
  ],
114
  ],
115
- 'default' => 'icon',
116
  ]
117
  );
118
 
119
  $this->add_responsive_control(
120
  'icon_vertical_position',
121
  [
122
- 'label' => __('Icon Position', 'essential-addons-for-elementor-lite'),
123
- 'type' => Controls_Manager::CHOOSE,
124
- 'default' => 'top',
125
- 'condition' => [
126
  'eael_infobox_img_type!' => 'img-on-top',
127
  ],
128
- 'options' => [
129
- 'top' => [
130
  'title' => __('Top', 'essential-addons-for-elementor-lite'),
131
- 'icon' => 'eicon-v-align-top',
132
  ],
133
  'middle' => [
134
  'title' => __('Middle', 'essential-addons-for-elementor-lite'),
135
- 'icon' => 'eicon-v-align-middle',
136
  ],
137
  'bottom' => [
138
  'title' => __('Bottom', 'essential-addons-for-elementor-lite'),
139
- 'icon' => 'eicon-v-align-bottom',
140
  ],
141
  ],
142
- 'selectors' => [
143
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'align-self: {{VALUE}};',
144
  ],
145
  'selectors_dictionary' => [
146
- 'top' => 'baseline',
147
  'middle' => 'center',
148
  'bottom' => 'flex-end',
149
  ],
@@ -156,9 +155,9 @@ class Info_Box extends Widget_Base
156
  $this->add_control(
157
  'eael_infobox_image',
158
  [
159
- 'label' => esc_html__('Infobox Image', 'essential-addons-for-elementor-lite'),
160
- 'type' => Controls_Manager::MEDIA,
161
- 'default' => [
162
  'url' => Utils::get_placeholder_image_src(),
163
  ],
164
  'condition' => [
@@ -173,14 +172,14 @@ class Info_Box extends Widget_Base
173
  $this->add_control(
174
  'eael_infobox_icon_new',
175
  [
176
- 'label' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
177
- 'type' => Controls_Manager::ICONS,
178
  'fa4compatibility' => 'eael_infobox_icon',
179
- 'default' => [
180
- 'value' => 'fas fa-building',
181
  'library' => 'fa-solid',
182
  ],
183
- 'condition' => [
184
  'eael_infobox_img_or_icon' => 'icon',
185
  ],
186
  ]
@@ -192,8 +191,8 @@ class Info_Box extends Widget_Base
192
  $this->add_control(
193
  'eael_infobox_number',
194
  [
195
- 'label' => esc_html__('Number', 'essential-addons-for-elementor-lite'),
196
- 'type' => Controls_Manager::TEXT,
197
  'condition' => [
198
  'eael_infobox_img_or_icon' => 'number',
199
  ],
@@ -214,41 +213,41 @@ class Info_Box extends Widget_Base
214
  $this->add_control(
215
  'eael_infobox_title',
216
  [
217
- 'label' => esc_html__('Infobox Title', 'essential-addons-for-elementor-lite'),
218
- 'type' => Controls_Manager::TEXT,
219
  'label_block' => true,
220
- 'dynamic' => [
221
  'active' => true,
222
  ],
223
- 'default' => esc_html__('This is an icon box', 'essential-addons-for-elementor-lite'),
224
  ]
225
  );
226
  $this->add_control(
227
  'eael_infobox_title_tag',
228
  [
229
- 'label' => __('Select Title Tag', 'essential-addons-for-elementor-lite'),
230
- 'type' => Controls_Manager::SELECT,
231
  'default' => 'h4',
232
  'options' => [
233
- 'h1' => __('H1', 'essential-addons-for-elementor-lite'),
234
- 'h2' => __('H2', 'essential-addons-for-elementor-lite'),
235
- 'h3' => __('H3', 'essential-addons-for-elementor-lite'),
236
- 'h4' => __('H4', 'essential-addons-for-elementor-lite'),
237
- 'h5' => __('H5', 'essential-addons-for-elementor-lite'),
238
- 'h6' => __('H6', 'essential-addons-for-elementor-lite'),
239
  'span' => __('Span', 'essential-addons-for-elementor-lite'),
240
- 'p' => __('P', 'essential-addons-for-elementor-lite'),
241
- 'div' => __('Div', 'essential-addons-for-elementor-lite'),
242
  ],
243
  ]
244
  );
245
  $this->add_control(
246
  'eael_infobox_text_type',
247
  [
248
- 'label' => __('Content Type', 'essential-addons-for-elementor-lite'),
249
- 'type' => Controls_Manager::SELECT,
250
  'options' => [
251
- 'content' => __('Content', 'essential-addons-for-elementor-lite'),
252
  'template' => __('Saved Templates', 'essential-addons-for-elementor-lite'),
253
  ],
254
  'default' => 'content',
@@ -258,9 +257,9 @@ class Info_Box extends Widget_Base
258
  $this->add_control(
259
  'eael_primary_templates',
260
  [
261
- 'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
262
- 'type' => Controls_Manager::SELECT,
263
- 'options' => $this->eael_get_page_templates(),
264
  'condition' => [
265
  'eael_infobox_text_type' => 'template',
266
  ],
@@ -269,14 +268,14 @@ class Info_Box extends Widget_Base
269
  $this->add_control(
270
  'eael_infobox_text',
271
  [
272
- 'label' => esc_html__('Infobox Content', 'essential-addons-for-elementor-lite'),
273
- 'type' => Controls_Manager::WYSIWYG,
274
  'label_block' => true,
275
- 'dynamic' => [
276
  'active' => true,
277
  ],
278
- 'default' => esc_html__('Write a short description, that will describe the title or something informational and useful.', 'essential-addons-for-elementor-lite'),
279
- 'condition' => [
280
  'eael_infobox_text_type' => 'content',
281
  ],
282
  ]
@@ -284,37 +283,37 @@ class Info_Box extends Widget_Base
284
  $this->add_control(
285
  'eael_show_infobox_content',
286
  [
287
- 'label' => __('Show Content', 'essential-addons-for-elementor-lite'),
288
- 'type' => Controls_Manager::SWITCHER,
289
- 'default' => 'yes',
290
- 'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
291
- 'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
292
  'return_value' => 'yes',
293
  ]
294
  );
295
  $this->add_responsive_control(
296
  'eael_infobox_content_alignment',
297
  [
298
- 'label' => esc_html__('Content Alignment', 'essential-addons-for-elementor-lite'),
299
- 'type' => Controls_Manager::CHOOSE,
300
- 'label_block' => true,
301
- 'options' => [
302
- 'left' => [
303
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
304
- 'icon' => 'fa fa-align-left',
305
  ],
306
  'center' => [
307
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
308
- 'icon' => 'fa fa-align-center',
309
  ],
310
- 'right' => [
311
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
312
- 'icon' => 'fa fa-align-right',
313
  ],
314
  ],
315
- 'default' => 'center',
316
  'prefix_class' => 'eael-infobox-content-align-',
317
- 'condition' => [
318
  'eael_infobox_img_type' => 'img-on-top',
319
  ],
320
  ]
@@ -323,14 +322,14 @@ class Info_Box extends Widget_Base
323
  $this->add_control(
324
  'content_height',
325
  [
326
- 'label' => esc_html__('Content Height', 'essential-addons-for-elementor-lite'),
327
- 'type' => Controls_Manager::SLIDER,
328
  'size_units' => ['px', '%', 'em'],
329
- 'range' => [
330
  'px' => ['max' => 300],
331
- '%' => ['max' => 100],
332
  ],
333
- 'selectors' => [
334
  '{{WRAPPER}} .infobox-content' => 'height: {{SIZE}}{{UNIT}};',
335
  ],
336
  ]
@@ -353,9 +352,9 @@ class Info_Box extends Widget_Base
353
  $this->add_control(
354
  'eael_show_infobox_button',
355
  [
356
- 'label' => __('Show Infobox Button', 'essential-addons-for-elementor-lite'),
357
- 'type' => Controls_Manager::SWITCHER,
358
- 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
359
  'label_off' => __('No', 'essential-addons-for-elementor-lite'),
360
  'condition' => [
361
  'eael_show_infobox_clickable!' => 'yes',
@@ -366,13 +365,13 @@ class Info_Box extends Widget_Base
366
  $this->add_control(
367
  'eael_show_infobox_clickable',
368
  [
369
- 'label' => __('Infobox Clickable', 'essential-addons-for-elementor-lite'),
370
- 'type' => Controls_Manager::SWITCHER,
371
- 'default' => 'no',
372
- 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
373
- 'label_off' => __('No', 'essential-addons-for-elementor-lite'),
374
  'return_value' => 'yes',
375
- 'condition' => [
376
  'eael_show_infobox_button!' => 'yes',
377
  ],
378
  ]
@@ -381,15 +380,15 @@ class Info_Box extends Widget_Base
381
  $this->add_control(
382
  'eael_show_infobox_clickable_link',
383
  [
384
- 'label' => esc_html__('Infobox Link', 'essential-addons-for-elementor-lite'),
385
- 'type' => Controls_Manager::URL,
386
- 'label_block' => true,
387
- 'default' => [
388
- 'url' => 'http://',
389
  'is_external' => '',
390
  ],
391
  'show_external' => true,
392
- 'condition' => [
393
  'eael_show_infobox_clickable' => 'yes',
394
  ],
395
  ]
@@ -398,14 +397,14 @@ class Info_Box extends Widget_Base
398
  $this->add_control(
399
  'infobox_button_text',
400
  [
401
- 'label' => __('Button Text', 'essential-addons-for-elementor-lite'),
402
- 'type' => Controls_Manager::TEXT,
403
  'label_block' => true,
404
- 'default' => 'Click Me!',
405
- 'separator' => 'before',
406
  'placeholder' => __('Enter button text', 'essential-addons-for-elementor-lite'),
407
- 'title' => __('Enter button text here', 'essential-addons-for-elementor-lite'),
408
- 'condition' => [
409
  'eael_show_infobox_button' => 'yes',
410
  ],
411
  ]
@@ -414,16 +413,16 @@ class Info_Box extends Widget_Base
414
  $this->add_control(
415
  'infobox_button_link_url',
416
  [
417
- 'label' => __('Link URL', 'essential-addons-for-elementor-lite'),
418
- 'type' => Controls_Manager::URL,
419
- 'label_block' => true,
420
- 'placeholder' => __('Enter link URL for the button', 'essential-addons-for-elementor-lite'),
421
  'show_external' => true,
422
- 'default' => [
423
  'url' => '#',
424
  ],
425
- 'title' => __('Enter heading for the button', 'essential-addons-for-elementor-lite'),
426
- 'condition' => [
427
  'eael_show_infobox_button' => 'yes',
428
  ],
429
  ]
@@ -432,10 +431,10 @@ class Info_Box extends Widget_Base
432
  $this->add_control(
433
  'eael_infobox_button_icon_new',
434
  [
435
- 'label' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
436
- 'type' => Controls_Manager::ICONS,
437
  'fa4compatibility' => 'eael_infobox_button_icon',
438
- 'condition' => [
439
  'eael_show_infobox_button' => 'yes',
440
  ],
441
  ]
@@ -444,16 +443,16 @@ class Info_Box extends Widget_Base
444
  $this->add_control(
445
  'eael_infobox_button_icon_alignment',
446
  [
447
- 'label' => esc_html__('Icon Position', 'essential-addons-for-elementor-lite'),
448
- 'type' => Controls_Manager::SELECT,
449
- 'default' => 'left',
450
- 'options' => [
451
- 'left' => esc_html__('Before', 'essential-addons-for-elementor-lite'),
452
  'right' => esc_html__('After', 'essential-addons-for-elementor-lite'),
453
  ],
454
  'condition' => [
455
  'eael_infobox_button_icon_new!' => '',
456
- 'eael_show_infobox_button' => 'yes',
457
  ],
458
  ]
459
  );
@@ -461,20 +460,20 @@ class Info_Box extends Widget_Base
461
  $this->add_control(
462
  'eael_infobox_button_icon_indent',
463
  [
464
- 'label' => esc_html__('Icon Spacing', 'essential-addons-for-elementor-lite'),
465
- 'type' => Controls_Manager::SLIDER,
466
- 'range' => [
467
  'px' => [
468
  'max' => 60,
469
  ],
470
  ],
471
  'condition' => [
472
  'eael_infobox_button_icon_new!' => '',
473
- 'eael_show_infobox_button' => 'yes',
474
  ],
475
  'selectors' => [
476
  '{{WRAPPER}} .eael_infobox_button_icon_right' => 'margin-left: {{SIZE}}px;',
477
- '{{WRAPPER}} .eael_infobox_button_icon_left' => 'margin-right: {{SIZE}}px;',
478
  ],
479
  ]
480
  );
@@ -491,15 +490,15 @@ class Info_Box extends Widget_Base
491
  $this->add_control(
492
  'eael_control_get_pro',
493
  [
494
- 'label' => __('Unlock more possibilities', 'essential-addons-for-elementor-lite'),
495
- 'type' => Controls_Manager::CHOOSE,
496
- 'options' => [
497
  '1' => [
498
  'title' => __('', 'essential-addons-for-elementor-lite'),
499
- 'icon' => 'fa fa-unlock-alt',
500
  ],
501
  ],
502
- 'default' => '1',
503
  'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank">Pro version</a> for more stunning elements and customization options.</span>',
504
  ]
505
  );
@@ -515,8 +514,8 @@ class Info_Box extends Widget_Base
515
  $this->start_controls_section(
516
  'eael_section_infobox_imgae_style_settings',
517
  [
518
- 'label' => esc_html__('Image Style', 'essential-addons-for-elementor-lite'),
519
- 'tab' => Controls_Manager::TAB_STYLE,
520
  'condition' => [
521
  'eael_infobox_img_or_icon' => 'img',
522
  ],
@@ -535,9 +534,9 @@ class Info_Box extends Widget_Base
535
  $this->add_control(
536
  'eael_infobox_image_icon_bg_color',
537
  [
538
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
539
- 'type' => Controls_Manager::COLOR,
540
- 'default' => '',
541
  'selectors' => [
542
  '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'background-color: {{VALUE}};',
543
  ],
@@ -547,10 +546,10 @@ class Info_Box extends Widget_Base
547
  $this->add_responsive_control(
548
  'eael_infobox_image_icon_padding',
549
  [
550
- 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
551
- 'type' => Controls_Manager::DIMENSIONS,
552
  'size_units' => ['px', 'em', '%'],
553
- 'selectors' => [
554
  '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
555
  ],
556
  ]
@@ -559,8 +558,8 @@ class Info_Box extends Widget_Base
559
  $this->add_group_control(
560
  Group_Control_Border::get_type(),
561
  [
562
- 'name' => 'eael_infobox_image_border',
563
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
564
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon img',
565
  ]
566
  );
@@ -568,17 +567,17 @@ class Info_Box extends Widget_Base
568
  $this->add_control(
569
  'eael_infobox_img_shape',
570
  [
571
- 'label' => esc_html__('Image Shape', 'essential-addons-for-elementor-lite'),
572
- 'type' => Controls_Manager::SELECT,
573
- 'default' => 'square',
574
- 'label_block' => false,
575
- 'options' => [
576
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
577
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
578
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
579
  ],
580
  'prefix_class' => 'eael-infobox-shape-',
581
- 'condition' => [
582
  'eael_infobox_img_or_icon' => 'img',
583
  ],
584
  ]
@@ -596,7 +595,7 @@ class Info_Box extends Widget_Base
596
  $this->add_group_control(
597
  Group_Control_Box_Shadow::get_type(),
598
  [
599
- 'name' => 'eael_infobox_image_icon_hover_shadow',
600
  'selectors' => [
601
  '{{WRAPPER}} .eael-infobox .infobox-icon:hover img' => 'background-color: {{VALUE}};',
602
  ],
@@ -607,15 +606,15 @@ class Info_Box extends Widget_Base
607
  'eael_infobox_image_icon_hover_animation',
608
  [
609
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
610
- 'type' => Controls_Manager::HOVER_ANIMATION,
611
  ]
612
  );
613
 
614
  $this->add_group_control(
615
  Group_Control_Border::get_type(),
616
  [
617
- 'name' => 'eael_infobox_hover_image_border',
618
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
619
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon img',
620
  ]
621
  );
@@ -623,17 +622,17 @@ class Info_Box extends Widget_Base
623
  $this->add_control(
624
  'eael_infobox_hover_img_shape',
625
  [
626
- 'label' => esc_html__('Image Shape', 'essential-addons-for-elementor-lite'),
627
- 'type' => Controls_Manager::SELECT,
628
- 'default' => 'square',
629
- 'label_block' => false,
630
- 'options' => [
631
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
632
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
633
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
634
  ],
635
  'prefix_class' => 'eael-infobox-hover-img-shape-',
636
- 'condition' => [
637
  'eael_infobox_img_or_icon' => 'img',
638
  ],
639
  ]
@@ -646,19 +645,19 @@ class Info_Box extends Widget_Base
646
  $this->add_control(
647
  'eael_infobox_image_resizer',
648
  [
649
- 'label' => esc_html__('Image Resizer', 'essential-addons-for-elementor-lite'),
650
- 'type' => Controls_Manager::SLIDER,
651
- 'default' => [
652
  'size' => 100,
653
  ],
654
- 'range' => [
655
  'px' => [
656
  'max' => 500,
657
  ],
658
  ],
659
  'selectors' => [
660
- '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'width: {{SIZE}}px;',
661
- '{{WRAPPER}} .eael-infobox.icon-on-left .infobox-icon' => 'width: {{SIZE}}px;',
662
  '{{WRAPPER}} .eael-infobox.icon-on-right .infobox-icon' => 'width: {{SIZE}}px;',
663
  ],
664
  ]
@@ -667,8 +666,8 @@ class Info_Box extends Widget_Base
667
  $this->add_group_control(
668
  Group_Control_Image_Size::get_type(),
669
  [
670
- 'name' => 'thumbnail',
671
- 'default' => 'full',
672
  'condition' => [
673
  'eael_infobox_image[url]!' => '',
674
  ],
@@ -681,10 +680,10 @@ class Info_Box extends Widget_Base
681
  $this->add_responsive_control(
682
  'eael_infobox_img_margin',
683
  [
684
- 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
685
- 'type' => Controls_Manager::DIMENSIONS,
686
  'size_units' => ['px', 'em', '%'],
687
- 'selectors' => [
688
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
689
  ],
690
  ]
@@ -700,8 +699,8 @@ class Info_Box extends Widget_Base
700
  $this->start_controls_section(
701
  'eael_section_infobox_number_icon_style_settings',
702
  [
703
- 'label' => esc_html__('Number Icon Style', 'essential-addons-for-elementor-lite'),
704
- 'tab' => Controls_Manager::TAB_STYLE,
705
  'condition' => [
706
  'eael_infobox_img_or_icon' => 'number',
707
  ],
@@ -711,7 +710,7 @@ class Info_Box extends Widget_Base
711
  $this->add_group_control(
712
  Group_Control_Typography::get_type(),
713
  [
714
- 'name' => 'eael_infobox_number_icon_typography',
715
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-number',
716
  ]
717
  );
@@ -719,15 +718,15 @@ class Info_Box extends Widget_Base
719
  $this->add_responsive_control(
720
  'eael_infobox_number_icon_bg_size',
721
  [
722
- 'label' => __('Icon Background Size', 'essential-addons-for-elementor-lite'),
723
- 'type' => Controls_Manager::SLIDER,
724
- 'default' => [
725
  'size' => 90,
726
  ],
727
- 'range' => [
728
  'px' => [
729
- 'min' => 0,
730
- 'max' => 300,
731
  'step' => 1,
732
  ],
733
  ],
@@ -743,10 +742,10 @@ class Info_Box extends Widget_Base
743
  $this->add_responsive_control(
744
  'eael_infobox_number_icon_margin',
745
  [
746
- 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
747
- 'type' => Controls_Manager::DIMENSIONS,
748
  'size_units' => ['px', 'em', '%'],
749
- 'selectors' => [
750
  '{{WRAPPER}} .eael-infobox .infobox-icon-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
751
  ],
752
  ]
@@ -764,11 +763,11 @@ class Info_Box extends Widget_Base
764
  $this->add_control(
765
  'eael_infobox_number_icon_color',
766
  [
767
- 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
768
- 'type' => Controls_Manager::COLOR,
769
- 'default' => '#4d4d4d',
770
  'selectors' => [
771
- '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-number' => 'color: {{VALUE}};',
772
  '{{WRAPPER}} .eael-infobox.icon-beside-title .infobox-content .title figure .infobox-icon-number' => 'color: {{VALUE}};',
773
  ],
774
  ]
@@ -777,9 +776,9 @@ class Info_Box extends Widget_Base
777
  $this->add_control(
778
  'eael_infobox_number_icon_bg_color',
779
  [
780
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
781
- 'type' => Controls_Manager::COLOR,
782
- 'default' => '',
783
  'selectors' => [
784
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
785
  ],
@@ -792,12 +791,12 @@ class Info_Box extends Widget_Base
792
  $this->add_control(
793
  'eael_infobox_number_icon_bg_shape',
794
  [
795
- 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
796
- 'type' => Controls_Manager::SELECT,
797
- 'default' => 'none',
798
- 'label_block' => false,
799
- 'options' => [
800
- 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
801
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
802
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
803
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
@@ -809,8 +808,8 @@ class Info_Box extends Widget_Base
809
  $this->add_group_control(
810
  Group_Control_Border::get_type(),
811
  [
812
- 'name' => 'eael_infobox_number_icon_border',
813
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
814
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
815
  ]
816
  );
@@ -818,7 +817,7 @@ class Info_Box extends Widget_Base
818
  $this->add_group_control(
819
  Group_Control_Box_Shadow::get_type(),
820
  [
821
- 'name' => 'eael_infobox_number_icon_shadow',
822
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
823
  ]
824
  );
@@ -836,18 +835,18 @@ class Info_Box extends Widget_Base
836
  'eael_infobox_number_icon_hover_animation',
837
  [
838
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
839
- 'type' => Controls_Manager::HOVER_ANIMATION,
840
  ]
841
  );
842
 
843
  $this->add_control(
844
  'eael_infobox_number_icon_hover_color',
845
  [
846
- 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
847
- 'type' => Controls_Manager::COLOR,
848
- 'default' => '#4d4d4d',
849
  'selectors' => [
850
- '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-number' => 'color: {{VALUE}};',
851
  '{{WRAPPER}} .eael-infobox.icon-beside-title:hover .infobox-content .title figure .infobox-icon-number' => 'color: {{VALUE}};',
852
  ],
853
  ]
@@ -856,14 +855,14 @@ class Info_Box extends Widget_Base
856
  $this->add_control(
857
  'eael_infobox_number_icon_hover_bg_color',
858
  [
859
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
860
- 'type' => Controls_Manager::COLOR,
861
- 'default' => '',
862
  'selectors' => [
863
  '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
864
  ],
865
  'condition' => [
866
- 'eael_infobox_img_type!' => ['img-on-left', 'img-on-right'],
867
  'eael_infobox_icon_bg_shape!' => 'none',
868
  ],
869
  ]
@@ -872,12 +871,12 @@ class Info_Box extends Widget_Base
872
  $this->add_control(
873
  'eael_infobox_number_icon_hover_bg_shape',
874
  [
875
- 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
876
- 'type' => Controls_Manager::SELECT,
877
- 'default' => 'none',
878
- 'label_block' => false,
879
- 'options' => [
880
- 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
881
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
882
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
883
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
@@ -889,8 +888,8 @@ class Info_Box extends Widget_Base
889
  $this->add_group_control(
890
  Group_Control_Border::get_type(),
891
  [
892
- 'name' => 'eael_infobox_hover_number_icon_border',
893
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
894
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
895
  ]
896
  );
@@ -898,7 +897,7 @@ class Info_Box extends Widget_Base
898
  $this->add_group_control(
899
  Group_Control_Box_Shadow::get_type(),
900
  [
901
- 'name' => 'eael_infobox_number_icon_hover_shadow',
902
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
903
  ]
904
  );
@@ -917,8 +916,8 @@ class Info_Box extends Widget_Base
917
  $this->start_controls_section(
918
  'eael_section_infobox_icon_style_settings',
919
  [
920
- 'label' => esc_html__('Icon Style', 'essential-addons-for-elementor-lite'),
921
- 'tab' => Controls_Manager::TAB_STYLE,
922
  'condition' => [
923
  'eael_infobox_img_or_icon' => 'icon',
924
  ],
@@ -928,20 +927,20 @@ class Info_Box extends Widget_Base
928
  $this->add_responsive_control(
929
  'eael_infobox_icon_size',
930
  [
931
- 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
932
- 'type' => Controls_Manager::SLIDER,
933
- 'default' => [
934
  'size' => 40,
935
  ],
936
- 'range' => [
937
  'px' => [
938
- 'min' => 20,
939
- 'max' => 100,
940
  'step' => 1,
941
  ],
942
  ],
943
  'selectors' => [
944
- '{{WRAPPER}} .eael-infobox .infobox-icon i' => 'font-size: {{SIZE}}px;',
945
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap img' => 'height: {{SIZE}}px; width: {{SIZE}}px;',
946
  ],
947
  ]
@@ -950,15 +949,15 @@ class Info_Box extends Widget_Base
950
  $this->add_responsive_control(
951
  'eael_infobox_icon_bg_size',
952
  [
953
- 'label' => __('Icon Background Size', 'essential-addons-for-elementor-lite'),
954
- 'type' => Controls_Manager::SLIDER,
955
- 'default' => [
956
  'size' => 90,
957
  ],
958
- 'range' => [
959
  'px' => [
960
- 'min' => 0,
961
- 'max' => 300,
962
  'step' => 1,
963
  ],
964
  ],
@@ -974,10 +973,10 @@ class Info_Box extends Widget_Base
974
  $this->add_responsive_control(
975
  'eael_infobox_icon_margin',
976
  [
977
- 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
978
- 'type' => Controls_Manager::DIMENSIONS,
979
  'size_units' => ['px', 'em', '%'],
980
- 'selectors' => [
981
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
982
  ],
983
  ]
@@ -995,11 +994,11 @@ class Info_Box extends Widget_Base
995
  $this->add_control(
996
  'eael_infobox_icon_color',
997
  [
998
- 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
999
- 'type' => Controls_Manager::COLOR,
1000
- 'default' => '#4d4d4d',
1001
  'selectors' => [
1002
- '{{WRAPPER}} .eael-infobox .infobox-icon i' => 'color: {{VALUE}};',
1003
  '{{WRAPPER}} .eael-infobox.icon-beside-title .infobox-content .title figure i' => 'color: {{VALUE}};',
1004
  ],
1005
  ]
@@ -1008,12 +1007,12 @@ class Info_Box extends Widget_Base
1008
  $this->add_control(
1009
  'eael_infobox_icon_bg_shape',
1010
  [
1011
- 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
1012
- 'type' => Controls_Manager::SELECT,
1013
- 'default' => 'none',
1014
- 'label_block' => false,
1015
- 'options' => [
1016
- 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
1017
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
1018
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
1019
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
@@ -1025,9 +1024,9 @@ class Info_Box extends Widget_Base
1025
  $this->add_control(
1026
  'eael_infobox_icon_bg_color',
1027
  [
1028
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1029
- 'type' => Controls_Manager::COLOR,
1030
- 'default' => '',
1031
  'selectors' => [
1032
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
1033
  ],
@@ -1040,8 +1039,8 @@ class Info_Box extends Widget_Base
1040
  $this->add_group_control(
1041
  Group_Control_Border::get_type(),
1042
  [
1043
- 'name' => 'eael_infobox_icon_border',
1044
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
1045
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
1046
  ]
1047
  );
@@ -1049,7 +1048,7 @@ class Info_Box extends Widget_Base
1049
  $this->add_group_control(
1050
  Group_Control_Box_Shadow::get_type(),
1051
  [
1052
- 'name' => 'eael_infobox_icon_shadow',
1053
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
1054
  ]
1055
  );
@@ -1067,18 +1066,18 @@ class Info_Box extends Widget_Base
1067
  'eael_infobox_icon_hover_animation',
1068
  [
1069
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
1070
- 'type' => Controls_Manager::HOVER_ANIMATION,
1071
  ]
1072
  );
1073
 
1074
  $this->add_control(
1075
  'eael_infobox_icon_hover_color',
1076
  [
1077
- 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
1078
- 'type' => Controls_Manager::COLOR,
1079
- 'default' => '#4d4d4d',
1080
  'selectors' => [
1081
- '{{WRAPPER}} .eael-infobox:hover .infobox-icon i' => 'color: {{VALUE}};',
1082
  '{{WRAPPER}} .eael-infobox.icon-beside-title:hover .infobox-content .title figure i' => 'color: {{VALUE}};',
1083
  ],
1084
  ]
@@ -1087,14 +1086,14 @@ class Info_Box extends Widget_Base
1087
  $this->add_control(
1088
  'eael_infobox_icon_hover_bg_color',
1089
  [
1090
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1091
- 'type' => Controls_Manager::COLOR,
1092
- 'default' => '',
1093
  'selectors' => [
1094
  '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
1095
  ],
1096
  'condition' => [
1097
- 'eael_infobox_img_type!' => ['img-on-left', 'img-on-right'],
1098
  'eael_infobox_icon_bg_shape!' => 'none',
1099
  ],
1100
  ]
@@ -1103,12 +1102,12 @@ class Info_Box extends Widget_Base
1103
  $this->add_control(
1104
  'eael_infobox_icon_hover_bg_shape',
1105
  [
1106
- 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
1107
- 'type' => Controls_Manager::SELECT,
1108
- 'default' => 'none',
1109
- 'label_block' => false,
1110
- 'options' => [
1111
- 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
1112
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
1113
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
1114
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
@@ -1120,8 +1119,8 @@ class Info_Box extends Widget_Base
1120
  $this->add_group_control(
1121
  Group_Control_Border::get_type(),
1122
  [
1123
- 'name' => 'eael_infobox_hover_icon_border',
1124
- 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
1125
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
1126
  ]
1127
  );
@@ -1129,7 +1128,7 @@ class Info_Box extends Widget_Base
1129
  $this->add_group_control(
1130
  Group_Control_Box_Shadow::get_type(),
1131
  [
1132
- 'name' => 'eael_infobox_icon_hover_shadow',
1133
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
1134
  ]
1135
  );
@@ -1148,8 +1147,8 @@ class Info_Box extends Widget_Base
1148
  $this->start_controls_section(
1149
  'eael_section_infobox_button_settings',
1150
  [
1151
- 'label' => esc_html__('Button Styles', 'essential-addons-for-elementor-lite'),
1152
- 'tab' => Controls_Manager::TAB_STYLE,
1153
  'condition' => [
1154
  'eael_show_infobox_button' => 'yes',
1155
  ],
@@ -1159,7 +1158,7 @@ class Info_Box extends Widget_Base
1159
  $this->add_group_control(
1160
  Group_Control_Typography::get_type(),
1161
  [
1162
- 'name' => 'eael_infobox_button_typography',
1163
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button .infobox-button-text',
1164
  ]
1165
  );
@@ -1167,58 +1166,34 @@ class Info_Box extends Widget_Base
1167
  $this->add_responsive_control(
1168
  'eael_infobox_button_icon_size',
1169
  [
1170
- 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1171
- 'type' => Controls_Manager::SLIDER,
1172
- 'default' => [
1173
  'size' => 16,
1174
  'unit' => 'px',
1175
  ],
1176
  'size_units' => ['px'],
1177
- 'range' => [
1178
  'px' => [
1179
- 'min' => 0,
1180
- 'max' => 100,
1181
  'step' => 1,
1182
  ],
1183
  ],
1184
- 'selectors' => [
1185
- '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button i' => 'font-size: {{SIZE}}{{UNIT}};',
1186
  '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button img' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};',
1187
  ],
1188
  ]
1189
  );
1190
 
1191
- // $this->add_responsive_control(
1192
- // 'eael_infobox_button_icon_gap',
1193
- // [
1194
- // 'label' => __('Icon Gap', 'essential-addons-for-elementor-lite'),
1195
- // 'type' => Controls_Manager::SLIDER,
1196
- // 'default' => [
1197
- // 'size' => 10,
1198
- // 'unit' => 'px',
1199
- // ],
1200
- // 'size_units' => ['px'],
1201
- // 'range' => [
1202
- // 'px' => [
1203
- // 'min' => 0,
1204
- // 'max' => 100,
1205
- // 'step' => 1,
1206
- // ],
1207
- // ],
1208
- // 'selectors' => [
1209
- // '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button i' => 'margin-right: {{SIZE}}{{UNIT}};',
1210
- // '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button img' => 'margin-right: {{SIZE}}{{UNIT}};',
1211
- // ],
1212
- // ]
1213
- // );
1214
-
1215
  $this->add_responsive_control(
1216
  'eael_creative_button_padding',
1217
  [
1218
- 'label' => esc_html__('Button Padding', 'essential-addons-for-elementor-lite'),
1219
- 'type' => Controls_Manager::DIMENSIONS,
1220
  'size_units' => ['px', 'em'],
1221
- 'selectors' => [
1222
  '{{WRAPPER}} .eael-infobox .infobox-button a.eael-infobox-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1223
  ],
1224
  ]
@@ -1227,9 +1202,9 @@ class Info_Box extends Widget_Base
1227
  $this->add_control(
1228
  'eael_infobox_button_border_radius',
1229
  [
1230
- 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1231
- 'type' => Controls_Manager::SLIDER,
1232
- 'range' => [
1233
  'px' => [
1234
  'max' => 100,
1235
  ],
@@ -1249,9 +1224,9 @@ class Info_Box extends Widget_Base
1249
  $this->add_control(
1250
  'eael_infobox_button_text_color',
1251
  [
1252
- 'label' => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
1253
- 'type' => Controls_Manager::COLOR,
1254
- 'default' => '#ffffff',
1255
  'selectors' => [
1256
  '{{WRAPPER}} .eael-infobox .eael-infobox-button' => 'color: {{VALUE}};',
1257
  ],
@@ -1261,9 +1236,9 @@ class Info_Box extends Widget_Base
1261
  $this->add_control(
1262
  'eael_infobox_button_background_color',
1263
  [
1264
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1265
- 'type' => Controls_Manager::COLOR,
1266
- 'default' => '#333333',
1267
  'selectors' => [
1268
  '{{WRAPPER}} .eael-infobox .eael-infobox-button' => 'background: {{VALUE}};',
1269
  ],
@@ -1273,7 +1248,7 @@ class Info_Box extends Widget_Base
1273
  $this->add_group_control(
1274
  Group_Control_Border::get_type(),
1275
  [
1276
- 'name' => 'eael_infobox_button_border',
1277
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button',
1278
  ]
1279
  );
@@ -1281,7 +1256,7 @@ class Info_Box extends Widget_Base
1281
  $this->add_group_control(
1282
  Group_Control_Box_Shadow::get_type(),
1283
  [
1284
- 'name' => 'button_box_shadow',
1285
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button',
1286
  ]
1287
  );
@@ -1295,9 +1270,9 @@ class Info_Box extends Widget_Base
1295
  $this->add_control(
1296
  'eael_infobox_button_hover_text_color',
1297
  [
1298
- 'label' => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
1299
- 'type' => Controls_Manager::COLOR,
1300
- 'default' => '#ffffff',
1301
  'selectors' => [
1302
  '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover' => 'color: {{VALUE}};',
1303
  ],
@@ -1307,9 +1282,9 @@ class Info_Box extends Widget_Base
1307
  $this->add_control(
1308
  'eael_infobox_button_hover_background_color',
1309
  [
1310
- 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1311
- 'type' => Controls_Manager::COLOR,
1312
- 'default' => '#333333',
1313
  'selectors' => [
1314
  '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover' => 'background: {{VALUE}};',
1315
  ],
@@ -1319,7 +1294,7 @@ class Info_Box extends Widget_Base
1319
  $this->add_group_control(
1320
  Group_Control_Border::get_type(),
1321
  [
1322
- 'name' => 'eael_infobox_button_hover_border',
1323
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover',
1324
  ]
1325
  );
@@ -1327,7 +1302,7 @@ class Info_Box extends Widget_Base
1327
  $this->add_group_control(
1328
  Group_Control_Box_Shadow::get_type(),
1329
  [
1330
- 'name' => 'button_hover_box_shadow',
1331
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover',
1332
  ]
1333
  );
@@ -1347,7 +1322,7 @@ class Info_Box extends Widget_Base
1347
  'eael_section_infobox_title_style_settings',
1348
  [
1349
  'label' => esc_html__('Color &amp; Typography', 'essential-addons-for-elementor-lite'),
1350
- 'tab' => Controls_Manager::TAB_STYLE,
1351
  ]
1352
  );
1353
 
@@ -1361,16 +1336,16 @@ class Info_Box extends Widget_Base
1361
  'eael_infobox_title_heading',
1362
  [
1363
  'label' => esc_html__('Title Style', 'essential-addons-for-elementor-lite'),
1364
- 'type' => Controls_Manager::HEADING,
1365
  ]
1366
  );
1367
 
1368
  $this->add_control(
1369
  'eael_infobox_title_color',
1370
  [
1371
- 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
1372
- 'type' => Controls_Manager::COLOR,
1373
- 'default' => '#4d4d4d',
1374
  'selectors' => [
1375
  '{{WRAPPER}} .eael-infobox .infobox-content .title' => 'color: {{VALUE}};',
1376
  ],
@@ -1380,7 +1355,7 @@ class Info_Box extends Widget_Base
1380
  $this->add_group_control(
1381
  Group_Control_Typography::get_type(),
1382
  [
1383
- 'name' => 'eael_infobox_title_typography',
1384
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-content .title',
1385
  ]
1386
  );
@@ -1388,10 +1363,10 @@ class Info_Box extends Widget_Base
1388
  $this->add_responsive_control(
1389
  'eael_infobox_title_margin',
1390
  [
1391
- 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
1392
- 'type' => Controls_Manager::DIMENSIONS,
1393
  'size_units' => ['px', 'em', '%'],
1394
- 'selectors' => [
1395
  '{{WRAPPER}} .eael-infobox .infobox-content .title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1396
  ],
1397
  ]
@@ -1399,8 +1374,8 @@ class Info_Box extends Widget_Base
1399
  $this->add_control(
1400
  'eael_infobox_content_heading',
1401
  [
1402
- 'label' => esc_html__('Content Style', 'essential-addons-for-elementor-lite'),
1403
- 'type' => Controls_Manager::HEADING,
1404
  'separator' => 'before',
1405
  ]
1406
  );
@@ -1408,10 +1383,10 @@ class Info_Box extends Widget_Base
1408
  $this->add_responsive_control(
1409
  'eael_infobox_content_margin',
1410
  [
1411
- 'label' => esc_html__('Content Only Margin', 'essential-addons-for-elementor-lite'),
1412
- 'type' => Controls_Manager::DIMENSIONS,
1413
  'size_units' => ['px', 'em', '%'],
1414
- 'selectors' => [
1415
  '{{WRAPPER}} .eael-infobox .infobox-content p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1416
  ],
1417
  ]
@@ -1420,9 +1395,9 @@ class Info_Box extends Widget_Base
1420
  $this->add_control(
1421
  'eael_infobox_content_background',
1422
  [
1423
- 'label' => esc_html__('Content Only Background', 'essential-addons-for-elementor-lite'),
1424
- 'type' => Controls_Manager::COLOR,
1425
- 'default' => '',
1426
  'selectors' => [
1427
  '{{WRAPPER}} .eael-infobox .infobox-content' => 'background: {{VALUE}};',
1428
  ],
@@ -1432,10 +1407,10 @@ class Info_Box extends Widget_Base
1432
  $this->add_responsive_control(
1433
  'eael_infobox_content_only_padding',
1434
  [
1435
- 'label' => esc_html__('Content Only Padding', 'essential-addons-for-elementor-lite'),
1436
- 'type' => Controls_Manager::DIMENSIONS,
1437
  'size_units' => ['px', 'em', '%'],
1438
- 'selectors' => [
1439
  '{{WRAPPER}} .eael-infobox .infobox-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1440
  ],
1441
  ]
@@ -1444,9 +1419,9 @@ class Info_Box extends Widget_Base
1444
  $this->add_control(
1445
  'eael_infobox_content_color',
1446
  [
1447
- 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
1448
- 'type' => Controls_Manager::COLOR,
1449
- 'default' => '#4d4d4d',
1450
  'selectors' => [
1451
  '{{WRAPPER}} .eael-infobox .infobox-content p' => 'color: {{VALUE}};',
1452
  ],
@@ -1456,7 +1431,7 @@ class Info_Box extends Widget_Base
1456
  $this->add_group_control(
1457
  Group_Control_Typography::get_type(),
1458
  [
1459
- 'name' => 'eael_infobox_content_typography_hover',
1460
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-content p',
1461
  ]
1462
  );
@@ -1470,9 +1445,9 @@ class Info_Box extends Widget_Base
1470
  $this->add_control(
1471
  'eael_infobox_title_hover_color',
1472
  [
1473
- 'label' => esc_html__('Title Color', 'essential-addons-for-elementor-lite'),
1474
- 'type' => Controls_Manager::COLOR,
1475
- 'default' => '',
1476
  'selectors' => [
1477
  '{{WRAPPER}} .eael-infobox:hover .infobox-content h4' => 'color: {{VALUE}};',
1478
  ],
@@ -1482,9 +1457,9 @@ class Info_Box extends Widget_Base
1482
  $this->add_control(
1483
  'eael_infobox_content_hover_color',
1484
  [
1485
- 'label' => esc_html__('Content Color', 'essential-addons-for-elementor-lite'),
1486
- 'type' => Controls_Manager::COLOR,
1487
- 'default' => '',
1488
  'selectors' => [
1489
  '{{WRAPPER}} .eael-infobox:hover .infobox-content p' => 'color: {{VALUE}};',
1490
  ],
@@ -1494,16 +1469,16 @@ class Info_Box extends Widget_Base
1494
  $this->add_control(
1495
  'eael_infobox_content_transition',
1496
  [
1497
- 'label' => esc_html__('Transition', 'essential-addons-for-elementor-lite'),
1498
  'description' => esc_html__('Transition will applied to ms (ex: 300ms).', 'essential-addons-for-elementor-lite'),
1499
- 'type' => Controls_Manager::NUMBER,
1500
- 'separator' => 'before',
1501
- 'min' => 100,
1502
- 'max' => 1000,
1503
- 'default' => 100,
1504
- 'selectors' => [
1505
  '{{WRAPPER}} .eael-infobox:hover .infobox-content h4' => 'transition: {{SIZE}}ms;',
1506
- '{{WRAPPER}} .eael-infobox:hover .infobox-content p' => 'transition: {{SIZE}}ms;',
1507
  ],
1508
  ]
1509
  );
@@ -1539,230 +1514,230 @@ class Info_Box extends Widget_Base
1539
  $nofollow = $settings['eael_show_infobox_clickable_link']['nofollow'] ? 'rel="nofollow"' : '';
1540
 
1541
  ob_start();
1542
- ?>
1543
- <?php if ('yes' == $settings['eael_show_infobox_clickable']) : ?><a href="<?php echo esc_url($settings['eael_show_infobox_clickable_link']['url']) ?>" <?php echo $target; ?> <?php echo $nofollow; ?>><?php endif; ?>
1544
  <div <?php echo $this->get_render_attribute_string('eael_infobox_inner'); ?>>
1545
  <?php
1546
- echo ob_get_clean();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1547
  }
1548
 
1549
- /**
1550
- * This function is rendering closing divs and tags
1551
- * of before partial for infobox.
1552
- *
1553
- * @param $settings
1554
- */
1555
- protected function eael_infobox_after()
1556
- {
1557
- $settings = $this->get_settings();
1558
- ob_start(); ?></div><?php
1559
- if ('yes' == $settings['eael_show_infobox_clickable']) : ?></a><?php endif;
1560
- echo ob_get_clean();
1561
- }
1562
-
1563
- /**
1564
- * This function is rendering appropriate icon for infobox.
1565
- *
1566
- * @param $settings
1567
- */
1568
- protected function render_infobox_icon()
1569
- {
1570
- $settings = $this->get_settings();
1571
-
1572
- if ('none' == $settings['eael_infobox_img_or_icon']) {
1573
- return;
1574
- }
1575
-
1576
- $infobox_image = $this->get_settings('eael_infobox_image');
1577
- $infobox_image_url = Group_Control_Image_Size::get_attachment_image_src($infobox_image['id'], 'thumbnail', $settings);
1578
- if (empty($infobox_image_url)) : $infobox_image_url = $infobox_image['url'];
1579
- else : $infobox_image_url = $infobox_image_url;
1580
- endif;
1581
- $infobox_icon_migrated = isset($settings['__fa4_migrated']['eael_infobox_icon_new']);
1582
- $infobox_icon_is_new = empty($settings['eael_infobox_icon']);
1583
-
1584
- $this->add_render_attribute(
1585
- 'infobox_icon',
1586
- [
1587
- 'class' => ['infobox-icon'],
1588
- ]
1589
- );
1590
-
1591
- if ($settings['eael_infobox_icon_hover_animation']) {
1592
- $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_icon_hover_animation']);
1593
- }
1594
-
1595
- if ($settings['eael_infobox_image_icon_hover_animation']) {
1596
- $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_image_icon_hover_animation']);
1597
- }
1598
-
1599
- if ($settings['eael_infobox_number_icon_hover_animation']) {
1600
- $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_number_icon_hover_animation']);
1601
- }
1602
-
1603
- if ('icon' == $settings['eael_infobox_img_or_icon']) {
1604
- $this->add_render_attribute('infobox_icon', 'class', 'eael-icon-only');
1605
- }
1606
-
1607
- if ($infobox_icon_is_new || $infobox_icon_migrated) {
1608
- $icon = $settings['eael_infobox_icon_new']['value'];
1609
-
1610
- if (isset($icon['url'])) {
1611
- $this->add_render_attribute('icon_or_image', [
1612
- 'src' => $icon['url'],
1613
- 'alt' => esc_attr(get_post_meta($icon['id'], '_wp_attachment_image_alt', true)),
1614
- ]);
1615
- $icon_tag = '<img ' . $this->get_render_attribute_string('icon_or_image') . '/>';
1616
- } else {
1617
- $this->add_render_attribute('icon_or_image', 'class', $icon);
1618
- $icon_tag = '<i ' . $this->get_render_attribute_string('icon_or_image') . '></i>';
1619
- }
1620
- } else {
1621
- $icon_tag = '<i class="' . esc_attr($settings['eael_infobox_icon']) . '"></i>';
1622
- }
1623
-
1624
- ob_start();
1625
- ?>
1626
  <div <?php echo $this->get_render_attribute_string('infobox_icon'); ?>>
1627
 
1628
- <?php if ('img' == $settings['eael_infobox_img_or_icon']) : ?>
1629
  <img src="<?php echo esc_url($infobox_image_url); ?>" alt="<?php echo esc_attr(get_post_meta($infobox_image['id'], '_wp_attachment_image_alt', true)); ?>">
1630
- <?php endif; ?>
1631
 
1632
- <?php if ('icon' == $settings['eael_infobox_img_or_icon']) : ?>
1633
  <div class="infobox-icon-wrap">
1634
  <?php echo $icon_tag; ?>
1635
  </div>
1636
- <?php endif; ?>
1637
 
1638
- <?php if ('number' == $settings['eael_infobox_img_or_icon']) : ?>
1639
  <div class="infobox-icon-wrap">
1640
  <span class="infobox-icon-number"><?php echo esc_attr($settings['eael_infobox_number']); ?></span>
1641
  </div>
1642
- <?php endif; ?>
1643
 
1644
  </div>
1645
  <?php
1646
- echo ob_get_clean();
1647
- }
1648
 
1649
- protected function render_infobox_content()
1650
- {
1651
- $settings = $this->get_settings();
1652
 
1653
- $this->add_render_attribute('infobox_content', 'class', 'infobox-content');
1654
- if ('icon' == $settings['eael_infobox_img_or_icon']) {
1655
- $this->add_render_attribute('infobox_content', 'class', 'eael-icon-only');
1656
- }
1657
 
1658
- ob_start();
1659
- ?>
1660
  <div <?php echo $this->get_render_attribute_string('infobox_content'); ?>>
1661
  <<?php echo $settings['eael_infobox_title_tag']; ?> class="title"><?php echo $settings['eael_infobox_title']; ?></<?php echo $settings['eael_infobox_title_tag']; ?>>
1662
- <?php if ('yes' == $settings['eael_show_infobox_content']) : ?>
1663
- <?php if ('content' === $settings['eael_infobox_text_type']) : ?>
1664
- <?php if (!empty($settings['eael_infobox_text'])) : ?>
1665
  <p><?php echo $settings['eael_infobox_text']; ?></p>
1666
- <?php endif; ?>
1667
- <?php $this->render_infobox_button($this->get_settings_for_display()); ?>
1668
- <?php elseif ('template' === $settings['eael_infobox_text_type']) :
1669
- if (!empty($settings['eael_primary_templates'])) {
1670
- echo Plugin::$instance->frontend->get_builder_content($settings['eael_primary_templates'], true);
1671
- }
1672
- endif; ?>
1673
- <?php endif; ?>
1674
  </div>
1675
  <?php
1676
 
1677
- echo ob_get_clean();
1678
- }
1679
 
1680
- /**
1681
- * This function rendering infobox button
1682
- *
1683
- * @param $settings
1684
- */
1685
- protected function render_infobox_button()
1686
- {
1687
- $settings = $this->get_settings();
1688
- if ('yes' == $settings['eael_show_infobox_clickable'] || 'yes' != $settings['eael_show_infobox_button']) {
1689
- return;
1690
- }
1691
 
1692
- $button_icon_migrated = isset($settings['__fa4_migrated']['eael_infobox_button_icon_new']);
1693
- $button_icon_is_new = empty($settings['eael_infobox_button_icon']);
1694
 
1695
- $this->add_render_attribute('infobox_button', 'class', 'eael-infobox-button');
1696
 
1697
- if ($settings['infobox_button_link_url']['url']) {
1698
- $this->add_render_attribute('infobox_button', 'href', esc_url($settings['infobox_button_link_url']['url']));
1699
- }
1700
 
1701
- if ('on' == $settings['infobox_button_link_url']['is_external']) {
1702
- $this->add_render_attribute('infobox_button', 'target', '_blank');
1703
- }
1704
 
1705
- if ('on' == $settings['infobox_button_link_url']['nofollow']) {
1706
- $this->add_render_attribute('infobox_button', 'rel', 'nofollow');
1707
- }
1708
 
1709
- ob_start();
1710
- ?>
1711
  <div class="infobox-button">
1712
  <a <?php echo $this->get_render_attribute_string('infobox_button'); ?>>
1713
- <?php if ('left' == $settings['eael_infobox_button_icon_alignment']) : ?>
1714
- <?php if ($button_icon_is_new || $button_icon_migrated) { ?>
1715
- <?php if (isset($settings['eael_infobox_button_icon_new']['value']['url'])) { ?>
1716
  <img class="eael_infobox_button_icon_left" src="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_infobox_button_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
1717
- <?php } else { ?>
1718
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']); ?> eael_infobox_button_icon_left"></i>
1719
- <?php } ?>
1720
- <?php } else { ?>
1721
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon']); ?>"></i>
1722
- <?php } ?>
1723
- <?php endif; ?>
1724
  <span class="infobox-button-text"><?php echo esc_attr($settings['infobox_button_text']); ?></span>
1725
- <?php if ('right' == $settings['eael_infobox_button_icon_alignment']) : ?>
1726
- <?php if ($button_icon_is_new || $button_icon_migrated) { ?>
1727
- <?php if (isset($settings['eael_infobox_button_icon_new']['value']['url'])) { ?>
1728
  <img class="eael_infobox_button_icon_right" src="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_infobox_button_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
1729
- <?php } else { ?>
1730
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']); ?> eael_infobox_button_icon_right"></i>
1731
- <?php } ?>
1732
  <?php } else {
1733
 
1734
- if ('left' == $settings['eael_infobox_button_icon_alignment']) {
1735
- $this->add_render_attribute('button_icon', 'class', 'eael_infobox_button_icon_left');
1736
- }
1737
-
1738
- if ('right' == $settings['eael_infobox_button_icon_alignment']) {
1739
- $this->add_render_attribute('button_icon', 'class', 'eael_infobox_button_icon_right');
1740
- }
1741
-
1742
- $this->add_render_attribute(
1743
- 'button_icon',
1744
- [
1745
- 'class' => [
1746
- 'eael_infobox_button_icon_right',
1747
- $settings['eael_infobox_button_icon'],
1748
- ],
1749
- ]
1750
- );
1751
- ?>
1752
  <i <?php echo $this->get_render_attribute_string('button_icon'); ?>></i>
1753
- <?php } ?>
1754
- <?php endif; ?>
1755
  </a>
1756
  </div>
1757
  <?php
1758
- echo ob_get_clean();
1759
- }
1760
-
1761
- protected function render()
1762
- {
1763
- $this->eael_infobox_before();
1764
- $this->render_infobox_icon();
1765
- $this->render_infobox_content();
1766
- $this->eael_infobox_after();
1767
- }
1768
- }
15
  use \Elementor\Plugin;
16
  use \Elementor\Utils;
17
  use \Elementor\Widget_Base;
18
+ use \Essential_Addons_Elementor\Classes\Helper;
19
 
20
  class Info_Box extends Widget_Base
21
  {
 
 
22
  public function get_name()
23
  {
24
  return 'eael-info-box';
75
  $this->add_control(
76
  'eael_infobox_img_type',
77
  [
78
+ 'label' => esc_html__('Infobox Type', 'essential-addons-for-elementor-lite'),
79
+ 'type' => Controls_Manager::SELECT,
80
+ 'default' => 'img-on-top',
81
  'label_block' => false,
82
+ 'options' => [
83
+ 'img-on-top' => esc_html__('Image/Icon On Top', 'essential-addons-for-elementor-lite'),
84
+ 'img-on-left' => esc_html__('Image/Icon On Left', 'essential-addons-for-elementor-lite'),
85
  'img-on-right' => esc_html__('Image/Icon On Right', 'essential-addons-for-elementor-lite'),
86
  ],
87
  ]
90
  $this->add_responsive_control(
91
  'eael_infobox_img_or_icon',
92
  [
93
+ 'label' => esc_html__('Image or Icon', 'essential-addons-for-elementor-lite'),
94
+ 'type' => Controls_Manager::CHOOSE,
95
  'label_block' => true,
96
+ 'options' => [
97
+ 'none' => [
98
  'title' => esc_html__('None', 'essential-addons-for-elementor-lite'),
99
+ 'icon' => 'fa fa-ban',
100
  ],
101
  'number' => [
102
  'title' => esc_html__('Number', 'essential-addons-for-elementor-lite'),
103
+ 'icon' => 'fa fa-sort-numeric-desc',
104
  ],
105
+ 'icon' => [
106
  'title' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
107
+ 'icon' => 'fa fa-info-circle',
108
  ],
109
+ 'img' => [
110
  'title' => esc_html__('Image', 'essential-addons-for-elementor-lite'),
111
+ 'icon' => 'fa fa-picture-o',
112
  ],
113
  ],
114
+ 'default' => 'icon',
115
  ]
116
  );
117
 
118
  $this->add_responsive_control(
119
  'icon_vertical_position',
120
  [
121
+ 'label' => __('Icon Position', 'essential-addons-for-elementor-lite'),
122
+ 'type' => Controls_Manager::CHOOSE,
123
+ 'default' => 'top',
124
+ 'condition' => [
125
  'eael_infobox_img_type!' => 'img-on-top',
126
  ],
127
+ 'options' => [
128
+ 'top' => [
129
  'title' => __('Top', 'essential-addons-for-elementor-lite'),
130
+ 'icon' => 'eicon-v-align-top',
131
  ],
132
  'middle' => [
133
  'title' => __('Middle', 'essential-addons-for-elementor-lite'),
134
+ 'icon' => 'eicon-v-align-middle',
135
  ],
136
  'bottom' => [
137
  'title' => __('Bottom', 'essential-addons-for-elementor-lite'),
138
+ 'icon' => 'eicon-v-align-bottom',
139
  ],
140
  ],
141
+ 'selectors' => [
142
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'align-self: {{VALUE}};',
143
  ],
144
  'selectors_dictionary' => [
145
+ 'top' => 'baseline',
146
  'middle' => 'center',
147
  'bottom' => 'flex-end',
148
  ],
155
  $this->add_control(
156
  'eael_infobox_image',
157
  [
158
+ 'label' => esc_html__('Infobox Image', 'essential-addons-for-elementor-lite'),
159
+ 'type' => Controls_Manager::MEDIA,
160
+ 'default' => [
161
  'url' => Utils::get_placeholder_image_src(),
162
  ],
163
  'condition' => [
172
  $this->add_control(
173
  'eael_infobox_icon_new',
174
  [
175
+ 'label' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
176
+ 'type' => Controls_Manager::ICONS,
177
  'fa4compatibility' => 'eael_infobox_icon',
178
+ 'default' => [
179
+ 'value' => 'fas fa-building',
180
  'library' => 'fa-solid',
181
  ],
182
+ 'condition' => [
183
  'eael_infobox_img_or_icon' => 'icon',
184
  ],
185
  ]
191
  $this->add_control(
192
  'eael_infobox_number',
193
  [
194
+ 'label' => esc_html__('Number', 'essential-addons-for-elementor-lite'),
195
+ 'type' => Controls_Manager::TEXT,
196
  'condition' => [
197
  'eael_infobox_img_or_icon' => 'number',
198
  ],
213
  $this->add_control(
214
  'eael_infobox_title',
215
  [
216
+ 'label' => esc_html__('Infobox Title', 'essential-addons-for-elementor-lite'),
217
+ 'type' => Controls_Manager::TEXT,
218
  'label_block' => true,
219
+ 'dynamic' => [
220
  'active' => true,
221
  ],
222
+ 'default' => esc_html__('This is an icon box', 'essential-addons-for-elementor-lite'),
223
  ]
224
  );
225
  $this->add_control(
226
  'eael_infobox_title_tag',
227
  [
228
+ 'label' => __('Select Title Tag', 'essential-addons-for-elementor-lite'),
229
+ 'type' => Controls_Manager::SELECT,
230
  'default' => 'h4',
231
  'options' => [
232
+ 'h1' => __('H1', 'essential-addons-for-elementor-lite'),
233
+ 'h2' => __('H2', 'essential-addons-for-elementor-lite'),
234
+ 'h3' => __('H3', 'essential-addons-for-elementor-lite'),
235
+ 'h4' => __('H4', 'essential-addons-for-elementor-lite'),
236
+ 'h5' => __('H5', 'essential-addons-for-elementor-lite'),
237
+ 'h6' => __('H6', 'essential-addons-for-elementor-lite'),
238
  'span' => __('Span', 'essential-addons-for-elementor-lite'),
239
+ 'p' => __('P', 'essential-addons-for-elementor-lite'),
240
+ 'div' => __('Div', 'essential-addons-for-elementor-lite'),
241
  ],
242
  ]
243
  );
244
  $this->add_control(
245
  'eael_infobox_text_type',
246
  [
247
+ 'label' => __('Content Type', 'essential-addons-for-elementor-lite'),
248
+ 'type' => Controls_Manager::SELECT,
249
  'options' => [
250
+ 'content' => __('Content', 'essential-addons-for-elementor-lite'),
251
  'template' => __('Saved Templates', 'essential-addons-for-elementor-lite'),
252
  ],
253
  'default' => 'content',
257
  $this->add_control(
258
  'eael_primary_templates',
259
  [
260
+ 'label' => __('Choose Template', 'essential-addons-for-elementor-lite'),
261
+ 'type' => Controls_Manager::SELECT,
262
+ 'options' => Helper::get_elementor_templates(),
263
  'condition' => [
264
  'eael_infobox_text_type' => 'template',
265
  ],
268
  $this->add_control(
269
  'eael_infobox_text',
270
  [
271
+ 'label' => esc_html__('Infobox Content', 'essential-addons-for-elementor-lite'),
272
+ 'type' => Controls_Manager::WYSIWYG,
273
  'label_block' => true,
274
+ 'dynamic' => [
275
  'active' => true,
276
  ],
277
+ 'default' => esc_html__('Write a short description, that will describe the title or something informational and useful.', 'essential-addons-for-elementor-lite'),
278
+ 'condition' => [
279
  'eael_infobox_text_type' => 'content',
280
  ],
281
  ]
283
  $this->add_control(
284
  'eael_show_infobox_content',
285
  [
286
+ 'label' => __('Show Content', 'essential-addons-for-elementor-lite'),
287
+ 'type' => Controls_Manager::SWITCHER,
288
+ 'default' => 'yes',
289
+ 'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
290
+ 'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
291
  'return_value' => 'yes',
292
  ]
293
  );
294
  $this->add_responsive_control(
295
  'eael_infobox_content_alignment',
296
  [
297
+ 'label' => esc_html__('Content Alignment', 'essential-addons-for-elementor-lite'),
298
+ 'type' => Controls_Manager::CHOOSE,
299
+ 'label_block' => true,
300
+ 'options' => [
301
+ 'left' => [
302
  'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
303
+ 'icon' => 'fa fa-align-left',
304
  ],
305
  'center' => [
306
  'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
307
+ 'icon' => 'fa fa-align-center',
308
  ],
309
+ 'right' => [
310
  'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
311
+ 'icon' => 'fa fa-align-right',
312
  ],
313
  ],
314
+ 'default' => 'center',
315
  'prefix_class' => 'eael-infobox-content-align-',
316
+ 'condition' => [
317
  'eael_infobox_img_type' => 'img-on-top',
318
  ],
319
  ]
322
  $this->add_control(
323
  'content_height',
324
  [
325
+ 'label' => esc_html__('Content Height', 'essential-addons-for-elementor-lite'),
326
+ 'type' => Controls_Manager::SLIDER,
327
  'size_units' => ['px', '%', 'em'],
328
+ 'range' => [
329
  'px' => ['max' => 300],
330
+ '%' => ['max' => 100],
331
  ],
332
+ 'selectors' => [
333
  '{{WRAPPER}} .infobox-content' => 'height: {{SIZE}}{{UNIT}};',
334
  ],
335
  ]
352
  $this->add_control(
353
  'eael_show_infobox_button',
354
  [
355
+ 'label' => __('Show Infobox Button', 'essential-addons-for-elementor-lite'),
356
+ 'type' => Controls_Manager::SWITCHER,
357
+ 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
358
  'label_off' => __('No', 'essential-addons-for-elementor-lite'),
359
  'condition' => [
360
  'eael_show_infobox_clickable!' => 'yes',
365
  $this->add_control(
366
  'eael_show_infobox_clickable',
367
  [
368
+ 'label' => __('Infobox Clickable', 'essential-addons-for-elementor-lite'),
369
+ 'type' => Controls_Manager::SWITCHER,
370
+ 'default' => 'no',
371
+ 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
372
+ 'label_off' => __('No', 'essential-addons-for-elementor-lite'),
373
  'return_value' => 'yes',
374
+ 'condition' => [
375
  'eael_show_infobox_button!' => 'yes',
376
  ],
377
  ]
380
  $this->add_control(
381
  'eael_show_infobox_clickable_link',
382
  [
383
+ 'label' => esc_html__('Infobox Link', 'essential-addons-for-elementor-lite'),
384
+ 'type' => Controls_Manager::URL,
385
+ 'label_block' => true,
386
+ 'default' => [
387
+ 'url' => 'http://',
388
  'is_external' => '',
389
  ],
390
  'show_external' => true,
391
+ 'condition' => [
392
  'eael_show_infobox_clickable' => 'yes',
393
  ],
394
  ]
397
  $this->add_control(
398
  'infobox_button_text',
399
  [
400
+ 'label' => __('Button Text', 'essential-addons-for-elementor-lite'),
401
+ 'type' => Controls_Manager::TEXT,
402
  'label_block' => true,
403
+ 'default' => 'Click Me!',
404
+ 'separator' => 'before',
405
  'placeholder' => __('Enter button text', 'essential-addons-for-elementor-lite'),
406
+ 'title' => __('Enter button text here', 'essential-addons-for-elementor-lite'),
407
+ 'condition' => [
408
  'eael_show_infobox_button' => 'yes',
409
  ],
410
  ]
413
  $this->add_control(
414
  'infobox_button_link_url',
415
  [
416
+ 'label' => __('Link URL', 'essential-addons-for-elementor-lite'),
417
+ 'type' => Controls_Manager::URL,
418
+ 'label_block' => true,
419
+ 'placeholder' => __('Enter link URL for the button', 'essential-addons-for-elementor-lite'),
420
  'show_external' => true,
421
+ 'default' => [
422
  'url' => '#',
423
  ],
424
+ 'title' => __('Enter heading for the button', 'essential-addons-for-elementor-lite'),
425
+ 'condition' => [
426
  'eael_show_infobox_button' => 'yes',
427
  ],
428
  ]
431
  $this->add_control(
432
  'eael_infobox_button_icon_new',
433
  [
434
+ 'label' => esc_html__('Icon', 'essential-addons-for-elementor-lite'),
435
+ 'type' => Controls_Manager::ICONS,
436
  'fa4compatibility' => 'eael_infobox_button_icon',
437
+ 'condition' => [
438
  'eael_show_infobox_button' => 'yes',
439
  ],
440
  ]
443
  $this->add_control(
444
  'eael_infobox_button_icon_alignment',
445
  [
446
+ 'label' => esc_html__('Icon Position', 'essential-addons-for-elementor-lite'),
447
+ 'type' => Controls_Manager::SELECT,
448
+ 'default' => 'left',
449
+ 'options' => [
450
+ 'left' => esc_html__('Before', 'essential-addons-for-elementor-lite'),
451
  'right' => esc_html__('After', 'essential-addons-for-elementor-lite'),
452
  ],
453
  'condition' => [
454
  'eael_infobox_button_icon_new!' => '',
455
+ 'eael_show_infobox_button' => 'yes',
456
  ],
457
  ]
458
  );
460
  $this->add_control(
461
  'eael_infobox_button_icon_indent',
462
  [
463
+ 'label' => esc_html__('Icon Spacing', 'essential-addons-for-elementor-lite'),
464
+ 'type' => Controls_Manager::SLIDER,
465
+ 'range' => [
466
  'px' => [
467
  'max' => 60,
468
  ],
469
  ],
470
  'condition' => [
471
  'eael_infobox_button_icon_new!' => '',
472
+ 'eael_show_infobox_button' => 'yes',
473
  ],
474
  'selectors' => [
475
  '{{WRAPPER}} .eael_infobox_button_icon_right' => 'margin-left: {{SIZE}}px;',
476
+ '{{WRAPPER}} .eael_infobox_button_icon_left' => 'margin-right: {{SIZE}}px;',
477
  ],
478
  ]
479
  );
490
  $this->add_control(
491
  'eael_control_get_pro',
492
  [
493
+ 'label' => __('Unlock more possibilities', 'essential-addons-for-elementor-lite'),
494
+ 'type' => Controls_Manager::CHOOSE,
495
+ 'options' => [
496
  '1' => [
497
  'title' => __('', 'essential-addons-for-elementor-lite'),
498
+ 'icon' => 'fa fa-unlock-alt',
499
  ],
500
  ],
501
+ 'default' => '1',
502
  'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank">Pro version</a> for more stunning elements and customization options.</span>',
503
  ]
504
  );
514
  $this->start_controls_section(
515
  'eael_section_infobox_imgae_style_settings',
516
  [
517
+ 'label' => esc_html__('Image Style', 'essential-addons-for-elementor-lite'),
518
+ 'tab' => Controls_Manager::TAB_STYLE,
519
  'condition' => [
520
  'eael_infobox_img_or_icon' => 'img',
521
  ],
534
  $this->add_control(
535
  'eael_infobox_image_icon_bg_color',
536
  [
537
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
538
+ 'type' => Controls_Manager::COLOR,
539
+ 'default' => '',
540
  'selectors' => [
541
  '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'background-color: {{VALUE}};',
542
  ],
546
  $this->add_responsive_control(
547
  'eael_infobox_image_icon_padding',
548
  [
549
+ 'label' => esc_html__('Padding', 'essential-addons-for-elementor-lite'),
550
+ 'type' => Controls_Manager::DIMENSIONS,
551
  'size_units' => ['px', 'em', '%'],
552
+ 'selectors' => [
553
  '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
554
  ],
555
  ]
558
  $this->add_group_control(
559
  Group_Control_Border::get_type(),
560
  [
561
+ 'name' => 'eael_infobox_image_border',
562
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
563
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon img',
564
  ]
565
  );
567
  $this->add_control(
568
  'eael_infobox_img_shape',
569
  [
570
+ 'label' => esc_html__('Image Shape', 'essential-addons-for-elementor-lite'),
571
+ 'type' => Controls_Manager::SELECT,
572
+ 'default' => 'square',
573
+ 'label_block' => false,
574
+ 'options' => [
575
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
576
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
577
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
578
  ],
579
  'prefix_class' => 'eael-infobox-shape-',
580
+ 'condition' => [
581
  'eael_infobox_img_or_icon' => 'img',
582
  ],
583
  ]
595
  $this->add_group_control(
596
  Group_Control_Box_Shadow::get_type(),
597
  [
598
+ 'name' => 'eael_infobox_image_icon_hover_shadow',
599
  'selectors' => [
600
  '{{WRAPPER}} .eael-infobox .infobox-icon:hover img' => 'background-color: {{VALUE}};',
601
  ],
606
  'eael_infobox_image_icon_hover_animation',
607
  [
608
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
609
+ 'type' => Controls_Manager::HOVER_ANIMATION,
610
  ]
611
  );
612
 
613
  $this->add_group_control(
614
  Group_Control_Border::get_type(),
615
  [
616
+ 'name' => 'eael_infobox_hover_image_border',
617
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
618
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon img',
619
  ]
620
  );
622
  $this->add_control(
623
  'eael_infobox_hover_img_shape',
624
  [
625
+ 'label' => esc_html__('Image Shape', 'essential-addons-for-elementor-lite'),
626
+ 'type' => Controls_Manager::SELECT,
627
+ 'default' => 'square',
628
+ 'label_block' => false,
629
+ 'options' => [
630
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
631
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
632
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
633
  ],
634
  'prefix_class' => 'eael-infobox-hover-img-shape-',
635
+ 'condition' => [
636
  'eael_infobox_img_or_icon' => 'img',
637
  ],
638
  ]
645
  $this->add_control(
646
  'eael_infobox_image_resizer',
647
  [
648
+ 'label' => esc_html__('Image Resizer', 'essential-addons-for-elementor-lite'),
649
+ 'type' => Controls_Manager::SLIDER,
650
+ 'default' => [
651
  'size' => 100,
652
  ],
653
+ 'range' => [
654
  'px' => [
655
  'max' => 500,
656
  ],
657
  ],
658
  'selectors' => [
659
+ '{{WRAPPER}} .eael-infobox .infobox-icon img' => 'width: {{SIZE}}px;',
660
+ '{{WRAPPER}} .eael-infobox.icon-on-left .infobox-icon' => 'width: {{SIZE}}px;',
661
  '{{WRAPPER}} .eael-infobox.icon-on-right .infobox-icon' => 'width: {{SIZE}}px;',
662
  ],
663
  ]
666
  $this->add_group_control(
667
  Group_Control_Image_Size::get_type(),
668
  [
669
+ 'name' => 'thumbnail',
670
+ 'default' => 'full',
671
  'condition' => [
672
  'eael_infobox_image[url]!' => '',
673
  ],
680
  $this->add_responsive_control(
681
  'eael_infobox_img_margin',
682
  [
683
+ 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
684
+ 'type' => Controls_Manager::DIMENSIONS,
685
  'size_units' => ['px', 'em', '%'],
686
+ 'selectors' => [
687
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
688
  ],
689
  ]
699
  $this->start_controls_section(
700
  'eael_section_infobox_number_icon_style_settings',
701
  [
702
+ 'label' => esc_html__('Number Icon Style', 'essential-addons-for-elementor-lite'),
703
+ 'tab' => Controls_Manager::TAB_STYLE,
704
  'condition' => [
705
  'eael_infobox_img_or_icon' => 'number',
706
  ],
710
  $this->add_group_control(
711
  Group_Control_Typography::get_type(),
712
  [
713
+ 'name' => 'eael_infobox_number_icon_typography',
714
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-number',
715
  ]
716
  );
718
  $this->add_responsive_control(
719
  'eael_infobox_number_icon_bg_size',
720
  [
721
+ 'label' => __('Icon Background Size', 'essential-addons-for-elementor-lite'),
722
+ 'type' => Controls_Manager::SLIDER,
723
+ 'default' => [
724
  'size' => 90,
725
  ],
726
+ 'range' => [
727
  'px' => [
728
+ 'min' => 0,
729
+ 'max' => 300,
730
  'step' => 1,
731
  ],
732
  ],
742
  $this->add_responsive_control(
743
  'eael_infobox_number_icon_margin',
744
  [
745
+ 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
746
+ 'type' => Controls_Manager::DIMENSIONS,
747
  'size_units' => ['px', 'em', '%'],
748
+ 'selectors' => [
749
  '{{WRAPPER}} .eael-infobox .infobox-icon-wrap' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
750
  ],
751
  ]
763
  $this->add_control(
764
  'eael_infobox_number_icon_color',
765
  [
766
+ 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
767
+ 'type' => Controls_Manager::COLOR,
768
+ 'default' => '#4d4d4d',
769
  'selectors' => [
770
+ '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-number' => 'color: {{VALUE}};',
771
  '{{WRAPPER}} .eael-infobox.icon-beside-title .infobox-content .title figure .infobox-icon-number' => 'color: {{VALUE}};',
772
  ],
773
  ]
776
  $this->add_control(
777
  'eael_infobox_number_icon_bg_color',
778
  [
779
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
780
+ 'type' => Controls_Manager::COLOR,
781
+ 'default' => '',
782
  'selectors' => [
783
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
784
  ],
791
  $this->add_control(
792
  'eael_infobox_number_icon_bg_shape',
793
  [
794
+ 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
795
+ 'type' => Controls_Manager::SELECT,
796
+ 'default' => 'none',
797
+ 'label_block' => false,
798
+ 'options' => [
799
+ 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
800
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
801
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
802
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
808
  $this->add_group_control(
809
  Group_Control_Border::get_type(),
810
  [
811
+ 'name' => 'eael_infobox_number_icon_border',
812
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
813
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
814
  ]
815
  );
817
  $this->add_group_control(
818
  Group_Control_Box_Shadow::get_type(),
819
  [
820
+ 'name' => 'eael_infobox_number_icon_shadow',
821
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
822
  ]
823
  );
835
  'eael_infobox_number_icon_hover_animation',
836
  [
837
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
838
+ 'type' => Controls_Manager::HOVER_ANIMATION,
839
  ]
840
  );
841
 
842
  $this->add_control(
843
  'eael_infobox_number_icon_hover_color',
844
  [
845
+ 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
846
+ 'type' => Controls_Manager::COLOR,
847
+ 'default' => '#4d4d4d',
848
  'selectors' => [
849
+ '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-number' => 'color: {{VALUE}};',
850
  '{{WRAPPER}} .eael-infobox.icon-beside-title:hover .infobox-content .title figure .infobox-icon-number' => 'color: {{VALUE}};',
851
  ],
852
  ]
855
  $this->add_control(
856
  'eael_infobox_number_icon_hover_bg_color',
857
  [
858
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
859
+ 'type' => Controls_Manager::COLOR,
860
+ 'default' => '',
861
  'selectors' => [
862
  '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
863
  ],
864
  'condition' => [
865
+ 'eael_infobox_img_type!' => ['img-on-left', 'img-on-right'],
866
  'eael_infobox_icon_bg_shape!' => 'none',
867
  ],
868
  ]
871
  $this->add_control(
872
  'eael_infobox_number_icon_hover_bg_shape',
873
  [
874
+ 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
875
+ 'type' => Controls_Manager::SELECT,
876
+ 'default' => 'none',
877
+ 'label_block' => false,
878
+ 'options' => [
879
+ 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
880
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
881
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
882
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
888
  $this->add_group_control(
889
  Group_Control_Border::get_type(),
890
  [
891
+ 'name' => 'eael_infobox_hover_number_icon_border',
892
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
893
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
894
  ]
895
  );
897
  $this->add_group_control(
898
  Group_Control_Box_Shadow::get_type(),
899
  [
900
+ 'name' => 'eael_infobox_number_icon_hover_shadow',
901
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
902
  ]
903
  );
916
  $this->start_controls_section(
917
  'eael_section_infobox_icon_style_settings',
918
  [
919
+ 'label' => esc_html__('Icon Style', 'essential-addons-for-elementor-lite'),
920
+ 'tab' => Controls_Manager::TAB_STYLE,
921
  'condition' => [
922
  'eael_infobox_img_or_icon' => 'icon',
923
  ],
927
  $this->add_responsive_control(
928
  'eael_infobox_icon_size',
929
  [
930
+ 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
931
+ 'type' => Controls_Manager::SLIDER,
932
+ 'default' => [
933
  'size' => 40,
934
  ],
935
+ 'range' => [
936
  'px' => [
937
+ 'min' => 20,
938
+ 'max' => 100,
939
  'step' => 1,
940
  ],
941
  ],
942
  'selectors' => [
943
+ '{{WRAPPER}} .eael-infobox .infobox-icon i' => 'font-size: {{SIZE}}px;',
944
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap img' => 'height: {{SIZE}}px; width: {{SIZE}}px;',
945
  ],
946
  ]
949
  $this->add_responsive_control(
950
  'eael_infobox_icon_bg_size',
951
  [
952
+ 'label' => __('Icon Background Size', 'essential-addons-for-elementor-lite'),
953
+ 'type' => Controls_Manager::SLIDER,
954
+ 'default' => [
955
  'size' => 90,
956
  ],
957
+ 'range' => [
958
  'px' => [
959
+ 'min' => 0,
960
+ 'max' => 300,
961
  'step' => 1,
962
  ],
963
  ],
973
  $this->add_responsive_control(
974
  'eael_infobox_icon_margin',
975
  [
976
+ 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
977
+ 'type' => Controls_Manager::DIMENSIONS,
978
  'size_units' => ['px', 'em', '%'],
979
+ 'selectors' => [
980
  '{{WRAPPER}} .eael-infobox .infobox-icon' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
981
  ],
982
  ]
994
  $this->add_control(
995
  'eael_infobox_icon_color',
996
  [
997
+ 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
998
+ 'type' => Controls_Manager::COLOR,
999
+ 'default' => '#4d4d4d',
1000
  'selectors' => [
1001
+ '{{WRAPPER}} .eael-infobox .infobox-icon i' => 'color: {{VALUE}};',
1002
  '{{WRAPPER}} .eael-infobox.icon-beside-title .infobox-content .title figure i' => 'color: {{VALUE}};',
1003
  ],
1004
  ]
1007
  $this->add_control(
1008
  'eael_infobox_icon_bg_shape',
1009
  [
1010
+ 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
1011
+ 'type' => Controls_Manager::SELECT,
1012
+ 'default' => 'none',
1013
+ 'label_block' => false,
1014
+ 'options' => [
1015
+ 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
1016
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
1017
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
1018
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
1024
  $this->add_control(
1025
  'eael_infobox_icon_bg_color',
1026
  [
1027
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1028
+ 'type' => Controls_Manager::COLOR,
1029
+ 'default' => '',
1030
  'selectors' => [
1031
  '{{WRAPPER}} .eael-infobox .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
1032
  ],
1039
  $this->add_group_control(
1040
  Group_Control_Border::get_type(),
1041
  [
1042
+ 'name' => 'eael_infobox_icon_border',
1043
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
1044
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
1045
  ]
1046
  );
1048
  $this->add_group_control(
1049
  Group_Control_Box_Shadow::get_type(),
1050
  [
1051
+ 'name' => 'eael_infobox_icon_shadow',
1052
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-icon-wrap',
1053
  ]
1054
  );
1066
  'eael_infobox_icon_hover_animation',
1067
  [
1068
  'label' => esc_html__('Animation', 'essential-addons-for-elementor-lite'),
1069
+ 'type' => Controls_Manager::HOVER_ANIMATION,
1070
  ]
1071
  );
1072
 
1073
  $this->add_control(
1074
  'eael_infobox_icon_hover_color',
1075
  [
1076
+ 'label' => esc_html__('Icon Color', 'essential-addons-for-elementor-lite'),
1077
+ 'type' => Controls_Manager::COLOR,
1078
+ 'default' => '#4d4d4d',
1079
  'selectors' => [
1080
+ '{{WRAPPER}} .eael-infobox:hover .infobox-icon i' => 'color: {{VALUE}};',
1081
  '{{WRAPPER}} .eael-infobox.icon-beside-title:hover .infobox-content .title figure i' => 'color: {{VALUE}};',
1082
  ],
1083
  ]
1086
  $this->add_control(
1087
  'eael_infobox_icon_hover_bg_color',
1088
  [
1089
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1090
+ 'type' => Controls_Manager::COLOR,
1091
+ 'default' => '',
1092
  'selectors' => [
1093
  '{{WRAPPER}} .eael-infobox:hover .infobox-icon .infobox-icon-wrap' => 'background: {{VALUE}};',
1094
  ],
1095
  'condition' => [
1096
+ 'eael_infobox_img_type!' => ['img-on-left', 'img-on-right'],
1097
  'eael_infobox_icon_bg_shape!' => 'none',
1098
  ],
1099
  ]
1102
  $this->add_control(
1103
  'eael_infobox_icon_hover_bg_shape',
1104
  [
1105
+ 'label' => esc_html__('Background Shape', 'essential-addons-for-elementor-lite'),
1106
+ 'type' => Controls_Manager::SELECT,
1107
+ 'default' => 'none',
1108
+ 'label_block' => false,
1109
+ 'options' => [
1110
+ 'none' => esc_html__('None', 'essential-addons-for-elementor-lite'),
1111
  'circle' => esc_html__('Circle', 'essential-addons-for-elementor-lite'),
1112
  'radius' => esc_html__('Radius', 'essential-addons-for-elementor-lite'),
1113
  'square' => esc_html__('Square', 'essential-addons-for-elementor-lite'),
1119
  $this->add_group_control(
1120
  Group_Control_Border::get_type(),
1121
  [
1122
+ 'name' => 'eael_infobox_hover_icon_border',
1123
+ 'label' => esc_html__('Border', 'essential-addons-for-elementor-lite'),
1124
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
1125
  ]
1126
  );
1128
  $this->add_group_control(
1129
  Group_Control_Box_Shadow::get_type(),
1130
  [
1131
+ 'name' => 'eael_infobox_icon_hover_shadow',
1132
  'selector' => '{{WRAPPER}} .eael-infobox:hover .infobox-icon-wrap',
1133
  ]
1134
  );
1147
  $this->start_controls_section(
1148
  'eael_section_infobox_button_settings',
1149
  [
1150
+ 'label' => esc_html__('Button Styles', 'essential-addons-for-elementor-lite'),
1151
+ 'tab' => Controls_Manager::TAB_STYLE,
1152
  'condition' => [
1153
  'eael_show_infobox_button' => 'yes',
1154
  ],
1158
  $this->add_group_control(
1159
  Group_Control_Typography::get_type(),
1160
  [
1161
+ 'name' => 'eael_infobox_button_typography',
1162
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button .infobox-button-text',
1163
  ]
1164
  );
1166
  $this->add_responsive_control(
1167
  'eael_infobox_button_icon_size',
1168
  [
1169
+ 'label' => __('Icon Size', 'essential-addons-for-elementor-lite'),
1170
+ 'type' => Controls_Manager::SLIDER,
1171
+ 'default' => [
1172
  'size' => 16,
1173
  'unit' => 'px',
1174
  ],
1175
  'size_units' => ['px'],
1176
+ 'range' => [
1177
  'px' => [
1178
+ 'min' => 0,
1179
+ 'max' => 100,
1180
  'step' => 1,
1181
  ],
1182
  ],
1183
+ 'selectors' => [
1184
+ '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button i' => 'font-size: {{SIZE}}{{UNIT}};',
1185
  '{{WRAPPER}} .eael-infobox .infobox-button .eael-infobox-button img' => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}};',
1186
  ],
1187
  ]
1188
  );
1189
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1190
  $this->add_responsive_control(
1191
  'eael_creative_button_padding',
1192
  [
1193
+ 'label' => esc_html__('Button Padding', 'essential-addons-for-elementor-lite'),
1194
+ 'type' => Controls_Manager::DIMENSIONS,
1195
  'size_units' => ['px', 'em'],
1196
+ 'selectors' => [
1197
  '{{WRAPPER}} .eael-infobox .infobox-button a.eael-infobox-button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1198
  ],
1199
  ]
1202
  $this->add_control(
1203
  'eael_infobox_button_border_radius',
1204
  [
1205
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
1206
+ 'type' => Controls_Manager::SLIDER,
1207
+ 'range' => [
1208
  'px' => [
1209
  'max' => 100,
1210
  ],
1224
  $this->add_control(
1225
  'eael_infobox_button_text_color',
1226
  [
1227
+ 'label' => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
1228
+ 'type' => Controls_Manager::COLOR,
1229
+ 'default' => '#ffffff',
1230
  'selectors' => [
1231
  '{{WRAPPER}} .eael-infobox .eael-infobox-button' => 'color: {{VALUE}};',
1232
  ],
1236
  $this->add_control(
1237
  'eael_infobox_button_background_color',
1238
  [
1239
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1240
+ 'type' => Controls_Manager::COLOR,
1241
+ 'default' => '#333333',
1242
  'selectors' => [
1243
  '{{WRAPPER}} .eael-infobox .eael-infobox-button' => 'background: {{VALUE}};',
1244
  ],
1248
  $this->add_group_control(
1249
  Group_Control_Border::get_type(),
1250
  [
1251
+ 'name' => 'eael_infobox_button_border',
1252
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button',
1253
  ]
1254
  );
1256
  $this->add_group_control(
1257
  Group_Control_Box_Shadow::get_type(),
1258
  [
1259
+ 'name' => 'button_box_shadow',
1260
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button',
1261
  ]
1262
  );
1270
  $this->add_control(
1271
  'eael_infobox_button_hover_text_color',
1272
  [
1273
+ 'label' => esc_html__('Text Color', 'essential-addons-for-elementor-lite'),
1274
+ 'type' => Controls_Manager::COLOR,
1275
+ 'default' => '#ffffff',
1276
  'selectors' => [
1277
  '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover' => 'color: {{VALUE}};',
1278
  ],
1282
  $this->add_control(
1283
  'eael_infobox_button_hover_background_color',
1284
  [
1285
+ 'label' => esc_html__('Background Color', 'essential-addons-for-elementor-lite'),
1286
+ 'type' => Controls_Manager::COLOR,
1287
+ 'default' => '#333333',
1288
  'selectors' => [
1289
  '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover' => 'background: {{VALUE}};',
1290
  ],
1294
  $this->add_group_control(
1295
  Group_Control_Border::get_type(),
1296
  [
1297
+ 'name' => 'eael_infobox_button_hover_border',
1298
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover',
1299
  ]
1300
  );
1302
  $this->add_group_control(
1303
  Group_Control_Box_Shadow::get_type(),
1304
  [
1305
+ 'name' => 'button_hover_box_shadow',
1306
  'selector' => '{{WRAPPER}} .eael-infobox .eael-infobox-button:hover',
1307
  ]
1308
  );
1322
  'eael_section_infobox_title_style_settings',
1323
  [
1324
  'label' => esc_html__('Color &amp; Typography', 'essential-addons-for-elementor-lite'),
1325
+ 'tab' => Controls_Manager::TAB_STYLE,
1326
  ]
1327
  );
1328
 
1336
  'eael_infobox_title_heading',
1337
  [
1338
  'label' => esc_html__('Title Style', 'essential-addons-for-elementor-lite'),
1339
+ 'type' => Controls_Manager::HEADING,
1340
  ]
1341
  );
1342
 
1343
  $this->add_control(
1344
  'eael_infobox_title_color',
1345
  [
1346
+ 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
1347
+ 'type' => Controls_Manager::COLOR,
1348
+ 'default' => '#4d4d4d',
1349
  'selectors' => [
1350
  '{{WRAPPER}} .eael-infobox .infobox-content .title' => 'color: {{VALUE}};',
1351
  ],
1355
  $this->add_group_control(
1356
  Group_Control_Typography::get_type(),
1357
  [
1358
+ 'name' => 'eael_infobox_title_typography',
1359
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-content .title',
1360
  ]
1361
  );
1363
  $this->add_responsive_control(
1364
  'eael_infobox_title_margin',
1365
  [
1366
+ 'label' => esc_html__('Margin', 'essential-addons-for-elementor-lite'),
1367
+ 'type' => Controls_Manager::DIMENSIONS,
1368
  'size_units' => ['px', 'em', '%'],
1369
+ 'selectors' => [
1370
  '{{WRAPPER}} .eael-infobox .infobox-content .title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1371
  ],
1372
  ]
1374
  $this->add_control(
1375
  'eael_infobox_content_heading',
1376
  [
1377
+ 'label' => esc_html__('Content Style', 'essential-addons-for-elementor-lite'),
1378
+ 'type' => Controls_Manager::HEADING,
1379
  'separator' => 'before',
1380
  ]
1381
  );
1383
  $this->add_responsive_control(
1384
  'eael_infobox_content_margin',
1385
  [
1386
+ 'label' => esc_html__('Content Only Margin', 'essential-addons-for-elementor-lite'),
1387
+ 'type' => Controls_Manager::DIMENSIONS,
1388
  'size_units' => ['px', 'em', '%'],
1389
+ 'selectors' => [
1390
  '{{WRAPPER}} .eael-infobox .infobox-content p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1391
  ],
1392
  ]
1395
  $this->add_control(
1396
  'eael_infobox_content_background',
1397
  [
1398
+ 'label' => esc_html__('Content Only Background', 'essential-addons-for-elementor-lite'),
1399
+ 'type' => Controls_Manager::COLOR,
1400
+ 'default' => '',
1401
  'selectors' => [
1402
  '{{WRAPPER}} .eael-infobox .infobox-content' => 'background: {{VALUE}};',
1403
  ],
1407
  $this->add_responsive_control(
1408
  'eael_infobox_content_only_padding',
1409
  [
1410
+ 'label' => esc_html__('Content Only Padding', 'essential-addons-for-elementor-lite'),
1411
+ 'type' => Controls_Manager::DIMENSIONS,
1412
  'size_units' => ['px', 'em', '%'],
1413
+ 'selectors' => [
1414
  '{{WRAPPER}} .eael-infobox .infobox-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1415
  ],
1416
  ]
1419
  $this->add_control(
1420
  'eael_infobox_content_color',
1421
  [
1422
+ 'label' => esc_html__('Color', 'essential-addons-for-elementor-lite'),
1423
+ 'type' => Controls_Manager::COLOR,
1424
+ 'default' => '#4d4d4d',
1425
  'selectors' => [
1426
  '{{WRAPPER}} .eael-infobox .infobox-content p' => 'color: {{VALUE}};',
1427
  ],
1431
  $this->add_group_control(
1432
  Group_Control_Typography::get_type(),
1433
  [
1434
+ 'name' => 'eael_infobox_content_typography_hover',
1435
  'selector' => '{{WRAPPER}} .eael-infobox .infobox-content p',
1436
  ]
1437
  );
1445
  $this->add_control(
1446
  'eael_infobox_title_hover_color',
1447
  [
1448
+ 'label' => esc_html__('Title Color', 'essential-addons-for-elementor-lite'),
1449
+ 'type' => Controls_Manager::COLOR,
1450
+ 'default' => '',
1451
  'selectors' => [
1452
  '{{WRAPPER}} .eael-infobox:hover .infobox-content h4' => 'color: {{VALUE}};',
1453
  ],
1457
  $this->add_control(
1458
  'eael_infobox_content_hover_color',
1459
  [
1460
+ 'label' => esc_html__('Content Color', 'essential-addons-for-elementor-lite'),
1461
+ 'type' => Controls_Manager::COLOR,
1462
+ 'default' => '',
1463
  'selectors' => [
1464
  '{{WRAPPER}} .eael-infobox:hover .infobox-content p' => 'color: {{VALUE}};',
1465
  ],
1469
  $this->add_control(
1470
  'eael_infobox_content_transition',
1471
  [
1472
+ 'label' => esc_html__('Transition', 'essential-addons-for-elementor-lite'),
1473
  'description' => esc_html__('Transition will applied to ms (ex: 300ms).', 'essential-addons-for-elementor-lite'),
1474
+ 'type' => Controls_Manager::NUMBER,
1475
+ 'separator' => 'before',
1476
+ 'min' => 100,
1477
+ 'max' => 1000,
1478
+ 'default' => 100,
1479
+ 'selectors' => [
1480
  '{{WRAPPER}} .eael-infobox:hover .infobox-content h4' => 'transition: {{SIZE}}ms;',
1481
+ '{{WRAPPER}} .eael-infobox:hover .infobox-content p' => 'transition: {{SIZE}}ms;',
1482
  ],
1483
  ]
1484
  );
1514
  $nofollow = $settings['eael_show_infobox_clickable_link']['nofollow'] ? 'rel="nofollow"' : '';
1515
 
1516
  ob_start();
1517
+ ?>
1518
+ <?php if ('yes' == $settings['eael_show_infobox_clickable']): ?><a href="<?php echo esc_url($settings['eael_show_infobox_clickable_link']['url']) ?>" <?php echo $target; ?> <?php echo $nofollow; ?>><?php endif;?>
1519
  <div <?php echo $this->get_render_attribute_string('eael_infobox_inner'); ?>>
1520
  <?php
1521
+ echo ob_get_clean();
1522
+ }
1523
+
1524
+ /**
1525
+ * This function is rendering closing divs and tags
1526
+ * of before partial for infobox.
1527
+ *
1528
+ * @param $settings
1529
+ */
1530
+ protected function eael_infobox_after()
1531
+ {
1532
+ $settings = $this->get_settings();
1533
+ ob_start(); ?></div><?php
1534
+ if ('yes' == $settings['eael_show_infobox_clickable']): ?></a><?php endif;
1535
+ echo ob_get_clean();
1536
+ }
1537
+
1538
+ /**
1539
+ * This function is rendering appropriate icon for infobox.
1540
+ *
1541
+ * @param $settings
1542
+ */
1543
+ protected function render_infobox_icon()
1544
+ {
1545
+ $settings = $this->get_settings();
1546
+
1547
+ if ('none' == $settings['eael_infobox_img_or_icon']) {
1548
+ return;
1549
  }
1550
 
1551
+ $infobox_image = $this->get_settings('eael_infobox_image');
1552
+ $infobox_image_url = Group_Control_Image_Size::get_attachment_image_src($infobox_image['id'], 'thumbnail', $settings);
1553
+ if (empty($infobox_image_url)): $infobox_image_url = $infobox_image['url'];
1554
+ else:$infobox_image_url = $infobox_image_url;
1555
+ endif;
1556
+ $infobox_icon_migrated = isset($settings['__fa4_migrated']['eael_infobox_icon_new']);
1557
+ $infobox_icon_is_new = empty($settings['eael_infobox_icon']);
1558
+
1559
+ $this->add_render_attribute(
1560
+ 'infobox_icon',
1561
+ [
1562
+ 'class' => ['infobox-icon'],
1563
+ ]
1564
+ );
1565
+
1566
+ if ($settings['eael_infobox_icon_hover_animation']) {
1567
+ $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_icon_hover_animation']);
1568
+ }
1569
+
1570
+ if ($settings['eael_infobox_image_icon_hover_animation']) {
1571
+ $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_image_icon_hover_animation']);
1572
+ }
1573
+
1574
+ if ($settings['eael_infobox_number_icon_hover_animation']) {
1575
+ $this->add_render_attribute('infobox_icon', 'class', 'elementor-animation-' . $settings['eael_infobox_number_icon_hover_animation']);
1576
+ }
1577
+
1578
+ if ('icon' == $settings['eael_infobox_img_or_icon']) {
1579
+ $this->add_render_attribute('infobox_icon', 'class', 'eael-icon-only');
1580
+ }
1581
+
1582
+ if ($infobox_icon_is_new || $infobox_icon_migrated) {
1583
+ $icon = $settings['eael_infobox_icon_new']['value'];
1584
+
1585
+ if (isset($icon['url'])) {
1586
+ $this->add_render_attribute('icon_or_image', [
1587
+ 'src' => $icon['url'],
1588
+ 'alt' => esc_attr(get_post_meta($icon['id'], '_wp_attachment_image_alt', true)),
1589
+ ]);
1590
+ $icon_tag = '<img ' . $this->get_render_attribute_string('icon_or_image') . '/>';
1591
+ } else {
1592
+ $this->add_render_attribute('icon_or_image', 'class', $icon);
1593
+ $icon_tag = '<i ' . $this->get_render_attribute_string('icon_or_image') . '></i>';
1594
+ }
1595
+ } else {
1596
+ $icon_tag = '<i class="' . esc_attr($settings['eael_infobox_icon']) . '"></i>';
1597
+ }
1598
+
1599
+ ob_start();
1600
+ ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1601
  <div <?php echo $this->get_render_attribute_string('infobox_icon'); ?>>
1602
 
1603
+ <?php if ('img' == $settings['eael_infobox_img_or_icon']): ?>
1604
  <img src="<?php echo esc_url($infobox_image_url); ?>" alt="<?php echo esc_attr(get_post_meta($infobox_image['id'], '_wp_attachment_image_alt', true)); ?>">
1605
+ <?php endif;?>
1606
 
1607
+ <?php if ('icon' == $settings['eael_infobox_img_or_icon']): ?>
1608
  <div class="infobox-icon-wrap">
1609
  <?php echo $icon_tag; ?>
1610
  </div>
1611
+ <?php endif;?>
1612
 
1613
+ <?php if ('number' == $settings['eael_infobox_img_or_icon']): ?>
1614
  <div class="infobox-icon-wrap">
1615
  <span class="infobox-icon-number"><?php echo esc_attr($settings['eael_infobox_number']); ?></span>
1616
  </div>
1617
+ <?php endif;?>
1618
 
1619
  </div>
1620
  <?php
1621
+ echo ob_get_clean();
1622
+ }
1623
 
1624
+ protected function render_infobox_content()
1625
+ {
1626
+ $settings = $this->get_settings();
1627
 
1628
+ $this->add_render_attribute('infobox_content', 'class', 'infobox-content');
1629
+ if ('icon' == $settings['eael_infobox_img_or_icon']) {
1630
+ $this->add_render_attribute('infobox_content', 'class', 'eael-icon-only');
1631
+ }
1632
 
1633
+ ob_start();
1634
+ ?>
1635
  <div <?php echo $this->get_render_attribute_string('infobox_content'); ?>>
1636
  <<?php echo $settings['eael_infobox_title_tag']; ?> class="title"><?php echo $settings['eael_infobox_title']; ?></<?php echo $settings['eael_infobox_title_tag']; ?>>
1637
+ <?php if ('yes' == $settings['eael_show_infobox_content']): ?>
1638
+ <?php if ('content' === $settings['eael_infobox_text_type']): ?>
1639
+ <?php if (!empty($settings['eael_infobox_text'])): ?>
1640
  <p><?php echo $settings['eael_infobox_text']; ?></p>
1641
+ <?php endif;?>
1642
+ <?php $this->render_infobox_button($this->get_settings_for_display());?>
1643
+ <?php elseif ('template' === $settings['eael_infobox_text_type']):
1644
+ if (!empty($settings['eael_primary_templates'])) {
1645
+ echo Plugin::$instance->frontend->get_builder_content($settings['eael_primary_templates'], true);
1646
+ }
1647
+ endif;?>
1648
+ <?php endif;?>
1649
  </div>
1650
  <?php
1651
 
1652
+ echo ob_get_clean();
1653
+ }
1654
 
1655
+ /**
1656
+ * This function rendering infobox button
1657
+ *
1658
+ * @param $settings
1659
+ */
1660
+ protected function render_infobox_button()
1661
+ {
1662
+ $settings = $this->get_settings();
1663
+ if ('yes' == $settings['eael_show_infobox_clickable'] || 'yes' != $settings['eael_show_infobox_button']) {
1664
+ return;
1665
+ }
1666
 
1667
+ $button_icon_migrated = isset($settings['__fa4_migrated']['eael_infobox_button_icon_new']);
1668
+ $button_icon_is_new = empty($settings['eael_infobox_button_icon']);
1669
 
1670
+ $this->add_render_attribute('infobox_button', 'class', 'eael-infobox-button');
1671
 
1672
+ if ($settings['infobox_button_link_url']['url']) {
1673
+ $this->add_render_attribute('infobox_button', 'href', esc_url($settings['infobox_button_link_url']['url']));
1674
+ }
1675
 
1676
+ if ('on' == $settings['infobox_button_link_url']['is_external']) {
1677
+ $this->add_render_attribute('infobox_button', 'target', '_blank');
1678
+ }
1679
 
1680
+ if ('on' == $settings['infobox_button_link_url']['nofollow']) {
1681
+ $this->add_render_attribute('infobox_button', 'rel', 'nofollow');
1682
+ }
1683
 
1684
+ ob_start();
1685
+ ?>
1686
  <div class="infobox-button">
1687
  <a <?php echo $this->get_render_attribute_string('infobox_button'); ?>>
1688
+ <?php if ('left' == $settings['eael_infobox_button_icon_alignment']): ?>
1689
+ <?php if ($button_icon_is_new || $button_icon_migrated) {?>
1690
+ <?php if (isset($settings['eael_infobox_button_icon_new']['value']['url'])) {?>
1691
  <img class="eael_infobox_button_icon_left" src="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_infobox_button_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
1692
+ <?php } else {?>
1693
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']); ?> eael_infobox_button_icon_left"></i>
1694
+ <?php }?>
1695
+ <?php } else {?>
1696
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon']); ?>"></i>
1697
+ <?php }?>
1698
+ <?php endif;?>
1699
  <span class="infobox-button-text"><?php echo esc_attr($settings['infobox_button_text']); ?></span>
1700
+ <?php if ('right' == $settings['eael_infobox_button_icon_alignment']): ?>
1701
+ <?php if ($button_icon_is_new || $button_icon_migrated) {?>
1702
+ <?php if (isset($settings['eael_infobox_button_icon_new']['value']['url'])) {?>
1703
  <img class="eael_infobox_button_icon_right" src="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']['url']); ?>" alt="<?php echo esc_attr(get_post_meta($settings['eael_infobox_button_icon_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
1704
+ <?php } else {?>
1705
  <i class="<?php echo esc_attr($settings['eael_infobox_button_icon_new']['value']); ?> eael_infobox_button_icon_right"></i>
1706
+ <?php }?>
1707
  <?php } else {
1708
 
1709
+ if ('left' == $settings['eael_infobox_button_icon_alignment']) {
1710
+ $this->add_render_attribute('button_icon', 'class', 'eael_infobox_button_icon_left');
1711
+ }
1712
+
1713
+ if ('right' == $settings['eael_infobox_button_icon_alignment']) {
1714
+ $this->add_render_attribute('button_icon', 'class', 'eael_infobox_button_icon_right');
1715
+ }
1716
+
1717
+ $this->add_render_attribute(
1718
+ 'button_icon',
1719
+ [
1720
+ 'class' => [
1721
+ 'eael_infobox_button_icon_right',
1722
+ $settings['eael_infobox_button_icon'],
1723
+ ],
1724
+ ]
1725
+ );
1726
+ ?>
1727
  <i <?php echo $this->get_render_attribute_string('button_icon'); ?>></i>
1728
+ <?php }?>
1729
+ <?php endif;?>
1730
  </a>
1731
  </div>
1732
  <?php
1733
+ echo ob_get_clean();
1734
+ }
1735
+
1736
+ protected function render()
1737
+ {
1738
+ $this->eael_infobox_before();
1739
+ $this->render_infobox_icon();
1740
+ $this->render_infobox_content();
1741
+ $this->eael_infobox_after();
1742
+ }
1743
+ }
includes/Elements/NinjaForms.php CHANGED
@@ -6,32 +6,37 @@ if (!defined('ABSPATH')) {
6
  exit;
7
  }
8
 
9
- use \Elementor\Controls_Manager as Controls_Manager;
10
- use \Elementor\Group_Control_Border as Group_Control_Border;
11
- use \Elementor\Group_Control_Box_Shadow as Group_Control_Box_Shadow;
12
- use \Elementor\Group_Control_Typography as Group_Control_Typography;
13
- use \Elementor\Scheme_Typography as Scheme_Typography;
14
- use \Elementor\Widget_Base as Widget_Base;
15
-
16
- class NinjaForms extends Widget_Base {
17
- use \Essential_Addons_Elementor\Traits\Helper;
18
-
19
- public function get_name() {
 
 
20
  return 'eael-ninja';
21
  }
22
 
23
- public function get_title() {
24
- return __( 'Ninja Forms', 'essential-addons-for-elementor-lite');
 
25
  }
26
 
27
- public function get_categories() {
28
- return [ 'essential-addons-elementor' ];
 
29
  }
30
 
31
- public function get_icon() {
 
32
  return 'eaicon-ninja-forms';
33
  }
34
-
35
  public function get_keywords()
36
  {
37
  return [
@@ -45,7 +50,7 @@ class NinjaForms extends Widget_Base {
45
  'feedback',
46
  'ninjaforms',
47
  'ea',
48
- 'essential addons'
49
  ];
50
  }
51
 
@@ -54,16 +59,17 @@ class NinjaForms extends Widget_Base {
54
  return 'https://essential-addons.com/elementor/docs/ninja-forms/';
55
  }
56
 
57
- protected function _register_controls() {
 
58
 
59
  /*-----------------------------------------------------------------------------------*/
60
- /* CONTENT TAB
61
  /*-----------------------------------------------------------------------------------*/
62
- if(!function_exists('Ninja_Forms')) {
63
  $this->start_controls_section(
64
  'eael_global_warning',
65
  [
66
- 'label' => __( 'Warning!', 'essential-addons-for-elementor-lite'),
67
  ]
68
  );
69
 
@@ -71,7 +77,7 @@ class NinjaForms extends Widget_Base {
71
  'eael_global_warning_text',
72
  [
73
  'type' => Controls_Manager::RAW_HTML,
74
- 'raw' => __( '<strong>Ninja Forms</strong> is not installed/activated on your site. Please install and activate <strong>Ninja Forms</strong> first.', 'essential-addons-for-elementor-lite'),
75
  'content_classes' => 'eael-warning',
76
  ]
77
  );
@@ -85,98 +91,98 @@ class NinjaForms extends Widget_Base {
85
  $this->start_controls_section(
86
  'section_info_box',
87
  [
88
- 'label' => __( 'Ninja Forms', 'essential-addons-for-elementor-lite'),
89
  ]
90
  );
91
-
92
  $this->add_control(
93
  'contact_form_list',
94
  [
95
- 'label' => esc_html__( 'Select Form', 'essential-addons-for-elementor-lite'),
96
- 'type' => Controls_Manager::SELECT,
97
  'label_block' => true,
98
- 'options' => $this->eael_select_ninja_form(),
99
- 'default' => '0',
100
  ]
101
  );
102
-
103
  $this->add_control(
104
  'custom_title_description',
105
  [
106
- 'label' => __( 'Custom Title & Description', 'essential-addons-for-elementor-lite'),
107
- 'type' => Controls_Manager::SWITCHER,
108
- 'label_on' => __( 'Yes', 'essential-addons-for-elementor-lite'),
109
- 'label_off' => __( 'No', 'essential-addons-for-elementor-lite'),
110
- 'return_value' => 'yes',
111
  ]
112
  );
113
-
114
  $this->add_control(
115
  'form_title',
116
  [
117
- 'label' => __( 'Title', 'essential-addons-for-elementor-lite'),
118
- 'type' => Controls_Manager::SWITCHER,
119
- 'default' => 'yes',
120
- 'label_on' => __( 'Show', 'essential-addons-for-elementor-lite'),
121
- 'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite'),
122
- 'return_value' => 'yes',
123
- 'prefix_class' => 'eael-ninja-form-title-',
124
- 'condition' => [
125
- 'custom_title_description!' => 'yes',
126
  ],
127
  ]
128
  );
129
-
130
  $this->add_control(
131
  'form_title_custom',
132
  [
133
- 'label' => esc_html__( 'Title', 'essential-addons-for-elementor-lite'),
134
- 'type' => Controls_Manager::TEXT,
135
- 'label_block' => true,
136
- 'default' => '',
137
- 'condition' => [
138
- 'custom_title_description' => 'yes',
139
  ],
140
  ]
141
  );
142
-
143
  $this->add_control(
144
  'form_description_custom',
145
  [
146
- 'label' => esc_html__( 'Description', 'essential-addons-for-elementor-lite'),
147
- 'type' => Controls_Manager::TEXTAREA,
148
- 'default' => '',
149
- 'condition' => [
150
- 'custom_title_description' => 'yes',
151
  ],
152
  ]
153
  );
154
-
155
  $this->add_control(
156
  'labels_switch',
157
  [
158
- 'label' => __( 'Labels', 'essential-addons-for-elementor-lite'),
159
- 'type' => Controls_Manager::SWITCHER,
160
- 'default' => 'yes',
161
- 'label_on' => __( 'Show', 'essential-addons-for-elementor-lite'),
162
- 'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite'),
163
- 'return_value' => 'yes',
164
- 'prefix_class' => 'eael-ninja-form-labels-',
165
  ]
166
  );
167
-
168
  $this->add_control(
169
  'placeholder_switch',
170
  [
171
- 'label' => __( 'Placeholder', 'essential-addons-for-elementor-lite'),
172
- 'type' => Controls_Manager::SWITCHER,
173
- 'default' => 'yes',
174
- 'label_on' => __( 'Show', 'essential-addons-for-elementor-lite'),
175
- 'label_off' => __( 'Hide', 'essential-addons-for-elementor-lite'),
176
- 'return_value' => 'yes',
177
  ]
178
  );
179
-
180
  $this->end_controls_section();
181
 
182
  /**
@@ -186,25 +192,25 @@ class NinjaForms extends Widget_Base {
186
  $this->start_controls_section(
187
  'section_errors',
188
  [
189
- 'label' => __( 'Errors', 'essential-addons-for-elementor-lite'),
190
  ]
191
  );
192
-
193
  $this->add_control(
194
  'error_messages',
195
  [
196
- 'label' => __( 'Error Messages', 'essential-addons-for-elementor-lite'),
197
- 'type' => Controls_Manager::SELECT,
198
- 'default' => 'show',
199
- 'options' => [
200
- 'show' => __( 'Show', 'essential-addons-for-elementor-lite'),
201
- 'hide' => __( 'Hide', 'essential-addons-for-elementor-lite'),
202
  ],
203
- 'selectors_dictionary' => [
204
- 'show' => 'block',
205
- 'hide' => 'none',
206
  ],
207
- 'selectors' => [
208
  '{{WRAPPER}} .eael-ninja-form .nf-error-wrap .nf-error-required-error' => 'display: {{VALUE}} !important;',
209
  ],
210
  ]
@@ -213,23 +219,23 @@ class NinjaForms extends Widget_Base {
213
  $this->add_control(
214
  'validation_errors',
215
  [
216
- 'label' => __( 'Validation Errors', 'essential-addons-for-elementor-lite'),
217
- 'type' => Controls_Manager::SELECT,
218
- 'default' => 'show',
219
- 'options' => [
220
- 'show' => __( 'Show', 'essential-addons-for-elementor-lite'),
221
- 'hide' => __( 'Hide', 'essential-addons-for-elementor-lite'),
222
  ],
223
- 'selectors_dictionary' => [
224
- 'show' => 'block',
225
- 'hide' => 'none',
226
  ],
227
- 'selectors' => [
228
  '{{WRAPPER}} .eael-ninja-form .nf-form-errors .nf-error-field-errors' => 'display: {{VALUE}} !important;',
229
  ],
230
  ]
231
  );
232
-
233
  $this->end_controls_section();
234
 
235
  /**
@@ -239,43 +245,43 @@ class NinjaForms extends Widget_Base {
239
  $this->start_controls_section(
240
  'section_container_style',
241
  [
242
- 'label' => __( 'Form Container', 'essential-addons-for-elementor-lite'),
243
- 'tab' => Controls_Manager::TAB_STYLE,
244
  ]
245
  );
246
 
247
  $this->add_control(
248
  'eael_contact_form_background',
249
  [
250
- 'label' => esc_html__( 'Form Background Color', 'essential-addons-for-elementor-lite'),
251
  'type' => Controls_Manager::COLOR,
252
  'selectors' => [
253
  '{{WRAPPER}} .eael-contact-form' => 'background: {{VALUE}};',
254
  ],
255
  ]
256
  );
257
-
258
  $this->add_responsive_control(
259
  'eael_contact_form_alignment',
260
  [
261
- 'label' => esc_html__( 'Form Alignment', 'essential-addons-for-elementor-lite'),
262
  'type' => Controls_Manager::CHOOSE,
263
  'label_block' => true,
264
  'options' => [
265
  'default' => [
266
- 'title' => __( 'Default', 'essential-addons-for-elementor-lite'),
267
  'icon' => 'fa fa-ban',
268
  ],
269
  'left' => [
270
- 'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite'),
271
  'icon' => 'eicon-h-align-left',
272
  ],
273
  'center' => [
274
- 'title' => esc_html__( 'Center', 'essential-addons-for-elementor-lite'),
275
  'icon' => 'eicon-h-align-center',
276
  ],
277
  'right' => [
278
- 'title' => esc_html__( 'Right', 'essential-addons-for-elementor-lite'),
279
  'icon' => 'eicon-h-align-right',
280
  ],
281
  ],
@@ -286,9 +292,9 @@ class NinjaForms extends Widget_Base {
286
  $this->add_responsive_control(
287
  'eael_contact_form_width',
288
  [
289
- 'label' => esc_html__( 'Form Width', 'essential-addons-for-elementor-lite'),
290
  'type' => Controls_Manager::SLIDER,
291
- 'size_units' => [ 'px', 'em', '%' ],
292
  'range' => [
293
  'px' => [
294
  'min' => 10,
@@ -308,9 +314,9 @@ class NinjaForms extends Widget_Base {
308
  $this->add_responsive_control(
309
  'eael_contact_form_max_width',
310
  [
311
- 'label' => esc_html__( 'Form Max Width', 'essential-addons-for-elementor-lite'),
312
  'type' => Controls_Manager::SLIDER,
313
- 'size_units' => [ 'px', 'em', '%' ],
314
  'range' => [
315
  'px' => [
316
  'min' => 10,
@@ -326,47 +332,44 @@ class NinjaForms extends Widget_Base {
326
  ],
327
  ]
328
  );
329
-
330
-
331
  $this->add_responsive_control(
332
  'eael_contact_form_margin',
333
  [
334
- 'label' => esc_html__( 'Form Margin', 'essential-addons-for-elementor-lite'),
335
  'type' => Controls_Manager::DIMENSIONS,
336
- 'size_units' => [ 'px', 'em', '%' ],
337
  'selectors' => [
338
  '{{WRAPPER}} .eael-contact-form' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
339
  ],
340
  ]
341
- );
342
-
343
  $this->add_responsive_control(
344
  'eael_contact_form_padding',
345
  [
346
- 'label' => esc_html__( 'Form Padding', 'essential-addons-for-elementor-lite'),
347
  'type' => Controls_Manager::DIMENSIONS,
348
- 'size_units' => [ 'px', 'em', '%' ],
349
  'selectors' => [
350
  '{{WRAPPER}} .eael-contact-form' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
351
  ],
352
  ]
353
  );
354
-
355
-
356
  $this->add_control(
357
  'eael_contact_form_border_radius',
358
  [
359
- 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
360
  'type' => Controls_Manager::DIMENSIONS,
361
  'separator' => 'before',
362
- 'size_units' => [ 'px' ],
363
  'selectors' => [
364
  '{{WRAPPER}} .eael-contact-form' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
365
  ],
366
  ]
367
  );
368
-
369
-
370
  $this->add_group_control(
371
  Group_Control_Border::get_type(),
372
  [
@@ -374,8 +377,7 @@ class NinjaForms extends Widget_Base {
374
  'selector' => '{{WRAPPER}} .eael-contact-form',
375
  ]
376
  );
377
-
378
-
379
  $this->add_group_control(
380
  Group_Control_Box_Shadow::get_type(),
381
  [
@@ -388,7 +390,7 @@ class NinjaForms extends Widget_Base {
388
  }
389
 
390
  /*-----------------------------------------------------------------------------------*/
391
- /* STYLE TAB
392
  /*-----------------------------------------------------------------------------------*/
393
 
394
  /**
@@ -398,136 +400,136 @@ class NinjaForms extends Widget_Base {
398
  $this->start_controls_section(
399
  'section_form_title_style',
400
  [
401
- 'label' => __( 'Title & Description', 'essential-addons-for-elementor-lite'),
402
- 'tab' => Controls_Manager::TAB_STYLE,
403
  ]
404
  );
405
-
406
  $this->add_responsive_control(
407
  'heading_alignment',
408
  [
409
- 'label' => __( 'Alignment', 'essential-addons-for-elementor-lite'),
410
- 'type' => Controls_Manager::CHOOSE,
411
- 'options' => [
412
- 'left' => [
413
- 'title' => __( 'Left', 'essential-addons-for-elementor-lite'),
414
- 'icon' => 'fa fa-align-left',
415
- ],
416
- 'center' => [
417
- 'title' => __( 'Center', 'essential-addons-for-elementor-lite'),
418
- 'icon' => 'fa fa-align-center',
419
- ],
420
- 'right' => [
421
- 'title' => __( 'Right', 'essential-addons-for-elementor-lite'),
422
- 'icon' => 'fa fa-align-right',
423
- ],
424
- ],
425
- 'default' => '',
426
- 'selectors' => [
427
- '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-ninja-form-heading' => 'text-align: {{VALUE}};',
428
- ],
429
- ]
430
- );
431
-
432
  $this->add_control(
433
  'title_heading',
434
  [
435
- 'label' => __( 'Title', 'essential-addons-for-elementor-lite'),
436
- 'type' => Controls_Manager::HEADING,
437
- 'separator' => 'before',
438
  ]
439
  );
440
 
441
  $this->add_control(
442
  'form_title_text_color',
443
  [
444
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
445
- 'type' => Controls_Manager::COLOR,
446
- 'default' => '',
447
- 'selectors' => [
448
  '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title' => 'color: {{VALUE}}',
449
  ],
450
  ]
451
  );
452
-
453
  $this->add_group_control(
454
  Group_Control_Typography::get_type(),
455
  [
456
- 'name' => 'form_title_typography',
457
- 'label' => __( 'Typography', 'essential-addons-for-elementor-lite'),
458
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title',
459
  ]
460
  );
461
-
462
  $this->add_responsive_control(
463
- 'form_title_margin',
464
- [
465
- 'label' => __( 'Margin', 'essential-addons-for-elementor-lite'),
466
- 'type' => Controls_Manager::DIMENSIONS,
467
- 'size_units' => [ 'px', 'em', '%' ],
468
- 'allowed_dimensions' => 'vertical',
469
- 'placeholder' => [
470
- 'top' => '',
471
- 'right' => 'auto',
472
- 'bottom' => '',
473
- 'left' => 'auto',
474
- ],
475
- 'selectors' => [
476
- '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
477
- ],
478
- ]
479
- );
480
-
481
  $this->add_control(
482
  'description_heading',
483
  [
484
- 'label' => __( 'Description', 'essential-addons-for-elementor-lite'),
485
- 'type' => Controls_Manager::HEADING,
486
- 'separator' => 'before',
487
  ]
488
  );
489
 
490
  $this->add_control(
491
  'form_description_text_color',
492
  [
493
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
494
- 'type' => Controls_Manager::COLOR,
495
- 'default' => '',
496
- 'selectors' => [
497
  '{{WRAPPER}} .eael-ninja-form .eael-contact-form-description' => 'color: {{VALUE}}',
498
  ],
499
  ]
500
  );
501
-
502
  $this->add_group_control(
503
  Group_Control_Typography::get_type(),
504
  [
505
- 'name' => 'form_description_typography',
506
- 'label' => __( 'Typography', 'essential-addons-for-elementor-lite'),
507
- 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
508
- 'selector' => '{{WRAPPER}} .eael-ninja-form .eael-contact-form-description',
509
  ]
510
  );
511
-
512
  $this->add_responsive_control(
513
- 'form_description_margin',
514
- [
515
- 'label' => __( 'Margin', 'essential-addons-for-elementor-lite'),
516
- 'type' => Controls_Manager::DIMENSIONS,
517
- 'size_units' => [ 'px', 'em', '%' ],
518
- 'allowed_dimensions' => 'vertical',
519
- 'placeholder' => [
520
- 'top' => '',
521
- 'right' => 'auto',
522
- 'bottom' => '',
523
- 'left' => 'auto',
524
- ],
525
- 'selectors' => [
526
- '{{WRAPPER}} .eael-contact-form-description' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
527
- ],
528
- ]
529
- );
530
-
531
  $this->end_controls_section();
532
 
533
  /**
@@ -537,9 +539,9 @@ class NinjaForms extends Widget_Base {
537
  $this->start_controls_section(
538
  'section_label_style',
539
  [
540
- 'label' => __( 'Labels', 'essential-addons-for-elementor-lite'),
541
- 'tab' => Controls_Manager::TAB_STYLE,
542
- 'condition' => [
543
  'labels_switch' => 'yes',
544
  ],
545
  ]
@@ -548,29 +550,29 @@ class NinjaForms extends Widget_Base {
548
  $this->add_control(
549
  'text_color_label',
550
  [
551
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
552
- 'type' => Controls_Manager::COLOR,
553
- 'selectors' => [
554
  '{{WRAPPER}} .eael-ninja-form .nf-field-label label' => 'color: {{VALUE}}',
555
  ],
556
- 'condition' => [
557
  'labels_switch' => 'yes',
558
  ],
559
  ]
560
  );
561
-
562
  $this->add_group_control(
563
  Group_Control_Typography::get_type(),
564
  [
565
- 'name' => 'typography_label',
566
- 'label' => __( 'Typography', 'essential-addons-for-elementor-lite'),
567
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field-label label',
568
- 'condition' => [
569
  'labels_switch' => 'yes',
570
  ],
571
  ]
572
  );
573
-
574
  $this->end_controls_section();
575
 
576
  /**
@@ -580,53 +582,53 @@ class NinjaForms extends Widget_Base {
580
  $this->start_controls_section(
581
  'section_fields_style',
582
  [
583
- 'label' => __( 'Input & Textarea', 'essential-addons-for-elementor-lite'),
584
- 'tab' => Controls_Manager::TAB_STYLE,
585
  ]
586
  );
587
-
588
  $this->add_responsive_control(
589
  'input_alignment',
590
  [
591
- 'label' => __( 'Alignment', 'essential-addons-for-elementor-lite'),
592
- 'type' => Controls_Manager::CHOOSE,
593
- 'options' => [
594
- 'left' => [
595
- 'title' => __( 'Left', 'essential-addons-for-elementor-lite'),
596
- 'icon' => 'fa fa-align-left',
597
- ],
598
- 'center' => [
599
- 'title' => __( 'Center', 'essential-addons-for-elementor-lite'),
600
- 'icon' => 'fa fa-align-center',
601
- ],
602
- 'right' => [
603
- 'title' => __( 'Right', 'essential-addons-for-elementor-lite'),
604
- 'icon' => 'fa fa-align-right',
605
- ],
606
- ],
607
- 'default' => '',
608
- 'selectors' => [
609
- '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'text-align: {{VALUE}};',
610
- ],
611
- ]
612
- );
613
-
614
- $this->start_controls_tabs( 'tabs_fields_style' );
615
 
616
  $this->start_controls_tab(
617
  'tab_fields_normal',
618
  [
619
- 'label' => __( 'Normal', 'essential-addons-for-elementor-lite'),
620
  ]
621
  );
622
 
623
  $this->add_control(
624
  'field_bg_color',
625
  [
626
- 'label' => __( 'Background Color', 'essential-addons-for-elementor-lite'),
627
- 'type' => Controls_Manager::COLOR,
628
- 'default' => '',
629
- 'selectors' => [
630
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'background-color: {{VALUE}}',
631
  ],
632
  ]
@@ -635,237 +637,237 @@ class NinjaForms extends Widget_Base {
635
  $this->add_control(
636
  'field_text_color',
637
  [
638
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
639
- 'type' => Controls_Manager::COLOR,
640
- 'default' => '',
641
- 'selectors' => [
642
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'color: {{VALUE}}',
643
  ],
644
  ]
645
  );
646
 
647
- $this->add_group_control(
648
- Group_Control_Border::get_type(),
649
- [
650
- 'name' => 'field_border',
651
- 'label' => __( 'Border', 'essential-addons-for-elementor-lite'),
652
- 'placeholder' => '1px',
653
- 'default' => '1px',
654
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
655
- 'separator' => 'before',
656
- ]
657
- );
658
-
659
- $this->add_control(
660
- 'field_radius',
661
- [
662
- 'label' => __( 'Border Radius', 'essential-addons-for-elementor-lite'),
663
- 'type' => Controls_Manager::DIMENSIONS,
664
- 'size_units' => [ 'px', 'em', '%' ],
665
- 'selectors' => [
666
- '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
667
- ],
668
- ]
669
- );
670
-
671
  $this->add_responsive_control(
672
  'text_indent',
673
  [
674
- 'label' => __( 'Text Indent', 'essential-addons-for-elementor-lite'),
675
- 'type' => Controls_Manager::SLIDER,
676
- 'range' => [
677
- 'px' => [
678
- 'min' => 0,
679
- 'max' => 60,
680
- 'step' => 1,
681
  ],
682
- '%' => [
683
- 'min' => 0,
684
- 'max' => 30,
685
- 'step' => 1,
686
  ],
687
  ],
688
- 'size_units' => [ 'px', 'em', '%' ],
689
- 'selectors' => [
690
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'text-indent: {{SIZE}}{{UNIT}}',
691
  ],
692
- 'separator' => 'before',
693
  ]
694
  );
695
-
696
  $this->add_responsive_control(
697
  'input_width',
698
  [
699
- 'label' => __( 'Input Width', 'essential-addons-for-elementor-lite'),
700
- 'type' => Controls_Manager::SLIDER,
701
- 'range' => [
702
  'px' => [
703
- 'min' => 0,
704
- 'max' => 1200,
705
- 'step' => 1,
706
  ],
707
  ],
708
- 'size_units' => [ 'px', 'em', '%' ],
709
- 'selectors' => [
710
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field select' => 'width: {{SIZE}}{{UNIT}}',
711
  ],
712
- 'separator' => 'before',
713
  ]
714
  );
715
-
716
  $this->add_responsive_control(
717
  'input_height',
718
  [
719
- 'label' => __( 'Input Height', 'essential-addons-for-elementor-lite'),
720
- 'type' => Controls_Manager::SLIDER,
721
- 'range' => [
722
  'px' => [
723
- 'min' => 0,
724
- 'max' => 80,
725
- 'step' => 1,
726
  ],
727
  ],
728
- 'size_units' => [ 'px', 'em', '%' ],
729
- 'selectors' => [
730
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field select' => 'height: {{SIZE}}{{UNIT}}',
731
  ],
732
  ]
733
  );
734
-
735
  $this->add_responsive_control(
736
  'textarea_width',
737
  [
738
- 'label' => __( 'Textarea Width', 'essential-addons-for-elementor-lite'),
739
- 'type' => Controls_Manager::SLIDER,
740
- 'range' => [
741
  'px' => [
742
- 'min' => 0,
743
- 'max' => 1200,
744
- 'step' => 1,
745
  ],
746
  ],
747
- 'size_units' => [ 'px', 'em', '%' ],
748
- 'selectors' => [
749
  '{{WRAPPER}} .eael-ninja-form .nf-field textarea' => 'width: {{SIZE}}{{UNIT}}',
750
  ],
751
  ]
752
  );
753
-
754
  $this->add_responsive_control(
755
  'textarea_height',
756
  [
757
- 'label' => __( 'Textarea Height', 'essential-addons-for-elementor-lite'),
758
- 'type' => Controls_Manager::SLIDER,
759
- 'range' => [
760
  'px' => [
761
- 'min' => 0,
762
- 'max' => 400,
763
- 'step' => 1,
764
  ],
765
  ],
766
- 'size_units' => [ 'px', 'em', '%' ],
767
- 'selectors' => [
768
  '{{WRAPPER}} .eael-ninja-form .nf-field textarea' => 'height: {{SIZE}}{{UNIT}}',
769
  ],
770
  ]
771
  );
772
 
773
- $this->add_responsive_control(
774
- 'field_padding',
775
- [
776
- 'label' => __( 'Padding', 'essential-addons-for-elementor-lite'),
777
- 'type' => Controls_Manager::DIMENSIONS,
778
- 'size_units' => [ 'px', 'em', '%' ],
779
- 'selectors' => [
780
- '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
781
- ],
782
- 'separator' => 'before',
783
- ]
784
- );
785
-
786
  $this->add_responsive_control(
787
  'field_spacing',
788
  [
789
- 'label' => __( 'Spacing', 'essential-addons-for-elementor-lite'),
790
- 'type' => Controls_Manager::SLIDER,
791
- 'range' => [
792
- 'px' => [
793
- 'min' => 0,
794
- 'max' => 100,
795
- 'step' => 1,
796
  ],
797
  ],
798
- 'size_units' => [ 'px', 'em', '%' ],
799
- 'selectors' => [
800
  '{{WRAPPER}} .eael-ninja-form .nf-field-container' => 'margin-bottom: {{SIZE}}{{UNIT}}',
801
  ],
802
  ]
803
  );
804
-
805
  $this->add_group_control(
806
  Group_Control_Typography::get_type(),
807
  [
808
- 'name' => 'field_typography',
809
- 'label' => __( 'Typography', 'essential-addons-for-elementor-lite'),
810
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
811
- 'separator' => 'before',
812
  ]
813
  );
814
 
815
- $this->add_group_control(
816
- Group_Control_Box_Shadow::get_type(),
817
- [
818
- 'name' => 'field_box_shadow',
819
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
820
- 'separator' => 'before',
821
- ]
822
- );
823
 
824
  $this->end_controls_tab();
825
 
826
  $this->start_controls_tab(
827
  'tab_fields_focus',
828
  [
829
- 'label' => __( 'Focus', 'essential-addons-for-elementor-lite'),
830
  ]
831
  );
832
 
833
  $this->add_control(
834
  'field_bg_color_focus',
835
  [
836
- 'label' => __( 'Background Color', 'essential-addons-for-elementor-lite'),
837
- 'type' => Controls_Manager::COLOR,
838
- 'default' => '',
839
- 'selectors' => [
840
  '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus' => 'background-color: {{VALUE}}',
841
  ],
842
  ]
843
  );
844
 
845
- $this->add_group_control(
846
- Group_Control_Border::get_type(),
847
- [
848
- 'name' => 'focus_input_border',
849
- 'label' => __( 'Border', 'essential-addons-for-elementor-lite'),
850
- 'placeholder' => '1px',
851
- 'default' => '1px',
852
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus',
853
- ]
854
- );
855
 
856
- $this->add_group_control(
857
- Group_Control_Box_Shadow::get_type(),
858
- [
859
- 'name' => 'focus_box_shadow',
860
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus',
861
- 'separator' => 'before',
862
- ]
863
- );
864
 
865
  $this->end_controls_tab();
866
 
867
  $this->end_controls_tabs();
868
-
869
  $this->end_controls_section();
870
 
871
  /**
@@ -875,50 +877,50 @@ class NinjaForms extends Widget_Base {
875
  $this->start_controls_section(
876
  'section_field_description_style',
877
  [
878
- 'label' => __( 'Field Description', 'essential-addons-for-elementor-lite'),
879
- 'tab' => Controls_Manager::TAB_STYLE,
880
  ]
881
  );
882
 
883
  $this->add_control(
884
  'field_description_text_color',
885
  [
886
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
887
- 'type' => Controls_Manager::COLOR,
888
- 'selectors' => [
889
  '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description' => 'color: {{VALUE}}',
890
  ],
891
  ]
892
  );
893
-
894
  $this->add_group_control(
895
  Group_Control_Typography::get_type(),
896
  [
897
- 'name' => 'field_description_typography',
898
- 'label' => __( 'Typography', 'essential-addons-for-elementor-lite'),
899
- 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description',
900
  ]
901
  );
902
-
903
  $this->add_responsive_control(
904
  'field_description_spacing',
905
  [
906
- 'label' => __( 'Spacing', 'essential-addons-for-elementor-lite'),
907
- 'type' => Controls_Manager::SLIDER,
908
- 'range' => [
909
- 'px' => [
910
- 'min' => 0,
911
- 'max' => 100,
912
- 'step' => 1,
913
  ],
914
  ],
915
- 'size_units' => [ 'px', 'em', '%' ],
916
- 'selectors' => [
917
  '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description' => 'margin-bottom: {{SIZE}}{{UNIT}}',
918
  ],
919
  ]
920
  );
921
-
922
  $this->end_controls_section();
923
 
924
  /**
@@ -928,10 +930,10 @@ class NinjaForms extends Widget_Base {
928
  $this->start_controls_section(
929
  'section_placeholder_style',
930
  [
931
- 'label' => __( 'Placeholder', 'essential-addons-for-elementor-lite'),
932
- 'tab' => Controls_Manager::TAB_STYLE,
933
- 'condition' => [
934
- 'placeholder_switch' => 'yes',
935
  ],
936
  ]
937
  );
@@ -939,22 +941,22 @@ class NinjaForms extends Widget_Base {
939
  $this->add_control(
940
  'text_color_placeholder',
941
  [
942
- 'label' => __( 'Text Color', 'essential-addons-for-elementor-lite'),
943
- 'type' => Controls_Manager::COLOR,
944
- 'selectors' => [
945
  '{{WRAPPER}} .eael-ninja-form .nf-field input::-webkit-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea::-webkit-input-placeholder' => 'color: {{VALUE}}',
946
  '{{WRAPPER}} .eael-ninja-form .nf-field input::-moz-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea::-moz-input-placeholder' => 'color: {{VALUE}}',
947
  '{{WRAPPER}} .eael-ninja-form .nf-field input:-ms-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea:-ms-input-placeholder' => 'color: {{VALUE}}',
948
  '{{WRAPPER}} .eael-ninja-form .nf-field input:-moz-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea:-moz-placeholder' => 'color: {{VALUE}}',
949
  ],
950
- 'condition' => [
951
- 'placeholder_switch' => 'yes',
952
  ],
953
  ]
954
  );
955
-
956
  $this->end_controls_section();
957
-
958
  /**
959
  * Style Tab: Radio & Checkbox
960
  * -------------------------------------------------
@@ -962,55 +964,55 @@ class NinjaForms extends Widget_Base {
962
  $this->start_
6
  exit;
7
  }
8
 
9
+ use \Elementor\Controls_Manager;
10
+ use \Elementor\Group_Control_Border;
11
+ use \Elementor\Group_Control_Box_Shadow;
12
+ use \Elementor\Group_Control_Typography;
13
+ use \Elementor\Scheme_Typography;
14
+ use \Elementor\Widget_Base;
15
+ use \Essential_Addons_Elementor\Classes\Helper;
16
+ use \Ninja_Forms;
17
+
18
+ class NinjaForms extends Widget_Base
19
+ {
20
+ public function get_name()
21
+ {
22
  return 'eael-ninja';
23
  }
24
 
25
+ public function get_title()
26
+ {
27
+ return __('Ninja Forms', 'essential-addons-for-elementor-lite');
28
  }
29
 
30
+ public function get_categories()
31
+ {
32
+ return ['essential-addons-elementor'];
33
  }
34
 
35
+ public function get_icon()
36
+ {
37
  return 'eaicon-ninja-forms';
38
  }
39
+
40
  public function get_keywords()
41
  {
42
  return [
50
  'feedback',
51
  'ninjaforms',
52
  'ea',
53
+ 'essential addons',
54
  ];
55
  }
56
 
59
  return 'https://essential-addons.com/elementor/docs/ninja-forms/';
60
  }
61
 
62
+ protected function _register_controls()
63
+ {
64
 
65
  /*-----------------------------------------------------------------------------------*/
66
+ /* CONTENT TAB
67
  /*-----------------------------------------------------------------------------------*/
68
+ if (!function_exists('Ninja_Forms')) {
69
  $this->start_controls_section(
70
  'eael_global_warning',
71
  [
72
+ 'label' => __('Warning!', 'essential-addons-for-elementor-lite'),
73
  ]
74
  );
75
 
77
  'eael_global_warning_text',
78
  [
79
  'type' => Controls_Manager::RAW_HTML,
80
+ 'raw' => __('<strong>Ninja Forms</strong> is not installed/activated on your site. Please install and activate <strong>Ninja Forms</strong> first.', 'essential-addons-for-elementor-lite'),
81
  'content_classes' => 'eael-warning',
82
  ]
83
  );
91
  $this->start_controls_section(
92
  'section_info_box',
93
  [
94
+ 'label' => __('Ninja Forms', 'essential-addons-for-elementor-lite'),
95
  ]
96
  );
97
+
98
  $this->add_control(
99
  'contact_form_list',
100
  [
101
+ 'label' => esc_html__('Select Form', 'essential-addons-for-elementor-lite'),
102
+ 'type' => Controls_Manager::SELECT,
103
  'label_block' => true,
104
+ 'options' => Helper::get_ninja_form_list(),
105
+ 'default' => '0',
106
  ]
107
  );
108
+
109
  $this->add_control(
110
  'custom_title_description',
111
  [
112
+ 'label' => __('Custom Title & Description', 'essential-addons-for-elementor-lite'),
113
+ 'type' => Controls_Manager::SWITCHER,
114
+ 'label_on' => __('Yes', 'essential-addons-for-elementor-lite'),
115
+ 'label_off' => __('No', 'essential-addons-for-elementor-lite'),
116
+ 'return_value' => 'yes',
117
  ]
118
  );
119
+
120
  $this->add_control(
121
  'form_title',
122
  [
123
+ 'label' => __('Title', 'essential-addons-for-elementor-lite'),
124
+ 'type' => Controls_Manager::SWITCHER,
125
+ 'default' => 'yes',
126
+ 'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
127
+ 'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
128
+ 'return_value' => 'yes',
129
+ 'prefix_class' => 'eael-ninja-form-title-',
130
+ 'condition' => [
131
+ 'custom_title_description!' => 'yes',
132
  ],
133
  ]
134
  );
135
+
136
  $this->add_control(
137
  'form_title_custom',
138
  [
139
+ 'label' => esc_html__('Title', 'essential-addons-for-elementor-lite'),
140
+ 'type' => Controls_Manager::TEXT,
141
+ 'label_block' => true,
142
+ 'default' => '',
143
+ 'condition' => [
144
+ 'custom_title_description' => 'yes',
145
  ],
146
  ]
147
  );
148
+
149
  $this->add_control(
150
  'form_description_custom',
151
  [
152
+ 'label' => esc_html__('Description', 'essential-addons-for-elementor-lite'),
153
+ 'type' => Controls_Manager::TEXTAREA,
154
+ 'default' => '',
155
+ 'condition' => [
156
+ 'custom_title_description' => 'yes',
157
  ],
158
  ]
159
  );
160
+
161
  $this->add_control(
162
  'labels_switch',
163
  [
164
+ 'label' => __('Labels', 'essential-addons-for-elementor-lite'),
165
+ 'type' => Controls_Manager::SWITCHER,
166
+ 'default' => 'yes',
167
+ 'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
168
+ 'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
169
+ 'return_value' => 'yes',
170
+ 'prefix_class' => 'eael-ninja-form-labels-',
171
  ]
172
  );
173
+
174
  $this->add_control(
175
  'placeholder_switch',
176
  [
177
+ 'label' => __('Placeholder', 'essential-addons-for-elementor-lite'),
178
+ 'type' => Controls_Manager::SWITCHER,
179
+ 'default' => 'yes',
180
+ 'label_on' => __('Show', 'essential-addons-for-elementor-lite'),
181
+ 'label_off' => __('Hide', 'essential-addons-for-elementor-lite'),
182
+ 'return_value' => 'yes',
183
  ]
184
  );
185
+
186
  $this->end_controls_section();
187
 
188
  /**
192
  $this->start_controls_section(
193
  'section_errors',
194
  [
195
+ 'label' => __('Errors', 'essential-addons-for-elementor-lite'),
196
  ]
197
  );
198
+
199
  $this->add_control(
200
  'error_messages',
201
  [
202
+ 'label' => __('Error Messages', 'essential-addons-for-elementor-lite'),
203
+ 'type' => Controls_Manager::SELECT,
204
+ 'default' => 'show',
205
+ 'options' => [
206
+ 'show' => __('Show', 'essential-addons-for-elementor-lite'),
207
+ 'hide' => __('Hide', 'essential-addons-for-elementor-lite'),
208
  ],
209
+ 'selectors_dictionary' => [
210
+ 'show' => 'block',
211
+ 'hide' => 'none',
212
  ],
213
+ 'selectors' => [
214
  '{{WRAPPER}} .eael-ninja-form .nf-error-wrap .nf-error-required-error' => 'display: {{VALUE}} !important;',
215
  ],
216
  ]
219
  $this->add_control(
220
  'validation_errors',
221
  [
222
+ 'label' => __('Validation Errors', 'essential-addons-for-elementor-lite'),
223
+ 'type' => Controls_Manager::SELECT,
224
+ 'default' => 'show',
225
+ 'options' => [
226
+ 'show' => __('Show', 'essential-addons-for-elementor-lite'),
227
+ 'hide' => __('Hide', 'essential-addons-for-elementor-lite'),
228
  ],
229
+ 'selectors_dictionary' => [
230
+ 'show' => 'block',
231
+ 'hide' => 'none',
232
  ],
233
+ 'selectors' => [
234
  '{{WRAPPER}} .eael-ninja-form .nf-form-errors .nf-error-field-errors' => 'display: {{VALUE}} !important;',
235
  ],
236
  ]
237
  );
238
+
239
  $this->end_controls_section();
240
 
241
  /**
245
  $this->start_controls_section(
246
  'section_container_style',
247
  [
248
+ 'label' => __('Form Container', 'essential-addons-for-elementor-lite'),
249
+ 'tab' => Controls_Manager::TAB_STYLE,
250
  ]
251
  );
252
 
253
  $this->add_control(
254
  'eael_contact_form_background',
255
  [
256
+ 'label' => esc_html__('Form Background Color', 'essential-addons-for-elementor-lite'),
257
  'type' => Controls_Manager::COLOR,
258
  'selectors' => [
259
  '{{WRAPPER}} .eael-contact-form' => 'background: {{VALUE}};',
260
  ],
261
  ]
262
  );
263
+
264
  $this->add_responsive_control(
265
  'eael_contact_form_alignment',
266
  [
267
+ 'label' => esc_html__('Form Alignment', 'essential-addons-for-elementor-lite'),
268
  'type' => Controls_Manager::CHOOSE,
269
  'label_block' => true,
270
  'options' => [
271
  'default' => [
272
+ 'title' => __('Default', 'essential-addons-for-elementor-lite'),
273
  'icon' => 'fa fa-ban',
274
  ],
275
  'left' => [
276
+ 'title' => esc_html__('Left', 'essential-addons-for-elementor-lite'),
277
  'icon' => 'eicon-h-align-left',
278
  ],
279
  'center' => [
280
+ 'title' => esc_html__('Center', 'essential-addons-for-elementor-lite'),
281
  'icon' => 'eicon-h-align-center',
282
  ],
283
  'right' => [
284
+ 'title' => esc_html__('Right', 'essential-addons-for-elementor-lite'),
285
  'icon' => 'eicon-h-align-right',
286
  ],
287
  ],
292
  $this->add_responsive_control(
293
  'eael_contact_form_width',
294
  [
295
+ 'label' => esc_html__('Form Width', 'essential-addons-for-elementor-lite'),
296
  'type' => Controls_Manager::SLIDER,
297
+ 'size_units' => ['px', 'em', '%'],
298
  'range' => [
299
  'px' => [
300
  'min' => 10,
314
  $this->add_responsive_control(
315
  'eael_contact_form_max_width',
316
  [
317
+ 'label' => esc_html__('Form Max Width', 'essential-addons-for-elementor-lite'),
318
  'type' => Controls_Manager::SLIDER,
319
+ 'size_units' => ['px', 'em', '%'],
320
  'range' => [
321
  'px' => [
322
  'min' => 10,
332
  ],
333
  ]
334
  );
335
+
 
336
  $this->add_responsive_control(
337
  'eael_contact_form_margin',
338
  [
339
+ 'label' => esc_html__('Form Margin', 'essential-addons-for-elementor-lite'),
340
  'type' => Controls_Manager::DIMENSIONS,
341
+ 'size_units' => ['px', 'em', '%'],
342
  'selectors' => [
343
  '{{WRAPPER}} .eael-contact-form' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
344
  ],
345
  ]
346
+ );
347
+
348
  $this->add_responsive_control(
349
  'eael_contact_form_padding',
350
  [
351
+ 'label' => esc_html__('Form Padding', 'essential-addons-for-elementor-lite'),
352
  'type' => Controls_Manager::DIMENSIONS,
353
+ 'size_units' => ['px', 'em', '%'],
354
  'selectors' => [
355
  '{{WRAPPER}} .eael-contact-form' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
356
  ],
357
  ]
358
  );
359
+
 
360
  $this->add_control(
361
  'eael_contact_form_border_radius',
362
  [
363
+ 'label' => esc_html__('Border Radius', 'essential-addons-for-elementor-lite'),
364
  'type' => Controls_Manager::DIMENSIONS,
365
  'separator' => 'before',
366
+ 'size_units' => ['px'],
367
  'selectors' => [
368
  '{{WRAPPER}} .eael-contact-form' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
369
  ],
370
  ]
371
  );
372
+
 
373
  $this->add_group_control(
374
  Group_Control_Border::get_type(),
375
  [
377
  'selector' => '{{WRAPPER}} .eael-contact-form',
378
  ]
379
  );
380
+
 
381
  $this->add_group_control(
382
  Group_Control_Box_Shadow::get_type(),
383
  [
390
  }
391
 
392
  /*-----------------------------------------------------------------------------------*/
393
+ /* STYLE TAB
394
  /*-----------------------------------------------------------------------------------*/
395
 
396
  /**
400
  $this->start_controls_section(
401
  'section_form_title_style',
402
  [
403
+ 'label' => __('Title & Description', 'essential-addons-for-elementor-lite'),
404
+ 'tab' => Controls_Manager::TAB_STYLE,
405
  ]
406
  );
407
+
408
  $this->add_responsive_control(
409
  'heading_alignment',
410
  [
411
+ 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
412
+ 'type' => Controls_Manager::CHOOSE,
413
+ 'options' => [
414
+ 'left' => [
415
+ 'title' => __('Left', 'essential-addons-for-elementor-lite'),
416
+ 'icon' => 'fa fa-align-left',
417
+ ],
418
+ 'center' => [
419
+ 'title' => __('Center', 'essential-addons-for-elementor-lite'),
420
+ 'icon' => 'fa fa-align-center',
421
+ ],
422
+ 'right' => [
423
+ 'title' => __('Right', 'essential-addons-for-elementor-lite'),
424
+ 'icon' => 'fa fa-align-right',
425
+ ],
426
+ ],
427
+ 'default' => '',
428
+ 'selectors' => [
429
+ '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-ninja-form-heading' => 'text-align: {{VALUE}};',
430
+ ],
431
+ ]
432
+ );
433
+
434
  $this->add_control(
435
  'title_heading',
436
  [
437
+ 'label' => __('Title', 'essential-addons-for-elementor-lite'),
438
+ 'type' => Controls_Manager::HEADING,
439
+ 'separator' => 'before',
440
  ]
441
  );
442
 
443
  $this->add_control(
444
  'form_title_text_color',
445
  [
446
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
447
+ 'type' => Controls_Manager::COLOR,
448
+ 'default' => '',
449
+ 'selectors' => [
450
  '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title' => 'color: {{VALUE}}',
451
  ],
452
  ]
453
  );
454
+
455
  $this->add_group_control(
456
  Group_Control_Typography::get_type(),
457
  [
458
+ 'name' => 'form_title_typography',
459
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
460
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title',
461
  ]
462
  );
463
+
464
  $this->add_responsive_control(
465
+ 'form_title_margin',
466
+ [
467
+ 'label' => __('Margin', 'essential-addons-for-elementor-lite'),
468
+ 'type' => Controls_Manager::DIMENSIONS,
469
+ 'size_units' => ['px', 'em', '%'],
470
+ 'allowed_dimensions' => 'vertical',
471
+ 'placeholder' => [
472
+ 'top' => '',
473
+ 'right' => 'auto',
474
+ 'bottom' => '',
475
+ 'left' => 'auto',
476
+ ],
477
+ 'selectors' => [
478
+ '{{WRAPPER}} .eael-ninja-form .nf-form-title h3, {{WRAPPER}} .eael-contact-form-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
479
+ ],
480
+ ]
481
+ );
482
+
483
  $this->add_control(
484
  'description_heading',
485
  [
486
+ 'label' => __('Description', 'essential-addons-for-elementor-lite'),
487
+ 'type' => Controls_Manager::HEADING,
488
+ 'separator' => 'before',
489
  ]
490
  );
491
 
492
  $this->add_control(
493
  'form_description_text_color',
494
  [
495
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
496
+ 'type' => Controls_Manager::COLOR,
497
+ 'default' => '',
498
+ 'selectors' => [
499
  '{{WRAPPER}} .eael-ninja-form .eael-contact-form-description' => 'color: {{VALUE}}',
500
  ],
501
  ]
502
  );
503
+
504
  $this->add_group_control(
505
  Group_Control_Typography::get_type(),
506
  [
507
+ 'name' => 'form_description_typography',
508
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
509
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
510
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .eael-contact-form-description',
511
  ]
512
  );
513
+
514
  $this->add_responsive_control(
515
+ 'form_description_margin',
516
+ [
517
+ 'label' => __('Margin', 'essential-addons-for-elementor-lite'),
518
+ 'type' => Controls_Manager::DIMENSIONS,
519
+ 'size_units' => ['px', 'em', '%'],
520
+ 'allowed_dimensions' => 'vertical',
521
+ 'placeholder' => [
522
+ 'top' => '',
523
+ 'right' => 'auto',
524
+ 'bottom' => '',
525
+ 'left' => 'auto',
526
+ ],
527
+ 'selectors' => [
528
+ '{{WRAPPER}} .eael-contact-form-description' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
529
+ ],
530
+ ]
531
+ );
532
+
533
  $this->end_controls_section();
534
 
535
  /**
539
  $this->start_controls_section(
540
  'section_label_style',
541
  [
542
+ 'label' => __('Labels', 'essential-addons-for-elementor-lite'),
543
+ 'tab' => Controls_Manager::TAB_STYLE,
544
+ 'condition' => [
545
  'labels_switch' => 'yes',
546
  ],
547
  ]
550
  $this->add_control(
551
  'text_color_label',
552
  [
553
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
554
+ 'type' => Controls_Manager::COLOR,
555
+ 'selectors' => [
556
  '{{WRAPPER}} .eael-ninja-form .nf-field-label label' => 'color: {{VALUE}}',
557
  ],
558
+ 'condition' => [
559
  'labels_switch' => 'yes',
560
  ],
561
  ]
562
  );
563
+
564
  $this->add_group_control(
565
  Group_Control_Typography::get_type(),
566
  [
567
+ 'name' => 'typography_label',
568
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
569
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field-label label',
570
+ 'condition' => [
571
  'labels_switch' => 'yes',
572
  ],
573
  ]
574
  );
575
+
576
  $this->end_controls_section();
577
 
578
  /**
582
  $this->start_controls_section(
583
  'section_fields_style',
584
  [
585
+ 'label' => __('Input & Textarea', 'essential-addons-for-elementor-lite'),
586
+ 'tab' => Controls_Manager::TAB_STYLE,
587
  ]
588
  );
589
+
590
  $this->add_responsive_control(
591
  'input_alignment',
592
  [
593
+ 'label' => __('Alignment', 'essential-addons-for-elementor-lite'),
594
+ 'type' => Controls_Manager::CHOOSE,
595
+ 'options' => [
596
+ 'left' => [
597
+ 'title' => __('Left', 'essential-addons-for-elementor-lite'),
598
+ 'icon' => 'fa fa-align-left',
599
+ ],
600
+ 'center' => [
601
+ 'title' => __('Center', 'essential-addons-for-elementor-lite'),
602
+ 'icon' => 'fa fa-align-center',
603
+ ],
604
+ 'right' => [
605
+ 'title' => __('Right', 'essential-addons-for-elementor-lite'),
606
+ 'icon' => 'fa fa-align-right',
607
+ ],
608
+ ],
609
+ 'default' => '',
610
+ 'selectors' => [
611
+ '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'text-align: {{VALUE}};',
612
+ ],
613
+ ]
614
+ );
615
+
616
+ $this->start_controls_tabs('tabs_fields_style');
617
 
618
  $this->start_controls_tab(
619
  'tab_fields_normal',
620
  [
621
+ 'label' => __('Normal', 'essential-addons-for-elementor-lite'),
622
  ]
623
  );
624
 
625
  $this->add_control(
626
  'field_bg_color',
627
  [
628
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
629
+ 'type' => Controls_Manager::COLOR,
630
+ 'default' => '',
631
+ 'selectors' => [
632
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'background-color: {{VALUE}}',
633
  ],
634
  ]
637
  $this->add_control(
638
  'field_text_color',
639
  [
640
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
641
+ 'type' => Controls_Manager::COLOR,
642
+ 'default' => '',
643
+ 'selectors' => [
644
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'color: {{VALUE}}',
645
  ],
646
  ]
647
  );
648
 
649
+ $this->add_group_control(
650
+ Group_Control_Border::get_type(),
651
+ [
652
+ 'name' => 'field_border',
653
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
654
+ 'placeholder' => '1px',
655
+ 'default' => '1px',
656
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
657
+ 'separator' => 'before',
658
+ ]
659
+ );
660
+
661
+ $this->add_control(
662
+ 'field_radius',
663
+ [
664
+ 'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
665
+ 'type' => Controls_Manager::DIMENSIONS,
666
+ 'size_units' => ['px', 'em', '%'],
667
+ 'selectors' => [
668
+ '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
669
+ ],
670
+ ]
671
+ );
672
+
673
  $this->add_responsive_control(
674
  'text_indent',
675
  [
676
+ 'label' => __('Text Indent', 'essential-addons-for-elementor-lite'),
677
+ 'type' => Controls_Manager::SLIDER,
678
+ 'range' => [
679
+ 'px' => [
680
+ 'min' => 0,
681
+ 'max' => 60,
682
+ 'step' => 1,
683
  ],
684
+ '%' => [
685
+ 'min' => 0,
686
+ 'max' => 30,
687
+ 'step' => 1,
688
  ],
689
  ],
690
+ 'size_units' => ['px', 'em', '%'],
691
+ 'selectors' => [
692
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'text-indent: {{SIZE}}{{UNIT}}',
693
  ],
694
+ 'separator' => 'before',
695
  ]
696
  );
697
+
698
  $this->add_responsive_control(
699
  'input_width',
700
  [
701
+ 'label' => __('Input Width', 'essential-addons-for-elementor-lite'),
702
+ 'type' => Controls_Manager::SLIDER,
703
+ 'range' => [
704
  'px' => [
705
+ 'min' => 0,
706
+ 'max' => 1200,
707
+ 'step' => 1,
708
  ],
709
  ],
710
+ 'size_units' => ['px', 'em', '%'],
711
+ 'selectors' => [
712
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field select' => 'width: {{SIZE}}{{UNIT}}',
713
  ],
714
+ 'separator' => 'before',
715
  ]
716
  );
717
+
718
  $this->add_responsive_control(
719
  'input_height',
720
  [
721
+ 'label' => __('Input Height', 'essential-addons-for-elementor-lite'),
722
+ 'type' => Controls_Manager::SLIDER,
723
+ 'range' => [
724
  'px' => [
725
+ 'min' => 0,
726
+ 'max' => 80,
727
+ 'step' => 1,
728
  ],
729
  ],
730
+ 'size_units' => ['px', 'em', '%'],
731
+ 'selectors' => [
732
  '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field select' => 'height: {{SIZE}}{{UNIT}}',
733
  ],
734
  ]
735
  );
736
+
737
  $this->add_responsive_control(
738
  'textarea_width',
739
  [
740
+ 'label' => __('Textarea Width', 'essential-addons-for-elementor-lite'),
741
+ 'type' => Controls_Manager::SLIDER,
742
+ 'range' => [
743
  'px' => [
744
+ 'min' => 0,
745
+ 'max' => 1200,
746
+ 'step' => 1,
747
  ],
748
  ],
749
+ 'size_units' => ['px', 'em', '%'],
750
+ 'selectors' => [
751
  '{{WRAPPER}} .eael-ninja-form .nf-field textarea' => 'width: {{SIZE}}{{UNIT}}',
752
  ],
753
  ]
754
  );
755
+
756
  $this->add_responsive_control(
757
  'textarea_height',
758
  [
759
+ 'label' => __('Textarea Height', 'essential-addons-for-elementor-lite'),
760
+ 'type' => Controls_Manager::SLIDER,
761
+ 'range' => [
762
  'px' => [
763
+ 'min' => 0,
764
+ 'max' => 400,
765
+ 'step' => 1,
766
  ],
767
  ],
768
+ 'size_units' => ['px', 'em', '%'],
769
+ 'selectors' => [
770
  '{{WRAPPER}} .eael-ninja-form .nf-field textarea' => 'height: {{SIZE}}{{UNIT}}',
771
  ],
772
  ]
773
  );
774
 
775
+ $this->add_responsive_control(
776
+ 'field_padding',
777
+ [
778
+ 'label' => __('Padding', 'essential-addons-for-elementor-lite'),
779
+ 'type' => Controls_Manager::DIMENSIONS,
780
+ 'size_units' => ['px', 'em', '%'],
781
+ 'selectors' => [
782
+ '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
783
+ ],
784
+ 'separator' => 'before',
785
+ ]
786
+ );
787
+
788
  $this->add_responsive_control(
789
  'field_spacing',
790
  [
791
+ 'label' => __('Spacing', 'essential-addons-for-elementor-lite'),
792
+ 'type' => Controls_Manager::SLIDER,
793
+ 'range' => [
794
+ 'px' => [
795
+ 'min' => 0,
796
+ 'max' => 100,
797
+ 'step' => 1,
798
  ],
799
  ],
800
+ 'size_units' => ['px', 'em', '%'],
801
+ 'selectors' => [
802
  '{{WRAPPER}} .eael-ninja-form .nf-field-container' => 'margin-bottom: {{SIZE}}{{UNIT}}',
803
  ],
804
  ]
805
  );
806
+
807
  $this->add_group_control(
808
  Group_Control_Typography::get_type(),
809
  [
810
+ 'name' => 'field_typography',
811
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
812
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
813
+ 'separator' => 'before',
814
  ]
815
  );
816
 
817
+ $this->add_group_control(
818
+ Group_Control_Box_Shadow::get_type(),
819
+ [
820
+ 'name' => 'field_box_shadow',
821
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input[type="text"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="email"], {{WRAPPER}} .eael-ninja-form .nf-field input[type="tel"], {{WRAPPER}} .eael-ninja-form .nf-field textarea, {{WRAPPER}} .eael-ninja-form .nf-field select',
822
+ 'separator' => 'before',
823
+ ]
824
+ );
825
 
826
  $this->end_controls_tab();
827
 
828
  $this->start_controls_tab(
829
  'tab_fields_focus',
830
  [
831
+ 'label' => __('Focus', 'essential-addons-for-elementor-lite'),
832
  ]
833
  );
834
 
835
  $this->add_control(
836
  'field_bg_color_focus',
837
  [
838
+ 'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
839
+ 'type' => Controls_Manager::COLOR,
840
+ 'default' => '',
841
+ 'selectors' => [
842
  '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus' => 'background-color: {{VALUE}}',
843
  ],
844
  ]
845
  );
846
 
847
+ $this->add_group_control(
848
+ Group_Control_Border::get_type(),
849
+ [
850
+ 'name' => 'focus_input_border',
851
+ 'label' => __('Border', 'essential-addons-for-elementor-lite'),
852
+ 'placeholder' => '1px',
853
+ 'default' => '1px',
854
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus',
855
+ ]
856
+ );
857
 
858
+ $this->add_group_control(
859
+ Group_Control_Box_Shadow::get_type(),
860
+ [
861
+ 'name' => 'focus_box_shadow',
862
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field input:focus, {{WRAPPER}} .eael-ninja-form .nf-field textarea:focus',
863
+ 'separator' => 'before',
864
+ ]
865
+ );
866
 
867
  $this->end_controls_tab();
868
 
869
  $this->end_controls_tabs();
870
+
871
  $this->end_controls_section();
872
 
873
  /**
877
  $this->start_controls_section(
878
  'section_field_description_style',
879
  [
880
+ 'label' => __('Field Description', 'essential-addons-for-elementor-lite'),
881
+ 'tab' => Controls_Manager::TAB_STYLE,
882
  ]
883
  );
884
 
885
  $this->add_control(
886
  'field_description_text_color',
887
  [
888
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
889
+ 'type' => Controls_Manager::COLOR,
890
+ 'selectors' => [
891
  '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description' => 'color: {{VALUE}}',
892
  ],
893
  ]
894
  );
895
+
896
  $this->add_group_control(
897
  Group_Control_Typography::get_type(),
898
  [
899
+ 'name' => 'field_description_typography',
900
+ 'label' => __('Typography', 'essential-addons-for-elementor-lite'),
901
+ 'selector' => '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description',
902
  ]
903
  );
904
+
905
  $this->add_responsive_control(
906
  'field_description_spacing',
907
  [
908
+ 'label' => __('Spacing', 'essential-addons-for-elementor-lite'),
909
+ 'type' => Controls_Manager::SLIDER,
910
+ 'range' => [
911
+ 'px' => [
912
+ 'min' => 0,
913
+ 'max' => 100,
914
+ 'step' => 1,
915
  ],
916
  ],
917
+ 'size_units' => ['px', 'em', '%'],
918
+ 'selectors' => [
919
  '{{WRAPPER}} .eael-ninja-form .nf-field .nf-field-description' => 'margin-bottom: {{SIZE}}{{UNIT}}',
920
  ],
921
  ]
922
  );
923
+
924
  $this->end_controls_section();
925
 
926
  /**
930
  $this->start_controls_section(
931
  'section_placeholder_style',
932
  [
933
+ 'label' => __('Placeholder', 'essential-addons-for-elementor-lite'),
934
+ 'tab' => Controls_Manager::TAB_STYLE,
935
+ 'condition' => [
936
+ 'placeholder_switch' => 'yes',
937
  ],
938
  ]
939
  );
941
  $this->add_control(
942
  'text_color_placeholder',
943
  [
944
+ 'label' => __('Text Color', 'essential-addons-for-elementor-lite'),
945
+ 'type' => Controls_Manager::COLOR,
946
+ 'selectors' => [
947
  '{{WRAPPER}} .eael-ninja-form .nf-field input::-webkit-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea::-webkit-input-placeholder' => 'color: {{VALUE}}',
948
  '{{WRAPPER}} .eael-ninja-form .nf-field input::-moz-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea::-moz-input-placeholder' => 'color: {{VALUE}}',
949
  '{{WRAPPER}} .eael-ninja-form .nf-field input:-ms-input-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea:-ms-input-placeholder' => 'color: {{VALUE}}',
950
  '{{WRAPPER}} .eael-ninja-form .nf-field input:-moz-placeholder, {{WRAPPER}} .eael-ninja-form .nf-field textarea:-moz-placeholder' => 'color: {{VALUE}}',
951
  ],
952
+ 'condition' => [
953
+ 'placeholder_switch' => 'yes',
954
  ],
955
  ]
956
  );
957
+
958
  $this->end_controls_section();
959
+
960
  /**
961
  * Style Tab: Radio & Checkbox
962
  * -------------------------------------------------
964
  $this->start_