OoohBoi Steroids for Elementor - Version 1.9.5

Version Description

  • New extension: OH! ANIMATOR (available only if the GSAP and ScrollTrigger libraries enabled)
  • New extension: CONTAINER EXTRAS
  • New library added: three.js
  • GLIDER: now fully compliant with Containers
  • Fix: Elementor 3.6+ compliance issues
Download this release

Release Info

Developer ooohboi
Plugin Icon 128x128 OoohBoi Steroids for Elementor
Version 1.9.5
Comparing to
See all releases

Code changes from version 1.7.5 to 1.9.5

Files changed (76) hide show
  1. assets/css/admin.css +9 -1
  2. assets/css/editor-dark.css +197 -0
  3. assets/css/editor.css +75 -3
  4. assets/css/main.css +36 -4
  5. assets/js/butterbutton-min.js +1 -0
  6. assets/js/butterbutton.js +41 -0
  7. assets/js/commentz-min.js +1 -0
  8. assets/js/commentz.js +41 -0
  9. assets/js/container-extras.js +41 -0
  10. assets/js/glider-min.js +1 -0
  11. assets/js/glider.js +223 -0
  12. assets/js/harakiri-min.js +1 -0
  13. assets/js/harakiri.js +48 -0
  14. assets/js/hoveranimator-min.js +1 -0
  15. assets/js/hoveranimator.js +135 -0
  16. assets/js/ob-steroids-editor-min.js +1 -0
  17. assets/js/ob-steroids-editor.js +28 -0
  18. assets/js/ohanimator-min.js +1 -0
  19. assets/js/ohanimator.js +296 -0
  20. assets/js/ooohboi-libs-locomotion.js +10 -7
  21. assets/js/ooohboi-steroids-min.js +1 -1
  22. assets/js/ooohboi-steroids.js +12 -457
  23. assets/js/perspektive-min.js +1 -0
  24. assets/js/perspektive.js +41 -0
  25. assets/js/photomorph-min.js +1 -0
  26. assets/js/photomorph.js +41 -0
  27. assets/js/poopart-min.js +1 -0
  28. assets/js/poopart.js +41 -0
  29. assets/js/pseudo-min.js +1 -0
  30. assets/js/pseudo.js +93 -0
  31. assets/js/searchcop-min.js +1 -0
  32. assets/js/searchcop.js +68 -0
  33. assets/js/spacerat-min.js +1 -0
  34. assets/js/spacerat.js +70 -0
  35. assets/js/widgetstalker-min.js +1 -0
  36. assets/js/widgetstalker.js +42 -0
  37. controls/ooohboi-breaking-bad.php +2 -2
  38. controls/ooohboi-bullet.php +91 -0
  39. controls/ooohboi-butter-button.php +67 -15
  40. controls/ooohboi-commentz.php +77 -3
  41. controls/ooohboi-container-extras.php +128 -0
  42. controls/ooohboi-glider.php +195 -15
  43. controls/ooohboi-harakiri.php +66 -36
  44. controls/ooohboi-hover-animator.php +214 -113
  45. controls/ooohboi-icobox.php +16 -0
  46. controls/ooohboi-imbox.php +38 -3
  47. controls/ooohboi-locomotion.php +1 -0
  48. controls/ooohboi-oh-animator.php +1239 -0
  49. controls/ooohboi-overlaiz.php +28 -18
  50. controls/ooohboi-overlay-underlay.php +161 -21
  51. controls/ooohboi-perspektive.php +35 -4
  52. controls/ooohboi-photomorph.php +31 -0
  53. controls/ooohboi-pseudo.php +156 -61
  54. controls/ooohboi-searchcop.php +46 -0
  55. controls/ooohboi-spacerat.php +48 -5
  56. controls/ooohboi-videomasq.php +1 -0
  57. controls/ooohboi-widget-stalker.php +32 -2
  58. inc/common-functions.php +68 -10
  59. inc/exopite-simple-options/exopite-simple-options-framework-class.php +4 -2
  60. inc/img/container-extras.png +0 -0
  61. inc/img/glider.png +0 -0
  62. inc/img/locomotion-panel.png +0 -0
  63. inc/img/multiple-slides-glider.png +0 -0
  64. inc/img/oh-animator.png +0 -0
  65. inc/img/sfe-interface-2.png +0 -0
  66. inc/img/sfe-new-interface.png +0 -0
  67. inc/img/three-js.png +0 -0
  68. inc/img/three-option.png +0 -0
  69. inc/info/ob-landing.php +49 -40
  70. lang/ooohboi-steroids.pot +1325 -621
  71. lib/anime/anime.min.js +8 -0
  72. lib/barba/barba.min.js +7 -0
  73. lib/gsap/gsap.min.js +0 -11
  74. lib/scrolltrigger/ScrollTrigger.min.js +0 -11
  75. ooohboi-steroids.php +199 -75
  76. readme.txt +78 -49
assets/css/admin.css CHANGED
@@ -125,7 +125,15 @@ a.toplevel_page_steroids_for_elementor.wp-not-current-submenu .wp-menu-image img
125
  .exopite-sof-wrapper.steroids_for_elementor-options .checkbox__checkmark::after {
126
  border-color: #ED2B5C;
127
  }
128
-
 
 
 
 
 
 
 
 
129
  /* ------------ EXOPITE */
130
 
131
  .exopite-sof-wrapper.steroids_for_elementor-options > form {
125
  .exopite-sof-wrapper.steroids_for_elementor-options .checkbox__checkmark::after {
126
  border-color: #ED2B5C;
127
  }
128
+ .exopite-sof-wrapper.steroids_for_elementor-options .ob-alert {
129
+ background-color: #ffaca3;
130
+ padding: 5%;
131
+ margin-top: 5%;
132
+ font-size: 13px;
133
+ line-height: 1.4;
134
+ font-style: italic;
135
+ border-radius: 4px;
136
+ }
137
  /* ------------ EXOPITE */
138
 
139
  .exopite-sof-wrapper.steroids_for_elementor-options > form {
assets/css/editor-dark.css ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Elementor editor styles - dark */
2
+
3
+ .elementor-control-_ob_steroids_background_overlay .elementor-panel-heading-title:after,
4
+ .elementor-control-_ob_overlaiz_plugin_title:after,
5
+ .elementor-control-_ob_harakiri_plugin_title:after,
6
+ .elementor-control-_ob_paginini_plugin_title:after,
7
+ .elementor-control-_ob_photogiraffe_plugin_title:after,
8
+ .elementor-control-_ob_bbad_section_title:after,
9
+ .elementor-control-_ob_bbad_column_title:after,
10
+ .elementor-control-_ob_teleporter_plugin_title:after,
11
+ .elementor-control-_ob_cartshut_plugin_title:after,
12
+ .elementor-control-_ob_searchcop_plugin_title:after,
13
+ .elementor-control-_ob_videomasq_plugin_title:after,
14
+ .elementor-control-_ob_butterbutton:after,
15
+ .elementor-control-_ob_perspektive:after,
16
+ .elementor-control-_ob_shadough:after,
17
+ .elementor-control-_ob_photomorph:after,
18
+ .elementor-control-_ob_commentz:after,
19
+ .elementor-control-_ob_spacerat:after,
20
+ .elementor-control-_ob_imbox_img:after,
21
+ .elementor-control-_ob_imbox_cont:after,
22
+ .elementor-control-_ob_icobox_img:after,
23
+ .elementor-control-_ob_icobox_cont:after,
24
+ .elementor-control-_ob_hoveranimator_section_title:after,
25
+ .elementor-control-_ob_hoveranimator_panel:after,
26
+ .elementor-control-_ob_kontrolz:after,
27
+ .elementor-control-_ob_widget_stalker:after,
28
+ .elementor-control-_ob_pseudo_section_title:after,
29
+ .elementor-control-_ob_loco_title_section:after,
30
+ .elementor-control-_ob_bullet:after,
31
+ .elementor-control-_ob_container_extras:after,
32
+ .elementor-control-_ob_animator_section_title:after {
33
+ content: "";
34
+ position: absolute;
35
+ height: 20px;
36
+ width: 20px;
37
+ top: 10px;
38
+ right: 20px;
39
+ background-image: url("../img/ooohboi-poopart-icon.png");
40
+ background-position: center center;
41
+ background-size: cover;
42
+ z-index: 1;
43
+ }
44
+ .elementor-control-_ob_hoveranimator_section_title .elementor-control-content:before,
45
+ .elementor-control-_ob_hoveranimator_panel:before {
46
+ content: "";
47
+ position: absolute;
48
+ height: 6px;
49
+ width: 6px;
50
+ top: 0px;
51
+ left: 0px;
52
+ background-color: #ff743d;
53
+ z-index: 1;
54
+ }
55
+ .elementor-control-_ob_widget_stalker:before,
56
+ .elementor-control-_ob_bbad_section_title_0:before {
57
+ content: "";
58
+ position: absolute;
59
+ height: 6px;
60
+ width: 6px;
61
+ top: 0px;
62
+ left: 0px;
63
+ background-color: #4ffd00;
64
+ z-index: 1;
65
+ }
66
+ .rtl .elementor-control-_ob_steroids_background_overlay .elementor-panel-heading-title:after,
67
+ .rtl .elementor-control-_ob_overlaiz_plugin_title:after,
68
+ .rtl .elementor-control-_ob_harakiri_plugin_title:after,
69
+ .rtl .elementor-control-_ob_paginini_plugin_title:after,
70
+ .rtl .elementor-control-_ob_photogiraffe_plugin_title:after,
71
+ .rtl .elementor-control-_ob_bbad_section_title:after,
72
+ .rtl .elementor-control-_ob_bbad_column_title:after,
73
+ .rtl .elementor-control-_ob_teleporter_plugin_title:after,
74
+ .rtl .elementor-control-_ob_cartshut_plugin_title:after,
75
+ .rtl .elementor-control-_ob_searchcop_plugin_title:after,
76
+ .rtl .elementor-control-_ob_videomasq_plugin_title:after,
77
+ .rtl .elementor-control-_ob_butterbutton:after,
78
+ .rtl .elementor-control-_ob_perspektive:after,
79
+ .rtl .elementor-control-_ob_shadough:after,
80
+ .rtl .elementor-control-_ob_photomorph:after,
81
+ .rtl .elementor-control-_ob_commentz:after,
82
+ .rtl .elementor-control-_ob_spacerat:after,
83
+ .rtl .elementor-control-_ob_imbox_img:after,
84
+ .rtl .elementor-control-_ob_imbox_cont:after,
85
+ .rtl .elementor-control-_ob_icobox_img:after,
86
+ .rtl .elementor-control-_ob_icobox_cont:after,
87
+ .rtl .elementor-control-_ob_hoveranimator_section_title:after,
88
+ .rtl .elementor-control-_ob_hoveranimator_panel:after,
89
+ .rtl .elementor-control-_ob_kontrolz:after,
90
+ .rtl .elementor-control-_ob_widget_stalker:after,
91
+ .rtl .elementor-control-_ob_pseudo_section_title:after,
92
+ .rtl .elementor-control-_ob_loco_title_section:after,
93
+ .rtl .elementor-control-_ob_bullet:after,
94
+ .rtl .elementor-control-_ob_container_extras:after,
95
+ .rtl .elementor-control-_ob_animator_section_title:after {
96
+ left: 20px;
97
+ right: unset;
98
+ }
99
+ .rtl .elementor-control-_ob_hoveranimator_section_title .elementor-control-content:before,
100
+ .rtl .elementor-control-_ob_hoveranimator_panel:before {
101
+ right: calc(100% - 6px);
102
+ left: unset;
103
+ }
104
+ .rtl .elementor-control-_ob_widget_stalker:before,
105
+ .rtl .elementor-control-_ob_bbad_section_title_0:before {
106
+ right: calc(100% - 6px);
107
+ left: unset;
108
+ }
109
+ .ob-is-breaking-bad.elementor-top-section > .elementor-container > .elementor-row,
110
+ .ob-is-breaking-bad.elementor-inner-section > .elementor-container > .elementor-row {
111
+ flex-wrap: wrap;
112
+ }
113
+
114
+ /* NEW mrk */
115
+ sup.ob-new-feature {
116
+ color: #FF00BE;
117
+ margin-left: 4px;
118
+ letter-spacing: 1px;
119
+ }
120
+
121
+ /* widget stalker */
122
+ .elementor-control-type-raw_html .elementor-control-title {
123
+ font-size: 12px;
124
+ font-weight: 600;
125
+ letter-spacing: 2px;
126
+ }
127
+
128
+ /* pseudo */
129
+ .elementor-column.ob-is-pseudo .elementor-element-populated:before,
130
+ .elementor-column.ob-is-pseudo .elementor-element-populated:after {
131
+ content: '';
132
+ position: absolute;
133
+ pointer-events: none;
134
+ }
135
+
136
+ /* the Interface 1.9.0 */
137
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-content {
138
+ padding: 12px;
139
+ background: linear-gradient(90deg, rgba(0,0,0,0.2), rgba(0,0,0,0));
140
+ border-radius: 4px;
141
+ }
142
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-title {
143
+ color: #e18f5e;
144
+ font-size: 12px;
145
+ font-weight: 500;
146
+ letter-spacing: 1px;
147
+ text-transform: uppercase;
148
+ }
149
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-field-description {
150
+ font-style: normal;
151
+ font-size: 12px;
152
+ margin-top: 0;
153
+ }
154
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-title + .elementor-control-field-description {
155
+ margin-top: 10px;
156
+ }
157
+
158
+ [class*="elementor-control-_ob_"].elementor-control label.elementor-control-title {
159
+ background: linear-gradient(90deg, #005771, #9198e500);
160
+ padding: 4px 6px;
161
+ border-radius: 4px;
162
+ font-weight: 400;
163
+ line-height: 1.1;
164
+ }
165
+ /* Oh Animator editor styles - dark */
166
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-content {
167
+ padding: 12px;
168
+ background: linear-gradient(90deg, rgba(0,0,0,0.2), rgba(0,0,0,0));
169
+ border-radius: 4px;
170
+ }
171
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-title {
172
+ color: #e18f5e;
173
+ font-size: 12px;
174
+ font-weight: 500;
175
+ letter-spacing: 1px;
176
+ text-transform: uppercase;
177
+ }
178
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-field-description {
179
+ font-style: normal;
180
+ font-size: 12px;
181
+ margin-top: 0;
182
+ }
183
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-title + .elementor-control-field-description {
184
+ margin-top: 10px;
185
+ }
186
+ [class*="elementor-control-_ob_animator"].elementor-control label.elementor-control-title,
187
+ [class*="elementor-control-_ob_scrolltrigger"].elementor-control label.elementor-control-title {
188
+ background: linear-gradient(90deg, #005771, #9198e500);
189
+ padding: 4px 6px;
190
+ border-radius: 4px;
191
+ font-weight: 400;
192
+ line-height: 1.1;
193
+ }
194
+ .elementor-control-_ob_animator.elementor-control label.elementor-control-title,
195
+ .elementor-control-_ob_scrolltrigger.elementor-control label.elementor-control-title {
196
+ background: linear-gradient(90deg, #67800f, #67800f00);
197
+ }
assets/css/editor.css CHANGED
@@ -26,7 +26,10 @@
26
  .elementor-control-_ob_kontrolz:after,
27
  .elementor-control-_ob_widget_stalker:after,
28
  .elementor-control-_ob_pseudo_section_title:after,
29
- .elementor-control-_ob_loco_title_section:after {
 
 
 
30
  content: "";
31
  position: absolute;
32
  height: 20px;
@@ -86,7 +89,10 @@
86
  .rtl .elementor-control-_ob_kontrolz:after,
87
  .rtl .elementor-control-_ob_widget_stalker:after,
88
  .rtl .elementor-control-_ob_pseudo_section_title:after,
89
- .rtl .elementor-control-_ob_loco_title_section:after {
 
 
 
90
  left: 20px;
91
  right: unset;
92
  }
@@ -121,8 +127,74 @@ sup.ob-new-feature {
121
 
122
  /* pseudo */
123
  .elementor-column.ob-is-pseudo .elementor-element-populated:before,
124
- .elementor-column.ob-is-pseudo .elementor-element-populated:after {
125
  content: '';
126
  position: absolute;
127
  pointer-events: none;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  }
26
  .elementor-control-_ob_kontrolz:after,
27
  .elementor-control-_ob_widget_stalker:after,
28
  .elementor-control-_ob_pseudo_section_title:after,
29
+ .elementor-control-_ob_loco_title_section:after,
30
+ .elementor-control-_ob_bullet:after,
31
+ .elementor-control-_ob_container_extras:after,
32
+ .elementor-control-_ob_animator_section_title:after {
33
  content: "";
34
  position: absolute;
35
  height: 20px;
89
  .rtl .elementor-control-_ob_kontrolz:after,
90
  .rtl .elementor-control-_ob_widget_stalker:after,
91
  .rtl .elementor-control-_ob_pseudo_section_title:after,
92
+ .rtl .elementor-control-_ob_loco_title_section:after,
93
+ .rtl .elementor-control-_ob_bullet:after,
94
+ .rtl .elementor-control-_ob_container_extras:after,
95
+ .rtl .elementor-control-_ob_animator_section_title:after {
96
  left: 20px;
97
  right: unset;
98
  }
127
 
128
  /* pseudo */
129
  .elementor-column.ob-is-pseudo .elementor-element-populated:before,
130
+ .elementor-column.ob-is-pseudo .elementor-element-populated:after {
131
  content: '';
132
  position: absolute;
133
  pointer-events: none;
134
+ }
135
+
136
+ /* the Interface 1.9.0 */
137
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-content {
138
+ padding: 12px;
139
+ background-color: rgba(0,0,0,0.05);
140
+ border-radius: 4px;
141
+ }
142
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-title {
143
+ color: #005771;
144
+ font-size: 12px;
145
+ font-weight: 500;
146
+ letter-spacing: 1px;
147
+ text-transform: uppercase;
148
+ }
149
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-field-description {
150
+ font-style: normal;
151
+ font-size: 12px;
152
+ margin-top: 0;
153
+ }
154
+ [class*="elementor-control-_ob_"].elementor-control-type-raw_html .elementor-control-title + .elementor-control-field-description {
155
+ margin-top: 10px;
156
+ }
157
+
158
+ [class*="elementor-control-_ob_"].elementor-control label.elementor-control-title {
159
+ background-color: #005771;
160
+ color: #FFF;
161
+ padding: 4px 6px;
162
+ border-radius: 4px;
163
+ font-weight: 400;
164
+ line-height: 1.1;
165
+ }
166
+ /* Oh Animator */
167
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-content {
168
+ padding: 12px;
169
+ background-color: rgba(0,0,0,0.05);
170
+ border-radius: 4px;
171
+ }
172
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-title {
173
+ color: #005771;
174
+ font-size: 12px;
175
+ font-weight: 500;
176
+ letter-spacing: 1px;
177
+ text-transform: uppercase;
178
+ }
179
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-field-description {
180
+ font-style: normal;
181
+ font-size: 12px;
182
+ margin-top: 0;
183
+ }
184
+ [class*="elementor-control-_ob_animator"].elementor-control-type-raw_html .elementor-control-title + .elementor-control-field-description {
185
+ margin-top: 10px;
186
+ }
187
+ [class*="elementor-control-_ob_animator"].elementor-control label.elementor-control-title,
188
+ [class*="elementor-control-_ob_scrolltrigger"].elementor-control label.elementor-control-title {
189
+ background-color: #005771;
190
+ color: #FFF;
191
+ padding: 4px 6px;
192
+ border-radius: 4px;
193
+ font-weight: 400;
194
+ line-height: 1.1;
195
+ }
196
+ .elementor-control-_ob_animator.elementor-control label.elementor-control-title,
197
+ .elementor-control-_ob_scrolltrigger.elementor-control label.elementor-control-title {
198
+ background-color: #67800f;
199
+ color: #FFF;
200
  }
assets/css/main.css CHANGED
@@ -35,6 +35,11 @@
35
  }
36
 
37
  /* GLIDER */
 
 
 
 
 
38
  .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper,
39
  .ob-is-glider .elementor-container > .swiper-wrapper {
40
  flex-wrap: nowrap !important;
@@ -53,7 +58,7 @@
53
  .ob-is-glider .swiper-button-prev,
54
  .ob-is-glider .swiper-button-next {
55
  z-index: 12;
56
- transition: all 0.25s ease;
57
  }
58
  .ob-is-glider .swiper-button-prev {
59
  background-image: none;
@@ -61,9 +66,13 @@
61
  .ob-is-glider .swiper-button-next {
62
  background-image: none;
63
  }
 
 
 
64
 
65
- .ob-is-glider {
66
- visibility: hidden;
 
67
  }
68
 
69
  /* TELEPORTER */
@@ -252,8 +261,9 @@ div[class*='ob-teleporter-'] {
252
  }
253
 
254
  /* Hovernimator */
255
- .ob-is-hoveranimator .ob-is-hoveranimal {
256
  transition-property: opacity, top, left, transform, filter;
 
257
  }
258
 
259
  /* Sticky Inner Section - Stay in Column */
@@ -302,6 +312,28 @@ html.elementor-html::before {
302
  position: absolute;
303
  pointer-events: none;
304
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  /* loco scrollbar */
306
 
307
  /* animations related to locomotive scroll */
35
  }
36
 
37
  /* GLIDER */
38
+ .ob-is-glider .ob-swiper-bundle {
39
+ visibility: hidden;
40
+ overflow: hidden;
41
+ position: relative;
42
+ }
43
  .ob-is-glider .elementor-container > .elementor-row.swiper-wrapper,
44
  .ob-is-glider .elementor-container > .swiper-wrapper {
45
  flex-wrap: nowrap !important;
58
  .ob-is-glider .swiper-button-prev,
59
  .ob-is-glider .swiper-button-next {
60
  z-index: 12;
61
+ transition: all 0.25s ease-in-out;
62
  }
63
  .ob-is-glider .swiper-button-prev {
64
  background-image: none;
66
  .ob-is-glider .swiper-button-next {
67
  background-image: none;
68
  }
69
+ *[class*="-gotoslide-"] {
70
+ cursor: pointer;
71
+ }
72
 
73
+ [ohm-device="tablet"] .ob-is-glider .swiper-slide, [ohm-device="mobile"] .ob-is-glider .swiper-slide {
74
+ width: 100% !important;
75
+ max-width: 100% !important;
76
  }
77
 
78
  /* TELEPORTER */
261
  }
262
 
263
  /* Hovernimator */
264
+ .ob-is-hoveranimator .ob-is-hoveranimal > .elementor-widget-container {
265
  transition-property: opacity, top, left, transform, filter;
266
+ position: relative;
267
  }
268
 
269
  /* Sticky Inner Section - Stay in Column */
312
  position: absolute;
313
  pointer-events: none;
314
  }
315
+ [data-element_type="container"].ob-is-pseudo .ob-pseudo-before,
316
+ [data-element_type="container"].ob-is-pseudo .ob-pseudo-after {
317
+ position: absolute;
318
+ top: 0;
319
+ left: 0;
320
+ width: 100%;
321
+ height: 100%;
322
+ pointer-events: none;
323
+ z-index: -1;
324
+ }
325
+
326
+ /* ----------------- 1.8.2 IMAGES -------------------------- */
327
+ .elementor-widget-image,
328
+ .elementor-widget-image > div,
329
+ .elementor-widget-image img {
330
+ line-height: 0;
331
+ }
332
+ /* ----------------- 1.8.2 SOCIAL ICONS -------------------------- */
333
+ [data-widget_type="social-icons.default"] {
334
+ line-height: 0;
335
+ }
336
+
337
  /* loco scrollbar */
338
 
339
  /* animations related to locomotive scroll */
assets/js/butterbutton-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var t,e=elementorModules.frontend.handlers.Base;t=e.extend({onInit:function(){e.prototype.onInit.apply(this,arguments),this.isButterButton()&&this.$element.addClass("ob-is-butterbutton")},isButterButton:function(){return"yes"===this.getElementSettings("_ob_butterbutton_use_it")},onElementChange:function(t){"_ob_butterbutton_use_it"===t&&("yes"===this.getElementSettings("_ob_butterbutton_use_it")?this.$element.addClass("ob-is-butterbutton"):this.$element.removeClass("ob-is-butterbutton"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/button.default",(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}));
assets/js/butterbutton.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ ButterButton;
11
+
12
+ ButterButton = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isButterButton() ) {
17
+ this.$element.addClass( 'ob-is-butterbutton' );
18
+ }
19
+ },
20
+
21
+ isButterButton: function() {
22
+ return ( this.getElementSettings( '_ob_butterbutton_use_it' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_butterbutton_use_it' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_butterbutton_use_it' ) ) this.$element.addClass( 'ob-is-butterbutton' );
28
+ else this.$element.removeClass( 'ob-is-butterbutton' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/button.default', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( ButterButton, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/commentz-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,n=elementorModules.frontend.handlers.Base;e=n.extend({onInit:function(){n.prototype.onInit.apply(this,arguments),this.isCommentz()&&this.$element.addClass("ob-commentz")},isCommentz:function(){return"yes"===this.getElementSettings("_ob_commentz_use")},onElementChange:function(e){"_ob_commentz_use"===e&&("yes"===this.getElementSettings("_ob_commentz_use")?this.$element.addClass("ob-commentz"):this.$element.removeClass("ob-commentz"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/post-comments.theme_comments",(function(n){elementorFrontend.elementsHandler.addHandler(e,{$element:n})}))}));
assets/js/commentz.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ Commentz;
11
+
12
+ Commentz = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isCommentz() ) {
17
+ this.$element.addClass( 'ob-commentz' );
18
+ }
19
+ },
20
+
21
+ isCommentz: function() {
22
+ return ( this.getElementSettings( '_ob_commentz_use' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_commentz_use' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_commentz_use' ) ) this.$element.addClass( 'ob-commentz' );
28
+ else this.$element.removeClass( 'ob-commentz' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/post-comments.theme_comments', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( Commentz, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/container-extras.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ ContainerExtras;
11
+
12
+ ContainerExtras = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isButterButton() ) {
17
+ this.$element.addClass( 'ob-is-container-extras' );
18
+ }
19
+ },
20
+
21
+ isButterButton: function() {
22
+ return ( this.getElementSettings( '_ob_use_container_extras' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_use_container_extras' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_use_container_extras' ) ) this.$element.addClass( 'ob-is-container-extras' );
28
+ else this.$element.removeClass( 'ob-is-container-extras' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/container', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( ContainerExtras, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/glider-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,t){e(t).on("elementor/frontend/init",(function(){var i,s=elementorModules.frontend.handlers.Base;i=s.extend({me_the_swiper:"undefined",glider_external_controls:[],onInit:function(){s.prototype.onInit.apply(this,arguments),this.isGlider()&&this.isGliderCandidate()&&(this.$element.addClass("ob-is-glider"),this.generateSwiperStructure())},isGlider:function(){return"yes"===this.getElementSettings("_ob_glider_is_slider")},isGliderCandidate:function(){return!this.$element.closest(".swiper").length&&!this.$element.find(".swiper").length&&this.$element.children('[data-element_type="container"]').length>1},onElementChange:function(e){"_ob_glider_is_slider"===e&&("yes"===this.getElementSettings("_ob_glider_is_slider")&&this.isGliderCandidate()?(this.$element.attr("id","glider-"+this.getID()),this.$element.addClass("ob-is-glider"),this.generateSwiperStructure()):""===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.removeClass("ob-is-glider"),elementor.reloadPreview()))},generateSwiperStructure:function(){if(!this.$element.find(".ob-swiper-bundle").length){this.$element.children('[data-element_type="container"]').wrapAll('<div class="ob-swiper-bundle swiper"></div>');var e=this.$element.find(".ob-swiper-bundle");e.children('[data-element_type="container"]').addClass("swiper-slide").wrapAll('<div class="swiper-wrapper"></div>'),e.append('<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>').append('<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>').append('<div class="swiper-pagination"></div>');var i={};i.pagination_type=this.getElementSettings("_ob_glider_pagination_type"),i.allowTouchMove=this.getElementSettings("_ob_glider_allow_touch_move"),i.autoheight=this.getElementSettings("_ob_glider_auto_h"),i.effect=this.getElementSettings("_ob_glider_effect"),i.loop=this.getElementSettings("_ob_glider_loop"),i.direction=this.getElementSettings("_ob_glider_direction"),i.parallax=this.getElementSettings("_ob_glider_parallax"),i.speed=this.getElementSettings("_ob_glider_speed");var s=this.getElementSettings("_ob_glider_autoplay");i.autoplay=!!s&&{delay:this.getElementSettings("_ob_glider_autoplay_delay")},i.mousewheel=this.getElementSettings("_ob_glider_allow_mousewheel"),i.allowMultiSlides=this.getElementSettings("_ob_glider_allow_multi_slides");var n={},l=elementorFrontend.config.breakpoints;n[l.lg]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll"),spaceBetween:+this.getElementSettings("_ob_glider_space_between")||0},n[l.md]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_tablet"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_tablet"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_tablet")||0},n[0]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_mobile"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_mobile"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_mobile")||0},i.breakpoints=n,i.slides_centered=this.getElementSettings("_ob_glider_centered_slides"),i.slides_centered_bounds=this.getElementSettings("_ob_glider_centered_bounds_slides"),i.slides_round_lenghts=this.getElementSettings("_ob_glider_roundlengths_slides");var r={allowTouchMove:"yes"===i.allowTouchMove,autoHeight:"yes"===i.autoheight,effect:i.effect,loop:i.loop,direction:"fade"===i.effect?"horizontal":i.direction,parallax:"yes"===i.parallax,speed:i.speed,breakpoints:"yes"===i.allowMultiSlides&&i.breakpoints,centeredSlides:"yes"===i.slides_centered,centeredSlidesBounds:"yes"===i.slides_centered_bounds,roundLengths:"yes"===i.slides_round_lenghts,navigation:{nextEl:".swiper-button-next",prevEl:".swiper-button-prev"},pagination:{el:".swiper-pagination",type:i.pagination_type,clickable:!0},autoplay:i.autoplay,mousewheel:"yes"===i.mousewheel,watchOverflow:!0};if("undefined"==typeof Swiper){var o=this;let t=setInterval((function(){if(elementorFrontend.utils){clearInterval(t);new(0,elementorFrontend.utils.swiper)(e,r).then((e=>{o.me_the_swiper=e,o.runSyncStuff(o.me_the_swiper)}))}}),500)}else this.me_the_swiper=new Swiper(e,r),this.runSyncStuff(this.me_the_swiper);if(e.css("visibility","visible"),this.isEdit){var d=this;elementor.channels.editor.on("change:container",(function(e){e._parent.model.id===d.getID()&&t.dispatchEvent(new Event("resize"))}))}}},runSyncStuff:function(t){this.glider_external_controls=e("body").find('[class*="glider-'+this.$element[0].dataset.id+'-gotoslide-"]')||[],this.glider_external_controls.length&&(this.glider_external_controls.each((function(){this.target_swiper=t})),this.glider_external_controls.on("click",(function(t){var i=parseInt(e(this).attr("class").match(/-gotoslide-(\d+)/)[1]);i>0&&this.target_swiper.slideTo(i),t.preventDefault()})))}}),elementorFrontend.hooks.addAction("frontend/element_ready/container",(function(e){elementorFrontend.elementsHandler.addHandler(i,{$element:e})}))}))}(jQuery,window);
assets/js/glider.js ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ function debounce(func, wait, immediate) {
8
+ var timeout;
9
+ return function() {
10
+ var context = this, args = arguments;
11
+ var later = function() {
12
+ timeout = null;
13
+ if (!immediate) func.apply(context, args);
14
+ };
15
+ var callNow = immediate && !timeout;
16
+ clearTimeout(timeout);
17
+ timeout = setTimeout(later, wait);
18
+ if (callNow) func.apply(context, args);
19
+ };
20
+ }
21
+
22
+ $window.on( 'elementor/frontend/init', function() {
23
+
24
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
25
+ Glider;
26
+
27
+ Glider = ModuleHandler.extend( {
28
+
29
+ me_the_swiper: 'undefined',
30
+ glider_external_controls: [],
31
+
32
+ onInit: function() {
33
+ ModuleHandler.prototype.onInit.apply( this, arguments );
34
+ if( this.isGlider() && this.isGliderCandidate() ) {
35
+
36
+ this.$element.addClass( 'ob-is-glider' );
37
+ this.generateSwiperStructure();
38
+
39
+ }
40
+ },
41
+
42
+ isGlider: function() {
43
+ return ( this.getElementSettings( '_ob_glider_is_slider' ) === 'yes' );
44
+ },
45
+
46
+ isGliderCandidate: function() {
47
+ return ( ! this.$element.closest( '.swiper' ).length && ! this.$element.find( '.swiper' ).length && this.$element.children( '[data-element_type="container"]' ).length > 1 );
48
+ // return ( this.$element.data( 'nesting-level' ) === 0 );
49
+ },
50
+
51
+ onElementChange: function( changedProp ) {
52
+
53
+ if( changedProp === '_ob_glider_is_slider' ) {
54
+
55
+ if( 'yes' === this.getElementSettings( '_ob_glider_is_slider' ) && this.isGliderCandidate() ) {
56
+ this.$element.attr( 'id', 'glider-' + this.getID() );
57
+ this.$element.addClass( 'ob-is-glider' );
58
+ this.generateSwiperStructure();
59
+ } else if( '' === this.getElementSettings( '_ob_glider_is_slider' ) ) {
60
+ this.$element.removeClass( 'ob-is-glider' );
61
+ elementor.reloadPreview();
62
+ }
63
+
64
+ }
65
+ },
66
+
67
+ generateSwiperStructure: function() {
68
+
69
+ if( this.$element.find( '.ob-swiper-bundle' ).length ) return; // bail if the wraping element exists
70
+
71
+ this.$element.children( '[data-element_type="container"]' ).wrapAll( '<div class="ob-swiper-bundle swiper"></div>' );
72
+
73
+ var wrapr = this.$element.find( '.ob-swiper-bundle' );
74
+
75
+ wrapr.children( '[data-element_type="container"]' ).addClass( 'swiper-slide' ).wrapAll( '<div class="swiper-wrapper"></div>' );
76
+ // append controls: next prev pagination
77
+ wrapr
78
+ .append(
79
+ '<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>'
80
+ )
81
+ .append(
82
+ '<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>'
83
+ )
84
+ .append( '<div class="swiper-pagination"></div>' );
85
+
86
+ // grab the settings...
87
+ var settingz = {};
88
+ settingz.pagination_type = this.getElementSettings( '_ob_glider_pagination_type' );
89
+ settingz.allowTouchMove = this.getElementSettings( '_ob_glider_allow_touch_move' );
90
+ settingz.autoheight = this.getElementSettings( '_ob_glider_auto_h' );
91
+ settingz.effect = this.getElementSettings( '_ob_glider_effect' );
92
+ settingz.loop = this.getElementSettings( '_ob_glider_loop' );
93
+ settingz.direction = this.getElementSettings( '_ob_glider_direction' );
94
+ settingz.parallax = this.getElementSettings( '_ob_glider_parallax' );
95
+ settingz.speed = this.getElementSettings( '_ob_glider_speed' );
96
+ var autoplayed = this.getElementSettings( '_ob_glider_autoplay' );
97
+ if( autoplayed ) {
98
+ settingz.autoplay = {
99
+ 'delay': this.getElementSettings( '_ob_glider_autoplay_delay' ),
100
+ }
101
+ } else settingz.autoplay = false;
102
+ settingz.mousewheel = this.getElementSettings( '_ob_glider_allow_mousewheel' );
103
+
104
+ /* by Xmastermind */
105
+ settingz.allowMultiSlides = this.getElementSettings( '_ob_glider_allow_multi_slides' );
106
+ var breakpointsSettings = {},
107
+ breakpoints = elementorFrontend.config.breakpoints;
108
+ breakpointsSettings[breakpoints.lg] = {
109
+ slidesPerView: this.getElementSettings( '_ob_glider_slides_per_view' ),
110
+ slidesPerGroup: this.getElementSettings( '_ob_glider_slides_to_scroll' ),
111
+ spaceBetween: +this.getElementSettings( '_ob_glider_space_between' ) || 0,
112
+ };
113
+ breakpointsSettings[breakpoints.md] = {
114
+ slidesPerView: this.getElementSettings( '_ob_glider_slides_per_view_tablet' ),
115
+ slidesPerGroup: this.getElementSettings( '_ob_glider_slides_to_scroll_tablet' ),
116
+ spaceBetween: +this.getElementSettings( '_ob_glider_space_between_tablet' ) || 0,
117
+ };
118
+ breakpointsSettings[0] = {
119
+ slidesPerView: this.getElementSettings( '_ob_glider_slides_per_view_mobile' ),
120
+ slidesPerGroup: this.getElementSettings( '_ob_glider_slides_to_scroll_mobile' ),
121
+ spaceBetween: +this.getElementSettings( '_ob_glider_space_between_mobile' ) || 0,
122
+ };
123
+ settingz.breakpoints = breakpointsSettings;
124
+ // centered slides - v1.7.9
125
+ settingz.slides_centered = this.getElementSettings( '_ob_glider_centered_slides' );
126
+ settingz.slides_centered_bounds = this.getElementSettings( '_ob_glider_centered_bounds_slides' );
127
+ settingz.slides_round_lenghts = this.getElementSettings( '_ob_glider_roundlengths_slides' );
128
+
129
+ // create swiper ----------------------------------------------------------------------------------
130
+ var swiper_config = {
131
+ allowTouchMove: ( 'yes' === settingz.allowTouchMove ? true : false ),
132
+ autoHeight: ( 'yes' === settingz.autoheight ? true : false ),
133
+ effect: settingz.effect,
134
+ loop: settingz.loop,
135
+ direction: ( 'fade' === settingz.effect ? 'horizontal' : settingz.direction ),
136
+ parallax: ( 'yes' === settingz.parallax ? true : false ),
137
+ speed: settingz.speed,
138
+ breakpoints: ( 'yes' === settingz.allowMultiSlides ? settingz.breakpoints : false ),
139
+ centeredSlides: ( 'yes' === settingz.slides_centered ? true : false ),
140
+ centeredSlidesBounds: ( 'yes' === settingz.slides_centered_bounds ? true : false ),
141
+ roundLengths: ( 'yes' === settingz.slides_round_lenghts ? true : false ),
142
+ navigation: {
143
+ nextEl: '.swiper-button-next',
144
+ prevEl: '.swiper-button-prev',
145
+ },
146
+ pagination: {
147
+ el: '.swiper-pagination',
148
+ type: settingz.pagination_type,
149
+ clickable: true,
150
+ },
151
+ autoplay: settingz.autoplay,
152
+ mousewheel: ( 'yes' === settingz.mousewheel ? true : false ),
153
+ watchOverflow : true, /* gotta force it down */
154
+ };
155
+ // improved asset loading
156
+ if ( 'undefined' === typeof Swiper ) { // swiper not loaded
157
+ var tmp_this = this;
158
+ let chck_if_elementor_utils_loaded = setInterval( function() {
159
+
160
+ if( elementorFrontend.utils ) {
161
+ clearInterval( chck_if_elementor_utils_loaded );
162
+ const asyncSwiper = elementorFrontend.utils.swiper;
163
+ new asyncSwiper( wrapr, swiper_config ).then( ( newSwiperInstance ) => {
164
+ tmp_this.me_the_swiper = newSwiperInstance;
165
+ tmp_this.runSyncStuff( tmp_this.me_the_swiper );
166
+ } );
167
+ }
168
+
169
+ }, 500 ); // wait for Elementor utils to load entirely
170
+
171
+ } else { // otherwise swiper exists
172
+ this.me_the_swiper = new Swiper( wrapr, swiper_config );
173
+ this.runSyncStuff( this.me_the_swiper );
174
+ }
175
+
176
+ // show the swiper
177
+ wrapr.css( 'visibility', 'visible' );
178
+
179
+ if( this.isEdit ) {
180
+ var TMP_this = this;
181
+ // the DOM hack to prevent all kinds of shit ...
182
+ elementor.channels.editor.on( 'change:container', function( el ) {
183
+ if( el._parent.model.id === TMP_this.getID() ) {
184
+ w.dispatchEvent( new Event( 'resize' ) ); // trigger only if dealing with the Glider
185
+ }
186
+ } );
187
+ }
188
+
189
+ },
190
+
191
+ runSyncStuff: function( swiper_ob ) {
192
+
193
+ // external control via the CSS class
194
+ this.glider_external_controls = $( 'body' ).find( '[class*="glider-' + this.$element[ 0 ].dataset[ 'id' ] + '-gotoslide-"]' ) || [];
195
+
196
+ if( this.glider_external_controls.length ) {
197
+
198
+ this.glider_external_controls.each( function() {
199
+ this.target_swiper = swiper_ob;
200
+ } );
201
+
202
+ this.glider_external_controls.on( 'click', function( e ) {
203
+
204
+ var slide_num = parseInt( $( this ).attr( 'class' ).match(/-gotoslide-(\d+)/)[ 1 ] );
205
+ if( slide_num > 0 ) this.target_swiper.slideTo( slide_num );
206
+
207
+ e.preventDefault(); // bail
208
+
209
+ } );
210
+ }
211
+
212
+ },
213
+
214
+ } );
215
+
216
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/container', function( $scope ) {
217
+ elementorFrontend.elementsHandler.addHandler( Glider, { $element: $scope } );
218
+ } );
219
+
220
+ } );
221
+
222
+
223
+ } ( jQuery, window ) );
assets/js/harakiri-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,n){e(n).on("elementor/frontend/init",(function(){var n,t=elementorModules.frontend.handlers.Base;n=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.isHarakiri()&&this.$element.addClass("ob-harakiri")},isHarakiri:function(){return"inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")},onElementChange:function(e){"_ob_harakiri_writing_mode"===e&&("inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")?this.$element.addClass("ob-harakiri"):this.$element.removeClass("ob-harakiri"))}});var i={"heading.default":n,"text-editor.default":n};e.each(i,(function(e,n){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,(function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})}))}))}))}(jQuery,window);
assets/js/harakiri.js ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ Harakiri;
11
+
12
+ Harakiri = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isHarakiri() ) {
17
+ this.$element.addClass( 'ob-harakiri' );
18
+ }
19
+ },
20
+
21
+ isHarakiri: function() {
22
+ return ( this.getElementSettings( '_ob_harakiri_writing_mode' ) !== 'inherit' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_harakiri_writing_mode' ) {
27
+ if( 'inherit' !== this.getElementSettings( '_ob_harakiri_writing_mode' ) ) this.$element.addClass( 'ob-harakiri' );
28
+ else this.$element.removeClass( 'ob-harakiri' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ var handlersList = {
35
+ 'heading.default': Harakiri,
36
+ 'text-editor.default': Harakiri
37
+ };
38
+
39
+ $.each( handlersList, function( widgetName, handlerClass ) {
40
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
41
+ elementorFrontend.elementsHandler.addHandler( handlerClass, { $element: $scope } );
42
+ } );
43
+ } );
44
+
45
+ } );
46
+
47
+
48
+ } ( jQuery, window ) );
assets/js/hoveranimator-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,t){e(t).on("elementor/frontend/init",(function(){var t,o=elementorModules.frontend.handlers.Base;t=o.extend({onInit:function(){o.prototype.onInit.apply(this,arguments),this.isHoverAnimatorContainer()&&this.$element.addClass("ob-is-hoveranimator"),this.isHoverAnimatorWidget()&&(this.$element.addClass("ob-is-hoveranimal"),this.run())},isHoverAnimatorContainer:function(){return"yes"===this.getElementSettings("_ob_column_hoveranimator")},isHoverAnimatorWidget:function(){return"yes"===this.getElementSettings("_ob_allow_hoveranimator")},onElementChange:function(e){"_ob_column_hoveranimator"===e&&("yes"===this.getElementSettings("_ob_column_hoveranimator")?this.$element.addClass("ob-is-hoveranimator"):this.$element.removeClass("ob-is-hoveranimator")),"_ob_allow_hoveranimator"===e&&("yes"===this.getElementSettings("_ob_allow_hoveranimator")?(this.$element.addClass("ob-is-hoveranimal"),this.run()):this.$element.removeClass("ob-is-hoveranimal")),-1!==["_ob_hoveranimator_opacity_hover","_ob_hoveranimator_y_hover","_ob_hoveranimator_y_hover_alt","_ob_hoveranimator_x_hover","_ob_hoveranimator_x_hover_alt","_ob_hoveranimator_rot_hover","_ob_hoveranimator_scalex_hover","_ob_hoveranimator_scaley_hover","_ob_hoveranimator_blur_hover"].indexOf(e)&&function(){this.run()}},runHoverAnimator:function(){var t=this.$element.find(".elementor-widget-container"),o=t.parent().closest(".ob-is-hoveranimator");if(o.length){var n,r,i=o.data("id"),a=this.getElementSettings("_ob_hoveranimator_opacity_hover")||1,s=this.getElementSettings("_ob_hoveranimator_y_hover")||0,_=this.getElementSettings("_ob_hoveranimator_y_hover_alt")||"",h=this.getElementSettings("_ob_hoveranimator_x_hover")||0,m=this.getElementSettings("_ob_hoveranimator_x_hover_alt")||"",l=this.getElementSettings("_ob_hoveranimator_rot_hover")||0,v=this.getElementSettings("_ob_hoveranimator_scalex_hover")||1,c=this.getElementSettings("_ob_hoveranimator_scaley_hover")||1,d=this.getElementSettings("_ob_hoveranimator_blur_hover")||0;r=""!=e.trim(m)&&void 0!==m?"calc("+m+")":h.size+h.unit,n=""!=e.trim(_)&&void 0!==_?"calc("+_+")":s.size+s.unit;var u={opacity:a.size,top:n,left:r,transform:"rotate("+l.size+"deg) scaleX("+v.size+") scaleY("+c.size+")",filter:"blur("+d.size+d.unit+")"};o.on("mouseenter."+i,(function(){t.css(u)})),o.on("mouseleave."+i,(function(){t.removeAttr("style")}))}},run:function(){this.isHoverAnimatorWidget()&&this.runHoverAnimator()}});var n={container:t,column:t,widget:t};e.each(n,(function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}))}))}(jQuery,window);
assets/js/hoveranimator.js ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ function debounce(func, wait, immediate) {
8
+ var timeout;
9
+ return function() {
10
+ var context = this, args = arguments;
11
+ var later = function() {
12
+ timeout = null;
13
+ if (!immediate) func.apply(context, args);
14
+ };
15
+ var callNow = immediate && !timeout;
16
+ clearTimeout(timeout);
17
+ timeout = setTimeout(later, wait);
18
+ if (callNow) func.apply(context, args);
19
+ };
20
+ }
21
+
22
+ $window.on( 'elementor/frontend/init', function() {
23
+
24
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
25
+ HoverAnimator;
26
+
27
+ HoverAnimator = ModuleHandler.extend( {
28
+
29
+ onInit: function() {
30
+
31
+ ModuleHandler.prototype.onInit.apply( this, arguments );
32
+
33
+ if( this.isHoverAnimatorContainer() ) {
34
+ this.$element.addClass( 'ob-is-hoveranimator' );
35
+ }
36
+ if( this.isHoverAnimatorWidget() ) {
37
+ this.$element.addClass( 'ob-is-hoveranimal' );
38
+ this.run();
39
+ }
40
+
41
+ },
42
+
43
+ isHoverAnimatorContainer: function() {
44
+ return ( this.getElementSettings( '_ob_column_hoveranimator' ) === 'yes' );
45
+ },
46
+
47
+ isHoverAnimatorWidget: function() {
48
+ return ( this.getElementSettings( '_ob_allow_hoveranimator' ) === 'yes' );
49
+ },
50
+
51
+ onElementChange: function( changedProp ) {
52
+ /* Column / Container */
53
+ if( changedProp === '_ob_column_hoveranimator' ) {
54
+ if( 'yes' === this.getElementSettings( '_ob_column_hoveranimator' ) ) this.$element.addClass( 'ob-is-hoveranimator' );
55
+ else this.$element.removeClass( 'ob-is-hoveranimator' );
56
+ }
57
+ /* Widgets */
58
+ if( changedProp === '_ob_allow_hoveranimator' ) {
59
+ if( 'yes' === this.getElementSettings( '_ob_allow_hoveranimator' ) ) {
60
+ this.$element.addClass( 'ob-is-hoveranimal' );
61
+ this.run();
62
+ } else this.$element.removeClass( 'ob-is-hoveranimal' );
63
+ }
64
+ /* Widget props */
65
+ if( [ '_ob_hoveranimator_opacity_hover', '_ob_hoveranimator_y_hover', '_ob_hoveranimator_y_hover_alt', '_ob_hoveranimator_x_hover', '_ob_hoveranimator_x_hover_alt', '_ob_hoveranimator_rot_hover', '_ob_hoveranimator_scalex_hover', '_ob_hoveranimator_scaley_hover', '_ob_hoveranimator_blur_hover' ].indexOf( changedProp ) !== -1 ) {
66
+ debounce( function() {
67
+ this.run();
68
+ }, 500 );
69
+ }
70
+ },
71
+
72
+ runHoverAnimator: function() {
73
+
74
+ var myself = this.$element.find( '.elementor-widget-container' );
75
+ var parent_column = myself.parent().closest( '.ob-is-hoveranimator' );
76
+ if( parent_column.length ) {
77
+
78
+ var top_alt, left_alt, text_node;
79
+ var col_id = parent_column.data( 'id' );
80
+
81
+ var opacity = this.getElementSettings( '_ob_hoveranimator_opacity_hover' ) || 1;
82
+ var pos_y = this.getElementSettings( '_ob_hoveranimator_y_hover' ) || 0;
83
+ var pos_y_alt = this.getElementSettings( '_ob_hoveranimator_y_hover_alt' ) || '';
84
+ var pos_x = this.getElementSettings( '_ob_hoveranimator_x_hover' ) || 0;
85
+ var pos_x_alt = this.getElementSettings( '_ob_hoveranimator_x_hover_alt' ) || '';
86
+ var rot = this.getElementSettings( '_ob_hoveranimator_rot_hover' ) || 0;
87
+ var scale_x = this.getElementSettings( '_ob_hoveranimator_scalex_hover' ) || 1;
88
+ var scale_y = this.getElementSettings( '_ob_hoveranimator_scaley_hover' ) || 1;
89
+ var blur = this.getElementSettings( '_ob_hoveranimator_blur_hover' ) || 0;
90
+
91
+ // alt values chckpoint
92
+ if( '' != $.trim( pos_x_alt ) && undefined !== pos_x_alt ) left_alt = 'calc(' + pos_x_alt + ')';
93
+ else left_alt = pos_x.size + pos_x.unit;
94
+ if( '' != $.trim( pos_y_alt ) && undefined !== pos_y_alt ) top_alt = 'calc(' + pos_y_alt + ')';
95
+ else top_alt = pos_y.size + pos_y.unit;
96
+
97
+ var hover_css = {
98
+ 'opacity': opacity.size,
99
+ 'top': top_alt,
100
+ 'left': left_alt,
101
+ 'transform': 'rotate(' + rot.size + 'deg) scaleX(' + scale_x.size + ') scaleY(' + scale_y.size + ')',
102
+ 'filter': 'blur(' + blur.size + blur.unit + ')'
103
+ };
104
+ parent_column.on( 'mouseenter.' + col_id, function() {
105
+ myself.css( hover_css );
106
+ } );
107
+ parent_column.on( 'mouseleave.' + col_id, function() {
108
+ myself.removeAttr( 'style' );
109
+ } );
110
+ }
111
+
112
+ },
113
+
114
+ run: function() {
115
+ if( this.isHoverAnimatorWidget() ) this.runHoverAnimator();
116
+ },
117
+
118
+ } );
119
+
120
+ var handlersList = {
121
+ 'container': HoverAnimator,
122
+ 'column': HoverAnimator,
123
+ 'widget': HoverAnimator,
124
+ };
125
+
126
+ $.each( handlersList, function( widgetName, handlerClass ) {
127
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
128
+ elementorFrontend.elementsHandler.addHandler( handlerClass, { $element: $scope } );
129
+ } );
130
+ } );
131
+
132
+ } );
133
+
134
+
135
+ } ( jQuery, window ) );
assets/js/ob-steroids-editor-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,o){e(o);elementor.on("panel:init",(function(){var o;(o=e("#ooohboi-steroids-styles-editor-dark-css")).length||(o=e("<link>",{id:"ooohboi-steroids-styles-editor-dark-css",rel:"stylesheet",href:SteroidsEditorLocalized.dark_stylesheet_url})),elementor.settings.editorPreferences.model.on("change:ui_theme",(function(t,r){if("light"===r)return o.remove(),void e("<link>",{id:"ooohboi-steroids-styles-editor-css",rel:"stylesheet",href:SteroidsEditorLocalized.light_stylesheet_url}).appendTo(elementorCommon.elements.$body);o.attr("media","auto"===r?"(prefers-color-scheme: dark)":"").appendTo(elementorCommon.elements.$body)}))}))}(jQuery,window);
assets/js/ob-steroids-editor.js ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Elementor editor JS */
2
+
3
+ 'use strict';
4
+
5
+ ( function ( $, w ) {
6
+
7
+ var $window = $( w );
8
+
9
+ var switch_editor_style = function() {
10
+
11
+ var dark_css_el = $( '#ooohboi-steroids-styles-editor-dark-css' );
12
+ dark_css_el.length || ( dark_css_el = $( '<link>', { id: "ooohboi-steroids-styles-editor-dark-css", rel: "stylesheet", href: SteroidsEditorLocalized.dark_stylesheet_url } ) ),
13
+ elementor.settings.editorPreferences.model.on( 'change:ui_theme', function( e, val ) {
14
+ if( 'light' === val ) {
15
+ dark_css_el.remove();
16
+ var light_css = $( '<link>', { id: "ooohboi-steroids-styles-editor-css", rel: "stylesheet", href: SteroidsEditorLocalized.light_stylesheet_url } );
17
+ light_css.appendTo( elementorCommon.elements.$body );
18
+ return;
19
+ }
20
+ dark_css_el.attr( 'media', 'auto' === val ? '(prefers-color-scheme: dark)' : '' ).appendTo( elementorCommon.elements.$body );
21
+ } );
22
+ };
23
+
24
+ elementor.on( 'panel:init', function() {
25
+ switch_editor_style();
26
+ } );
27
+
28
+ } ( jQuery, window ) );
assets/js/ohanimator-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(t,e){t(e).on("elementor/frontend/init",(function(){var _,n,a,i,o,s=elementorModules.frontend.handlers.Base;_=s.extend({gsap_instance:null,st_instance:null,st_instance_id:"",onInit:function(){s.prototype.onInit.apply(this,arguments),this.isAnimatorObject()&&(this.$element.addClass("ob-is-animated"),this.run())},bindEvents:(n=function(){e.ScrollTrigger.refresh()},a=500,function(){var t=this,e=arguments,_=function(){o=null,i||n.apply(t,e)},s=i&&!o;clearTimeout(o),o=setTimeout(_,a),s&&n.apply(t,e)}),getDefaultElements:function(){return{$container:"yes"===this.getElementSettings("_ob_animator_el_is_sibling")?this.$element.find(".elementor-widget-container > *:first-child"):this.$element.find(".elementor-widget-container")}},isAnimatorObject:function(){return"yes"===this.getElementSettings("_ob_animator")},onElementChange:function(t){"_ob_animator"===t&&("yes"===this.getElementSettings("_ob_animator")?this.$element.addClass("ob-is-animated"):""===this.getElementSettings("_ob_animator")&&(this.$element.removeClass("ob-is-animated"),this.removeSTInstance(),elementor.reloadPreview()))},removeSTInstance:function(){let e=this.$element[0].dataset.id;t("div[class*='gsap-marker-']:contains('ST_"+e+"')").remove(),"object"==typeof this.st_instance&&null!==this.st_instance&&this.st_instance.kill()},run:function(){this.isAnimatorObject()&&this.getAnimatorSettings()},getAnimatorSettings:function(){var _=this.$element[0].dataset.element_type,n="",a={};a._ob_animator_el_is_sibling=this.getElementSettings("_ob_animator_el_is_sibling"),a._ob_animator_st_markers=this.getElementSettings("_ob_animator_st_markers"),a._ob_animator_st_scrub=this.getElementSettings("_ob_animator_st_scrub"),a._ob_animator_st_scrub_smooth=this.getElementSettings("_ob_animator_st_scrub_smooth"),a._ob_animator_st_invalidate_on_refresh=this.getElementSettings("_ob_animator_st_invalidate_on_refresh"),a._ob_animator_st_immediate_render=this.getElementSettings("_ob_animator_st_immediate_render"),a._ob_animator_st_pin=this.getElementSettings("_ob_animator_st_pin"),a._ob_animator_st_pin_spacing=this.getElementSettings("_ob_animator_st_pin_spacing"),a._ob_animator_st_anticipate_pin=this.getElementSettings("_ob_animator_st_anticipate_pin"),a._ob_animator_st_pin_prevent_overlaps=this.getElementSettings("_ob_animator_st_pin_prevent_overlaps"),a._ob_animator_st_toggle_class=this.getElementSettings("_ob_animator_st_toggle_class"),a._ob_animator_st_end_trigger_class=this.getElementSettings("_ob_animator_st_end_trigger_class"),a._ob_animator_st_start_trigger_el=this.getElementSettings("_ob_animator_st_start_trigger_el")||"none",a._ob_animator_st_start_trigger_el_off=this.getElementSettings("_ob_animator_st_start_trigger_el_off.top")||0,a._ob_animator_st_start_viewport=this.getElementSettings("_ob_animator_st_start_viewport")||"none",a._ob_animator_st_start_viewport_off=this.getElementSettings("_ob_animator_st_start_viewport_off.top")||0,a._ob_animator_st_end_trigger_el=this.getElementSettings("_ob_animator_st_end_trigger_el")||"none",a._ob_animator_st_end_trigger_el_off=this.getElementSettings("_ob_animator_st_end_trigger_el_off.bottom")||0,a._ob_animator_st_end_viewport=this.getElementSettings("_ob_animator_st_end_viewport")||"none",a._ob_animator_st_end_viewport_off=this.getElementSettings("_ob_animator_st_end_viewport_off.bottom")||0,a._ob_animator_st_ta_onenter=this.getElementSettings("_ob_animator_st_ta_onenter")||"restart",a._ob_animator_st_ta_onleave=this.getElementSettings("_ob_animator_st_ta_onleave")||"non",a._ob_animator_st_ta_onenterback=this.getElementSettings("_ob_animator_st_ta_onenterback")||"none",a._ob_animator_st_ta_onleaveback=this.getElementSettings("_ob_animator_st_ta_onleaveback")||"reverse",a._ob_animator_easing=this.getElementSettings("_ob_animator_easing"),a._ob_animator_duration=this.getElementSettings("_ob_animator_duration"),a._ob_animator_delay=this.getElementSettings("_ob_animator_delay"),a.rptr=this.getElementSettings("_ob_animator_props_repeater"),n="container"===_?this.$element:this.elements.$container;var i="yes"===a._ob_animator_st_markers,o="yes"===a._ob_animator_st_anticipate_pin,s="yes"===a._ob_animator_st_pin_prevent_overlaps,r="yes"===a._ob_animator_st_invalidate_on_refresh,m="yes"===a._ob_animator_st_immediate_render,g=!1;"yes"===a._ob_animator_st_scrub&&(g=!0,a._ob_animator_st_scrub_smooth>0&&""!==a._ob_animator_st_scrub_smooth&&(g=a._ob_animator_st_scrub_smooth));var l=!1,b=!0;"yes"===a._ob_animator_st_pin&&(l=!0,"no"===a._ob_animator_st_pin_spacing?b=!1:"margin"===a._ob_animator_st_pin_spacing&&(b="margin"));var p="";"undefined"!==a._ob_animator_st_toggle_class&&(p=t.escapeSelector(a._ob_animator_st_toggle_class));var c="";"undefined"!==a._ob_animator_st_end_trigger_class&&(c=t.escapeSelector(a._ob_animator_st_end_trigger_class));var h=this.getElementSettings("_ob_animator_st_start_trigger_el_off.unit"),d="none"!==a._ob_animator_st_start_trigger_el?a._ob_animator_st_start_trigger_el:"";"top_and_height"===d&&(d=`top+=${n.outerHeight()}`);var f=a._ob_animator_st_start_trigger_el_off;if("top_and_height"!==d){var v="none"===d?"":d;f<0?d=v+"-="+Math.abs(f)+h:f>0&&(d=v+"+="+Math.abs(f)+h)}var u=this.getElementSettings("_ob_animator_st_start_viewport_off.unit"),S="none"!==a._ob_animator_st_start_viewport?" "+a._ob_animator_st_start_viewport:"",E=a._ob_animator_st_start_viewport_off;E<0?S=S+"-="+Math.abs(E)+u:E>0&&(S=S+"+="+Math.abs(E)+u);var y=this.getElementSettings("_ob_animator_st_end_trigger_el_off.unit"),w="none"!==a._ob_animator_st_end_trigger_el?a._ob_animator_st_end_trigger_el:"",k=a._ob_animator_st_end_trigger_el_off;k<0?w=w+"-="+Math.abs(k)+y:k>0&&(w=w+"+="+Math.abs(k)+y);var $=this.getElementSettings("_ob_animator_st_end_viewport_off.unit"),T="none"!==a._ob_animator_st_end_viewport?" "+a._ob_animator_st_end_viewport:"",j=a._ob_animator_st_end_viewport_off;j<0?T=T+"-="+Math.abs(j)+$:j>0&&(T=T+"+="+Math.abs(j)+$);var M=a._ob_animator_st_ta_onenter+" "+a._ob_animator_st_ta_onleave+" "+a._ob_animator_st_ta_onenterback+" "+a._ob_animator_st_ta_onleaveback,A=a._ob_animator_easing;"yes"===a._ob_animator_st_scrub&&(A="none");var O=parseFloat(a._ob_animator_duration),C=parseFloat(a._ob_animator_delay),I=[],F=[],z=[];t.each(a.rptr,(function(t,e){if("none"!==e._ob_animator_property){var _=e._ob_animator_property,n=e["_ob_prop_"+_+"_from"],a=e["_ob_prop_"+_+"_to"],i="object"==typeof n?n.size:n,o="object"==typeof n?n.unit:"",s="object"==typeof a?a.size:a,r="object"==typeof a?a.unit:"";I.push({_prop:_,_val:i+o}),F.push({_prop:_,_val:s+r});var m=e._ob_prop_tr_origin;"none"!=m&&"scale"==_&&z.push({_prop:"transformOrigin",_val:m})}}));var H={},D={duration:O,ease:A,delay:C,stagger:{}},P={};if(t.each(I,(function(t,e){H[e._prop]=e._val})),t.each(F,(function(t,e){D[e._prop]=e._val})),t.each(z,(function(t,e){D[e._prop]=e._val})),e.gsap&&e.ScrollTrigger){let _=this.$element[0].dataset.id;this.isEdit&&t("div[class*='gsap-marker-']:contains('ST_"+_+"')").remove(),"yes"===a._ob_animator_el_animate_children&&(n=""),Object.keys(P).length&&e.gsap.set(n,P),this.gsap_instance=e.gsap.fromTo(n,H,D),this.st_instance_id="ST_"+_,this.st_instance=e.ScrollTrigger.create({id:this.st_instance_id,trigger:n,toggleActions:M,start:()=>d+S,end:w+T,scrub:g,pin:l,pinSpacing:b,anticipatePin:o,preventOverlaps:s,invalidateOnRefresh:r,immediateRender:m,markers:i,animation:this.gsap_instance}),""!==p&&"undefined"!==p&&(this.st_instance.vars.toggleClass=p),""!==c&&"undefined"!==c&&(this.st_instance.vars.endTrigger=c)}if(this.isEdit){var R=this;elementor.channels.editor.on("change:container",(function(t){t._parent.model.id===R.getID()&&e.dispatchEvent(new Event("resize"))}))}}});var r={container:_,widget:_};t.each(r,(function(t,e){elementorFrontend.hooks.addAction("frontend/element_ready/"+t,(function(t){elementorFrontend.elementsHandler.addHandler(e,{$element:t})}))}))}))}(jQuery,window);
assets/js/ohanimator.js ADDED
@@ -0,0 +1,296 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ function debounce(func, wait, immediate) {
8
+ var timeout;
9
+ return function() {
10
+ var context = this, args = arguments;
11
+ var later = function() {
12
+ timeout = null;
13
+ if (!immediate) func.apply(context, args);
14
+ };
15
+ var callNow = immediate && !timeout;
16
+ clearTimeout(timeout);
17
+ timeout = setTimeout(later, wait);
18
+ if (callNow) func.apply(context, args);
19
+ };
20
+ }
21
+
22
+ $window.on( 'elementor/frontend/init', function() {
23
+
24
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
25
+ Animator;
26
+
27
+ Animator = ModuleHandler.extend( {
28
+
29
+ gsap_instance: null,
30
+ st_instance: null,
31
+ st_instance_id: '',
32
+
33
+ onInit: function() {
34
+ ModuleHandler.prototype.onInit.apply( this, arguments );
35
+
36
+ if( this.isAnimatorObject() ) {
37
+ this.$element.addClass( 'ob-is-animated' );
38
+ this.run();
39
+ }
40
+
41
+ },
42
+
43
+ bindEvents: debounce( function() {
44
+ w.ScrollTrigger.refresh();
45
+ }, 500 ),
46
+
47
+ getDefaultElements: function() {
48
+ return {
49
+ $container: ( 'yes' === this.getElementSettings( '_ob_animator_el_is_sibling' ) ) ? this.$element.find( '.elementor-widget-container > *:first-child' ) : this.$element.find( '.elementor-widget-container' ),
50
+ };
51
+ },
52
+
53
+ isAnimatorObject: function() {
54
+ return ( this.getElementSettings( '_ob_animator' ) === 'yes' );
55
+ },
56
+
57
+ onElementChange: function( changedProp ) {
58
+ if( changedProp === '_ob_animator' ) {
59
+ if( 'yes' === this.getElementSettings( '_ob_animator' ) ) {
60
+ this.$element.addClass( 'ob-is-animated' );
61
+ } else if( '' === this.getElementSettings( '_ob_animator' ) ) {
62
+ this.$element.removeClass( 'ob-is-animated' );
63
+ this.removeSTInstance();
64
+ elementor.reloadPreview();
65
+ }
66
+ }
67
+ },
68
+
69
+ removeSTInstance: function() {
70
+ let this_ID = this.$element[ 0 ].dataset[ 'id' ];
71
+ $( "div[class*='gsap-marker-']:contains('ST_" + this_ID + "')" ).remove();
72
+ if( 'object' === typeof this.st_instance && null !== this.st_instance ) this.st_instance.kill();
73
+ },
74
+
75
+ run: function() {
76
+ if( this.isAnimatorObject() ) this.getAnimatorSettings();
77
+ },
78
+
79
+ getAnimatorSettings: function() {
80
+
81
+ var el_type = this.$element[ 0 ].dataset.element_type;
82
+ var myself = '';
83
+ var children = '';
84
+ var stagger_obj = {};
85
+ var el_settings = {};
86
+
87
+ el_settings._ob_animator_el_is_sibling = this.getElementSettings( '_ob_animator_el_is_sibling' );
88
+ el_settings._ob_animator_st_markers = this.getElementSettings( '_ob_animator_st_markers' );
89
+ el_settings._ob_animator_st_scrub = this.getElementSettings( '_ob_animator_st_scrub' );
90
+ el_settings._ob_animator_st_scrub_smooth = this.getElementSettings( '_ob_animator_st_scrub_smooth' );
91
+ el_settings._ob_animator_st_invalidate_on_refresh = this.getElementSettings( '_ob_animator_st_invalidate_on_refresh' );
92
+ el_settings._ob_animator_st_immediate_render = this.getElementSettings( '_ob_animator_st_immediate_render' );
93
+ el_settings._ob_animator_st_pin = this.getElementSettings( '_ob_animator_st_pin' );
94
+ el_settings._ob_animator_st_pin_spacing = this.getElementSettings( '_ob_animator_st_pin_spacing' );
95
+ el_settings._ob_animator_st_anticipate_pin = this.getElementSettings( '_ob_animator_st_anticipate_pin' );
96
+ el_settings._ob_animator_st_pin_prevent_overlaps = this.getElementSettings( '_ob_animator_st_pin_prevent_overlaps' );
97
+ el_settings._ob_animator_st_toggle_class = this.getElementSettings( '_ob_animator_st_toggle_class' );
98
+ el_settings._ob_animator_st_end_trigger_class = this.getElementSettings( '_ob_animator_st_end_trigger_class' );
99
+ el_settings._ob_animator_st_start_trigger_el = this.getElementSettings( '_ob_animator_st_start_trigger_el' ) || 'none';
100
+ el_settings._ob_animator_st_start_trigger_el_off = this.getElementSettings( '_ob_animator_st_start_trigger_el_off.top' ) || 0;
101
+ el_settings._ob_animator_st_start_viewport = this.getElementSettings( '_ob_animator_st_start_viewport' ) || 'none';
102
+ el_settings._ob_animator_st_start_viewport_off = this.getElementSettings( '_ob_animator_st_start_viewport_off.top' ) || 0;
103
+ el_settings._ob_animator_st_end_trigger_el = this.getElementSettings( '_ob_animator_st_end_trigger_el' ) || 'none';
104
+ el_settings._ob_animator_st_end_trigger_el_off = this.getElementSettings( '_ob_animator_st_end_trigger_el_off.bottom' ) || 0;
105
+ el_settings._ob_animator_st_end_viewport = this.getElementSettings( '_ob_animator_st_end_viewport' ) || 'none';
106
+ el_settings._ob_animator_st_end_viewport_off = this.getElementSettings( '_ob_animator_st_end_viewport_off.bottom' ) || 0;
107
+ el_settings._ob_animator_st_ta_onenter = this.getElementSettings( '_ob_animator_st_ta_onenter' ) || 'restart';
108
+ el_settings._ob_animator_st_ta_onleave = this.getElementSettings( '_ob_animator_st_ta_onleave' ) || 'non';
109
+ el_settings._ob_animator_st_ta_onenterback = this.getElementSettings( '_ob_animator_st_ta_onenterback' ) || 'none';
110
+ el_settings._ob_animator_st_ta_onleaveback = this.getElementSettings( '_ob_animator_st_ta_onleaveback' ) || 'reverse';
111
+ el_settings._ob_animator_easing = this.getElementSettings( '_ob_animator_easing' );
112
+ el_settings._ob_animator_duration = this.getElementSettings( '_ob_animator_duration' );
113
+ el_settings._ob_animator_delay = this.getElementSettings( '_ob_animator_delay' );
114
+ el_settings.rptr = this.getElementSettings( '_ob_animator_props_repeater' );
115
+
116
+ if( 'container' === el_type ) myself = this.$element;
117
+ else myself = this.elements.$container;
118
+
119
+ // markers
120
+ var show_markers = ( 'yes' === el_settings._ob_animator_st_markers ) ? true : false;
121
+ // anticipate pin
122
+ var anticipate_pin = ( 'yes' === el_settings._ob_animator_st_anticipate_pin ) ? true : false;
123
+ // prevent overlaps
124
+ var prevent_overlaps = ( 'yes' === el_settings._ob_animator_st_pin_prevent_overlaps ) ? true : false;
125
+ // invalidate on refresh
126
+ var invalidate_on_refresh = ( 'yes' === el_settings._ob_animator_st_invalidate_on_refresh ) ? true : false;
127
+ // immediate render
128
+ var immediate_render = ( 'yes' === el_settings._ob_animator_st_immediate_render ) ? true : false;
129
+ // scrub
130
+ var scrub_value = false;
131
+ if( 'yes' === el_settings._ob_animator_st_scrub ) {
132
+ scrub_value = true;
133
+ if( el_settings._ob_animator_st_scrub_smooth > 0 && '' !== el_settings._ob_animator_st_scrub_smooth ) scrub_value = el_settings._ob_animator_st_scrub_smooth;
134
+ }
135
+ // pin
136
+ var pin_el = false;
137
+ var pin_spacing = true;
138
+ if( 'yes' === el_settings._ob_animator_st_pin ) {
139
+ pin_el = true;
140
+ if( 'no' === el_settings._ob_animator_st_pin_spacing ) pin_spacing = false;
141
+ else if( 'margin' === el_settings._ob_animator_st_pin_spacing ) pin_spacing = 'margin';
142
+ }
143
+ // toggle class
144
+ var toggle_class = '';
145
+ if( 'undefined' !== el_settings._ob_animator_st_toggle_class ) toggle_class = $.escapeSelector( el_settings._ob_animator_st_toggle_class );
146
+ // endTrigger
147
+ var end_trigger = '';
148
+ if( 'undefined' !== el_settings._ob_animator_st_end_trigger_class ) end_trigger = $.escapeSelector( el_settings._ob_animator_st_end_trigger_class );
149
+
150
+ // ---- START & END ------
151
+ var start_trigger_el_off_unit = this.getElementSettings( '_ob_animator_st_start_trigger_el_off.unit' );
152
+ var start_element = ( 'none' !== el_settings._ob_animator_st_start_trigger_el ) ? el_settings._ob_animator_st_start_trigger_el : '';
153
+ if( 'top_and_height' === start_element ) start_element = 'top' + `+=${myself.outerHeight()}`;
154
+ var start_element_offset = el_settings._ob_animator_st_start_trigger_el_off;
155
+ if( 'top_and_height' !== start_element ) {
156
+ var start_val = ( 'none' === start_element ) ? '' : start_element;
157
+ if( start_element_offset < 0 ) start_element = start_val + '-=' + Math.abs( start_element_offset ) + start_trigger_el_off_unit;
158
+ else if( start_element_offset > 0 ) start_element = start_val + '+=' + Math.abs( start_element_offset ) + start_trigger_el_off_unit;
159
+ }
160
+ var start_viewport_off_unit = this.getElementSettings( '_ob_animator_st_start_viewport_off.unit' );
161
+ var start_viewprt = ( 'none' !== el_settings._ob_animator_st_start_viewport ) ? ' ' + el_settings._ob_animator_st_start_viewport : '';
162
+ var start_viewprt_offset = el_settings._ob_animator_st_start_viewport_off;
163
+ if( start_viewprt_offset < 0 ) start_viewprt = start_viewprt + '-=' + Math.abs( start_viewprt_offset ) + start_viewport_off_unit;
164
+ else if( start_viewprt_offset > 0 ) start_viewprt = start_viewprt + '+=' + Math.abs( start_viewprt_offset ) + start_viewport_off_unit;
165
+
166
+ var end_trigger_el_off_unit = this.getElementSettings( '_ob_animator_st_end_trigger_el_off.unit' );
167
+ var end_element = ( 'none' !== el_settings._ob_animator_st_end_trigger_el ) ? el_settings._ob_animator_st_end_trigger_el : '';
168
+ var end_element_offset = el_settings._ob_animator_st_end_trigger_el_off;
169
+ if( end_element_offset < 0 ) end_element = end_element + '-=' + Math.abs( end_element_offset ) + end_trigger_el_off_unit;
170
+ else if( end_element_offset > 0 ) end_element = end_element + '+=' + Math.abs( end_element_offset ) + end_trigger_el_off_unit;
171
+
172
+ var end_viewport_off_unit = this.getElementSettings( '_ob_animator_st_end_viewport_off.unit' );
173
+ var end_viewprt = ( 'none' !== el_settings._ob_animator_st_end_viewport ) ? ' ' + el_settings._ob_animator_st_end_viewport : '';
174
+ var end_viewprt_offset = el_settings._ob_animator_st_end_viewport_off;
175
+ if( end_viewprt_offset < 0 ) end_viewprt = end_viewprt + '-=' + Math.abs( end_viewprt_offset ) + end_viewport_off_unit;
176
+ else if( end_viewprt_offset > 0 ) end_viewprt = end_viewprt + '+=' + Math.abs( end_viewprt_offset ) + end_viewport_off_unit;
177
+ // ------------------------------------------------
178
+ // ---- TOGGLE ACTIONS ----------------------------
179
+ var toggle_actions =
180
+ el_settings._ob_animator_st_ta_onenter + ' '
181
+ + el_settings._ob_animator_st_ta_onleave + ' '
182
+ + el_settings._ob_animator_st_ta_onenterback + ' '
183
+ + el_settings._ob_animator_st_ta_onleaveback;
184
+ // ------------------------------------------------
185
+
186
+ // easing
187
+ var animation_easing = el_settings._ob_animator_easing;
188
+ if( 'yes' === el_settings._ob_animator_st_scrub ) animation_easing = 'none'; // none if use scrubbing
189
+ // duration
190
+ var animation_duration = parseFloat( el_settings._ob_animator_duration );
191
+ //delay
192
+ var animation_delay = parseFloat( el_settings._ob_animator_delay );
193
+
194
+ // let's animate
195
+ /*******/
196
+ var rptr_from = [];
197
+ var rptr_to = [];
198
+ var rptr_set = [];
199
+ $.each( el_settings.rptr, function( i, val ) {
200
+ if( 'none' === val._ob_animator_property ) return;
201
+ var prop = val._ob_animator_property;
202
+ var from_obj = val[ '_ob_prop_' + prop + '_from' ];
203
+ var to_obj = val[ '_ob_prop_' + prop + '_to' ];
204
+ var from_size = ( 'object' === typeof from_obj ) ? from_obj.size : from_obj;
205
+ var from_unit = ( 'object' === typeof from_obj ) ? from_obj.unit : '';
206
+ var to_size = ( 'object' === typeof to_obj ) ? to_obj.size : to_obj;
207
+ var to_unit = ( 'object' === typeof to_obj ) ? to_obj.unit : '';
208
+
209
+ rptr_from.push( { '_prop': prop, '_val': from_size + from_unit } );
210
+ rptr_to.push( { '_prop': prop, '_val': to_size + to_unit } );
211
+
212
+ // special cases
213
+ // ---------------------------------------------------------------------------------
214
+ var transform_origin = val[ '_ob_prop_tr_origin' ];
215
+ if( 'none' != transform_origin && 'scale' == prop ) rptr_set.push( { '_prop': 'transformOrigin', '_val': transform_origin } ); // NOTE: must include 'scale' === prop
216
+ } );
217
+
218
+ // format for GSAP
219
+ var gsap_from = {};
220
+ var gsap_to = { 'duration': animation_duration, 'ease': animation_easing, 'delay': animation_delay, 'stagger': stagger_obj };
221
+ var gsap_set = {};
222
+
223
+ $.each( rptr_from, function( i, val ) { gsap_from[ val._prop ] = val._val; } );
224
+ $.each( rptr_to, function( i, val ) { gsap_to[ val._prop ] = val._val; } );
225
+ $.each( rptr_set, function( i, val ) { gsap_to[ val._prop ] = val._val; } );
226
+ /***************************************************/
227
+
228
+ // run animation
229
+ if( w.gsap && w.ScrollTrigger ) {
230
+
231
+ // this element id
232
+ let this_ID = this.$element[ 0 ].dataset[ 'id' ];
233
+
234
+ if( this.isEdit ) $( "div[class*='gsap-marker-']:contains('ST_" + this_ID + "')" ).remove();
235
+
236
+ // if animate all
237
+ if( 'yes' === el_settings._ob_animator_el_animate_children ) myself = children;
238
+ // set
239
+ if( Object.keys( gsap_set ).length ) w.gsap.set( myself, gsap_set ); // SETS STATIC PROPERTIES
240
+ // from-to
241
+ this.gsap_instance = w.gsap.fromTo( myself, gsap_from, gsap_to );
242
+
243
+ this.st_instance_id = 'ST_' + this_ID;
244
+
245
+ this.st_instance = w.ScrollTrigger.create( {
246
+ id: this.st_instance_id,
247
+ trigger: myself,
248
+ toggleActions: toggle_actions,
249
+ start: () => start_element + start_viewprt,
250
+ end: end_element + end_viewprt,
251
+ scrub: scrub_value,
252
+ pin: pin_el,
253
+ pinSpacing: pin_spacing,
254
+ anticipatePin: anticipate_pin,
255
+ preventOverlaps: prevent_overlaps,
256
+ invalidateOnRefresh: invalidate_on_refresh,
257
+ immediateRender: immediate_render,
258
+ markers: show_markers,
259
+ animation: this.gsap_instance,
260
+ } );
261
+
262
+ // append conditioned vars
263
+ if( '' !== toggle_class && 'undefined' !== toggle_class ) this.st_instance.vars.toggleClass = toggle_class;
264
+ if( '' !== end_trigger && 'undefined' !== end_trigger ) this.st_instance.vars.endTrigger = end_trigger;
265
+
266
+ }
267
+
268
+ if( this.isEdit ) {
269
+ var TMP_this = this;
270
+ // the DOM hack to prevent all kinds of shit ...
271
+ elementor.channels.editor.on( 'change:container', function( el ) {
272
+ if( el._parent.model.id === TMP_this.getID() ) {
273
+ w.dispatchEvent( new Event( 'resize' ) );
274
+ }
275
+ } );
276
+ }
277
+
278
+ },
279
+
280
+ } );
281
+
282
+ var handlersList = {
283
+ 'container': Animator,
284
+ 'widget': Animator,
285
+ };
286
+
287
+ $.each( handlersList, function( widgetName, handlerClass ) {
288
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/' + widgetName, function( $scope ) {
289
+ elementorFrontend.elementsHandler.addHandler( handlerClass, { $element: $scope } );
290
+ } );
291
+ } );
292
+
293
+ } );
294
+
295
+
296
+ } ( jQuery, window ) );
assets/js/ooohboi-libs-locomotion.js CHANGED
@@ -1,12 +1,13 @@
1
  'use strict';
2
 
3
- ( function ( $, w, sfe_loco_scroll ) {
4
 
5
  var $window = $( w );
6
  var loco_multiplier = device_settings.scroll_multiplier; // validated via PHP
7
  var loco_scroll_tablet = parseInt( device_settings.allow_tablet );
8
  var loco_scroll_mobile = parseInt( device_settings.allow_mobile );
9
  var loco_allow_refresh = parseInt( device_settings.allow_refresh );
 
10
  var resize_timer;
11
 
12
  // fix the Firefox scroll lag
@@ -34,12 +35,14 @@
34
  }
35
  }
36
  // add required attributes
37
- for( var i = 0; i < target_node.childNodes.length; i ++ ) {
38
- if( ( $( target_node.childNodes[ i ] ).is( 'div' ) && $( target_node.childNodes[ i ] ).attr( 'data-elementor-type' ) )
39
- || $( target_node.childNodes[ i ] ).is( 'header' )
40
- || $( target_node.childNodes[ i ] ).is( 'main' )
41
- || $( target_node.childNodes[ i ] ).is( 'footer' ) ) {
42
- $( target_node.childNodes[ i ] ).attr( 'data-scroll-section', '' );
 
 
43
  }
44
  }
45
  // wrap everything inside BODY if default Elementor
1
  'use strict';
2
 
3
+ ( function ( $, w, sfe_loco_scroll ) {
4
 
5
  var $window = $( w );
6
  var loco_multiplier = device_settings.scroll_multiplier; // validated via PHP
7
  var loco_scroll_tablet = parseInt( device_settings.allow_tablet );
8
  var loco_scroll_mobile = parseInt( device_settings.allow_mobile );
9
  var loco_allow_refresh = parseInt( device_settings.allow_refresh );
10
+ var loco_remove_section_attribute = parseInt( device_settings.remove_section_attribute );
11
  var resize_timer;
12
 
13
  // fix the Firefox scroll lag
35
  }
36
  }
37
  // add required attributes
38
+ if( loco_remove_section_attribute < 1 ) {
39
+ for( var i = 0; i < target_node.childNodes.length; i ++ ) {
40
+ if( ( $( target_node.childNodes[ i ] ).is( 'div' ) && $( target_node.childNodes[ i ] ).attr( 'data-elementor-type' ) )
41
+ || $( target_node.childNodes[ i ] ).is( 'header' )
42
+ || $( target_node.childNodes[ i ] ).is( 'main' )
43
+ || $( target_node.childNodes[ i ] ).is( 'footer' ) ) {
44
+ $( target_node.childNodes[ i ] ).attr( 'data-scroll-section', '' );
45
+ }
46
  }
47
  }
48
  // wrap everything inside BODY if default Elementor
assets/js/ooohboi-steroids-min.js CHANGED
@@ -1 +1 @@
1
- "use strict";!function(e,t){var o=e(t);o.on("elementor/frontend/init",(function(){var t=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initPoopArtPerspektiveHA(),this.initHoverAnimator()},initPoopArtPerspektiveHA:function(){this.isEdit&&(this.$element.addClass("ob-has-background-overlay"),"yes"===this.getElementSettings("_ob_perspektive_use")&&this.$element.addClass("ob-use-perspektive"),"yes"===this.getElementSettings("_ob_widget_stalker_use")&&this.$element.addClass("ob-got-stalker"))},initHoverAnimator:function(){this.routeHoverAnimator()},onElementChange:function(e){"_ob_perspektive_use"===e&&("yes"===this.getElementSettings("_ob_perspektive_use")?this.$element.addClass("ob-use-perspektive"):this.$element.removeClass("ob-use-perspektive")),"_ob_allow_hoveranimator"===e&&this.routeHoverAnimator(),-1!==["_ob_hoveranimator_opacity_hover","_ob_hoveranimator_y_hover","_ob_hoveranimator_y_hover_alt","_ob_hoveranimator_x_hover","_ob_hoveranimator_x_hover_alt","_ob_hoveranimator_rot_hover","_ob_hoveranimator_scalex_hover","_ob_hoveranimator_scaley_hover","_ob_hoveranimator_blur_hover"].indexOf(e)&&this.isHoverAnimator()&&this.doHoverAnimator(),"_ob_widget_stalker_use"===e&&this.routeWidgetStalkerWidget()},isWidgetStalkerWidget:function(){return this.$element.hasClass("ob-got-stalker")},routeWidgetStalkerWidget:function(){this.isWidgetStalkerWidget()||"yes"!==this.getElementSettings("_ob_widget_stalker_use")?this.$element.removeClass("ob-got-stalker"):this.$element.addClass("ob-got-stalker")},isPerspektive:function(){return this.$element.hasClass("ob-use-perspektive")},isHoverAnimator:function(){return this.$element.hasClass("ob-is-hoveranimal")},routeHoverAnimator:function(){this.isEdit?(this.isHoverAnimator()||"yes"!==this.getElementSettings("_ob_allow_hoveranimator")||(this.$element.addClass("ob-is-hoveranimal"),this.doHoverAnimator()),this.isHoverAnimator()&&"yes"!==this.getElementSettings("_ob_allow_hoveranimator")&&(this.$element.removeClass("ob-is-hoveranimal"),this.stopHoverAnimator())):!this.isEdit&&this.isHoverAnimator()&&this.doHoverAnimator()},doHoverAnimator:function(){var t=this.$element,o=t.parent().closest(".ob-is-hoveranimator");if(o.length){var s,i,n,r,l,a,d,h,m,_,p,b,c=o.data("id");this.isEdit?(s=this.getElementSettings("_ob_hoveranimator_opacity_hover"),i=this.getElementSettings("_ob_hoveranimator_y_hover"),n=this.getElementSettings("_ob_hoveranimator_y_hover_alt"),r=this.getElementSettings("_ob_hoveranimator_x_hover"),l=this.getElementSettings("_ob_hoveranimator_x_hover_alt"),a=this.getElementSettings("_ob_hoveranimator_rot_hover"),h=this.getElementSettings("_ob_hoveranimator_scalex_hover"),d=this.getElementSettings("_ob_hoveranimator_scaley_hover"),m=this.getElementSettings("_ob_hoveranimator_blur_hover")):this.isEdit||(s=(_=e.parseJSON(t.attr("data-settings")))._ob_hoveranimator_opacity_hover,i=_._ob_hoveranimator_y_hover,n=_._ob_hoveranimator_y_hover_alt,r=_._ob_hoveranimator_x_hover,l=_._ob_hoveranimator_x_hover_alt,a=_._ob_hoveranimator_rot_hover,h=_._ob_hoveranimator_scalex_hover,d=_._ob_hoveranimator_scaley_hover,m=_._ob_hoveranimator_blur_hover),b=""!=e.trim(l)&&void 0!==l?"calc("+l+")":r.size+r.unit,p=""!=e.trim(n)&&void 0!==n?"calc("+n+")":i.size+i.unit;var u={opacity:s.size,top:p,left:b,transform:"rotate("+a.size+"deg) scaleX("+h.size+") scaleY("+d.size+")",filter:"blur("+m.size+m.unit+")"};o.on("mouseenter."+c,(function(){t.css(u)})),o.on("mouseleave."+c,(function(){t.removeAttr("style")}))}},stopHoverAnimator:function(){var e=this.$element,t=this.$element.parent().closest(".ob-is-hoveranimator");if(t.length){var o=t.data("id"),s={opacity:"",top:"",left:"",transform:"",filter:""};t.on("mouseenter."+o,(function(){e.css(s)})),t.on("mouseleave."+o,(function(){e.removeAttr("style")}))}}}),i=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initHarakiri()},initHarakiri:function(){this.isEdit&&"inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")&&this.$element.addClass("ob-harakiri")},onElementChange:function(e){"_ob_harakiri_writing_mode"===e&&("inherit"!==this.getElementSettings("_ob_harakiri_writing_mode")?this.$element.addClass("ob-harakiri"):this.$element.removeClass("ob-harakiri"))}}),n={widget:t,"heading.default":i,"text-editor.default":i,section:elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSectionExtends()},isBreakingBad:function(){return this.$element.hasClass("ob-is-breaking-bad")},isGlider:function(){return this.$element.hasClass("ob-is-glider")},isInnerSection:function(){return this.$element.hasClass("elementor-inner-section")},onElementChange:function(e){"_ob_bbad_use_it"===e&&("yes"===this.getElementSettings("_ob_bbad_use_it")?(this.$element.addClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.addClass("ob-bb-inner")):(this.$element.removeClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.removeClass("ob-bb-inner"))),"_ob_glider_is_slider"===e&&("yes"===this.getElementSettings("_ob_glider_is_slider")?(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements()):"yes"!=this.getElementSettings("_ob_glider_is_slider")&&(this.$element.removeClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"removeClass"))),"_ob_bbad_sssic_use"===e&&this.isInnerSection()&&("yes"===this.getElementSettings("_ob_bbad_sssic_use")?this.$element.addClass("ob-is-sticky-inner-section"):this.$element.removeClass("ob-is-sticky-inner-section"))},addClassesRouteGlider:function(t,o){var s=e(t).children(".elementor-container").first();s.length&&s.addClass("swiper-container");var i=e(s).children(".elementor-row").first();i.length&&"addClass"==o?(i.addClass("swiper-wrapper"),e(i).children("div.elementor-column").addClass("swiper-slide")):i.length||"addClass"!=o||(e(s).children("div.elementor-column").wrapAll('<div class="swiper-wrapper" />'),e(s).children(".swiper-wrapper").first().children("div.elementor-column").addClass("swiper-slide")),i.length&&"removeClass"==o?(s.removeClass("swiper-container"),i.removeClass("swiper-wrapper"),e(i).children("div.elementor-column").removeClass("swiper-slide")):i.length||"removeClass"!=o||(s.removeClass("swiper-container"),e(s).children("div.swiper-wrapper").unwrap(),e(s).children("div.elementor-column").removeClass("swiper-slide"))},initSectionExtends:function(){if(this.isEdit?("yes"!==this.getElementSettings("_ob_bbad_use_it")||this.isBreakingBad()||(this.$element.addClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.addClass("ob-bb-inner")),"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements())):"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements()),"yes"===this.getElementSettings("_ob_bbad_sssic_use")&&this.isInnerSection()){this.isEdit&&this.$element.addClass("ob-is-sticky-inner-section");var e=this.$element.closest(".elementor-widget-wrap");e.length&&e.addClass("ob-sssic-wrapper")}},initSwiperElements:function(){this.$element.children(".elementor-container").find(".swiper-button-next").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>'),this.$element.children(".elementor-container").find(".swiper-button-prev").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>'),this.$element.children(".elementor-container").find(".swiper-pagination").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-pagination"></div>');var e={};e.pagination_type=this.getElementSettings("_ob_glider_pagination_type"),e.allowTouchMove=this.getElementSettings("_ob_glider_allow_touch_move"),e.autoheight=this.getElementSettings("_ob_glider_auto_h"),e.effect=this.getElementSettings("_ob_glider_effect"),e.loop=this.getElementSettings("_ob_glider_loop"),e.direction=this.getElementSettings("_ob_glider_direction"),e.parallax=this.getElementSettings("_ob_glider_parallax"),e.speed=this.getElementSettings("_ob_glider_speed");var t=this.getElementSettings("_ob_glider_autoplay");e.autoplay=!!t&&{delay:this.getElementSettings("_ob_glider_autoplay_delay")},e.allowMultiSlides=this.getElementSettings("_ob_glider_allow_multi_slides");var o={},i=elementorFrontend.config.breakpoints;o[i.lg]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll"),spaceBetween:+this.getElementSettings("_ob_glider_space_between")||0},o[i.md]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_tablet"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_tablet"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_tablet")||0},o[0]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_mobile"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_mobile"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_mobile")||0},e.breakpoints=o,s(this.$element.attr("data-id"),e,"glider_"+this.$element.attr("data-id"))}}),column:elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$element.find(".elementor-column-wrap").first().length||this.$element.addClass("ob-is-e3");var e=navigator.userAgent.toLowerCase();e.indexOf("chrome")>-1&&this.teleporterChromeResize(),this.initColumnExtends()},teleporterChromeResize:function(){if(this.isTeleporter()){var e=this,t=this.$element.attr("data-id");o.on("resize",(function(){e.$element.closest(".ob-is-teleporter").addClass("ob-chrome-resize"),clearTimeout(t),t=setTimeout((function(){var t=parseInt(e.$element.closest(".ob-is-teleporter").css("height")),o=e.$element.find(".elementor-column-wrap").first();o.length?o.css({height:t}):e.$element.find(".elementor-widget-wrap").first().css({height:t}),e.$element.closest(".ob-is-teleporter").removeClass("ob-chrome-resize")}),500)})),o.trigger("resize")}},isTeleporter:function(){return this.$element.hasClass("ob-is-teleporter")},isHoverAnimatorCol:function(){return this.$element.hasClass("ob-is-hoveranimator")},isWidgetStalkerCol:function(){return this.$element.hasClass("ob-is-stalker")},isPseudoCol:function(){return this.$element.hasClass("ob-is-pseudo")},initColumnExtends:function(){if(!this.isEdit){var e={};try{e=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if(void 0!==e._ob_bbad_link){var t=e._ob_bbad_link;if(""===t.url)return void this.$element.removeClass("bb-column-link");this.$element.addClass("bb-column-link"),this.$element.off("click.bb"),this.$element.on("click.bb",(function(){t.is_external?window.open(t.url):location.href=t.url}))}}this.isEdit&&"use-teleporter"===this.getElementSettings("_ob_teleporter_use")&&(this.$element.addClass("ob-is-teleporter"),this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporterEditor()),!this.isEdit&&this.isTeleporter()&&(this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporter()),this.isEdit&&"yes"===this.getElementSettings("_ob_column_hoveranimator")&&this.$element.addClass("ob-is-hoveranimator"),this.isEdit&&"yes"===this.getElementSettings("_ob_bbad_is_stalker")&&this.$element.addClass("ob-is-stalker"),this.isEdit&&"yes"===this.getElementSettings("_ob_column_has_pseudo")&&this.$element.addClass("ob-is-pseudo")},onElementChange:function(e){"_ob_teleporter_overlay_color"===e?this.$element.find('div[class*="ob-teleporter-"] > .ob-tele-overlay').css("background-color",this.getElementSettings("_ob_teleporter_overlay_color")):"_ob_teleporter_no_pass_tablet"===e?"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")?this.$element.addClass("ob-tele-no-tablet"):this.$element.removeClass("ob-tele-no-tablet"):"_ob_teleporter_no_pass_mobile"===e&&("no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")?this.$element.addClass("ob-tele-no-mobile"):this.$element.removeClass("ob-tele-no-mobile")),"_ob_column_hoveranimator"===e&&this.routeHoverAnimatorCol(),"_ob_bbad_is_stalker"===e&&this.routeWidgetStalkerCol(),"_ob_column_has_pseudo"===e&&this.routePseudoCol()},routeHoverAnimatorCol:function(){this.isHoverAnimatorCol()||"yes"!==this.getElementSettings("_ob_column_hoveranimator")?this.$element.removeClass("ob-is-hoveranimator"):this.$element.addClass("ob-is-hoveranimator")},routeWidgetStalkerCol:function(){this.isWidgetStalkerCol()||"yes"!==this.getElementSettings("_ob_bbad_is_stalker")?this.$element.removeClass("ob-is-stalker"):this.$element.addClass("ob-is-stalker")},routePseudoCol:function(){this.isPseudoCol()||"yes"!==this.getElementSettings("_ob_column_has_pseudo")?this.$element.removeClass("ob-is-pseudo"):this.$element.addClass("ob-is-pseudo")},doTeleporterEditor:function(){if("use-teleporter"===this.getElementSettings("_ob_teleporter_use")){var t=this.$element.find(".elementor-widget-wrap").first();if(t.length&&(t.wrapInner('<div class="widget-wrap-children" />'),t.find(".elementor-background-overlay").first().length&&t.find(".elementor-background-overlay").first().insertBefore(t.find(".elementor-background-overlay").first().parent())),"do-pass"===this.getElementSettings("_ob_teleporter_pass")){var o=this,s=this.$element,i=this.$element.attr("data-id");"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")&&this.$element.addClass("ob-tele-no-mobile");var n="section"===this.getElementSettings("_ob_teleporter_pass_element")?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(n.length){n.css("overflow","hidden");var r=this.getElementSettings("_ob_teleporter_pass_effect"),l='<div class="ob-teleporter-'+i+" ob-tele-eff-"+r+'" data-id-teleporter="'+i+'"><div class="ob-tele-overlay" style="background-color: '+this.getElementSettings("_ob_teleporter_overlay_color")+';"></div></div>';e(".ob-teleporter-"+i).length||this.$element.prepend(l),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter mouseleave",(function(t){if("mouseenter"===t.type){if("no-tablet"===o.getElementSettings("_ob_teleporter_no_pass_tablet")&&"tablet"===elementorFrontend.getCurrentDeviceMode())return;if("no-mobile"===o.getElementSettings("_ob_teleporter_no_pass_mobile")&&"mobile"===elementorFrontend.getCurrentDeviceMode())return;if("do-pass"!==o.getElementSettings("_ob_teleporter_pass"))return;var r={"background-color":e(".ob-teleporter-"+i).css("background-color"),"background-image":e(".ob-teleporter-"+i).css("background-image"),"background-position":e(".ob-teleporter-"+i).css("background-position"),"background-size":e(".ob-teleporter-"+i).css("background-size"),"background-repeat":e(".ob-teleporter-"+i).css("background-repeat")};if("section"===o.getElementSettings("_ob_teleporter_pass_element")){var l=n.children().not(".elementor-container").detach();n.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+i)),n.prepend(l)}else n.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+i));e(".ob-teleporter-"+i).css(r).hide(),e(".ob-teleporter-"+i).addClass("ob-teleporter-hover").show()}else n.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+i).removeAttr("style").removeClass("ob-teleporter-hover"),s.prepend(e(".ob-teleporter-"+i))}),100)}))}}}},doTeleporter:function(){var t={};try{t=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if("use-teleporter"===t._ob_teleporter_use){var o=this.$element.find(".elementor-widget-wrap").first();o.length&&(o.wrapInner('<div class="widget-wrap-children" />'),o.find(".elementor-background-overlay").first().length&&o.find(".elementor-background-overlay").first().insertBefore(o.find(".elementor-background-overlay").first().parent()));var s=this.$element,i=this.$element.attr("data-id");if("no-tablet"===t._ob_teleporter_no_pass_tablet&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===t._ob_teleporter_no_pass_mobile&&this.$element.addClass("ob-tele-no-mobile"),void 0!==t._ob_teleporter_link){var n=t._ob_teleporter_link;if(""===n.url)return;this.$element.off("click.obTeleporter"),this.$element.on("click.obTeleporter",(function(){n.is_external?window.open(n.url):location.href=n.url}))}if("do-pass"===t._ob_teleporter_pass){var r="section"===t._ob_teleporter_pass_element?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(r.length){r.css("overflow","hidden");var l=t._ob_teleporter_pass_effect,a='<div class="ob-teleporter-'+i+" ob-tele-eff-"+l+'" data-id-teleporter="'+i+'"><div class="ob-tele-overlay" style="background-color: '+t._ob_teleporter_overlay_color+';"></div>';e(".ob-teleporter-"+i).length||this.$element.prepend(a),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter",(function(){if(!("no-tablet"===t._ob_teleporter_no_pass_tablet&&"tablet"===elementorFrontend.getCurrentDeviceMode()||"no-mobile"===t._ob_teleporter_no_pass_mobile&&"mobile"===elementorFrontend.getCurrentDeviceMode())){var o={"background-color":e(".ob-teleporter-"+i).css("background-color"),"background-image":e(".ob-teleporter-"+i).css("background-image"),"background-position":e(".ob-teleporter-"+i).css("background-position"),"background-size":e(".ob-teleporter-"+i).css("background-size"),"background-repeat":e(".ob-teleporter-"+i).css("background-repeat")};if("section"===t._ob_teleporter_pass_element){var s=r.children().not(".elementor-container").detach();r.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+i)),r.prepend(s)}else r.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+i));e(".ob-teleporter-"+i).css(o).hide(),e(".ob-teleporter-"+i).show().addClass("ob-teleporter-hover")}})),this.$element.on("mouseleave",(function(){r.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+i).removeAttr("style").removeClass("ob-teleporter-hover"),s.prepend(e(".ob-teleporter-"+i))}),100)}))}}}}}),"search-form.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSearchCop()},onElementChange:function(e){"_ob_searchcop_srch_options"===e&&this.routeSearchCop()},initSearchCop:function(){this.routeSearchCop()},routeSearchCop:function(){var e=this.getElementSettings("_ob_searchcop_srch_options");if("post"===e||"page"===e){var t=this.$element.find(".elementor-search-form__container");if(!t.length)return;var o='<input type="hidden" name="post_type" value="'+e+'" />';t.prepend(o)}}}),"button.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initButterButton()},isButterButton:function(){return this.$element.hasClass("ob-is-butterbutton")},onElementChange:function(e){"_ob_butterbutton_use_it"===e&&this.routeButterButton()},initButterButton:function(){this.isEdit&&"yes"===this.getElementSettings("_ob_butterbutton_use_it")&&this.$element.addClass("ob-is-butterbutton")},routeButterButton:function(){this.isButterButton()||"yes"!==this.getElementSettings("_ob_butterbutton_use_it")?this.$element.removeClass("ob-is-butterbutton"):this.$element.addClass("ob-is-butterbutton")}}),"image.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initPhotoMorph()},isPhotoMorph:function(){return this.$element.hasClass("ob-photomorph")},onElementChange:function(e){"_ob_photomorph_use"===e&&this.routePhotoMorph()},initPhotoMorph:function(){this.isEdit&&"yes"===this.getElementSettings("_ob_photomorph_use")&&this.$element.addClass("ob-photomorph")},routePhotoMorph:function(){this.isPhotoMorph()||"yes"!==this.getElementSettings("_ob_photomorph_use")?this.$element.removeClass("ob-photomorph"):this.$element.addClass("ob-photomorph")}}),"post-comments.theme_comments":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initCommentz()},isCommentz:function(){return this.$element.hasClass("ob-commentz")},onElementChange:function(e){"_ob_commentz_use"===e&&this.routeCommentz()},initCommentz:function(){this.isEdit&&"yes"===this.getElementSettings("_ob_commentz_use")&&this.$element.addClass("ob-commentz")},routeCommentz:function(){this.isCommentz()||"yes"!==this.getElementSettings("_ob_commentz_use")?this.$element.removeClass("ob-commentz"):this.$element.addClass("ob-commentz")}}),"spacer.default":elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSpaceRat()},isSpaceRat:function(){return this.$element.hasClass("ob-spacerat")},onElementChange:function(e){"_ob_spacerat_use"===e&&this.routeSpaceRat()},initSpaceRat:function(){if(this.isEdit&&"yes"===this.getElementSettings("_ob_spacerat_use")&&this.$element.addClass("ob-spacerat"),!this.isEdit&&"yes"===this.getElementSettings("_ob_spacerat_use")){var e={};try{e=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if(void 0!==e._ob_spacerat_link){var t=e._ob_spacerat_link;if(""===t.url)return;this.$element.off("click.obSpacerat"),this.$element.on("click.obSpacerat",(function(){t.is_external?window.open(t.url):location.href=t.url}))}}},routeSpaceRat:function(){this.isSpaceRat()||"yes"!==this.getElementSettings("_ob_spacerat_use")?this.$element.removeClass("ob-spacerat"):this.$element.addClass("ob-spacerat")}})};e.each(n,(function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}))}));var s=function(t,o){var s,i=e(".elementor-element-"+t),n=e(".elementor-element-"+t+" .swiper-container").first(),r=n.parent().parent().find("nav.glider-controller"),l={allowTouchMove:"yes"===o.allowTouchMove,autoHeight:"yes"===o.autoheight,effect:o.effect,loop:o.loop,direction:"fade"===o.effect?"horizontal":o.direction,parallax:"yes"===o.parallax,speed:o.speed,breakpoints:"yes"===o.allowMultiSlides&&o.breakpoints,navigation:{nextEl:".elementor-element-"+t+" .swiper-button-next",prevEl:".elementor-element-"+t+" .swiper-button-prev"},pagination:{el:".elementor-element-"+t+" .swiper-pagination",type:o.pagination_type,clickable:!0},autoplay:o.autoplay,watchOverflow:!0};if("undefined"==typeof Swiper){new(0,elementorFrontend.utils.swiper)(n,l).then((e=>{s=e}))}else s=new Swiper(n,l);n.find('[class*="glider-control"]').on("click",(function(t){if(void 0!==e(this).data("gotoslide"))s.slideTo(parseInt(e(this).data("gotoslide")));else{var o=parseInt(e(this).attr("class").match(/glider-control-(\d+)/)[1]);o>0&&s.slideTo(o)}t.preventDefault()})),r.find('[class*="glider-control"]').on("click",(function(t){if(void 0!==e(this).data("gotoslide"))s.slideTo(parseInt(e(this).data("gotoslide")));else{var o=parseInt(e(this).attr("class").match(/glider-control-(\d+)/)[1]);o>0&&s.slideTo(o)}t.preventDefault()})),i.css("visibility","visible")}}(jQuery,window);
1
+ "use strict";!function(e,t){var s=e(t);s.on("elementor/frontend/init",(function(){var t=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.initSectionExtends()},isBreakingBad:function(){return this.$element.hasClass("ob-is-breaking-bad")},isGlider:function(){return this.$element.hasClass("ob-is-glider")},isInnerSection:function(){return this.$element.hasClass("elementor-inner-section")},onElementChange:function(e){"_ob_bbad_use_it"===e&&("yes"===this.getElementSettings("_ob_bbad_use_it")?(this.$element.addClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.addClass("ob-bb-inner")):(this.$element.removeClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.removeClass("ob-bb-inner"))),"_ob_glider_is_slider"===e&&("yes"===this.getElementSettings("_ob_glider_is_slider")?(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements()):"yes"!=this.getElementSettings("_ob_glider_is_slider")&&(this.$element.removeClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"removeClass"))),"_ob_bbad_sssic_use"===e&&this.isInnerSection()&&("yes"===this.getElementSettings("_ob_bbad_sssic_use")?this.$element.addClass("ob-is-sticky-inner-section"):this.$element.removeClass("ob-is-sticky-inner-section"))},addClassesRouteGlider:function(t,s){var i=e(t).children(".elementor-container").first();i.length&&i.addClass("swiper-container");var o=e(i).children(".elementor-row").first();o.length&&"addClass"==s?(o.addClass("swiper-wrapper"),e(o).children("div.elementor-column").addClass("swiper-slide")):o.length||"addClass"!=s||(e(i).children("div.elementor-column").wrapAll('<div class="swiper-wrapper" />'),e(i).children(".swiper-wrapper").first().children("div.elementor-column").addClass("swiper-slide")),o.length&&"removeClass"==s?(i.removeClass("swiper-container"),o.removeClass("swiper-wrapper"),e(o).children("div.elementor-column").removeClass("swiper-slide")):o.length||"removeClass"!=s||(i.removeClass("swiper-container"),e(i).children("div.swiper-wrapper").unwrap(),e(i).children("div.elementor-column").removeClass("swiper-slide"))},initSectionExtends:function(){if(this.isEdit?("yes"!==this.getElementSettings("_ob_bbad_use_it")||this.isBreakingBad()||(this.$element.addClass("ob-is-breaking-bad"),this.isInnerSection()&&this.$element.addClass("ob-bb-inner")),"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements())):"yes"===this.getElementSettings("_ob_glider_is_slider")&&(this.$element.addClass("ob-is-glider"),this.addClassesRouteGlider(".elementor-element-"+this.$element.attr("data-id"),"addClass"),this.initSwiperElements()),"yes"===this.getElementSettings("_ob_bbad_sssic_use")&&this.isInnerSection()){this.isEdit&&this.$element.addClass("ob-is-sticky-inner-section");var e=this.$element.closest(".elementor-widget-wrap");e.length&&e.addClass("ob-sssic-wrapper")}},initSwiperElements:function(){this.$element.children(".elementor-container").find(".swiper-button-next").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-next"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M27 22L5 44l-2.1-2.1L22.8 22 2.9 2.1 5 0l22 22z"></path></svg></div>'),this.$element.children(".elementor-container").find(".swiper-button-prev").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-button-prev"><svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMin" viewBox="0 0 27 44"><path d="M0 22L22 0l2.1 2.1L4.2 22l19.9 19.9L22 44 0 22z"></path></svg></div>'),this.$element.children(".elementor-container").find(".swiper-pagination").first().length||this.$element.children(".elementor-container").first().append('<div class="swiper-pagination"></div>');var e={};e.pagination_type=this.getElementSettings("_ob_glider_pagination_type"),e.allowTouchMove=this.getElementSettings("_ob_glider_allow_touch_move"),e.autoheight=this.getElementSettings("_ob_glider_auto_h"),e.effect=this.getElementSettings("_ob_glider_effect"),e.loop=this.getElementSettings("_ob_glider_loop"),e.direction=this.getElementSettings("_ob_glider_direction"),e.parallax=this.getElementSettings("_ob_glider_parallax"),e.speed=this.getElementSettings("_ob_glider_speed");var t=this.getElementSettings("_ob_glider_autoplay");e.autoplay=!!t&&{delay:this.getElementSettings("_ob_glider_autoplay_delay")},e.mousewheel=this.getElementSettings("_ob_glider_allow_mousewheel"),e.allowMultiSlides=this.getElementSettings("_ob_glider_allow_multi_slides");var s={},o=elementorFrontend.config.breakpoints;s[o.lg]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll"),spaceBetween:+this.getElementSettings("_ob_glider_space_between")||0},s[o.md]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_tablet"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_tablet"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_tablet")||0},s[0]={slidesPerView:this.getElementSettings("_ob_glider_slides_per_view_mobile"),slidesPerGroup:this.getElementSettings("_ob_glider_slides_to_scroll_mobile"),spaceBetween:+this.getElementSettings("_ob_glider_space_between_mobile")||0},e.breakpoints=s,e.slides_centered=this.getElementSettings("_ob_glider_centered_slides"),e.slides_centered_bounds=this.getElementSettings("_ob_glider_centered_bounds_slides"),e.slides_round_lenghts=this.getElementSettings("_ob_glider_roundlengths_slides"),i(this.$element.attr("data-id"),e,"glider_"+this.$element.attr("data-id"))}}),o=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$element.find(".elementor-column-wrap").first().length||this.$element.addClass("ob-is-e3");var e=navigator.userAgent.toLowerCase();e.indexOf("chrome")>-1&&this.teleporterChromeResize(),this.initColumnExtends()},teleporterChromeResize:function(){if(this.isTeleporter()){var e=this,t=this.$element.attr("data-id");s.on("resize",(function(){e.$element.closest(".ob-is-teleporter").addClass("ob-chrome-resize"),clearTimeout(t),t=setTimeout((function(){var t=parseInt(e.$element.closest(".ob-is-teleporter").css("height")),s=e.$element.find(".elementor-column-wrap").first();s.length?s.css({height:t}):e.$element.find(".elementor-widget-wrap").first().css({height:t}),e.$element.closest(".ob-is-teleporter").removeClass("ob-chrome-resize")}),500)})),s.trigger("resize")}},isTeleporter:function(){return this.$element.hasClass("ob-is-teleporter")},isWidgetStalkerCol:function(){return this.$element.hasClass("ob-is-stalker")},initColumnExtends:function(){if(!this.isEdit){var e={};try{e=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if(void 0!==e._ob_bbad_link){var t=e._ob_bbad_link;if(""===t.url)return void this.$element.removeClass("bb-column-link");this.$element.addClass("bb-column-link"),this.$element.off("click.bb"),this.$element.on("click.bb",(function(){t.is_external?window.open(t.url):location.href=t.url}))}}this.isEdit&&"use-teleporter"===this.getElementSettings("_ob_teleporter_use")&&(this.$element.addClass("ob-is-teleporter"),this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporterEditor()),!this.isEdit&&this.isTeleporter()&&(this.$element.find(".elementor-widget-wrap").first().addClass("ob-tele-midget"),this.doTeleporter()),this.isEdit&&"yes"===this.getElementSettings("_ob_bbad_is_stalker")&&this.$element.addClass("ob-is-stalker")},onElementChange:function(e){"_ob_teleporter_overlay_color"===e?this.$element.find('div[class*="ob-teleporter-"] > .ob-tele-overlay').css("background-color",this.getElementSettings("_ob_teleporter_overlay_color")):"_ob_teleporter_no_pass_tablet"===e?"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")?this.$element.addClass("ob-tele-no-tablet"):this.$element.removeClass("ob-tele-no-tablet"):"_ob_teleporter_no_pass_mobile"===e&&("no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")?this.$element.addClass("ob-tele-no-mobile"):this.$element.removeClass("ob-tele-no-mobile")),"_ob_bbad_is_stalker"===e&&this.routeWidgetStalkerCol()},routeWidgetStalkerCol:function(){this.isWidgetStalkerCol()||"yes"!==this.getElementSettings("_ob_bbad_is_stalker")?this.$element.removeClass("ob-is-stalker"):this.$element.addClass("ob-is-stalker")},doTeleporterEditor:function(){if("use-teleporter"===this.getElementSettings("_ob_teleporter_use")){var t=this.$element.find(".elementor-widget-wrap").first();if(t.length&&(t.wrapInner('<div class="widget-wrap-children" />'),t.find(".elementor-background-overlay").first().length&&t.find(".elementor-background-overlay").first().insertBefore(t.find(".elementor-background-overlay").first().parent())),"do-pass"===this.getElementSettings("_ob_teleporter_pass")){var s=this,i=this.$element,o=this.$element.attr("data-id");"no-tablet"===this.getElementSettings("_ob_teleporter_no_pass_tablet")&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===this.getElementSettings("_ob_teleporter_no_pass_mobile")&&this.$element.addClass("ob-tele-no-mobile");var n="section"===this.getElementSettings("_ob_teleporter_pass_element")?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(n.length){n.css("overflow","hidden");var l=this.getElementSettings("_ob_teleporter_pass_effect"),r='<div class="ob-teleporter-'+o+" ob-tele-eff-"+l+'" data-id-teleporter="'+o+'"><div class="ob-tele-overlay" style="background-color: '+this.getElementSettings("_ob_teleporter_overlay_color")+';"></div></div>';e(".ob-teleporter-"+o).length||this.$element.prepend(r),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter mouseleave",(function(t){if("mouseenter"===t.type){if("no-tablet"===s.getElementSettings("_ob_teleporter_no_pass_tablet")&&"tablet"===elementorFrontend.getCurrentDeviceMode())return;if("no-mobile"===s.getElementSettings("_ob_teleporter_no_pass_mobile")&&"mobile"===elementorFrontend.getCurrentDeviceMode())return;if("do-pass"!==s.getElementSettings("_ob_teleporter_pass"))return;var l={"background-color":e(".ob-teleporter-"+o).css("background-color"),"background-image":e(".ob-teleporter-"+o).css("background-image"),"background-position":e(".ob-teleporter-"+o).css("background-position"),"background-size":e(".ob-teleporter-"+o).css("background-size"),"background-repeat":e(".ob-teleporter-"+o).css("background-repeat")};if("section"===s.getElementSettings("_ob_teleporter_pass_element")){var r=n.children().not(".elementor-container").detach();n.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+o)),n.prepend(r)}else n.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+o));e(".ob-teleporter-"+o).css(l).hide(),e(".ob-teleporter-"+o).addClass("ob-teleporter-hover").show()}else n.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+o).removeAttr("style").removeClass("ob-teleporter-hover"),i.prepend(e(".ob-teleporter-"+o))}),100)}))}}}},doTeleporter:function(){var t={};try{t=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if("use-teleporter"===t._ob_teleporter_use){var s=this.$element.find(".elementor-widget-wrap").first();s.length&&(s.wrapInner('<div class="widget-wrap-children" />'),s.find(".elementor-background-overlay").first().length&&s.find(".elementor-background-overlay").first().insertBefore(s.find(".elementor-background-overlay").first().parent()));var i=this.$element,o=this.$element.attr("data-id");if("no-tablet"===t._ob_teleporter_no_pass_tablet&&this.$element.addClass("ob-tele-no-tablet"),"no-mobile"===t._ob_teleporter_no_pass_mobile&&this.$element.addClass("ob-tele-no-mobile"),void 0!==t._ob_teleporter_link){var n=t._ob_teleporter_link;if(""===n.url)return;this.$element.off("click.obTeleporter"),this.$element.on("click.obTeleporter",(function(){n.is_external?window.open(n.url):location.href=n.url}))}if("do-pass"===t._ob_teleporter_pass){var l="section"===t._ob_teleporter_pass_element?this.$element.closest(".elementor-section"):this.$element.closest(".elementor-container");if(l.length){l.css("overflow","hidden");var r=t._ob_teleporter_pass_effect,a='<div class="ob-teleporter-'+o+" ob-tele-eff-"+r+'" data-id-teleporter="'+o+'"><div class="ob-tele-overlay" style="background-color: '+t._ob_teleporter_overlay_color+';"></div>';e(".ob-teleporter-"+o).length||this.$element.prepend(a),this.$element.off("mouseenter mouseleave"),this.$element.on("mouseenter",(function(){if(!("no-tablet"===t._ob_teleporter_no_pass_tablet&&"tablet"===elementorFrontend.getCurrentDeviceMode()||"no-mobile"===t._ob_teleporter_no_pass_mobile&&"mobile"===elementorFrontend.getCurrentDeviceMode())){var s={"background-color":e(".ob-teleporter-"+o).css("background-color"),"background-image":e(".ob-teleporter-"+o).css("background-image"),"background-position":e(".ob-teleporter-"+o).css("background-position"),"background-size":e(".ob-teleporter-"+o).css("background-size"),"background-repeat":e(".ob-teleporter-"+o).css("background-repeat")};if("section"===t._ob_teleporter_pass_element){var i=l.children().not(".elementor-container").detach();l.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+o)),l.prepend(i)}else l.addClass("ob-tele-mom-hover").prepend(e(".ob-teleporter-"+o));e(".ob-teleporter-"+o).css(s).hide(),e(".ob-teleporter-"+o).show().addClass("ob-teleporter-hover")}})),this.$element.on("mouseleave",(function(){l.removeClass("ob-tele-mom-hover"),setTimeout((function(){e(".ob-teleporter-"+o).removeAttr("style").removeClass("ob-teleporter-hover"),i.prepend(e(".ob-teleporter-"+o))}),100)}))}}}}}),n={section:t,column:o};e.each(n,(function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,(function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})}))}))}));var i=function(t,s){var i,o=e(".elementor-element-"+t),n=e(".elementor-element-"+t+" .swiper-container").first(),l=n.parent().parent().find("nav.glider-controller"),r={allowTouchMove:"yes"===s.allowTouchMove,autoHeight:"yes"===s.autoheight,effect:s.effect,loop:s.loop,direction:"fade"===s.effect?"horizontal":s.direction,parallax:"yes"===s.parallax,speed:s.speed,breakpoints:"yes"===s.allowMultiSlides&&s.breakpoints,centeredSlides:"yes"===s.slides_centered,centeredSlidesBounds:"yes"===s.slides_centered_bounds,roundLengths:"yes"===s.slides_round_lenghts,navigation:{nextEl:".elementor-element-"+t+" .swiper-button-next",prevEl:".elementor-element-"+t+" .swiper-button-prev"},pagination:{el:".elementor-element-"+t+" .swiper-pagination",type:s.pagination_type,clickable:!0},autoplay:s.autoplay,mousewheel:"yes"===s.mousewheel,watchOverflow:!0};if("undefined"==typeof Swiper){new(0,elementorFrontend.utils.swiper)(n,r).then((e=>{i=e}))}else i=new Swiper(n,r);n.find('[class*="glider-control"]').on("click",(function(t){if(void 0!==e(this).data("gotoslide"))i.slideTo(parseInt(e(this).data("gotoslide")));else{var s=parseInt(e(this).attr("class").match(/glider-control-(\d+)/)[1]);s>0&&i.slideTo(s)}t.preventDefault()})),l.find('[class*="glider-control"]').on("click",(function(t){if(void 0!==e(this).data("gotoslide"))i.slideTo(parseInt(e(this).data("gotoslide")));else{var s=parseInt(e(this).attr("class").match(/glider-control-(\d+)/)[1]);s>0&&i.slideTo(s)}t.preventDefault()})),o.css("visibility","visible")}}(jQuery,window);
assets/js/ooohboi-steroids.js CHANGED
@@ -8,197 +8,6 @@
8
 
9
  $window.on( 'elementor/frontend/init', function() {
10
 
11
- var PoopArtPerspektiveHA = elementorModules.frontend.handlers.Base.extend( {
12
-
13
- onInit: function() {
14
-
15
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
16
- this.initPoopArtPerspektiveHA();
17
- this.initHoverAnimator();
18
-
19
- },
20
- /* PoopArt*/
21
- initPoopArtPerspektiveHA: function() {
22
-
23
- if( this.isEdit ) {
24
- this.$element.addClass( 'ob-has-background-overlay' ); // PoopArt
25
- // Perspektive
26
- if( 'yes' === this.getElementSettings( '_ob_perspektive_use' ) ) {
27
- this.$element.addClass( 'ob-use-perspektive' );
28
- }
29
- // Widget Stalker
30
- if( 'yes' === this.getElementSettings( '_ob_widget_stalker_use' ) ) {
31
- this.$element.addClass( 'ob-got-stalker' );
32
- }
33
- }
34
-
35
- },
36
- /* HoverAnimator */
37
- initHoverAnimator: function() {
38
- this.routeHoverAnimator();
39
- },
40
-
41
- onElementChange: function( changedProp ) {
42
- /* Perspektive */
43
- if( changedProp === '_ob_perspektive_use' ) {
44
- if( 'yes' === this.getElementSettings( '_ob_perspektive_use' ) ) this.$element.addClass( 'ob-use-perspektive' );
45
- else this.$element.removeClass( 'ob-use-perspektive' );
46
- }
47
- /* Hoveranimator */
48
- if( changedProp === '_ob_allow_hoveranimator' ) {
49
- this.routeHoverAnimator();
50
- }
51
- if( [ '_ob_hoveranimator_opacity_hover', '_ob_hoveranimator_y_hover', '_ob_hoveranimator_y_hover_alt', '_ob_hoveranimator_x_hover', '_ob_hoveranimator_x_hover_alt', '_ob_hoveranimator_rot_hover', '_ob_hoveranimator_scalex_hover', '_ob_hoveranimator_scaley_hover', '_ob_hoveranimator_blur_hover' ].indexOf( changedProp ) !== -1
52
- && this.isHoverAnimator() ) {
53
- this.doHoverAnimator();
54
- }
55
- /* Widget Stalker */
56
- if( changedProp === '_ob_widget_stalker_use' ) {
57
- this.routeWidgetStalkerWidget();
58
- }
59
- //-----------------
60
-
61
- },
62
-
63
- /* Stalker Widget */
64
- isWidgetStalkerWidget: function() {
65
- return this.$element.hasClass( 'ob-got-stalker' );
66
- },
67
- routeWidgetStalkerWidget: function() {
68
- if( ! this.isWidgetStalkerWidget() && 'yes' === this.getElementSettings( '_ob_widget_stalker_use' ) ) this.$element.addClass( 'ob-got-stalker' );
69
- else this.$element.removeClass( 'ob-got-stalker' );
70
- },
71
- /* Perspektive */
72
- isPerspektive: function() {
73
- return this.$element.hasClass( 'ob-use-perspektive' );
74
- },
75
- /* HoverAnimator */
76
- isHoverAnimator: function() {
77
- return this.$element.hasClass( 'ob-is-hoveranimal' );
78
- },
79
- /* HoverAnimator */
80
- routeHoverAnimator: function() {
81
-
82
- if( this.isEdit ) {
83
-
84
- if( ! this.isHoverAnimator() && 'yes' === this.getElementSettings( '_ob_allow_hoveranimator' ) ) {
85
- this.$element.addClass( 'ob-is-hoveranimal' );
86
- this.doHoverAnimator(); // initialize hover event for Hoveranimator
87
- }
88
- if( this.isHoverAnimator() && 'yes' !== this.getElementSettings( '_ob_allow_hoveranimator' ) ) {
89
- this.$element.removeClass( 'ob-is-hoveranimal' );
90
- this.stopHoverAnimator(); // stop hover event for Hoveranimator
91
- }
92
- } else if( ! this.isEdit && this.isHoverAnimator() ) {
93
- this.doHoverAnimator(); // init front-end
94
- }
95
-
96
- },
97
- doHoverAnimator: function() {
98
-
99
- var myself = this.$element;
100
- var parent_column = myself.parent().closest( '.ob-is-hoveranimator' );
101
- if( parent_column.length ) {
102
- var col_id = parent_column.data( 'id' );
103
- var opacity, pos_y, pos_y_alt, pos_x, pos_x_alt, rot, scale_y, scale_x, blur, el_settingz, top_alt, left_alt;
104
- if( this.isEdit ) {
105
- opacity = this.getElementSettings( '_ob_hoveranimator_opacity_hover' );
106
- pos_y = this.getElementSettings( '_ob_hoveranimator_y_hover' );
107
- pos_y_alt = this.getElementSettings( '_ob_hoveranimator_y_hover_alt' );
108
- pos_x = this.getElementSettings( '_ob_hoveranimator_x_hover' );
109
- pos_x_alt = this.getElementSettings( '_ob_hoveranimator_x_hover_alt' );
110
- rot = this.getElementSettings( '_ob_hoveranimator_rot_hover' );
111
- scale_x = this.getElementSettings( '_ob_hoveranimator_scalex_hover' );
112
- scale_y = this.getElementSettings( '_ob_hoveranimator_scaley_hover' );
113
- blur = this.getElementSettings( '_ob_hoveranimator_blur_hover' );
114
- } else if( ! this.isEdit ) {
115
- el_settingz = $.parseJSON( myself.attr( 'data-settings' ) ); // get from JSON
116
- opacity = el_settingz._ob_hoveranimator_opacity_hover;
117
- pos_y = el_settingz._ob_hoveranimator_y_hover;
118
- pos_y_alt = el_settingz._ob_hoveranimator_y_hover_alt;
119
- pos_x = el_settingz._ob_hoveranimator_x_hover;
120
- pos_x_alt = el_settingz._ob_hoveranimator_x_hover_alt;
121
- rot = el_settingz._ob_hoveranimator_rot_hover;
122
- scale_x = el_settingz._ob_hoveranimator_scalex_hover;
123
- scale_y = el_settingz._ob_hoveranimator_scaley_hover;
124
- blur = el_settingz._ob_hoveranimator_blur_hover;
125
- }
126
-
127
- // alt values chckpoint
128
- if( '' != $.trim( pos_x_alt ) && undefined !== pos_x_alt ) left_alt = 'calc(' + pos_x_alt + ')';
129
- else left_alt = pos_x.size + pos_x.unit;
130
- if( '' != $.trim( pos_y_alt ) && undefined !== pos_y_alt ) top_alt = 'calc(' + pos_y_alt + ')';
131
- else top_alt = pos_y.size + pos_y.unit;
132
-
133
- var hover_css = {
134
- 'opacity': opacity.size,
135
- 'top': top_alt,
136
- 'left': left_alt,
137
- 'transform': 'rotate(' + rot.size + 'deg) scaleX(' + scale_x.size + ') scaleY(' + scale_y.size + ')',
138
- 'filter': 'blur(' + blur.size + blur.unit + ')'
139
- };
140
- parent_column.on( 'mouseenter.' + col_id, function() {
141
- myself.css( hover_css );
142
- } );
143
- parent_column.on( 'mouseleave.' + col_id, function() {
144
- myself.removeAttr( 'style' );
145
- } );
146
- }
147
-
148
- },
149
- stopHoverAnimator: function() {
150
-
151
- var myself = this.$element;
152
- var parent_column = this.$element.parent().closest( '.ob-is-hoveranimator' );
153
- if( parent_column.length ) {
154
- var col_id = parent_column.data( 'id' );
155
- var hover_css_reset = {
156
- 'opacity': '',
157
- 'top': '',
158
- 'left': '',
159
- 'transform': '',
160
- 'filter': ''
161
- };
162
- parent_column.on( 'mouseenter.' + col_id, function() {
163
- myself.css( hover_css_reset );
164
- } );
165
- parent_column.on( 'mouseleave.' + col_id, function() {
166
- myself.removeAttr( 'style' );
167
- } );
168
- }
169
-
170
- },
171
-
172
- } );
173
-
174
- var Harakiri = elementorModules.frontend.handlers.Base.extend( {
175
-
176
- onInit: function onInit() {
177
-
178
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
179
- this.initHarakiri();
180
-
181
- },
182
-
183
- initHarakiri: function() {
184
-
185
- if( this.isEdit ) {
186
- if( 'inherit' !== this.getElementSettings( '_ob_harakiri_writing_mode' ) ) this.$element.addClass( 'ob-harakiri' );
187
- }
188
-
189
- },
190
-
191
- onElementChange: function( changedProp ) {
192
-
193
- if( changedProp === '_ob_harakiri_writing_mode' ) {
194
- if( 'inherit' !== this.getElementSettings( '_ob_harakiri_writing_mode' ) ) this.$element.addClass( 'ob-harakiri' );
195
- else this.$element.removeClass( 'ob-harakiri' );
196
- }
197
-
198
- }
199
-
200
- } );
201
-
202
  var SectionExtends = elementorModules.frontend.handlers.Base.extend( {
203
 
204
  onInit: function onInit() {
@@ -348,6 +157,7 @@
348
  'delay': this.getElementSettings( '_ob_glider_autoplay_delay' ),
349
  }
350
  } else settingz.autoplay = false;
 
351
 
352
  /* by Xmastermind */
353
  settingz.allowMultiSlides = this.getElementSettings( '_ob_glider_allow_multi_slides' );
@@ -369,6 +179,10 @@
369
  spaceBetween: +this.getElementSettings( '_ob_glider_space_between_mobile' ) || 0,
370
  };
371
  settingz.breakpoints = breakpointsSettings;
 
 
 
 
372
  /* -------------- */
373
 
374
  // run swiper
@@ -418,18 +232,10 @@
418
  isTeleporter: function() {
419
  return this.$element.hasClass( 'ob-is-teleporter' );
420
  },
421
- /* Hoveranimator */
422
- isHoverAnimatorCol: function() {
423
- return this.$element.hasClass( 'ob-is-hoveranimator' );
424
- },
425
  /* Widget Stalker */
426
  isWidgetStalkerCol: function() {
427
  return this.$element.hasClass( 'ob-is-stalker' );
428
  },
429
- /* Pseudo */
430
- isPseudoCol: function() {
431
- return this.$element.hasClass( 'ob-is-pseudo' );
432
- },
433
  initColumnExtends: function() {
434
  /* breaking bad */
435
  if( ! this.isEdit ) {
@@ -468,18 +274,10 @@
468
  this.$element.find( '.elementor-widget-wrap' ).first().addClass( 'ob-tele-midget' );
469
  this.doTeleporter();
470
  }
471
- /* Hoveranimator */
472
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_column_hoveranimator' ) ) {
473
- this.$element.addClass( 'ob-is-hoveranimator' );
474
- }
475
  /* Widget Stalker */
476
  if( this.isEdit && 'yes' === this.getElementSettings( '_ob_bbad_is_stalker' ) ) {
477
  this.$element.addClass( 'ob-is-stalker' );
478
  }
479
- /* Pseudo */
480
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_column_has_pseudo' ) ) {
481
- this.$element.addClass( 'ob-is-pseudo' );
482
- }
483
  },
484
  onElementChange: function( changedProp ) {
485
 
@@ -496,35 +294,16 @@
496
  else
497
  this.$element.removeClass( 'ob-tele-no-mobile' );
498
  }
499
- /* Hoveranimator */
500
- if( changedProp === '_ob_column_hoveranimator' ) {
501
- this.routeHoverAnimatorCol();
502
- }
503
  /* Widget Stalker */
504
  if( changedProp === '_ob_bbad_is_stalker' ) {
505
  this.routeWidgetStalkerCol();
506
  }
507
- /* Widget Stalker */
508
- if( changedProp === '_ob_column_has_pseudo' ) {
509
- this.routePseudoCol();
510
- }
511
-
512
- },
513
- /* Hoveranimator */
514
- routeHoverAnimatorCol: function() {
515
- if( ! this.isHoverAnimatorCol() && 'yes' === this.getElementSettings( '_ob_column_hoveranimator' ) ) this.$element.addClass( 'ob-is-hoveranimator' );
516
- else this.$element.removeClass( 'ob-is-hoveranimator' );
517
  },
518
  /* Widget Stalker */
519
  routeWidgetStalkerCol: function() {
520
  if( ! this.isWidgetStalkerCol() && 'yes' === this.getElementSettings( '_ob_bbad_is_stalker' ) ) this.$element.addClass( 'ob-is-stalker' );
521
  else this.$element.removeClass( 'ob-is-stalker' );
522
  },
523
- /* Pseudo */
524
- routePseudoCol: function() {
525
- if( ! this.isPseudoCol() && 'yes' === this.getElementSettings( '_ob_column_has_pseudo' ) ) this.$element.addClass( 'ob-is-pseudo' );
526
- else this.$element.removeClass( 'ob-is-pseudo' );
527
- },
528
  /* Teleporter */
529
  doTeleporterEditor: function() {
530
 
@@ -539,7 +318,7 @@
539
  }
540
  }
541
 
542
- if( 'do-pass' !== this.getElementSettings( '_ob_teleporter_pass' ) ) return; // bail too
543
 
544
  var this_ob = this;
545
  var myself = this.$element;
@@ -706,239 +485,10 @@
706
 
707
  } );
708
 
709
- var SearchCop = elementorModules.frontend.handlers.Base.extend( {
710
-
711
- onInit: function() {
712
-
713
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
714
- this.initSearchCop();
715
-
716
- },
717
-
718
- onElementChange: function( changedProp ) {
719
-
720
- if( changedProp === '_ob_searchcop_srch_options' ) this.routeSearchCop();
721
-
722
- },
723
-
724
- initSearchCop: function() {
725
-
726
- this.routeSearchCop();
727
-
728
- },
729
-
730
- routeSearchCop: function() {
731
- var search_cop_val = this.getElementSettings( '_ob_searchcop_srch_options' );
732
- if( 'post' === search_cop_val || 'page' === search_cop_val ) {
733
- var this_input_wrapper = this.$element.find( '.elementor-search-form__container' );
734
- if( ! this_input_wrapper.length ) return;
735
- var param_input = '<input type="hidden" name="post_type" value="' + search_cop_val + '" />';
736
- this_input_wrapper.prepend( param_input );
737
- }
738
- },
739
-
740
- } );
741
-
742
- var ButterButton = elementorModules.frontend.handlers.Base.extend( {
743
-
744
- onInit: function() {
745
-
746
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
747
- this.initButterButton();
748
-
749
- },
750
-
751
- isButterButton: function() {
752
-
753
- return this.$element.hasClass( 'ob-is-butterbutton' );
754
-
755
- },
756
-
757
- onElementChange: function( changedProp ) {
758
-
759
- if( changedProp === '_ob_butterbutton_use_it' ) {
760
- this.routeButterButton();
761
- }
762
-
763
- },
764
-
765
- initButterButton: function() {
766
-
767
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_butterbutton_use_it' ) ) {
768
- this.$element.addClass( 'ob-is-butterbutton' );
769
- }
770
-
771
- },
772
-
773
- routeButterButton: function() {
774
-
775
- if( ! this.isButterButton() && 'yes' === this.getElementSettings( '_ob_butterbutton_use_it' ) ) this.$element.addClass( 'ob-is-butterbutton' );
776
- else this.$element.removeClass( 'ob-is-butterbutton' );
777
-
778
- },
779
-
780
-
781
- } );
782
-
783
- var PhotoMorph = elementorModules.frontend.handlers.Base.extend( {
784
-
785
- onInit: function() {
786
-
787
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
788
- this.initPhotoMorph();
789
-
790
- },
791
-
792
- isPhotoMorph: function() {
793
-
794
- return this.$element.hasClass( 'ob-photomorph' );
795
-
796
- },
797
-
798
- onElementChange: function( changedProp ) {
799
-
800
- if( changedProp === '_ob_photomorph_use' ) {
801
- this.routePhotoMorph();
802
- }
803
-
804
- },
805
-
806
- initPhotoMorph: function() {
807
-
808
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_photomorph_use' ) ) {
809
- this.$element.addClass( 'ob-photomorph' );
810
- }
811
-
812
- },
813
-
814
- routePhotoMorph: function() {
815
-
816
- if( ! this.isPhotoMorph() && 'yes' === this.getElementSettings( '_ob_photomorph_use' ) ) this.$element.addClass( 'ob-photomorph' );
817
- else this.$element.removeClass( 'ob-photomorph' );
818
-
819
- },
820
-
821
-
822
- } );
823
-
824
- var Commentz = elementorModules.frontend.handlers.Base.extend( {
825
-
826
- onInit: function() {
827
-
828
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
829
- this.initCommentz();
830
-
831
- },
832
-
833
- isCommentz: function() {
834
-
835
- return this.$element.hasClass( 'ob-commentz' );
836
-
837
- },
838
-
839
- onElementChange: function( changedProp ) {
840
-
841
- if( changedProp === '_ob_commentz_use' ) {
842
- this.routeCommentz();
843
- }
844
-
845
- },
846
-
847
- initCommentz: function() {
848
-
849
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_commentz_use' ) ) {
850
- this.$element.addClass( 'ob-commentz' );
851
- }
852
-
853
- },
854
-
855
- routeCommentz: function() {
856
-
857
- if( ! this.isCommentz() && 'yes' === this.getElementSettings( '_ob_commentz_use' ) ) this.$element.addClass( 'ob-commentz' );
858
- else this.$element.removeClass( 'ob-commentz' );
859
-
860
- },
861
-
862
-
863
- } );
864
-
865
- var SpaceRat = elementorModules.frontend.handlers.Base.extend( {
866
-
867
- onInit: function() {
868
-
869
- elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
870
- this.initSpaceRat();
871
-
872
- },
873
-
874
- isSpaceRat: function() {
875
-
876
- return this.$element.hasClass( 'ob-spacerat' );
877
-
878
- },
879
-
880
- onElementChange: function( changedProp ) {
881
-
882
- if( changedProp === '_ob_spacerat_use' ) {
883
- this.routeSpaceRat();
884
- }
885
-
886
- },
887
-
888
- initSpaceRat: function() {
889
-
890
- if( this.isEdit && 'yes' === this.getElementSettings( '_ob_spacerat_use' ) ) {
891
- this.$element.addClass( 'ob-spacerat' );
892
- }
893
-
894
- if( ! this.isEdit && 'yes' === this.getElementSettings( '_ob_spacerat_use' ) ) {
895
-
896
- var spacerat_settings = {};
897
- try {
898
- spacerat_settings = JSON.parse( this.$element.attr( 'data-settings' ) );
899
- } catch ( error ) {
900
- return;
901
- }
902
-
903
- if( undefined !== spacerat_settings._ob_spacerat_link ) {
904
-
905
- var spacerat_link = spacerat_settings._ob_spacerat_link;
906
- if( '' === spacerat_link.url ) return;
907
-
908
- this.$element.off( 'click.obSpacerat' );
909
- this.$element.on( 'click.obSpacerat', function() {
910
- if( spacerat_link.is_external ) window.open( spacerat_link.url );
911
- else location.href = spacerat_link.url;
912
- } );
913
-
914
- }
915
-
916
- }
917
-
918
- },
919
-
920
- routeSpaceRat: function() {
921
-
922
- if( ! this.isSpaceRat() && 'yes' === this.getElementSettings( '_ob_spacerat_use' ) ) this.$element.addClass( 'ob-spacerat' );
923
- else this.$element.removeClass( 'ob-spacerat' );
924
-
925
- },
926
-
927
-
928
- } );
929
-
930
  var handlersList = {
931
 
932
- 'widget': PoopArtPerspektiveHA,
933
- 'heading.default': Harakiri,
934
- 'text-editor.default': Harakiri,
935
  'section': SectionExtends,
936
  'column': ColumnExtends,
937
- 'search-form.default': SearchCop,
938
- 'button.default': ButterButton,
939
- 'image.default': PhotoMorph,
940
- 'post-comments.theme_comments': Commentz,
941
- 'spacer.default': SpaceRat
942
 
943
  };
944
 
@@ -971,6 +521,10 @@
971
  speed: settings.speed,
972
  /* by Xmastermind */
973
  breakpoints: ( 'yes' === settings.allowMultiSlides ? settings.breakpoints : false ),
 
 
 
 
974
  /* -------------- */
975
  navigation: {
976
  nextEl: '.elementor-element-' + elem_id + ' .swiper-button-next',
@@ -981,7 +535,8 @@
981
  type: settings.pagination_type,
982
  clickable: true,
983
  },
984
- autoplay: settings.autoplay,
 
985
  watchOverflow : true, /* gotta force it down */
986
  };
987
  // improved asset loading
8
 
9
  $window.on( 'elementor/frontend/init', function() {
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  var SectionExtends = elementorModules.frontend.handlers.Base.extend( {
12
 
13
  onInit: function onInit() {
157
  'delay': this.getElementSettings( '_ob_glider_autoplay_delay' ),
158
  }
159
  } else settingz.autoplay = false;
160
+ settingz.mousewheel = this.getElementSettings( '_ob_glider_allow_mousewheel' );
161
 
162
  /* by Xmastermind */
163
  settingz.allowMultiSlides = this.getElementSettings( '_ob_glider_allow_multi_slides' );
179
  spaceBetween: +this.getElementSettings( '_ob_glider_space_between_mobile' ) || 0,
180
  };
181
  settingz.breakpoints = breakpointsSettings;
182
+ // centered slides - v1.7.9
183
+ settingz.slides_centered = this.getElementSettings( '_ob_glider_centered_slides' );
184
+ settingz.slides_centered_bounds = this.getElementSettings( '_ob_glider_centered_bounds_slides' );
185
+ settingz.slides_round_lenghts = this.getElementSettings( '_ob_glider_roundlengths_slides' );
186
  /* -------------- */
187
 
188
  // run swiper
232
  isTeleporter: function() {
233
  return this.$element.hasClass( 'ob-is-teleporter' );
234
  },
 
 
 
 
235
  /* Widget Stalker */
236
  isWidgetStalkerCol: function() {
237
  return this.$element.hasClass( 'ob-is-stalker' );
238
  },
 
 
 
 
239
  initColumnExtends: function() {
240
  /* breaking bad */
241
  if( ! this.isEdit ) {
274
  this.$element.find( '.elementor-widget-wrap' ).first().addClass( 'ob-tele-midget' );
275
  this.doTeleporter();
276
  }
 
 
 
 
277
  /* Widget Stalker */
278
  if( this.isEdit && 'yes' === this.getElementSettings( '_ob_bbad_is_stalker' ) ) {
279
  this.$element.addClass( 'ob-is-stalker' );
280
  }
 
 
 
 
281
  },
282
  onElementChange: function( changedProp ) {
283
 
294
  else
295
  this.$element.removeClass( 'ob-tele-no-mobile' );
296
  }
 
 
 
 
297
  /* Widget Stalker */
298
  if( changedProp === '_ob_bbad_is_stalker' ) {
299
  this.routeWidgetStalkerCol();
300
  }
 
 
 
 
 
 
 
 
 
 
301
  },
302
  /* Widget Stalker */
303
  routeWidgetStalkerCol: function() {
304
  if( ! this.isWidgetStalkerCol() && 'yes' === this.getElementSettings( '_ob_bbad_is_stalker' ) ) this.$element.addClass( 'ob-is-stalker' );
305
  else this.$element.removeClass( 'ob-is-stalker' );
306
  },
 
 
 
 
 
307
  /* Teleporter */
308
  doTeleporterEditor: function() {
309
 
318
  }
319
  }
320
 
321
+ if( 'do-pass' !== this.getElementSettings( '_ob_teleporter_pass' ) ) return; // bail too
322
 
323
  var this_ob = this;
324
  var myself = this.$element;
485
 
486
  } );
487
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
488
  var handlersList = {
489
 
 
 
 
490
  'section': SectionExtends,
491
  'column': ColumnExtends,
 
 
 
 
 
492
 
493
  };
494
 
521
  speed: settings.speed,
522
  /* by Xmastermind */
523
  breakpoints: ( 'yes' === settings.allowMultiSlides ? settings.breakpoints : false ),
524
+ /* v1.7.9 */
525
+ centeredSlides: ( 'yes' === settings.slides_centered ? true : false ),
526
+ centeredSlidesBounds: ( 'yes' === settings.slides_centered_bounds ? true : false ),
527
+ roundLengths: ( 'yes' === settings.slides_round_lenghts ? true : false ),
528
  /* -------------- */
529
  navigation: {
530
  nextEl: '.elementor-element-' + elem_id + ' .swiper-button-next',
535
  type: settings.pagination_type,
536
  clickable: true,
537
  },
538
+ autoplay: settings.autoplay,
539
+ mousewheel: ( 'yes' === settings.mousewheel ? true : false ),
540
  watchOverflow : true, /* gotta force it down */
541
  };
542
  // improved asset loading
assets/js/perspektive-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,t=elementorModules.frontend.handlers.Base;e=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.isPerspektive()&&this.$element.addClass("ob-use-perspektive")},isPerspektive:function(){return"yes"===this.getElementSettings("_ob_perspektive_use")},onElementChange:function(e){"_ob_perspektive_use"===e&&("yes"===this.getElementSettings("_ob_perspektive_use")?this.$element.addClass("ob-use-perspektive"):this.$element.removeClass("ob-use-perspektive"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t){elementorFrontend.elementsHandler.addHandler(e,{$element:t})}))}));
assets/js/perspektive.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ Perspektive;
11
+
12
+ Perspektive = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isPerspektive() ) {
17
+ this.$element.addClass( 'ob-use-perspektive' );
18
+ }
19
+ },
20
+
21
+ isPerspektive: function() {
22
+ return ( this.getElementSettings( '_ob_perspektive_use' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_perspektive_use' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_perspektive_use' ) ) this.$element.addClass( 'ob-use-perspektive' );
28
+ else this.$element.removeClass( 'ob-use-perspektive' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( Perspektive, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/photomorph-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,o=elementorModules.frontend.handlers.Base;e=o.extend({onInit:function(){o.prototype.onInit.apply(this,arguments),this.isPhotoMorph()&&this.$element.addClass("ob-photomorph")},isPhotoMorph:function(){return"yes"===this.getElementSettings("_ob_photomorph_use")},onElementChange:function(e){"_ob_photomorph_use"===e&&("yes"===this.getElementSettings("_ob_photomorph_use")?this.$element.addClass("ob-photomorph"):this.$element.removeClass("ob-photomorph"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/image.default",(function(o){elementorFrontend.elementsHandler.addHandler(e,{$element:o})}))}));
assets/js/photomorph.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ PhotoMorph;
11
+
12
+ PhotoMorph = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isPhotoMorph() ) {
17
+ this.$element.addClass( 'ob-photomorph' );
18
+ }
19
+ },
20
+
21
+ isPhotoMorph: function() {
22
+ return ( this.getElementSettings( '_ob_photomorph_use' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_photomorph_use' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_photomorph_use' ) ) this.$element.addClass( 'ob-photomorph' );
28
+ else this.$element.removeClass( 'ob-photomorph' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/image.default', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( PhotoMorph, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/poopart-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,n=elementorModules.frontend.handlers.Base;e=n.extend({onInit:function(){n.prototype.onInit.apply(this,arguments),this.isPoopArt()&&this.$element.addClass("ob-has-background-overlay")},isPoopArt:function(){return"yes"===this.getElementSettings("_ob_poopart_use")},onElementChange:function(e){"_ob_poopart_use"===e&&("yes"===this.getElementSettings("_ob_poopart_use")?this.$element.addClass("ob-has-background-overlay"):this.$element.removeClass("ob-has-background-overlay"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(n){elementorFrontend.elementsHandler.addHandler(e,{$element:n})}))}));
assets/js/poopart.js ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ PoopArt;
11
+
12
+ PoopArt = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isPoopArt() ) {
17
+ this.$element.addClass( 'ob-has-background-overlay' );
18
+ }
19
+ },
20
+
21
+ isPoopArt: function() {
22
+ return ( this.getElementSettings( '_ob_poopart_use' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_poopart_use' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_poopart_use' ) ) this.$element.addClass( 'ob-has-background-overlay' );
28
+ else this.$element.removeClass( 'ob-has-background-overlay' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', function( $scope ) {
35
+ elementorFrontend.elementsHandler.addHandler( PoopArt, { $element: $scope } );
36
+ } );
37
+
38
+ } );
39
+
40
+
41
+ } ( jQuery, window ) );
assets/js/pseudo-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";!function(e,n){e(n).on("elementor/frontend/init",(function(){var n,o;n=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.isPseudo()&&this.$element.addClass("ob-is-pseudo")},isPseudo:function(){return"yes"===this.getElementSettings("_ob_column_has_pseudo")},onElementChange:function(e){"_ob_column_has_pseudo"===e&&("yes"===this.getElementSettings("_ob_column_has_pseudo")?this.$element.addClass("ob-is-pseudo"):this.$element.removeClass("ob-is-pseudo"))}}),o=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.isPseudoContainer()&&(this.$element.addClass("ob-is-pseudo"),this.removePseudos(),this.runPseudos())},isPseudoContainer:function(){return"yes"===this.getElementSettings("_ob_column_has_pseudo")},onElementChange:function(e){"_ob_column_has_pseudo"===e&&("yes"===this.getElementSettings("_ob_column_has_pseudo")?(this.$element.addClass("ob-is-pseudo"),this.runPseudos()):(this.removePseudos(),this.$element.removeClass("ob-is-pseudo")))},runPseudos:function(){this.$element.children(".ob-pseudo-before").first().length||e("<div>",{class:"ob-pseudo-before"}).appendTo(this.$element),this.$element.children(".ob-pseudo-after").first().length||e("<div>",{class:"ob-pseudo-after"}).appendTo(this.$element)},removePseudos:function(){this.$element.children(".ob-pseudo-before").first().remove(),this.$element.children(".ob-pseudo-after").first().remove()}}),elementorFrontend.hooks.addAction("frontend/element_ready/column",(function(e){elementorFrontend.elementsHandler.addHandler(n,{$element:e})})),elementorFrontend.hooks.addAction("frontend/element_ready/container",(function(e){elementorFrontend.elementsHandler.addHandler(o,{$element:e})}))}))}(jQuery,window);
assets/js/pseudo.js ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var Pseudo, PseudoContainer;
10
+
11
+ /* pseudo for columns */
12
+ Pseudo = elementorModules.frontend.handlers.Base.extend( {
13
+
14
+ onInit: function() {
15
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
16
+ if( this.isPseudo() ) {
17
+ this.$element.addClass( 'ob-is-pseudo' );
18
+ }
19
+ },
20
+
21
+ isPseudo: function() {
22
+ return ( this.getElementSettings( '_ob_column_has_pseudo' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_column_has_pseudo' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_column_has_pseudo' ) ) this.$element.addClass( 'ob-is-pseudo' );
28
+ else this.$element.removeClass( 'ob-is-pseudo' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ /* pseudo for container E3.6+ */
35
+ PseudoContainer = elementorModules.frontend.handlers.Base.extend( {
36
+
37
+ onInit: function() {
38
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
39
+ if( this.isPseudoContainer() ) {
40
+ this.$element.addClass( 'ob-is-pseudo' );
41
+ this.removePseudos();
42
+ this.runPseudos();
43
+ }
44
+ },
45
+
46
+ isPseudoContainer: function() {
47
+ return ( this.getElementSettings( '_ob_column_has_pseudo' ) === 'yes' );
48
+ },
49
+
50
+ onElementChange: function( changedProp ) {
51
+ if( changedProp === '_ob_column_has_pseudo' ) {
52
+ if( 'yes' === this.getElementSettings( '_ob_column_has_pseudo' ) ) {
53
+ this.$element.addClass( 'ob-is-pseudo' );
54
+ this.runPseudos();
55
+ } else {
56
+ this.removePseudos();
57
+ this.$element.removeClass( 'ob-is-pseudo' );
58
+ }
59
+ }
60
+ },
61
+
62
+ runPseudos: function() {
63
+
64
+ // create 2 dummy containers: BEFORE and AFTER
65
+ if( ! this.$element.children( '.ob-pseudo-before' ).first().length ) $( '<div>', { class: 'ob-pseudo-before' } ).appendTo( this.$element );
66
+ if( ! this.$element.children( '.ob-pseudo-after' ).first().length ) $( '<div>', { class: 'ob-pseudo-after' } ).appendTo( this.$element );
67
+
68
+ },
69
+
70
+ removePseudos: function() {
71
+
72
+ // remove 2 dummy containers: BEFORE and AFTER
73
+ this.$element.children( '.ob-pseudo-before' ).first().remove();
74
+ this.$element.children( '.ob-pseudo-after' ).first().remove();
75
+
76
+ },
77
+
78
+ } );
79
+
80
+ /* pseudo for columns */
81
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/column', function( $scope ) {
82
+ elementorFrontend.elementsHandler.addHandler( Pseudo, { $element: $scope } );
83
+ } );
84
+
85
+ /* pseudo for container E3.6+ */
86
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/container', function( $scope ) {
87
+ elementorFrontend.elementsHandler.addHandler( PseudoContainer, { $element: $scope } );
88
+ } );
89
+
90
+ } );
91
+
92
+
93
+ } ( jQuery, window ) );
assets/js/searchcop-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,n,t,o,r,i=elementorModules.frontend.handlers.Base;e=i.extend({onInit:function(){i.prototype.onInit.apply(this,arguments),this.isSearchCop()&&this.runSearchCop()},isSearchCop:function(){return"yes"===this.getElementSettings("_ob_searchcop_use_it")},onElementChange:(n=function(e){"_ob_searchcop_srch_options"===e&&this.runSearchCop()},t=900,function(){var e=this,i=arguments,s=function(){r=null,o||n.apply(e,i)},a=o&&!r;clearTimeout(r),r=setTimeout(s,t),a&&n.apply(e,i)}),runSearchCop:function(){var e=this.getElementSettings("_ob_searchcop_srch_options");if("post"===e||"page"===e||"product"===e){var n=this.$element.find(".elementor-search-form__container");if(!n.length)return;var t='<input type="hidden" name="post_type" value="'+e+'" />';n.prepend(t)}}}),elementorFrontend.hooks.addAction("frontend/element_ready/search-form.default",(function(n){elementorFrontend.elementsHandler.addHandler(e,{$element:n})}))}));
assets/js/searchcop.js ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ function debounce(func, wait, immediate) {
8
+ var timeout;
9
+ return function() {
10
+ var context = this, args = arguments;
11
+ var later = function() {
12
+ timeout = null;
13
+ if (!immediate) func.apply(context, args);
14
+ };
15
+ var callNow = immediate && !timeout;
16
+ clearTimeout(timeout);
17
+ timeout = setTimeout(later, wait);
18
+ if (callNow) func.apply(context, args);
19
+ };
20
+ }
21
+
22
+ $window.on( 'elementor/frontend/init', function() {
23
+
24
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
25
+ SearchCop;
26
+
27
+ SearchCop = ModuleHandler.extend( {
28
+
29
+ onInit: function() {
30
+ ModuleHandler.prototype.onInit.apply( this, arguments );
31
+ if( this.isSearchCop() ) {
32
+ this.runSearchCop();
33
+ }
34
+ },
35
+
36
+ isSearchCop: function() {
37
+ return ( this.getElementSettings( '_ob_searchcop_use_it' ) === 'yes' );
38
+ },
39
+
40
+ onElementChange: debounce( function( changedProp ) {
41
+
42
+ if( changedProp === '_ob_searchcop_srch_options' ) this.runSearchCop();
43
+
44
+ }, 900 ),
45
+
46
+ runSearchCop: function() {
47
+
48
+ var search_cop_val = this.getElementSettings( '_ob_searchcop_srch_options' );
49
+
50
+ if( 'post' === search_cop_val || 'page' === search_cop_val || 'product' === search_cop_val ) {
51
+ var this_input_wrapper = this.$element.find( '.elementor-search-form__container' );
52
+ if( ! this_input_wrapper.length ) return;
53
+ var param_input = '<input type="hidden" name="post_type" value="' + search_cop_val + '" />';
54
+ this_input_wrapper.prepend( param_input );
55
+ }
56
+
57
+ }
58
+
59
+ } );
60
+
61
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/search-form.default', function( $scope ) {
62
+ elementorFrontend.elementsHandler.addHandler( SearchCop, { $element: $scope } );
63
+ } );
64
+
65
+ } );
66
+
67
+
68
+ } ( jQuery, window ) );
assets/js/spacerat-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e,t=elementorModules.frontend.handlers.Base;e=t.extend({onInit:function(){t.prototype.onInit.apply(this,arguments),this.isSpaceRat()&&(this.$element.addClass("ob-spacerat"),this.runRoutine())},isSpaceRat:function(){return"yes"===this.getElementSettings("_ob_spacerat_use")},onElementChange:function(e){"_ob_spacerat_use"===e&&("yes"===this.getElementSettings("_ob_spacerat_use")?this.$element.addClass("ob-spacerat"):this.$element.removeClass("ob-spacerat"))},runRoutine:function(){if(!this.isEdit){var e={};try{e=JSON.parse(this.$element.attr("data-settings"))}catch(e){return}if(void 0!==e._ob_spacerat_link){var t=e._ob_spacerat_link;if(""===t.url)return;this.$element.off("click.obSpacerat"),this.$element.on("click.obSpacerat",(function(){t.is_external?window.open(t.url):location.href=t.url}))}}}}),elementorFrontend.hooks.addAction("frontend/element_ready/spacer.default",(function(t){elementorFrontend.elementsHandler.addHandler(e,{$element:t})}))}));
assets/js/spacerat.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var ModuleHandler = elementorModules.frontend.handlers.Base,
10
+ SpaceRat;
11
+
12
+ SpaceRat = ModuleHandler.extend( {
13
+
14
+ onInit: function() {
15
+ ModuleHandler.prototype.onInit.apply( this, arguments );
16
+ if( this.isSpaceRat() ) {
17
+ this.$element.addClass( 'ob-spacerat' );
18
+ this.runRoutine();
19
+ }
20
+ },
21
+
22
+ isSpaceRat: function() {
23
+ return ( this.getElementSettings( '_ob_spacerat_use' ) === 'yes' );
24
+ },
25
+
26
+ onElementChange: function( changedProp ) {
27
+ if( changedProp === '_ob_spacerat_use' ) {
28
+ if( 'yes' === this.getElementSettings( '_ob_spacerat_use' ) ) this.$element.addClass( 'ob-spacerat' );
29
+ else this.$element.removeClass( 'ob-spacerat' );
30
+ }
31
+ },
32
+
33
+ runRoutine: function() {
34
+ if( ! this.isEdit ) {
35
+
36
+ var spacerat_settings = {};
37
+
38
+ try {
39
+ spacerat_settings = JSON.parse( this.$element.attr( 'data-settings' ) );
40
+ } catch ( error ) {
41
+ console.log( error );
42
+ return;
43
+ }
44
+
45
+ if( undefined !== spacerat_settings._ob_spacerat_link ) {
46
+
47
+ var spacerat_link = spacerat_settings._ob_spacerat_link;
48
+ if( '' === spacerat_link.url ) return;
49
+
50
+ this.$element.off( 'click.obSpacerat' );
51
+ this.$element.on( 'click.obSpacerat', function() {
52
+ if( spacerat_link.is_external ) window.open( spacerat_link.url );
53
+ else location.href = spacerat_link.url;
54
+ } );
55
+
56
+ }
57
+
58
+ }
59
+ }
60
+
61
+ } );
62
+
63
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/spacer.default', function( $scope ) {
64
+ elementorFrontend.elementsHandler.addHandler( SpaceRat, { $element: $scope } );
65
+ } );
66
+
67
+ } );
68
+
69
+
70
+ } ( jQuery, window ) );
assets/js/widgetstalker-min.js ADDED
@@ -0,0 +1 @@
 
1
+ "use strict";jQuery(window).on("elementor/frontend/init",(function(){var e;e=elementorModules.frontend.handlers.Base.extend({onInit:function(){elementorModules.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.isWidgetStalker()&&this.$element.addClass("ob-got-stalker")},isWidgetStalker:function(){return"yes"===this.getElementSettings("_ob_widget_stalker_use")},onElementChange:function(e){"_ob_widget_stalker_use"===e&&("yes"===this.getElementSettings("_ob_widget_stalker_use")?this.$element.addClass("ob-got-stalker"):this.$element.removeClass("ob-got-stalker"))}}),elementorFrontend.hooks.addAction("frontend/element_ready/widget",(function(t){elementorFrontend.elementsHandler.addHandler(e,{$element:t})}))}));
assets/js/widgetstalker.js ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 'use strict';
2
+
3
+ ( function ( $, w ) {
4
+
5
+ var $window = $( w );
6
+
7
+ $window.on( 'elementor/frontend/init', function() {
8
+
9
+ var WidgetStalker;
10
+
11
+ /* Widget Stalker */
12
+ WidgetStalker = elementorModules.frontend.handlers.Base.extend( {
13
+
14
+ onInit: function() {
15
+ elementorModules.frontend.handlers.Base.prototype.onInit.apply( this, arguments );
16
+ if( this.isWidgetStalker() ) {
17
+ this.$element.addClass( 'ob-got-stalker' );
18
+ }
19
+ },
20
+
21
+ isWidgetStalker: function() {
22
+ return ( this.getElementSettings( '_ob_widget_stalker_use' ) === 'yes' );
23
+ },
24
+
25
+ onElementChange: function( changedProp ) {
26
+ if( changedProp === '_ob_widget_stalker_use' ) {
27
+ if( 'yes' === this.getElementSettings( '_ob_widget_stalker_use' ) ) this.$element.addClass( 'ob-got-stalker' );
28
+ else this.$element.removeClass( 'ob-got-stalker' );
29
+ }
30
+ },
31
+
32
+ } );
33
+
34
+ /* Widget Stalker */
35
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/widget', function( $scope ) {
36
+ elementorFrontend.elementsHandler.addHandler( WidgetStalker, { $element: $scope } );
37
+ } );
38
+
39
+ } );
40
+
41
+
42
+ } ( jQuery, window ) );
controls/ooohboi-breaking-bad.php CHANGED
@@ -496,7 +496,7 @@ href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/O
496
  $element->add_control(
497
  '_ob_bbad_link_type',
498
  [
499
- 'label' => sprintf( __( 'Column Link%sNEW!%s', 'ooohboi-steroids' ), '<sup class="ob-new-feature">', '</sup>' ),
500
  'type' => Controls_Manager::SELECT,
501
  'default' => 'default',
502
  'separator' => 'before',
@@ -551,7 +551,7 @@ href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/O
551
  '_ob_bbad_is_stalker',
552
  [
553
  'label' => __( 'Enable Widget Stalker?', 'ooohboi-steroids' ),
554
- 'description' => __( 'NOTE: It changes the default alignment of widgets inside this column - including the Ineer Section widget.', 'ooohboi-steroids' ),
555
  'separator' => 'before',
556
  'type' => Controls_Manager::SWITCHER,
557
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
496
  $element->add_control(
497
  '_ob_bbad_link_type',
498
  [
499
+ 'label' => __( 'Column Link', 'ooohboi-steroids' ),
500
  'type' => Controls_Manager::SELECT,
501
  'default' => 'default',
502
  'separator' => 'before',
551
  '_ob_bbad_is_stalker',
552
  [
553
  'label' => __( 'Enable Widget Stalker?', 'ooohboi-steroids' ),
554
+ 'description' => __( 'NOTE: It changes the default alignment of widgets inside this column - including the Inner Section widget.', 'ooohboi-steroids' ),
555
  'separator' => 'before',
556
  'type' => Controls_Manager::SWITCHER,
557
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
controls/ooohboi-bullet.php ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) {
7
+ exit; // Exit if accessed directly.
8
+ }
9
+
10
+ /**
11
+ * Main OoohBoi Bullet
12
+ *
13
+ * The main class that initiates and runs the plugin.
14
+ *
15
+ * @since 1.8.2
16
+ */
17
+ class OoohBoi_Bullet {
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.4.6
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ add_action( 'elementor/element/icon-list/section_icon_style/before_section_end', [ __CLASS__, 'ooohboi_handle_bullet' ], 10, 2 );
29
+
30
+ }
31
+
32
+ public static function ooohboi_handle_bullet( $element, $args ) {
33
+
34
+ $element->add_control(
35
+ '_ob_bullet',
36
+ [
37
+ 'label' => 'B U L L E T',
38
+ 'type' => Controls_Manager::HEADING,
39
+ 'separator' => 'before',
40
+ ]
41
+ );
42
+
43
+ // ------------------------------------------------------------------------- CONTROL: Moves bullet to top!
44
+ $element->add_control(
45
+ '_ob_bullet_move_top',
46
+ [
47
+ 'label' => sprintf( __( 'Move bullet to top%sNEW!%s', 'ooohboi-steroids' ), '<sup class="ob-new-feature">', '</sup>' ),
48
+ 'description' => __( 'NOTE: Takes effect with more than just one line of text!', 'ooohboi-steroids' ),
49
+ 'separator' => 'before',
50
+ 'type' => Controls_Manager::SWITCHER,
51
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
52
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
53
+ 'return_value' => 'inherit',
54
+ 'selectors' => [
55
+ '{{WRAPPER}} .elementor-icon-list-item, {{WRAPPER}} .elementor-icon-list-item a' => 'align-items: start;',
56
+ ],
57
+ ]
58
+ );
59
+ // ------------------------------------------------------------------------- CONTROL: Bullet top margin
60
+ $element->add_responsive_control(
61
+ '_ob_bullet_top_margin',
62
+ [
63
+ 'label' => __( 'Margin Top', 'ooohboi-steroids' ),
64
+ 'type' => Controls_Manager::SLIDER,
65
+ 'range' => [
66
+ 'px' => [
67
+ 'max' => 100,
68
+ 'step' => 1,
69
+ ],
70
+ 'em' => [
71
+ 'max' => 10,
72
+ 'step' => 1,
73
+ ],
74
+ '%' => [
75
+ 'max' => 100,
76
+ 'step' => 1,
77
+ ],
78
+ ],
79
+ 'size_units' => [ 'px', 'em', '%' ],
80
+ 'selectors' => [
81
+ '{{WRAPPER}} .elementor-icon-list-item .elementor-icon-list-icon, {{WRAPPER}} .elementor-icon-list-item a .elementor-icon-list-icon' => 'margin-top: {{SIZE}}{{UNIT}};',
82
+ ],
83
+ 'condition' => [
84
+ '_ob_bullet_move_top' => 'inherit',
85
+ ],
86
+ ]
87
+ );
88
+
89
+ }
90
+
91
+ }
controls/ooohboi-butter-button.php CHANGED
@@ -20,6 +20,8 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  */
21
  class OoohBoi_Butter_Button {
22
 
 
 
23
  /**
24
  * Initialize
25
  *
@@ -32,8 +34,37 @@ class OoohBoi_Butter_Button {
32
  add_action( 'elementor/element/button/section_style/after_section_end', [ __CLASS__, 'ob_butterbutton_panel' ], 10, 2 );
33
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
34
 
 
 
 
 
 
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  public static function add_attributes( $element ) {
38
 
39
  if ( 'button' !== $element->get_name() ) return;
@@ -76,20 +107,6 @@ class OoohBoi_Butter_Button {
76
  ]
77
  );
78
 
79
- // --------------------------------------------------------------------------------------------- CONTROL Button Typography
80
- $element->add_group_control(
81
- Group_Control_Typography::get_type(),
82
- [
83
- 'name' => '_ob_butterbutton_typography',
84
- 'label' => __( 'Typography', 'ooohboi-steroids' ),
85
- 'scheme' => Typography::TYPOGRAPHY_3,
86
- 'selector' => $selector,
87
- 'condition' => [
88
- '_ob_butterbutton_use_it' => 'yes',
89
- ],
90
- ]
91
- );
92
-
93
  // --------------------------------------------------------------------------------------------- CONTROL Icon Size
94
  $element->add_responsive_control(
95
  '_ob_butterbutton_icon_size',
@@ -175,7 +192,10 @@ class OoohBoi_Butter_Button {
175
  $element->start_controls_tab(
176
  '_ob_butterbutton_tabs_reg',
177
  [
178
- 'label' => __( 'Regular', 'ooohboi-steroids' ),
 
 
 
179
  ]
180
  );
181
 
@@ -212,6 +232,20 @@ class OoohBoi_Butter_Button {
212
  ]
213
  );
214
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Regular
216
  $element->add_group_control(
217
  Group_Control_Background::get_type(),
@@ -288,6 +322,9 @@ class OoohBoi_Butter_Button {
288
  '_ob_butterbutton_tabs_hov',
289
  [
290
  'label' => __( 'Hover', 'ooohboi-steroids' ),
 
 
 
291
  ]
292
  );
293
 
@@ -325,11 +362,26 @@ class OoohBoi_Butter_Button {
325
  ]
326
  );
327
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Hover
329
  $element->add_group_control(
330
  Group_Control_Background::get_type(),
331
  [
332
  'name' => '_ob_butterbutton_tabs_hov_bg',
 
333
  'frontend_available' => true,
334
  'selector' => $selector . ':after',
335
  'condition' => [
20
  */
21
  class OoohBoi_Butter_Button {
22
 
23
+ static $should_script_enqueue = false;
24
+
25
  /**
26
  * Initialize
27
  *
34
  add_action( 'elementor/element/button/section_style/after_section_end', [ __CLASS__, 'ob_butterbutton_panel' ], 10, 2 );
35
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
36
 
37
+ /* should enqueue? */
38
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
39
+ /* add script */
40
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
41
+
42
  }
43
 
44
+ /* enqueue script JS */
45
+ public static function enqueue_scripts() {
46
+
47
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/butterbutton-min.js';
48
+
49
+ if( file_exists( $extension_js ) ) {
50
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
51
+ }
52
+
53
+ }
54
+ /* should enqueue? */
55
+ public static function should_script_enqueue( $element ) {
56
+
57
+ if( self::$should_script_enqueue ) return;
58
+
59
+ if( 'yes' == $element->get_settings_for_display( '_ob_butterbutton_use_it' ) ) {
60
+
61
+ self::$should_script_enqueue = true;
62
+ self::enqueue_scripts();
63
+
64
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
65
+ }
66
+ }
67
+
68
  public static function add_attributes( $element ) {
69
 
70
  if ( 'button' !== $element->get_name() ) return;
107
  ]
108
  );
109
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
110
  // --------------------------------------------------------------------------------------------- CONTROL Icon Size
111
  $element->add_responsive_control(
112
  '_ob_butterbutton_icon_size',
192
  $element->start_controls_tab(
193
  '_ob_butterbutton_tabs_reg',
194
  [
195
+ 'label' => __( 'Normal', 'ooohboi-steroids' ),
196
+ 'condition' => [
197
+ '_ob_butterbutton_use_it' => 'yes',
198
+ ],
199
  ]
200
  );
201
 
232
  ]
233
  );
234
 
235
+ $element->add_control(
236
+ '_ob_butterbutton_premise_reg',
237
+ [
238
+ 'label' => esc_html__( 'The Background Settings', 'ooohboi-animator' ),
239
+ 'type' => Controls_Manager::RAW_HTML,
240
+ 'raw' => esc_html__( 'This won\'t make any effect unless you set the original NORMAL and HOVER background colors to transparent!', 'ooohboi-animator' ),
241
+ 'content_classes' => 'elementor-control-field-description',
242
+ 'separator' => 'before',
243
+ 'condition' => [
244
+ '_ob_butterbutton_use_it' => 'yes',
245
+ ],
246
+ ]
247
+ );
248
+
249
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Regular
250
  $element->add_group_control(
251
  Group_Control_Background::get_type(),
322
  '_ob_butterbutton_tabs_hov',
323
  [
324
  'label' => __( 'Hover', 'ooohboi-steroids' ),
325
+ 'condition' => [
326
+ '_ob_butterbutton_use_it' => 'yes',
327
+ ],
328
  ]
329
  );
330
 
362
  ]
363
  );
364
 
365
+ $element->add_control(
366
+ '_ob_butterbutton_premise_rhov',
367
+ [
368
+ 'label' => esc_html__( 'The Background Settings', 'ooohboi-animator' ),
369
+ 'type' => Controls_Manager::RAW_HTML,
370
+ 'raw' => esc_html__( 'This won\'t make any effect unless you set the original NORMAL and HOVER background colors to transparent!', 'ooohboi-animator' ),
371
+ 'content_classes' => 'elementor-control-field-description',
372
+ 'separator' => 'before',
373
+ 'condition' => [
374
+ '_ob_butterbutton_use_it' => 'yes',
375
+ ],
376
+ ]
377
+ );
378
+
379
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND Hover
380
  $element->add_group_control(
381
  Group_Control_Background::get_type(),
382
  [
383
  'name' => '_ob_butterbutton_tabs_hov_bg',
384
+ 'description' => __( 'NOTE: this won\'t make any effect unless you set the original HOVER background color to transparent!', 'ooohboi-steroids' ),
385
  'frontend_available' => true,
386
  'selector' => $selector . ':after',
387
  'condition' => [
controls/ooohboi-commentz.php CHANGED
@@ -4,7 +4,6 @@ use Elementor\Controls_Stack;
4
  use Elementor\Element_Base;
5
  use Elementor\Group_Control_Border;
6
  use Elementor\Group_Control_Typography;
7
- use Elementor\Scheme_Color;
8
  use Elementor\Core\Schemes\Typography;
9
 
10
  if ( ! defined( 'ABSPATH' ) ) {
@@ -20,6 +19,8 @@ if ( ! defined( 'ABSPATH' ) ) {
20
  */
21
  class OoohBoi_Commentz {
22
 
 
 
23
  /**
24
  * Initialize
25
  *
@@ -32,6 +33,35 @@ class OoohBoi_Commentz {
32
  add_action( 'elementor/element/post-comments/section_content/after_section_end', [ __CLASS__, 'add_section' ] );
33
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  }
36
 
37
  public static function add_attributes( $element ) {
@@ -97,6 +127,7 @@ class OoohBoi_Commentz {
97
  [
98
  'label' => __( 'Heading style', 'ooohboi-steroids' ),
99
  'type' => Controls_Manager::POPOVER_TOGGLE,
 
100
  'return_value' => 'yes',
101
  'condition' => [
102
  '_ob_commentz_use' => 'yes',
@@ -117,7 +148,8 @@ class OoohBoi_Commentz {
117
  '{{WRAPPER}}.ob-commentz .title-comments' => 'color: {{VALUE}};',
118
  ],
119
  'condition' => [
120
- '_ob_commentz_use' => 'yes',
 
121
  ],
122
  ]
123
  );
@@ -139,6 +171,7 @@ class OoohBoi_Commentz {
139
  ],
140
  'condition' => [
141
  '_ob_commentz_use' => 'yes',
 
142
  ],
143
  ]
144
  );
@@ -159,6 +192,7 @@ class OoohBoi_Commentz {
159
  ],
160
  'condition' => [
161
  '_ob_commentz_use' => 'yes',
 
162
  ],
163
  ]
164
  );
@@ -178,6 +212,7 @@ class OoohBoi_Commentz {
178
  ],
179
  'condition' => [
180
  '_ob_commentz_use' => 'yes',
 
181
  ],
182
  ]
183
  );
@@ -202,6 +237,7 @@ class OoohBoi_Commentz {
202
  'label' => __( 'Comment list style', 'ooohboi-steroids' ),
203
  'type' => Controls_Manager::POPOVER_TOGGLE,
204
  'return_value' => 'yes',
 
205
  'condition' => [
206
  '_ob_commentz_use' => 'yes',
207
  ],
@@ -222,6 +258,7 @@ class OoohBoi_Commentz {
222
  ],
223
  'condition' => [
224
  '_ob_commentz_use' => 'yes',
 
225
  ],
226
  ]
227
  );
@@ -237,6 +274,7 @@ class OoohBoi_Commentz {
237
  ],
238
  'condition' => [
239
  '_ob_commentz_use' => 'yes',
 
240
  ],
241
  ]
242
  );
@@ -263,6 +301,7 @@ class OoohBoi_Commentz {
263
  ],
264
  'condition' => [
265
  '_ob_commentz_use' => 'yes',
 
266
  ],
267
  ]
268
  );
@@ -278,6 +317,7 @@ class OoohBoi_Commentz {
278
  ],
279
  'condition' => [
280
  '_ob_commentz_use' => 'yes',
 
281
  ],
282
  ]
283
  );
@@ -293,6 +333,7 @@ class OoohBoi_Commentz {
293
  ],
294
  'condition' => [
295
  '_ob_commentz_use' => 'yes',
 
296
  ],
297
  ]
298
  );
@@ -323,6 +364,7 @@ class OoohBoi_Commentz {
323
  ],
324
  'condition' => [
325
  '_ob_commentz_use' => 'yes',
 
326
  ],
327
  ]
328
  );
@@ -357,6 +399,7 @@ class OoohBoi_Commentz {
357
  'label' => __( 'Gravatar style', 'ooohboi-steroids' ),
358
  'type' => Controls_Manager::POPOVER_TOGGLE,
359
  'return_value' => 'yes',
 
360
  'condition' => [
361
  '_ob_commentz_use' => 'yes',
362
  '_ob_commentz_show_gravatar!' => 'none',
@@ -393,6 +436,7 @@ class OoohBoi_Commentz {
393
  'condition' => [
394
  '_ob_commentz_use' => 'yes',
395
  '_ob_commentz_show_gravatar!' => 'none',
 
396
  ],
397
  ]
398
  );
@@ -410,6 +454,7 @@ class OoohBoi_Commentz {
410
  'condition' => [
411
  '_ob_commentz_use' => 'yes',
412
  '_ob_commentz_show_gravatar!' => 'none',
 
413
  ],
414
  ]
415
  );
@@ -439,6 +484,7 @@ class OoohBoi_Commentz {
439
  'condition' => [
440
  '_ob_commentz_use' => 'yes',
441
  '_ob_commentz_show_gravatar!' => 'none',
 
442
  ],
443
  ]
444
  );
@@ -489,6 +535,7 @@ class OoohBoi_Commentz {
489
  'label' => __( 'Meta-data style', 'ooohboi-steroids' ),
490
  'type' => Controls_Manager::POPOVER_TOGGLE,
491
  'return_value' => 'yes',
 
492
  'condition' => [
493
  '_ob_commentz_use' => 'yes',
494
  ],
@@ -507,6 +554,7 @@ class OoohBoi_Commentz {
507
  ],
508
  'condition' => [
509
  '_ob_commentz_use' => 'yes',
 
510
  ],
511
  ]
512
  );
@@ -523,6 +571,7 @@ class OoohBoi_Commentz {
523
  ],
524
  'condition' => [
525
  '_ob_commentz_use' => 'yes',
 
526
  ],
527
  ]
528
  );
@@ -561,6 +610,7 @@ class OoohBoi_Commentz {
561
  'label' => __( 'Comment text style', 'ooohboi-steroids' ),
562
  'type' => Controls_Manager::POPOVER_TOGGLE,
563
  'return_value' => 'yes',
 
564
  'condition' => [
565
  '_ob_commentz_use' => 'yes',
566
  ],
@@ -580,6 +630,7 @@ class OoohBoi_Commentz {
580
  ],
581
  'condition' => [
582
  '_ob_commentz_use' => 'yes',
 
583
  ],
584
  ]
585
  );
@@ -596,6 +647,7 @@ class OoohBoi_Commentz {
596
  ],
597
  'condition' => [
598
  '_ob_commentz_use' => 'yes',
 
599
  ],
600
  ]
601
  );
@@ -634,6 +686,7 @@ class OoohBoi_Commentz {
634
  'label' => __( 'Reply button style', 'ooohboi-steroids' ),
635
  'type' => Controls_Manager::POPOVER_TOGGLE,
636
  'return_value' => 'yes',
 
637
  'condition' => [
638
  '_ob_commentz_use' => 'yes',
639
  ],
@@ -659,6 +712,7 @@ class OoohBoi_Commentz {
659
  ],
660
  'condition' => [
661
  '_ob_commentz_use' => 'yes',
 
662
  ],
663
  ]
664
  );
@@ -674,6 +728,7 @@ class OoohBoi_Commentz {
674
  ],
675
  'condition' => [
676
  '_ob_commentz_use' => 'yes',
 
677
  ],
678
  ]
679
  );
@@ -689,6 +744,7 @@ class OoohBoi_Commentz {
689
  ],
690
  'condition' => [
691
  '_ob_commentz_use' => 'yes',
 
692
  ],
693
  ]
694
  );
@@ -706,6 +762,7 @@ class OoohBoi_Commentz {
706
  ],
707
  'condition' => [
708
  '_ob_commentz_use' => 'yes',
 
709
  ],
710
  ]
711
  );
@@ -723,6 +780,7 @@ class OoohBoi_Commentz {
723
  ],
724
  'condition' => [
725
  '_ob_commentz_use' => 'yes',
 
726
  ],
727
  ]
728
  );
@@ -739,6 +797,7 @@ class OoohBoi_Commentz {
739
  ],
740
  'condition' => [
741
  '_ob_commentz_use' => 'yes',
 
742
  ],
743
  ]
744
  );
@@ -755,6 +814,7 @@ class OoohBoi_Commentz {
755
  ],
756
  'condition' => [
757
  '_ob_commentz_use' => 'yes',
 
758
  ],
759
  ]
760
  );
@@ -770,6 +830,7 @@ class OoohBoi_Commentz {
770
  ],
771
  'condition' => [
772
  '_ob_commentz_use' => 'yes',
 
773
  ],
774
  ]
775
  );
@@ -783,6 +844,7 @@ class OoohBoi_Commentz {
783
  ],
784
  'condition' => [
785
  '_ob_commentz_use' => 'yes',
 
786
  ],
787
  ]
788
  );
@@ -797,6 +859,7 @@ class OoohBoi_Commentz {
797
  ],
798
  'condition' => [
799
  '_ob_commentz_use' => 'yes',
 
800
  ],
801
  ]
802
  );
@@ -811,6 +874,7 @@ class OoohBoi_Commentz {
811
  ],
812
  'condition' => [
813
  '_ob_commentz_use' => 'yes',
 
814
  ],
815
  ]
816
  );
@@ -852,6 +916,7 @@ class OoohBoi_Commentz {
852
  'label' => __( 'Comment form heading style', 'ooohboi-steroids' ),
853
  'type' => Controls_Manager::POPOVER_TOGGLE,
854
  'return_value' => 'yes',
 
855
  'condition' => [
856
  '_ob_commentz_use' => 'yes',
857
  ],
@@ -871,7 +936,8 @@ class OoohBoi_Commentz {
871
  '{{WRAPPER}}.ob-commentz #comments #reply-title' => 'color: {{VALUE}};',
872
  ],
873
  'condition' => [
874
- '_ob_commentz_use' => 'yes',
 
875
  ],
876
  ]
877
  );
@@ -891,6 +957,7 @@ class OoohBoi_Commentz {
891
  ],
892
  'condition' => [
893
  '_ob_commentz_use' => 'yes',
 
894
  ],
895
  ]
896
  );
@@ -905,6 +972,7 @@ class OoohBoi_Commentz {
905
  'label' => __( 'Comment form style', 'ooohboi-steroids' ),
906
  'type' => Controls_Manager::POPOVER_TOGGLE,
907
  'return_value' => 'yes',
 
908
  'condition' => [
909
  '_ob_commentz_use' => 'yes',
910
  ],
@@ -936,6 +1004,7 @@ class OoohBoi_Commentz {
936
  ],
937
  'condition' => [
938
  '_ob_commentz_use' => 'yes',
 
939
  ],
940
  ]
941
  );
@@ -951,6 +1020,7 @@ class OoohBoi_Commentz {
951
  ],
952
  'condition' => [
953
  '_ob_commentz_use' => 'yes',
 
954
  ],
955
  ]
956
  );
@@ -970,6 +1040,7 @@ class OoohBoi_Commentz {
970
  ],
971
  'condition' => [
972
  '_ob_commentz_use' => 'yes',
 
973
  ],
974
  ]
975
  );
@@ -989,6 +1060,7 @@ class OoohBoi_Commentz {
989
  ],
990
  'condition' => [
991
  '_ob_commentz_use' => 'yes',
 
992
  ],
993
  ]
994
  );
@@ -1027,6 +1099,7 @@ class OoohBoi_Commentz {
1027
  'label' => __( 'Comments Nav style', 'ooohboi-steroids' ),
1028
  'type' => Controls_Manager::POPOVER_TOGGLE,
1029
  'return_value' => 'yes',
 
1030
  'condition' => [
1031
  '_ob_commentz_use' => 'yes',
1032
  ],
@@ -1047,6 +1120,7 @@ class OoohBoi_Commentz {
1047
  ],
1048
  'condition' => [
1049
  '_ob_commentz_use' => 'yes',
 
1050
  ],
1051
  ]
1052
  );
4
  use Elementor\Element_Base;
5
  use Elementor\Group_Control_Border;
6
  use Elementor\Group_Control_Typography;
 
7
  use Elementor\Core\Schemes\Typography;
8
 
9
  if ( ! defined( 'ABSPATH' ) ) {
19
  */
20
  class OoohBoi_Commentz {
21
 
22
+ static $should_script_enqueue = false;
23
+
24
  /**
25
  * Initialize
26
  *
33
  add_action( 'elementor/element/post-comments/section_content/after_section_end', [ __CLASS__, 'add_section' ] );
34
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
35
 
36
+ /* should enqueue? */
37
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
38
+ /* add script */
39
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
40
+
41
+ }
42
+
43
+ /* enqueue script JS */
44
+ public static function enqueue_scripts() {
45
+
46
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/commentz-min.js';
47
+
48
+ if( file_exists( $extension_js ) ) {
49
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
50
+ }
51
+
52
+ }
53
+ /* should enqueue? */
54
+ public static function should_script_enqueue( $element ) {
55
+
56
+ if( self::$should_script_enqueue ) return;
57
+
58
+ if( 'yes' == $element->get_settings_for_display( '_ob_commentz_use' ) ) {
59
+
60
+ self::$should_script_enqueue = true;
61
+ self::enqueue_scripts();
62
+
63
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
64
+ }
65
  }
66
 
67
  public static function add_attributes( $element ) {
127
  [
128
  'label' => __( 'Heading style', 'ooohboi-steroids' ),
129
  'type' => Controls_Manager::POPOVER_TOGGLE,
130
+ 'frontend_available' => true,
131
  'return_value' => 'yes',
132
  'condition' => [
133
  '_ob_commentz_use' => 'yes',
148
  '{{WRAPPER}}.ob-commentz .title-comments' => 'color: {{VALUE}};',
149
  ],
150
  'condition' => [
151
+ '_ob_commentz_use' => 'yes',
152
+ '_ob_commentz_title' => 'yes',
153
  ],
154
  ]
155
  );
171
  ],
172
  'condition' => [
173
  '_ob_commentz_use' => 'yes',
174
+ '_ob_commentz_title' => 'yes',
175
  ],
176
  ]
177
  );
192
  ],
193
  'condition' => [
194
  '_ob_commentz_use' => 'yes',
195
+ '_ob_commentz_title' => 'yes',
196
  ],
197
  ]
198
  );
212
  ],
213
  'condition' => [
214
  '_ob_commentz_use' => 'yes',
215
+ '_ob_commentz_title' => 'yes',
216
  ],
217
  ]
218
  );
237
  'label' => __( 'Comment list style', 'ooohboi-steroids' ),
238
  'type' => Controls_Manager::POPOVER_TOGGLE,
239
  'return_value' => 'yes',
240
+ 'frontend_available' => true,
241
  'condition' => [
242
  '_ob_commentz_use' => 'yes',
243
  ],
258
  ],
259
  'condition' => [
260
  '_ob_commentz_use' => 'yes',
261
+ '_ob_comment_list_styles' => 'yes',
262
  ],
263
  ]
264
  );
274
  ],
275
  'condition' => [
276
  '_ob_commentz_use' => 'yes',
277
+ '_ob_comment_list_styles' => 'yes',
278
  ],
279
  ]
280
  );
301
  ],
302
  'condition' => [
303
  '_ob_commentz_use' => 'yes',
304
+ '_ob_comment_list_styles' => 'yes',
305
  ],
306
  ]
307
  );
317
  ],
318
  'condition' => [
319
  '_ob_commentz_use' => 'yes',
320
+ '_ob_comment_list_styles' => 'yes',
321
  ],
322
  ]
323
  );
333
  ],
334
  'condition' => [
335
  '_ob_commentz_use' => 'yes',
336
+ '_ob_comment_list_styles' => 'yes',
337
  ],
338
  ]
339
  );
364
  ],
365
  'condition' => [
366
  '_ob_commentz_use' => 'yes',
367
+ '_ob_comment_list_styles' => 'yes',
368
  ],
369
  ]
370
  );
399
  'label' => __( 'Gravatar style', 'ooohboi-steroids' ),
400
  'type' => Controls_Manager::POPOVER_TOGGLE,
401
  'return_value' => 'yes',
402
+ 'frontend_available' => true,
403
  'condition' => [
404
  '_ob_commentz_use' => 'yes',
405
  '_ob_commentz_show_gravatar!' => 'none',
436
  'condition' => [
437
  '_ob_commentz_use' => 'yes',
438
  '_ob_commentz_show_gravatar!' => 'none',
439
+ '_ob_gravatar_style' => 'yes',
440
  ],
441
  ]
442
  );
454
  'condition' => [
455
  '_ob_commentz_use' => 'yes',
456
  '_ob_commentz_show_gravatar!' => 'none',
457
+ '_ob_gravatar_style' => 'yes',
458
  ],
459
  ]
460
  );
484
  'condition' => [
485
  '_ob_commentz_use' => 'yes',
486
  '_ob_commentz_show_gravatar!' => 'none',
487
+ '_ob_gravatar_style' => 'yes',
488
  ],
489
  ]
490
  );
535
  'label' => __( 'Meta-data style', 'ooohboi-steroids' ),
536
  'type' => Controls_Manager::POPOVER_TOGGLE,
537
  'return_value' => 'yes',
538
+ 'frontend_available' => true,
539
  'condition' => [
540
  '_ob_commentz_use' => 'yes',
541
  ],
554
  ],
555
  'condition' => [
556
  '_ob_commentz_use' => 'yes',
557
+ '_ob_meta_style' => 'yes',
558
  ],
559
  ]
560
  );
571
  ],
572
  'condition' => [
573
  '_ob_commentz_use' => 'yes',
574
+ '_ob_meta_style' => 'yes',
575
  ],
576
  ]
577
  );
610
  'label' => __( 'Comment text style', 'ooohboi-steroids' ),
611
  'type' => Controls_Manager::POPOVER_TOGGLE,
612
  'return_value' => 'yes',
613
+ 'frontend_available' => true,
614
  'condition' => [
615
  '_ob_commentz_use' => 'yes',
616
  ],
630
  ],
631
  'condition' => [
632
  '_ob_commentz_use' => 'yes',
633
+ '_ob_comment_text_style' => 'yes',
634
  ],
635
  ]
636
  );
647
  ],
648
  'condition' => [
649
  '_ob_commentz_use' => 'yes',
650
+ '_ob_comment_text_style' => 'yes',
651
  ],
652
  ]
653
  );
686
  'label' => __( 'Reply button style', 'ooohboi-steroids' ),
687
  'type' => Controls_Manager::POPOVER_TOGGLE,
688
  'return_value' => 'yes',
689
+ 'frontend_available' => true,
690
  'condition' => [
691
  '_ob_commentz_use' => 'yes',
692
  ],
712
  ],
713
  'condition' => [
714
  '_ob_commentz_use' => 'yes',
715
+ '_ob_reply_style' => 'yes',
716
  ],
717
  ]
718
  );
728
  ],
729
  'condition' => [
730
  '_ob_commentz_use' => 'yes',
731
+ '_ob_reply_style' => 'yes',
732
  ],
733
  ]
734
  );
744
  ],
745
  'condition' => [
746
  '_ob_commentz_use' => 'yes',
747
+ '_ob_reply_style' => 'yes',
748
  ],
749
  ]
750
  );
762
  ],
763
  'condition' => [
764
  '_ob_commentz_use' => 'yes',
765
+ '_ob_reply_style' => 'yes',
766
  ],
767
  ]
768
  );
780
  ],
781
  'condition' => [
782
  '_ob_commentz_use' => 'yes',
783
+ '_ob_reply_style' => 'yes',
784
  ],
785
  ]
786
  );
797
  ],
798
  'condition' => [
799
  '_ob_commentz_use' => 'yes',
800
+ '_ob_reply_style' => 'yes',
801
  ],
802
  ]
803
  );
814
  ],
815
  'condition' => [
816
  '_ob_commentz_use' => 'yes',
817
+ '_ob_reply_style' => 'yes',
818
  ],
819
  ]
820
  );
830
  ],
831
  'condition' => [
832
  '_ob_commentz_use' => 'yes',
833
+ '_ob_reply_style' => 'yes',
834
  ],
835
  ]
836
  );
844
  ],
845
  'condition' => [
846
  '_ob_commentz_use' => 'yes',
847
+ '_ob_reply_style' => 'yes',
848
  ],
849
  ]
850
  );
859
  ],
860
  'condition' => [
861
  '_ob_commentz_use' => 'yes',
862
+ '_ob_reply_style' => 'yes',
863
  ],
864
  ]
865
  );
874
  ],
875
  'condition' => [
876
  '_ob_commentz_use' => 'yes',
877
+ '_ob_reply_style' => 'yes',
878
  ],
879
  ]
880
  );
916
  'label' => __( 'Comment form heading style', 'ooohboi-steroids' ),
917
  'type' => Controls_Manager::POPOVER_TOGGLE,
918
  'return_value' => 'yes',
919
+ 'frontend_available' => true,
920
  'condition' => [
921
  '_ob_commentz_use' => 'yes',
922
  ],
936
  '{{WRAPPER}}.ob-commentz #comments #reply-title' => 'color: {{VALUE}};',
937
  ],
938
  'condition' => [
939
+ '_ob_commentz_use' => 'yes',
940
+ '_ob_comment_form_title' => 'yes',
941
  ],
942
  ]
943
  );
957
  ],
958
  'condition' => [
959
  '_ob_commentz_use' => 'yes',
960
+ '_ob_comment_form_title' => 'yes',
961
  ],
962
  ]
963
  );
972
  'label' => __( 'Comment form style', 'ooohboi-steroids' ),
973
  'type' => Controls_Manager::POPOVER_TOGGLE,
974
  'return_value' => 'yes',
975
+ 'frontend_available' => true,
976
  'condition' => [
977
  '_ob_commentz_use' => 'yes',
978
  ],
1004
  ],
1005
  'condition' => [
1006
  '_ob_commentz_use' => 'yes',
1007
+ '_ob_comment_form_styles' => 'yes',
1008
  ],
1009
  ]
1010
  );
1020
  ],
1021
  'condition' => [
1022
  '_ob_commentz_use' => 'yes',
1023
+ '_ob_comment_form_styles' => 'yes',
1024
  ],
1025
  ]
1026
  );
1040
  ],
1041
  'condition' => [
1042
  '_ob_commentz_use' => 'yes',
1043
+ '_ob_comment_form_styles' => 'yes',
1044
  ],
1045
  ]
1046
  );
1060
  ],
1061
  'condition' => [
1062
  '_ob_commentz_use' => 'yes',
1063
+ '_ob_comment_form_styles' => 'yes',
1064
  ],
1065
  ]
1066
  );
1099
  'label' => __( 'Comments Nav style', 'ooohboi-steroids' ),
1100
  'type' => Controls_Manager::POPOVER_TOGGLE,
1101
  'return_value' => 'yes',
1102
+ 'frontend_available' => true,
1103
  'condition' => [
1104
  '_ob_commentz_use' => 'yes',
1105
  ],
1120
  ],
1121
  'condition' => [
1122
  '_ob_commentz_use' => 'yes',
1123
+ '_ob_navig_style' => 'yes',
1124
  ],
1125
  ]
1126
  );
controls/ooohboi-container-extras.php ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+
6
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly.
7
+
8
+ /**
9
+ * Main OoohBoi Container Extras class
10
+ *
11
+ * The main class that initiates and runs the plugin.
12
+ *
13
+ * @since 1.9.1
14
+ */
15
+ class OoohBoi_Container_Extras {
16
+
17
+ static $should_script_enqueue = false;
18
+
19
+ /**
20
+ * Initialize
21
+ *
22
+ * @since 1.0.0
23
+ *
24
+ * @access public
25
+ */
26
+ public static function init() {
27
+
28
+ /* CONTAINER */
29
+ add_action( 'elementor/element/container/section_layout_container/before_section_end', [ __CLASS__, 'add_section' ], 10, 2 );
30
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_container_attributes' ] );
31
+
32
+ /* should enqueue? */
33
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
34
+ /* add script */
35
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
36
+
37
+ }
38
+
39
+ /* enqueue script JS */
40
+ public static function enqueue_scripts() {
41
+
42
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/container-extras.js';
43
+
44
+ if( file_exists( $extension_js ) ) {
45
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
46
+ }
47
+
48
+ }
49
+ /* should enqueue? */
50
+ public static function should_script_enqueue( $element ) {
51
+
52
+ if( self::$should_script_enqueue ) return;
53
+
54
+ if( 'yes' == $element->get_settings_for_display( '_ob_use_container_extras' ) ) {
55
+
56
+ self::$should_script_enqueue = true;
57
+ self::enqueue_scripts();
58
+
59
+ remove_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
60
+ }
61
+ }
62
+
63
+ public static function add_container_attributes( Element_Base $element ) {
64
+ // bail if any other element but container
65
+ if ( $element->get_name() !== 'container' ) return;
66
+ // bail if editor
67
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
68
+ // grab the settings
69
+ $settings = $element->get_settings_for_display();
70
+
71
+ if( isset( $settings[ '_ob_use_container_extras' ] ) && 'yes' === $settings[ '_ob_use_container_extras' ] ) {
72
+ $element->add_render_attribute( '_wrapper', [
73
+ 'class' => 'ob-is-container-extras',
74
+ ] );
75
+ }
76
+
77
+ }
78
+
79
+ public static function add_section( Element_Base $element ) {
80
+
81
+ $element->add_control(
82
+ '_ob_container_extras',
83
+ [
84
+ 'label' => 'C O N T A I N E R &nbsp; E X R A S',
85
+ 'type' => Controls_Manager::HEADING,
86
+ 'separator' => 'before',
87
+ ]
88
+ );
89
+
90
+ // ------------------------------------------------------------------------- CONTROL: Yes 4 SpaceRat !
91
+ $element->add_control(
92
+ '_ob_use_container_extras',
93
+ [
94
+ 'label' => __( 'Enable Container Extras?', 'ooohboi-steroids' ),
95
+ 'description' => __( 'Get some more flexibility on Containers width', 'ooohboi-steroids' ),
96
+ 'separator' => 'before',
97
+ 'type' => Controls_Manager::SWITCHER,
98
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
99
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
100
+ 'return_value' => 'yes',
101
+ 'default' => 'no',
102
+ 'frontend_available' => true,
103
+ ]
104
+ );
105
+
106
+ // --------------------------------------------------------------------------------------------- CONTROL width
107
+ $element->add_responsive_control(
108
+ '_ob_ce_width',
109
+ [
110
+ 'label' => __( 'Width', 'ooohboi-steroids' ),
111
+ 'type' => Controls_Manager::TEXT,
112
+ 'separator' => 'before',
113
+ 'label_block' => true,
114
+ 'default' => '100%',
115
+ 'description' => __( 'You can enter any acceptable CSS value ( 50em, 25vw, 42.1% ) or the expression ( 100% - 300px, 55vw - 150px, 15rem - 20px ). NO calc() needed, it will be added automatically!', 'ooohboi-steroids' ),
116
+ 'selectors' => [
117
+ '{{WRAPPER}}.ob-is-container-extras' => 'min-width: calc({{VALUE}}); width: calc({{VALUE}});',
118
+ ],
119
+ 'frontend_available' => true,
120
+ 'condition' => [
121
+ '_ob_use_container_extras' => 'yes',
122
+ ],
123
+ ]
124
+ );
125
+
126
+ }
127
+
128
+ }
controls/ooohboi-glider.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_Glider {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -28,6 +30,55 @@ class OoohBoi_Glider {
28
  add_action( 'elementor/element/section/section_layout/after_section_end', [ __CLASS__, 'add_section' ], 10, 2 );
29
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
  public static function add_attributes( Element_Base $element ) {
@@ -62,7 +113,7 @@ class OoohBoi_Glider {
62
  '_ob_glider_is_slider',
63
  [
64
  'label' => __( 'Create Slider?', 'ooohboi-steroids' ),
65
- 'description' => __( 'This section columns will become slidable.', 'ooohboi-steroids' ),
66
  'separator' => 'before',
67
  'type' => Controls_Manager::SWITCHER,
68
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
@@ -70,7 +121,6 @@ class OoohBoi_Glider {
70
  'return_value' => 'yes',
71
  'default' => 'no',
72
  'frontend_available' => true,
73
- 'hide_in_inner' => true,
74
  ]
75
  );
76
  // ------------------------------------------------------------------------- CONTROL: Slider AutoHeight
@@ -114,7 +164,9 @@ class OoohBoi_Glider {
114
  'size' => 500,
115
  ],
116
  'selectors' => [
117
- '{{WRAPPER}}.ob-is-glider .swiper-container-vertical, {{WRAPPER}}.ob-is-glider .swiper-wrapper .swiper-slide' => 'height: {{SIZE}}{{UNIT}};',
 
 
118
  ],
119
  'condition' => [
120
  '_ob_glider_is_slider' => 'yes',
@@ -136,7 +188,7 @@ class OoohBoi_Glider {
136
  'return_value' => 'none',
137
  'default' => 'block',
138
  'selectors' => [
139
- '{{WRAPPER}}.ob-is-glider .elementor-container .swiper-button-prev, {{WRAPPER}}.ob-is-glider .elementor-container .swiper-button-next' => 'display: {{VALUE}};',
140
  ],
141
  'condition' => [
142
  '_ob_glider_is_slider' => 'yes',
@@ -170,12 +222,12 @@ class OoohBoi_Glider {
170
  'type' => Controls_Manager::COLOR,
171
  'default' => '#FFFFFF',
172
  'selectors' => [
173
- '{{WRAPPER}}.ob-is-glider .swiper-button-prev path' => 'fill: {{VALUE}};',
174
- '{{WRAPPER}}.ob-is-glider .swiper-button-next path' => 'fill: {{VALUE}};',
175
  ],
176
  'condition' => [
177
  '_ob_glider_is_slider' => 'yes',
178
  '_ob_glider_add_navig!' => 'none',
 
179
  ],
180
  ]
181
  );
@@ -187,12 +239,12 @@ class OoohBoi_Glider {
187
  'type' => Controls_Manager::COLOR,
188
  'default' => '#FFFFFF80',
189
  'selectors' => [
190
- '{{WRAPPER}}.ob-is-glider .swiper-button-prev:hover path' => 'fill: {{VALUE}};',
191
- '{{WRAPPER}}.ob-is-glider .swiper-button-next:hover path' => 'fill: {{VALUE}};',
192
  ],
193
  'condition' => [
194
  '_ob_glider_is_slider' => 'yes',
195
  '_ob_glider_add_navig!' => 'none',
 
196
  ],
197
  ]
198
  );
@@ -209,6 +261,7 @@ class OoohBoi_Glider {
209
  'condition' => [
210
  '_ob_glider_is_slider' => 'yes',
211
  '_ob_glider_add_navig!' => 'none',
 
212
  ],
213
  ]
214
  );
@@ -225,6 +278,7 @@ class OoohBoi_Glider {
225
  'condition' => [
226
  '_ob_glider_is_slider' => 'yes',
227
  '_ob_glider_add_navig!' => 'none',
 
228
  ],
229
  ]
230
  );
@@ -241,6 +295,7 @@ class OoohBoi_Glider {
241
  'condition' => [
242
  '_ob_glider_is_slider' => 'yes',
243
  '_ob_glider_add_navig!' => 'none',
 
244
  ],
245
  ]
246
  );
@@ -267,6 +322,7 @@ class OoohBoi_Glider {
267
  'condition' => [
268
  '_ob_glider_is_slider' => 'yes',
269
  '_ob_glider_add_navig!' => 'none',
 
270
  ],
271
  ]
272
  );
@@ -292,6 +348,7 @@ class OoohBoi_Glider {
292
  'condition' => [
293
  '_ob_glider_is_slider' => 'yes',
294
  '_ob_glider_add_navig!' => 'none',
 
295
  ],
296
  ]
297
  );
@@ -309,6 +366,7 @@ class OoohBoi_Glider {
309
  'condition' => [
310
  '_ob_glider_is_slider' => 'yes',
311
  '_ob_glider_add_navig!' => 'none',
 
312
  ],
313
  ]
314
  );
@@ -326,6 +384,7 @@ class OoohBoi_Glider {
326
  'condition' => [
327
  '_ob_glider_is_slider' => 'yes',
328
  '_ob_glider_add_navig!' => 'none',
 
329
  ],
330
  ]
331
  );
@@ -343,6 +402,7 @@ class OoohBoi_Glider {
343
  'condition' => [
344
  '_ob_glider_is_slider' => 'yes',
345
  '_ob_glider_add_navig!' => 'none',
 
346
  ],
347
  ]
348
  );
@@ -361,7 +421,7 @@ class OoohBoi_Glider {
361
  'return_value' => 'none',
362
  'default' => 'block',
363
  'selectors' => [
364
- '{{WRAPPER}}.ob-is-glider .elementor-container .swiper-pagination' => 'display: {{VALUE}};',
365
  ],
366
  'condition' => [
367
  '_ob_glider_is_slider' => 'yes',
@@ -401,6 +461,7 @@ class OoohBoi_Glider {
401
  ],
402
  'condition' => [
403
  '_ob_glider_is_slider' => 'yes',
 
404
  ],
405
  'frontend_available' => true,
406
  ]
@@ -419,6 +480,7 @@ class OoohBoi_Glider {
419
  ],
420
  'condition' => [
421
  '_ob_glider_is_slider' => 'yes',
 
422
  ],
423
  ]
424
  );
@@ -436,6 +498,7 @@ class OoohBoi_Glider {
436
  ],
437
  'condition' => [
438
  '_ob_glider_is_slider' => 'yes',
 
439
  ],
440
  ]
441
  );
@@ -462,6 +525,7 @@ class OoohBoi_Glider {
462
  ],
463
  'condition' => [
464
  '_ob_glider_is_slider' => 'yes',
 
465
  ],
466
  ]
467
  );
@@ -475,11 +539,10 @@ class OoohBoi_Glider {
475
  'selectors' => [
476
  '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
477
  ],
478
- 'condition' => [
479
- '_ob_glider_pagination_type' => [ 'bullets' ],
480
- ],
481
  'condition' => [
482
  '_ob_glider_is_slider' => 'yes',
 
 
483
  ],
484
  ]
485
  );
@@ -510,7 +573,7 @@ class OoohBoi_Glider {
510
  $element->add_control(
511
  '_ob_glider_allow_multi_slides',
512
  [
513
- 'label' => sprintf( __( 'Show Multiple Slides%sNEW!%s', 'ooohboi-steroids' ), '<sup class="ob-new-feature">', '</sup>' ),
514
  'type' => Controls_Manager::SWITCHER,
515
  'separator' => 'before',
516
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
@@ -553,7 +616,7 @@ class OoohBoi_Glider {
553
  '_ob_glider_slides_to_scroll',
554
  [
555
  'label' => __( 'Slides to Scroll', 'ooohboi-steroids' ),
556
- 'description' => __( 'Scrolling multiple slides can break infinite loop.' ),
557
  'type' => Controls_Manager::SELECT,
558
  'desktop_default' => 1,
559
  'tablet_default' => 1,
@@ -585,6 +648,50 @@ class OoohBoi_Glider {
585
  'hide_in_inner' => true,
586
  ]
587
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
  /* -------------- */
589
  // ------------------------------------------------------------------------- CONTROL Loop
590
  $element->add_control(
@@ -665,7 +772,7 @@ class OoohBoi_Glider {
665
  $element->add_control(
666
  '_ob_glider_allow_touch_move',
667
  [
668
- 'label' => __( 'Allow Touch Move', 'ooohboi-steroids' ),
669
  'type' => Controls_Manager::SWITCHER,
670
  'separator' => 'before',
671
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
@@ -679,6 +786,44 @@ class OoohBoi_Glider {
679
  'hide_in_inner' => true,
680
  ]
681
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  // ------------------------------------------------------------------------- CONTROL Autoplay
683
  $element->add_control(
684
  '_ob_glider_autoplay',
@@ -714,6 +859,41 @@ class OoohBoi_Glider {
714
  'hide_in_inner' => true,
715
  ]
716
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
717
 
718
  $element->end_controls_section();
719
 
16
  */
17
  class OoohBoi_Glider {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
30
  add_action( 'elementor/element/section/section_layout/after_section_end', [ __CLASS__, 'add_section' ], 10, 2 );
31
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
32
 
33
+ /* CONTAINER */
34
+ add_action( 'elementor/element/container/section_layout/after_section_end', [ __CLASS__, 'add_section' ], 10, 2 );
35
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_container_attributes' ] );
36
+
37
+ /* should enqueue? */
38
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
39
+ /* add script */
40
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
41
+
42
+ }
43
+
44
+ /* enqueue script JS */
45
+ public static function enqueue_scripts() {
46
+
47
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/glider-min.js';
48
+
49
+ if( file_exists( $extension_js ) ) {
50
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
51
+ }
52
+
53
+ }
54
+ /* should enqueue? */
55
+ public static function should_script_enqueue( $element ) {
56
+
57
+ if( self::$should_script_enqueue ) return;
58
+
59
+ if( 'yes' == $element->get_settings_for_display( '_ob_glider_is_slider' ) ) {
60
+
61
+ self::$should_script_enqueue = true;
62
+ self::enqueue_scripts();
63
+
64
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
65
+ }
66
+ }
67
+ /* add_container_attributes separate from an old ELEmentor grid */
68
+ public static function add_container_attributes( Element_Base $element ) {
69
+ // bail if any other element but container
70
+ if ( $element->get_name() !== 'container' ) return;
71
+ // bail if editor
72
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
73
+ // grab the settings
74
+ $settings = $element->get_settings_for_display();
75
+
76
+ if( isset( $settings[ '_ob_glider_is_slider' ] ) && 'yes' === $settings[ '_ob_glider_is_slider' ] ) {
77
+ $element->add_render_attribute( '_wrapper', [
78
+ 'class' => 'ob-is-glider',
79
+ ] );
80
+ }
81
+
82
  }
83
 
84
  public static function add_attributes( Element_Base $element ) {
113
  '_ob_glider_is_slider',
114
  [
115
  'label' => __( 'Create Slider?', 'ooohboi-steroids' ),
116
+ 'description' => __( 'This container containers will become slidable. TIP: Use this Switch to refresh your Glider.', 'ooohboi-steroids' ),
117
  'separator' => 'before',
118
  'type' => Controls_Manager::SWITCHER,
119
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
121
  'return_value' => 'yes',
122
  'default' => 'no',
123
  'frontend_available' => true,
 
124
  ]
125
  );
126
  // ------------------------------------------------------------------------- CONTROL: Slider AutoHeight
164
  'size' => 500,
165
  ],
166
  'selectors' => [
167
+ '{{WRAPPER}}.ob-is-glider' => 'height: {{SIZE}}{{UNIT}} !important;',
168
+ '{{WRAPPER}}.ob-is-glider .swiper-wrapper' => 'height: {{SIZE}}{{UNIT}} !important;',
169
+ '{{WRAPPER}}.ob-is-glider .swiper-wrapper .swiper-slide' => 'height: {{SIZE}}{{UNIT}} !important;',
170
  ],
171
  'condition' => [
172
  '_ob_glider_is_slider' => 'yes',
188
  'return_value' => 'none',
189
  'default' => 'block',
190
  'selectors' => [
191
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev, {{WRAPPER}}.ob-is-glider .swiper-button-next' => 'display: {{VALUE}} !important;',
192
  ],
193
  'condition' => [
194
  '_ob_glider_is_slider' => 'yes',
222
  'type' => Controls_Manager::COLOR,
223
  'default' => '#FFFFFF',
224
  'selectors' => [
225
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev, {{WRAPPER}}.ob-is-glider .swiper-button-next' => 'fill: {{VALUE}};',
 
226
  ],
227
  'condition' => [
228
  '_ob_glider_is_slider' => 'yes',
229
  '_ob_glider_add_navig!' => 'none',
230
+ '_ob_glider_nav_styles' => 'yes',
231
  ],
232
  ]
233
  );
239
  'type' => Controls_Manager::COLOR,
240
  'default' => '#FFFFFF80',
241
  'selectors' => [
242
+ '{{WRAPPER}}.ob-is-glider .swiper-button-prev:hover, {{WRAPPER}}.ob-is-glider .swiper-button-next:hover' => 'fill: {{VALUE}};',
 
243
  ],
244
  'condition' => [
245
  '_ob_glider_is_slider' => 'yes',
246
  '_ob_glider_add_navig!' => 'none',
247
+ '_ob_glider_nav_styles' => 'yes',
248
  ],
249
  ]
250
  );
261
  'condition' => [
262
  '_ob_glider_is_slider' => 'yes',
263
  '_ob_glider_add_navig!' => 'none',
264
+ '_ob_glider_nav_styles' => 'yes',
265
  ],
266
  ]
267
  );
278
  'condition' => [
279
  '_ob_glider_is_slider' => 'yes',
280
  '_ob_glider_add_navig!' => 'none',
281
+ '_ob_glider_nav_styles' => 'yes',
282
  ],
283
  ]
284
  );
295
  'condition' => [
296
  '_ob_glider_is_slider' => 'yes',
297
  '_ob_glider_add_navig!' => 'none',
298
+ '_ob_glider_nav_styles' => 'yes',
299
  ],
300
  ]
301
  );
322
  'condition' => [
323
  '_ob_glider_is_slider' => 'yes',
324
  '_ob_glider_add_navig!' => 'none',
325
+ '_ob_glider_nav_styles' => 'yes',
326
  ],
327
  ]
328
  );
348
  'condition' => [
349
  '_ob_glider_is_slider' => 'yes',
350
  '_ob_glider_add_navig!' => 'none',
351
+ '_ob_glider_nav_styles' => 'yes',
352
  ],
353
  ]
354
  );
366
  'condition' => [
367
  '_ob_glider_is_slider' => 'yes',
368
  '_ob_glider_add_navig!' => 'none',
369
+ '_ob_glider_nav_styles' => 'yes',
370
  ],
371
  ]
372
  );
384
  'condition' => [
385
  '_ob_glider_is_slider' => 'yes',
386
  '_ob_glider_add_navig!' => 'none',
387
+ '_ob_glider_nav_styles' => 'yes',
388
  ],
389
  ]
390
  );
402
  'condition' => [
403
  '_ob_glider_is_slider' => 'yes',
404
  '_ob_glider_add_navig!' => 'none',
405
+ '_ob_glider_nav_styles' => 'yes',
406
  ],
407
  ]
408
  );
421
  'return_value' => 'none',
422
  'default' => 'block',
423
  'selectors' => [
424
+ '{{WRAPPER}}.ob-is-glider .swiper-pagination' => 'display: {{VALUE}} !important;',
425
  ],
426
  'condition' => [
427
  '_ob_glider_is_slider' => 'yes',
461
  ],
462
  'condition' => [
463
  '_ob_glider_is_slider' => 'yes',
464
+ '_ob_glider_pagination_styles' => 'yes',
465
  ],
466
  'frontend_available' => true,
467
  ]
480
  ],
481
  'condition' => [
482
  '_ob_glider_is_slider' => 'yes',
483
+ '_ob_glider_pagination_styles' => 'yes',
484
  ],
485
  ]
486
  );
498
  ],
499
  'condition' => [
500
  '_ob_glider_is_slider' => 'yes',
501
+ '_ob_glider_pagination_styles' => 'yes',
502
  ],
503
  ]
504
  );
525
  ],
526
  'condition' => [
527
  '_ob_glider_is_slider' => 'yes',
528
+ '_ob_glider_pagination_styles' => 'yes',
529
  ],
530
  ]
531
  );
539
  'selectors' => [
540
  '{{WRAPPER}}.ob-is-glider .swiper-pagination-bullet' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
541
  ],
 
 
 
542
  'condition' => [
543
  '_ob_glider_is_slider' => 'yes',
544
+ '_ob_glider_pagination_type' => [ 'bullets' ],
545
+ '_ob_glider_pagination_styles' => 'yes',
546
  ],
547
  ]
548
  );
573
  $element->add_control(
574
  '_ob_glider_allow_multi_slides',
575
  [
576
+ 'label' => __( 'Show Multiple Slides', 'ooohboi-steroids' ),
577
  'type' => Controls_Manager::SWITCHER,
578
  'separator' => 'before',
579
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
616
  '_ob_glider_slides_to_scroll',
617
  [
618
  'label' => __( 'Slides to Scroll', 'ooohboi-steroids' ),
619
+ 'description' => __( 'Scrolling multiple slides can break infinite loop.', 'ooohboi-steroids' ),
620
  'type' => Controls_Manager::SELECT,
621
  'desktop_default' => 1,
622
  'tablet_default' => 1,
648
  'hide_in_inner' => true,
649
  ]
650
  );
651
+ // v1.7.9
652
+ // ------------------------------------------------------------------------- CONTROL: Centered Slides Bounds
653
+ $element->add_control(
654
+ '_ob_glider_centered_slides',
655
+ [
656
+ 'label' => __( 'Centered Slides', 'ooohboi-steroids' ),
657
+ 'description' => __( 'Active slide will be centered.', 'ooohboi-steroids' ),
658
+ 'type' => Controls_Manager::SWITCHER,
659
+ 'separator' => 'before',
660
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
661
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
662
+ 'return_value' => 'yes',
663
+ 'default' => 'no',
664
+ 'condition' => [
665
+ '_ob_glider_allow_multi_slides' => 'yes',
666
+ '_ob_glider_is_slider' => 'yes',
667
+ '_ob_glider_effect' => 'slide',
668
+ ],
669
+ 'frontend_available' => true,
670
+ 'hide_in_inner' => true,
671
+ ]
672
+ );
673
+ // ------------------------------------------------------------------------- CONTROL: Centered Slides Bounds
674
+ $element->add_control(
675
+ '_ob_glider_centered_bounds_slides',
676
+ [
677
+ 'label' => __( 'Centered Slide Bounds', 'ooohboi-steroids' ),
678
+ 'description' => __( 'Active slide will be centered without adding gaps at the beginning and end of slider.', 'ooohboi-steroids' ),
679
+ 'type' => Controls_Manager::SWITCHER,
680
+ 'separator' => 'before',
681
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
682
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
683
+ 'return_value' => 'yes',
684
+ 'default' => 'no',
685
+ 'condition' => [
686
+ '_ob_glider_allow_multi_slides' => 'yes',
687
+ '_ob_glider_centered_slides' => 'yes',
688
+ '_ob_glider_is_slider' => 'yes',
689
+ '_ob_glider_effect' => 'slide',
690
+ ],
691
+ 'frontend_available' => true,
692
+ 'hide_in_inner' => true,
693
+ ]
694
+ );
695
  /* -------------- */
696
  // ------------------------------------------------------------------------- CONTROL Loop
697
  $element->add_control(
772
  $element->add_control(
773
  '_ob_glider_allow_touch_move',
774
  [
775
+ 'label' => __( 'Enable Touch Move', 'ooohboi-steroids' ),
776
  'type' => Controls_Manager::SWITCHER,
777
  'separator' => 'before',
778
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
786
  'hide_in_inner' => true,
787
  ]
788
  );
789
+ // ------------------------------------------------------------------------- CONTROL Enable Mousewheel
790
+ $element->add_control(
791
+ '_ob_glider_allow_mousewheel',
792
+ [
793
+ 'label' => __( 'Enable Mousewheel', 'ooohboi-steroids' ),
794
+ 'type' => Controls_Manager::SWITCHER,
795
+ 'separator' => 'before',
796
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
797
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
798
+ 'return_value' => 'yes',
799
+ 'default' => 'no',
800
+ 'condition' => [
801
+ '_ob_glider_is_slider' => 'yes',
802
+ ],
803
+ 'frontend_available' => true,
804
+ 'hide_in_inner' => true,
805
+ ]
806
+ );
807
+ // ------------------------------------------------------------------------- CONTROL: De-blur slides content
808
+ $element->add_control(
809
+ '_ob_glider_roundlengths_slides',
810
+ [
811
+ 'label' => __( 'Deblur Slides', 'ooohboi-steroids' ),
812
+ 'description' => __( 'Round values of slides width and height to prevent blurry texts?', 'ooohboi-steroids' ),
813
+ 'type' => Controls_Manager::SWITCHER,
814
+ 'separator' => 'before',
815
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
816
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
817
+ 'return_value' => 'yes',
818
+ 'default' => 'no',
819
+ 'condition' => [
820
+ '_ob_glider_is_slider' => 'yes',
821
+ '_ob_glider_effect' => 'slide',
822
+ ],
823
+ 'frontend_available' => true,
824
+ 'hide_in_inner' => true,
825
+ ]
826
+ );
827
  // ------------------------------------------------------------------------- CONTROL Autoplay
828
  $element->add_control(
829
  '_ob_glider_autoplay',
859
  'hide_in_inner' => true,
860
  ]
861
  );
862
+
863
+ if( 'container' === $element->get_name() ) {
864
+ // ------------------------------------------------------------------------- CONTROL: Glider ID
865
+ $element->add_control(
866
+ '_ob_glider_control_id_description',
867
+ [
868
+ 'label' => esc_html__( 'Control Glider externally!', 'ooohboi-animator' ),
869
+ 'type' => Controls_Manager::RAW_HTML,
870
+ 'raw' => __( 'You can control this Glider instance from any link on this page by adding the custom class name to the link.
871
+ Copy the text entirely and append the slide number to go to at the end. For instance: glider-NNNNNNN-gotoslide-3', 'ooohboi-animator' ),
872
+ 'content_classes' => 'elementor-control-field-description',
873
+ 'separator' => 'before',
874
+ 'condition' => [
875
+ '_ob_glider_is_slider' => 'yes',
876
+ ],
877
+ ]
878
+ );
879
+ $element->add_control(
880
+ '_ob_glider_control_id',
881
+ [
882
+ 'label' => __( 'This Glider control class', 'ooohboi-steroids' ),
883
+ 'type' => Controls_Manager::TEXT,
884
+ 'render_type' => 'ui',
885
+ 'description' => '<script>
886
+ var $obWidgetID = jQuery(\'.elementor-control-_ob_glider_control_id input\');
887
+ $obWidgetID.val("glider-" + elementor.getCurrentElement().model.id + "-gotoslide-");
888
+ $obWidgetID.attr(\'readonly\', true);
889
+ $obWidgetID.on(\'focus click\', function() { this.select();document.execCommand(\'copy\'); });
890
+ </script>',
891
+ 'condition' => [
892
+ '_ob_glider_is_slider' => 'yes',
893
+ ],
894
+ ]
895
+ );
896
+ }
897
 
898
  $element->end_controls_section();
899
 
controls/ooohboi-harakiri.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_Harakiri {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -29,6 +31,35 @@ class OoohBoi_Harakiri {
29
  add_action( 'elementor/element/text-editor/section_style/before_section_end', [ __CLASS__, 'add_section' ] );
30
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  }
33
 
34
  public static function add_attributes( Element_Base $element ) {
@@ -43,7 +74,6 @@ class OoohBoi_Harakiri {
43
  }
44
 
45
  public static function add_section( Element_Base $element ) {
46
- if( strpos( $_SERVER[ 'SERVER_NAME' ], 'krieder' ) !== false ) return;
47
 
48
  // create panel section
49
  $element->add_control(
@@ -87,45 +117,29 @@ class OoohBoi_Harakiri {
87
  ],
88
  ]
89
  );
 
90
  $element->add_responsive_control(
91
  '_ob_harakiri_make_inline',
92
  [
93
- 'label' => __( 'Flip', 'ooohboi-steroids' ),
94
- 'type' => Controls_Manager::SWITCHER,
95
- 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
96
- 'label_off' => __( 'No', 'ooohboi-steroids' ),
97
- 'return_value' => 'no',
98
- 'default' => 'no',
99
- 'label_block' => false,
100
- 'condition' => [
101
- '_ob_harakiri_writing_mode!' => 'inherit',
102
- ],
103
- 'selectors' => [
104
- '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
105
- '{{WRAPPER}}.ob-harakiri .elementor-widget-container > div' => 'transform: rotate(180deg);',
106
- ],
107
- 'device_args' => [
108
- Controls_Stack::RESPONSIVE_TABLET => [
109
- 'selectors' => [
110
- '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
111
- '{{WRAPPER}}.ob-harakiri .elementor-widget-container > div' => 'transform: rotate(180deg);',
112
- ],
113
- 'condition' => [
114
- '_ob_harakiri_writing_mode_tablet!' => 'inherit',
115
- ],
116
- ],
117
- Controls_Stack::RESPONSIVE_MOBILE => [
118
- 'selectors' => [
119
- '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: rotate(180deg);',
120
- '{{WRAPPER}}.ob-harakiri .elementor-widget-container > div' => 'transform: rotate(180deg);',
121
- ],
122
- 'condition' => [
123
- '_ob_harakiri_writing_mode_mobile!' => 'inherit',
124
- ],
125
- ],
126
- ],
127
  ]
128
- );
 
 
129
  $element->add_responsive_control(
130
  '_ob_harakiri_height',
131
  [
@@ -247,6 +261,22 @@ class OoohBoi_Harakiri {
247
  ]
248
  );
249
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
  }
251
 
252
  }
16
  */
17
  class OoohBoi_Harakiri {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
31
  add_action( 'elementor/element/text-editor/section_style/before_section_end', [ __CLASS__, 'add_section' ] );
32
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
33
 
34
+ /* should enqueue? */
35
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
36
+ /* add script */
37
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
38
+
39
+ }
40
+
41
+ /* enqueue script JS */
42
+ public static function enqueue_scripts() {
43
+
44
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/harakiri-min.js';
45
+
46
+ if( file_exists( $extension_js ) ) {
47
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
48
+ }
49
+
50
+ }
51
+ /* should enqueue? */
52
+ public static function should_script_enqueue( $element ) {
53
+
54
+ if( self::$should_script_enqueue ) return;
55
+
56
+ if( 'inherit' != $element->get_settings_for_display( '_ob_harakiri_writing_mode' ) ) {
57
+
58
+ self::$should_script_enqueue = true;
59
+ self::enqueue_scripts();
60
+
61
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
62
+ }
63
  }
64
 
65
  public static function add_attributes( Element_Base $element ) {
74
  }
75
 
76
  public static function add_section( Element_Base $element ) {
 
77
 
78
  // create panel section
79
  $element->add_control(
117
  ],
118
  ]
119
  );
120
+ /* 1.8.2 - UPD !!! */
121
  $element->add_responsive_control(
122
  '_ob_harakiri_make_inline',
123
  [
124
+ 'label' => __( 'Flip', 'ooohboi-steroids' ),
125
+ 'type' => Controls_Manager::SELECT,
126
+ 'default' => 'no',
127
+ 'options' => [
128
+ 'yes' => __( 'Yes', 'ooohboi-steroids' ),
129
+ 'no' => __( 'No', 'ooohboi-steroids' ),
130
+ ],
131
+ 'selectors_dictionary' => [
132
+ 'yes' => 'rotate(180deg)',
133
+ 'no' => 'rotate(0deg)',
134
+ ],
135
+ 'selectors' => [
136
+ '{{WRAPPER}}.ob-harakiri .elementor-heading-title' => 'transform: {{VALUE}};',
137
+ '{{WRAPPER}}.ob-harakiri .elementor-widget-container > div' => 'transform: {{VALUE}};',
138
+ ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  ]
140
+ );
141
+
142
+
143
  $element->add_responsive_control(
144
  '_ob_harakiri_height',
145
  [
261
  ]
262
  );
263
 
264
+ /* since 1.8.2 - cutt bottom margin */
265
+ $element->add_control(
266
+ '_ob_harakiri_cut_bottom_margin',
267
+ [
268
+ 'label' => __( 'Cut off the bottom margin', 'ooohboi-steroids' ),
269
+ 'description' => __( 'NOTE: Only the last child P(aragraph) shall be cut off!', 'ooohboi-steroids' ),
270
+ 'type' => Controls_Manager::SWITCHER,
271
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
272
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
273
+ 'return_value' => 'inherit',
274
+ 'selectors' => [
275
+ '{{WRAPPER}} .elementor-widget-container p:last-child' => 'margin-bottom: 0px;',
276
+ ],
277
+ ]
278
+ );
279
+
280
  }
281
 
282
  }
controls/ooohboi-hover-animator.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_Hover_Animator {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -26,23 +28,61 @@ class OoohBoi_Hover_Animator {
26
  public static function init() {
27
 
28
  add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'add_section' ] );
29
- add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
 
30
  add_action( 'elementor/element/column/section_advanced/before_section_end', [ __CLASS__, 'manage_column_option' ], 10, 2 );
 
 
 
31
  /* allow hoveranimator for the column ? */
32
- add_action( 'elementor/frontend/column/before_render', function( Element_Base $element ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
- if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
35
- $settings = $element->get_settings_for_display();
36
 
37
- if ( isset( $settings[ '_ob_column_hoveranimator' ] ) && 'yes' === $settings[ '_ob_column_hoveranimator' ] ) {
38
 
39
- $element->add_render_attribute( '_wrapper', [
40
- 'class' => 'ob-is-hoveranimator'
41
- ] );
42
 
43
- }
 
 
 
 
 
 
 
44
 
45
- } );
 
 
 
 
 
 
46
 
47
  }
48
 
@@ -77,43 +117,40 @@ class OoohBoi_Hover_Animator {
77
  '_ob_hoveranimator_column_fake_description',
78
  [
79
  'type' => Controls_Manager::RAW_HTML,
80
- 'raw' => __( 'With Hoveranimator you can animate any widget in this column on mouse-over event. Animation panel is available under the Advanced tab, per widget!', 'ooohboi-steroids' ),
81
  'content_classes' => 'elementor-control-field-description',
82
  ]
83
  );
84
  // ------------------------------------------------------------------------- CONTROL: Visibility
85
- $element->add_control(
86
- '_ob_hoveranimator_visibility',
87
- [
88
- 'label' => __( 'Content Overflow', 'ooohboi-steroids' ),
89
- 'description' => __( 'VISIBLE - makes visible all the elements outside this Column boundaries, HIDDEN - hides everything outside this Column boundaries.', 'ooohboi-steroids' ),
90
- 'type' => Controls_Manager::SELECT,
91
- 'default' => 'hidden',
92
- 'separator' => 'before',
93
- 'options' => [
94
- 'visible' => __( 'Visible', 'ooohboi-steroids' ),
95
- 'hidden' => __( 'Hidden', 'ooohboi-steroids' ),
96
- ],
97
- 'selectors' => [
98
- '{{WRAPPER}}.ob-is-hoveranimator' => 'overflow: {{VALUE}};',
99
- ],
100
- 'condition' => [
101
- '_ob_column_hoveranimator' => 'yes',
102
- ],
103
- ]
104
- );
 
 
105
 
106
  }
107
 
108
  public static function add_attributes( Element_Base $element ) {
109
 
110
- if ( in_array( $element->get_name(), [ 'section', 'column' ] ) ) {
111
- return;
112
- }
113
-
114
- if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
115
- return;
116
- }
117
 
118
  $settings = $element->get_settings_for_display();
119
 
@@ -157,6 +194,7 @@ class OoohBoi_Hover_Animator {
157
  'label' => __( 'Opacity', 'ooohboi-steroids' ),
158
  'type' => Controls_Manager::POPOVER_TOGGLE,
159
  'return_value' => 'yes',
 
160
  'condition' => [
161
  '_ob_allow_hoveranimator' => 'yes',
162
  ],
@@ -170,7 +208,8 @@ class OoohBoi_Hover_Animator {
170
  '_ob_hoveranimator_opacity',
171
  [
172
  'label' => __( 'Opacity Normal', 'ooohboi-steroids' ),
173
- 'type' => Controls_Manager::SLIDER,
 
174
  'default' => [
175
  'size' => 1,
176
  ],
@@ -181,10 +220,11 @@ class OoohBoi_Hover_Animator {
181
  ],
182
  ],
183
  'selectors' => [
184
- '{{WRAPPER}}.ob-is-hoveranimal' => 'opacity: {{SIZE}};',
185
  ],
186
  'condition' => [
187
- '_ob_allow_hoveranimator' => 'yes',
 
188
  ],
189
  ]
190
  );
@@ -193,7 +233,8 @@ class OoohBoi_Hover_Animator {
193
  '_ob_hoveranimator_opacity_hover',
194
  [
195
  'label' => __( 'Opacity Hover', 'ooohboi-steroids' ),
196
- 'type' => Controls_Manager::SLIDER,
 
197
  'default' => [
198
  'size' => 1,
199
  ],
@@ -204,9 +245,9 @@ class OoohBoi_Hover_Animator {
204
  ],
205
  ],
206
  'condition' => [
207
- '_ob_allow_hoveranimator' => 'yes',
 
208
  ],
209
- 'frontend_available' => true,
210
  ]
211
  );
212
  // --------------------------------------------------------------------------------------------- CONTROL OPACITY duration
@@ -215,7 +256,8 @@ class OoohBoi_Hover_Animator {
215
  [
216
  'label' => __( 'Duration', 'ooohboi-steroids' ),
217
  'separator' => 'before',
218
- 'type' => Controls_Manager::SLIDER,
 
219
  'render_type' => 'template',
220
  'default' => [
221
  'size' => 250,
@@ -227,12 +269,13 @@ class OoohBoi_Hover_Animator {
227
  ],
228
  ],
229
  'selectors' => [
230
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
231
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
232
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
233
  ],
234
  'condition' => [
235
- '_ob_allow_hoveranimator' => 'yes',
 
236
  ],
237
  ]
238
  );
@@ -242,7 +285,8 @@ class OoohBoi_Hover_Animator {
242
  [
243
  'label' => __( 'Delay', 'ooohboi-steroids' ),
244
  'separator' => 'before',
245
- 'type' => Controls_Manager::SLIDER,
 
246
  'render_type' => 'template',
247
  'default' => [
248
  'size' => 0,
@@ -254,12 +298,13 @@ class OoohBoi_Hover_Animator {
254
  ],
255
  ],
256
  'selectors' => [
257
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
258
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
259
  transition-delay: {{SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms;, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
260
  ],
261
  'condition' => [
262
- '_ob_allow_hoveranimator' => 'yes',
 
263
  ],
264
  ]
265
  );
@@ -279,12 +324,13 @@ class OoohBoi_Hover_Animator {
279
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
280
  ],
281
  'selectors' => [
282
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
283
  transition-timing-function: {{VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
284
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
285
  ],
286
  'condition' => [
287
- '_ob_allow_hoveranimator' => 'yes',
 
288
  ],
289
  ]
290
  );
@@ -296,7 +342,8 @@ class OoohBoi_Hover_Animator {
296
  '_ob_hoveranimator_y_popover',
297
  [
298
  'label' => __( 'Offset Top', 'ooohboi-steroids' ),
299
- 'type' => Controls_Manager::POPOVER_TOGGLE,
 
300
  'return_value' => 'yes',
301
  'condition' => [
302
  '_ob_allow_hoveranimator' => 'yes',
@@ -311,7 +358,8 @@ class OoohBoi_Hover_Animator {
311
  '_ob_hoveranimator_y',
312
  [
313
  'label' => __( 'Offset Top Normal', 'ooohboi-steroids' ),
314
- 'type' => Controls_Manager::SLIDER,
 
315
  'size_units' => [ 'px', '%' ],
316
  'range' => [
317
  'px' => [
@@ -328,11 +376,12 @@ class OoohBoi_Hover_Animator {
328
  'size' => 0,
329
  ],
330
  'selectors' => [
331
- '{{WRAPPER}}.ob-is-hoveranimal' => 'top: {{SIZE}}{{UNIT}};',
332
  ],
333
  'condition' => [
334
  '_ob_hoveranimator_y_alt' => '',
335
- '_ob_allow_hoveranimator' => 'yes',
 
336
  ],
337
  ]
338
  );
@@ -342,12 +391,15 @@ class OoohBoi_Hover_Animator {
342
  [
343
  'label' => __( 'Calc Offset Top Normal', 'ooohboi-steroids' ),
344
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
345
- 'type' => Controls_Manager::TEXT,
 
 
346
  'selectors' => [
347
- '{{WRAPPER}}.ob-is-hoveranimal' => 'top: calc({{VALUE}});',
348
  ],
349
  'condition' => [
350
- '_ob_allow_hoveranimator' => 'yes',
 
351
  ],
352
  ]
353
  );
@@ -356,7 +408,8 @@ class OoohBoi_Hover_Animator {
356
  '_ob_hoveranimator_y_hover',
357
  [
358
  'label' => __( 'Offset Top Hover', 'ooohboi-steroids' ),
359
- 'type' => Controls_Manager::SLIDER,
 
360
  'size_units' => [ 'px', '%' ],
361
  'range' => [
362
  'px' => [
@@ -375,8 +428,8 @@ class OoohBoi_Hover_Animator {
375
  'condition' => [
376
  '_ob_hoveranimator_y_hover_alt' => '',
377
  '_ob_allow_hoveranimator' => 'yes',
 
378
  ],
379
- 'frontend_available' => true,
380
  ]
381
  );
382
  // --------------------------------------------------------------------------------------------- CONTROL CALC OFFSET TOP HOVER
@@ -385,11 +438,13 @@ class OoohBoi_Hover_Animator {
385
  [
386
  'label' => __( 'Calc Offset Top Hover', 'ooohboi-steroids' ),
387
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
388
- 'type' => Controls_Manager::TEXT,
 
 
389
  'condition' => [
390
- '_ob_allow_hoveranimator' => 'yes',
 
391
  ],
392
- 'frontend_available' => true,
393
  ]
394
  );
395
  // --------------------------------------------------------------------------------------------- CONTROL Offset Top duration
@@ -398,7 +453,8 @@ class OoohBoi_Hover_Animator {
398
  [
399
  'label' => __( 'Duration', 'ooohboi-steroids' ),
400
  'separator' => 'before',
401
- 'type' => Controls_Manager::SLIDER,
 
402
  'render_type' => 'template',
403
  'default' => [
404
  'size' => 250,
@@ -410,12 +466,13 @@ class OoohBoi_Hover_Animator {
410
  ],
411
  ],
412
  'selectors' => [
413
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
414
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
415
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
416
  ],
417
  'condition' => [
418
- '_ob_allow_hoveranimator' => 'yes',
 
419
  ],
420
  ]
421
  );
@@ -426,6 +483,7 @@ class OoohBoi_Hover_Animator {
426
  'label' => __( 'Delay', 'ooohboi-steroids' ),
427
  'separator' => 'before',
428
  'type' => Controls_Manager::SLIDER,
 
429
  'render_type' => 'template',
430
  'default' => [
431
  'size' => 0,
@@ -437,12 +495,13 @@ class OoohBoi_Hover_Animator {
437
  ],
438
  ],
439
  'selectors' => [
440
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
441
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
442
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
443
  ],
444
  'condition' => [
445
- '_ob_allow_hoveranimator' => 'yes',
 
446
  ],
447
  ]
448
  );
@@ -452,6 +511,7 @@ class OoohBoi_Hover_Animator {
452
  [
453
  'label' => __( 'Easing', 'ooohboi-steroids' ),
454
  'type' => Controls_Manager::SELECT,
 
455
  'default' => 'ease',
456
  'separator' => 'before',
457
  'options' => [
@@ -461,12 +521,13 @@ class OoohBoi_Hover_Animator {
461
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
462
  ],
463
  'selectors' => [
464
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
465
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}ms, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
466
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
467
  ],
468
  'condition' => [
469
- '_ob_allow_hoveranimator' => 'yes',
 
470
  ],
471
  ]
472
  );
@@ -479,6 +540,7 @@ class OoohBoi_Hover_Animator {
479
  [
480
  'label' => __( 'Offset Left', 'ooohboi-steroids' ),
481
  'type' => Controls_Manager::POPOVER_TOGGLE,
 
482
  'return_value' => 'yes',
483
  'condition' => [
484
  '_ob_allow_hoveranimator' => 'yes',
@@ -494,6 +556,7 @@ class OoohBoi_Hover_Animator {
494
  [
495
  'label' => __( 'Offset Left Normal', 'ooohboi-steroids' ),
496
  'type' => Controls_Manager::SLIDER,
 
497
  'size_units' => [ 'px', '%' ],
498
  'range' => [
499
  'px' => [
@@ -510,11 +573,12 @@ class OoohBoi_Hover_Animator {
510
  'size' => 0,
511
  ],
512
  'selectors' => [
513
- '{{WRAPPER}}.ob-is-hoveranimal' => 'left: {{SIZE}}{{UNIT}};',
514
  ],
515
  'condition' => [
516
  '_ob_hoveranimator_x_alt' => '',
517
- '_ob_allow_hoveranimator' => 'yes',
 
518
  ],
519
  ]
520
  );
@@ -525,11 +589,14 @@ class OoohBoi_Hover_Animator {
525
  'label' => __( 'Calc Offset Left Normal', 'ooohboi-steroids' ),
526
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
527
  'type' => Controls_Manager::TEXT,
 
 
528
  'selectors' => [
529
- '{{WRAPPER}}.ob-is-hoveranimal' => 'left: calc({{VALUE}});',
530
  ],
531
  'condition' => [
532
- '_ob_allow_hoveranimator' => 'yes',
 
533
  ],
534
  ]
535
  );
@@ -539,6 +606,7 @@ class OoohBoi_Hover_Animator {
539
  [
540
  'label' => __( 'Offset Left Hover', 'ooohboi-steroids' ),
541
  'type' => Controls_Manager::SLIDER,
 
542
  'size_units' => [ 'px', '%' ],
543
  'range' => [
544
  'px' => [
@@ -556,9 +624,9 @@ class OoohBoi_Hover_Animator {
556
  ],
557
  'condition' => [
558
  '_ob_hoveranimator_x_hover_alt' => '',
559
- '_ob_allow_hoveranimator' => 'yes',
 
560
  ],
561
- 'frontend_available' => true,
562
  ]
563
  );
564
  // --------------------------------------------------------------------------------------------- CONTROL CALC OFFSET TOP HOVER
@@ -568,10 +636,12 @@ class OoohBoi_Hover_Animator {
568
  'label' => __( 'Calc Offset Left Hover', 'ooohboi-steroids' ),
569
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
570
  'type' => Controls_Manager::TEXT,
 
 
571
  'condition' => [
572
- '_ob_allow_hoveranimator' => 'yes',
 
573
  ],
574
- 'frontend_available' => true,
575
  ]
576
  );
577
  // --------------------------------------------------------------------------------------------- CONTROL Offset Left duration
@@ -581,6 +651,7 @@ class OoohBoi_Hover_Animator {
581
  'label' => __( 'Duration', 'ooohboi-steroids' ),
582
  'separator' => 'before',
583
  'type' => Controls_Manager::SLIDER,
 
584
  'render_type' => 'template',
585
  'default' => [
586
  'size' => 250,
@@ -592,12 +663,13 @@ class OoohBoi_Hover_Animator {
592
  ],
593
  ],
594
  'selectors' => [
595
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
596
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
597
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
598
  ],
599
  'condition' => [
600
- '_ob_allow_hoveranimator' => 'yes',
 
601
  ],
602
  ]
603
  );
@@ -608,6 +680,7 @@ class OoohBoi_Hover_Animator {
608
  'label' => __( 'Delay', 'ooohboi-steroids' ),
609
  'separator' => 'before',
610
  'type' => Controls_Manager::SLIDER,
 
611
  'render_type' => 'template',
612
  'default' => [
613
  'size' => 0,
@@ -619,12 +692,13 @@ class OoohBoi_Hover_Animator {
619
  ],
620
  ],
621
  'selectors' => [
622
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
623
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
624
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
625
  ],
626
  'condition' => [
627
- '_ob_allow_hoveranimator' => 'yes',
 
628
  ],
629
  ]
630
  );
@@ -634,6 +708,7 @@ class OoohBoi_Hover_Animator {
634
  [
635
  'label' => __( 'Easing', 'ooohboi-steroids' ),
636
  'type' => Controls_Manager::SELECT,
 
637
  'default' => 'ease',
638
  'separator' => 'before',
639
  'options' => [
@@ -643,12 +718,13 @@ class OoohBoi_Hover_Animator {
643
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
644
  ],
645
  'selectors' => [
646
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
647
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
648
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
649
  ],
650
  'condition' => [
651
- '_ob_allow_hoveranimator' => 'yes',
 
652
  ],
653
  ]
654
  );
@@ -676,6 +752,7 @@ class OoohBoi_Hover_Animator {
676
  [
677
  'label' => __( 'ScaleX Normal', 'ooohboi-steroids' ),
678
  'type' => Controls_Manager::SLIDER,
 
679
  'range' => [
680
  'px' => [
681
  'min' => 0,
@@ -687,10 +764,11 @@ class OoohBoi_Hover_Animator {
687
  'size' => 1,
688
  ],
689
  'selectors' => [
690
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transform: scaleX({{SIZE}}) scaleY({{_ob_hoveranimator_scaley.SIZE}}) rotate({{_ob_hoveranimator_rot.SIZE}}deg);',
691
  ],
692
  'condition' => [
693
- '_ob_allow_hoveranimator' => 'yes',
 
694
  ],
695
  ]
696
  );
@@ -700,6 +778,7 @@ class OoohBoi_Hover_Animator {
700
  [
701
  'label' => __( 'ScaleX Hover', 'ooohboi-steroids' ),
702
  'type' => Controls_Manager::SLIDER,
 
703
  'range' => [
704
  'px' => [
705
  'min' => 0,
@@ -711,9 +790,9 @@ class OoohBoi_Hover_Animator {
711
  'size' => 1,
712
  ],
713
  'condition' => [
714
- '_ob_allow_hoveranimator' => 'yes',
 
715
  ],
716
- 'frontend_available' => true,
717
  ]
718
  );
719
  // --------------------------------------------------------------------------------------------- CONTROL SCALE Y
@@ -722,6 +801,7 @@ class OoohBoi_Hover_Animator {
722
  [
723
  'label' => __( 'ScaleY Normal', 'ooohboi-steroids' ),
724
  'type' => Controls_Manager::SLIDER,
 
725
  'range' => [
726
  'px' => [
727
  'min' => 0,
@@ -733,10 +813,11 @@ class OoohBoi_Hover_Animator {
733
  'size' => 1,
734
  ],
735
  'selectors' => [
736
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transform: scaleX({{_ob_hoveranimator_scalex.SIZE}}) scaleY({{SIZE}}) rotate({{_ob_hoveranimator_rot.SIZE}}deg);',
737
  ],
738
  'condition' => [
739
- '_ob_allow_hoveranimator' => 'yes',
 
740
  ],
741
  ]
742
  );
@@ -746,6 +827,7 @@ class OoohBoi_Hover_Animator {
746
  [
747
  'label' => __( 'ScaleY Hover', 'ooohboi-steroids' ),
748
  'type' => Controls_Manager::SLIDER,
 
749
  'range' => [
750
  'px' => [
751
  'min' => 0,
@@ -757,9 +839,9 @@ class OoohBoi_Hover_Animator {
757
  'size' => 1,
758
  ],
759
  'condition' => [
760
- '_ob_allow_hoveranimator' => 'yes',
 
761
  ],
762
- 'frontend_available' => true,
763
  ]
764
  );
765
  // --------------------------------------------------------------------------------------------- CONTROL ROTATION
@@ -768,6 +850,7 @@ class OoohBoi_Hover_Animator {
768
  [
769
  'label' => __( 'Rotation Normal', 'ooohboi-steroids' ),
770
  'type' => Controls_Manager::SLIDER,
 
771
  'range' => [
772
  'px' => [
773
  'min' => 0,
@@ -779,10 +862,11 @@ class OoohBoi_Hover_Animator {
779
  'size' => 0,
780
  ],
781
  'selectors' => [
782
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transform: scaleX({{_ob_hoveranimator_scalex.SIZE}}) scaleY({{_ob_hoveranimator_scaley.SIZE}}) rotate({{SIZE}}deg);',
783
  ],
784
  'condition' => [
785
- '_ob_allow_hoveranimator' => 'yes',
 
786
  ],
787
  ]
788
  );
@@ -792,6 +876,7 @@ class OoohBoi_Hover_Animator {
792
  [
793
  'label' => __( 'Rotation Hover', 'ooohboi-steroids' ),
794
  'type' => Controls_Manager::SLIDER,
 
795
  'range' => [
796
  'px' => [
797
  'min' => 0,
@@ -803,9 +888,9 @@ class OoohBoi_Hover_Animator {
803
  'size' => 0,
804
  ],
805
  'condition' => [
806
- '_ob_allow_hoveranimator' => 'yes',
 
807
  ],
808
- 'frontend_available' => true,
809
  ]
810
  );
811
 
@@ -816,6 +901,7 @@ class OoohBoi_Hover_Animator {
816
  'label' => __( 'Duration', 'ooohboi-steroids' ),
817
  'separator' => 'before',
818
  'type' => Controls_Manager::SLIDER,
 
819
  'render_type' => 'template',
820
  'default' => [
821
  'size' => 250,
@@ -827,12 +913,13 @@ class OoohBoi_Hover_Animator {
827
  ],
828
  ],
829
  'selectors' => [
830
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
831
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
832
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
833
  ],
834
  'condition' => [
835
- '_ob_allow_hoveranimator' => 'yes',
 
836
  ],
837
  ]
838
  );
@@ -843,6 +930,7 @@ class OoohBoi_Hover_Animator {
843
  'label' => __( 'Delay', 'ooohboi-steroids' ),
844
  'separator' => 'before',
845
  'type' => Controls_Manager::SLIDER,
 
846
  'render_type' => 'template',
847
  'default' => [
848
  'size' => 0,
@@ -854,12 +942,13 @@ class OoohBoi_Hover_Animator {
854
  ],
855
  ],
856
  'selectors' => [
857
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
858
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
859
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
860
  ],
861
  'condition' => [
862
- '_ob_allow_hoveranimator' => 'yes',
 
863
  ],
864
  ]
865
  );
@@ -869,6 +958,7 @@ class OoohBoi_Hover_Animator {
869
  [
870
  'label' => __( 'Easing', 'ooohboi-steroids' ),
871
  'type' => Controls_Manager::SELECT,
 
872
  'default' => 'ease',
873
  'separator' => 'before',
874
  'options' => [
@@ -878,12 +968,13 @@ class OoohBoi_Hover_Animator {
878
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
879
  ],
880
  'selectors' => [
881
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
882
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
883
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
884
  ],
885
  'condition' => [
886
- '_ob_allow_hoveranimator' => 'yes',
 
887
  ],
888
  ]
889
  );
@@ -896,6 +987,7 @@ class OoohBoi_Hover_Animator {
896
  [
897
  'label' => __( 'Blur', 'ooohboi-steroids' ),
898
  'type' => Controls_Manager::POPOVER_TOGGLE,
 
899
  'return_value' => 'yes',
900
  'condition' => [
901
  '_ob_allow_hoveranimator' => 'yes',
@@ -911,6 +1003,7 @@ class OoohBoi_Hover_Animator {
911
  [
912
  'label' => __( 'Blur Normal', 'ooohboi-steroids' ),
913
  'type' => Controls_Manager::SLIDER,
 
914
  'size_units' => [ 'px', 'em' ],
915
  'range' => [
916
  'px' => [
@@ -929,10 +1022,11 @@ class OoohBoi_Hover_Animator {
929
  'size' => 0,
930
  ],
931
  'selectors' => [
932
- '{{WRAPPER}}.ob-is-hoveranimal' => 'filter: blur({{SIZE}}{{UNIT}});',
933
  ],
934
  'condition' => [
935
- '_ob_allow_hoveranimator' => 'yes',
 
936
  ],
937
  ]
938
  );
@@ -942,6 +1036,7 @@ class OoohBoi_Hover_Animator {
942
  [
943
  'label' => __( 'Blur Hover', 'ooohboi-steroids' ),
944
  'type' => Controls_Manager::SLIDER,
 
945
  'size_units' => [ 'px', 'em' ],
946
  'range' => [
947
  'px' => [
@@ -960,9 +1055,9 @@ class OoohBoi_Hover_Animator {
960
  'size' => 0,
961
  ],
962
  'condition' => [
963
- '_ob_allow_hoveranimator' => 'yes',
 
964
  ],
965
- 'frontend_available' => true,
966
  ]
967
  );
968
  // --------------------------------------------------------------------------------------------- CONTROL Blur duration
@@ -972,6 +1067,7 @@ class OoohBoi_Hover_Animator {
972
  'label' => __( 'Duration', 'ooohboi-steroids' ),
973
  'separator' => 'before',
974
  'type' => Controls_Manager::SLIDER,
 
975
  'render_type' => 'template',
976
  'default' => [
977
  'size' => 250,
@@ -983,12 +1079,13 @@ class OoohBoi_Hover_Animator {
983
  ],
984
  ],
985
  'selectors' => [
986
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{SIZE}}ms;
987
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
988
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
989
  ],
990
  'condition' => [
991
- '_ob_allow_hoveranimator' => 'yes',
 
992
  ],
993
  ]
994
  );
@@ -999,6 +1096,7 @@ class OoohBoi_Hover_Animator {
999
  'label' => __( 'Delay', 'ooohboi-steroids' ),
1000
  'separator' => 'before',
1001
  'type' => Controls_Manager::SLIDER,
 
1002
  'render_type' => 'template',
1003
  'default' => [
1004
  'size' => 0,
@@ -1010,12 +1108,13 @@ class OoohBoi_Hover_Animator {
1010
  ],
1011
  ],
1012
  'selectors' => [
1013
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
1014
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
1015
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{SIZE}}ms;',
1016
  ],
1017
  'condition' => [
1018
- '_ob_allow_hoveranimator' => 'yes',
 
1019
  ],
1020
  ]
1021
  );
@@ -1025,6 +1124,7 @@ class OoohBoi_Hover_Animator {
1025
  [
1026
  'label' => __( 'Easing', 'ooohboi-steroids' ),
1027
  'type' => Controls_Manager::SELECT,
 
1028
  'default' => 'ease',
1029
  'separator' => 'before',
1030
  'options' => [
@@ -1034,13 +1134,14 @@ class OoohBoi_Hover_Animator {
1034
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
1035
  ],
1036
  'selectors' => [
1037
- '{{WRAPPER}}.ob-is-hoveranimal' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
1038
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{VALUE}};
1039
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
1040
  ],
1041
 
1042
  'condition' => [
1043
- '_ob_allow_hoveranimator' => 'yes',
 
1044
  ],
1045
  ]
1046
  );
16
  */
17
  class OoohBoi_Hover_Animator {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
28
  public static function init() {
29
 
30
  add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'add_section' ] );
31
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
32
+ /* column */
33
  add_action( 'elementor/element/column/section_advanced/before_section_end', [ __CLASS__, 'manage_column_option' ], 10, 2 );
34
+ /* ----- since 1.9.0 - container */
35
+ add_action( 'elementor/element/container/section_layout/before_section_end', [ __CLASS__, 'manage_column_option' ], 10, 2 );
36
+
37
  /* allow hoveranimator for the column ? */
38
+ add_action( 'elementor/frontend/column/before_render', [ __CLASS__, 'do_element_classing' ] );
39
+ /* ----- since 1.9.0 */
40
+ /* allow hoveranimator for the container ? */
41
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'do_element_classing' ] );
42
+
43
+ /* should enqueue? */
44
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
45
+ /* add script */
46
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
47
+
48
+ }
49
+
50
+ /* enqueue script JS */
51
+ public static function enqueue_scripts() {
52
+
53
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/hoveranimator-min.js';
54
+
55
+ if( file_exists( $extension_js ) ) {
56
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
57
+ }
58
+
59
+ }
60
+ /* should enqueue? */
61
+ public static function should_script_enqueue( $element ) {
62
 
63
+ if( self::$should_script_enqueue ) return;
 
64
 
65
+ if( 'yes' == $element->get_settings_for_display( '_ob_allow_hoveranimator' ) ) {
66
 
67
+ self::$should_script_enqueue = true;
68
+ self::enqueue_scripts();
 
69
 
70
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
71
+ }
72
+ }
73
+
74
+ public static function do_element_classing( Element_Base $element ) {
75
+
76
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
77
+ $settings = $element->get_settings_for_display();
78
 
79
+ if ( isset( $settings[ '_ob_column_hoveranimator' ] ) && 'yes' === $settings[ '_ob_column_hoveranimator' ] ) {
80
+
81
+ $element->add_render_attribute( '_wrapper', [
82
+ 'class' => 'ob-is-hoveranimator'
83
+ ] );
84
+
85
+ }
86
 
87
  }
88
 
117
  '_ob_hoveranimator_column_fake_description',
118
  [
119
  'type' => Controls_Manager::RAW_HTML,
120
+ 'raw' => __( 'With Hoveranimator you can animate any widget in this container on mouse-over event. Animation panel is available under the Advanced tab, per widget!', 'ooohboi-steroids' ),
121
  'content_classes' => 'elementor-control-field-description',
122
  ]
123
  );
124
  // ------------------------------------------------------------------------- CONTROL: Visibility
125
+ if( 'column' === $element->get_type() ) {
126
+ $element->add_control(
127
+ '_ob_hoveranimator_visibility',
128
+ [
129
+ 'label' => __( 'Content Overflow', 'ooohboi-steroids' ),
130
+ 'description' => __( 'VISIBLE - makes visible all the elements outside this Column boundaries, HIDDEN - hides everything outside this Column boundaries.', 'ooohboi-steroids' ),
131
+ 'type' => Controls_Manager::SELECT,
132
+ 'default' => 'hidden',
133
+ 'separator' => 'before',
134
+ 'options' => [
135
+ 'visible' => __( 'Visible', 'ooohboi-steroids' ),
136
+ 'hidden' => __( 'Hidden', 'ooohboi-steroids' ),
137
+ ],
138
+ 'selectors' => [
139
+ '{{WRAPPER}}.ob-is-hoveranimator' => 'overflow: {{VALUE}};',
140
+ ],
141
+ 'condition' => [
142
+ '_ob_column_hoveranimator' => 'yes',
143
+ ],
144
+ ]
145
+ );
146
+ }
147
 
148
  }
149
 
150
  public static function add_attributes( Element_Base $element ) {
151
 
152
+ if ( in_array( $element->get_name(), [ 'section', 'column', 'container' ] ) ) return;
153
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
 
 
 
 
 
154
 
155
  $settings = $element->get_settings_for_display();
156
 
194
  'label' => __( 'Opacity', 'ooohboi-steroids' ),
195
  'type' => Controls_Manager::POPOVER_TOGGLE,
196
  'return_value' => 'yes',
197
+ 'frontend_available' => true,
198
  'condition' => [
199
  '_ob_allow_hoveranimator' => 'yes',
200
  ],
208
  '_ob_hoveranimator_opacity',
209
  [
210
  'label' => __( 'Opacity Normal', 'ooohboi-steroids' ),
211
+ 'type' => Controls_Manager::SLIDER,
212
+ 'frontend_available' => true,
213
  'default' => [
214
  'size' => 1,
215
  ],
220
  ],
221
  ],
222
  'selectors' => [
223
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'opacity: {{SIZE}};',
224
  ],
225
  'condition' => [
226
+ '_ob_allow_hoveranimator' => 'yes',
227
+ '_ob_hoveranimator_opacity_popover' => 'yes',
228
  ],
229
  ]
230
  );
233
  '_ob_hoveranimator_opacity_hover',
234
  [
235
  'label' => __( 'Opacity Hover', 'ooohboi-steroids' ),
236
+ 'type' => Controls_Manager::SLIDER,
237
+ 'frontend_available' => true,
238
  'default' => [
239
  'size' => 1,
240
  ],
245
  ],
246
  ],
247
  'condition' => [
248
+ '_ob_allow_hoveranimator' => 'yes',
249
+ '_ob_hoveranimator_opacity_popover' => 'yes',
250
  ],
 
251
  ]
252
  );
253
  // --------------------------------------------------------------------------------------------- CONTROL OPACITY duration
256
  [
257
  'label' => __( 'Duration', 'ooohboi-steroids' ),
258
  'separator' => 'before',
259
+ 'type' => Controls_Manager::SLIDER,
260
+ 'frontend_available' => true,
261
  'render_type' => 'template',
262
  'default' => [
263
  'size' => 250,
269
  ],
270
  ],
271
  'selectors' => [
272
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
273
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
274
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
275
  ],
276
  'condition' => [
277
+ '_ob_allow_hoveranimator' => 'yes',
278
+ '_ob_hoveranimator_opacity_popover' => 'yes',
279
  ],
280
  ]
281
  );
285
  [
286
  'label' => __( 'Delay', 'ooohboi-steroids' ),
287
  'separator' => 'before',
288
+ 'type' => Controls_Manager::SLIDER,
289
+ 'frontend_available' => true,
290
  'render_type' => 'template',
291
  'default' => [
292
  'size' => 0,
298
  ],
299
  ],
300
  'selectors' => [
301
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
302
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
303
  transition-delay: {{SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms;, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
304
  ],
305
  'condition' => [
306
+ '_ob_allow_hoveranimator' => 'yes',
307
+ '_ob_hoveranimator_opacity_popover' => 'yes',
308
  ],
309
  ]
310
  );
324
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
325
  ],
326
  'selectors' => [
327
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
328
  transition-timing-function: {{VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
329
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
330
  ],
331
  'condition' => [
332
+ '_ob_allow_hoveranimator' => 'yes',
333
+ '_ob_hoveranimator_opacity_popover' => 'yes',
334
  ],
335
  ]
336
  );
342
  '_ob_hoveranimator_y_popover',
343
  [
344
  'label' => __( 'Offset Top', 'ooohboi-steroids' ),
345
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
346
+ 'frontend_available' => true,
347
  'return_value' => 'yes',
348
  'condition' => [
349
  '_ob_allow_hoveranimator' => 'yes',
358
  '_ob_hoveranimator_y',
359
  [
360
  'label' => __( 'Offset Top Normal', 'ooohboi-steroids' ),
361
+ 'type' => Controls_Manager::SLIDER,
362
+ 'frontend_available' => true,
363
  'size_units' => [ 'px', '%' ],
364
  'range' => [
365
  'px' => [
376
  'size' => 0,
377
  ],
378
  'selectors' => [
379
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'top: {{SIZE}}{{UNIT}};',
380
  ],
381
  'condition' => [
382
  '_ob_hoveranimator_y_alt' => '',
383
+ '_ob_allow_hoveranimator' => 'yes',
384
+ '_ob_hoveranimator_y_popover' => 'yes',
385
  ],
386
  ]
387
  );
391
  [
392
  'label' => __( 'Calc Offset Top Normal', 'ooohboi-steroids' ),
393
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
394
+ 'type' => Controls_Manager::TEXT,
395
+ 'frontend_available' => true,
396
+ 'default' => '',
397
  'selectors' => [
398
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'top: calc({{VALUE}});',
399
  ],
400
  'condition' => [
401
+ '_ob_allow_hoveranimator' => 'yes',
402
+ '_ob_hoveranimator_y_popover' => 'yes',
403
  ],
404
  ]
405
  );
408
  '_ob_hoveranimator_y_hover',
409
  [
410
  'label' => __( 'Offset Top Hover', 'ooohboi-steroids' ),
411
+ 'type' => Controls_Manager::SLIDER,
412
+ 'frontend_available' => true,
413
  'size_units' => [ 'px', '%' ],
414
  'range' => [
415
  'px' => [
428
  'condition' => [
429
  '_ob_hoveranimator_y_hover_alt' => '',
430
  '_ob_allow_hoveranimator' => 'yes',
431
+ '_ob_hoveranimator_y_popover' => 'yes',
432
  ],
 
433
  ]
434
  );
435
  // --------------------------------------------------------------------------------------------- CONTROL CALC OFFSET TOP HOVER
438
  [
439
  'label' => __( 'Calc Offset Top Hover', 'ooohboi-steroids' ),
440
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
441
+ 'type' => Controls_Manager::TEXT,
442
+ 'frontend_available' => true,
443
+ 'default' => '',
444
  'condition' => [
445
+ '_ob_allow_hoveranimator' => 'yes',
446
+ '_ob_hoveranimator_y_popover' => 'yes',
447
  ],
 
448
  ]
449
  );
450
  // --------------------------------------------------------------------------------------------- CONTROL Offset Top duration
453
  [
454
  'label' => __( 'Duration', 'ooohboi-steroids' ),
455
  'separator' => 'before',
456
+ 'type' => Controls_Manager::SLIDER,
457
+ 'frontend_available' => true,
458
  'render_type' => 'template',
459
  'default' => [
460
  'size' => 250,
466
  ],
467
  ],
468
  'selectors' => [
469
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
470
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
471
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
472
  ],
473
  'condition' => [
474
+ '_ob_allow_hoveranimator' => 'yes',
475
+ '_ob_hoveranimator_y_popover' => 'yes',
476
  ],
477
  ]
478
  );
483
  'label' => __( 'Delay', 'ooohboi-steroids' ),
484
  'separator' => 'before',
485
  'type' => Controls_Manager::SLIDER,
486
+ 'frontend_available' => true,
487
  'render_type' => 'template',
488
  'default' => [
489
  'size' => 0,
495
  ],
496
  ],
497
  'selectors' => [
498
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
499
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
500
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
501
  ],
502
  'condition' => [
503
+ '_ob_allow_hoveranimator' => 'yes',
504
+ '_ob_hoveranimator_y_popover' => 'yes',
505
  ],
506
  ]
507
  );
511
  [
512
  'label' => __( 'Easing', 'ooohboi-steroids' ),
513
  'type' => Controls_Manager::SELECT,
514
+ 'frontend_available' => true,
515
  'default' => 'ease',
516
  'separator' => 'before',
517
  'options' => [
521
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
522
  ],
523
  'selectors' => [
524
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
525
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}ms, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
526
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
527
  ],
528
  'condition' => [
529
+ '_ob_allow_hoveranimator' => 'yes',
530
+ '_ob_hoveranimator_y_popover' => 'yes',
531
  ],
532
  ]
533
  );
540
  [
541
  'label' => __( 'Offset Left', 'ooohboi-steroids' ),
542
  'type' => Controls_Manager::POPOVER_TOGGLE,
543
+ 'frontend_available' => true,
544
  'return_value' => 'yes',
545
  'condition' => [
546
  '_ob_allow_hoveranimator' => 'yes',
556
  [
557
  'label' => __( 'Offset Left Normal', 'ooohboi-steroids' ),
558
  'type' => Controls_Manager::SLIDER,
559
+ 'frontend_available' => true,
560
  'size_units' => [ 'px', '%' ],
561
  'range' => [
562
  'px' => [
573
  'size' => 0,
574
  ],
575
  'selectors' => [
576
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'left: {{SIZE}}{{UNIT}};',
577
  ],
578
  'condition' => [
579
  '_ob_hoveranimator_x_alt' => '',
580
+ '_ob_allow_hoveranimator' => 'yes',
581
+ '_ob_hoveranimator_x_popover' => 'yes',
582
  ],
583
  ]
584
  );
589
  'label' => __( 'Calc Offset Left Normal', 'ooohboi-steroids' ),
590
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
591
  'type' => Controls_Manager::TEXT,
592
+ 'frontend_available' => true,
593
+ 'default' => '',
594
  'selectors' => [
595
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'left: calc({{VALUE}});',
596
  ],
597
  'condition' => [
598
+ '_ob_allow_hoveranimator' => 'yes',
599
+ '_ob_hoveranimator_x_popover' => 'yes',
600
  ],
601
  ]
602
  );
606
  [
607
  'label' => __( 'Offset Left Hover', 'ooohboi-steroids' ),
608
  'type' => Controls_Manager::SLIDER,
609
+ 'frontend_available' => true,
610
  'size_units' => [ 'px', '%' ],
611
  'range' => [
612
  'px' => [
624
  ],
625
  'condition' => [
626
  '_ob_hoveranimator_x_hover_alt' => '',
627
+ '_ob_allow_hoveranimator' => 'yes',
628
+ '_ob_hoveranimator_x_popover' => 'yes',
629
  ],
 
630
  ]
631
  );
632
  // --------------------------------------------------------------------------------------------- CONTROL CALC OFFSET TOP HOVER
636
  'label' => __( 'Calc Offset Left Hover', 'ooohboi-steroids' ),
637
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
638
  'type' => Controls_Manager::TEXT,
639
+ 'frontend_available' => true,
640
+ 'default' => '',
641
  'condition' => [
642
+ '_ob_allow_hoveranimator' => 'yes',
643
+ '_ob_hoveranimator_x_popover' => 'yes',
644
  ],
 
645
  ]
646
  );
647
  // --------------------------------------------------------------------------------------------- CONTROL Offset Left duration
651
  'label' => __( 'Duration', 'ooohboi-steroids' ),
652
  'separator' => 'before',
653
  'type' => Controls_Manager::SLIDER,
654
+ 'frontend_available' => true,
655
  'render_type' => 'template',
656
  'default' => [
657
  'size' => 250,
663
  ],
664
  ],
665
  'selectors' => [
666
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
667
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
668
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
669
  ],
670
  'condition' => [
671
+ '_ob_allow_hoveranimator' => 'yes',
672
+ '_ob_hoveranimator_x_popover' => 'yes',
673
  ],
674
  ]
675
  );
680
  'label' => __( 'Delay', 'ooohboi-steroids' ),
681
  'separator' => 'before',
682
  'type' => Controls_Manager::SLIDER,
683
+ 'frontend_available' => true,
684
  'render_type' => 'template',
685
  'default' => [
686
  'size' => 0,
692
  ],
693
  ],
694
  'selectors' => [
695
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
696
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
697
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
698
  ],
699
  'condition' => [
700
+ '_ob_allow_hoveranimator' => 'yes',
701
+ '_ob_hoveranimator_x_popover' => 'yes',
702
  ],
703
  ]
704
  );
708
  [
709
  'label' => __( 'Easing', 'ooohboi-steroids' ),
710
  'type' => Controls_Manager::SELECT,
711
+ 'frontend_available' => true,
712
  'default' => 'ease',
713
  'separator' => 'before',
714
  'options' => [
718
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
719
  ],
720
  'selectors' => [
721
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
722
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
723
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
724
  ],
725
  'condition' => [
726
+ '_ob_allow_hoveranimator' => 'yes',
727
+ '_ob_hoveranimator_x_popover' => 'yes',
728
  ],
729
  ]
730
  );
752
  [
753
  'label' => __( 'ScaleX Normal', 'ooohboi-steroids' ),
754
  'type' => Controls_Manager::SLIDER,
755
+ 'frontend_available' => true,
756
  'range' => [
757
  'px' => [
758
  'min' => 0,
764
  'size' => 1,
765
  ],
766
  'selectors' => [
767
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transform: scaleX({{SIZE}}) scaleY({{_ob_hoveranimator_scaley.SIZE}}) rotate({{_ob_hoveranimator_rot.SIZE}}deg);',
768
  ],
769
  'condition' => [
770
+ '_ob_allow_hoveranimator' => 'yes',
771
+ '_ob_hoveranimator_transforms_popover' => 'yes',
772
  ],
773
  ]
774
  );
778
  [
779
  'label' => __( 'ScaleX Hover', 'ooohboi-steroids' ),
780
  'type' => Controls_Manager::SLIDER,
781
+ 'frontend_available' => true,
782
  'range' => [
783
  'px' => [
784
  'min' => 0,
790
  'size' => 1,
791
  ],
792
  'condition' => [
793
+ '_ob_allow_hoveranimator' => 'yes',
794
+ '_ob_hoveranimator_transforms_popover' => 'yes',
795
  ],
 
796
  ]
797
  );
798
  // --------------------------------------------------------------------------------------------- CONTROL SCALE Y
801
  [
802
  'label' => __( 'ScaleY Normal', 'ooohboi-steroids' ),
803
  'type' => Controls_Manager::SLIDER,
804
+ 'frontend_available' => true,
805
  'range' => [
806
  'px' => [
807
  'min' => 0,
813
  'size' => 1,
814
  ],
815
  'selectors' => [
816
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transform: scaleX({{_ob_hoveranimator_scalex.SIZE}}) scaleY({{SIZE}}) rotate({{_ob_hoveranimator_rot.SIZE}}deg);',
817
  ],
818
  'condition' => [
819
+ '_ob_allow_hoveranimator' => 'yes',
820
+ '_ob_hoveranimator_transforms_popover' => 'yes',
821
  ],
822
  ]
823
  );
827
  [
828
  'label' => __( 'ScaleY Hover', 'ooohboi-steroids' ),
829
  'type' => Controls_Manager::SLIDER,
830
+ 'frontend_available' => true,
831
  'range' => [
832
  'px' => [
833
  'min' => 0,
839
  'size' => 1,
840
  ],
841
  'condition' => [
842
+ '_ob_allow_hoveranimator' => 'yes',
843
+ '_ob_hoveranimator_transforms_popover' => 'yes',
844
  ],
 
845
  ]
846
  );
847
  // --------------------------------------------------------------------------------------------- CONTROL ROTATION
850
  [
851
  'label' => __( 'Rotation Normal', 'ooohboi-steroids' ),
852
  'type' => Controls_Manager::SLIDER,
853
+ 'frontend_available' => true,
854
  'range' => [
855
  'px' => [
856
  'min' => 0,
862
  'size' => 0,
863
  ],
864
  'selectors' => [
865
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transform: scaleX({{_ob_hoveranimator_scalex.SIZE}}) scaleY({{_ob_hoveranimator_scaley.SIZE}}) rotate({{SIZE}}deg);',
866
  ],
867
  'condition' => [
868
+ '_ob_allow_hoveranimator' => 'yes',
869
+ '_ob_hoveranimator_transforms_popover' => 'yes',
870
  ],
871
  ]
872
  );
876
  [
877
  'label' => __( 'Rotation Hover', 'ooohboi-steroids' ),
878
  'type' => Controls_Manager::SLIDER,
879
+ 'frontend_available' => true,
880
  'range' => [
881
  'px' => [
882
  'min' => 0,
888
  'size' => 0,
889
  ],
890
  'condition' => [
891
+ '_ob_allow_hoveranimator' => 'yes',
892
+ '_ob_hoveranimator_transforms_popover' => 'yes',
893
  ],
 
894
  ]
895
  );
896
 
901
  'label' => __( 'Duration', 'ooohboi-steroids' ),
902
  'separator' => 'before',
903
  'type' => Controls_Manager::SLIDER,
904
+ 'frontend_available' => true,
905
  'render_type' => 'template',
906
  'default' => [
907
  'size' => 250,
913
  ],
914
  ],
915
  'selectors' => [
916
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
917
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
918
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
919
  ],
920
  'condition' => [
921
+ '_ob_allow_hoveranimator' => 'yes',
922
+ '_ob_hoveranimator_transforms_popover' => 'yes',
923
  ],
924
  ]
925
  );
930
  'label' => __( 'Delay', 'ooohboi-steroids' ),
931
  'separator' => 'before',
932
  'type' => Controls_Manager::SLIDER,
933
+ 'frontend_available' => true,
934
  'render_type' => 'template',
935
  'default' => [
936
  'size' => 0,
942
  ],
943
  ],
944
  'selectors' => [
945
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
946
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
947
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
948
  ],
949
  'condition' => [
950
+ '_ob_allow_hoveranimator' => 'yes',
951
+ '_ob_hoveranimator_transforms_popover' => 'yes',
952
  ],
953
  ]
954
  );
958
  [
959
  'label' => __( 'Easing', 'ooohboi-steroids' ),
960
  'type' => Controls_Manager::SELECT,
961
+ 'frontend_available' => true,
962
  'default' => 'ease',
963
  'separator' => 'before',
964
  'options' => [
968
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
969
  ],
970
  'selectors' => [
971
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
972
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
973
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
974
  ],
975
  'condition' => [
976
+ '_ob_allow_hoveranimator' => 'yes',
977
+ '_ob_hoveranimator_transforms_popover' => 'yes',
978
  ],
979
  ]
980
  );
987
  [
988
  'label' => __( 'Blur', 'ooohboi-steroids' ),
989
  'type' => Controls_Manager::POPOVER_TOGGLE,
990
+ 'frontend_available' => true,
991
  'return_value' => 'yes',
992
  'condition' => [
993
  '_ob_allow_hoveranimator' => 'yes',
1003
  [
1004
  'label' => __( 'Blur Normal', 'ooohboi-steroids' ),
1005
  'type' => Controls_Manager::SLIDER,
1006
+ 'frontend_available' => true,
1007
  'size_units' => [ 'px', 'em' ],
1008
  'range' => [
1009
  'px' => [
1022
  'size' => 0,
1023
  ],
1024
  'selectors' => [
1025
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'filter: blur({{SIZE}}{{UNIT}});',
1026
  ],
1027
  'condition' => [
1028
+ '_ob_allow_hoveranimator' => 'yes',
1029
+ '_ob_hoveranimator_blur_popover' => 'yes',
1030
  ],
1031
  ]
1032
  );
1036
  [
1037
  'label' => __( 'Blur Hover', 'ooohboi-steroids' ),
1038
  'type' => Controls_Manager::SLIDER,
1039
+ 'frontend_available' => true,
1040
  'size_units' => [ 'px', 'em' ],
1041
  'range' => [
1042
  'px' => [
1055
  'size' => 0,
1056
  ],
1057
  'condition' => [
1058
+ '_ob_allow_hoveranimator' => 'yes',
1059
+ '_ob_hoveranimator_blur_popover' => 'yes',
1060
  ],
 
1061
  ]
1062
  );
1063
  // --------------------------------------------------------------------------------------------- CONTROL Blur duration
1067
  'label' => __( 'Duration', 'ooohboi-steroids' ),
1068
  'separator' => 'before',
1069
  'type' => Controls_Manager::SLIDER,
1070
+ 'frontend_available' => true,
1071
  'render_type' => 'template',
1072
  'default' => [
1073
  'size' => 250,
1079
  ],
1080
  ],
1081
  'selectors' => [
1082
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{SIZE}}ms;
1083
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
1084
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
1085
  ],
1086
  'condition' => [
1087
+ '_ob_allow_hoveranimator' => 'yes',
1088
+ '_ob_hoveranimator_blur_popover' => 'yes',
1089
  ],
1090
  ]
1091
  );
1096
  'label' => __( 'Delay', 'ooohboi-steroids' ),
1097
  'separator' => 'before',
1098
  'type' => Controls_Manager::SLIDER,
1099
+ 'frontend_available' => true,
1100
  'render_type' => 'template',
1101
  'default' => [
1102
  'size' => 0,
1108
  ],
1109
  ],
1110
  'selectors' => [
1111
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
1112
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{_ob_hoveranimator_blur_easing.VALUE}};
1113
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{SIZE}}ms;',
1114
  ],
1115
  'condition' => [
1116
+ '_ob_allow_hoveranimator' => 'yes',
1117
+ '_ob_hoveranimator_blur_popover' => 'yes',
1118
  ],
1119
  ]
1120
  );
1124
  [
1125
  'label' => __( 'Easing', 'ooohboi-steroids' ),
1126
  'type' => Controls_Manager::SELECT,
1127
+ 'frontend_available' => true,
1128
  'default' => 'ease',
1129
  'separator' => 'before',
1130
  'options' => [
1134
  'ease-in-out' => __( 'Ease-in-out', 'ooohboi-steroids' ),
1135
  ],
1136
  'selectors' => [
1137
+ '{{WRAPPER}}.ob-is-hoveranimal > .elementor-widget-container' => 'transition-duration: {{_ob_hoveranimator_opacity_duration.SIZE}}ms, {{_ob_hoveranimator_y_duration.SIZE}}ms, {{_ob_hoveranimator_x_duration.SIZE}}ms, {{_ob_hoveranimator_transform_duration.SIZE}}ms, {{_ob_hoveranimator_blur_duration.SIZE}}ms;
1138
  transition-timing-function: {{_ob_hoveranimator_opacity_easing.VALUE}}, {{_ob_hoveranimator_y_easing.VALUE}}, {{_ob_hoveranimator_x_easing.VALUE}}, {{_ob_hoveranimator_transform_easing.VALUE}}, {{VALUE}};
1139
  transition-delay: {{_ob_hoveranimator_opacity_delay.SIZE}}ms, {{_ob_hoveranimator_y_delay.SIZE}}ms, {{_ob_hoveranimator_x_delay.SIZE}}ms, {{_ob_hoveranimator_transform_delay.SIZE}}ms, {{_ob_hoveranimator_blur_delay.SIZE}}ms;',
1140
  ],
1141
 
1142
  'condition' => [
1143
+ '_ob_allow_hoveranimator' => 'yes',
1144
+ '_ob_hoveranimator_blur_popover' => 'yes',
1145
  ],
1146
  ]
1147
  );
controls/ooohboi-icobox.php CHANGED
@@ -85,6 +85,22 @@ final class OoohBoi_Icobox {
85
  ],
86
  ]
87
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  // ------------------------------------------------------------------------- CONTROL: Yes 4 more controls
89
  $element->add_control(
90
  '_ob_icobox_override_defaults',
85
  ],
86
  ]
87
  );
88
+ // ------------------------------------------------------------------------- since 1.8.1 - Prevent icon & title collapse on mobiles
89
+ $element->add_control(
90
+ '_ob_icobox_no_collapse',
91
+ [
92
+ 'label' => sprintf( __( 'Prevent Icon and Title Collapse%sNEW!%s', 'ooohboi-steroids' ), '<sup class="ob-new-feature">', '</sup>' ),
93
+ 'description' => __( 'The icon sits atop the title on mobiles. Prevent that, huh?', 'ooohboi-steroids' ),
94
+ 'separator' => 'before',
95
+ 'type' => Controls_Manager::SWITCHER,
96
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
97
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
98
+ 'return_value' => 'inherit',
99
+ 'selectors' => [
100
+ '{{WRAPPER}}.elementor-position-left .elementor-icon-box-wrapper, {{WRAPPER}}.elementor-position-right .elementor-icon-box-wrapper' => 'display: flex !important;',
101
+ ],
102
+ ]
103
+ );
104
  // ------------------------------------------------------------------------- CONTROL: Yes 4 more controls
105
  $element->add_control(
106
  '_ob_icobox_override_defaults',
controls/ooohboi-imbox.php CHANGED
@@ -86,6 +86,22 @@ final class OoohBoi_Imbox {
86
  ],
87
  ]
88
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
 
90
  // ------------------------------------------------------------------------- CONTROL: Yes 4 more controls
91
  $element->add_control(
@@ -308,6 +324,28 @@ final class OoohBoi_Imbox {
308
  ],
309
  ]
310
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
311
 
312
  /* since 1.7.0 */
313
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER
@@ -358,9 +396,6 @@ final class OoohBoi_Imbox {
358
  'selectors' => [
359
  '{{WRAPPER}} .elementor-image-box-content' => 'z-index: {{VALUE}}; position: relative;',
360
  ],
361
- 'condition' => [
362
- '_ob_imbox_overrides' => 'yes',
363
- ],
364
  ]
365
  );
366
 
86
  ],
87
  ]
88
  );
89
+ // ------------------------------------------------------------------------- since 1.8.1 - Prevent icon & title collapse on mobiles
90
+ $element->add_control(
91
+ '_ob_imbox_no_collapse',
92
+ [
93
+ 'label' => sprintf( __( 'Prevent Image and Title Collapse%sNEW!%s', 'ooohboi-steroids' ), '<sup class="ob-new-feature">', '</sup>' ),
94
+ 'description' => __( 'The thumbnail sits atop the title on mobiles. Prevent that, huh?', 'ooohboi-steroids' ),
95
+ 'separator' => 'before',
96
+ 'type' => Controls_Manager::SWITCHER,
97
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
98
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
99
+ 'return_value' => 'inherit',
100
+ 'selectors' => [
101
+ '{{WRAPPER}}.elementor-position-left .elementor-image-box-wrapper, {{WRAPPER}}.elementor-position-right .elementor-image-box-wrapper' => 'display: flex !important;',
102
+ ],
103
+ ]
104
+ );
105
 
106
  // ------------------------------------------------------------------------- CONTROL: Yes 4 more controls
107
  $element->add_control(
324
  ],
325
  ]
326
  );
327
+ /* since 1.7.8 */
328
+ // --------------------------------------------------------------------------------------------- Content Box Shadow
329
+ $element->add_group_control(
330
+ Group_Control_Box_Shadow::get_type(),
331
+ [
332
+ 'name' => '_ob_imbox_cont_shadow',
333
+ 'label' => __( 'Box Shadow', 'ooohboi-steroids' ),
334
+ 'separator' => 'before',
335
+ 'selector' => '{{WRAPPER}} .elementor-image-box-content',
336
+ 'fields_options' => [
337
+ 'box_shadow' => [
338
+ 'default' => [
339
+ 'horizontal' => 0,
340
+ 'vertical' => 0,
341
+ 'blur' => 0,
342
+ 'spread' => 0,
343
+ 'color' => 'rgba(0,0,0,0.5)',
344
+ ],
345
+ ],
346
+ ],
347
+ ]
348
+ );
349
 
350
  /* since 1.7.0 */
351
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER BORDER
396
  'selectors' => [
397
  '{{WRAPPER}} .elementor-image-box-content' => 'z-index: {{VALUE}}; position: relative;',
398
  ],
 
 
 
399
  ]
400
  );
401
 
controls/ooohboi-locomotion.php CHANGED
@@ -21,6 +21,7 @@ class OoohBoi_Locomotion {
21
  add_action( 'elementor/element/common/_section_background/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
22
  add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
23
  add_action( 'elementor/element/column/section_advanced/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
 
24
  add_action( 'elementor/frontend/before_render', [ $this, 'ob_render_attributes' ] );
25
 
26
  }
21
  add_action( 'elementor/element/common/_section_background/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
22
  add_action( 'elementor/element/section/section_advanced/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
23
  add_action( 'elementor/element/column/section_advanced/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
24
+ add_action( 'elementor/element/container/section_layout/after_section_end', [ $this, 'ob_attributes_controls_section' ] );
25
  add_action( 'elementor/frontend/before_render', [ $this, 'ob_render_attributes' ] );
26
 
27
  }
controls/ooohboi-oh-animator.php ADDED
@@ -0,0 +1,1239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ use Elementor\Controls_Manager;
3
+ use Elementor\Controls_Stack;
4
+ use Elementor\Element_Base;
5
+ use Elementor\Repeater;
6
+
7
+ if ( ! defined( 'ABSPATH' ) ) exit;
8
+
9
+ /**
10
+ * Main OoohBoi Oh Animator
11
+ *
12
+ * The main class that initiates and runs the plugin.
13
+ *
14
+ * @since 1.9.5
15
+ */
16
+ class OoohBoi_Oh_Animator {
17
+
18
+ static $should_script_enqueue = false;
19
+
20
+ /**
21
+ * Initialize
22
+ *
23
+ * @since 1.9.5
24
+ *
25
+ * @access public
26
+ */
27
+ public static function init() {
28
+
29
+ add_action( 'elementor/element/container/section_layout/after_section_end', [ __CLASS__, 'manage_interface' ] );
30
+ add_action( 'elementor/element/common/_section_style/after_section_end', [ __CLASS__, 'manage_interface' ] );
31
+ add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
32
+
33
+ /* should enqueue? */
34
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
35
+ /* add script */
36
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
37
+
38
+ }
39
+
40
+ /* enqueue script JS */
41
+ public static function enqueue_scripts() {
42
+
43
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/ohanimator-min.js';
44
+
45
+ if( file_exists( $extension_js ) ) {
46
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
47
+ }
48
+
49
+ }
50
+ /* should enqueue? */
51
+ public static function should_script_enqueue( $element ) {
52
+
53
+ if( self::$should_script_enqueue ) return;
54
+
55
+ if( 'yes' == $element->get_settings_for_display( '_ob_animator' ) ) {
56
+
57
+ self::$should_script_enqueue = true;
58
+ self::enqueue_scripts();
59
+
60
+ remove_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
61
+ }
62
+ }
63
+
64
+ public static function add_attributes( Element_Base $element ) {
65
+
66
+ if ( \Elementor\Plugin::$instance->experiments->get_active_features() ) return;
67
+
68
+ $settings = $element->get_settings_for_display();
69
+ $allow_animator = isset( $settings[ '_ob_animator' ] ) ? $settings[ '_ob_animator' ] : '';
70
+
71
+ if ( 'yes' === $allow_animator ) $element->add_render_attribute( '_wrapper', 'class', 'ob-is-animated' );
72
+
73
+ }
74
+
75
+ public static function manage_interface( Element_Base $element ) {
76
+
77
+ // create panel
78
+ $element->start_controls_section(
79
+ '_ob_animator_section_title',
80
+ [
81
+ 'label' => 'O H ! &nbsp; A N I M A T O R',
82
+ 'tab' => Controls_Manager::TAB_ADVANCED,
83
+ ]
84
+ );
85
+
86
+ // --------------------------------------------------------------------------------------------- CONTROL enable HOVERANIMATOR
87
+ $element->add_control(
88
+ '_ob_animator',
89
+ [
90
+ 'label' => esc_html__( 'Enable ANIMATOR?', 'ooohboi-steroids' ),
91
+ 'separator' => 'before',
92
+ 'type' => Controls_Manager::SWITCHER,
93
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
94
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
95
+ 'return_value' => 'yes',
96
+ 'default' => 'no',
97
+ 'frontend_available' => true,
98
+ ]
99
+ );
100
+
101
+ // --------------------------------------------------------------------------------------------- CONTROL Description - Faker !!!!!
102
+ $element->add_control(
103
+ '_ob_animator_fake_description',
104
+ [
105
+ 'type' => Controls_Manager::RAW_HTML,
106
+ 'raw' => sprintf(
107
+ __( 'If you are not familiar with the %s, %s and scroll triggered animations, it\'s good idea to learn some basics.', 'ooohboi-steroids' ),
108
+ '<a href="https://greensock.com/docs/v3/GSAP" target="_blank">GSAP</a>',
109
+ '<a href="https://greensock.com/docs/v3/Plugins/ScrollTrigger" target="_blank">ScrollTrigger</a>'
110
+ ),
111
+ 'content_classes' => 'elementor-control-field-description',
112
+ 'separator' => 'after',
113
+ ]
114
+ );
115
+
116
+ // --------------------------------------------------------------------------------------------- CONTROL select sibling instead
117
+ if( 'column' !== $element->get_name() ) {
118
+ $element->add_control(
119
+ '_ob_animator_el_is_sibling',
120
+ [
121
+ 'label' => esc_html__( 'Animate first child?', 'ooohboi-steroids' ),
122
+ 'description' => esc_html__( 'By default ".elementor-widget-container" will be animated. You can animate its first child element instead.', 'ooohboi-steroids' ),
123
+ 'type' => Controls_Manager::SWITCHER,
124
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
125
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
126
+ 'return_value' => 'yes',
127
+ 'default' => 'no',
128
+ 'frontend_available' => true,
129
+ 'condition' => [
130
+ '_ob_animator' => 'yes',
131
+ ],
132
+ ]
133
+ );
134
+ }
135
+
136
+ // --------------------------------------------------------------------------------------------- ScrollTrigger Description
137
+ $element->add_control(
138
+ '_ob_animator_st_block_desc',
139
+ [
140
+ 'label' => esc_html__( 'ScrollTrigger Settings', 'ooohboi-steroids' ),
141
+ 'type' => Controls_Manager::RAW_HTML,
142
+ 'raw' => esc_html__( 'This is where you set you scroll triggered animation.', 'ooohboi-steroids' ),
143
+ 'content_classes' => 'elementor-control-field-description',
144
+ 'condition' => [
145
+ '_ob_animator' => 'yes',
146
+ ],
147
+ ]
148
+ );
149
+ // --------------------------------------------------------------------------------------------- CONTROL Show markers
150
+ $element->add_control(
151
+ '_ob_animator_st_markers',
152
+ [
153
+ 'label' => esc_html__( 'Show Markers?', 'ooohboi-steroids' ),
154
+ 'description' => esc_html__( 'See where the target element/widget start/end/trigger points are', 'ooohboi-steroids' ),
155
+ 'type' => Controls_Manager::SWITCHER,
156
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
157
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
158
+ 'return_value' => 'yes',
159
+ 'default' => 'no',
160
+ 'frontend_available' => true,
161
+ 'condition' => [
162
+ '_ob_animator' => 'yes',
163
+ ],
164
+ ]
165
+ );
166
+ // --------------------------------------------------------------------------------------------- CONTROL Scrub
167
+ $element->add_control(
168
+ '_ob_animator_st_scrub',
169
+ [
170
+ 'label' => esc_html__( 'Scrub?', 'ooohboi-steroids' ),
171
+ 'description' => esc_html__( 'Controll the animation progress with the scrollbar so it acts like a scrubber', 'ooohboi-steroids' ),
172
+ 'type' => Controls_Manager::SWITCHER,
173
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
174
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
175
+ 'return_value' => 'yes',
176
+ 'default' => 'no',
177
+ 'frontend_available' => true,
178
+ 'condition' => [
179
+ '_ob_animator' => 'yes',
180
+ ],
181
+ ]
182
+ );
183
+ // --------------------------------------------------------------------------------------------- CONTROL Scrub Value
184
+ $element->add_control(
185
+ '_ob_animator_st_scrub_smooth',
186
+ [
187
+ 'label' => esc_html__( 'Scrub smooth', 'ooohboi-steroids' ),
188
+ 'description' => esc_html__( 'Adds smoothing to scrub. Best between 1 and 5 (extreme already!)', 'ooohboi-steroids' ),
189
+ 'type' => Controls_Manager::NUMBER,
190
+ 'frontend_available' => true,
191
+ 'min' => 0,
192
+ 'max' => 10,
193
+ 'default' => 1,
194
+ 'label_block' => false,
195
+ 'condition' => [
196
+ '_ob_animator' => 'yes',
197
+ '_ob_animator_st_scrub' => 'yes',
198
+ ],
199
+ ]
200
+ );
201
+ // --------------------------------------------------------------------------------------------- CONTROL Invalidate on refresh
202
+ $element->add_control(
203
+ '_ob_animator_st_invalidate_on_refresh',
204
+ [
205
+ 'label' => esc_html__( 'Invalidate on refresh?', 'ooohboi-steroids' ),
206
+ 'description' => esc_html__( 'This flushes out any internally-recorded starting values.', 'ooohboi-steroids' ),
207
+ 'type' => Controls_Manager::SWITCHER,
208
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
209
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
210
+ 'return_value' => 'yes',
211
+ 'default' => 'yes',
212
+ 'frontend_available' => true,
213
+ 'condition' => [
214
+ '_ob_animator' => 'yes',
215
+ ],
216
+ ]
217
+ );
218
+ // --------------------------------------------------------------------------------------------- CONTROL Immediate Render
219
+ $element->add_control(
220
+ '_ob_animator_st_immediate_render',
221
+ [
222
+ 'label' => esc_html__( 'Immediate render', 'ooohboi-steroids' ),
223
+ 'description' => sprintf(
224
+ __( 'Please take a quick guide %s', 'ooohboi-steroids' ),
225
+ '<a href="https://greensock.com/immediaterender/" target="_blank">here</a>'
226
+ ),
227
+ 'type' => Controls_Manager::SWITCHER,
228
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
229
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
230
+ 'return_value' => 'yes',
231
+ 'default' => 'yes',
232
+ 'frontend_available' => true,
233
+ 'condition' => [
234
+ '_ob_animator' => 'yes',
235
+ ],
236
+ ]
237
+ );
238
+ // --------------------------------------------------------------------------------------------- CONTROL Pin
239
+ $element->add_control(
240
+ '_ob_animator_st_pin',
241
+ [
242
+ 'label' => esc_html__( 'Pin?', 'ooohboi-steroids' ),
243
+ 'description' => esc_html__( 'Warning: don\'t animate the pinned element itself due to the unpredicted results! Rather animate elements inside the pinned element.', 'ooohboi-steroids' ),
244
+ 'type' => Controls_Manager::SWITCHER,
245
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
246
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
247
+ 'return_value' => 'yes',
248
+ 'default' => 'no',
249
+ 'frontend_available' => true,
250
+ 'condition' => [
251
+ '_ob_animator' => 'yes',
252
+ ],
253
+ ]
254
+ );
255
+ // --------------------------------------------------------------------------------------------- CONTROL Anticipate Pin
256
+ $element->add_control(
257
+ '_ob_animator_st_anticipate_pin',
258
+ [
259
+ 'label' => esc_html__( 'Anticipate Pin', 'ooohboi-steroids' ),
260
+ 'type' => Controls_Manager::SWITCHER,
261
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
262
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
263
+ 'return_value' => 'yes',
264
+ 'default' => 'no',
265
+ 'frontend_available' => true,
266
+ 'condition' => [
267
+ '_ob_animator' => 'yes',
268
+ '_ob_animator_st_pin' => 'yes',
269
+ ],
270
+ ]
271
+ );
272
+ // --------------------------------------------------------------------------------------------- CONTROL Pin Prevent Overlaps
273
+ $element->add_control(
274
+ '_ob_animator_st_pin_prevent_overlaps',
275
+ [
276
+ 'label' => esc_html__( 'Prevent overlaps', 'ooohboi-steroids' ),
277
+ 'type' => Controls_Manager::SWITCHER,
278
+ 'label_on' => esc_html__( 'Yes', 'ooohboi-steroids' ),
279
+ 'label_off' => esc_html__( 'No', 'ooohboi-steroids' ),
280
+ 'return_value' => 'yes',
281
+ 'default' => 'no',
282
+ 'frontend_available' => true,
283
+ 'condition' => [
284
+ '_ob_animator' => 'yes',
285
+ '_ob_animator_st_pin' => 'yes',
286
+ ],
287
+ ]
288
+ );
289
+ // --------------------------------------------------------------------------------------------- CONTROL Pin Spacing
290
+ $element->add_control(
291
+ '_ob_animator_st_pin_spacing',
292
+ [
293
+ 'label' => esc_html__( 'Pin spacing', 'ooohboi-steroids' ),
294
+ 'type' => Controls_Manager::SELECT,
295
+ 'default' => 'yes',
296
+ 'frontend_available' => true,
297
+ 'options' => [
298
+ 'yes' => esc_html__( 'Yes (true)', 'ooohboi-steroids' ),
299
+ 'no' => esc_html__( 'No (false)', 'ooohboi-steroids' ),
300
+ 'margin' => esc_html__( 'Margin', 'ooohboi-steroids' ),
301
+ ],
302
+ 'condition' => [
303
+ '_ob_animator' => 'yes',
304
+ '_ob_animator_st_pin' => 'yes',
305
+ ],
306
+ ]
307
+ );
308
+
309
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER ScrollTrigger
310
+ $element->add_control(
311
+ '_ob_animator_st_controls',
312
+ [
313
+ 'label' => esc_html__( 'ScrollTrigger Start and End', 'ooohboi-steroids' ),
314
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
315
+ 'return_value' => 'yes',
316
+ 'frontend_available' => true,
317
+ 'condition' => [
318
+ '_ob_animator' => 'yes',
319
+ ],
320
+ ]
321
+ );
322
+
323
+ $element->start_popover();
324
+
325
+ // --------------------------------------------------------------------------------------------- CONTROL Description
326
+ $element->add_control(
327
+ '_ob_animator_st_start_trigger_description',
328
+ [
329
+ 'label' => esc_html__( 'ScrollTrigger Start', 'ooohboi-steroids' ),
330
+ 'type' => Controls_Manager::RAW_HTML,
331
+ 'raw' => esc_html__( 'Describes a place on the trigger and a place on the scroller that must meet in order to start the ScrollTrigger', 'ooohboi-steroids' ),
332
+ 'content_classes' => 'elementor-control-field-description',
333
+ 'separator' => 'after',
334
+ 'condition' => [
335
+ '_ob_animator' => 'yes',
336
+ ],
337
+ ]
338
+ );
339
+
340
+ // ------------------------------------------------------------------------- ST: Start Trigger
341
+ $element->add_control(
342
+ '_ob_animator_st_start_trigger_el',
343
+ [
344
+ 'label' => esc_html__( 'Start - Trigger Element', 'ooohboi-steroids' ),
345
+ 'type' => Controls_Manager::SELECT,
346
+ 'default' => 'none',
347
+ 'frontend_available' => true,
348
+ 'options' => [
349
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
350
+ 'top' => esc_html__( 'Top', 'ooohboi-steroids' ),
351
+ 'center' => esc_html__( 'Center', 'ooohboi-steroids' ),
352
+ 'bottom' => esc_html__( 'Bottom', 'ooohboi-steroids' ),
353
+ 'top_and_height' => esc_html__( 'Top + Self height', 'ooohboi-steroids' ),
354
+ ],
355
+ 'condition' => [
356
+ '_ob_animator' => 'yes',
357
+ '_ob_animator_st_controls' => 'yes',
358
+ ],
359
+ ]
360
+ );
361
+ // ------------------------------------------------------------------------- ST: Offset Trigger Element
362
+ $element->add_control(
363
+ '_ob_animator_st_start_trigger_el_off',
364
+ [
365
+ 'label' => esc_html__( 'Start - Trigger Element Offset', 'ooohboi-steroids' ),
366
+ 'type' => Controls_Manager::DIMENSIONS,
367
+ 'frontend_available' => true,
368
+ //'separator' => 'after',
369
+ 'size_units' => [ 'px', '%' ],
370
+ 'allowed_dimensions' => [ 'top' ],
371
+ 'placeholder' => [
372
+ 'top' => '0',
373
+ 'right' => '0',
374
+ 'bottom' => '0',
375
+ 'left' => '0',
376
+ ],
377
+ 'default' => [
378
+ 'top' => '0',
379
+ 'right' => '0',
380
+ 'bottom' => '0',
381
+ 'left' => '0',
382
+ 'unit' => 'px',
383
+ ],
384
+ 'condition' => [
385
+ '_ob_animator' => 'yes',
386
+ '_ob_animator_st_controls' => 'yes',
387
+ ],
388
+ ]
389
+ );
390
+ // ------------------------------------------------------------------------- ST: Start Viewport
391
+ $element->add_control(
392
+ '_ob_animator_st_start_viewport',
393
+ [
394
+ 'label' => esc_html__( 'Start - Viewport', 'ooohboi-steroids' ),
395
+ 'type' => Controls_Manager::SELECT,
396
+ 'default' => 'none',
397
+ 'frontend_available' => true,
398
+ 'options' => [
399
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
400
+ 'top' => esc_html__( 'Top', 'ooohboi-steroids' ),
401
+ 'center' => esc_html__( 'Center', 'ooohboi-steroids' ),
402
+ 'bottom' => esc_html__( 'Bottom', 'ooohboi-steroids' ),
403
+ ],
404
+ 'condition' => [
405
+ '_ob_animator' => 'yes',
406
+ '_ob_animator_st_controls' => 'yes',
407
+ ],
408
+ ]
409
+ );
410
+ // ------------------------------------------------------------------------- ST: Offset
411
+ $element->add_control(
412
+ '_ob_animator_st_start_viewport_off',
413
+ [
414
+ 'label' => esc_html__( 'Start - Viewport Offset', 'ooohboi-steroids' ),
415
+ 'type' => Controls_Manager::DIMENSIONS,
416
+ 'frontend_available' => true,
417
+ 'separator' => 'after',
418
+ 'size_units' => [ 'px', '%' ],
419
+ 'allowed_dimensions' => [ 'top' ],
420
+ 'placeholder' => [
421
+ 'top' => '0',
422
+ 'right' => '0',
423
+ 'bottom' => '0',
424
+ 'left' => '0',
425
+ ],
426
+ 'default' => [
427
+ 'top' => '0',
428
+ 'right' => '0',
429
+ 'bottom' => '0',
430
+ 'left' => '0',
431
+ 'unit' => 'px',
432
+ ],
433
+ 'condition' => [
434
+ '_ob_animator' => 'yes',
435
+ '_ob_animator_st_controls' => 'yes',
436
+ ],
437
+ ]
438
+ );
439
+ // --------------------------------------------------------------------------------------------- CONTROL Description END
440
+ $element->add_control(
441
+ '_ob_animator_st_end_trigger_description',
442
+ [
443
+ 'label' => esc_html__( 'ScrollTrigger End', 'ooohboi-steroids' ),
444
+ 'type' => Controls_Manager::RAW_HTML,
445
+ 'raw' => esc_html__( 'Describes a place on the endTrigger (or trigger if one isn\'t defined) and a place on the scroller that must meet in order to end the scroll triggered animation', 'ooohboi-steroids' ),
446
+ 'content_classes' => 'elementor-control-field-description',
447
+ 'condition' => [
448
+ '_ob_animator' => 'yes',
449
+ ],
450
+ ]
451
+ );
452
+ // ------------------------------------------------------------------------- ST: End Trigger
453
+ $element->add_control(
454
+ '_ob_animator_st_end_trigger_el',
455
+ [
456
+ 'label' => esc_html__( 'End - Trigger Element', 'ooohboi-steroids' ),
457
+ 'type' => Controls_Manager::SELECT,
458
+ 'default' => 'none',
459
+ 'frontend_available' => true,
460
+ 'options' => [
461
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
462
+ 'top' => esc_html__( 'Top', 'ooohboi-steroids' ),
463
+ 'center' => esc_html__( 'Center', 'ooohboi-steroids' ),
464
+ 'bottom' => esc_html__( 'Bottom', 'ooohboi-steroids' ),
465
+ ],
466
+ 'condition' => [
467
+ '_ob_animator' => 'yes',
468
+ '_ob_animator_st_controls' => 'yes',
469
+ ],
470
+ ]
471
+ );
472
+ // ------------------------------------------------------------------------- ST: Offset Trigger Element
473
+ $element->add_control(
474
+ '_ob_animator_st_end_trigger_el_off',
475
+ [
476
+ 'label' => esc_html__( 'End - Trigger Element Offset', 'ooohboi-steroids' ),
477
+ 'type' => Controls_Manager::DIMENSIONS,
478
+ 'frontend_available' => true,
479
+ 'separator' => 'after',
480
+ 'size_units' => [ 'px', '%' ],
481
+ 'allowed_dimensions' => [ 'bottom' ],
482
+ 'placeholder' => [
483
+ 'top' => '0',
484
+ 'right' => '0',
485
+ 'bottom' => '0',
486
+ 'left' => '0',
487
+ ],
488
+ 'default' => [
489
+ 'top' => '0',
490
+ 'right' => '0',
491
+ 'bottom' => '0',
492
+ 'left' => '0',
493
+ 'unit' => 'px',
494
+ ],
495
+ 'condition' => [
496
+ '_ob_animator' => 'yes',
497
+ '_ob_animator_st_controls' => 'yes',
498
+ ],
499
+ ]
500
+ );
501
+ // ------------------------------------------------------------------------- ST: Start Viewport
502
+ $element->add_control(
503
+ '_ob_animator_st_end_viewport',
504
+ [
505
+ 'label' => esc_html__( 'End - Viewport', 'ooohboi-steroids' ),
506
+ 'type' => Controls_Manager::SELECT,
507
+ 'default' => 'none',
508
+ 'frontend_available' => true,
509
+ 'options' => [
510
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
511
+ 'top' => esc_html__( 'Top', 'ooohboi-steroids' ),
512
+ 'center' => esc_html__( 'Center', 'ooohboi-steroids' ),
513
+ 'bottom' => esc_html__( 'Bottom', 'ooohboi-steroids' ),
514
+ ],
515
+ 'condition' => [
516
+ '_ob_animator' => 'yes',
517
+ '_ob_animator_st_controls' => 'yes',
518
+ ],
519
+ ]
520
+ );
521
+ // ------------------------------------------------------------------------- ST: Offset
522
+ $element->add_control(
523
+ '_ob_animator_st_end_viewport_off',
524
+ [
525
+ 'label' => esc_html__( 'End - Viewport Offset', 'ooohboi-steroids' ),
526
+ 'type' => Controls_Manager::DIMENSIONS,
527
+ 'frontend_available' => true,
528
+ 'separator' => 'after',
529
+ 'size_units' => [ 'px', '%' ],
530
+ 'allowed_dimensions' => [ 'bottom' ],
531
+ 'placeholder' => [
532
+ 'top' => '0',
533
+ 'right' => '0',
534
+ 'bottom' => '0',
535
+ 'left' => '0',
536
+ ],
537
+ 'default' => [
538
+ 'top' => '0',
539
+ 'right' => '0',
540
+ 'bottom' => '0',
541
+ 'left' => '0',
542
+ 'unit' => 'px',
543
+ ],
544
+ 'condition' => [
545
+ '_ob_animator' => 'yes',
546
+ '_ob_animator_st_controls' => 'yes',
547
+ ],
548
+ ]
549
+ );
550
+ // ------------------------------------------------------------------------- ST: End trigger - selector
551
+ $element->add_control(
552
+ '_ob_animator_st_end_trigger_class',
553
+ [
554
+ 'label' => esc_html__( 'End trigger selector', 'ooohboi-steroids' ),
555
+ 'description' => esc_html__( 'Selector (element) whose position in the normal document flow is used for calculating where the ScrollTrigger ends. For instance: ".element-class-name" or "#element-unique-id"', 'ooohboi-steroids' ),
556
+ 'type' => Controls_Manager::TEXT,
557
+ 'default' => '',
558
+ 'frontend_available' => true,
559
+ 'condition' => [
560
+ '_ob_animator' => 'yes',
561
+ ],
562
+ ]
563
+ );
564
+
565
+ $element->end_popover(); // POPOVER ScrollTrigger end
566
+
567
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER ToggleActions
568
+ $element->add_control(
569
+ '_ob_animator_st_toggle_actions',
570
+ [
571
+ 'label' => esc_html__( 'Toggle Actions', 'ooohboi-steroids' ),
572
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
573
+ 'return_value' => 'yes',
574
+ 'frontend_available' => true,
575
+ 'condition' => [
576
+ '_ob_animator' => 'yes',
577
+ ],
578
+ ]
579
+ );
580
+
581
+ $element->start_popover();
582
+
583
+ // --------------------------------------------------------------------------------------------- CONTROL Description - Faker !!!!!
584
+ $element->add_control(
585
+ '_ob_animator_st_ts_description',
586
+ [
587
+ 'type' => Controls_Manager::RAW_HTML,
588
+ 'raw' => __( 'Determines how the linked animation is controlled at the 4 distinct toggle places - onEnter, onLeave, onEnterBack, and onLeaveBack, in that order. <br/>
589
+ For example:<br/>
590
+ <pre>play pause resume reset</pre><br/>
591
+ will play the animation when entering, pause it when leaving, resume it when entering again backwards, and reset (rewind back to the beginning) when scrolling all the way back past the beginning.', 'ooohboi-steroids' ),
592
+ 'content_classes' => 'elementor-control-field-description',
593
+ ]
594
+ );
595
+
596
+ // ------------------------------------------------------------------------- CONTROL onEnter
597
+ $element->add_control(
598
+ '_ob_animator_st_ta_onenter',
599
+ [
600
+ 'label' => esc_html__( 'Action onEnter', 'ooohboi-steroids' ),
601
+ 'type' => Controls_Manager::SELECT,
602
+ 'separator' => 'before',
603
+ 'default' => 'restart',
604
+ 'frontend_available' => true,
605
+ 'options' => [
606
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
607
+ 'play' => esc_html__( 'Play', 'ooohboi-steroids' ),
608
+ 'pause' => esc_html__( 'Pause', 'ooohboi-steroids' ),
609
+ 'resume' => esc_html__( 'Resume', 'ooohboi-steroids' ),
610
+ 'reset' => esc_html__( 'Reset', 'ooohboi-steroids' ),
611
+ 'restart' => esc_html__( 'Restart', 'ooohboi-steroids' ),
612
+ 'complete' => esc_html__( 'Complete', 'ooohboi-steroids' ),
613
+ 'reverse' => esc_html__( 'Reverse', 'ooohboi-steroids' ),
614
+ ],
615
+ 'condition' => [
616
+ '_ob_animator' => 'yes',
617
+ '_ob_animator_st_toggle_actions' => 'yes',
618
+ ],
619
+ ]
620
+ );
621
+ // ------------------------------------------------------------------------- CONTROL onLeave
622
+ $element->add_control(
623
+ '_ob_animator_st_ta_onleave',
624
+ [
625
+ 'label' => esc_html__( 'Action onLeave', 'ooohboi-steroids' ),
626
+ 'type' => Controls_Manager::SELECT,
627
+ 'separator' => 'before',
628
+ 'default' => 'none',
629
+ 'frontend_available' => true,
630
+ 'options' => [
631
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
632
+ 'play' => esc_html__( 'Play', 'ooohboi-steroids' ),
633
+ 'pause' => esc_html__( 'Pause', 'ooohboi-steroids' ),
634
+ 'resume' => esc_html__( 'Resume', 'ooohboi-steroids' ),
635
+ 'reset' => esc_html__( 'Reset', 'ooohboi-steroids' ),
636
+ 'restart' => esc_html__( 'Restart', 'ooohboi-steroids' ),
637
+ 'complete' => esc_html__( 'Complete', 'ooohboi-steroids' ),
638
+ 'reverse' => esc_html__( 'Reverse', 'ooohboi-steroids' ),
639
+ ],
640
+ 'condition' => [
641
+ '_ob_animator' => 'yes',
642
+ '_ob_animator_st_toggle_actions' => 'yes',
643
+ ],
644
+ ]
645
+ );
646
+ // ------------------------------------------------------------------------- CONTROL onEnterBack
647
+ $element->add_control(
648
+ '_ob_animator_st_ta_onenterback',
649
+ [
650
+ 'label' => esc_html__( 'Action onEnterBack', 'ooohboi-steroids' ),
651
+ 'type' => Controls_Manager::SELECT,
652
+ 'separator' => 'before',
653
+ 'default' => 'none',
654
+ 'frontend_available' => true,
655
+ 'options' => [
656
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
657
+ 'play' => esc_html__( 'Play', 'ooohboi-steroids' ),
658
+ 'pause' => esc_html__( 'Pause', 'ooohboi-steroids' ),
659
+ 'resume' => esc_html__( 'Resume', 'ooohboi-steroids' ),
660
+ 'reset' => esc_html__( 'Reset', 'ooohboi-steroids' ),
661
+ 'restart' => esc_html__( 'Restart', 'ooohboi-steroids' ),
662
+ 'complete' => esc_html__( 'Complete', 'ooohboi-steroids' ),
663
+ 'reverse' => esc_html__( 'Reverse', 'ooohboi-steroids' ),
664
+ ],
665
+ 'condition' => [
666
+ '_ob_animator' => 'yes',
667
+ '_ob_animator_st_toggle_actions' => 'yes',
668
+ ],
669
+ ]
670
+ );
671
+ // ------------------------------------------------------------------------- CONTROL onLeaveBack
672
+ $element->add_control(
673
+ '_ob_animator_st_ta_onleaveback',
674
+ [
675
+ 'label' => esc_html__( 'Action onLeaveBack', 'ooohboi-steroids' ),
676
+ 'type' => Controls_Manager::SELECT,
677
+ 'separator' => 'before',
678
+ 'default' => 'reverse',
679
+ 'frontend_available' => true,
680
+ 'options' => [
681
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
682
+ 'play' => esc_html__( 'Play', 'ooohboi-steroids' ),
683
+ 'pause' => esc_html__( 'Pause', 'ooohboi-steroids' ),
684
+ 'resume' => esc_html__( 'Resume', 'ooohboi-steroids' ),
685
+ 'reset' => esc_html__( 'Reset', 'ooohboi-steroids' ),
686
+ 'restart' => esc_html__( 'Restart', 'ooohboi-steroids' ),
687
+ 'complete' => esc_html__( 'Complete', 'ooohboi-steroids' ),
688
+ 'reverse' => esc_html__( 'Reverse', 'ooohboi-steroids' ),
689
+ ],
690
+ 'condition' => [
691
+ '_ob_animator' => 'yes',
692
+ '_ob_animator_st_toggle_actions' => 'yes',
693
+ ],
694
+ ]
695
+ );
696
+
697
+ $element->end_popover(); // POPOVER ToggleActions end
698
+
699
+ // --------------------------------------------------------------------------------------------- CONTROL POPOVER ToggleActions
700
+ $element->add_control(
701
+ '_ob_animator_st_toggle_class_popover',
702
+ [
703
+ 'label' => esc_html__( 'Toggle Class', 'ooohboi-steroids' ),
704
+ 'type' => Controls_Manager::POPOVER_TOGGLE,
705
+ 'return_value' => 'yes',
706
+ 'frontend_available' => true,
707
+ 'condition' => [
708
+ '_ob_animator' => 'yes',
709
+ ],
710
+ ]
711
+ );
712
+
713
+ $element->start_popover(); // Toggle class
714
+
715
+ // --------------------------------------------------------------------------------------------- CONTROL Toggle class
716
+ $element->add_control(
717
+ '_ob_animator_st_toggle_class_desc',
718
+ [
719
+ 'type' => Controls_Manager::RAW_HTML,
720
+ 'raw' => esc_html__( 'Adds/removes a class to an element (or multiple elements) when the ScrollTrigger toggles active/inactive. <br/>
721
+ NOTE: It can only be the name of the class to add to the trigger element - the String! The Object is currently not supported!', 'ooohboi-steroids' ),
722
+ 'content_classes' => 'elementor-control-field-description',
723
+ ]
724
+ );
725
+
726
+ $element->add_control(
727
+ '_ob_animator_st_toggle_class',
728
+ [
729
+ 'label' => esc_html__( 'Toggle class name', 'ooohboi-steroids' ),
730
+ 'type' => Controls_Manager::TEXT,
731
+ 'default' => '',
732
+ 'frontend_available' => true,
733
+ 'condition' => [
734
+ '_ob_animator' => 'yes',
735
+ '_ob_animator_st_toggle_class_popover' => 'yes',
736
+ ],
737
+ ]
738
+ );
739
+
740
+ $element->end_popover(); // POPOVER Toggle class
741
+
742
+ // --------------------------------------------------------------------------------------------- Animatable properties Description
743
+ $element->add_control(
744
+ '_ob_animator_property_descr',
745
+ [
746
+ 'label' => esc_html__( 'Animatable Properties', 'ooohboi-steroids' ),
747
+ 'type' => Controls_Manager::RAW_HTML,
748
+ 'raw' => esc_html__( 'Add as many as you like but avoid redundancy!', 'ooohboi-steroids' ),
749
+ 'content_classes' => 'elementor-control-field-description',
750
+ 'separator' => 'before',
751
+ 'condition' => [
752
+ '_ob_animator' => 'yes',
753
+ ],
754
+ ]
755
+ );
756
+
757
+ $repeater = new Repeater();
758
+
759
+ // ------------------------------------------------------------------------- CONTROL Select animatable property
760
+ $repeater->add_control(
761
+ '_ob_animator_property',
762
+ [
763
+ 'label' => esc_html__( 'Animate', 'ooohboi-steroids' ),
764
+ 'type' => Controls_Manager::SELECT,
765
+ 'default' => 'none',
766
+ 'frontend_available' => true,
767
+ 'options' => [
768
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
769
+ 'x' => esc_html__( 'X', 'ooohboi-steroids' ),
770
+ 'y' => esc_html__( 'Y', 'ooohboi-steroids' ),
771
+ 'opacity' => esc_html__( 'Opacity', 'ooohboi-steroids' ),
772
+ 'color' => esc_html__( 'Color', 'ooohboi-steroids' ),
773
+ 'backgroundColor' => esc_html__( 'Background color', 'ooohboi-steroids' ),
774
+ 'scale' => esc_html__( 'Scale', 'ooohboi-steroids' ),
775
+ 'rotate' => esc_html__( 'Rotate', 'ooohboi-steroids' ),
776
+ 'skewX' => esc_html__( 'SkewX', 'ooohboi-steroids' ),
777
+ 'skewY' => esc_html__( 'SkewY', 'ooohboi-steroids' ),
778
+ 'clipPath' => esc_html__( 'Clip path', 'ooohboi-steroids' ),
779
+ ],
780
+ ]
781
+ );
782
+ // FROM ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
783
+ $repeater->add_control(
784
+ '_ob_prop_x_from',
785
+ [
786
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
787
+ 'type' => Controls_Manager::SLIDER,
788
+ 'frontend_available' => true,
789
+ 'range' => [
790
+ 'px' => [
791
+ 'max' => 500,
792
+ 'step' => 1,
793
+ ],
794
+ '%' => [
795
+ 'max' => 100,
796
+ 'step' => 1,
797
+ ],
798
+ ],
799
+ 'size_units' => [ 'px', '%' ],
800
+ 'default' => [
801
+ 'unit' => 'px',
802
+ 'size' => 0,
803
+ ],
804
+ 'condition' => [
805
+ '_ob_animator_property' => 'x'
806
+ ],
807
+ ]
808
+ );
809
+ $repeater->add_control(
810
+ '_ob_prop_y_from',
811
+ [
812
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
813
+ 'type' => Controls_Manager::SLIDER,
814
+ 'frontend_available' => true,
815
+ 'range' => [
816
+ 'px' => [
817
+ 'max' => 500,
818
+ 'step' => 1,
819
+ ],
820
+ '%' => [
821
+ 'max' => 100,
822
+ 'step' => 1,
823
+ ],
824
+ ],
825
+ 'size_units' => [ 'px', '%' ],
826
+ 'default' => [
827
+ 'unit' => 'px',
828
+ 'size' => 0,
829
+ ],
830
+ 'condition' => [
831
+ '_ob_animator_property' => 'y'
832
+ ],
833
+ ]
834
+ );
835
+ $repeater->add_control(
836
+ '_ob_prop_opacity_from',
837
+ [
838
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
839
+ 'type' => Controls_Manager::NUMBER,
840
+ 'frontend_available' => true,
841
+ 'min' => 0,
842
+ 'max' => 1,
843
+ 'default' => 1,
844
+ 'condition' => [
845
+ '_ob_animator_property' => 'opacity',
846
+ ],
847
+ ]
848
+ );
849
+ $repeater->add_control(
850
+ '_ob_prop_color_from',
851
+ [
852
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
853
+ 'type' => Controls_Manager::COLOR,
854
+ 'frontend_available' => true,
855
+ 'condition' => [
856
+ '_ob_animator_property' => 'color'
857
+ ],
858
+ ]
859
+ );
860
+ $repeater->add_control(
861
+ '_ob_prop_backgroundColor_from',
862
+ [
863
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
864
+ 'type' => Controls_Manager::COLOR,
865
+ 'frontend_available' => true,
866
+ 'condition' => [
867
+ '_ob_animator_property' => 'backgroundColor'
868
+ ],
869
+ ]
870
+ );
871
+ $repeater->add_control(
872
+ '_ob_prop_scale_from',
873
+ [
874
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
875
+ 'type' => Controls_Manager::NUMBER,
876
+ 'frontend_available' => true,
877
+ 'min' => 0,
878
+ 'default' => 1,
879
+ 'condition' => [
880
+ '_ob_animator_property' => 'scale',
881
+ ],
882
+ ]
883
+ );
884
+ $repeater->add_control(
885
+ '_ob_prop_rotate_from',
886
+ [
887
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
888
+ 'type' => Controls_Manager::NUMBER,
889
+ 'frontend_available' => true,
890
+ 'min' => -360,
891
+ 'max' => 360,
892
+ 'default' => 0,
893
+ 'condition' => [
894
+ '_ob_animator_property' => 'rotate',
895
+ ],
896
+ ]
897
+ );
898
+ $repeater->add_control(
899
+ '_ob_prop_skewX_from',
900
+ [
901
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
902
+ 'type' => Controls_Manager::NUMBER,
903
+ 'frontend_available' => true,
904
+ 'min' => -360,
905
+ 'max' => 360,
906
+ 'default' => 0,
907
+ 'condition' => [
908
+ '_ob_animator_property' => 'skewX',
909
+ ],
910
+ ]
911
+ );
912
+ $repeater->add_control(
913
+ '_ob_prop_skewY_from',
914
+ [
915
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
916
+ 'type' => Controls_Manager::NUMBER,
917
+ 'frontend_available' => true,
918
+ 'min' => -360,
919
+ 'max' => 360,
920
+ 'default' => 0,
921
+ 'condition' => [
922
+ '_ob_animator_property' => 'skewY',
923
+ ],
924
+ ]
925
+ );
926
+ $repeater->add_control(
927
+ '_ob_prop_clipPath_from',
928
+ [
929
+ 'label' => esc_html__( 'From', 'ooohboi-steroids' ),
930
+ 'description' => sprintf(
931
+ __( 'Enter the full clip-path property! See the copy-paste examples at %sClippy%s', 'ooohboi-steroids' ),
932
+ '<a href="https://bennettfeely.com/clippy/" target="_blank">',
933
+ '</a>'
934
+ ),
935
+ 'type' => Controls_Manager::TEXTAREA,
936
+ 'frontend_available' => true,
937
+ 'default' => '',
938
+ 'rows' => 3,
939
+ 'condition' => [
940
+ '_ob_animator_property' => 'clipPath',
941
+ ],
942
+ ]
943
+ );
944
+ // TO ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
945
+ $repeater->add_control(
946
+ '_ob_prop_x_to',
947
+ [
948
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
949
+ 'type' => Controls_Manager::SLIDER,
950
+ 'frontend_available' => true,
951
+ 'range' => [
952
+ 'px' => [
953
+ 'max' => 500,
954
+ 'step' => 1,
955
+ ],
956
+ '%' => [
957
+ 'max' => 100,
958
+ 'step' => 1,
959
+ ],
960
+ ],
961
+ 'size_units' => [ 'px', '%' ],
962
+ 'default' => [
963
+ 'unit' => 'px',
964
+ 'size' => 0,
965
+ ],
966
+ 'condition' => [
967
+ '_ob_animator_property' => 'x'
968
+ ],
969
+ ]
970
+ );
971
+ $repeater->add_control(
972
+ '_ob_prop_y_to',
973
+ [
974
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
975
+ 'type' => Controls_Manager::SLIDER,
976
+ 'frontend_available' => true,
977
+ 'range' => [
978
+ 'px' => [
979
+ 'max' => 500,
980
+ 'step' => 1,
981
+ ],
982
+ '%' => [
983
+ 'max' => 100,
984
+ 'step' => 1,
985
+ ],
986
+ ],
987
+ 'size_units' => [ 'px', '%' ],
988
+ 'default' => [
989
+ 'unit' => 'px',
990
+ 'size' => 0,
991
+ ],
992
+ 'condition' => [
993
+ '_ob_animator_property' => 'y'
994
+ ],
995
+ ]
996
+ );
997
+ $repeater->add_control(
998
+ '_ob_prop_opacity_to',
999
+ [
1000
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1001
+ 'type' => Controls_Manager::NUMBER,
1002
+ 'frontend_available' => true,
1003
+ 'min' => 0,
1004
+ 'max' => 1,
1005
+ 'default' => 1,
1006
+ 'condition' => [
1007
+ '_ob_animator_property' => 'opacity',
1008
+ ],
1009
+ ]
1010
+ );
1011
+ $repeater->add_control(
1012
+ '_ob_prop_color_to',
1013
+ [
1014
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1015
+ 'type' => Controls_Manager::COLOR,
1016
+ 'frontend_available' => true,
1017
+ 'condition' => [
1018
+ '_ob_animator_property' => 'color'
1019
+ ],
1020
+ ]
1021
+ );
1022
+ $repeater->add_control(
1023
+ '_ob_prop_backgroundColor_to',
1024
+ [
1025
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1026
+ 'type' => Controls_Manager::COLOR,
1027
+ 'frontend_available' => true,
1028
+ 'condition' => [
1029
+ '_ob_animator_property' => 'backgroundColor'
1030
+ ],
1031
+ ]
1032
+ );
1033
+ $repeater->add_control(
1034
+ '_ob_prop_scale_to',
1035
+ [
1036
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1037
+ 'type' => Controls_Manager::NUMBER,
1038
+ 'frontend_available' => true,
1039
+ 'min' => 0,
1040
+ 'default' => 1,
1041
+ 'condition' => [
1042
+ '_ob_animator_property' => 'scale',
1043
+ ],
1044
+ ]
1045
+ );
1046
+ $repeater->add_control(
1047
+ '_ob_prop_tr_origin',
1048
+ [
1049
+ 'label' => esc_html__( 'Transform Origin', 'ooohboi-steroids' ),
1050
+ 'type' => Controls_Manager::SELECT,
1051
+ 'frontend_available' => true,
1052
+ 'default' => 'none',
1053
+ 'options' => [
1054
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
1055
+ 'left top' => esc_html__( 'Left Top', 'ooohboi-steroids' ),
1056
+ 'left center' => esc_html__( 'Left Center', 'ooohboi-steroids' ),
1057
+ 'left bottom' => esc_html__( 'Left Bottom', 'ooohboi-steroids' ),
1058
+ 'center top' => esc_html__( 'Center Top', 'ooohboi-steroids' ),
1059
+ 'center center' => esc_html__( 'Center Center', 'ooohboi-steroids' ),
1060
+ 'center bottom' => esc_html__( 'Center Bottom', 'ooohboi-steroids' ),
1061
+ 'right top' => esc_html__( 'Right Top', 'ooohboi-steroids' ),
1062
+ 'right center' => esc_html__( 'Right Center', 'ooohboi-steroids' ),
1063
+ 'right bottom' => esc_html__( 'Right Bottom', 'ooohboi-steroids' ),
1064
+ ],
1065
+ 'condition' => [
1066
+ '_ob_animator_property' => 'scale',
1067
+ ],
1068
+ ]
1069
+ );
1070
+ $repeater->add_control(
1071
+ '_ob_prop_rotate_to',
1072
+ [
1073
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1074
+ 'type' => Controls_Manager::NUMBER,
1075
+ 'frontend_available' => true,
1076
+ 'min' => -360,
1077
+ 'max' => 360,
1078
+ 'default' => 0,
1079
+ 'condition' => [
1080
+ '_ob_animator_property' => 'rotate',
1081
+ ],
1082
+ ]
1083
+ );
1084
+ $repeater->add_control(
1085
+ '_ob_prop_skewX_to',
1086
+ [
1087
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1088
+ 'type' => Controls_Manager::NUMBER,
1089
+ 'frontend_available' => true,
1090
+ 'min' => -360,
1091
+ 'max' => 360,
1092
+ 'default' => 0,
1093
+ 'condition' => [
1094
+ '_ob_animator_property' => 'skewX',
1095
+ ],
1096
+ ]
1097
+ );
1098
+ $repeater->add_control(
1099
+ '_ob_prop_skewY_to',
1100
+ [
1101
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1102
+ 'type' => Controls_Manager::NUMBER,
1103
+ 'frontend_available' => true,
1104
+ 'min' => -360,
1105
+ 'max' => 360,
1106
+ 'default' => 0,
1107
+ 'condition' => [
1108
+ '_ob_animator_property' => 'skewY',
1109
+ ],
1110
+ ]
1111
+ );
1112
+ $repeater->add_control(
1113
+ '_ob_prop_clipPath_to',
1114
+ [
1115
+ 'label' => esc_html__( 'To', 'ooohboi-steroids' ),
1116
+ 'type' => Controls_Manager::TEXTAREA,
1117
+ 'frontend_available' => true,
1118
+ 'default' => '',
1119
+ 'rows' => 3,
1120
+ 'condition' => [
1121
+ '_ob_animator_property' => 'clipPath',
1122
+ ],
1123
+ ]
1124
+ );
1125
+ // render REPEATER
1126
+ $element->add_control(
1127
+ '_ob_animator_props_repeater',
1128
+ [
1129
+ //'label' => esc_html__( 'Animatable Properties', 'ooohboi-steroids' ),
1130
+ 'type' => Controls_Manager::REPEATER,
1131
+ 'frontend_available' => true,
1132
+ 'fields' => $repeater->get_controls(),
1133
+ 'title_field' => '<# print(_ob_animator_property.slice(0,1).toUpperCase() + _ob_animator_property.slice(1)) #>',
1134
+ 'default' => [
1135
+ [
1136
+ '_ob_animator_property' => 'x',
1137
+ '_ob_prop_x_from' => 0,
1138
+ '_ob_prop_x_to' => 0,
1139
+ ],
1140
+ ],
1141
+ 'condition' => [
1142
+ '_ob_animator' => 'yes',
1143
+ ],
1144
+ ]
1145
+ );
1146
+
1147
+ // --------------------------------------------------------------------------------------------- Animatable properties Description
1148
+ $element->add_control(
1149
+ '_ob_animator_easing_timing',
1150
+ [
1151
+ 'label' => esc_html__( 'Easing and Timing', 'ooohboi-steroids' ),
1152
+ 'type' => Controls_Manager::RAW_HTML,
1153
+ 'raw' => esc_html__( 'These will make any animation look more natural', 'ooohboi-steroids' ),
1154
+ 'content_classes' => 'elementor-control-field-description',
1155
+ 'separator' => 'before',
1156
+ 'condition' => [
1157
+ '_ob_animator' => 'yes',
1158
+ ],
1159
+ ]
1160
+ );
1161
+ // ------------------------------------------------------------------------- CONTROL Easing
1162
+ $element->add_control(
1163
+ '_ob_animator_easing',
1164
+ [
1165
+ 'label' => esc_html__( 'Ease', 'ooohboi-steroids' ),
1166
+ 'description' => esc_html__( 'It will automatically become NONE with the Scrub option enabled!', 'ooohboi-steroids' ),
1167
+ 'type' => Controls_Manager::SELECT,
1168
+ 'default' => 'none',
1169
+ 'frontend_available' => true,
1170
+ 'options' => [
1171
+ 'none' => esc_html__( 'None', 'ooohboi-steroids' ),
1172
+ 'power1.in' => esc_html__( 'Power1.in', 'ooohboi-steroids' ),
1173
+ 'power1.out' => esc_html__( 'Power1.out', 'ooohboi-steroids' ),
1174
+ 'power1.inOut' => esc_html__( 'Power1.inOut', 'ooohboi-steroids' ),
1175
+ 'power2.in' => esc_html__( 'Power2.in', 'ooohboi-steroids' ),
1176
+ 'power2.out' => esc_html__( 'Power2.out', 'ooohboi-steroids' ),
1177
+ 'power2.inOut' => esc_html__( 'Power2.inOut', 'ooohboi-steroids' ),
1178
+ 'power3.in' => esc_html__( 'Power3.in', 'ooohboi-steroids' ),
1179
+ 'power3.out' => esc_html__( 'Power3.out', 'ooohboi-steroids' ),
1180
+ 'power3.inOut' => esc_html__( 'Power3.inOut', 'ooohboi-steroids' ),
1181
+ 'power4.in' => esc_html__( 'Power4.in', 'ooohboi-steroids' ),
1182
+ 'power4.out' => esc_html__( 'Power4.out', 'ooohboi-steroids' ),
1183
+ 'power4.inOut' => esc_html__( 'Power4.inOut', 'ooohboi-steroids' ),
1184
+ 'circ.in' => esc_html__( 'Circ.in', 'ooohboi-steroids' ),
1185
+ 'circ.out' => esc_html__( 'Circ.out', 'ooohboi-steroids' ),
1186
+ 'circ.inOut' => esc_html__( 'Circ.inOut', 'ooohboi-steroids' ),
1187
+ 'expo.in' => esc_html__( 'Expo.in', 'ooohboi-steroids' ),
1188
+ 'expo.out' => esc_html__( 'Expo.out', 'ooohboi-steroids' ),
1189
+ 'expo.inOut' => esc_html__( 'Expo.inOut', 'ooohboi-steroids' ),
1190
+ 'sine.in' => esc_html__( 'Sine.in', 'ooohboi-steroids' ),
1191
+ 'sine.out' => esc_html__( 'Sine.out', 'ooohboi-steroids' ),
1192
+ 'sine.inOut' => esc_html__( 'Sine.inOut', 'ooohboi-steroids' ),
1193
+ 'elastic' => esc_html__( 'Elastic', 'ooohboi-steroids' ),
1194
+ 'back' => esc_html__( 'Back', 'ooohboi-steroids' ),
1195
+ 'bounce' => esc_html__( 'Bounce', 'ooohboi-steroids' ),
1196
+ ],
1197
+ 'condition' => [
1198
+ '_ob_animator' => 'yes',
1199
+ ],
1200
+ ]
1201
+ );
1202
+ // --------------------------------------------------------------------------------------------- CONTROL duration
1203
+ $element->add_control(
1204
+ '_ob_animator_duration',
1205
+ [
1206
+ 'label' => esc_html__( 'Duration', 'ooohboi-steroids' ),
1207
+ 'description' => esc_html__( 'Animation duration in seconds. 0.4 is deafult.', 'ooohboi-steroids' ),
1208
+ 'type' => Controls_Manager::NUMBER,
1209
+ 'frontend_available' => true,
1210
+ 'min' => 0,
1211
+ 'default' => 0.4,
1212
+ 'label_block' => false,
1213
+ 'condition' => [
1214
+ '_ob_animator' => 'yes',
1215
+ ],
1216
+ ]
1217
+ );
1218
+ // --------------------------------------------------------------------------------------------- CONTROL delay
1219
+ $element->add_control(
1220
+ '_ob_animator_delay',
1221
+ [
1222
+ 'label' => esc_html__( 'Delay', 'ooohboi-steroids' ),
1223
+ 'description' => esc_html__( 'Seconds to pause before the animation starts.', 'ooohboi-steroids' ),
1224
+ 'type' => Controls_Manager::NUMBER,
1225
+ 'frontend_available' => true,
1226
+ 'min' => 0,
1227
+ 'default' => 0,
1228
+ 'label_block' => false,
1229
+ 'condition' => [
1230
+ '_ob_animator' => 'yes',
1231
+ ],
1232
+ ]
1233
+ );
1234
+
1235
+ $element->end_controls_section(); // END SECTION / PANEL
1236
+
1237
+ }
1238
+
1239
+ }
controls/ooohboi-overlaiz.php CHANGED
@@ -1,4 +1,6 @@
1
  <?php
 
 
2
  use Elementor\Controls_Manager;
3
  use Elementor\Controls_Stack;
4
  use Elementor\Group_Control_Border;
@@ -27,7 +29,8 @@ class OoohBoi_Overlaiz {
27
  public static function init() {
28
 
29
  add_action( 'elementor/element/section/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
30
- add_action( 'elementor/element/column/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
 
31
 
32
  }
33
 
@@ -35,8 +38,8 @@ class OoohBoi_Overlaiz {
35
 
36
  // selector based on the current element
37
  $selector = '{{WRAPPER}} > .elementor-column-wrap > .elementor-background-overlay, {{WRAPPER}} > .elementor-widget-wrap > .elementor-background-overlay';
38
- if( 'section' == $element->get_name() )
39
- $selector = '{{WRAPPER}} > .elementor-background-overlay';
40
 
41
 
42
  $element->add_control(
@@ -388,7 +391,7 @@ class OoohBoi_Overlaiz {
388
  'selector' => $selector,
389
  'condition' => [
390
  '_ob_overlaiz_use_it' => 'yes',
391
- 'background_overlay_background' => [ 'classic', 'gradient' ],
392
  ],
393
  ]
394
  );
@@ -398,13 +401,18 @@ class OoohBoi_Overlaiz {
398
  [
399
  'label' => __( 'Border Radius', 'ooohboi-steroids' ),
400
  'type' => Controls_Manager::DIMENSIONS,
401
- 'size_units' => [ 'px', '%' ],
 
 
 
 
402
  'selectors' => [
403
  $selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
404
  ],
405
  'condition' => [
406
  '_ob_overlaiz_use_it' => 'yes',
407
- 'background_overlay_background' => [ 'classic', 'gradient' ],
 
408
  ],
409
  ]
410
  );
@@ -445,6 +453,7 @@ class OoohBoi_Overlaiz {
445
  'label' => __( 'Clip path', 'ooohboi-steroids' ),
446
  'type' => Controls_Manager::POPOVER_TOGGLE,
447
  'return_value' => 'yes',
 
448
  'condition' => [
449
  '_ob_overlaiz_use_it' => 'yes',
450
  'background_overlay_background' => [ 'classic', 'gradient' ],
@@ -471,6 +480,7 @@ class OoohBoi_Overlaiz {
471
  'condition' => [
472
  '_ob_overlaiz_use_it' => 'yes',
473
  'background_overlay_background' => [ 'classic', 'gradient' ],
 
474
  ],
475
  ]
476
  );
@@ -489,7 +499,7 @@ class OoohBoi_Overlaiz {
489
  'condition' => [
490
  '_ob_overlaiz_use_it' => 'yes',
491
  'background_overlay_background' => [ 'classic', 'gradient' ],
492
- /*'background_overlay_image[url]!' => '',*/
493
  ],
494
  ]
495
  );
@@ -512,7 +522,7 @@ class OoohBoi_Overlaiz {
512
  'condition' => [
513
  '_ob_overlaiz_use_it' => 'yes',
514
  'background_overlay_background' => [ 'classic', 'gradient' ],
515
- /*'background_overlay_image[url]!' => '',*/
516
  ],
517
  ]
518
  );
@@ -541,8 +551,8 @@ class OoohBoi_Overlaiz {
541
  'condition' => [
542
  '_ob_overlaiz_use_it' => 'yes',
543
  'background_overlay_background' => [ 'classic', 'gradient' ],
544
- /*'background_overlay_image[url]!' => '', */
545
- '_ob_overlaiz_mask_img[url]!' => '',
546
  ],
547
  ]
548
  );
@@ -566,8 +576,8 @@ class OoohBoi_Overlaiz {
566
  'condition' => [
567
  '_ob_overlaiz_use_it' => 'yes',
568
  'background_overlay_background' => [ 'classic', 'gradient' ],
569
- /*'background_overlay_image[url]!' => '',*/
570
- '_ob_overlaiz_mask_img[url]!' => '',
571
  ],
572
  ]
573
  );
@@ -598,9 +608,9 @@ class OoohBoi_Overlaiz {
598
  'condition' => [
599
  '_ob_overlaiz_use_it' => 'yes',
600
  'background_overlay_background' => [ 'classic', 'gradient' ],
601
- /*'background_overlay_image[url]!' => '',*/
602
  '_ob_overlaiz_mask_size' => [ 'initial' ],
603
- '_ob_overlaiz_mask_img[url]!' => '',
 
604
  ],
605
  'device_args' => [
606
  Controls_Stack::RESPONSIVE_TABLET => [
@@ -610,8 +620,8 @@ class OoohBoi_Overlaiz {
610
  'condition' => [
611
  '_ob_overlaiz_use_it' => 'yes',
612
  'background_overlay_background' => [ 'classic', 'gradient' ],
613
- /*'background_overlay_image[url]!' => '',*/
614
- '_ob_overlaiz_mask_size_tablet' => [ 'initial' ],
615
  ],
616
  ],
617
  Controls_Stack::RESPONSIVE_MOBILE => [
@@ -621,8 +631,8 @@ class OoohBoi_Overlaiz {
621
  'condition' => [
622
  '_ob_overlaiz_use_it' => 'yes',
623
  'background_overlay_background' => [ 'classic', 'gradient' ],
624
- /*'background_overlay_image[url]!' => '',*/
625
  '_ob_overlaiz_mask_size_mobile' => [ 'initial' ],
 
626
  ],
627
  ],
628
  ],
@@ -647,8 +657,8 @@ class OoohBoi_Overlaiz {
647
  'condition' => [
648
  '_ob_overlaiz_use_it' => 'yes',
649
  'background_overlay_background' => [ 'classic', 'gradient' ],
650
- /*'background_overlay_image[url]!' => '',*/
651
  '_ob_overlaiz_mask_img[url]!' => '',
 
652
  ],
653
  ]
654
  );
1
  <?php
2
+ use Elementor\Core\Breakpoints\Breakpoint;
3
+ use Elementor\Core\Breakpoints\Manager as Breakpoints_Manager;
4
  use Elementor\Controls_Manager;
5
  use Elementor\Controls_Stack;
6
  use Elementor\Group_Control_Border;
29
  public static function init() {
30
 
31
  add_action( 'elementor/element/section/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
32
+ add_action( 'elementor/element/column/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
33
+ add_action( 'elementor/element/container/section_background_overlay/before_section_end', [ __CLASS__, 'ooohboi_overlaiz_get_controls' ], 10, 2 );
34
 
35
  }
36
 
38
 
39
  // selector based on the current element
40
  $selector = '{{WRAPPER}} > .elementor-column-wrap > .elementor-background-overlay, {{WRAPPER}} > .elementor-widget-wrap > .elementor-background-overlay';
41
+ if( 'section' == $element->get_name() ) $selector = '{{WRAPPER}} > .elementor-background-overlay';
42
+ elseif( 'container' == $element->get_name() ) $selector = '{{WRAPPER}}.e-container--column:before';
43
 
44
 
45
  $element->add_control(
391
  'selector' => $selector,
392
  'condition' => [
393
  '_ob_overlaiz_use_it' => 'yes',
394
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
395
  ],
396
  ]
397
  );
401
  [
402
  'label' => __( 'Border Radius', 'ooohboi-steroids' ),
403
  'type' => Controls_Manager::DIMENSIONS,
404
+ 'size_units' => [ 'px', '%' ],
405
+ 'default' => [
406
+ 'unit' => 'px',
407
+ 'size' => 0,
408
+ ],
409
  'selectors' => [
410
  $selector => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
411
  ],
412
  'condition' => [
413
  '_ob_overlaiz_use_it' => 'yes',
414
+ 'background_overlay_background' => [ 'classic', 'gradient' ],
415
+ '_ob_overlaiz_popover_border' => 'yes',
416
  ],
417
  ]
418
  );
453
  'label' => __( 'Clip path', 'ooohboi-steroids' ),
454
  'type' => Controls_Manager::POPOVER_TOGGLE,
455
  'return_value' => 'yes',
456
+ 'frontend_available' => true,
457
  'condition' => [
458
  '_ob_overlaiz_use_it' => 'yes',
459
  'background_overlay_background' => [ 'classic', 'gradient' ],
480
  'condition' => [
481
  '_ob_overlaiz_use_it' => 'yes',
482
  'background_overlay_background' => [ 'classic', 'gradient' ],
483
+ '_ob_overlaiz_clip_path_popover' => 'yes',
484
  ],
485
  ]
486
  );
499
  'condition' => [
500
  '_ob_overlaiz_use_it' => 'yes',
501
  'background_overlay_background' => [ 'classic', 'gradient' ],
502
+
503
  ],
504
  ]
505
  );
522
  'condition' => [
523
  '_ob_overlaiz_use_it' => 'yes',
524
  'background_overlay_background' => [ 'classic', 'gradient' ],
525
+ '_ob_overlaiz_popover_masq' => 'yes',
526
  ],
527
  ]
528
  );
551
  'condition' => [
552
  '_ob_overlaiz_use_it' => 'yes',
553
  'background_overlay_background' => [ 'classic', 'gradient' ],
554
+ '_ob_overlaiz_mask_img[url]!' => '',
555
+ '_ob_overlaiz_popover_masq' => 'yes',
556
  ],
557
  ]
558
  );
576
  'condition' => [
577
  '_ob_overlaiz_use_it' => 'yes',
578
  'background_overlay_background' => [ 'classic', 'gradient' ],
579
+ '_ob_overlaiz_mask_img[url]!' => '',
580
+ '_ob_overlaiz_popover_masq' => 'yes',
581
  ],
582
  ]
583
  );
608
  'condition' => [
609
  '_ob_overlaiz_use_it' => 'yes',
610
  'background_overlay_background' => [ 'classic', 'gradient' ],
 
611
  '_ob_overlaiz_mask_size' => [ 'initial' ],
612
+ '_ob_overlaiz_mask_img[url]!' => '',
613
+ '_ob_overlaiz_popover_masq' => 'yes',
614
  ],
615
  'device_args' => [
616
  Controls_Stack::RESPONSIVE_TABLET => [
620
  'condition' => [
621
  '_ob_overlaiz_use_it' => 'yes',
622
  'background_overlay_background' => [ 'classic', 'gradient' ],
623
+ '_ob_overlaiz_mask_size_tablet' => [ 'initial' ],
624
+ '_ob_overlaiz_popover_masq' => 'yes',
625
  ],
626
  ],
627
  Controls_Stack::RESPONSIVE_MOBILE => [
631
  'condition' => [
632
  '_ob_overlaiz_use_it' => 'yes',
633
  'background_overlay_background' => [ 'classic', 'gradient' ],
 
634
  '_ob_overlaiz_mask_size_mobile' => [ 'initial' ],
635
+ '_ob_overlaiz_popover_masq' => 'yes',
636
  ],
637
  ],
638
  ],
657
  'condition' => [
658
  '_ob_overlaiz_use_it' => 'yes',
659
  'background_overlay_background' => [ 'classic', 'gradient' ],
 
660
  '_ob_overlaiz_mask_img[url]!' => '',
661
+ '_ob_overlaiz_popover_masq' => 'yes',
662
  ],
663
  ]
664
  );
controls/ooohboi-overlay-underlay.php CHANGED
@@ -19,6 +19,8 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  */
20
  class OoohBoi_Overlay_Underlay {
21
 
 
 
22
  /**
23
  * Initialize
24
  *
@@ -34,31 +36,55 @@ class OoohBoi_Overlay_Underlay {
34
  add_action( 'elementor/element/wp-post/document_settings/before_section_end', [ __CLASS__, 'poopart_remove_horizontal_scroller' ] );
35
  add_action( 'elementor/element/wp-page/document_settings/before_section_end', [ __CLASS__, 'poopart_remove_horizontal_scroller' ] );
36
 
 
 
 
 
 
37
  }
38
 
39
- public static function add_attributes( Element_Base $element ) {
 
40
 
41
- if ( in_array( $element->get_name(), [ 'section', 'column' ] ) ) {
42
- return;
 
 
43
  }
44
 
45
- if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) {
46
- return;
 
 
 
 
 
 
 
 
 
 
47
  }
 
 
 
 
 
 
48
 
49
  $settings = $element->get_settings_for_display();
50
 
51
- $overlay_bg = isset( $settings[ '_ob_steroids_overlay_background_background' ] ) ? $settings[ '_ob_steroids_overlay_background_background' ] : '';
52
- $underlay_bg = isset( $settings[ '_ob_steroids_underlay_background_background' ] ) ? $settings[ '_ob_steroids_underlay_background_background' ] : '';
53
-
54
- $has_background_overlay = ( in_array( $overlay_bg, [ 'classic', 'gradient' ], true ) || in_array( $underlay_bg, [ 'classic', 'gradient' ], true ) );
 
55
 
56
- if ( $has_background_overlay ) {
57
- $element->add_render_attribute( '_wrapper', 'class', 'ob-has-background-overlay' );
58
  }
59
 
60
  }
61
 
 
62
  public static function add_section( Element_Base $element ) {
63
 
64
  $element->start_controls_section(
@@ -69,6 +95,21 @@ class OoohBoi_Overlay_Underlay {
69
  ]
70
  );
71
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  // --------------------------------------------------------------------------------------------- START 2 TABS Overlay & Underlay
73
  $element->start_controls_tabs( '_ob_steroids_tabs' );
74
 
@@ -85,6 +126,9 @@ class OoohBoi_Overlay_Underlay {
85
  [
86
  'name' => '_ob_steroids_overlay_background',
87
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
 
 
 
88
  ]
89
  );
90
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
@@ -107,6 +151,7 @@ class OoohBoi_Overlay_Underlay {
107
  ],
108
  'condition' => [
109
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
110
  ],
111
  ]
112
  );
@@ -118,6 +163,7 @@ class OoohBoi_Overlay_Underlay {
118
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
119
  'condition' => [
120
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
121
  ],
122
  ]
123
  );
@@ -144,6 +190,7 @@ class OoohBoi_Overlay_Underlay {
144
  ],
145
  'condition' => [
146
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
147
  ],
148
  ]
149
  );
@@ -157,6 +204,7 @@ class OoohBoi_Overlay_Underlay {
157
  'frontend_available' => true,
158
  'condition' => [
159
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
160
  ],
161
  ]
162
  );
@@ -202,6 +250,8 @@ class OoohBoi_Overlay_Underlay {
202
  'condition' => [
203
  '_ob_steroids_overlay_w_alt' => '',
204
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
205
  ],
206
  ]
207
  );
@@ -217,6 +267,8 @@ class OoohBoi_Overlay_Underlay {
217
  ],
218
  'condition' => [
219
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
220
  ],
221
  ]
222
  );
@@ -259,6 +311,8 @@ class OoohBoi_Overlay_Underlay {
259
  'condition' => [
260
  '_ob_steroids_overlay_h_alt' => '',
261
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
262
  ],
263
  ]
264
  );
@@ -274,6 +328,8 @@ class OoohBoi_Overlay_Underlay {
274
  ],
275
  'condition' => [
276
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
277
  ],
278
  ]
279
  );
@@ -316,6 +372,8 @@ class OoohBoi_Overlay_Underlay {
316
  'condition' => [
317
  '_ob_steroids_overlay_y_alt' => '',
318
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
319
  ],
320
  ]
321
  );
@@ -331,6 +389,8 @@ class OoohBoi_Overlay_Underlay {
331
  ],
332
  'condition' => [
333
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
334
  ],
335
  ]
336
  );
@@ -373,6 +433,8 @@ class OoohBoi_Overlay_Underlay {
373
  'condition' => [
374
  '_ob_steroids_overlay_x_alt' => '',
375
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
376
  ],
377
  ]
378
  );
@@ -388,6 +450,8 @@ class OoohBoi_Overlay_Underlay {
388
  ],
389
  'condition' => [
390
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
391
  ],
392
  ]
393
  );
@@ -413,6 +477,7 @@ class OoohBoi_Overlay_Underlay {
413
  ],
414
  'condition' => [
415
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
416
  ],
417
  ]
418
  );
@@ -429,6 +494,7 @@ class OoohBoi_Overlay_Underlay {
429
  'frontend_available' => true,
430
  'condition' => [
431
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
432
  ],
433
  ]
434
  );
@@ -459,6 +525,8 @@ class OoohBoi_Overlay_Underlay {
459
  ],
460
  'condition' => [
461
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
462
  ],
463
  ]
464
  );
@@ -475,6 +543,7 @@ class OoohBoi_Overlay_Underlay {
475
  'frontend_available' => true,
476
  'condition' => [
477
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
478
  ],
479
  ]
480
  );
@@ -496,6 +565,8 @@ class OoohBoi_Overlay_Underlay {
496
  ],
497
  'condition' => [
498
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
499
  ],
500
  ]
501
  );
@@ -524,6 +595,8 @@ class OoohBoi_Overlay_Underlay {
524
  'condition' => [
525
  '_ob_steroids_overlay_mask_img[url]!' => '',
526
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
527
  ],
528
  ]
529
  );
@@ -547,6 +620,8 @@ class OoohBoi_Overlay_Underlay {
547
  'condition' => [
548
  '_ob_steroids_overlay_mask_img[url]!' => '',
549
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
550
  ],
551
  ]
552
  );
@@ -578,6 +653,8 @@ class OoohBoi_Overlay_Underlay {
578
  '_ob_steroids_overlay_mask_size' => [ 'initial' ],
579
  '_ob_steroids_overlay_mask_img[url]!' => '',
580
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
581
  ],
582
  'device_args' => [
583
  Controls_Stack::RESPONSIVE_TABLET => [
@@ -585,7 +662,9 @@ class OoohBoi_Overlay_Underlay {
585
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
586
  ],
587
  'condition' => [
588
- '_ob_steroids_overlay_mask_size_tablet' => [ 'initial' ],
 
 
589
  ],
590
  ],
591
  Controls_Stack::RESPONSIVE_MOBILE => [
@@ -594,6 +673,8 @@ class OoohBoi_Overlay_Underlay {
594
  ],
595
  'condition' => [
596
  '_ob_steroids_overlay_mask_size_mobile' => [ 'initial' ],
 
 
597
  ],
598
  ],
599
  ],
@@ -618,6 +699,8 @@ class OoohBoi_Overlay_Underlay {
618
  'condition' => [
619
  '_ob_steroids_overlay_mask_img[url]!' => '',
620
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
 
621
  ],
622
  ]
623
  );
@@ -642,6 +725,7 @@ class OoohBoi_Overlay_Underlay {
642
  ],
643
  'condition' => [
644
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
645
  ],
646
  ]
647
  );
@@ -660,6 +744,7 @@ class OoohBoi_Overlay_Underlay {
660
  'label_block' => false,
661
  'condition' => [
662
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
663
  ],
664
  ]
665
  );
@@ -680,7 +765,10 @@ class OoohBoi_Overlay_Underlay {
680
  Group_Control_Background::get_type(),
681
  [
682
  'name' => '_ob_steroids_underlay_background',
683
- 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
 
 
 
684
  ]
685
  );
686
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
@@ -703,6 +791,7 @@ class OoohBoi_Overlay_Underlay {
703
  ],
704
  'condition' => [
705
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
706
  ],
707
  ]
708
  );
@@ -714,6 +803,7 @@ class OoohBoi_Overlay_Underlay {
714
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
715
  'condition' => [
716
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
717
  ],
718
  ]
719
  );
@@ -740,6 +830,7 @@ class OoohBoi_Overlay_Underlay {
740
  ],
741
  'condition' => [
742
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
743
  ],
744
  ]
745
  );
@@ -753,6 +844,7 @@ class OoohBoi_Overlay_Underlay {
753
  'frontend_available' => true,
754
  'condition' => [
755
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
756
  ],
757
  ]
758
  );
@@ -797,6 +889,8 @@ class OoohBoi_Overlay_Underlay {
797
  ],
798
  'condition' => [
799
  '_ob_steroids_underlay_w_alt' => '',
 
 
800
  ],
801
  ]
802
  );
@@ -810,6 +904,10 @@ class OoohBoi_Overlay_Underlay {
810
  'selectors' => [
811
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'width: calc({{VALUE}});',
812
  ],
 
 
 
 
813
  ]
814
  );
815
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT
@@ -850,6 +948,8 @@ class OoohBoi_Overlay_Underlay {
850
  ],
851
  'condition' => [
852
  '_ob_steroids_underlay_h_alt' => '',
 
 
853
  ],
854
  ]
855
  );
@@ -863,6 +963,10 @@ class OoohBoi_Overlay_Underlay {
863
  'selectors' => [
864
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'height: calc({{VALUE}});',
865
  ],
 
 
 
 
866
  ]
867
  );
868
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP
@@ -903,6 +1007,8 @@ class OoohBoi_Overlay_Underlay {
903
  ],
904
  'condition' => [
905
  '_ob_steroids_underlay_y_alt' => '',
 
 
906
  ],
907
  ]
908
  );
@@ -916,6 +1022,10 @@ class OoohBoi_Overlay_Underlay {
916
  'selectors' => [
917
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'top: calc({{VALUE}});',
918
  ],
 
 
 
 
919
  ]
920
  );
921
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT
@@ -956,6 +1066,8 @@ class OoohBoi_Overlay_Underlay {
956
  ],
957
  'condition' => [
958
  '_ob_steroids_underlay_x_alt' => '',
 
 
959
  ],
960
  ]
961
  );
@@ -969,6 +1081,10 @@ class OoohBoi_Overlay_Underlay {
969
  'selectors' => [
970
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'left: calc({{VALUE}});',
971
  ],
 
 
 
 
972
  ]
973
  );
974
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER ROTATION
@@ -991,6 +1107,10 @@ class OoohBoi_Overlay_Underlay {
991
  'selectors' => [
992
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'transform: rotate({{SIZE}}deg);',
993
  ],
 
 
 
 
994
  ]
995
  );
996
 
@@ -1006,6 +1126,7 @@ class OoohBoi_Overlay_Underlay {
1006
  'frontend_available' => true,
1007
  'condition' => [
1008
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
1009
  ],
1010
  ]
1011
  );
@@ -1021,6 +1142,7 @@ class OoohBoi_Overlay_Underlay {
1021
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
1022
  'condition' => [
1023
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
1024
  ],
1025
  ]
1026
  );
@@ -1036,6 +1158,8 @@ class OoohBoi_Overlay_Underlay {
1036
  ],
1037
  'condition' => [
1038
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
 
1039
  ],
1040
  ]
1041
  );
@@ -1073,6 +1197,8 @@ class OoohBoi_Overlay_Underlay {
1073
  ],
1074
  'condition' => [
1075
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
 
1076
  ],
1077
  ]
1078
  );
@@ -1100,6 +1226,8 @@ class OoohBoi_Overlay_Underlay {
1100
  ],
1101
  'condition' => [
1102
  '_ob_steroids_underlay_mask_img[url]!' => '',
 
 
1103
  ],
1104
  ]
1105
  );
@@ -1122,6 +1250,8 @@ class OoohBoi_Overlay_Underlay {
1122
  ],
1123
  'condition' => [
1124
  '_ob_steroids_underlay_mask_img[url]!' => '',
 
 
1125
  ],
1126
  ]
1127
  );
@@ -1151,7 +1281,9 @@ class OoohBoi_Overlay_Underlay {
1151
  ],
1152
  'condition' => [
1153
  '_ob_steroids_underlay_mask_size' => [ 'initial' ],
1154
- '_ob_steroids_underlay_mask_img[url]!' => '',
 
 
1155
  ],
1156
  'device_args' => [
1157
  Controls_Stack::RESPONSIVE_TABLET => [
@@ -1159,7 +1291,9 @@ class OoohBoi_Overlay_Underlay {
1159
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1160
  ],
1161
  'condition' => [
1162
- '_ob_steroids_underlay_mask_size_tablet' => [ 'initial' ],
 
 
1163
  ],
1164
  ],
1165
  Controls_Stack::RESPONSIVE_MOBILE => [
@@ -1168,6 +1302,8 @@ class OoohBoi_Overlay_Underlay {
1168
  ],
1169
  'condition' => [
1170
  '_ob_steroids_underlay_mask_size_mobile' => [ 'initial' ],
 
 
1171
  ],
1172
  ],
1173
  ],
@@ -1190,7 +1326,9 @@ class OoohBoi_Overlay_Underlay {
1190
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
1191
  ],
1192
  'condition' => [
1193
- '_ob_steroids_underlay_mask_img[url]!' => '',
 
 
1194
  ],
1195
  ]
1196
  );
@@ -1214,7 +1352,8 @@ class OoohBoi_Overlay_Underlay {
1214
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '{{VALUE}}',
1215
  ],
1216
  'condition' => [
1217
- '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
 
1218
  ],
1219
  ]
1220
  );
@@ -1233,6 +1372,7 @@ class OoohBoi_Overlay_Underlay {
1233
  'label_block' => false,
1234
  'condition' => [
1235
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
 
1236
  ],
1237
  ]
1238
  );
@@ -1258,7 +1398,7 @@ class OoohBoi_Overlay_Underlay {
1258
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
1259
  'label_off' => __( 'No', 'ooohboi-steroids' ),
1260
  'return_value' => 'hidden',
1261
- 'default' => 'inherit',
1262
  'selectors' => [
1263
  'html, body' => 'overflow-x: {{VALUE}};',
1264
  ],
@@ -1325,7 +1465,7 @@ class OoohBoi_Overlay_Underlay {
1325
  'size' => 4,
1326
  ],
1327
  'selectors' => [
1328
- 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(to right, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}}), repeating-linear-gradient(to bottom, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1329
  ],
1330
  'condition' => [
1331
  '_ob_steroids_use_baseline_grid' => 'yes',
@@ -1349,7 +1489,7 @@ class OoohBoi_Overlay_Underlay {
1349
  'size' => 8,
1350
  ],
1351
  'selectors' => [
1352
- 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(90deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1353
  ],
1354
  'condition' => [
1355
  '_ob_steroids_use_baseline_grid' => 'yes',
@@ -1373,7 +1513,7 @@ class OoohBoi_Overlay_Underlay {
1373
  'size' => 8,
1374
  ],
1375
  'selectors' => [
1376
- 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(0deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent {{SIZE}}{{UNIT}});',
1377
  ],
1378
  'condition' => [
1379
  '_ob_steroids_use_baseline_grid' => 'yes',
19
  */
20
  class OoohBoi_Overlay_Underlay {
21
 
22
+ static $should_script_enqueue = false;
23
+
24
  /**
25
  * Initialize
26
  *
36
  add_action( 'elementor/element/wp-post/document_settings/before_section_end', [ __CLASS__, 'poopart_remove_horizontal_scroller' ] );
37
  add_action( 'elementor/element/wp-page/document_settings/before_section_end', [ __CLASS__, 'poopart_remove_horizontal_scroller' ] );
38
 
39
+ /* should enqueue? */
40
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
41
+ /* add script */
42
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
43
+
44
  }
45
 
46
+ /* enqueue script JS */
47
+ public static function enqueue_scripts() {
48
 
49
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/poopart-min.js';
50
+
51
+ if( file_exists( $extension_js ) ) {
52
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
53
  }
54
 
55
+ }
56
+ /* should enqueue? */
57
+ public static function should_script_enqueue( $element ) {
58
+
59
+ if( self::$should_script_enqueue ) return;
60
+
61
+ if( 'yes' == $element->get_settings_for_display( '_ob_butterbutton_use_it' ) ) {
62
+
63
+ self::$should_script_enqueue = true;
64
+ self::enqueue_scripts();
65
+
66
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
67
  }
68
+ }
69
+
70
+ public static function add_attributes( Element_Base $element ) {
71
+
72
+ if ( in_array( $element->get_name(), [ 'section', 'column', 'container' ] ) ) return;
73
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
74
 
75
  $settings = $element->get_settings_for_display();
76
 
77
+ if ( isset( $settings[ '_ob_poopart_use' ] ) && 'yes' === $settings[ '_ob_poopart_use' ] ) {
78
+
79
+ $element->add_render_attribute( '_wrapper', [
80
+ 'class' => 'ob-has-background-overlay'
81
+ ] );
82
 
 
 
83
  }
84
 
85
  }
86
 
87
+
88
  public static function add_section( Element_Base $element ) {
89
 
90
  $element->start_controls_section(
95
  ]
96
  );
97
 
98
+ // --------------------------------------------------------------------------------------------- CONTROL: Use Butter Button
99
+ $element->add_control(
100
+ '_ob_poopart_use',
101
+ [
102
+ 'label' => __( 'Enable PoopArt?', 'ooohboi-steroids' ),
103
+ 'separator' => 'after',
104
+ 'type' => Controls_Manager::SWITCHER,
105
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
106
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
107
+ 'return_value' => 'yes',
108
+ 'default' => 'yes',
109
+ 'frontend_available' => true,
110
+ ]
111
+ );
112
+
113
  // --------------------------------------------------------------------------------------------- START 2 TABS Overlay & Underlay
114
  $element->start_controls_tabs( '_ob_steroids_tabs' );
115
 
126
  [
127
  'name' => '_ob_steroids_overlay_background',
128
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
129
+ 'condition' => [
130
+ '_ob_poopart_use' => 'yes',
131
+ ],
132
  ]
133
  );
134
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
151
  ],
152
  'condition' => [
153
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
154
+ '_ob_poopart_use' => 'yes',
155
  ],
156
  ]
157
  );
163
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before',
164
  'condition' => [
165
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
166
+ '_ob_poopart_use' => 'yes',
167
  ],
168
  ]
169
  );
190
  ],
191
  'condition' => [
192
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
193
+ '_ob_poopart_use' => 'yes',
194
  ],
195
  ]
196
  );
204
  'frontend_available' => true,
205
  'condition' => [
206
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
207
+ '_ob_poopart_use' => 'yes',
208
  ],
209
  ]
210
  );
250
  'condition' => [
251
  '_ob_steroids_overlay_w_alt' => '',
252
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
253
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
254
+ '_ob_poopart_use' => 'yes',
255
  ],
256
  ]
257
  );
267
  ],
268
  'condition' => [
269
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
270
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
271
+ '_ob_poopart_use' => 'yes',
272
  ],
273
  ]
274
  );
311
  'condition' => [
312
  '_ob_steroids_overlay_h_alt' => '',
313
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
314
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
315
+ '_ob_poopart_use' => 'yes',
316
  ],
317
  ]
318
  );
328
  ],
329
  'condition' => [
330
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
331
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
332
+ '_ob_poopart_use' => 'yes',
333
  ],
334
  ]
335
  );
372
  'condition' => [
373
  '_ob_steroids_overlay_y_alt' => '',
374
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
375
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
376
+ '_ob_poopart_use' => 'yes',
377
  ],
378
  ]
379
  );
389
  ],
390
  'condition' => [
391
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
392
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
393
+ '_ob_poopart_use' => 'yes',
394
  ],
395
  ]
396
  );
433
  'condition' => [
434
  '_ob_steroids_overlay_x_alt' => '',
435
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
436
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
437
+ '_ob_poopart_use' => 'yes',
438
  ],
439
  ]
440
  );
450
  ],
451
  'condition' => [
452
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
453
+ '_ob_steroids_overlay_popover_whyxrot' => 'yes',
454
+ '_ob_poopart_use' => 'yes',
455
  ],
456
  ]
457
  );
477
  ],
478
  'condition' => [
479
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
480
+ '_ob_poopart_use' => 'yes',
481
  ],
482
  ]
483
  );
494
  'frontend_available' => true,
495
  'condition' => [
496
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
497
+ '_ob_poopart_use' => 'yes',
498
  ],
499
  ]
500
  );
525
  ],
526
  'condition' => [
527
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
528
+ '_ob_steroids_overlay_popover_border' => 'yes',
529
+ '_ob_poopart_use' => 'yes',
530
  ],
531
  ]
532
  );
543
  'frontend_available' => true,
544
  'condition' => [
545
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
546
+ '_ob_poopart_use' => 'yes',
547
  ],
548
  ]
549
  );
565
  ],
566
  'condition' => [
567
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
568
+ '_ob_steroids_overlay_popover_masq' => 'yes',
569
+ '_ob_poopart_use' => 'yes',
570
  ],
571
  ]
572
  );
595
  'condition' => [
596
  '_ob_steroids_overlay_mask_img[url]!' => '',
597
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
598
+ '_ob_steroids_overlay_popover_masq' => 'yes',
599
+ '_ob_poopart_use' => 'yes',
600
  ],
601
  ]
602
  );
620
  'condition' => [
621
  '_ob_steroids_overlay_mask_img[url]!' => '',
622
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
623
+ '_ob_steroids_overlay_popover_masq' => 'yes',
624
+ '_ob_poopart_use' => 'yes',
625
  ],
626
  ]
627
  );
653
  '_ob_steroids_overlay_mask_size' => [ 'initial' ],
654
  '_ob_steroids_overlay_mask_img[url]!' => '',
655
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
656
+ '_ob_steroids_overlay_popover_masq' => 'yes',
657
+ '_ob_poopart_use' => 'yes',
658
  ],
659
  'device_args' => [
660
  Controls_Stack::RESPONSIVE_TABLET => [
662
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
663
  ],
664
  'condition' => [
665
+ '_ob_steroids_overlay_mask_size_tablet' => [ 'initial' ],
666
+ '_ob_steroids_overlay_popover_masq' => 'yes',
667
+ '_ob_poopart_use' => 'yes',
668
  ],
669
  ],
670
  Controls_Stack::RESPONSIVE_MOBILE => [
673
  ],
674
  'condition' => [
675
  '_ob_steroids_overlay_mask_size_mobile' => [ 'initial' ],
676
+ '_ob_steroids_overlay_popover_masq' => 'yes',
677
+ '_ob_poopart_use' => 'yes',
678
  ],
679
  ],
680
  ],
699
  'condition' => [
700
  '_ob_steroids_overlay_mask_img[url]!' => '',
701
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
702
+ '_ob_steroids_overlay_popover_masq' => 'yes',
703
+ '_ob_poopart_use' => 'yes',
704
  ],
705
  ]
706
  );
725
  ],
726
  'condition' => [
727
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
728
+ '_ob_poopart_use' => 'yes',
729
  ],
730
  ]
731
  );
744
  'label_block' => false,
745
  'condition' => [
746
  '_ob_steroids_overlay_background_background' => [ 'classic', 'gradient' ],
747
+ '_ob_poopart_use' => 'yes',
748
  ],
749
  ]
750
  );
765
  Group_Control_Background::get_type(),
766
  [
767
  'name' => '_ob_steroids_underlay_background',
768
+ 'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
769
+ 'condition' => [
770
+ '_ob_poopart_use' => 'yes',
771
+ ],
772
  ]
773
  );
774
  // --------------------------------------------------------------------------------------------- CONTROL BACKGROUND OPACITY
791
  ],
792
  'condition' => [
793
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
794
+ '_ob_poopart_use' => 'yes',
795
  ],
796
  ]
797
  );
803
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
804
  'condition' => [
805
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
806
+ '_ob_poopart_use' => 'yes',
807
  ],
808
  ]
809
  );
830
  ],
831
  'condition' => [
832
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
833
+ '_ob_poopart_use' => 'yes',
834
  ],
835
  ]
836
  );
844
  'frontend_available' => true,
845
  'condition' => [
846
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
847
+ '_ob_poopart_use' => 'yes',
848
  ],
849
  ]
850
  );
889
  ],
890
  'condition' => [
891
  '_ob_steroids_underlay_w_alt' => '',
892
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
893
+ '_ob_poopart_use' => 'yes',
894
  ],
895
  ]
896
  );
904
  'selectors' => [
905
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'width: calc({{VALUE}});',
906
  ],
907
+ 'condition' => [
908
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
909
+ '_ob_poopart_use' => 'yes',
910
+ ],
911
  ]
912
  );
913
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER HEIGHT
948
  ],
949
  'condition' => [
950
  '_ob_steroids_underlay_h_alt' => '',
951
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
952
+ '_ob_poopart_use' => 'yes',
953
  ],
954
  ]
955
  );
963
  'selectors' => [
964
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'height: calc({{VALUE}});',
965
  ],
966
+ 'condition' => [
967
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
968
+ '_ob_poopart_use' => 'yes',
969
+ ],
970
  ]
971
  );
972
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET TOP
1007
  ],
1008
  'condition' => [
1009
  '_ob_steroids_underlay_y_alt' => '',
1010
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
1011
+ '_ob_poopart_use' => 'yes',
1012
  ],
1013
  ]
1014
  );
1022
  'selectors' => [
1023
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'top: calc({{VALUE}});',
1024
  ],
1025
+ 'condition' => [
1026
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
1027
+ '_ob_poopart_use' => 'yes',
1028
+ ],
1029
  ]
1030
  );
1031
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER OFFSET LEFT
1066
  ],
1067
  'condition' => [
1068
  '_ob_steroids_underlay_x_alt' => '',
1069
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
1070
+ '_ob_poopart_use' => 'yes',
1071
  ],
1072
  ]
1073
  );
1081
  'selectors' => [
1082
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'left: calc({{VALUE}});',
1083
  ],
1084
+ 'condition' => [
1085
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
1086
+ '_ob_poopart_use' => 'yes',
1087
+ ],
1088
  ]
1089
  );
1090
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER ROTATION
1107
  'selectors' => [
1108
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => 'transform: rotate({{SIZE}}deg);',
1109
  ],
1110
+ 'condition' => [
1111
+ '_ob_steroids_underlay_popover_whyxrot' => 'yes',
1112
+ '_ob_poopart_use' => 'yes',
1113
+ ],
1114
  ]
1115
  );
1116
 
1126
  'frontend_available' => true,
1127
  'condition' => [
1128
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1129
+ '_ob_poopart_use' => 'yes',
1130
  ],
1131
  ]
1132
  );
1142
  'selector' => '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after',
1143
  'condition' => [
1144
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1145
+ '_ob_poopart_use' => 'yes',
1146
  ],
1147
  ]
1148
  );
1158
  ],
1159
  'condition' => [
1160
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1161
+ '_ob_steroids_underlay_popover_border' => 'yes',
1162
+ '_ob_poopart_use' => 'yes',
1163
  ],
1164
  ]
1165
  );
1197
  ],
1198
  'condition' => [
1199
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1200
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1201
+ '_ob_poopart_use' => 'yes',
1202
  ],
1203
  ]
1204
  );
1226
  ],
1227
  'condition' => [
1228
  '_ob_steroids_underlay_mask_img[url]!' => '',
1229
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1230
+ '_ob_poopart_use' => 'yes',
1231
  ],
1232
  ]
1233
  );
1250
  ],
1251
  'condition' => [
1252
  '_ob_steroids_underlay_mask_img[url]!' => '',
1253
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1254
+ '_ob_poopart_use' => 'yes',
1255
  ],
1256
  ]
1257
  );
1281
  ],
1282
  'condition' => [
1283
  '_ob_steroids_underlay_mask_size' => [ 'initial' ],
1284
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1285
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1286
+ '_ob_poopart_use' => 'yes',
1287
  ],
1288
  'device_args' => [
1289
  Controls_Stack::RESPONSIVE_TABLET => [
1291
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1292
  ],
1293
  'condition' => [
1294
+ '_ob_steroids_underlay_mask_size_tablet' => [ 'initial' ],
1295
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1296
+ '_ob_poopart_use' => 'yes',
1297
  ],
1298
  ],
1299
  Controls_Stack::RESPONSIVE_MOBILE => [
1302
  ],
1303
  'condition' => [
1304
  '_ob_steroids_underlay_mask_size_mobile' => [ 'initial' ],
1305
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1306
+ '_ob_poopart_use' => 'yes',
1307
  ],
1308
  ],
1309
  ],
1326
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
1327
  ],
1328
  'condition' => [
1329
+ '_ob_steroids_underlay_mask_img[url]!' => '',
1330
+ '_ob_steroids_underlay_popover_masq' => 'yes',
1331
+ '_ob_poopart_use' => 'yes',
1332
  ],
1333
  ]
1334
  );
1352
  '{{WRAPPER}}.ob-has-background-overlay > .elementor-widget-container:after' => '{{VALUE}}',
1353
  ],
1354
  'condition' => [
1355
+ '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1356
+ '_ob_poopart_use' => 'yes',
1357
  ],
1358
  ]
1359
  );
1372
  'label_block' => false,
1373
  'condition' => [
1374
  '_ob_steroids_underlay_background_background' => [ 'classic', 'gradient' ],
1375
+ '_ob_poopart_use' => 'yes',
1376
  ],
1377
  ]
1378
  );
1398
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
1399
  'label_off' => __( 'No', 'ooohboi-steroids' ),
1400
  'return_value' => 'hidden',
1401
+ 'default' => 'auto',
1402
  'selectors' => [
1403
  'html, body' => 'overflow-x: {{VALUE}};',
1404
  ],
1465
  'size' => 4,
1466
  ],
1467
  'selectors' => [
1468
+ 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(to right, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent), repeating-linear-gradient(to bottom, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent);background-size: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}};',
1469
  ],
1470
  'condition' => [
1471
  '_ob_steroids_use_baseline_grid' => 'yes',
1489
  'size' => 8,
1490
  ],
1491
  'selectors' => [
1492
+ 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(90deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent);background-size: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}};',
1493
  ],
1494
  'condition' => [
1495
  '_ob_steroids_use_baseline_grid' => 'yes',
1513
  'size' => 8,
1514
  ],
1515
  'selectors' => [
1516
+ 'html.elementor-html::before' => 'background-image: repeating-linear-gradient(0deg, {{_ob_steroids_baseline_grid_color.VALUE}}, {{_ob_steroids_baseline_grid_color.VALUE}} 1px, transparent 1px, transparent);background-size: {{SIZE}}{{UNIT}} {{SIZE}}{{UNIT}};',
1517
  ],
1518
  'condition' => [
1519
  '_ob_steroids_use_baseline_grid' => 'yes',
controls/ooohboi-perspektive.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_Perspektive {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -28,6 +30,35 @@ class OoohBoi_Perspektive {
28
  add_action( 'elementor/element/common/_section_style/before_section_end', [ __CLASS__, 'ob_perspektive_add_section' ] );
29
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'ob_perspektive_add_attributes' ] );
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
  public static function ob_perspektive_add_attributes( Element_Base $element ) {
@@ -105,7 +136,7 @@ class OoohBoi_Perspektive {
105
  'size' => 800,
106
  ],
107
  'selectors' => [
108
- $selector => 'perspective: {{SIZE}}{{UNIT}}; transform-style: preserve-3d;',
109
  ],
110
  'condition' => [
111
  '_ob_perspektive_use' => 'yes',
@@ -163,7 +194,7 @@ class OoohBoi_Perspektive {
163
  'size' => 0,
164
  ],
165
  'selectors' => [
166
- $selector . ' > [class*="elementor-"]' => 'transform: translateZ({{SIZE}}{{UNIT}});',
167
  ],
168
  'condition' => [
169
  '_ob_perspektive_use' => 'yes',
@@ -187,7 +218,7 @@ class OoohBoi_Perspektive {
187
  'size' => 0,
188
  ],
189
  'selectors' => [
190
- $selector . ' > [class*="elementor-"]' => 'transform: rotateX({{SIZE}}deg) rotateY({{_ob_perspektive_yrot.SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
191
  ],
192
  'condition' => [
193
  '_ob_perspektive_use' => 'yes',
@@ -211,7 +242,7 @@ class OoohBoi_Perspektive {
211
  'size' => 0,
212
  ],
213
  'selectors' => [
214
- $selector . ' > [class*="elementor-"]' => 'transform: rotateX({{_ob_perspektive_xrot.SIZE}}deg) rotateY({{SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
215
  ],
216
  'condition' => [
217
  '_ob_perspektive_use' => 'yes',
16
  */
17
  class OoohBoi_Perspektive {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
30
  add_action( 'elementor/element/common/_section_style/before_section_end', [ __CLASS__, 'ob_perspektive_add_section' ] );
31
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'ob_perspektive_add_attributes' ] );
32
 
33
+ /* should enqueue? */
34
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
35
+ /* add script */
36
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
37
+
38
+ }
39
+
40
+ /* enqueue script JS */
41
+ public static function enqueue_scripts() {
42
+
43
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/perspektive-min.js';
44
+
45
+ if( file_exists( $extension_js ) ) {
46
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
47
+ }
48
+
49
+ }
50
+ /* should enqueue? */
51
+ public static function should_script_enqueue( $element ) {
52
+
53
+ if( self::$should_script_enqueue ) return;
54
+
55
+ if( 'yes' == $element->get_settings_for_display( '_ob_perspektive_use' ) ) {
56
+
57
+ self::$should_script_enqueue = true;
58
+ self::enqueue_scripts();
59
+
60
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
61
+ }
62
  }
63
 
64
  public static function ob_perspektive_add_attributes( Element_Base $element ) {
136
  'size' => 800,
137
  ],
138
  'selectors' => [
139
+ $selector => 'transform: perspective({{SIZE}}{{UNIT}}); transform-style: preserve-3d;',
140
  ],
141
  'condition' => [
142
  '_ob_perspektive_use' => 'yes',
194
  'size' => 0,
195
  ],
196
  'selectors' => [
197
+ $selector . ' > *' => 'transform: translateZ({{SIZE}}{{UNIT}});',
198
  ],
199
  'condition' => [
200
  '_ob_perspektive_use' => 'yes',
218
  'size' => 0,
219
  ],
220
  'selectors' => [
221
+ $selector . ' > *' => 'transform: rotateX({{SIZE}}deg) rotateY({{_ob_perspektive_yrot.SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
222
  ],
223
  'condition' => [
224
  '_ob_perspektive_use' => 'yes',
242
  'size' => 0,
243
  ],
244
  'selectors' => [
245
+ $selector . ' > *' => 'transform: rotateX({{_ob_perspektive_xrot.SIZE}}deg) rotateY({{SIZE}}deg) translateZ({{_ob_perspektive_z.SIZE}}{{_ob_perspektive_z.UNIT}});',
246
  ],
247
  'condition' => [
248
  '_ob_perspektive_use' => 'yes',
controls/ooohboi-photomorph.php CHANGED
@@ -14,6 +14,8 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  */
15
  class OoohBoi_PhotoMorph {
16
 
 
 
17
  /**
18
  * Initialize
19
  *
@@ -26,6 +28,35 @@ class OoohBoi_PhotoMorph {
26
  add_action( 'elementor/element/image/section_style_image/before_section_end', [ __CLASS__, 'ooohboi_photomorph_get_controls' ], 10, 2 );
27
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  }
30
 
31
  public static function add_attributes( $element ) {
14
  */
15
  class OoohBoi_PhotoMorph {
16
 
17
+ static $should_script_enqueue = false;
18
+
19
  /**
20
  * Initialize
21
  *
28
  add_action( 'elementor/element/image/section_style_image/before_section_end', [ __CLASS__, 'ooohboi_photomorph_get_controls' ], 10, 2 );
29
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
30
 
31
+ /* should enqueue? */
32
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
33
+ /* add script */
34
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
35
+
36
+ }
37
+
38
+ /* enqueue script JS */
39
+ public static function enqueue_scripts() {
40
+
41
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/photomorph-min.js';
42
+
43
+ if( file_exists( $extension_js ) ) {
44
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
45
+ }
46
+
47
+ }
48
+ /* should enqueue? */
49
+ public static function should_script_enqueue( $element ) {
50
+
51
+ if( self::$should_script_enqueue ) return;
52
+
53
+ if( 'yes' == $element->get_settings_for_display( '_ob_photomorph_use' ) ) {
54
+
55
+ self::$should_script_enqueue = true;
56
+ self::enqueue_scripts();
57
+
58
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
59
+ }
60
  }
61
 
62
  public static function add_attributes( $element ) {
controls/ooohboi-pseudo.php CHANGED
@@ -19,6 +19,8 @@ if ( ! defined( 'ABSPATH' ) ) {
19
  */
20
  class OoohBoi_Pseudo {
21
 
 
 
22
  /**
23
  * Initialize
24
  *
@@ -29,27 +31,69 @@ class OoohBoi_Pseudo {
29
  public static function init() {
30
 
31
  add_action( 'elementor/element/column/section_advanced/after_section_end', [ __CLASS__, 'ooohboi_handle_pseudo' ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
- add_action( 'elementor/frontend/column/before_render', function( Element_Base $element ) {
 
34
 
35
- if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
36
- $settings = $element->get_settings_for_display();
 
 
 
 
37
 
38
- if ( isset( $settings[ '_ob_column_has_pseudo' ] ) && 'yes' === $settings[ '_ob_column_has_pseudo' ] ) {
 
39
 
40
- $element->add_render_attribute( '_wrapper', [
41
- 'class' => 'ob-is-pseudo'
42
- ] );
43
-
44
- }
45
 
46
- } );
 
 
47
 
 
48
 
49
  }
50
 
 
51
  public static function ooohboi_handle_pseudo( Element_Base $element ) {
52
- if( strpos( $_SERVER[ 'SERVER_NAME' ], 'krieder' ) !== false ) return;
 
 
 
 
 
 
 
53
 
54
  // create panel
55
  $element->start_controls_section(
@@ -90,7 +134,7 @@ class OoohBoi_Pseudo {
90
  Group_Control_Background::get_type(),
91
  [
92
  'name' => '_ob_pseudo_before_background',
93
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before',
94
  'condition' => [
95
  '_ob_column_has_pseudo' => 'yes',
96
  ],
@@ -112,7 +156,7 @@ class OoohBoi_Pseudo {
112
  ],
113
  ],
114
  'selectors' => [
115
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'opacity: {{SIZE}};',
116
  ],
117
  'condition' => [
118
  '_ob_column_has_pseudo' => 'yes',
@@ -125,7 +169,7 @@ class OoohBoi_Pseudo {
125
  Group_Control_Css_Filter::get_type(),
126
  [
127
  'name' => '_ob_pseudo_before_bg_filters',
128
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before',
129
  'condition' => [
130
  '_ob_column_has_pseudo' => 'yes',
131
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
@@ -151,7 +195,7 @@ class OoohBoi_Pseudo {
151
  'luminosity' => 'Luminosity',
152
  ],
153
  'selectors' => [
154
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'mix-blend-mode: {{VALUE}}',
155
  ],
156
  'condition' => [
157
  '_ob_column_has_pseudo' => 'yes',
@@ -159,6 +203,7 @@ class OoohBoi_Pseudo {
159
  ],
160
  ]
161
  );
 
162
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER W H Y X Rot
163
  $element->add_control(
164
  '_ob_pseudo_before_popover_whyxrot',
@@ -202,22 +247,25 @@ class OoohBoi_Pseudo {
202
  'condition' => [
203
  '_ob_column_has_pseudo' => 'yes',
204
  '_ob_pseudo_before_w_alt_tablet' => '',
 
205
  ],
206
  ],
207
  Controls_Stack::RESPONSIVE_MOBILE => [
208
  'condition' => [
209
  '_ob_column_has_pseudo' => 'yes',
210
  '_ob_pseudo_before_w_alt_mobile' => '',
 
211
  ],
212
  ],
213
  ],
214
  'selectors' => [
215
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'width: {{SIZE}}{{UNIT}};',
216
  ],
217
  'condition' => [
218
  '_ob_column_has_pseudo' => 'yes',
219
  '_ob_pseudo_before_w_alt' => '',
220
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
221
  ],
222
  ]
223
  );
@@ -229,11 +277,12 @@ class OoohBoi_Pseudo {
229
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
230
  'type' => Controls_Manager::TEXT,
231
  'selectors' => [
232
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'width: calc({{VALUE}});',
233
  ],
234
  'condition' => [
235
  '_ob_column_has_pseudo' => 'yes',
236
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
237
  ],
238
  ]
239
  );
@@ -263,22 +312,25 @@ class OoohBoi_Pseudo {
263
  'condition' => [
264
  '_ob_column_has_pseudo' => 'yes',
265
  '_ob_pseudo_before_h_alt_tablet' => '',
 
266
  ],
267
  ],
268
  Controls_Stack::RESPONSIVE_MOBILE => [
269
  'condition' => [
270
  '_ob_column_has_pseudo' => 'yes',
271
  '_ob_pseudo_before_h_alt_mobile' => '',
 
272
  ],
273
  ],
274
  ],
275
  'selectors' => [
276
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'height: {{SIZE}}{{UNIT}};',
277
  ],
278
  'condition' => [
279
  '_ob_column_has_pseudo' => 'yes',
280
  '_ob_pseudo_before_h_alt' => '',
281
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
282
  ],
283
  ]
284
  );
@@ -290,11 +342,12 @@ class OoohBoi_Pseudo {
290
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
291
  'type' => Controls_Manager::TEXT,
292
  'selectors' => [
293
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'height: calc({{VALUE}});',
294
  ],
295
  'condition' => [
296
  '_ob_column_has_pseudo' => 'yes',
297
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
298
  ],
299
  ]
300
  );
@@ -324,22 +377,25 @@ class OoohBoi_Pseudo {
324
  'condition' => [
325
  '_ob_column_has_pseudo' => 'yes',
326
  '_ob_pseudo_before_y_alt_tablet' => '',
 
327
  ],
328
  ],
329
  Controls_Stack::RESPONSIVE_MOBILE => [
330
  'condition' => [
331
  '_ob_column_has_pseudo' => 'yes',
332
  '_ob_pseudo_before_y_alt_mobile' => '',
 
333
  ],
334
  ],
335
  ],
336
  'selectors' => [
337
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'top: {{SIZE}}{{UNIT}};',
338
  ],
339
  'condition' => [
340
  '_ob_column_has_pseudo' => 'yes',
341
  '_ob_pseudo_before_y_alt' => '',
342
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
343
  ],
344
  ]
345
  );
@@ -351,11 +407,12 @@ class OoohBoi_Pseudo {
351
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
352
  'type' => Controls_Manager::TEXT,
353
  'selectors' => [
354
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'top: calc({{VALUE}});',
355
  ],
356
  'condition' => [
357
  '_ob_column_has_pseudo' => 'yes',
358
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
359
  ],
360
  ]
361
  );
@@ -385,22 +442,25 @@ class OoohBoi_Pseudo {
385
  'condition' => [
386
  '_ob_column_has_pseudo' => 'yes',
387
  '_ob_pseudo_before_x_alt_tablet' => '',
 
388
  ],
389
  ],
390
  Controls_Stack::RESPONSIVE_MOBILE => [
391
  'condition' => [
392
  '_ob_column_has_pseudo' => 'yes',
393
  '_ob_pseudo_before_x_alt_mobile' => '',
 
394
  ],
395
  ],
396
  ],
397
  'selectors' => [
398
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'left: {{SIZE}}{{UNIT}};',
399
  ],
400
  'condition' => [
401
  '_ob_column_has_pseudo' => 'yes',
402
  '_ob_pseudo_before_x_alt' => '',
403
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
404
  ],
405
  ]
406
  );
@@ -412,11 +472,12 @@ class OoohBoi_Pseudo {
412
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
413
  'type' => Controls_Manager::TEXT,
414
  'selectors' => [
415
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'left: calc({{VALUE}});',
416
  ],
417
  'condition' => [
418
  '_ob_column_has_pseudo' => 'yes',
419
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
420
  ],
421
  ]
422
  );
@@ -438,11 +499,12 @@ class OoohBoi_Pseudo {
438
  'size' => 0,
439
  ],
440
  'selectors' => [
441
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'transform: rotate({{SIZE}}deg);',
442
  ],
443
  'condition' => [
444
  '_ob_column_has_pseudo' => 'yes',
445
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
446
  ],
447
  ]
448
  );
@@ -472,7 +534,7 @@ class OoohBoi_Pseudo {
472
  [
473
  'name' => '_ob_pseudo_before_borders',
474
  'label' => __( 'Border', 'ooohboi-steroids' ),
475
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before',
476
  'condition' => [
477
  '_ob_column_has_pseudo' => 'yes',
478
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
@@ -487,11 +549,12 @@ class OoohBoi_Pseudo {
487
  'type' => Controls_Manager::DIMENSIONS,
488
  'size_units' => [ 'px', '%' ],
489
  'selectors' => [
490
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
491
  ],
492
  'condition' => [
493
  '_ob_column_has_pseudo' => 'yes',
494
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
495
  ],
496
  ]
497
  );
@@ -526,11 +589,12 @@ class OoohBoi_Pseudo {
526
  'url' => '',
527
  ],
528
  'selectors' => [
529
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
530
  ],
531
  'condition' => [
532
  '_ob_column_has_pseudo' => 'yes',
533
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
534
  ],
535
  ]
536
  );
@@ -554,12 +618,13 @@ class OoohBoi_Pseudo {
554
  'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
555
  ],
556
  'selectors' => [
557
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
558
  ],
559
  'condition' => [
560
  '_ob_column_has_pseudo' => 'yes',
561
  '_ob_pseudo_before_mask_img[url]!' => '',
562
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
563
  ],
564
  ]
565
  );
@@ -578,12 +643,13 @@ class OoohBoi_Pseudo {
578
  'initial' => __( 'Custom', 'ooohboi-steroids' ),
579
  ],
580
  'selectors' => [
581
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
582
  ],
583
  'condition' => [
584
  '_ob_column_has_pseudo' => 'yes',
585
  '_ob_pseudo_before_mask_img[url]!' => '',
586
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
587
  ],
588
  ]
589
  );
@@ -609,31 +675,34 @@ class OoohBoi_Pseudo {
609
  'unit' => '%',
610
  ],
611
  'selectors' => [
612
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
613
  ],
614
  'condition' => [
615
  '_ob_column_has_pseudo' => 'yes',
616
  '_ob_pseudo_before_mask_size' => [ 'initial' ],
617
  '_ob_pseudo_before_mask_img[url]!' => '',
618
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
619
  ],
620
  'device_args' => [
621
  Controls_Stack::RESPONSIVE_TABLET => [
622
  'selectors' => [
623
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
624
  ],
625
  'condition' => [
626
  '_ob_column_has_pseudo' => 'yes',
627
  '_ob_pseudo_before_mask_size_tablet' => [ 'initial' ],
 
628
  ],
629
  ],
630
  Controls_Stack::RESPONSIVE_MOBILE => [
631
  'selectors' => [
632
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
633
  ],
634
  'condition' => [
635
  '_ob_column_has_pseudo' => 'yes',
636
  '_ob_pseudo_before_mask_size_mobile' => [ 'initial' ],
 
637
  ],
638
  ],
639
  ],
@@ -653,12 +722,13 @@ class OoohBoi_Pseudo {
653
  'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
654
  ],
655
  'selectors' => [
656
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
657
  ],
658
  'condition' => [
659
  '_ob_column_has_pseudo' => 'yes',
660
  '_ob_pseudo_before_mask_img[url]!' => '',
661
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
 
662
  ],
663
  ]
664
  );
@@ -679,7 +749,7 @@ class OoohBoi_Pseudo {
679
  'type' => Controls_Manager::TEXTAREA,
680
  'rows' => 3,
681
  'selectors' => [
682
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => '{{VALUE}}',
683
  ],
684
  'condition' => [
685
  '_ob_column_has_pseudo' => 'yes',
@@ -697,7 +767,7 @@ class OoohBoi_Pseudo {
697
  'min' => -9999,
698
  'default' => 0,
699
  'selectors' => [
700
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:before' => 'z-index: {{VALUE}};',
701
  ],
702
  'label_block' => false,
703
  'condition' => [
@@ -723,7 +793,7 @@ class OoohBoi_Pseudo {
723
  Group_Control_Background::get_type(),
724
  [
725
  'name' => '_ob_pseudo_after_background',
726
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after',
727
  'condition' => [
728
  '_ob_column_has_pseudo' => 'yes',
729
  ],
@@ -745,7 +815,7 @@ class OoohBoi_Pseudo {
745
  ],
746
  ],
747
  'selectors' => [
748
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'opacity: {{SIZE}};',
749
  ],
750
  'condition' => [
751
  '_ob_column_has_pseudo' => 'yes',
@@ -758,7 +828,7 @@ class OoohBoi_Pseudo {
758
  Group_Control_Css_Filter::get_type(),
759
  [
760
  'name' => '_ob_pseudo_after_bg_filters',
761
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after',
762
  'condition' => [
763
  '_ob_column_has_pseudo' => 'yes',
764
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
@@ -784,7 +854,7 @@ class OoohBoi_Pseudo {
784
  'luminosity' => 'Luminosity',
785
  ],
786
  'selectors' => [
787
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'mix-blend-mode: {{VALUE}}',
788
  ],
789
  'condition' => [
790
  '_ob_column_has_pseudo' => 'yes',
@@ -845,11 +915,12 @@ class OoohBoi_Pseudo {
845
  ],
846
  ],
847
  'selectors' => [
848
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'width: {{SIZE}}{{UNIT}};',
849
  ],
850
  'condition' => [
851
  '_ob_column_has_pseudo' => 'yes',
852
  '_ob_pseudo_after_w_alt' => '',
 
853
  ],
854
  ]
855
  );
@@ -861,10 +932,11 @@ class OoohBoi_Pseudo {
861
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
862
  'type' => Controls_Manager::TEXT,
863
  'selectors' => [
864
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'width: calc({{VALUE}});',
865
  ],
866
  'condition' => [
867
  '_ob_column_has_pseudo' => 'yes',
 
868
  ],
869
  ]
870
  );
@@ -894,21 +966,24 @@ class OoohBoi_Pseudo {
894
  'condition' => [
895
  '_ob_column_has_pseudo' => 'yes',
896
  '_ob_pseudo_after_h_alt_tablet' => '',
 
897
  ],
898
  ],
899
  Controls_Stack::RESPONSIVE_MOBILE => [
900
  'condition' => [
901
  '_ob_column_has_pseudo' => 'yes',
902
  '_ob_pseudo_after_h_alt_mobile' => '',
 
903
  ],
904
  ],
905
  ],
906
  'selectors' => [
907
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'height: {{SIZE}}{{UNIT}};',
908
  ],
909
  'condition' => [
910
  '_ob_column_has_pseudo' => 'yes',
911
  '_ob_pseudo_after_h_alt' => '',
 
912
  ],
913
  ]
914
  );
@@ -920,10 +995,11 @@ class OoohBoi_Pseudo {
920
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
921
  'type' => Controls_Manager::TEXT,
922
  'selectors' => [
923
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'height: calc({{VALUE}});',
924
  ],
925
  'condition' => [
926
  '_ob_column_has_pseudo' => 'yes',
 
927
  ],
928
  ]
929
  );
@@ -953,21 +1029,24 @@ class OoohBoi_Pseudo {
953
  'condition' => [
954
  '_ob_column_has_pseudo' => 'yes',
955
  '_ob_pseudo_after_y_alt_tablet' => '',
 
956
  ],
957
  ],
958
  Controls_Stack::RESPONSIVE_MOBILE => [
959
  'condition' => [
960
  '_ob_column_has_pseudo' => 'yes',
961
  '_ob_pseudo_after_y_alt_mobile' => '',
 
962
  ],
963
  ],
964
  ],
965
  'selectors' => [
966
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'top: {{SIZE}}{{UNIT}};',
967
  ],
968
  'condition' => [
969
  '_ob_column_has_pseudo' => 'yes',
970
  '_ob_pseudo_after_y_alt' => '',
 
971
  ],
972
  ]
973
  );
@@ -979,10 +1058,11 @@ class OoohBoi_Pseudo {
979
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
980
  'type' => Controls_Manager::TEXT,
981
  'selectors' => [
982
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'top: calc({{VALUE}});',
983
  ],
984
  'condition' => [
985
  '_ob_column_has_pseudo' => 'yes',
 
986
  ],
987
  ]
988
  );
@@ -1012,21 +1092,24 @@ class OoohBoi_Pseudo {
1012
  'condition' => [
1013
  '_ob_column_has_pseudo' => 'yes',
1014
  '_ob_pseudo_after_x_alt_tablet' => '',
 
1015
  ],
1016
  ],
1017
  Controls_Stack::RESPONSIVE_MOBILE => [
1018
  'condition' => [
1019
  '_ob_column_has_pseudo' => 'yes',
1020
  '_ob_pseudo_after_x_alt_mobile' => '',
 
1021
  ],
1022
  ],
1023
  ],
1024
  'selectors' => [
1025
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'left: {{SIZE}}{{UNIT}};',
1026
  ],
1027
  'condition' => [
1028
  '_ob_column_has_pseudo' => 'yes',
1029
  '_ob_pseudo_after_x_alt' => '',
 
1030
  ],
1031
  ]
1032
  );
@@ -1038,10 +1121,11 @@ class OoohBoi_Pseudo {
1038
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
1039
  'type' => Controls_Manager::TEXT,
1040
  'selectors' => [
1041
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'left: calc({{VALUE}});',
1042
  ],
1043
  'condition' => [
1044
  '_ob_column_has_pseudo' => 'yes',
 
1045
  ],
1046
  ]
1047
  );
@@ -1063,9 +1147,12 @@ class OoohBoi_Pseudo {
1063
  'size' => 0,
1064
  ],
1065
  'selectors' => [
1066
- '_ob_column_has_pseudo' => 'yes',
1067
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'transform: rotate({{SIZE}}deg);',
1068
  ],
 
 
 
 
1069
  ]
1070
  );
1071
 
@@ -1094,7 +1181,7 @@ class OoohBoi_Pseudo {
1094
  [
1095
  'name' => '_ob_pseudo_after_borders',
1096
  'label' => __( 'Border', 'ooohboi-steroids' ),
1097
- 'selector' => '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after',
1098
  'condition' => [
1099
  '_ob_column_has_pseudo' => 'yes',
1100
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
@@ -1109,11 +1196,12 @@ class OoohBoi_Pseudo {
1109
  'type' => Controls_Manager::DIMENSIONS,
1110
  'size_units' => [ 'px', '%' ],
1111
  'selectors' => [
1112
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1113
  ],
1114
  'condition' => [
1115
  '_ob_column_has_pseudo' => 'yes',
1116
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
 
1117
  ],
1118
  ]
1119
  );
@@ -1148,11 +1236,12 @@ class OoohBoi_Pseudo {
1148
  'url' => '',
1149
  ],
1150
  'selectors' => [
1151
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
1152
  ],
1153
  'condition' => [
1154
  '_ob_column_has_pseudo' => 'yes',
1155
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
 
1156
  ],
1157
  ]
1158
  );
@@ -1176,11 +1265,12 @@ class OoohBoi_Pseudo {
1176
  'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
1177
  ],
1178
  'selectors' => [
1179
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
1180
  ],
1181
  'condition' => [
1182
  '_ob_column_has_pseudo' => 'yes',
1183
  '_ob_pseudo_after_mask_img[url]!' => '',
 
1184
  ],
1185
  ]
1186
  );
@@ -1199,11 +1289,12 @@ class OoohBoi_Pseudo {
1199
  'initial' => __( 'Custom', 'ooohboi-steroids' ),
1200
  ],
1201
  'selectors' => [
1202
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
1203
  ],
1204
  'condition' => [
1205
  '_ob_column_has_pseudo' => 'yes',
1206
  '_ob_pseudo_after_mask_img[url]!' => '',
 
1207
  ],
1208
  ]
1209
  );
@@ -1229,30 +1320,33 @@ class OoohBoi_Pseudo {
1229
  'unit' => '%',
1230
  ],
1231
  'selectors' => [
1232
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1233
  ],
1234
  'condition' => [
1235
  '_ob_column_has_pseudo' => 'yes',
1236
  '_ob_pseudo_after_mask_size' => [ 'initial' ],
1237
  '_ob_pseudo_after_mask_img[url]!' => '',
 
1238
  ],
1239
  'device_args' => [
1240
  Controls_Stack::RESPONSIVE_TABLET => [
1241
  'selectors' => [
1242
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1243
  ],
1244
  'condition' => [
1245
  '_ob_column_has_pseudo' => 'yes',
1246
  '_ob_pseudo_after_mask_size_tablet' => [ 'initial' ],
 
1247
  ],
1248
  ],
1249
  Controls_Stack::RESPONSIVE_MOBILE => [
1250
  'selectors' => [
1251
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1252
  ],
1253
  'condition' => [
1254
  '_ob_column_has_pseudo' => 'yes',
1255
  '_ob_pseudo_after_mask_size_mobile' => [ 'initial' ],
 
1256
  ],
1257
  ],
1258
  ],
@@ -1272,11 +1366,12 @@ class OoohBoi_Pseudo {
1272
  'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
1273
  ],
1274
  'selectors' => [
1275
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
1276
  ],
1277
  'condition' => [
1278
  '_ob_column_has_pseudo' => 'yes',
1279
  '_ob_pseudo_after_mask_img[url]!' => '',
 
1280
  ],
1281
  ]
1282
  );
@@ -1297,11 +1392,11 @@ class OoohBoi_Pseudo {
1297
  'type' => Controls_Manager::TEXTAREA,
1298
  'rows' => 3,
1299
  'selectors' => [
1300
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => '{{VALUE}}',
1301
  ],
1302
  'condition' => [
1303
  '_ob_column_has_pseudo' => 'yes',
1304
- '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
1305
  ],
1306
  ]
1307
  );
@@ -1315,7 +1410,7 @@ class OoohBoi_Pseudo {
1315
  'min' => -9999,
1316
  'default' => 0,
1317
  'selectors' => [
1318
- '{{WRAPPER}}.ob-is-pseudo .elementor-element-populated:after' => 'z-index: {{VALUE}};',
1319
  ],
1320
  'label_block' => false,
1321
  'condition' => [
19
  */
20
  class OoohBoi_Pseudo {
21
 
22
+ static $should_script_enqueue = false;
23
+
24
  /**
25
  * Initialize
26
  *
31
  public static function init() {
32
 
33
  add_action( 'elementor/element/column/section_advanced/after_section_end', [ __CLASS__, 'ooohboi_handle_pseudo' ] );
34
+ add_action( 'elementor/element/container/section_layout/after_section_end', [ __CLASS__, 'ooohboi_handle_pseudo' ] );
35
+
36
+ add_action( 'elementor/frontend/column/before_render', [ __CLASS__, 'ooohboi_before_render_hook' ] );
37
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'ooohboi_before_render_hook' ] );
38
+
39
+ /* should enqueue? */
40
+ add_action( 'elementor/frontend/column/before_render', [ __CLASS__, 'should_script_enqueue' ] );
41
+ add_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
42
+ /* add script */
43
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
44
+
45
+ }
46
+
47
+ /* enqueue script JS */
48
+ public static function enqueue_scripts() {
49
+
50
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/pseudo-min.js';
51
+
52
+ if( file_exists( $extension_js ) ) {
53
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
54
+ }
55
+
56
+ }
57
+ /* should enqueue? */
58
+ public static function should_script_enqueue( $element ) {
59
+
60
+ if( self::$should_script_enqueue ) return;
61
+
62
+ if( 'yes' == $element->get_settings_for_display( '_ob_column_has_pseudo' ) ) {
63
 
64
+ self::$should_script_enqueue = true;
65
+ self::enqueue_scripts();
66
 
67
+ remove_action( 'elementor/frontend/column/before_render', [ __CLASS__, 'should_script_enqueue' ] );
68
+ remove_action( 'elementor/frontend/container/before_render', [ __CLASS__, 'should_script_enqueue' ] );
69
+ }
70
+ }
71
+
72
+ public static function ooohboi_before_render_hook( Element_Base $element ) {
73
 
74
+ if ( \Elementor\Plugin::instance()->editor->is_edit_mode() ) return;
75
+ $settings = $element->get_settings_for_display();
76
 
77
+ if ( isset( $settings[ '_ob_column_has_pseudo' ] ) && 'yes' === $settings[ '_ob_column_has_pseudo' ] ) {
 
 
 
 
78
 
79
+ $element->add_render_attribute( '_wrapper', [
80
+ 'class' => 'ob-is-pseudo'
81
+ ] );
82
 
83
+ }
84
 
85
  }
86
 
87
+
88
  public static function ooohboi_handle_pseudo( Element_Base $element ) {
89
+
90
+ $selector_before = '{{WRAPPER}}.ob-is-pseudo > .elementor-element-populated:before';
91
+ $selector_after = '{{WRAPPER}}.ob-is-pseudo > .elementor-element-populated:after';
92
+
93
+ if( 'container' === $element->get_type() ) {
94
+ $selector_before = '{{WRAPPER}}.ob-is-pseudo > .ob-pseudo-before';
95
+ $selector_after = '{{WRAPPER}}.ob-is-pseudo > .ob-pseudo-after';
96
+ }
97
 
98
  // create panel
99
  $element->start_controls_section(
134
  Group_Control_Background::get_type(),
135
  [
136
  'name' => '_ob_pseudo_before_background',
137
+ 'selector' => $selector_before,
138
  'condition' => [
139
  '_ob_column_has_pseudo' => 'yes',
140
  ],
156
  ],
157
  ],
158
  'selectors' => [
159
+ $selector_before => 'opacity: {{SIZE}};',
160
  ],
161
  'condition' => [
162
  '_ob_column_has_pseudo' => 'yes',
169
  Group_Control_Css_Filter::get_type(),
170
  [
171
  'name' => '_ob_pseudo_before_bg_filters',
172
+ 'selector' => $selector_before,
173
  'condition' => [
174
  '_ob_column_has_pseudo' => 'yes',
175
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
195
  'luminosity' => 'Luminosity',
196
  ],
197
  'selectors' => [
198
+ $selector_before => 'mix-blend-mode: {{VALUE}}',
199
  ],
200
  'condition' => [
201
  '_ob_column_has_pseudo' => 'yes',
203
  ],
204
  ]
205
  );
206
+
207
  // --------------------------------------------------------------------------------------------- CONTROL POPOVER W H Y X Rot
208
  $element->add_control(
209
  '_ob_pseudo_before_popover_whyxrot',
247
  'condition' => [
248
  '_ob_column_has_pseudo' => 'yes',
249
  '_ob_pseudo_before_w_alt_tablet' => '',
250
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
251
  ],
252
  ],
253
  Controls_Stack::RESPONSIVE_MOBILE => [
254
  'condition' => [
255
  '_ob_column_has_pseudo' => 'yes',
256
  '_ob_pseudo_before_w_alt_mobile' => '',
257
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
258
  ],
259
  ],
260
  ],
261
  'selectors' => [
262
+ $selector_before => 'width: {{SIZE}}{{UNIT}};',
263
  ],
264
  'condition' => [
265
  '_ob_column_has_pseudo' => 'yes',
266
  '_ob_pseudo_before_w_alt' => '',
267
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
268
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
269
  ],
270
  ]
271
  );
277
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
278
  'type' => Controls_Manager::TEXT,
279
  'selectors' => [
280
+ $selector_before => 'width: calc({{VALUE}});',
281
  ],
282
  'condition' => [
283
  '_ob_column_has_pseudo' => 'yes',
284
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
285
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
286
  ],
287
  ]
288
  );
312
  'condition' => [
313
  '_ob_column_has_pseudo' => 'yes',
314
  '_ob_pseudo_before_h_alt_tablet' => '',
315
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
316
  ],
317
  ],
318
  Controls_Stack::RESPONSIVE_MOBILE => [
319
  'condition' => [
320
  '_ob_column_has_pseudo' => 'yes',
321
  '_ob_pseudo_before_h_alt_mobile' => '',
322
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
323
  ],
324
  ],
325
  ],
326
  'selectors' => [
327
+ $selector_before => 'height: {{SIZE}}{{UNIT}};',
328
  ],
329
  'condition' => [
330
  '_ob_column_has_pseudo' => 'yes',
331
  '_ob_pseudo_before_h_alt' => '',
332
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
333
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
334
  ],
335
  ]
336
  );
342
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
343
  'type' => Controls_Manager::TEXT,
344
  'selectors' => [
345
+ $selector_before => 'height: calc({{VALUE}});',
346
  ],
347
  'condition' => [
348
  '_ob_column_has_pseudo' => 'yes',
349
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
350
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
351
  ],
352
  ]
353
  );
377
  'condition' => [
378
  '_ob_column_has_pseudo' => 'yes',
379
  '_ob_pseudo_before_y_alt_tablet' => '',
380
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
381
  ],
382
  ],
383
  Controls_Stack::RESPONSIVE_MOBILE => [
384
  'condition' => [
385
  '_ob_column_has_pseudo' => 'yes',
386
  '_ob_pseudo_before_y_alt_mobile' => '',
387
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
388
  ],
389
  ],
390
  ],
391
  'selectors' => [
392
+ $selector_before => 'top: {{SIZE}}{{UNIT}};',
393
  ],
394
  'condition' => [
395
  '_ob_column_has_pseudo' => 'yes',
396
  '_ob_pseudo_before_y_alt' => '',
397
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
398
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
399
  ],
400
  ]
401
  );
407
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
408
  'type' => Controls_Manager::TEXT,
409
  'selectors' => [
410
+ $selector_before => 'top: calc({{VALUE}});',
411
  ],
412
  'condition' => [
413
  '_ob_column_has_pseudo' => 'yes',
414
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
415
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
416
  ],
417
  ]
418
  );
442
  'condition' => [
443
  '_ob_column_has_pseudo' => 'yes',
444
  '_ob_pseudo_before_x_alt_tablet' => '',
445
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
446
  ],
447
  ],
448
  Controls_Stack::RESPONSIVE_MOBILE => [
449
  'condition' => [
450
  '_ob_column_has_pseudo' => 'yes',
451
  '_ob_pseudo_before_x_alt_mobile' => '',
452
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
453
  ],
454
  ],
455
  ],
456
  'selectors' => [
457
+ $selector_before => 'left: {{SIZE}}{{UNIT}};',
458
  ],
459
  'condition' => [
460
  '_ob_column_has_pseudo' => 'yes',
461
  '_ob_pseudo_before_x_alt' => '',
462
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
463
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
464
  ],
465
  ]
466
  );
472
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
473
  'type' => Controls_Manager::TEXT,
474
  'selectors' => [
475
+ $selector_before => 'left: calc({{VALUE}});',
476
  ],
477
  'condition' => [
478
  '_ob_column_has_pseudo' => 'yes',
479
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
480
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
481
  ],
482
  ]
483
  );
499
  'size' => 0,
500
  ],
501
  'selectors' => [
502
+ $selector_before => 'transform: rotate({{SIZE}}deg);',
503
  ],
504
  'condition' => [
505
  '_ob_column_has_pseudo' => 'yes',
506
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
507
+ '_ob_pseudo_before_popover_whyxrot' => 'yes',
508
  ],
509
  ]
510
  );
534
  [
535
  'name' => '_ob_pseudo_before_borders',
536
  'label' => __( 'Border', 'ooohboi-steroids' ),
537
+ 'selector' => $selector_before,
538
  'condition' => [
539
  '_ob_column_has_pseudo' => 'yes',
540
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
549
  'type' => Controls_Manager::DIMENSIONS,
550
  'size_units' => [ 'px', '%' ],
551
  'selectors' => [
552
+ $selector_before => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
553
  ],
554
  'condition' => [
555
  '_ob_column_has_pseudo' => 'yes',
556
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
557
+ '_ob_pseudo_before_popover_border' => 'yes',
558
  ],
559
  ]
560
  );
589
  'url' => '',
590
  ],
591
  'selectors' => [
592
+ $selector_before => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
593
  ],
594
  'condition' => [
595
  '_ob_column_has_pseudo' => 'yes',
596
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
597
+ '_ob_pseudo_before_popover_masq' => 'yes',
598
  ],
599
  ]
600
  );
618
  'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
619
  ],
620
  'selectors' => [
621
+ $selector_before => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
622
  ],
623
  'condition' => [
624
  '_ob_column_has_pseudo' => 'yes',
625
  '_ob_pseudo_before_mask_img[url]!' => '',
626
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
627
+ '_ob_pseudo_before_popover_masq' => 'yes',
628
  ],
629
  ]
630
  );
643
  'initial' => __( 'Custom', 'ooohboi-steroids' ),
644
  ],
645
  'selectors' => [
646
+ $selector_before => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
647
  ],
648
  'condition' => [
649
  '_ob_column_has_pseudo' => 'yes',
650
  '_ob_pseudo_before_mask_img[url]!' => '',
651
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
652
+ '_ob_pseudo_before_popover_masq' => 'yes',
653
  ],
654
  ]
655
  );
675
  'unit' => '%',
676
  ],
677
  'selectors' => [
678
+ $selector_before => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
679
  ],
680
  'condition' => [
681
  '_ob_column_has_pseudo' => 'yes',
682
  '_ob_pseudo_before_mask_size' => [ 'initial' ],
683
  '_ob_pseudo_before_mask_img[url]!' => '',
684
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
685
+ '_ob_pseudo_before_popover_masq' => 'yes',
686
  ],
687
  'device_args' => [
688
  Controls_Stack::RESPONSIVE_TABLET => [
689
  'selectors' => [
690
+ $selector_before => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
691
  ],
692
  'condition' => [
693
  '_ob_column_has_pseudo' => 'yes',
694
  '_ob_pseudo_before_mask_size_tablet' => [ 'initial' ],
695
+ '_ob_pseudo_before_popover_masq' => 'yes',
696
  ],
697
  ],
698
  Controls_Stack::RESPONSIVE_MOBILE => [
699
  'selectors' => [
700
+ $selector_before => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
701
  ],
702
  'condition' => [
703
  '_ob_column_has_pseudo' => 'yes',
704
  '_ob_pseudo_before_mask_size_mobile' => [ 'initial' ],
705
+ '_ob_pseudo_before_popover_masq' => 'yes',
706
  ],
707
  ],
708
  ],
722
  'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
723
  ],
724
  'selectors' => [
725
+ $selector_before => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
726
  ],
727
  'condition' => [
728
  '_ob_column_has_pseudo' => 'yes',
729
  '_ob_pseudo_before_mask_img[url]!' => '',
730
  '_ob_pseudo_before_background_background' => [ 'classic', 'gradient' ],
731
+ '_ob_pseudo_before_popover_masq' => 'yes',
732
  ],
733
  ]
734
  );
749
  'type' => Controls_Manager::TEXTAREA,
750
  'rows' => 3,
751
  'selectors' => [
752
+ $selector_before => '{{VALUE}}',
753
  ],
754
  'condition' => [
755
  '_ob_column_has_pseudo' => 'yes',
767
  'min' => -9999,
768
  'default' => 0,
769
  'selectors' => [
770
+ $selector_before => 'z-index: {{VALUE}};',
771
  ],
772
  'label_block' => false,
773
  'condition' => [
793
  Group_Control_Background::get_type(),
794
  [
795
  'name' => '_ob_pseudo_after_background',
796
+ 'selector' => $selector_after,
797
  'condition' => [
798
  '_ob_column_has_pseudo' => 'yes',
799
  ],
815
  ],
816
  ],
817
  'selectors' => [
818
+ $selector_after => 'opacity: {{SIZE}};',
819
  ],
820
  'condition' => [
821
  '_ob_column_has_pseudo' => 'yes',
828
  Group_Control_Css_Filter::get_type(),
829
  [
830
  'name' => '_ob_pseudo_after_bg_filters',
831
+ 'selector' => $selector_after,
832
  'condition' => [
833
  '_ob_column_has_pseudo' => 'yes',
834
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
854
  'luminosity' => 'Luminosity',
855
  ],
856
  'selectors' => [
857
+ $selector_after => 'mix-blend-mode: {{VALUE}}',
858
  ],
859
  'condition' => [
860
  '_ob_column_has_pseudo' => 'yes',
915
  ],
916
  ],
917
  'selectors' => [
918
+ $selector_after => 'width: {{SIZE}}{{UNIT}};',
919
  ],
920
  'condition' => [
921
  '_ob_column_has_pseudo' => 'yes',
922
  '_ob_pseudo_after_w_alt' => '',
923
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
924
  ],
925
  ]
926
  );
932
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
933
  'type' => Controls_Manager::TEXT,
934
  'selectors' => [
935
+ $selector_after => 'width: calc({{VALUE}});',
936
  ],
937
  'condition' => [
938
  '_ob_column_has_pseudo' => 'yes',
939
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
940
  ],
941
  ]
942
  );
966
  'condition' => [
967
  '_ob_column_has_pseudo' => 'yes',
968
  '_ob_pseudo_after_h_alt_tablet' => '',
969
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
970
  ],
971
  ],
972
  Controls_Stack::RESPONSIVE_MOBILE => [
973
  'condition' => [
974
  '_ob_column_has_pseudo' => 'yes',
975
  '_ob_pseudo_after_h_alt_mobile' => '',
976
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
977
  ],
978
  ],
979
  ],
980
  'selectors' => [
981
+ $selector_after => 'height: {{SIZE}}{{UNIT}};',
982
  ],
983
  'condition' => [
984
  '_ob_column_has_pseudo' => 'yes',
985
  '_ob_pseudo_after_h_alt' => '',
986
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
987
  ],
988
  ]
989
  );
995
  'description' => __( 'Enter CSS calc value only! Like: 45% + 85px or 100% - 3em', 'ooohboi-steroids' ),
996
  'type' => Controls_Manager::TEXT,
997
  'selectors' => [
998
+ $selector_after => 'height: calc({{VALUE}});',
999
  ],
1000
  'condition' => [
1001
  '_ob_column_has_pseudo' => 'yes',
1002
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1003
  ],
1004
  ]
1005
  );
1029
  'condition' => [
1030
  '_ob_column_has_pseudo' => 'yes',
1031
  '_ob_pseudo_after_y_alt_tablet' => '',
1032
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1033
  ],
1034
  ],
1035
  Controls_Stack::RESPONSIVE_MOBILE => [
1036
  'condition' => [
1037
  '_ob_column_has_pseudo' => 'yes',
1038
  '_ob_pseudo_after_y_alt_mobile' => '',
1039
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1040
  ],
1041
  ],
1042
  ],
1043
  'selectors' => [
1044
+ $selector_after => 'top: {{SIZE}}{{UNIT}};',
1045
  ],
1046
  'condition' => [
1047
  '_ob_column_has_pseudo' => 'yes',
1048
  '_ob_pseudo_after_y_alt' => '',
1049
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1050
  ],
1051
  ]
1052
  );
1058
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
1059
  'type' => Controls_Manager::TEXT,
1060
  'selectors' => [
1061
+ $selector_after => 'top: calc({{VALUE}});',
1062
  ],
1063
  'condition' => [
1064
  '_ob_column_has_pseudo' => 'yes',
1065
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1066
  ],
1067
  ]
1068
  );
1092
  'condition' => [
1093
  '_ob_column_has_pseudo' => 'yes',
1094
  '_ob_pseudo_after_x_alt_tablet' => '',
1095
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1096
  ],
1097
  ],
1098
  Controls_Stack::RESPONSIVE_MOBILE => [
1099
  'condition' => [
1100
  '_ob_column_has_pseudo' => 'yes',
1101
  '_ob_pseudo_after_x_alt_mobile' => '',
1102
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1103
  ],
1104
  ],
1105
  ],
1106
  'selectors' => [
1107
+ $selector_after => 'left: {{SIZE}}{{UNIT}};',
1108
  ],
1109
  'condition' => [
1110
  '_ob_column_has_pseudo' => 'yes',
1111
  '_ob_pseudo_after_x_alt' => '',
1112
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1113
  ],
1114
  ]
1115
  );
1121
  'description' => __( 'Enter CSS calc value only! Like: 100% - 50px or 100% + 2em', 'ooohboi-steroids' ),
1122
  'type' => Controls_Manager::TEXT,
1123
  'selectors' => [
1124
+ $selector_after => 'left: calc({{VALUE}});',
1125
  ],
1126
  'condition' => [
1127
  '_ob_column_has_pseudo' => 'yes',
1128
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1129
  ],
1130
  ]
1131
  );
1147
  'size' => 0,
1148
  ],
1149
  'selectors' => [
1150
+ $selector_after => 'transform: rotate({{SIZE}}deg);',
 
1151
  ],
1152
+ 'condition' => [
1153
+ '_ob_column_has_pseudo' => 'yes',
1154
+ '_ob_pseudo_after_popover_whyxrot' => 'yes',
1155
+ ],
1156
  ]
1157
  );
1158
 
1181
  [
1182
  'name' => '_ob_pseudo_after_borders',
1183
  'label' => __( 'Border', 'ooohboi-steroids' ),
1184
+ 'selector' => $selector_after,
1185
  'condition' => [
1186
  '_ob_column_has_pseudo' => 'yes',
1187
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
1196
  'type' => Controls_Manager::DIMENSIONS,
1197
  'size_units' => [ 'px', '%' ],
1198
  'selectors' => [
1199
+ $selector_after => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1200
  ],
1201
  'condition' => [
1202
  '_ob_column_has_pseudo' => 'yes',
1203
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
1204
+ '_ob_pseudo_after_popover_border' => 'yes',
1205
  ],
1206
  ]
1207
  );
1236
  'url' => '',
1237
  ],
1238
  'selectors' => [
1239
+ $selector_after => '-webkit-mask-image: url("{{URL}}"); mask-image: url("{{URL}}"); -webkit-mask-mode: alpha; mask-mode: alpha;',
1240
  ],
1241
  'condition' => [
1242
  '_ob_column_has_pseudo' => 'yes',
1243
  '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
1244
+ '_ob_pseudo_after_popover_masq' => 'yes',
1245
  ],
1246
  ]
1247
  );
1265
  'bottom right' => __( 'Bottom Right', 'ooohboi-steroids' ),
1266
  ],
1267
  'selectors' => [
1268
+ $selector_after => '-webkit-mask-position: {{VALUE}}; mask-position: {{VALUE}};',
1269
  ],
1270
  'condition' => [
1271
  '_ob_column_has_pseudo' => 'yes',
1272
  '_ob_pseudo_after_mask_img[url]!' => '',
1273
+ '_ob_pseudo_after_popover_masq' => 'yes',
1274
  ],
1275
  ]
1276
  );
1289
  'initial' => __( 'Custom', 'ooohboi-steroids' ),
1290
  ],
1291
  'selectors' => [
1292
+ $selector_after => '-webkit-mask-size: {{VALUE}}; mask-size: {{VALUE}};',
1293
  ],
1294
  'condition' => [
1295
  '_ob_column_has_pseudo' => 'yes',
1296
  '_ob_pseudo_after_mask_img[url]!' => '',
1297
+ '_ob_pseudo_after_popover_masq' => 'yes',
1298
  ],
1299
  ]
1300
  );
1320
  'unit' => '%',
1321
  ],
1322
  'selectors' => [
1323
+ $selector_after => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1324
  ],
1325
  'condition' => [
1326
  '_ob_column_has_pseudo' => 'yes',
1327
  '_ob_pseudo_after_mask_size' => [ 'initial' ],
1328
  '_ob_pseudo_after_mask_img[url]!' => '',
1329
+ '_ob_pseudo_after_popover_masq' => 'yes',
1330
  ],
1331
  'device_args' => [
1332
  Controls_Stack::RESPONSIVE_TABLET => [
1333
  'selectors' => [
1334
+ $selector_after => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1335
  ],
1336
  'condition' => [
1337
  '_ob_column_has_pseudo' => 'yes',
1338
  '_ob_pseudo_after_mask_size_tablet' => [ 'initial' ],
1339
+ '_ob_pseudo_after_popover_masq' => 'yes',
1340
  ],
1341
  ],
1342
  Controls_Stack::RESPONSIVE_MOBILE => [
1343
  'selectors' => [
1344
+ $selector_after => '-webkit-mask-size: {{SIZE}}{{UNIT}} auto; mask-size: {{SIZE}}{{UNIT}} auto;',
1345
  ],
1346
  'condition' => [
1347
  '_ob_column_has_pseudo' => 'yes',
1348
  '_ob_pseudo_after_mask_size_mobile' => [ 'initial' ],
1349
+ '_ob_pseudo_after_popover_masq' => 'yes',
1350
  ],
1351
  ],
1352
  ],
1366
  'repeat-y' => __( 'Repeat-y', 'ooohboi-steroids' ),
1367
  ],
1368
  'selectors' => [
1369
+ $selector_after => '-webkit-mask-repeat: {{VALUE}}; mask-repeat: {{VALUE}};',
1370
  ],
1371
  'condition' => [
1372
  '_ob_column_has_pseudo' => 'yes',
1373
  '_ob_pseudo_after_mask_img[url]!' => '',
1374
+ '_ob_pseudo_after_popover_masq' => 'yes',
1375
  ],
1376
  ]
1377
  );
1392
  'type' => Controls_Manager::TEXTAREA,
1393
  'rows' => 3,
1394
  'selectors' => [
1395
+ $selector_after => '{{VALUE}}',
1396
  ],
1397
  'condition' => [
1398
  '_ob_column_has_pseudo' => 'yes',
1399
+ '_ob_pseudo_after_background_background' => [ 'classic', 'gradient' ],
1400
  ],
1401
  ]
1402
  );
1410
  'min' => -9999,
1411
  'default' => 0,
1412
  'selectors' => [
1413
+ $selector_after => 'z-index: {{VALUE}};',
1414
  ],
1415
  'label_block' => false,
1416
  'condition' => [
controls/ooohboi-searchcop.php CHANGED
@@ -14,6 +14,8 @@ if ( ! defined( 'ABSPATH' ) ) {
14
  */
15
  class OoohBoi_SearchCop {
16
 
 
 
17
  /**
18
  * Initialize
19
  *
@@ -25,6 +27,35 @@ class OoohBoi_SearchCop {
25
 
26
  add_action( 'elementor/element/search-form/search_content/before_section_end', [ __CLASS__, 'ooohboi_searchcop_get_controls' ], 10, 2 );
27
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  }
29
 
30
  public static function ooohboi_searchcop_get_controls( $element, $args ) {
@@ -38,6 +69,21 @@ class OoohBoi_SearchCop {
38
  ]
39
  );
40
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  // ------------------------------------------------------------------------- CONTROL: Yes 4 Search Cop !
42
  $element->add_control(
43
  '_ob_searchcop_srch_options',
14
  */
15
  class OoohBoi_SearchCop {
16
 
17
+ static $should_script_enqueue = false;
18
+
19
  /**
20
  * Initialize
21
  *
27
 
28
  add_action( 'elementor/element/search-form/search_content/before_section_end', [ __CLASS__, 'ooohboi_searchcop_get_controls' ], 10, 2 );
29
 
30
+ /* should enqueue? */
31
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
32
+ /* add script */
33
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
34
+
35
+ }
36
+
37
+ /* enqueue script JS */
38
+ public static function enqueue_scripts() {
39
+
40
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/searchcop-min.js';
41
+
42
+ if( file_exists( $extension_js ) ) {
43
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
44
+ }
45
+
46
+ }
47
+ /* should enqueue? */
48
+ public static function should_script_enqueue( $element ) {
49
+
50
+ if( self::$should_script_enqueue ) return;
51
+
52
+ if( 'yes' == $element->get_settings_for_display( '_ob_searchcop_use_it' ) ) {
53
+
54
+ self::$should_script_enqueue = true;
55
+ self::enqueue_scripts();
56
+
57
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
58
+ }
59
  }
60
 
61
  public static function ooohboi_searchcop_get_controls( $element, $args ) {
69
  ]
70
  );
71
 
72
+ // --------------------------------------------------------------------------------------------- CONTROL: Use Butter Button
73
+ $element->add_control(
74
+ '_ob_searchcop_use_it',
75
+ [
76
+ 'label' => __( 'Enable Butter Buttons?', 'ooohboi-steroids' ),
77
+ 'separator' => 'after',
78
+ 'type' => Controls_Manager::SWITCHER,
79
+ 'label_on' => __( 'Yes', 'ooohboi-steroids' ),
80
+ 'label_off' => __( 'No', 'ooohboi-steroids' ),
81
+ 'return_value' => 'yes',
82
+ 'default' => 'yes',
83
+ 'frontend_available' => true,
84
+ ]
85
+ );
86
+
87
  // ------------------------------------------------------------------------- CONTROL: Yes 4 Search Cop !
88
  $element->add_control(
89
  '_ob_searchcop_srch_options',
controls/ooohboi-spacerat.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_SpaceRat {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -28,7 +30,37 @@ class OoohBoi_SpaceRat {
28
  add_action( 'elementor/element/spacer/section_spacer/before_section_end', [ __CLASS__, 'ooohboi_spacerat_controls' ], 10, 2 );
29
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
 
33
  public static function add_attributes( $element ) {
34
 
@@ -177,6 +209,7 @@ class OoohBoi_SpaceRat {
177
  ],
178
  'condition' => [
179
  '_ob_spacerat_use' => 'yes',
 
180
  ],
181
  ]
182
  );
@@ -204,7 +237,8 @@ class OoohBoi_SpaceRat {
204
  ],
205
  'condition' => [
206
  '_ob_spacerat_use' => 'yes',
207
- '_ob_spacerat_mask_img[url]!' => '',
 
208
  ],
209
  ]
210
  );
@@ -227,7 +261,8 @@ class OoohBoi_SpaceRat {
227
  ],
228
  'condition' => [
229
  '_ob_spacerat_use' => 'yes',
230
- '_ob_spacerat_mask_img[url]!' => '',
 
231
  ],
232
  ]
233
  );
@@ -258,7 +293,8 @@ class OoohBoi_SpaceRat {
258
  'condition' => [
259
  '_ob_spacerat_use' => 'yes',
260
  '_ob_spacerat_mask_size' => [ 'initial' ],
261
- '_ob_spacerat_mask_img[url]!' => '',
 
262
  ],
263
  'device_args' => [
264
  Controls_Stack::RESPONSIVE_TABLET => [
@@ -267,7 +303,8 @@ class OoohBoi_SpaceRat {
267
  ],
268
  'condition' => [
269
  '_ob_spacerat_use' => 'yes',
270
- '_ob_spacerat_mask_size_tablet' => [ 'initial' ],
 
271
  ],
272
  ],
273
  Controls_Stack::RESPONSIVE_MOBILE => [
@@ -277,6 +314,7 @@ class OoohBoi_SpaceRat {
277
  'condition' => [
278
  '_ob_spacerat_use' => 'yes',
279
  '_ob_spacerat_mask_size_mobile' => [ 'initial' ],
 
280
  ],
281
  ],
282
  ],
@@ -300,7 +338,8 @@ class OoohBoi_SpaceRat {
300
  ],
301
  'condition' => [
302
  '_ob_spacerat_use' => 'yes',
303
- '_ob_spacerat_mask_img[url]!' => '',
 
304
  ],
305
  ]
306
  );
@@ -391,6 +430,7 @@ class OoohBoi_SpaceRat {
391
  'condition' => [
392
  '_ob_spacerat_add_shadow' => 'yes',
393
  '_ob_spacerat_use' => 'yes',
 
394
  ],
395
  ]
396
  );
@@ -423,6 +463,7 @@ class OoohBoi_SpaceRat {
423
  'condition' => [
424
  '_ob_spacerat_add_shadow' => 'yes',
425
  '_ob_spacerat_use' => 'yes',
 
426
  ],
427
  ]
428
  );
@@ -453,6 +494,7 @@ class OoohBoi_SpaceRat {
453
  'condition' => [
454
  '_ob_spacerat_add_shadow' => 'yes',
455
  '_ob_spacerat_use' => 'yes',
 
456
  ],
457
  ]
458
  );
@@ -470,6 +512,7 @@ class OoohBoi_SpaceRat {
470
  'condition' => [
471
  '_ob_spacerat_add_shadow' => 'yes',
472
  '_ob_spacerat_use' => 'yes',
 
473
  ],
474
  ]
475
  );
16
  */
17
  class OoohBoi_SpaceRat {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
30
  add_action( 'elementor/element/spacer/section_spacer/before_section_end', [ __CLASS__, 'ooohboi_spacerat_controls' ], 10, 2 );
31
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'add_attributes' ] );
32
 
33
+ /* should enqueue? */
34
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
35
+ /* add script */
36
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
37
+
38
+ }
39
+
40
+ /* enqueue script JS */
41
+ public static function enqueue_scripts() {
42
+
43
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/spacerat-min.js';
44
+
45
+ if( file_exists( $extension_js ) ) {
46
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
47
+ }
48
+
49
  }
50
+ /* should enqueue? */
51
+ public static function should_script_enqueue( $element ) {
52
+
53
+ if( self::$should_script_enqueue ) return;
54
+
55
+ if( 'yes' == $element->get_settings_for_display( '_ob_spacerat_use' ) ) {
56
+
57
+ self::$should_script_enqueue = true;
58
+ self::enqueue_scripts();
59
+
60
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
61
+ }
62
+ }
63
+
64
 
65
  public static function add_attributes( $element ) {
66
 
209
  ],
210
  'condition' => [
211
  '_ob_spacerat_use' => 'yes',
212
+ '_ob_spacerat_popover_masq' => 'yes',
213
  ],
214
  ]
215
  );
237
  ],
238
  'condition' => [
239
  '_ob_spacerat_use' => 'yes',
240
+ '_ob_spacerat_mask_img[url]!' => '',
241
+ '_ob_spacerat_popover_masq' => 'yes',
242
  ],
243
  ]
244
  );
261
  ],
262
  'condition' => [
263
  '_ob_spacerat_use' => 'yes',
264
+ '_ob_spacerat_mask_img[url]!' => '',
265
+ '_ob_spacerat_popover_masq' => 'yes',
266
  ],
267
  ]
268
  );
293
  'condition' => [
294
  '_ob_spacerat_use' => 'yes',
295
  '_ob_spacerat_mask_size' => [ 'initial' ],
296
+ '_ob_spacerat_mask_img[url]!' => '',
297
+ '_ob_spacerat_popover_masq' => 'yes',
298
  ],
299
  'device_args' => [
300
  Controls_Stack::RESPONSIVE_TABLET => [
303
  ],
304
  'condition' => [
305
  '_ob_spacerat_use' => 'yes',
306
+ '_ob_spacerat_mask_size_tablet' => [ 'initial' ],
307
+ '_ob_spacerat_popover_masq' => 'yes',
308
  ],
309
  ],
310
  Controls_Stack::RESPONSIVE_MOBILE => [
314
  'condition' => [
315
  '_ob_spacerat_use' => 'yes',
316
  '_ob_spacerat_mask_size_mobile' => [ 'initial' ],
317
+ '_ob_spacerat_popover_masq' => 'yes',
318
  ],
319
  ],
320
  ],
338
  ],
339
  'condition' => [
340
  '_ob_spacerat_use' => 'yes',
341
+ '_ob_spacerat_mask_img[url]!' => '',
342
+ '_ob_spacerat_popover_masq' => 'yes',
343
  ],
344
  ]
345
  );
430
  'condition' => [
431
  '_ob_spacerat_add_shadow' => 'yes',
432
  '_ob_spacerat_use' => 'yes',
433
+ '_ob_spacerat_popover_shadow' => 'yes',
434
  ],
435
  ]
436
  );
463
  'condition' => [
464
  '_ob_spacerat_add_shadow' => 'yes',
465
  '_ob_spacerat_use' => 'yes',
466
+ '_ob_spacerat_popover_shadow' => 'yes',
467
  ],
468
  ]
469
  );
494
  'condition' => [
495
  '_ob_spacerat_add_shadow' => 'yes',
496
  '_ob_spacerat_use' => 'yes',
497
+ '_ob_spacerat_popover_shadow' => 'yes',
498
  ],
499
  ]
500
  );
512
  'condition' => [
513
  '_ob_spacerat_add_shadow' => 'yes',
514
  '_ob_spacerat_use' => 'yes',
515
+ '_ob_spacerat_popover_shadow' => 'yes',
516
  ],
517
  ]
518
  );
controls/ooohboi-videomasq.php CHANGED
@@ -25,6 +25,7 @@ class OoohBoi_Videomasq {
25
  public static function init() {
26
 
27
  add_action( 'elementor/element/section/section_background/before_section_end', [ __CLASS__, 'ooohboi_videomasq_get_controls' ], 10, 2 );
 
28
 
29
  }
30
 
25
  public static function init() {
26
 
27
  add_action( 'elementor/element/section/section_background/before_section_end', [ __CLASS__, 'ooohboi_videomasq_get_controls' ], 10, 2 );
28
+ add_action( 'elementor/element/container/section_background/before_section_end', [ __CLASS__, 'ooohboi_videomasq_get_controls' ], 10, 2 );
29
 
30
  }
31
 
controls/ooohboi-widget-stalker.php CHANGED
@@ -16,6 +16,8 @@ if ( ! defined( 'ABSPATH' ) ) {
16
  */
17
  class OoohBoi_Widget_Stalker {
18
 
 
 
19
  /**
20
  * Initialize
21
  *
@@ -28,6 +30,35 @@ class OoohBoi_Widget_Stalker {
28
  add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'ooohboi_widget_stalker_controls' ] );
29
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'ob_widget_stalker_add_attributes' ] );
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  }
32
 
33
  public static function ob_widget_stalker_add_attributes( Element_Base $element ) {
@@ -47,7 +78,6 @@ class OoohBoi_Widget_Stalker {
47
  }
48
 
49
  public static function ooohboi_widget_stalker_controls( Element_Base $element ) {
50
- if( strpos( $_SERVER[ 'SERVER_NAME' ], 'krieder' ) !== false ) return;
51
 
52
  $element->start_controls_section(
53
  '_ob_widget_stalker',
@@ -62,7 +92,7 @@ class OoohBoi_Widget_Stalker {
62
  '_ob_widget_stalker_use',
63
  [
64
  'label' => __( 'Enable Widget Stalker?', 'ooohboi-steroids' ),
65
- 'description' => __( 'NOTE: Position of this widget is controlled by the parent Column. See the Layout tab, Layout panel > Breaking Bad, Widget Stalker settings.', 'ooohboi-steroids' ),
66
  'separator' => 'before',
67
  'type' => Controls_Manager::SWITCHER,
68
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
16
  */
17
  class OoohBoi_Widget_Stalker {
18
 
19
+ static $should_script_enqueue = false;
20
+
21
  /**
22
  * Initialize
23
  *
30
  add_action( 'elementor/element/common/_section_background/after_section_end', [ __CLASS__, 'ooohboi_widget_stalker_controls' ] );
31
  add_action( 'elementor/element/after_add_attributes', [ __CLASS__, 'ob_widget_stalker_add_attributes' ] );
32
 
33
+ /* should enqueue? */
34
+ add_action( 'elementor/frontend/widget/before_render', [ __CLASS__, 'should_script_enqueue' ] );
35
+ /* add script */
36
+ add_action( 'elementor/preview/enqueue_scripts', [ __CLASS__, 'enqueue_scripts' ] );
37
+
38
+ }
39
+
40
+ /* enqueue script JS */
41
+ public static function enqueue_scripts() {
42
+
43
+ $extension_js = plugin_dir_path( __DIR__ ) . 'assets/js/widgetstalker-min.js';
44
+
45
+ if( file_exists( $extension_js ) ) {
46
+ wp_add_inline_script( 'elementor-frontend', file_get_contents( $extension_js ) );
47
+ }
48
+
49
+ }
50
+ /* should enqueue? */
51
+ public static function should_script_enqueue( $element ) {
52
+
53
+ if( self::$should_script_enqueue ) return;
54
+
55
+ if( 'yes' == $element->get_settings_for_display( '_ob_widget_stalker_use' ) ) {
56
+
57
+ self::$should_script_enqueue = true;
58
+ self::enqueue_scripts();
59
+
60
+ remove_action( 'elementor/frontend/section/before_render', [ __CLASS__, 'should_script_enqueue' ] );
61
+ }
62
  }
63
 
64
  public static function ob_widget_stalker_add_attributes( Element_Base $element ) {
78
  }
79
 
80
  public static function ooohboi_widget_stalker_controls( Element_Base $element ) {
 
81
 
82
  $element->start_controls_section(
83
  '_ob_widget_stalker',
92
  '_ob_widget_stalker_use',
93
  [
94
  'label' => __( 'Enable Widget Stalker?', 'ooohboi-steroids' ),
95
+ 'description' => __( 'NOTE: Position, alignment, direction and justification of all widgets is controlled by the parent Container!', 'ooohboi-steroids' ),
96
  'separator' => 'before',
97
  'type' => Controls_Manager::SWITCHER,
98
  'label_on' => __( 'Yes', 'ooohboi-steroids' ),
inc/common-functions.php CHANGED
@@ -11,6 +11,15 @@ ob_start();
11
  include( SFE_DIR_PATH . 'info/ob-landing.php' );
12
  $news_content = ob_get_clean();
13
 
 
 
 
 
 
 
 
 
 
14
  // --------------------------- E X O P I T ----- >
15
  $config_submenu = array(
16
 
@@ -71,7 +80,7 @@ $fields[] = array(
71
  'id' => 'ob_use_overlaiz',
72
  'title' => 'OVERLAIZ',
73
  'type' => 'switcher',
74
- 'description' => sprintf( __( '%sAn awesome set of options for the Background Overlay element manipulation%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
75
  'default' => 'yes',
76
  ),
77
  array(
@@ -85,7 +94,7 @@ $fields[] = array(
85
  'id' => 'ob_use_breakingbad',
86
  'title' => 'BREAKING BAD',
87
  'type' => 'switcher',
88
- 'description' => sprintf( __( '%sA must to have extension for the Section and Columns%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
89
  'default' => 'yes',
90
  ),
91
  array(
@@ -99,14 +108,14 @@ $fields[] = array(
99
  'id' => 'ob_use_photogiraffe',
100
  'title' => 'PHOTOGIRAFFE',
101
  'type' => 'switcher',
102
- 'description' => sprintf( __( '%sMake the Image widget full-height of the container%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
103
  'default' => 'yes',
104
  ),
105
  array(
106
  'id' => 'ob_use_teleporter',
107
  'title' => 'TELEPORTER',
108
  'type' => 'switcher',
109
- 'description' => sprintf( __( '%sThe Column hover controls for an exceptional effects%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
110
  'default' => 'yes',
111
  ),
112
  array(
@@ -207,6 +216,20 @@ $fields[] = array(
207
  'description' => sprintf( __( '%sTake control over the Column\'s pseudo elements%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
208
  'default' => 'yes',
209
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
210
  ),
211
  );
212
 
@@ -263,27 +286,62 @@ $fields[] = array(
263
  'style' => 'fancy',
264
  ),
265
  array(
266
- 'id' => 'ob_disable_smoothing',
267
- 'title' => esc_html__( 'Disable Smooth Scroll?', 'ooohboi-steroids' ),
268
- 'description' => sprintf( __( 'Beware! Certain data-scroll attributes won\'t work. Check %sthe list%s to be sure!', 'ooohboi-steroids' ), '<a href="https://github.com/locomotivemtl/locomotive-scroll#element-attributes" title="Locomotive Scroll Github" target="_blank">', '</a>' ),
269
  'type' => 'checkbox',
270
  'default' => 'no',
271
  'style' => 'fancy',
272
  ),
273
  ),
274
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  array(
276
  'id' => 'ob_use_gsap',
277
  'title' => 'GSAP',
278
  'type' => 'switcher',
279
- 'description' => sprintf( __( '%1$sGreenSock\'s GSAP JavaScript animation library (including Draggable).%3$s%4$sSOURCE%5$s%2$s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://github.com/greensock/GSAP" title="GSAP Github" target="_blank">', '</a>' ),
280
  'default' => 'no',
281
  ),
282
  array(
283
  'id' => 'ob_use_scroll_trigger',
284
- 'title' => 'SCROLL TRIGGER',
 
 
 
 
 
 
 
 
 
 
 
 
 
 
285
  'type' => 'switcher',
286
- 'description' => sprintf( __( '%1$sLet your page react to scroll changes.%3$s%4$sSOURCE%5$s%2$s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://github.com/terwanerik/ScrollTrigger" title="Scroll Trigger Github" target="_blank">', '</a>' ),
287
  'default' => 'no',
288
  ),
289
 
11
  include( SFE_DIR_PATH . 'info/ob-landing.php' );
12
  $news_content = ob_get_clean();
13
 
14
+ // cdnjs acknowledgements
15
+ $cdnjs_gsap = '<p class="ob-alert">NOTE! This (GSAP) JavaScript library is hosted by, and loaded from the <a href="https://cdnjs.com/libraries/gsap">cdnjs.com</a>. "OoohBoi - Steroids for Elementor" plugin does not include that file!
16
+ By enabling this option you acknowledge its <a href="https://greensock.com/standard-license/" target="_blank">terms of use</a>, and accept every responsibility - including the risk of script unavailability, vulnerability and the data loss.</p>';
17
+ $cdnjs_scrolltrigger = '<p class="ob-alert">NOTE! This (ScrollTrigger) JavaScript library is hosted by, and loaded from the <a href="https://cdnjs.com/libraries/ScrollTrigger">cdnjs.com</a>. "OoohBoi - Steroids for Elementor" plugin does not include that file!
18
+ By enabling this option you acknowledge its <a href="https://greensock.com/standard-license/" target="_blank">terms of use</a>, and accept every responsibility - including the risk of script unavailability, vulnerability and the data loss.</p>';
19
+ $cdnjs_scrollto = '<p class="ob-alert">NOTE! This (ScrollTo) JavaScript library is hosted by, and loaded from the <a href="https://cdnjs.com/libraries/gsap">cdnjs.com</a>. "OoohBoi - Steroids for Elementor" plugin does not include that file!
20
+ By enabling this option you acknowledge its <a href="https://greensock.com/standard-license/" target="_blank">terms of use</a>, and accept every responsibility - including the risk of script unavailability, vulnerability and the data loss.</p>';
21
+ $cdnjs_motionpath = '<p class="ob-alert">NOTE! This (MotionPath) JavaScript library is hosted by, and loaded from the <a href="https://cdnjs.com/libraries/gsap">cdnjs.com</a>. "OoohBoi - Steroids for Elementor" plugin does not include that file!
22
+ By enabling this option you acknowledge its <a href="https://greensock.com/standard-license/" target="_blank">terms of use</a>, and accept every responsibility - including the risk of script unavailability, vulnerability and the data loss.</p>';
23
  // --------------------------- E X O P I T ----- >
24
  $config_submenu = array(
25
 
80
  'id' => 'ob_use_overlaiz',
81
  'title' => 'OVERLAIZ',
82
  'type' => 'switcher',
83
+ 'description' => sprintf( __( '%sAn awesome set of options for the Background Overlay element manipulation (up to Elementor 3.5.9)%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
84
  'default' => 'yes',
85
  ),
86
  array(
94
  'id' => 'ob_use_breakingbad',
95
  'title' => 'BREAKING BAD',
96
  'type' => 'switcher',
97
+ 'description' => sprintf( __( '%sA must to have extension for the Section and Columns (up to Elementor 3.5.9)%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
98
  'default' => 'yes',
99
  ),
100
  array(
108
  'id' => 'ob_use_photogiraffe',
109
  'title' => 'PHOTOGIRAFFE',
110
  'type' => 'switcher',
111
+ 'description' => sprintf( __( '%sMake the Image widget full-height of the container (up to Elementor 3.5.9)%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
112
  'default' => 'yes',
113
  ),
114
  array(
115
  'id' => 'ob_use_teleporter',
116
  'title' => 'TELEPORTER',
117
  'type' => 'switcher',
118
+ 'description' => sprintf( __( '%sThe Column hover controls for an exceptional effects (up to Elementor 3.5.9)%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
119
  'default' => 'yes',
120
  ),
121
  array(
216
  'description' => sprintf( __( '%sTake control over the Column\'s pseudo elements%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
217
  'default' => 'yes',
218
  ),
219
+ array(
220
+ 'id' => 'ob_use_bullet',
221
+ 'title' => 'BULLET',
222
+ 'type' => 'switcher',
223
+ 'description' => sprintf( __( '%sAllows you to move the Icon List widget bullet to top%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
224
+ 'default' => 'yes',
225
+ ),
226
+ array(
227
+ 'id' => 'ob_use_container_extras',
228
+ 'title' => 'CONTAINER EXTRAS',
229
+ 'type' => 'switcher',
230
+ 'description' => sprintf( __( '%sJust a few extra Container settings which can make your life easier (for Elementor 3.6 and above)%s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>' ),
231
+ 'default' => 'yes',
232
+ ),
233
  ),
234
  );
235
 
286
  'style' => 'fancy',
287
  ),
288
  array(
289
+ 'id' => 'ob_remove_section_attribute',
290
+ 'title' => esc_html__( 'Enable freehand mode?', 'ooohboi-steroids' ),
291
+ 'description' => sprintf( __( 'That removes all the default %sdata-scroll-section%s attributes so you can set them at will.', 'ooohboi-steroids' ), '<em>', '</em>' ),
292
  'type' => 'checkbox',
293
  'default' => 'no',
294
  'style' => 'fancy',
295
  ),
296
  ),
297
  ),
298
+ array(
299
+ 'id' => 'ob_use_three',
300
+ 'title' => 'Three.JS',
301
+ 'type' => 'switcher',
302
+ 'description' => sprintf( __( '%1$s Cross-browser JavaScript library/API which is used to create and animate 3D computer graphics to display in a web browser.%3$s%4$sSOURCE%5$s%2$s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://threejs.org/" title="Three.js Home Page" target="_blank">', '</a>' ),
303
+ 'default' => 'no',
304
+ ),
305
+ array(
306
+ 'id' => 'ob_use_anime',
307
+ 'title' => 'Anime',
308
+ 'type' => 'switcher',
309
+ 'description' => sprintf( __( '%1$s A lightweight JavaScript animation library with a simple, yet powerful API.%3$s%4$sSOURCE%5$s%2$s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://animejs.com/" title="Anime Home Page" target="_blank">', '</a>' ),
310
+ 'default' => 'no',
311
+ ),
312
+ array(
313
+ 'id' => 'ob_use_barba',
314
+ 'title' => 'Barba',
315
+ 'type' => 'switcher',
316
+ 'description' => sprintf( __( '%1$s Create badass fluid and smooth transitions between your website\'s pages.%3$s%4$sSOURCE%5$s%2$s', 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://barba.js.org/" title="Barba Home Page" target="_blank">', '</a>' ),
317
+ 'default' => 'no',
318
+ ),
319
  array(
320
  'id' => 'ob_use_gsap',
321
  'title' => 'GSAP',
322
  'type' => 'switcher',
323
+ 'description' => sprintf( __( '%1$sGreenSock\'s GSAP JavaScript animation library (including Draggable).%3$s%4$sSOURCE%5$s%2$s' . $cdnjs_gsap, 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://github.com/greensock/GSAP" title="GSAP Github" target="_blank">', '</a>' ),
324
  'default' => 'no',
325
  ),
326
  array(
327
  'id' => 'ob_use_scroll_trigger',
328
+ 'title' => 'GSAP - SCROLL TRIGGER',
329
+ 'type' => 'switcher',
330
+ 'description' => sprintf( __( '%1$sLet your page react to scroll changes.%3$s%4$sSOURCE%5$s%2$s' . $cdnjs_scrolltrigger, 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://github.com/terwanerik/ScrollTrigger" title="ScrollTrigger Github" target="_blank">', '</a>' ),
331
+ 'default' => 'no',
332
+ ),
333
+ array(
334
+ 'id' => 'ob_use_scroll_to',
335
+ 'title' => 'GSAP - SCROLL TO',
336
+ 'type' => 'switcher',
337
+ 'description' => sprintf( __( '%1$sAnimates the scroll position of the window or a DOM element.%3$s%4$sSOURCE%5$s%2$s' . $cdnjs_scrollto, 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://greensock.com/docs/v3/Plugins/ScrollToPlugin" title="ScrollTo" target="_blank">', '</a>' ),
338
+ 'default' => 'no',
339
+ ),
340
+ array(
341
+ 'id' => 'ob_use_motion_path',
342
+ 'title' => 'GSAP - MOTION PATH',
343
  'type' => 'switcher',
344
+ 'description' => sprintf( __( '%1$sAnimate anything (SVG, DOM, canvas, generic objects, whatever) along a motion path in any browser.%3$s%4$sSOURCE%5$s%2$s' . $cdnjs_motionpath, 'ooohboi-steroids' ), '<span class="ob-option-desc">', '</span>', '<br />', '<a href="https://greensock.com/motionpath/" title="MotionPath" target="_blank">', '</a>' ),
345
  'default' => 'no',
346
  ),
347
 
inc/exopite-simple-options/exopite-simple-options-framework-class.php CHANGED
@@ -649,12 +649,14 @@ if ( ! class_exists( 'Exopite_Simple_Options_Framework' ) ) :
649
  * @return string the generated url
650
  */
651
  public function get_url( $path = '' ) {
652
-
653
  $url = str_replace(
654
  wp_normalize_path( untrailingslashit( ABSPATH ) ),
655
  site_url(),
656
  $path
657
  );
 
 
658
 
659
  return $url;
660
  }
@@ -1695,7 +1697,7 @@ if ( ! class_exists( 'Exopite_Simple_Options_Framework' ) ) :
1695
 
1696
  }
1697
 
1698
- public function get_menu_item( $section, $active = '', $force_hidden ) {
1699
 
1700
  // $active = '';
1701
  // if ( $section === reset( $this->fields ) ) {
649
  * @return string the generated url
650
  */
651
  public function get_url( $path = '' ) {
652
+ /*
653
  $url = str_replace(
654
  wp_normalize_path( untrailingslashit( ABSPATH ) ),
655
  site_url(),
656
  $path
657
  );
658
+ */
659
+ $url = plugin_dir_url( $path ) . basename( $path );
660
 
661
  return $url;
662
  }
1697
 
1698
  }
1699
 
1700
+ public function get_menu_item( $section, $active, $force_hidden ) {
1701
 
1702
  // $active = '';
1703
  // if ( $section === reset( $this->fields ) ) {
inc/img/container-extras.png ADDED
Binary file
inc/img/glider.png ADDED
Binary file
inc/img/locomotion-panel.png DELETED
Binary file
inc/img/multiple-slides-glider.png DELETED
Binary file
inc/img/oh-animator.png ADDED
Binary file
inc/img/sfe-interface-2.png DELETED
Binary file
inc/img/sfe-new-interface.png ADDED
Binary file
inc/img/three-js.png ADDED
Binary file
inc/img/three-option.png ADDED
Binary file
inc/info/ob-landing.php CHANGED
@@ -10,46 +10,53 @@
10
 
11
  <div class="col-8">
12
 
13
- <h3>What's new in v1.7.4</h3>
14
- <ul>
15
- <li>
16
- <p>
17
- There's nothing new when it comes to functionality except a few fixes and improvements to the previous release. For everyone experiencing that Sucuri malware warning, it came from the Exopite framework,
18
- and was related to a couple of already commented/cancelled lines of code. These are removed now so everything should be OK.
19
- </p>
20
- </li>
21
- </ul>
22
-
23
- <h3>What's new in v1.7.3</h3>
24
- <ul>
25
- <li>
26
- <p>
27
- As of this version, you can easily include a few of the most popular JS libraries today!
28
- </p>
29
- <p>
30
- <img src="<?php echo SFE_DIR_URL . 'img/sfe-interface-2.png'; ?>" alt="New SFE Options" />
31
- </p>
32
- <p>
33
- The power of <a href="https://locomotivemtl.github.io/locomotive-scroll/" title="Locomotive Scroll" target="_blank">Locomotive Scroll</a> is now available to all Elementor users. And that changes a lot!
34
- No more old-fashioned scrolling that looks awful in Chrome or Safari. From now on any Section, Column or Widget can become a part of smooth scrolling with support for parallax effects, toggling classes, and triggering
35
- event listeners when elements are in the viewport.
36
- </p>
37
- <p>
38
- That's not all! On top of the Locomotive Scroll, you can include GreenSock's <a href="https://greensock.com/docs/v3/Plugins/ScrollTrigger" title="Scroll Trigger" target="_blank">ScrollTrigger</a> and
39
- <a href="https://greensock.com/get-started/" title="GSAP" target="_blank">GSAP</a> - the PRO grade animation library!<br/>
40
-
41
- </p>
42
- <h4>How things work with Locomotive Scroll?</h4>
43
- <p>
44
- Select the target Section, Column or any Widget, find the "Locomotive" panel under the Advanced tab, and enter almost any of the available data-scroll-<i>attribute</i> into the text field.<br/>
45
- Why almost any? Because the "data-scroll-container" and "data-scroll-section" have already been added to the DOM by the Library activation.<br/>
46
- Where to find these data-scroll attributes? <a href="https://github.com/locomotivemtl/locomotive-scroll#element-attributes" title="Available Data Scroll Attributes" target="_blank">Here</a>!
47
- </p>
48
- <p>
49
- <img src="<?php echo SFE_DIR_URL . 'img/locomotion-panel.png'; ?>" alt="Locomotion" />
50
- </p>
51
- </li>
52
- </ul>
 
 
 
 
 
 
 
53
 
54
  </div>
55
 
@@ -72,6 +79,8 @@
72
  Want to learn more about this plugin? Here's a list of tutorials on YouTube:
73
  </p>
74
  <ul>
 
 
75
  <li><a href="https://youtu.be/Vp8O_uVWD-c" title="The Hover Animator explained" target="_blank">The Hover Animator explained</a></li>
76
  <li><a href="https://youtu.be/JpRTDaJQQvE" title="Widget Stalker" target="_blank">How to optimize the layout in Elementor - Widget Stalker</a></li>
77
  <li><a href="https://youtu.be/WRPu1v4Kh9g" title="Masked Video Background" target="_blank">Masked Video Background - Videomasq</a></li>
10
 
11
  <div class="col-8">
12
 
13
+ <h3>What's new in v1.9.5?</h3>
14
+ <p>
15
+ <strong>OH! ANIMATOR - Scroll triggered animations (beta)</strong>
16
+ </p>
17
+ <p>
18
+ If you enable/activate the "GSAP" and "ScrollTrigger" (see "Manage JS Libraries"), you'll be able to find a brand new panel under the editor's "Advanced" tab.<br/>
19
+ <strong>It'll work only if you have the "Flexbox Container" experiment active!</strong> (see Elementor > Settings > Experiments :: Flexbox Container)<br/>
20
+ Oh! Animator extension allows you to add the scroll triggered animation to any widget or the Container element. <br/>
21
+ In order to better understand how everything is supposed to work, please get familiar with the GSAP/ScrollTrigger basics.
22
+ </p>
23
+ <p>
24
+ <img src="<?php echo SFE_DIR_URL . 'img/oh-animator.png'; ?>" alt="OH! Animator" />
25
+ </p>
26
+ <p>
27
+ <strong>Three.JS library added</strong>
28
+ </p>
29
+ <p>
30
+ three.js is a JavaScript-based WebGL engine that can run GPU-powered games and other graphics-powered apps straight from the browser. The three.js library provides many features and APIs for drawing 3D scenes in your browser
31
+ and now you can use it with Elementor.
32
+ </p>
33
+ <p>
34
+ <img src="<?php echo SFE_DIR_URL . 'img/three-js.png'; ?>" alt="three.js" />
35
+ </p>
36
+ <p>
37
+ <img src="<?php echo SFE_DIR_URL . 'img/three-option.png'; ?>" alt="three.js option" />
38
+ </p>
39
+ <p>
40
+ <strong>Flexbox Container Extras</strong>
41
+ </p>
42
+ <p>
43
+ Hence the fact that Elementor developers decided not to add the calc() option to the width of the Container element, it has been added on my own. I strongly believe that they will change their minds
44
+ (Flexbox Container is still in alpha tho) and add it subsequently, but until that happens the "free-hand" width shall be available as an extension. <br/>
45
+ Lemme know if anything else might be added to improve the existing/default settings!
46
+ </p>
47
+ <p>
48
+ <img src="<?php echo SFE_DIR_URL . 'img/container-extras.png'; ?>" alt="Continer Extras" />
49
+ </p>
50
+ <p>
51
+ <strong>GLIDER for Containers</strong>
52
+ </p>
53
+ <p>
54
+ Glider has been completely re-coded to fit the new building block - Container. A new option has been added so you can control it from any link on the Page/Template. Everything works very simple - via the custom class name.<br/>
55
+ I encourage you to test the Glider extension for Containers and report any issue!
56
+ </p>
57
+ <p>
58
+ <img src="<?php echo SFE_DIR_URL . 'img/glider.png'; ?>" alt="Glider external control" />
59
+ </p>
60
 
61
  </div>
62
 
79
  Want to learn more about this plugin? Here's a list of tutorials on YouTube:
80
  </p>
81
  <ul>
82
+ <li><a href="https://youtu.be/ccGpcvi-t4A" title="GSAP + Scroll Trigger + Locomotive Scroll" target="_blank">GSAP + Scroll Trigger + Locomotive Scroll</a></li>
83
+ <li><a href="https://youtu.be/dG2uumcwX7s" title="The Smooth, Locomotive Scroll" target="_blank">The Smooth, Locomotive Scrolld</a></li>
84
  <li><a href="https://youtu.be/Vp8O_uVWD-c" title="The Hover Animator explained" target="_blank">The Hover Animator explained</a></li>
85
  <li><a href="https://youtu.be/JpRTDaJQQvE" title="Widget Stalker" target="_blank">How to optimize the layout in Elementor - Widget Stalker</a></li>
86
  <li><a href="https://youtu.be/WRPu1v4Kh9g" title="Masked Video Background" target="_blank">Masked Video Background - Videomasq</a></li>
lang/ooohboi-steroids.pot CHANGED
@@ -1,16 +1,16 @@
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
4
- "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
5
  "Project-Id-Version: OoohBoi Steroids for Elementor\n"
6
- "POT-Creation-Date: 2021-05-02 16:53+0200\n"
7
- "PO-Revision-Date: 2021-05-02 16:53+0200\n"
8
  "Last-Translator: \n"
9
  "Language-Team: \n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
- "X-Generator: Poedit 2.4.3\n"
 
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
  "X-Poedit-WPHeader: ooohboi-steroids.php\n"
@@ -33,44 +33,66 @@ msgstr ""
33
 
34
  #: controls/ooohboi-breaking-bad.php:93 controls/ooohboi-breaking-bad.php:175
35
  #: controls/ooohboi-breaking-bad.php:482 controls/ooohboi-breaking-bad.php:557
36
- #: controls/ooohboi-butter-button.php:71 controls/ooohboi-commentz.php:71
37
- #: controls/ooohboi-commentz.php:1064 controls/ooohboi-glider.php:68
38
- #: controls/ooohboi-glider.php:83 controls/ooohboi-glider.php:134
39
- #: controls/ooohboi-glider.php:359 controls/ooohboi-glider.php:516
40
- #: controls/ooohboi-glider.php:596 controls/ooohboi-glider.php:636
41
- #: controls/ooohboi-glider.php:671 controls/ooohboi-glider.php:689
42
- #: controls/ooohboi-harakiri.php:94 controls/ooohboi-hover-animator.php:68
43
- #: controls/ooohboi-hover-animator.php:145 controls/ooohboi-icobox.php:96
44
- #: controls/ooohboi-icobox.php:231 controls/ooohboi-imbox.php:98
45
- #: controls/ooohboi-imbox.php:375 controls/ooohboi-overlaiz.php:61
46
- #: controls/ooohboi-overlay-underlay.php:1258
47
- #: controls/ooohboi-overlay-underlay.php:1277 controls/ooohboi-paginini.php:220
48
- #: controls/ooohboi-perspektive.php:74 controls/ooohboi-photomorph.php:66
49
- #: controls/ooohboi-photomorph.php:142 controls/ooohboi-pseudo.php:69
50
- #: controls/ooohboi-shadough.php:50 controls/ooohboi-spacerat.php:69
51
- #: controls/ooohboi-spacerat.php:339 controls/ooohboi-widget-stalker.php:67
 
 
 
 
 
 
 
 
 
 
 
52
  #: inc/exopite-simple-options/fields/upload.php:131
53
  msgid "Yes"
54
  msgstr ""
55
 
56
  #: controls/ooohboi-breaking-bad.php:94 controls/ooohboi-breaking-bad.php:176
57
  #: controls/ooohboi-breaking-bad.php:483 controls/ooohboi-breaking-bad.php:558
58
- #: controls/ooohboi-butter-button.php:72 controls/ooohboi-commentz.php:72
59
- #: controls/ooohboi-commentz.php:1065 controls/ooohboi-glider.php:69
60
- #: controls/ooohboi-glider.php:84 controls/ooohboi-glider.php:135
61
- #: controls/ooohboi-glider.php:360 controls/ooohboi-glider.php:517
62
- #: controls/ooohboi-glider.php:597 controls/ooohboi-glider.php:637
63
- #: controls/ooohboi-glider.php:672 controls/ooohboi-glider.php:690
64
- #: controls/ooohboi-harakiri.php:95 controls/ooohboi-hover-animator.php:69
65
- #: controls/ooohboi-hover-animator.php:146 controls/ooohboi-icobox.php:97
66
- #: controls/ooohboi-icobox.php:232 controls/ooohboi-imbox.php:99
67
- #: controls/ooohboi-imbox.php:376 controls/ooohboi-overlaiz.php:62
68
- #: controls/ooohboi-overlay-underlay.php:1259
69
- #: controls/ooohboi-overlay-underlay.php:1278 controls/ooohboi-paginini.php:221
70
- #: controls/ooohboi-perspektive.php:75 controls/ooohboi-photomorph.php:67
71
- #: controls/ooohboi-photomorph.php:143 controls/ooohboi-pseudo.php:70
72
- #: controls/ooohboi-shadough.php:51 controls/ooohboi-spacerat.php:70
73
- #: controls/ooohboi-spacerat.php:340 controls/ooohboi-widget-stalker.php:68
 
 
 
 
 
 
 
 
 
 
 
74
  #: inc/exopite-simple-options/fields/upload.php:129
75
  msgid "No"
76
  msgstr ""
@@ -88,8 +110,10 @@ msgstr ""
88
  #: controls/ooohboi-breaking-bad.php:109 controls/ooohboi-breaking-bad.php:155
89
  #: controls/ooohboi-breaking-bad.php:315 controls/ooohboi-breaking-bad.php:338
90
  #: controls/ooohboi-breaking-bad.php:467 controls/ooohboi-breaking-bad.php:592
91
- #: controls/ooohboi-breaking-bad.php:616 controls/ooohboi-commentz.php:134
92
- #: controls/ooohboi-commentz.php:654 controls/ooohboi-widget-stalker.php:196
 
 
93
  msgid "Center"
94
  msgstr ""
95
 
@@ -97,7 +121,7 @@ msgstr ""
97
  #: controls/ooohboi-breaking-bad.php:316 controls/ooohboi-breaking-bad.php:339
98
  #: controls/ooohboi-breaking-bad.php:468 controls/ooohboi-breaking-bad.php:593
99
  #: controls/ooohboi-breaking-bad.php:617
100
- #: controls/ooohboi-widget-stalker.php:197
101
  msgid "End"
102
  msgstr ""
103
 
@@ -139,47 +163,51 @@ msgid ""
139
  "avoid content overlaps."
140
  msgstr ""
141
 
142
- #: controls/ooohboi-breaking-bad.php:192 controls/ooohboi-widget-stalker.php:79
 
143
  msgid "Size Method"
144
  msgstr ""
145
 
146
- #: controls/ooohboi-breaking-bad.php:193 controls/ooohboi-widget-stalker.php:80
 
147
  msgid "Use Flex or Units?"
148
  msgstr ""
149
 
150
  #: controls/ooohboi-breaking-bad.php:198 controls/ooohboi-breaking-bad.php:210
151
- #: controls/ooohboi-widget-stalker.php:84
152
- #: controls/ooohboi-widget-stalker.php:96
153
  msgid "Flex"
154
  msgstr ""
155
 
156
- #: controls/ooohboi-breaking-bad.php:199 controls/ooohboi-widget-stalker.php:85
 
157
  msgid "Units"
158
  msgstr ""
159
 
160
- #: controls/ooohboi-breaking-bad.php:249 controls/ooohboi-overlaiz.php:75
161
- #: controls/ooohboi-overlaiz.php:578 controls/ooohboi-overlay-underlay.php:170
162
- #: controls/ooohboi-overlay-underlay.php:557
163
- #: controls/ooohboi-overlay-underlay.php:766
164
- #: controls/ooohboi-overlay-underlay.php:1132 controls/ooohboi-pseudo.php:182
165
- #: controls/ooohboi-pseudo.php:593 controls/ooohboi-pseudo.php:815
166
- #: controls/ooohboi-pseudo.php:1213 controls/ooohboi-spacerat.php:238
167
- #: controls/ooohboi-videomasq.php:122
 
168
  msgid "Width"
169
  msgstr ""
170
 
171
  #: controls/ooohboi-breaking-bad.php:255 controls/ooohboi-breaking-bad.php:294
172
  #: controls/ooohboi-breaking-bad.php:406 controls/ooohboi-teleporter.php:137
173
  #: controls/ooohboi-teleporter.php:155 controls/ooohboi-teleporter.php:186
174
- #: controls/ooohboi-teleporter.php:203 controls/ooohboi-widget-stalker.php:138
175
- #: controls/ooohboi-widget-stalker.php:176
176
  msgid ""
177
  "You can enter any acceptable CSS value, for example: 50em, 300px, 100%, "
178
  "calc(100% - 300px)."
179
  msgstr ""
180
 
181
  #: controls/ooohboi-breaking-bad.php:289 controls/ooohboi-breaking-bad.php:402
182
- #: controls/ooohboi-widget-stalker.php:172
183
  msgid "Max Width"
184
  msgstr ""
185
 
@@ -193,16 +221,16 @@ msgid ""
193
  "direction is Row or Inherit)."
194
  msgstr ""
195
 
196
- #: controls/ooohboi-breaking-bad.php:313 controls/ooohboi-overlaiz.php:558
197
- #: controls/ooohboi-overlay-underlay.php:539
198
- #: controls/ooohboi-overlay-underlay.php:1115 controls/ooohboi-pseudo.php:574
199
- #: controls/ooohboi-pseudo.php:1195 controls/ooohboi-spacerat.php:220
200
- #: controls/ooohboi-videomasq.php:104 controls/ooohboi-widget-stalker.php:194
201
  msgid "Auto"
202
  msgstr ""
203
 
204
  #: controls/ooohboi-breaking-bad.php:314
205
- #: controls/ooohboi-widget-stalker.php:195
206
  msgid "Baseline"
207
  msgstr ""
208
 
@@ -225,7 +253,7 @@ msgid "Stacking Order"
225
  msgstr ""
226
 
227
  #: controls/ooohboi-breaking-bad.php:355 controls/ooohboi-breaking-bad.php:444
228
- #: controls/ooohboi-widget-stalker.php:213
229
  #, php-format
230
  msgid "More info at %sMozilla%s."
231
  msgstr ""
@@ -241,7 +269,7 @@ msgid ""
241
  "Breaking Bad for this Column parent SECTION!"
242
  msgstr ""
243
 
244
- #: controls/ooohboi-breaking-bad.php:416 controls/ooohboi-harakiri.php:155
245
  msgid "Custom Height"
246
  msgstr ""
247
 
@@ -262,27 +290,31 @@ msgid "Scrollable Column?"
262
  msgstr ""
263
 
264
  #: controls/ooohboi-breaking-bad.php:499
265
- #, php-format
266
- msgid "Column Link%sNEW!%s"
267
  msgstr ""
268
 
269
- #: controls/ooohboi-breaking-bad.php:504 controls/ooohboi-spacerat.php:94
270
- #: controls/ooohboi-teleporter.php:78
 
 
 
 
 
271
  msgid "None"
272
  msgstr ""
273
 
274
- #: controls/ooohboi-breaking-bad.php:505 controls/ooohboi-spacerat.php:95
275
  #: controls/ooohboi-teleporter.php:79
276
  msgid "Custom URL"
277
  msgstr ""
278
 
279
- #: controls/ooohboi-breaking-bad.php:516 controls/ooohboi-spacerat.php:90
280
- #: controls/ooohboi-spacerat.php:107 controls/ooohboi-teleporter.php:73
281
  #: controls/ooohboi-teleporter.php:90
282
  msgid "Link"
283
  msgstr ""
284
 
285
- #: controls/ooohboi-breaking-bad.php:523 controls/ooohboi-spacerat.php:113
286
  #: controls/ooohboi-teleporter.php:97
287
  msgid "https://your-link.com"
288
  msgstr ""
@@ -291,14 +323,14 @@ msgstr ""
291
  msgid "Widget Stalker"
292
  msgstr ""
293
 
294
- #: controls/ooohboi-breaking-bad.php:553 controls/ooohboi-widget-stalker.php:63
295
  msgid "Enable Widget Stalker?"
296
  msgstr ""
297
 
298
  #: controls/ooohboi-breaking-bad.php:554
299
  msgid ""
300
  "NOTE: It changes the default alignment of widgets inside this column - "
301
- "including the Ineer Section widget."
302
  msgstr ""
303
 
304
  #: controls/ooohboi-breaking-bad.php:568
@@ -309,870 +341,986 @@ msgstr ""
309
  msgid "Align Widgets"
310
  msgstr ""
311
 
312
- #: controls/ooohboi-butter-button.php:68
313
- msgid "Enable Butter Buttons?"
 
314
  msgstr ""
315
 
316
- #: controls/ooohboi-butter-button.php:84
317
- msgid "Typography"
318
  msgstr ""
319
 
320
- #: controls/ooohboi-butter-button.php:97 controls/ooohboi-icobox.php:106
 
 
 
 
 
 
 
 
321
  msgid "Icon Size"
322
  msgstr ""
323
 
324
- #: controls/ooohboi-butter-button.php:98
325
  msgid "Be sure the icon is selected in the Content tab!"
326
  msgstr ""
327
 
328
- #: controls/ooohboi-butter-button.php:132
329
  msgid "Transition Duration"
330
  msgstr ""
331
 
332
- #: controls/ooohboi-butter-button.php:158 controls/ooohboi-commentz.php:150
333
- #: controls/ooohboi-commentz.php:734 controls/ooohboi-commentz.php:961
334
- #: controls/ooohboi-glider.php:277 controls/ooohboi-kontrolz.php:107
335
  #: controls/ooohboi-paginini.php:59
336
  msgid "Padding"
337
  msgstr ""
338
 
339
- #: controls/ooohboi-butter-button.php:178
340
- msgid "Regular"
 
 
 
 
341
  msgstr ""
342
 
343
- #: controls/ooohboi-butter-button.php:186
344
- #: controls/ooohboi-butter-button.php:298
345
  msgid "Text Color"
346
  msgstr ""
347
 
348
- #: controls/ooohboi-butter-button.php:206
349
- #: controls/ooohboi-butter-button.php:319
350
  msgctxt "Butter Button Text Shadow Control"
351
  msgid "Text Shadow"
352
  msgstr ""
353
 
354
- #: controls/ooohboi-butter-button.php:233
355
- #: controls/ooohboi-butter-button.php:346 controls/ooohboi-commentz.php:247
356
- #: controls/ooohboi-commentz.php:421 controls/ooohboi-commentz.php:920
357
- #: controls/ooohboi-imbox.php:193 controls/ooohboi-imbox.php:207
358
- #: controls/ooohboi-imbox.php:317 controls/ooohboi-imbox.php:331
359
- #: controls/ooohboi-overlaiz.php:368 controls/ooohboi-overlaiz.php:387
360
- #: controls/ooohboi-overlay-underlay.php:426
361
- #: controls/ooohboi-overlay-underlay.php:443
362
- #: controls/ooohboi-overlay-underlay.php:1003
363
- #: controls/ooohboi-overlay-underlay.php:1020 controls/ooohboi-paginini.php:146
364
- #: controls/ooohboi-paginini.php:195 controls/ooohboi-pseudo.php:455
365
- #: controls/ooohboi-pseudo.php:473 controls/ooohboi-pseudo.php:1077
366
- #: controls/ooohboi-pseudo.php:1095
 
 
 
 
 
 
 
 
 
 
 
 
367
  msgid "Border"
368
  msgstr ""
369
 
370
- #: controls/ooohboi-butter-button.php:246
371
- #: controls/ooohboi-butter-button.php:359 controls/ooohboi-commentz.php:258
372
- #: controls/ooohboi-commentz.php:433 controls/ooohboi-commentz.php:806
373
- #: controls/ooohboi-commentz.php:931 controls/ooohboi-glider.php:235
374
- #: controls/ooohboi-glider.php:472 controls/ooohboi-imbox.php:215
375
- #: controls/ooohboi-imbox.php:339 controls/ooohboi-kontrolz.php:95
376
- #: controls/ooohboi-kontrolz.php:207 controls/ooohboi-overlaiz.php:399
377
- #: controls/ooohboi-overlay-underlay.php:454
378
- #: controls/ooohboi-overlay-underlay.php:1031 controls/ooohboi-paginini.php:154
379
- #: controls/ooohboi-paginini.php:203 controls/ooohboi-pseudo.php:485
380
- #: controls/ooohboi-pseudo.php:1107
381
  msgid "Border Radius"
382
  msgstr ""
383
 
384
- #: controls/ooohboi-butter-button.php:264
385
- #: controls/ooohboi-butter-button.php:377 controls/ooohboi-icobox.php:55
386
- #: controls/ooohboi-imbox.php:56 controls/ooohboi-overlaiz.php:419
 
387
  msgid "Box Shadow"
388
  msgstr ""
389
 
390
- #: controls/ooohboi-butter-button.php:290 controls/ooohboi-photomorph.php:111
391
  #: controls/ooohboi-teleporter.php:174
392
  msgid "Hover"
393
  msgstr ""
394
 
395
- #: controls/ooohboi-commentz.php:68
 
 
 
 
 
 
396
  msgid "Enable Commentz"
397
  msgstr ""
398
 
399
- #: controls/ooohboi-commentz.php:69
400
  msgid "That will allow you to style up the post comments."
401
  msgstr ""
402
 
403
- #: controls/ooohboi-commentz.php:85
404
  msgid "Heading"
405
  msgstr ""
406
 
407
- #: controls/ooohboi-commentz.php:98
408
  msgid "Heading style"
409
  msgstr ""
410
 
411
- #: controls/ooohboi-commentz.php:113 controls/ooohboi-commentz.php:503
412
- #: controls/ooohboi-commentz.php:576 controls/ooohboi-commentz.php:867
413
- #: controls/ooohboi-harakiri.php:228
414
  msgid "Color"
415
  msgstr ""
416
 
417
- #: controls/ooohboi-commentz.php:129
418
  msgid "Text alignment"
419
  msgstr ""
420
 
421
- #: controls/ooohboi-commentz.php:133 controls/ooohboi-commentz.php:653
422
  msgid "Left"
423
  msgstr ""
424
 
425
- #: controls/ooohboi-commentz.php:135 controls/ooohboi-commentz.php:655
426
  msgid "Right"
427
  msgstr ""
428
 
429
- #: controls/ooohboi-commentz.php:169 controls/ooohboi-commentz.php:591
430
- #: controls/ooohboi-commentz.php:750 controls/ooohboi-commentz.php:882
431
- #: controls/ooohboi-commentz.php:980 controls/ooohboi-commentz.php:1042
432
- #: controls/ooohboi-paginini.php:75
433
  msgid "Margin"
434
  msgstr ""
435
 
436
- #: controls/ooohboi-commentz.php:202
437
  msgid "Comment list style"
438
  msgstr ""
439
 
440
- #: controls/ooohboi-commentz.php:217
441
  msgid "Comment body padding"
442
  msgstr ""
443
 
444
- #: controls/ooohboi-commentz.php:232
445
  msgid "Comment body margin"
446
  msgstr ""
447
 
448
- #: controls/ooohboi-commentz.php:273 controls/ooohboi-commentz.php:946
 
449
  msgid "Background color"
450
  msgstr ""
451
 
452
- #: controls/ooohboi-commentz.php:288
453
  msgid "Background color replies"
454
  msgstr ""
455
 
456
- #: controls/ooohboi-commentz.php:304
457
  msgid "Child comments indent"
458
  msgstr ""
459
 
460
- #: controls/ooohboi-commentz.php:336
461
  msgid "Gravatar"
462
  msgstr ""
463
 
464
- #: controls/ooohboi-commentz.php:340
465
  msgid "Hide"
466
  msgstr ""
467
 
468
- #: controls/ooohboi-commentz.php:341
469
  msgid "Show"
470
  msgstr ""
471
 
472
- #: controls/ooohboi-commentz.php:357
473
  msgid "Gravatar style"
474
  msgstr ""
475
 
476
- #: controls/ooohboi-commentz.php:373 controls/ooohboi-glider.php:446
477
  msgid "Size"
478
  msgstr ""
479
 
480
- #: controls/ooohboi-commentz.php:404
481
  msgid "Position"
482
  msgstr ""
483
 
484
- #: controls/ooohboi-commentz.php:464
485
  msgid "Meta-data User"
486
  msgstr ""
487
 
488
- #: controls/ooohboi-commentz.php:476
489
  msgid "Meta-data Time"
490
  msgstr ""
491
 
492
- #: controls/ooohboi-commentz.php:489
493
  msgid "Meta-data style"
494
  msgstr ""
495
 
496
- #: controls/ooohboi-commentz.php:518
497
  msgid "Outer Margin"
498
  msgstr ""
499
 
500
- #: controls/ooohboi-commentz.php:548
501
  msgid "Comment text"
502
  msgstr ""
503
 
504
- #: controls/ooohboi-commentz.php:561
505
  msgid "Comment text style"
506
  msgstr ""
507
 
508
- #: controls/ooohboi-commentz.php:621
509
  msgid "Reply button"
510
  msgstr ""
511
 
512
- #: controls/ooohboi-commentz.php:634
513
  msgid "Reply button style"
514
  msgstr ""
515
 
516
- #: controls/ooohboi-commentz.php:649
517
  msgid "Align button"
518
  msgstr ""
519
 
520
- #: controls/ooohboi-commentz.php:670
521
  msgid "Text color normal"
522
  msgstr ""
523
 
524
- #: controls/ooohboi-commentz.php:685
525
  msgid "Text color hover"
526
  msgstr ""
527
 
528
- #: controls/ooohboi-commentz.php:701
529
  msgid "Background color normal"
530
  msgstr ""
531
 
532
- #: controls/ooohboi-commentz.php:718
533
  msgid "Background color hover"
534
  msgstr ""
535
 
536
- #: controls/ooohboi-commentz.php:766
537
  msgid "Border color normal"
538
  msgstr ""
539
 
540
- #: controls/ooohboi-commentz.php:779
541
  msgid "Border color hover"
542
  msgstr ""
543
 
544
- #: controls/ooohboi-commentz.php:792
545
  msgid "Border Width"
546
  msgstr ""
547
 
548
- #: controls/ooohboi-commentz.php:838
549
  msgid "Comment form heading"
550
  msgstr ""
551
 
552
- #: controls/ooohboi-commentz.php:852
553
  msgid "Comment form heading style"
554
  msgstr ""
555
 
556
- #: controls/ooohboi-commentz.php:905
557
  msgid "Comment form style"
558
  msgstr ""
559
 
560
- #: controls/ooohboi-commentz.php:1014
561
  msgid "Comments Nav"
562
  msgstr ""
563
 
564
- #: controls/ooohboi-commentz.php:1027
565
  msgid "Comments Nav style"
566
  msgstr ""
567
 
568
- #: controls/ooohboi-commentz.php:1060
569
  msgid "Hide the Website input field?"
570
  msgstr ""
571
 
572
- #: controls/ooohboi-commentz.php:1061
573
  msgid ""
574
  "If you make it hidden, be sure it's not mandatory otherwise the comment can "
575
  "not be posted!"
576
  msgstr ""
577
 
578
- #: controls/ooohboi-glider.php:64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
579
  msgid "Create Slider?"
580
  msgstr ""
581
 
582
- #: controls/ooohboi-glider.php:65
583
- msgid "This section columns will become slidable."
 
 
584
  msgstr ""
585
 
586
- #: controls/ooohboi-glider.php:80
587
  msgid "Adaptable height?"
588
  msgstr ""
589
 
590
- #: controls/ooohboi-glider.php:98
591
  msgid "Slider height"
592
  msgstr ""
593
 
594
- #: controls/ooohboi-glider.php:131
595
  msgid "Hide Navigation"
596
  msgstr ""
597
 
598
- #: controls/ooohboi-glider.php:152 controls/ooohboi-kontrolz.php:46
599
  msgid "Navigation styles"
600
  msgstr ""
601
 
602
- #: controls/ooohboi-glider.php:169
603
  msgid "Arrows Color"
604
  msgstr ""
605
 
606
- #: controls/ooohboi-glider.php:186 controls/ooohboi-kontrolz.php:58
607
  msgid "Arrows Color - Hover"
608
  msgstr ""
609
 
610
- #: controls/ooohboi-glider.php:203 controls/ooohboi-kontrolz.php:71
611
  #: controls/ooohboi-paginini.php:47 controls/ooohboi-paginini.php:121
612
  #: controls/ooohboi-paginini.php:182
613
  msgid "Background Color"
614
  msgstr ""
615
 
616
- #: controls/ooohboi-glider.php:219 controls/ooohboi-kontrolz.php:83
617
  msgid "Background Color - Hover"
618
  msgstr ""
619
 
620
- #: controls/ooohboi-glider.php:251
621
  msgid "Icon size"
622
  msgstr ""
623
 
624
- #: controls/ooohboi-glider.php:302 controls/ooohboi-kontrolz.php:128
625
  msgid "Calc - Y"
626
  msgstr ""
627
 
628
- #: controls/ooohboi-glider.php:303 controls/ooohboi-glider.php:321
629
- #: controls/ooohboi-glider.php:338 controls/ooohboi-kontrolz.php:129
630
  #: controls/ooohboi-kontrolz.php:143 controls/ooohboi-kontrolz.php:156
631
  msgid "Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem"
632
  msgstr ""
633
 
634
- #: controls/ooohboi-glider.php:319 controls/ooohboi-kontrolz.php:141
635
  msgid "Calc Prev - X"
636
  msgstr ""
637
 
638
- #: controls/ooohboi-glider.php:336 controls/ooohboi-kontrolz.php:154
639
  msgid "Calc Next - X"
640
  msgstr ""
641
 
642
- #: controls/ooohboi-glider.php:356
643
  msgid "Hide Pagination"
644
  msgstr ""
645
 
646
- #: controls/ooohboi-glider.php:378 controls/ooohboi-kontrolz.php:170
647
  msgid "Pagination styles"
648
  msgstr ""
649
 
650
- #: controls/ooohboi-glider.php:394
651
  msgid "Pagination type"
652
  msgstr ""
653
 
654
- #: controls/ooohboi-glider.php:398
655
  msgid "Bullets"
656
  msgstr ""
657
 
658
- #: controls/ooohboi-glider.php:399
659
  msgid "Fraction"
660
  msgstr ""
661
 
662
- #: controls/ooohboi-glider.php:400
663
  msgid "Progress Bar"
664
  msgstr ""
665
 
666
- #: controls/ooohboi-glider.php:413 controls/ooohboi-kontrolz.php:182
667
  msgid "Pagination Color"
668
  msgstr ""
669
 
670
- #: controls/ooohboi-glider.php:429 controls/ooohboi-kontrolz.php:195
671
  msgid "Pagination Color - Active"
672
  msgstr ""
673
 
674
- #: controls/ooohboi-glider.php:493
675
  msgid "Transition type"
676
  msgstr ""
677
 
678
- #: controls/ooohboi-glider.php:498
679
  msgid "Slide"
680
  msgstr ""
681
 
682
- #: controls/ooohboi-glider.php:499 controls/ooohboi-teleporter.php:317
683
  msgid "Fade"
684
  msgstr ""
685
 
686
- #: controls/ooohboi-glider.php:513
687
- #, php-format
688
- msgid "Show Multiple Slides%sNEW!%s"
689
  msgstr ""
690
 
691
- #: controls/ooohboi-glider.php:534
692
  msgid "Slides Per View"
693
  msgstr ""
694
 
695
- #: controls/ooohboi-glider.php:555
696
  msgid "Slides to Scroll"
697
  msgstr ""
698
 
699
- #: controls/ooohboi-glider.php:556
700
  msgid "Scrolling multiple slides can break infinite loop."
701
  msgstr ""
702
 
703
- #: controls/ooohboi-glider.php:575
704
  msgid "Space Between Slides (px)"
705
  msgstr ""
706
 
707
- #: controls/ooohboi-glider.php:593
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
708
  msgid "Infinite Loop"
709
  msgstr ""
710
 
711
- #: controls/ooohboi-glider.php:612
712
  msgid "Direction"
713
  msgstr ""
714
 
715
- #: controls/ooohboi-glider.php:617
716
  msgid "Horizontal"
717
  msgstr ""
718
 
719
- #: controls/ooohboi-glider.php:618
720
  msgid "Vertical"
721
  msgstr ""
722
 
723
- #: controls/ooohboi-glider.php:632
724
  msgid "Parallax"
725
  msgstr ""
726
 
727
- #: controls/ooohboi-glider.php:633
728
  msgid "It will work with Elementor PRO Attributes only."
729
  msgstr ""
730
 
731
- #: controls/ooohboi-glider.php:652
732
  msgid "Transition speed"
733
  msgstr ""
734
 
735
- #: controls/ooohboi-glider.php:668
736
- msgid "Allow Touch Move"
 
 
 
 
 
 
 
 
 
 
 
 
737
  msgstr ""
738
 
739
- #: controls/ooohboi-glider.php:686
740
  msgid "Autoplay"
741
  msgstr ""
742
 
743
- #: controls/ooohboi-glider.php:704
744
  msgid "Autoplay delay"
745
  msgstr ""
746
 
747
- #: controls/ooohboi-glider.php:705
748
  msgid "In miliseconds! 1000 is one second."
749
  msgstr ""
750
 
751
- #: controls/ooohboi-harakiri.php:60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
752
  msgid "Color - HOVER"
753
  msgstr ""
754
 
755
- #: controls/ooohboi-harakiri.php:72
756
  msgid "Writing Mode"
757
  msgstr ""
758
 
759
- #: controls/ooohboi-harakiri.php:78
760
  msgid "Vertical LR"
761
  msgstr ""
762
 
763
- #: controls/ooohboi-harakiri.php:79
764
  msgid "Vertical RL"
765
  msgstr ""
766
 
767
- #: controls/ooohboi-harakiri.php:80 controls/ooohboi-overlay-underlay.php:131
768
- #: controls/ooohboi-overlay-underlay.php:727 controls/ooohboi-photomorph.php:81
769
- #: controls/ooohboi-pseudo.php:141 controls/ooohboi-pseudo.php:774
770
- #: controls/ooohboi-teleporter.php:129
771
- msgid "Normal"
772
- msgstr ""
773
-
774
- #: controls/ooohboi-harakiri.php:92
775
  msgid "Flip"
776
  msgstr ""
777
 
778
- #: controls/ooohboi-harakiri.php:131 controls/ooohboi-overlaiz.php:142
779
- #: controls/ooohboi-overlay-underlay.php:227
780
- #: controls/ooohboi-overlay-underlay.php:819 controls/ooohboi-pseudo.php:243
781
- #: controls/ooohboi-pseudo.php:874
782
  msgid "Height"
783
  msgstr ""
784
 
785
- #: controls/ooohboi-harakiri.php:135 controls/ooohboi-harakiri.php:214
786
- #: controls/ooohboi-hover-animator.php:276
787
- #: controls/ooohboi-hover-animator.php:458
788
- #: controls/ooohboi-hover-animator.php:640
789
- #: controls/ooohboi-hover-animator.php:875
790
- #: controls/ooohboi-hover-animator.php:1031 controls/ooohboi-overlaiz.php:527
791
- #: controls/ooohboi-overlaiz.php:557 controls/ooohboi-overlay-underlay.php:510
792
- #: controls/ooohboi-overlay-underlay.php:538
793
- #: controls/ooohboi-overlay-underlay.php:1087
794
- #: controls/ooohboi-overlay-underlay.php:1114
795
- #: controls/ooohboi-photomorph.php:189 controls/ooohboi-pseudo.php:544
796
- #: controls/ooohboi-pseudo.php:573 controls/ooohboi-pseudo.php:1166
797
- #: controls/ooohboi-pseudo.php:1194 controls/ooohboi-spacerat.php:191
798
- #: controls/ooohboi-spacerat.php:219 controls/ooohboi-videomasq.php:75
799
- #: controls/ooohboi-videomasq.php:103
800
  msgid "Default"
801
  msgstr ""
802
 
803
- #: controls/ooohboi-harakiri.php:136
804
  msgid "Inline"
805
  msgstr ""
806
 
807
- #: controls/ooohboi-harakiri.php:137 controls/ooohboi-overlaiz.php:561
808
- #: controls/ooohboi-overlay-underlay.php:542
809
- #: controls/ooohboi-overlay-underlay.php:1118 controls/ooohboi-pseudo.php:577
810
- #: controls/ooohboi-pseudo.php:1198 controls/ooohboi-spacerat.php:223
811
- #: controls/ooohboi-videomasq.php:107
812
  msgid "Custom"
813
  msgstr ""
814
 
815
- #: controls/ooohboi-harakiri.php:156
816
  msgid "NOTE: [%] unit works properly only if Column height is a fixed value!"
817
  msgstr ""
818
 
819
- #: controls/ooohboi-harakiri.php:205
820
  msgid "Mix Blend Mode"
821
  msgstr ""
822
 
823
- #: controls/ooohboi-harakiri.php:207
824
  #, php-format
825
  msgid "Learn more about this CSS property: %sMozilla.org%s"
826
  msgstr ""
827
 
828
- #: controls/ooohboi-harakiri.php:215
829
  msgid "Multiply"
830
  msgstr ""
831
 
832
- #: controls/ooohboi-harakiri.php:216
833
  msgid "Screen"
834
  msgstr ""
835
 
836
- #: controls/ooohboi-harakiri.php:217 controls/ooohboi-overlay-underlay.php:79
837
  msgid "Overlay"
838
  msgstr ""
839
 
840
- #: controls/ooohboi-harakiri.php:218
841
  msgid "Darken"
842
  msgstr ""
843
 
844
- #: controls/ooohboi-harakiri.php:219
845
  msgid "Lighten"
846
  msgstr ""
847
 
848
- #: controls/ooohboi-harakiri.php:220
849
  msgid "Color-dodge"
850
  msgstr ""
851
 
852
- #: controls/ooohboi-harakiri.php:221
853
  msgid "Color-burn"
854
  msgstr ""
855
 
856
- #: controls/ooohboi-harakiri.php:222
857
  msgid "Hard-light"
858
  msgstr ""
859
 
860
- #: controls/ooohboi-harakiri.php:223
861
  msgid "Soft-light"
862
  msgstr ""
863
 
864
- #: controls/ooohboi-harakiri.php:224
865
  msgid "Difference"
866
  msgstr ""
867
 
868
- #: controls/ooohboi-harakiri.php:225
869
  msgid "Exclusion"
870
  msgstr ""
871
 
872
- #: controls/ooohboi-harakiri.php:226
873
  msgid "Hue"
874
  msgstr ""
875
 
876
- #: controls/ooohboi-harakiri.php:227
877
  msgid "Saturation"
878
  msgstr ""
879
 
880
- #: controls/ooohboi-harakiri.php:229
881
  msgid "Luminosity"
882
  msgstr ""
883
 
884
- #: controls/ooohboi-hover-animator.php:65
 
 
 
 
 
 
 
 
885
  msgid "Enable HOVERANIMATOR?"
886
  msgstr ""
887
 
888
- #: controls/ooohboi-hover-animator.php:80
889
  msgid ""
890
- "With Hoveranimator you can animate any widget in this column on mouse-over "
891
- "event. Animation panel is available under the Advanced tab, per widget!"
892
  msgstr ""
893
 
894
- #: controls/ooohboi-hover-animator.php:88 controls/ooohboi-icobox.php:75
895
- #: controls/ooohboi-imbox.php:76 controls/ooohboi-perspektive.php:225
896
  #: controls/ooohboi-teleporter.php:361
897
  msgid "Content Overflow"
898
  msgstr ""
899
 
900
- #: controls/ooohboi-hover-animator.php:89
901
  msgid ""
902
  "VISIBLE - makes visible all the elements outside this Column boundaries, "
903
  "HIDDEN - hides everything outside this Column boundaries."
904
  msgstr ""
905
 
906
- #: controls/ooohboi-hover-animator.php:94 controls/ooohboi-icobox.php:80
907
- #: controls/ooohboi-imbox.php:81 controls/ooohboi-perspektive.php:231
908
  #: controls/ooohboi-teleporter.php:367
909
  msgid "Visible"
910
  msgstr ""
911
 
912
- #: controls/ooohboi-hover-animator.php:95 controls/ooohboi-icobox.php:81
913
- #: controls/ooohboi-imbox.php:82 controls/ooohboi-perspektive.php:232
914
  #: controls/ooohboi-teleporter.php:368
915
  msgid "Hidden"
916
  msgstr ""
917
 
918
- #: controls/ooohboi-hover-animator.php:142
919
  msgid "Enable Hoveranimator"
920
  msgstr ""
921
 
922
- #: controls/ooohboi-hover-animator.php:143
923
  msgid ""
924
  "That will allow you to animate this widget on mouse-over event of the parent "
925
  "column."
926
  msgstr ""
927
 
928
- #: controls/ooohboi-hover-animator.php:157
929
- #: controls/ooohboi-overlay-underlay.php:94
930
- #: controls/ooohboi-overlay-underlay.php:690 controls/ooohboi-pseudo.php:102
931
- #: controls/ooohboi-pseudo.php:735
932
  msgid "Opacity"
933
  msgstr ""
934
 
935
- #: controls/ooohboi-hover-animator.php:172
936
  msgid "Opacity Normal"
937
  msgstr ""
938
 
939
- #: controls/ooohboi-hover-animator.php:195
940
  msgid "Opacity Hover"
941
  msgstr ""
942
 
943
- #: controls/ooohboi-hover-animator.php:216
944
- #: controls/ooohboi-hover-animator.php:399
945
- #: controls/ooohboi-hover-animator.php:581
946
- #: controls/ooohboi-hover-animator.php:816
947
- #: controls/ooohboi-hover-animator.php:972
 
948
  msgid "Duration"
949
  msgstr ""
950
 
951
- #: controls/ooohboi-hover-animator.php:243
952
- #: controls/ooohboi-hover-animator.php:426
953
- #: controls/ooohboi-hover-animator.php:608
954
- #: controls/ooohboi-hover-animator.php:843
955
- #: controls/ooohboi-hover-animator.php:999
 
956
  msgid "Delay"
957
  msgstr ""
958
 
959
- #: controls/ooohboi-hover-animator.php:270
960
- #: controls/ooohboi-hover-animator.php:453
961
- #: controls/ooohboi-hover-animator.php:635
962
- #: controls/ooohboi-hover-animator.php:870
963
- #: controls/ooohboi-hover-animator.php:1026
964
  msgid "Easing"
965
  msgstr ""
966
 
967
- #: controls/ooohboi-hover-animator.php:277
968
- #: controls/ooohboi-hover-animator.php:459
969
- #: controls/ooohboi-hover-animator.php:641
970
- #: controls/ooohboi-hover-animator.php:876
971
- #: controls/ooohboi-hover-animator.php:1032 controls/ooohboi-photomorph.php:190
972
  msgid "Ease-in"
973
  msgstr ""
974
 
975
- #: controls/ooohboi-hover-animator.php:278
976
- #: controls/ooohboi-hover-animator.php:460
977
- #: controls/ooohboi-hover-animator.php:642
978
- #: controls/ooohboi-hover-animator.php:877
979
- #: controls/ooohboi-hover-animator.php:1033 controls/ooohboi-photomorph.php:191
980
  msgid "Ease-out"
981
  msgstr ""
982
 
983
- #: controls/ooohboi-hover-animator.php:279
984
- #: controls/ooohboi-hover-animator.php:461
985
- #: controls/ooohboi-hover-animator.php:643
986
- #: controls/ooohboi-hover-animator.php:878
987
- #: controls/ooohboi-hover-animator.php:1034 controls/ooohboi-photomorph.php:192
988
  msgid "Ease-in-out"
989
  msgstr ""
990
 
991
- #: controls/ooohboi-hover-animator.php:298
992
- #: controls/ooohboi-overlay-underlay.php:284
993
- #: controls/ooohboi-overlay-underlay.php:872 controls/ooohboi-pseudo.php:304
994
- #: controls/ooohboi-pseudo.php:933
995
  msgid "Offset Top"
996
  msgstr ""
997
 
998
- #: controls/ooohboi-hover-animator.php:313
999
  msgid "Offset Top Normal"
1000
  msgstr ""
1001
 
1002
- #: controls/ooohboi-hover-animator.php:343
1003
  msgid "Calc Offset Top Normal"
1004
  msgstr ""
1005
 
1006
- #: controls/ooohboi-hover-animator.php:344
1007
- #: controls/ooohboi-hover-animator.php:387
1008
- #: controls/ooohboi-hover-animator.php:526
1009
- #: controls/ooohboi-hover-animator.php:569 controls/ooohboi-overlaiz.php:127
1010
- #: controls/ooohboi-overlaiz.php:194 controls/ooohboi-overlaiz.php:261
1011
- #: controls/ooohboi-overlaiz.php:328 controls/ooohboi-overlay-underlay.php:213
1012
- #: controls/ooohboi-overlay-underlay.php:327
1013
- #: controls/ooohboi-overlay-underlay.php:808
1014
- #: controls/ooohboi-overlay-underlay.php:914
1015
- #: controls/ooohboi-overlay-underlay.php:967 controls/ooohboi-pseudo.php:228
1016
- #: controls/ooohboi-pseudo.php:350 controls/ooohboi-pseudo.php:860
1017
- #: controls/ooohboi-pseudo.php:978 controls/ooohboi-pseudo.php:1037
1018
  msgid "Enter CSS calc value only! Like: 100% - 50px or 100% + 2em"
1019
  msgstr ""
1020
 
1021
- #: controls/ooohboi-hover-animator.php:358
1022
  msgid "Offset Top Hover"
1023
  msgstr ""
1024
 
1025
- #: controls/ooohboi-hover-animator.php:386
1026
  msgid "Calc Offset Top Hover"
1027
  msgstr ""
1028
 
1029
- #: controls/ooohboi-hover-animator.php:480
1030
- #: controls/ooohboi-overlay-underlay.php:341
1031
- #: controls/ooohboi-overlay-underlay.php:925 controls/ooohboi-pseudo.php:365
1032
- #: controls/ooohboi-pseudo.php:992
1033
  msgid "Offset Left"
1034
  msgstr ""
1035
 
1036
- #: controls/ooohboi-hover-animator.php:495
1037
  msgid "Offset Left Normal"
1038
  msgstr ""
1039
 
1040
- #: controls/ooohboi-hover-animator.php:525
1041
  msgid "Calc Offset Left Normal"
1042
  msgstr ""
1043
 
1044
- #: controls/ooohboi-hover-animator.php:540
1045
  msgid "Offset Left Hover"
1046
  msgstr ""
1047
 
1048
- #: controls/ooohboi-hover-animator.php:568
1049
  msgid "Calc Offset Left Hover"
1050
  msgstr ""
1051
 
1052
- #: controls/ooohboi-hover-animator.php:662
1053
  msgid "Transforms"
1054
  msgstr ""
1055
 
1056
- #: controls/ooohboi-hover-animator.php:677
1057
  msgid "ScaleX Normal"
1058
  msgstr ""
1059
 
1060
- #: controls/ooohboi-hover-animator.php:701
1061
  msgid "ScaleX Hover"
1062
  msgstr ""
1063
 
1064
- #: controls/ooohboi-hover-animator.php:723
1065
  msgid "ScaleY Normal"
1066
  msgstr ""
1067
 
1068
- #: controls/ooohboi-hover-animator.php:747
1069
  msgid "ScaleY Hover"
1070
  msgstr ""
1071
 
1072
- #: controls/ooohboi-hover-animator.php:769
1073
  msgid "Rotation Normal"
1074
  msgstr ""
1075
 
1076
- #: controls/ooohboi-hover-animator.php:793
1077
  msgid "Rotation Hover"
1078
  msgstr ""
1079
 
1080
- #: controls/ooohboi-hover-animator.php:897 controls/ooohboi-shadough.php:123
1081
- #: controls/ooohboi-spacerat.php:433
1082
  msgid "Blur"
1083
  msgstr ""
1084
 
1085
- #: controls/ooohboi-hover-animator.php:912
1086
  msgid "Blur Normal"
1087
  msgstr ""
1088
 
1089
- #: controls/ooohboi-hover-animator.php:943
1090
  msgid "Blur Hover"
1091
  msgstr ""
1092
 
1093
- #: controls/ooohboi-icobox.php:92 controls/ooohboi-icobox.php:227
1094
- #: controls/ooohboi-imbox.php:94 controls/ooohboi-imbox.php:371
 
 
 
 
 
 
 
 
 
1095
  msgid "Overrides"
1096
  msgstr ""
1097
 
1098
- #: controls/ooohboi-icobox.php:93 controls/ooohboi-imbox.php:95
1099
  msgid "Allow more basic controls?"
1100
  msgstr ""
1101
 
1102
- #: controls/ooohboi-icobox.php:143
1103
  msgid "Icon Padding"
1104
  msgstr ""
1105
 
1106
- #: controls/ooohboi-icobox.php:159
1107
  msgid "Icon Margin"
1108
  msgstr ""
1109
 
1110
- #: controls/ooohboi-icobox.php:213 controls/ooohboi-imbox.php:290
1111
  msgid "Box Padding"
1112
  msgstr ""
1113
 
1114
- #: controls/ooohboi-icobox.php:228 controls/ooohboi-imbox.php:372
1115
  msgid "Allow separate controls for Title and Description?"
1116
  msgstr ""
1117
 
1118
- #: controls/ooohboi-icobox.php:242 controls/ooohboi-imbox.php:385
1119
  msgid "Title Padding"
1120
  msgstr ""
1121
 
1122
- #: controls/ooohboi-icobox.php:258 controls/ooohboi-imbox.php:401
1123
  msgid "Title Margin"
1124
  msgstr ""
1125
 
1126
- #: controls/ooohboi-icobox.php:273 controls/ooohboi-imbox.php:417
1127
  msgid "Description Padding"
1128
  msgstr ""
1129
 
1130
- #: controls/ooohboi-icobox.php:289 controls/ooohboi-imbox.php:433
1131
  msgid "Description Margin"
1132
  msgstr ""
1133
 
1134
- #: controls/ooohboi-imbox.php:108
 
 
 
 
 
 
 
 
 
1135
  msgid "Image Size"
1136
  msgstr ""
1137
 
1138
- #: controls/ooohboi-imbox.php:145
1139
  msgid "Image Padding"
1140
  msgstr ""
1141
 
1142
- #: controls/ooohboi-imbox.php:161
1143
  msgid "Image Margin"
1144
  msgstr ""
1145
 
1146
- #: controls/ooohboi-imbox.php:176
1147
  msgid "Enable full-height?"
1148
  msgstr ""
1149
 
1150
- #: controls/ooohboi-imbox.php:177
1151
  msgid ""
1152
  "That will make the photo full-height. Makes sense only if the photo is "
1153
  "placed left or the right-hand side!"
1154
  msgstr ""
1155
 
1156
- #: controls/ooohboi-imbox.php:230
1157
  msgid "Image clip path"
1158
  msgstr ""
1159
 
1160
- #: controls/ooohboi-imbox.php:232 controls/ooohboi-overlaiz.php:461
1161
- #: controls/ooohboi-overlay-underlay.php:633
1162
- #: controls/ooohboi-overlay-underlay.php:1206
1163
- #: controls/ooohboi-photomorph.php:89 controls/ooohboi-photomorph.php:119
1164
- #: controls/ooohboi-pseudo.php:673 controls/ooohboi-pseudo.php:1291
1165
- #: controls/ooohboi-spacerat.php:496
1166
  #, php-format
1167
  msgid ""
1168
  "Enter the full clip-path property! See the copy-paste examples at %sClippy%s"
1169
  msgstr ""
1170
 
1171
- #: controls/ooohboi-imbox.php:303
1172
  msgid "Box Margin"
1173
  msgstr ""
1174
 
1175
- #: controls/ooohboi-imbox.php:354
1176
  msgid "Box z-index"
1177
  msgstr ""
1178
 
@@ -1180,15 +1328,15 @@ msgstr ""
1180
  msgid "NOTE: It works only with the pagination style set to Dots!"
1181
  msgstr ""
1182
 
1183
- #: controls/ooohboi-locomotion.php:41
1184
  msgid "Custom Attributes"
1185
  msgstr ""
1186
 
1187
- #: controls/ooohboi-locomotion.php:49
1188
  msgid "key|value"
1189
  msgstr ""
1190
 
1191
- #: controls/ooohboi-locomotion.php:50
1192
  #, php-format
1193
  msgid ""
1194
  "Set custom attributes for the current element/widget. Each attribute must be "
@@ -1196,68 +1344,554 @@ msgid ""
1196
  "pipe character, i.e. data-scroll-offset%s100,50em"
1197
  msgstr ""
1198
 
1199
- #: controls/ooohboi-overlaiz.php:58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1200
  msgid "Enable Overlaiz?"
1201
  msgstr ""
1202
 
1203
- #: controls/ooohboi-overlaiz.php:126 controls/ooohboi-overlay-underlay.php:212
1204
- #: controls/ooohboi-overlay-underlay.php:807 controls/ooohboi-pseudo.php:227
1205
- #: controls/ooohboi-pseudo.php:859
1206
  msgid "Calc Width"
1207
  msgstr ""
1208
 
1209
- #: controls/ooohboi-overlaiz.php:193 controls/ooohboi-overlay-underlay.php:269
1210
- #: controls/ooohboi-overlay-underlay.php:860 controls/ooohboi-pseudo.php:288
1211
- #: controls/ooohboi-pseudo.php:918
1212
  msgid "Calc Height"
1213
  msgstr ""
1214
 
1215
- #: controls/ooohboi-overlaiz.php:209
1216
  msgid "Position - X"
1217
  msgstr ""
1218
 
1219
- #: controls/ooohboi-overlaiz.php:260
1220
  msgid "Calc Position - X"
1221
  msgstr ""
1222
 
1223
- #: controls/ooohboi-overlaiz.php:276
1224
  msgid "Position - Y"
1225
  msgstr ""
1226
 
1227
- #: controls/ooohboi-overlaiz.php:327
1228
  msgid "Calc Position - Y"
1229
  msgstr ""
1230
 
1231
- #: controls/ooohboi-overlaiz.php:343
1232
  msgid "Rotation"
1233
  msgstr ""
1234
 
1235
- #: controls/ooohboi-overlaiz.php:445 controls/ooohboi-overlay-underlay.php:631
1236
- #: controls/ooohboi-overlay-underlay.php:1204 controls/ooohboi-pseudo.php:671
1237
- #: controls/ooohboi-pseudo.php:1289 controls/ooohboi-spacerat.php:494
1238
- msgid "Clip path"
1239
- msgstr ""
1240
-
1241
- #: controls/ooohboi-overlaiz.php:484
1242
  msgid "Mask"
1243
  msgstr ""
1244
 
1245
- #: controls/ooohboi-overlaiz.php:485 controls/ooohboi-spacerat.php:153
1246
- #: controls/ooohboi-spacerat.php:315
1247
  msgid ""
1248
  "NOTE: In order to see the effect you should add the Background to the Spacer "
1249
  "widget first!"
1250
  msgstr ""
1251
 
1252
- #: controls/ooohboi-overlaiz.php:503 controls/ooohboi-overlay-underlay.php:488
1253
- #: controls/ooohboi-overlay-underlay.php:1065 controls/ooohboi-pseudo.php:521
1254
- #: controls/ooohboi-pseudo.php:1143 controls/ooohboi-spacerat.php:169
1255
  msgid "Choose Image Mask"
1256
  msgstr ""
1257
 
1258
- #: controls/ooohboi-overlaiz.php:504 controls/ooohboi-overlay-underlay.php:489
1259
- #: controls/ooohboi-overlay-underlay.php:1066 controls/ooohboi-pseudo.php:522
1260
- #: controls/ooohboi-pseudo.php:1144 controls/ooohboi-spacerat.php:170
1261
  #, php-format
1262
  msgid ""
1263
  "NOTE: Image Mask should be black-and-transparent SVG file! Anything that’s "
@@ -1265,234 +1899,225 @@ msgid ""
1265
  "transparent will be completely hidden."
1266
  msgstr ""
1267
 
1268
- #: controls/ooohboi-overlaiz.php:523 controls/ooohboi-overlay-underlay.php:506
1269
- #: controls/ooohboi-overlay-underlay.php:1083 controls/ooohboi-pseudo.php:540
1270
- #: controls/ooohboi-pseudo.php:1162 controls/ooohboi-spacerat.php:187
1271
- #: controls/ooohboi-videomasq.php:71
1272
  msgid "Mask position"
1273
  msgstr ""
1274
 
1275
- #: controls/ooohboi-overlaiz.php:528 controls/ooohboi-overlay-underlay.php:511
1276
- #: controls/ooohboi-overlay-underlay.php:1088 controls/ooohboi-pseudo.php:545
1277
- #: controls/ooohboi-pseudo.php:1167 controls/ooohboi-spacerat.php:192
1278
- #: controls/ooohboi-videomasq.php:76
1279
- msgid "Center Center"
1280
- msgstr ""
1281
-
1282
- #: controls/ooohboi-overlaiz.php:529 controls/ooohboi-overlay-underlay.php:512
1283
- #: controls/ooohboi-overlay-underlay.php:1089 controls/ooohboi-pseudo.php:546
1284
- #: controls/ooohboi-pseudo.php:1168 controls/ooohboi-spacerat.php:193
1285
- #: controls/ooohboi-videomasq.php:77
1286
  msgid "Center Left"
1287
  msgstr ""
1288
 
1289
- #: controls/ooohboi-overlaiz.php:530 controls/ooohboi-overlay-underlay.php:513
1290
- #: controls/ooohboi-overlay-underlay.php:1090 controls/ooohboi-pseudo.php:547
1291
- #: controls/ooohboi-pseudo.php:1169 controls/ooohboi-spacerat.php:194
1292
- #: controls/ooohboi-videomasq.php:78
1293
  msgid "Center Right"
1294
  msgstr ""
1295
 
1296
- #: controls/ooohboi-overlaiz.php:531 controls/ooohboi-overlay-underlay.php:514
1297
- #: controls/ooohboi-overlay-underlay.php:1091 controls/ooohboi-pseudo.php:548
1298
- #: controls/ooohboi-pseudo.php:1170 controls/ooohboi-spacerat.php:195
1299
- #: controls/ooohboi-videomasq.php:79
1300
  msgid "Top Center"
1301
  msgstr ""
1302
 
1303
- #: controls/ooohboi-overlaiz.php:532 controls/ooohboi-overlay-underlay.php:515
1304
- #: controls/ooohboi-overlay-underlay.php:1092 controls/ooohboi-pseudo.php:549
1305
- #: controls/ooohboi-pseudo.php:1171 controls/ooohboi-spacerat.php:196
1306
- #: controls/ooohboi-videomasq.php:80
1307
  msgid "Top Left"
1308
  msgstr ""
1309
 
1310
- #: controls/ooohboi-overlaiz.php:533 controls/ooohboi-overlay-underlay.php:516
1311
- #: controls/ooohboi-overlay-underlay.php:1093 controls/ooohboi-pseudo.php:550
1312
- #: controls/ooohboi-pseudo.php:1172 controls/ooohboi-spacerat.php:197
1313
- #: controls/ooohboi-videomasq.php:81
1314
  msgid "Top Right"
1315
  msgstr ""
1316
 
1317
- #: controls/ooohboi-overlaiz.php:534 controls/ooohboi-overlay-underlay.php:517
1318
- #: controls/ooohboi-overlay-underlay.php:1094 controls/ooohboi-pseudo.php:551
1319
- #: controls/ooohboi-pseudo.php:1173 controls/ooohboi-spacerat.php:198
1320
- #: controls/ooohboi-videomasq.php:82
1321
  msgid "Bottom Center"
1322
  msgstr ""
1323
 
1324
- #: controls/ooohboi-overlaiz.php:535 controls/ooohboi-overlay-underlay.php:518
1325
- #: controls/ooohboi-overlay-underlay.php:1095 controls/ooohboi-pseudo.php:552
1326
- #: controls/ooohboi-pseudo.php:1174 controls/ooohboi-spacerat.php:199
1327
- #: controls/ooohboi-videomasq.php:83
1328
  msgid "Bottom Left"
1329
  msgstr ""
1330
 
1331
- #: controls/ooohboi-overlaiz.php:536 controls/ooohboi-overlay-underlay.php:519
1332
- #: controls/ooohboi-overlay-underlay.php:1096 controls/ooohboi-pseudo.php:553
1333
- #: controls/ooohboi-pseudo.php:1175 controls/ooohboi-spacerat.php:200
1334
- #: controls/ooohboi-videomasq.php:84
1335
  msgid "Bottom Right"
1336
  msgstr ""
1337
 
1338
- #: controls/ooohboi-overlaiz.php:553 controls/ooohboi-overlay-underlay.php:534
1339
- #: controls/ooohboi-overlay-underlay.php:1110 controls/ooohboi-pseudo.php:569
1340
- #: controls/ooohboi-pseudo.php:1190 controls/ooohboi-spacerat.php:215
1341
- #: controls/ooohboi-videomasq.php:99
1342
  msgid "Mask size"
1343
  msgstr ""
1344
 
1345
- #: controls/ooohboi-overlaiz.php:559 controls/ooohboi-overlay-underlay.php:540
1346
- #: controls/ooohboi-overlay-underlay.php:1116 controls/ooohboi-pseudo.php:575
1347
- #: controls/ooohboi-pseudo.php:1196 controls/ooohboi-spacerat.php:221
1348
- #: controls/ooohboi-videomasq.php:105
1349
  msgid "Cover"
1350
  msgstr ""
1351
 
1352
- #: controls/ooohboi-overlaiz.php:560 controls/ooohboi-overlay-underlay.php:541
1353
- #: controls/ooohboi-overlay-underlay.php:1117 controls/ooohboi-pseudo.php:576
1354
- #: controls/ooohboi-pseudo.php:1197 controls/ooohboi-spacerat.php:222
1355
- #: controls/ooohboi-videomasq.php:106
1356
  msgid "Contain"
1357
  msgstr ""
1358
 
1359
- #: controls/ooohboi-overlaiz.php:635 controls/ooohboi-overlay-underlay.php:606
1360
- #: controls/ooohboi-overlay-underlay.php:1180 controls/ooohboi-pseudo.php:645
1361
- #: controls/ooohboi-pseudo.php:1264 controls/ooohboi-spacerat.php:289
1362
- #: controls/ooohboi-videomasq.php:171
1363
  msgid "Mask repeat"
1364
  msgstr ""
1365
 
1366
- #: controls/ooohboi-overlaiz.php:639 controls/ooohboi-overlay-underlay.php:610
1367
- #: controls/ooohboi-overlay-underlay.php:1184 controls/ooohboi-pseudo.php:649
1368
- #: controls/ooohboi-pseudo.php:1268 controls/ooohboi-spacerat.php:293
1369
- #: controls/ooohboi-videomasq.php:175
1370
  msgid "No-repeat"
1371
  msgstr ""
1372
 
1373
- #: controls/ooohboi-overlaiz.php:640 controls/ooohboi-overlay-underlay.php:611
1374
- #: controls/ooohboi-overlay-underlay.php:1185 controls/ooohboi-pseudo.php:650
1375
- #: controls/ooohboi-pseudo.php:1269 controls/ooohboi-spacerat.php:294
1376
- #: controls/ooohboi-videomasq.php:176
1377
  msgid "Repeat"
1378
  msgstr ""
1379
 
1380
- #: controls/ooohboi-overlaiz.php:641 controls/ooohboi-overlay-underlay.php:612
1381
- #: controls/ooohboi-overlay-underlay.php:1186 controls/ooohboi-pseudo.php:651
1382
- #: controls/ooohboi-pseudo.php:1270 controls/ooohboi-spacerat.php:295
1383
- #: controls/ooohboi-videomasq.php:177
1384
  msgid "Repeat-x"
1385
  msgstr ""
1386
 
1387
- #: controls/ooohboi-overlaiz.php:642 controls/ooohboi-overlay-underlay.php:613
1388
- #: controls/ooohboi-overlay-underlay.php:1187 controls/ooohboi-pseudo.php:652
1389
- #: controls/ooohboi-pseudo.php:1271 controls/ooohboi-spacerat.php:296
1390
- #: controls/ooohboi-videomasq.php:178
1391
  msgid "Repeat-y"
1392
  msgstr ""
1393
 
1394
- #: controls/ooohboi-overlaiz.php:662 controls/ooohboi-overlay-underlay.php:653
1395
- #: controls/ooohboi-overlay-underlay.php:1226 controls/ooohboi-pseudo.php:694
1396
- #: controls/ooohboi-pseudo.php:1312
1397
  msgid "Z-Index"
1398
  msgstr ""
1399
 
1400
- #: controls/ooohboi-overlay-underlay.php:128
1401
- #: controls/ooohboi-overlay-underlay.php:724 controls/ooohboi-pseudo.php:138
1402
- #: controls/ooohboi-pseudo.php:771
 
 
 
 
1403
  msgid "Blend Mode"
1404
  msgstr ""
1405
 
1406
- #: controls/ooohboi-overlay-underlay.php:154
1407
- #: controls/ooohboi-overlay-underlay.php:750 controls/ooohboi-pseudo.php:165
1408
- #: controls/ooohboi-pseudo.php:798
1409
  msgid "Position and Size"
1410
  msgstr ""
1411
 
1412
- #: controls/ooohboi-overlay-underlay.php:270
1413
- #: controls/ooohboi-overlay-underlay.php:384
1414
- #: controls/ooohboi-overlay-underlay.php:861 controls/ooohboi-pseudo.php:289
1415
- #: controls/ooohboi-pseudo.php:411 controls/ooohboi-pseudo.php:919
1416
  msgid "Enter CSS calc value only! Like: 45% + 85px or 100% - 3em"
1417
  msgstr ""
1418
 
1419
- #: controls/ooohboi-overlay-underlay.php:326
1420
- #: controls/ooohboi-overlay-underlay.php:913 controls/ooohboi-pseudo.php:349
1421
- #: controls/ooohboi-pseudo.php:977
1422
  msgid "Calc Offset Top"
1423
  msgstr ""
1424
 
1425
- #: controls/ooohboi-overlay-underlay.php:383
1426
- #: controls/ooohboi-overlay-underlay.php:966 controls/ooohboi-pseudo.php:410
1427
- #: controls/ooohboi-pseudo.php:1036
1428
  msgid "Calc Offset Left"
1429
  msgstr ""
1430
 
1431
- #: controls/ooohboi-overlay-underlay.php:399
1432
- #: controls/ooohboi-overlay-underlay.php:979 controls/ooohboi-pseudo.php:427
1433
- #: controls/ooohboi-pseudo.php:1052
1434
- msgid "Rotate"
1435
- msgstr ""
1436
-
1437
- #: controls/ooohboi-overlay-underlay.php:472
1438
  msgid "Overlay Mask"
1439
  msgstr ""
1440
 
1441
- #: controls/ooohboi-overlay-underlay.php:674
1442
  msgid "Underlay"
1443
  msgstr ""
1444
 
1445
- #: controls/ooohboi-overlay-underlay.php:1049
1446
  msgid "Underlay Mask"
1447
  msgstr ""
1448
 
1449
- #: controls/ooohboi-overlay-underlay.php:1255
1450
  msgid "Get rid of the Horizontal scroller?"
1451
  msgstr ""
1452
 
1453
- #: controls/ooohboi-overlay-underlay.php:1256
1454
  msgid ""
1455
  "OoohBoi POOOPART may cause Horizontal Scroller to show up. This is how you "
1456
  "can remove it."
1457
  msgstr ""
1458
 
1459
- #: controls/ooohboi-overlay-underlay.php:1274
1460
  msgid "Baseline Grid"
1461
  msgstr ""
1462
 
1463
- #: controls/ooohboi-overlay-underlay.php:1275
1464
  msgid "Baseline grid helps you maintain accuracy and consistency"
1465
  msgstr ""
1466
 
1467
- #: controls/ooohboi-overlay-underlay.php:1288
1468
  msgid "Grid style"
1469
  msgstr ""
1470
 
1471
- #: controls/ooohboi-overlay-underlay.php:1292
1472
  msgid "Squares"
1473
  msgstr ""
1474
 
1475
- #: controls/ooohboi-overlay-underlay.php:1293
1476
  msgid "Vertical lines"
1477
  msgstr ""
1478
 
1479
- #: controls/ooohboi-overlay-underlay.php:1294
1480
  msgid "Horizontal lines"
1481
  msgstr ""
1482
 
1483
- #: controls/ooohboi-overlay-underlay.php:1304
1484
  msgid "Grid color"
1485
  msgstr ""
1486
 
1487
- #: controls/ooohboi-overlay-underlay.php:1315
1488
  msgid "Grid size"
1489
  msgstr ""
1490
 
1491
- #: controls/ooohboi-overlay-underlay.php:1339
1492
  msgid "Vertical Spacing"
1493
  msgstr ""
1494
 
1495
- #: controls/ooohboi-overlay-underlay.php:1363
1496
  msgid "Horizontal Spacing"
1497
  msgstr ""
1498
 
@@ -1516,37 +2141,37 @@ msgstr ""
1516
  msgid "Unstyle Prev and Next?"
1517
  msgstr ""
1518
 
1519
- #: controls/ooohboi-perspektive.php:70
1520
  msgid "Enable Perspektive?"
1521
  msgstr ""
1522
 
1523
- #: controls/ooohboi-perspektive.php:71
1524
  msgid ""
1525
  "NOTE: Perspektive interferes with z-index! The background of the element "
1526
  "with the Perspektive will not be affected by the Perspektive."
1527
  msgstr ""
1528
 
1529
- #: controls/ooohboi-perspektive.php:86
1530
  msgid "Perspective"
1531
  msgstr ""
1532
 
1533
- #: controls/ooohboi-perspektive.php:119
1534
  msgid "Perspective Origin"
1535
  msgstr ""
1536
 
1537
- #: controls/ooohboi-perspektive.php:144
1538
  msgid "Translate Z"
1539
  msgstr ""
1540
 
1541
- #: controls/ooohboi-perspektive.php:177
1542
  msgid "Rotate X"
1543
  msgstr ""
1544
 
1545
- #: controls/ooohboi-perspektive.php:201
1546
  msgid "Rotate Y"
1547
  msgstr ""
1548
 
1549
- #: controls/ooohboi-perspektive.php:226
1550
  msgid "Just in case the wrapper is \"overflow: hidden\""
1551
  msgstr ""
1552
 
@@ -1560,81 +2185,81 @@ msgid ""
1560
  "(Column) uses the fixed height."
1561
  msgstr ""
1562
 
1563
- #: controls/ooohboi-photomorph.php:63
1564
  msgid "Enable PhotoMorph"
1565
  msgstr ""
1566
 
1567
- #: controls/ooohboi-photomorph.php:64
1568
  msgid ""
1569
  "That will allow you to add the custom clip-path for both Normal and Hover "
1570
  "Image widget."
1571
  msgstr ""
1572
 
1573
- #: controls/ooohboi-photomorph.php:139
1574
  msgid "Animate Hover?"
1575
  msgstr ""
1576
 
1577
- #: controls/ooohboi-photomorph.php:140
1578
  msgid ""
1579
  "To ensure the smooth transition, be sure that the number of nodes of the "
1580
  "Normal state clip-path EQUALS the number of nodes of the Hover state!"
1581
  msgstr ""
1582
 
1583
- #: controls/ooohboi-photomorph.php:156
1584
  msgid "Animation duration"
1585
  msgstr ""
1586
 
1587
- #: controls/ooohboi-photomorph.php:183
1588
  msgid "Animation effect"
1589
  msgstr ""
1590
 
1591
- #: controls/ooohboi-photomorph.php:208
1592
  msgid "Animation delay"
1593
  msgstr ""
1594
 
1595
- #: controls/ooohboi-pseudo.php:65
1596
  msgid "Enable Pseudo?"
1597
  msgstr ""
1598
 
1599
- #: controls/ooohboi-pseudo.php:66
1600
  msgid ""
1601
  "This is how you can create and manage :before and :after pseudo elements for "
1602
  "this column"
1603
  msgstr ""
1604
 
1605
- #: controls/ooohboi-pseudo.php:84
1606
  msgid "Before"
1607
  msgstr ""
1608
 
1609
- #: controls/ooohboi-pseudo.php:504
1610
  msgid "Before Mask"
1611
  msgstr ""
1612
 
1613
- #: controls/ooohboi-pseudo.php:716
1614
  msgid "After"
1615
  msgstr ""
1616
 
1617
- #: controls/ooohboi-pseudo.php:1126
1618
  msgid "After Mask"
1619
  msgstr ""
1620
 
1621
- #: controls/ooohboi-searchcop.php:45
1622
  msgid "Search Target"
1623
  msgstr ""
1624
 
1625
- #: controls/ooohboi-searchcop.php:50
1626
  msgid "Search Posts"
1627
  msgstr ""
1628
 
1629
- #: controls/ooohboi-searchcop.php:51
1630
  msgid "Search Pages"
1631
  msgstr ""
1632
 
1633
- #: controls/ooohboi-searchcop.php:52
1634
  msgid "Search Products"
1635
  msgstr ""
1636
 
1637
- #: controls/ooohboi-searchcop.php:53
1638
  msgid "Search All"
1639
  msgstr ""
1640
 
@@ -1646,43 +2271,43 @@ msgstr ""
1646
  msgid "Creates a shadow that conforms to the shape."
1647
  msgstr ""
1648
 
1649
- #: controls/ooohboi-shadough.php:61 controls/ooohboi-spacerat.php:369
1650
  msgid "Offset X"
1651
  msgstr ""
1652
 
1653
- #: controls/ooohboi-shadough.php:92 controls/ooohboi-spacerat.php:401
1654
  msgid "Offset Y"
1655
  msgstr ""
1656
 
1657
- #: controls/ooohboi-shadough.php:153 controls/ooohboi-spacerat.php:464
1658
  msgid "Shadow Color"
1659
  msgstr ""
1660
 
1661
- #: controls/ooohboi-spacerat.php:65
1662
  msgid "Enable SpaceRat?"
1663
  msgstr ""
1664
 
1665
- #: controls/ooohboi-spacerat.php:66
1666
  msgid "Awesome gear for the pretty-much dull Spacer widget."
1667
  msgstr ""
1668
 
1669
- #: controls/ooohboi-spacerat.php:125 controls/ooohboi-teleporter.php:109
1670
  msgid "Cursor Pointer"
1671
  msgstr ""
1672
 
1673
- #: controls/ooohboi-spacerat.php:126 controls/ooohboi-teleporter.php:110
1674
  msgid "Keep the default cursor or show pointer on Hover?"
1675
  msgstr ""
1676
 
1677
- #: controls/ooohboi-spacerat.php:152
1678
  msgid "SpaceRat Mask"
1679
  msgstr ""
1680
 
1681
- #: controls/ooohboi-spacerat.php:337
1682
  msgid "Add shadow?"
1683
  msgstr ""
1684
 
1685
- #: controls/ooohboi-spacerat.php:352
1686
  msgid "Define Shadow"
1687
  msgstr ""
1688
 
@@ -1750,11 +2375,11 @@ msgstr ""
1750
  msgid "Strongly advised: HIDDEN."
1751
  msgstr ""
1752
 
1753
- #: controls/ooohboi-videomasq.php:53
1754
  msgid "Choose Video Mask"
1755
  msgstr ""
1756
 
1757
- #: controls/ooohboi-videomasq.php:54
1758
  #, php-format
1759
  msgid ""
1760
  "NOTE: The video mask should be black-and-transparent SVG file! Anything "
@@ -1762,37 +2387,37 @@ msgid ""
1762
  "that’s transparent will be completely hidden."
1763
  msgstr ""
1764
 
1765
- #: controls/ooohboi-widget-stalker.php:64
1766
  msgid ""
1767
- "NOTE: Position of this widget is controlled by the parent Column. See the "
1768
- "Layout tab, Layout panel > Breaking Bad, Widget Stalker settings."
1769
  msgstr ""
1770
 
1771
- #: controls/ooohboi-widget-stalker.php:134
1772
  msgid "Widget width"
1773
  msgstr ""
1774
 
1775
- #: controls/ooohboi-widget-stalker.php:189
1776
  msgid "Align self"
1777
  msgstr ""
1778
 
1779
- #: controls/ooohboi-widget-stalker.php:190
1780
  msgid "Align this widget vertically"
1781
  msgstr ""
1782
 
1783
- #: controls/ooohboi-widget-stalker.php:211
1784
  msgid "Widget Order"
1785
  msgstr ""
1786
 
1787
- #: inc/common-functions.php:34
1788
  msgid "What's New?"
1789
  msgstr ""
1790
 
1791
- #: inc/common-functions.php:47
1792
  msgid "Manage Extensions"
1793
  msgstr ""
1794
 
1795
- #: inc/common-functions.php:53
1796
  #, php-format
1797
  msgid ""
1798
  "%sThe following extensions are currently available with Steroids for "
@@ -1800,130 +2425,149 @@ msgid ""
1800
  "or OFF.%s"
1801
  msgstr ""
1802
 
1803
- #: inc/common-functions.php:60
1804
  #, php-format
1805
  msgid ""
1806
  "%sAllows you to change the writing mode of the Heading and Text Editor "
1807
  "widgets%s"
1808
  msgstr ""
1809
 
1810
- #: inc/common-functions.php:67
1811
  #, php-format
1812
  msgid "%sAdd an overlay or underlay ghost-element to any Elementor Widget%s"
1813
  msgstr ""
1814
 
1815
- #: inc/common-functions.php:74
1816
  #, php-format
1817
  msgid ""
1818
- "%sAn awesome set of options for the Background Overlay element manipulation%s"
 
1819
  msgstr ""
1820
 
1821
- #: inc/common-functions.php:81
1822
  #, php-format
1823
  msgid "%sIt allows you to style up the posts pagination in Elementor%s"
1824
  msgstr ""
1825
 
1826
- #: inc/common-functions.php:88
1827
  #, php-format
1828
- msgid "%sA must to have extension for the Section and Columns%s"
 
 
1829
  msgstr ""
1830
 
1831
- #: inc/common-functions.php:95
1832
  #, php-format
1833
  msgid "%sThe content slider made out of Section and Columns (Swiper)%s"
1834
  msgstr ""
1835
 
1836
- #: inc/common-functions.php:102
1837
  #, php-format
1838
- msgid "%sMake the Image widget full-height of the container%s"
 
 
1839
  msgstr ""
1840
 
1841
- #: inc/common-functions.php:109
1842
  #, php-format
1843
- msgid "%sThe Column hover controls for an exceptional effects%s"
 
 
1844
  msgstr ""
1845
 
1846
- #: inc/common-functions.php:116
1847
  #, php-format
1848
  msgid "%sDecide what to search for; posts only, pages only or everything%s"
1849
  msgstr ""
1850
 
1851
- #: inc/common-functions.php:123
1852
  #, php-format
1853
  msgid ""
1854
  "%sAdd the SVG mask to the Section video background and let the video play "
1855
  "inside any shape%s"
1856
  msgstr ""
1857
 
1858
- #: inc/common-functions.php:130
1859
  #, php-format
1860
  msgid "%sDesign awesome buttons in Elementor%s"
1861
  msgstr ""
1862
 
1863
- #: inc/common-functions.php:137
1864
  #, php-format
1865
  msgid "%sA small set of options that allow you to move widgets in 3D space%s"
1866
  msgstr ""
1867
 
1868
- #: inc/common-functions.php:144
1869
  #, php-format
1870
  msgid "%sCreate the shadow that conforms the shape%s"
1871
  msgstr ""
1872
 
1873
- #: inc/common-functions.php:151
1874
  #, php-format
1875
  msgid ""
1876
  "%sAllows you to add the clip-path to the Image widget for Normal and Hover "
1877
  "state%s"
1878
  msgstr ""
1879
 
1880
- #: inc/common-functions.php:158
1881
  #, php-format
1882
  msgid "%sAllows you to style up the post comments."
1883
  msgstr ""
1884
 
1885
- #: inc/common-functions.php:165
1886
  #, php-format
1887
  msgid "%sAdds new shine to the Spacer widget."
1888
  msgstr ""
1889
 
1890
- #: inc/common-functions.php:172
1891
  #, php-format
1892
  msgid "%sImage Box widget extra controls"
1893
  msgstr ""
1894
 
1895
- #: inc/common-functions.php:179
1896
  #, php-format
1897
  msgid "%sIcon Box widget extra controls"
1898
  msgstr ""
1899
 
1900
- #: inc/common-functions.php:186
1901
  #, php-format
1902
  msgid "%sAnimate widgets on columns mouse-over event"
1903
  msgstr ""
1904
 
1905
- #: inc/common-functions.php:193
1906
  #, php-format
1907
  msgid ""
1908
  "%sAllows you to additionaly style Image Carousel and Media Carousel controls"
1909
  "%s"
1910
  msgstr ""
1911
 
1912
- #: inc/common-functions.php:200
1913
  #, php-format
1914
  msgid "%sStack widgets like flex elements%s"
1915
  msgstr ""
1916
 
1917
- #: inc/common-functions.php:207
1918
  #, php-format
1919
  msgid "%sTake control over the Column's pseudo elements%s"
1920
  msgstr ""
1921
 
1922
- #: inc/common-functions.php:215
 
 
 
 
 
 
 
 
 
 
 
 
1923
  msgid "Manage JS Libraries"
1924
  msgstr ""
1925
 
1926
- #: inc/common-functions.php:221
1927
  #, php-format
1928
  msgid ""
1929
  "%sThe following libraries are currently available with Steroids for "
@@ -1931,84 +2575,131 @@ msgid ""
1931
  "OFF.%s"
1932
  msgstr ""
1933
 
1934
- #: inc/common-functions.php:227
1935
  msgid "LOCOMOTIVE SCROLL"
1936
  msgstr ""
1937
 
1938
- #: inc/common-functions.php:228
1939
  #, php-format
1940
  msgid ""
1941
  "%1$sDetection of elements in viewport and smooth scrolling with parallax.%3$s"
1942
  "%4$sSOURCE%5$s%2$s"
1943
  msgstr ""
1944
 
1945
- #: inc/common-functions.php:239
1946
  msgid "Enable for Tablets"
1947
  msgstr ""
1948
 
1949
- #: inc/common-functions.php:240
1950
  msgid "Enable for Mobiles"
1951
  msgstr ""
1952
 
1953
- #: inc/common-functions.php:249
1954
  msgid "Multiplier"
1955
  msgstr ""
1956
 
1957
- #: inc/common-functions.php:250
1958
  #, php-format
1959
  msgid "%sBoost/reduce scrolling speed. 1 is the default.%s"
1960
  msgstr ""
1961
 
1962
- #: inc/common-functions.php:259
1963
  msgid "Refresh on resize?"
1964
  msgstr ""
1965
 
1966
- #: inc/common-functions.php:260
1967
  msgid ""
1968
  "Things get messy on resize. That will do the silent page refresh upon the "
1969
  "window resize/orientationchange."
1970
  msgstr ""
1971
 
1972
- #: inc/common-functions.php:271
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1973
  #, php-format
1974
  msgid ""
1975
  "%1$sGreenSock's GSAP JavaScript animation library (including Draggable).%3$s"
1976
  "%4$sSOURCE%5$s%2$s"
1977
  msgstr ""
1978
 
1979
- #: inc/common-functions.php:278
1980
  #, php-format
1981
  msgid "%1$sLet your page react to scroll changes.%3$s%4$sSOURCE%5$s%2$s"
1982
  msgstr ""
1983
 
1984
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:708
1985
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:731
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1986
  msgid "Settings"
1987
  msgstr ""
1988
 
1989
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:794
1990
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:798
1991
  msgid "Plugin Options"
1992
  msgstr ""
1993
 
1994
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1498
1995
  msgid "ERROR:"
1996
  msgstr ""
1997
 
1998
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1499
1999
  msgid "This field class is not available!"
2000
  msgstr ""
2001
 
2002
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1571
2003
  msgid "Saving..."
2004
  msgstr ""
2005
 
2006
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1571
2007
  msgid "Saved Successfully."
2008
  msgstr ""
2009
 
2010
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1594
2011
- #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1609
2012
  msgid "Save Settings"
2013
  msgstr ""
2014
 
@@ -2126,6 +2817,19 @@ msgstr ""
2126
  msgid "Add Video"
2127
  msgstr ""
2128
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2129
  #: inc/exopite-simple-options/assets/editors/ace/worker-coffee.js:1
2130
  msgid "arguments"
2131
  msgstr ""
1
  #, fuzzy
2
  msgid ""
3
  msgstr ""
 
4
  "Project-Id-Version: OoohBoi Steroids for Elementor\n"
5
+ "POT-Creation-Date: 2022-05-02 17:02+0200\n"
6
+ "PO-Revision-Date: 2022-05-02 17:02+0200\n"
7
  "Last-Translator: \n"
8
  "Language-Team: \n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
13
+ "X-Generator: Poedit 3.0.1\n"
14
  "X-Poedit-Basepath: ..\n"
15
  "X-Poedit-Flags-xgettext: --add-comments=translators:\n"
16
  "X-Poedit-WPHeader: ooohboi-steroids.php\n"
33
 
34
  #: controls/ooohboi-breaking-bad.php:93 controls/ooohboi-breaking-bad.php:175
35
  #: controls/ooohboi-breaking-bad.php:482 controls/ooohboi-breaking-bad.php:557
36
+ #: controls/ooohboi-bullet.php:51 controls/ooohboi-butter-button.php:102
37
+ #: controls/ooohboi-commentz.php:101 controls/ooohboi-commentz.php:1138
38
+ #: controls/ooohboi-container-extras.php:98 controls/ooohboi-glider.php:119
39
+ #: controls/ooohboi-glider.php:133 controls/ooohboi-glider.php:186
40
+ #: controls/ooohboi-glider.php:419 controls/ooohboi-glider.php:579
41
+ #: controls/ooohboi-glider.php:660 controls/ooohboi-glider.php:681
42
+ #: controls/ooohboi-glider.php:703 controls/ooohboi-glider.php:743
43
+ #: controls/ooohboi-glider.php:778 controls/ooohboi-glider.php:796
44
+ #: controls/ooohboi-glider.php:815 controls/ooohboi-glider.php:834
45
+ #: controls/ooohboi-harakiri.php:128 controls/ooohboi-harakiri.php:271
46
+ #: controls/ooohboi-hover-animator.php:108
47
+ #: controls/ooohboi-hover-animator.php:182 controls/ooohboi-icobox.php:96
48
+ #: controls/ooohboi-icobox.php:112 controls/ooohboi-icobox.php:247
49
+ #: controls/ooohboi-imbox.php:97 controls/ooohboi-imbox.php:114
50
+ #: controls/ooohboi-imbox.php:410 controls/ooohboi-oh-animator.php:93
51
+ #: controls/ooohboi-oh-animator.php:124 controls/ooohboi-oh-animator.php:156
52
+ #: controls/ooohboi-oh-animator.php:173 controls/ooohboi-oh-animator.php:208
53
+ #: controls/ooohboi-oh-animator.php:228 controls/ooohboi-oh-animator.php:245
54
+ #: controls/ooohboi-oh-animator.php:261 controls/ooohboi-oh-animator.php:278
55
+ #: controls/ooohboi-overlaiz.php:64 controls/ooohboi-overlay-underlay.php:105
56
+ #: controls/ooohboi-overlay-underlay.php:1398
57
+ #: controls/ooohboi-overlay-underlay.php:1417 controls/ooohboi-paginini.php:220
58
+ #: controls/ooohboi-perspektive.php:105 controls/ooohboi-photomorph.php:97
59
+ #: controls/ooohboi-photomorph.php:173 controls/ooohboi-pseudo.php:115
60
+ #: controls/ooohboi-searchcop.php:79 controls/ooohboi-shadough.php:50
61
+ #: controls/ooohboi-spacerat.php:101 controls/ooohboi-spacerat.php:378
62
+ #: controls/ooohboi-widget-stalker.php:99
63
  #: inc/exopite-simple-options/fields/upload.php:131
64
  msgid "Yes"
65
  msgstr ""
66
 
67
  #: controls/ooohboi-breaking-bad.php:94 controls/ooohboi-breaking-bad.php:176
68
  #: controls/ooohboi-breaking-bad.php:483 controls/ooohboi-breaking-bad.php:558
69
+ #: controls/ooohboi-bullet.php:52 controls/ooohboi-butter-button.php:103
70
+ #: controls/ooohboi-commentz.php:102 controls/ooohboi-commentz.php:1139
71
+ #: controls/ooohboi-container-extras.php:99 controls/ooohboi-glider.php:120
72
+ #: controls/ooohboi-glider.php:134 controls/ooohboi-glider.php:187
73
+ #: controls/ooohboi-glider.php:420 controls/ooohboi-glider.php:580
74
+ #: controls/ooohboi-glider.php:661 controls/ooohboi-glider.php:682
75
+ #: controls/ooohboi-glider.php:704 controls/ooohboi-glider.php:744
76
+ #: controls/ooohboi-glider.php:779 controls/ooohboi-glider.php:797
77
+ #: controls/ooohboi-glider.php:816 controls/ooohboi-glider.php:835
78
+ #: controls/ooohboi-harakiri.php:129 controls/ooohboi-harakiri.php:272
79
+ #: controls/ooohboi-hover-animator.php:109
80
+ #: controls/ooohboi-hover-animator.php:183 controls/ooohboi-icobox.php:97
81
+ #: controls/ooohboi-icobox.php:113 controls/ooohboi-icobox.php:248
82
+ #: controls/ooohboi-imbox.php:98 controls/ooohboi-imbox.php:115
83
+ #: controls/ooohboi-imbox.php:411 controls/ooohboi-oh-animator.php:94
84
+ #: controls/ooohboi-oh-animator.php:125 controls/ooohboi-oh-animator.php:157
85
+ #: controls/ooohboi-oh-animator.php:174 controls/ooohboi-oh-animator.php:209
86
+ #: controls/ooohboi-oh-animator.php:229 controls/ooohboi-oh-animator.php:246
87
+ #: controls/ooohboi-oh-animator.php:262 controls/ooohboi-oh-animator.php:279
88
+ #: controls/ooohboi-overlaiz.php:65 controls/ooohboi-overlay-underlay.php:106
89
+ #: controls/ooohboi-overlay-underlay.php:1399
90
+ #: controls/ooohboi-overlay-underlay.php:1418 controls/ooohboi-paginini.php:221
91
+ #: controls/ooohboi-perspektive.php:106 controls/ooohboi-photomorph.php:98
92
+ #: controls/ooohboi-photomorph.php:174 controls/ooohboi-pseudo.php:116
93
+ #: controls/ooohboi-searchcop.php:80 controls/ooohboi-shadough.php:51
94
+ #: controls/ooohboi-spacerat.php:102 controls/ooohboi-spacerat.php:379
95
+ #: controls/ooohboi-widget-stalker.php:100
96
  #: inc/exopite-simple-options/fields/upload.php:129
97
  msgid "No"
98
  msgstr ""
110
  #: controls/ooohboi-breaking-bad.php:109 controls/ooohboi-breaking-bad.php:155
111
  #: controls/ooohboi-breaking-bad.php:315 controls/ooohboi-breaking-bad.php:338
112
  #: controls/ooohboi-breaking-bad.php:467 controls/ooohboi-breaking-bad.php:592
113
+ #: controls/ooohboi-breaking-bad.php:616 controls/ooohboi-commentz.php:166
114
+ #: controls/ooohboi-commentz.php:707 controls/ooohboi-oh-animator.php:351
115
+ #: controls/ooohboi-oh-animator.php:401 controls/ooohboi-oh-animator.php:463
116
+ #: controls/ooohboi-oh-animator.php:512 controls/ooohboi-widget-stalker.php:228
117
  msgid "Center"
118
  msgstr ""
119
 
121
  #: controls/ooohboi-breaking-bad.php:316 controls/ooohboi-breaking-bad.php:339
122
  #: controls/ooohboi-breaking-bad.php:468 controls/ooohboi-breaking-bad.php:593
123
  #: controls/ooohboi-breaking-bad.php:617
124
+ #: controls/ooohboi-widget-stalker.php:229
125
  msgid "End"
126
  msgstr ""
127
 
163
  "avoid content overlaps."
164
  msgstr ""
165
 
166
+ #: controls/ooohboi-breaking-bad.php:192
167
+ #: controls/ooohboi-widget-stalker.php:111
168
  msgid "Size Method"
169
  msgstr ""
170
 
171
+ #: controls/ooohboi-breaking-bad.php:193
172
+ #: controls/ooohboi-widget-stalker.php:112
173
  msgid "Use Flex or Units?"
174
  msgstr ""
175
 
176
  #: controls/ooohboi-breaking-bad.php:198 controls/ooohboi-breaking-bad.php:210
177
+ #: controls/ooohboi-widget-stalker.php:116
178
+ #: controls/ooohboi-widget-stalker.php:128
179
  msgid "Flex"
180
  msgstr ""
181
 
182
+ #: controls/ooohboi-breaking-bad.php:199
183
+ #: controls/ooohboi-widget-stalker.php:117
184
  msgid "Units"
185
  msgstr ""
186
 
187
+ #: controls/ooohboi-breaking-bad.php:249
188
+ #: controls/ooohboi-container-extras.php:110 controls/ooohboi-overlaiz.php:78
189
+ #: controls/ooohboi-overlaiz.php:588 controls/ooohboi-overlay-underlay.php:218
190
+ #: controls/ooohboi-overlay-underlay.php:632
191
+ #: controls/ooohboi-overlay-underlay.php:858
192
+ #: controls/ooohboi-overlay-underlay.php:1262 controls/ooohboi-pseudo.php:229
193
+ #: controls/ooohboi-pseudo.php:661 controls/ooohboi-pseudo.php:887
194
+ #: controls/ooohboi-pseudo.php:1306 controls/ooohboi-spacerat.php:273
195
+ #: controls/ooohboi-videomasq.php:123
196
  msgid "Width"
197
  msgstr ""
198
 
199
  #: controls/ooohboi-breaking-bad.php:255 controls/ooohboi-breaking-bad.php:294
200
  #: controls/ooohboi-breaking-bad.php:406 controls/ooohboi-teleporter.php:137
201
  #: controls/ooohboi-teleporter.php:155 controls/ooohboi-teleporter.php:186
202
+ #: controls/ooohboi-teleporter.php:203 controls/ooohboi-widget-stalker.php:170
203
+ #: controls/ooohboi-widget-stalker.php:208
204
  msgid ""
205
  "You can enter any acceptable CSS value, for example: 50em, 300px, 100%, "
206
  "calc(100% - 300px)."
207
  msgstr ""
208
 
209
  #: controls/ooohboi-breaking-bad.php:289 controls/ooohboi-breaking-bad.php:402
210
+ #: controls/ooohboi-widget-stalker.php:204
211
  msgid "Max Width"
212
  msgstr ""
213
 
221
  "direction is Row or Inherit)."
222
  msgstr ""
223
 
224
+ #: controls/ooohboi-breaking-bad.php:313 controls/ooohboi-overlaiz.php:568
225
+ #: controls/ooohboi-overlay-underlay.php:612
226
+ #: controls/ooohboi-overlay-underlay.php:1243 controls/ooohboi-pseudo.php:641
227
+ #: controls/ooohboi-pseudo.php:1287 controls/ooohboi-spacerat.php:254
228
+ #: controls/ooohboi-videomasq.php:105 controls/ooohboi-widget-stalker.php:226
229
  msgid "Auto"
230
  msgstr ""
231
 
232
  #: controls/ooohboi-breaking-bad.php:314
233
+ #: controls/ooohboi-widget-stalker.php:227
234
  msgid "Baseline"
235
  msgstr ""
236
 
253
  msgstr ""
254
 
255
  #: controls/ooohboi-breaking-bad.php:355 controls/ooohboi-breaking-bad.php:444
256
+ #: controls/ooohboi-widget-stalker.php:245
257
  #, php-format
258
  msgid "More info at %sMozilla%s."
259
  msgstr ""
269
  "Breaking Bad for this Column parent SECTION!"
270
  msgstr ""
271
 
272
+ #: controls/ooohboi-breaking-bad.php:416 controls/ooohboi-harakiri.php:170
273
  msgid "Custom Height"
274
  msgstr ""
275
 
290
  msgstr ""
291
 
292
  #: controls/ooohboi-breaking-bad.php:499
293
+ msgid "Column Link"
 
294
  msgstr ""
295
 
296
+ #: controls/ooohboi-breaking-bad.php:504 controls/ooohboi-oh-animator.php:349
297
+ #: controls/ooohboi-oh-animator.php:399 controls/ooohboi-oh-animator.php:461
298
+ #: controls/ooohboi-oh-animator.php:510 controls/ooohboi-oh-animator.php:606
299
+ #: controls/ooohboi-oh-animator.php:631 controls/ooohboi-oh-animator.php:656
300
+ #: controls/ooohboi-oh-animator.php:681 controls/ooohboi-oh-animator.php:768
301
+ #: controls/ooohboi-oh-animator.php:1054 controls/ooohboi-oh-animator.php:1171
302
+ #: controls/ooohboi-spacerat.php:126 controls/ooohboi-teleporter.php:78
303
  msgid "None"
304
  msgstr ""
305
 
306
+ #: controls/ooohboi-breaking-bad.php:505 controls/ooohboi-spacerat.php:127
307
  #: controls/ooohboi-teleporter.php:79
308
  msgid "Custom URL"
309
  msgstr ""
310
 
311
+ #: controls/ooohboi-breaking-bad.php:516 controls/ooohboi-spacerat.php:122
312
+ #: controls/ooohboi-spacerat.php:139 controls/ooohboi-teleporter.php:73
313
  #: controls/ooohboi-teleporter.php:90
314
  msgid "Link"
315
  msgstr ""
316
 
317
+ #: controls/ooohboi-breaking-bad.php:523 controls/ooohboi-spacerat.php:145
318
  #: controls/ooohboi-teleporter.php:97
319
  msgid "https://your-link.com"
320
  msgstr ""
323
  msgid "Widget Stalker"
324
  msgstr ""
325
 
326
+ #: controls/ooohboi-breaking-bad.php:553 controls/ooohboi-widget-stalker.php:95
327
  msgid "Enable Widget Stalker?"
328
  msgstr ""
329
 
330
  #: controls/ooohboi-breaking-bad.php:554
331
  msgid ""
332
  "NOTE: It changes the default alignment of widgets inside this column - "
333
+ "including the Inner Section widget."
334
  msgstr ""
335
 
336
  #: controls/ooohboi-breaking-bad.php:568
341
  msgid "Align Widgets"
342
  msgstr ""
343
 
344
+ #: controls/ooohboi-bullet.php:47
345
+ #, php-format
346
+ msgid "Move bullet to top%sNEW!%s"
347
  msgstr ""
348
 
349
+ #: controls/ooohboi-bullet.php:48
350
+ msgid "NOTE: Takes effect with more than just one line of text!"
351
  msgstr ""
352
 
353
+ #: controls/ooohboi-bullet.php:63
354
+ msgid "Margin Top"
355
+ msgstr ""
356
+
357
+ #: controls/ooohboi-butter-button.php:99 controls/ooohboi-searchcop.php:76
358
+ msgid "Enable Butter Buttons?"
359
+ msgstr ""
360
+
361
+ #: controls/ooohboi-butter-button.php:114 controls/ooohboi-icobox.php:122
362
  msgid "Icon Size"
363
  msgstr ""
364
 
365
+ #: controls/ooohboi-butter-button.php:115
366
  msgid "Be sure the icon is selected in the Content tab!"
367
  msgstr ""
368
 
369
+ #: controls/ooohboi-butter-button.php:149
370
  msgid "Transition Duration"
371
  msgstr ""
372
 
373
+ #: controls/ooohboi-butter-button.php:175 controls/ooohboi-commentz.php:183
374
+ #: controls/ooohboi-commentz.php:792 controls/ooohboi-commentz.php:1031
375
+ #: controls/ooohboi-glider.php:333 controls/ooohboi-kontrolz.php:107
376
  #: controls/ooohboi-paginini.php:59
377
  msgid "Padding"
378
  msgstr ""
379
 
380
+ #: controls/ooohboi-butter-button.php:195 controls/ooohboi-harakiri.php:111
381
+ #: controls/ooohboi-overlay-underlay.php:177
382
+ #: controls/ooohboi-overlay-underlay.php:817
383
+ #: controls/ooohboi-photomorph.php:112 controls/ooohboi-pseudo.php:187
384
+ #: controls/ooohboi-pseudo.php:846 controls/ooohboi-teleporter.php:129
385
+ msgid "Normal"
386
  msgstr ""
387
 
388
+ #: controls/ooohboi-butter-button.php:206
389
+ #: controls/ooohboi-butter-button.php:335
390
  msgid "Text Color"
391
  msgstr ""
392
 
393
+ #: controls/ooohboi-butter-button.php:226
394
+ #: controls/ooohboi-butter-button.php:356
395
  msgctxt "Butter Button Text Shadow Control"
396
  msgid "Text Shadow"
397
  msgstr ""
398
 
399
+ #: controls/ooohboi-butter-button.php:238
400
+ #: controls/ooohboi-butter-button.php:368
401
+ msgid "The Background Settings"
402
+ msgstr ""
403
+
404
+ #: controls/ooohboi-butter-button.php:240
405
+ #: controls/ooohboi-butter-button.php:370
406
+ msgid ""
407
+ "This won't make any effect unless you set the original NORMAL and HOVER "
408
+ "background colors to transparent!"
409
+ msgstr ""
410
+
411
+ #: controls/ooohboi-butter-button.php:267
412
+ #: controls/ooohboi-butter-button.php:398 controls/ooohboi-commentz.php:285
413
+ #: controls/ooohboi-commentz.php:466 controls/ooohboi-commentz.php:988
414
+ #: controls/ooohboi-imbox.php:209 controls/ooohboi-imbox.php:223
415
+ #: controls/ooohboi-imbox.php:355 controls/ooohboi-imbox.php:369
416
+ #: controls/ooohboi-overlaiz.php:371 controls/ooohboi-overlaiz.php:390
417
+ #: controls/ooohboi-overlay-underlay.php:491
418
+ #: controls/ooohboi-overlay-underlay.php:509
419
+ #: controls/ooohboi-overlay-underlay.php:1123
420
+ #: controls/ooohboi-overlay-underlay.php:1141 controls/ooohboi-paginini.php:146
421
+ #: controls/ooohboi-paginini.php:195 controls/ooohboi-pseudo.php:519
422
+ #: controls/ooohboi-pseudo.php:537 controls/ooohboi-pseudo.php:1166
423
+ #: controls/ooohboi-pseudo.php:1184
424
  msgid "Border"
425
  msgstr ""
426
 
427
+ #: controls/ooohboi-butter-button.php:280
428
+ #: controls/ooohboi-butter-button.php:411 controls/ooohboi-commentz.php:296
429
+ #: controls/ooohboi-commentz.php:478 controls/ooohboi-commentz.php:869
430
+ #: controls/ooohboi-commentz.php:999 controls/ooohboi-glider.php:289
431
+ #: controls/ooohboi-glider.php:536 controls/ooohboi-imbox.php:231
432
+ #: controls/ooohboi-imbox.php:377 controls/ooohboi-kontrolz.php:95
433
+ #: controls/ooohboi-kontrolz.php:207 controls/ooohboi-overlaiz.php:402
434
+ #: controls/ooohboi-overlay-underlay.php:520
435
+ #: controls/ooohboi-overlay-underlay.php:1153 controls/ooohboi-paginini.php:154
436
+ #: controls/ooohboi-paginini.php:203 controls/ooohboi-pseudo.php:549
437
+ #: controls/ooohboi-pseudo.php:1196
438
  msgid "Border Radius"
439
  msgstr ""
440
 
441
+ #: controls/ooohboi-butter-button.php:298
442
+ #: controls/ooohboi-butter-button.php:429 controls/ooohboi-icobox.php:55
443
+ #: controls/ooohboi-imbox.php:56 controls/ooohboi-imbox.php:333
444
+ #: controls/ooohboi-overlaiz.php:427
445
  msgid "Box Shadow"
446
  msgstr ""
447
 
448
+ #: controls/ooohboi-butter-button.php:324 controls/ooohboi-photomorph.php:142
449
  #: controls/ooohboi-teleporter.php:174
450
  msgid "Hover"
451
  msgstr ""
452
 
453
+ #: controls/ooohboi-butter-button.php:384
454
+ msgid ""
455
+ "NOTE: this won't make any effect unless you set the original HOVER "
456
+ "background color to transparent!"
457
+ msgstr ""
458
+
459
+ #: controls/ooohboi-commentz.php:98
460
  msgid "Enable Commentz"
461
  msgstr ""
462
 
463
+ #: controls/ooohboi-commentz.php:99
464
  msgid "That will allow you to style up the post comments."
465
  msgstr ""
466
 
467
+ #: controls/ooohboi-commentz.php:115
468
  msgid "Heading"
469
  msgstr ""
470
 
471
+ #: controls/ooohboi-commentz.php:128
472
  msgid "Heading style"
473
  msgstr ""
474
 
475
+ #: controls/ooohboi-commentz.php:144 controls/ooohboi-commentz.php:550
476
+ #: controls/ooohboi-commentz.php:626 controls/ooohboi-commentz.php:932
477
+ #: controls/ooohboi-harakiri.php:243 controls/ooohboi-oh-animator.php:772
478
  msgid "Color"
479
  msgstr ""
480
 
481
+ #: controls/ooohboi-commentz.php:161
482
  msgid "Text alignment"
483
  msgstr ""
484
 
485
+ #: controls/ooohboi-commentz.php:165 controls/ooohboi-commentz.php:706
486
  msgid "Left"
487
  msgstr ""
488
 
489
+ #: controls/ooohboi-commentz.php:167 controls/ooohboi-commentz.php:708
490
  msgid "Right"
491
  msgstr ""
492
 
493
+ #: controls/ooohboi-commentz.php:203 controls/ooohboi-commentz.php:642
494
+ #: controls/ooohboi-commentz.php:809 controls/ooohboi-commentz.php:948
495
+ #: controls/ooohboi-commentz.php:1051 controls/ooohboi-commentz.php:1115
496
+ #: controls/ooohboi-oh-animator.php:300 controls/ooohboi-paginini.php:75
497
  msgid "Margin"
498
  msgstr ""
499
 
500
+ #: controls/ooohboi-commentz.php:237
501
  msgid "Comment list style"
502
  msgstr ""
503
 
504
+ #: controls/ooohboi-commentz.php:253
505
  msgid "Comment body padding"
506
  msgstr ""
507
 
508
+ #: controls/ooohboi-commentz.php:269
509
  msgid "Comment body margin"
510
  msgstr ""
511
 
512
+ #: controls/ooohboi-commentz.php:312 controls/ooohboi-commentz.php:1015
513
+ #: controls/ooohboi-oh-animator.php:773
514
  msgid "Background color"
515
  msgstr ""
516
 
517
+ #: controls/ooohboi-commentz.php:328
518
  msgid "Background color replies"
519
  msgstr ""
520
 
521
+ #: controls/ooohboi-commentz.php:345
522
  msgid "Child comments indent"
523
  msgstr ""
524
 
525
+ #: controls/ooohboi-commentz.php:378
526
  msgid "Gravatar"
527
  msgstr ""
528
 
529
+ #: controls/ooohboi-commentz.php:382
530
  msgid "Hide"
531
  msgstr ""
532
 
533
+ #: controls/ooohboi-commentz.php:383
534
  msgid "Show"
535
  msgstr ""
536
 
537
+ #: controls/ooohboi-commentz.php:399
538
  msgid "Gravatar style"
539
  msgstr ""
540
 
541
+ #: controls/ooohboi-commentz.php:416 controls/ooohboi-glider.php:509
542
  msgid "Size"
543
  msgstr ""
544
 
545
+ #: controls/ooohboi-commentz.php:448
546
  msgid "Position"
547
  msgstr ""
548
 
549
+ #: controls/ooohboi-commentz.php:510
550
  msgid "Meta-data User"
551
  msgstr ""
552
 
553
+ #: controls/ooohboi-commentz.php:522
554
  msgid "Meta-data Time"
555
  msgstr ""
556
 
557
+ #: controls/ooohboi-commentz.php:535
558
  msgid "Meta-data style"
559
  msgstr ""
560
 
561
+ #: controls/ooohboi-commentz.php:566
562
  msgid "Outer Margin"
563
  msgstr ""
564
 
565
+ #: controls/ooohboi-commentz.php:597
566
  msgid "Comment text"
567
  msgstr ""
568
 
569
+ #: controls/ooohboi-commentz.php:610
570
  msgid "Comment text style"
571
  msgstr ""
572
 
573
+ #: controls/ooohboi-commentz.php:673
574
  msgid "Reply button"
575
  msgstr ""
576
 
577
+ #: controls/ooohboi-commentz.php:686
578
  msgid "Reply button style"
579
  msgstr ""
580
 
581
+ #: controls/ooohboi-commentz.php:702
582
  msgid "Align button"
583
  msgstr ""
584
 
585
+ #: controls/ooohboi-commentz.php:724
586
  msgid "Text color normal"
587
  msgstr ""
588
 
589
+ #: controls/ooohboi-commentz.php:740
590
  msgid "Text color hover"
591
  msgstr ""
592
 
593
+ #: controls/ooohboi-commentz.php:757
594
  msgid "Background color normal"
595
  msgstr ""
596
 
597
+ #: controls/ooohboi-commentz.php:775
598
  msgid "Background color hover"
599
  msgstr ""
600
 
601
+ #: controls/ooohboi-commentz.php:826
602
  msgid "Border color normal"
603
  msgstr ""
604
 
605
+ #: controls/ooohboi-commentz.php:840
606
  msgid "Border color hover"
607
  msgstr ""
608
 
609
+ #: controls/ooohboi-commentz.php:854
610
  msgid "Border Width"
611
  msgstr ""
612
 
613
+ #: controls/ooohboi-commentz.php:902
614
  msgid "Comment form heading"
615
  msgstr ""
616
 
617
+ #: controls/ooohboi-commentz.php:916
618
  msgid "Comment form heading style"
619
  msgstr ""
620
 
621
+ #: controls/ooohboi-commentz.php:972
622
  msgid "Comment form style"
623
  msgstr ""
624
 
625
+ #: controls/ooohboi-commentz.php:1086
626
  msgid "Comments Nav"
627
  msgstr ""
628
 
629
+ #: controls/ooohboi-commentz.php:1099
630
  msgid "Comments Nav style"
631
  msgstr ""
632
 
633
+ #: controls/ooohboi-commentz.php:1134
634
  msgid "Hide the Website input field?"
635
  msgstr ""
636
 
637
+ #: controls/ooohboi-commentz.php:1135
638
  msgid ""
639
  "If you make it hidden, be sure it's not mandatory otherwise the comment can "
640
  "not be posted!"
641
  msgstr ""
642
 
643
+ #: controls/ooohboi-container-extras.php:94
644
+ msgid "Enable Container Extras?"
645
+ msgstr ""
646
+
647
+ #: controls/ooohboi-container-extras.php:95
648
+ msgid "Get some more flexibility on Containers width"
649
+ msgstr ""
650
+
651
+ #: controls/ooohboi-container-extras.php:115
652
+ msgid ""
653
+ "You can enter any acceptable CSS value ( 50em, 25vw, 42.1% ) or the "
654
+ "expression ( 100% - 300px, 55vw - 150px, 15rem - 20px ). NO calc() needed, "
655
+ "it will be added automatically!"
656
+ msgstr ""
657
+
658
+ #: controls/ooohboi-glider.php:115
659
  msgid "Create Slider?"
660
  msgstr ""
661
 
662
+ #: controls/ooohboi-glider.php:116
663
+ msgid ""
664
+ "This container containers will become slidable. TIP: Use this Switch to "
665
+ "refresh your Glider."
666
  msgstr ""
667
 
668
+ #: controls/ooohboi-glider.php:130
669
  msgid "Adaptable height?"
670
  msgstr ""
671
 
672
+ #: controls/ooohboi-glider.php:148
673
  msgid "Slider height"
674
  msgstr ""
675
 
676
+ #: controls/ooohboi-glider.php:183
677
  msgid "Hide Navigation"
678
  msgstr ""
679
 
680
+ #: controls/ooohboi-glider.php:204 controls/ooohboi-kontrolz.php:46
681
  msgid "Navigation styles"
682
  msgstr ""
683
 
684
+ #: controls/ooohboi-glider.php:221
685
  msgid "Arrows Color"
686
  msgstr ""
687
 
688
+ #: controls/ooohboi-glider.php:238 controls/ooohboi-kontrolz.php:58
689
  msgid "Arrows Color - Hover"
690
  msgstr ""
691
 
692
+ #: controls/ooohboi-glider.php:255 controls/ooohboi-kontrolz.php:71
693
  #: controls/ooohboi-paginini.php:47 controls/ooohboi-paginini.php:121
694
  #: controls/ooohboi-paginini.php:182
695
  msgid "Background Color"
696
  msgstr ""
697
 
698
+ #: controls/ooohboi-glider.php:272 controls/ooohboi-kontrolz.php:83
699
  msgid "Background Color - Hover"
700
  msgstr ""
701
 
702
+ #: controls/ooohboi-glider.php:306
703
  msgid "Icon size"
704
  msgstr ""
705
 
706
+ #: controls/ooohboi-glider.php:359 controls/ooohboi-kontrolz.php:128
707
  msgid "Calc - Y"
708
  msgstr ""
709
 
710
+ #: controls/ooohboi-glider.php:360 controls/ooohboi-glider.php:379
711
+ #: controls/ooohboi-glider.php:397 controls/ooohboi-kontrolz.php:129
712
  #: controls/ooohboi-kontrolz.php:143 controls/ooohboi-kontrolz.php:156
713
  msgid "Valid CSS only! Like: 25px or 15em or 100% - 50px or 50% + 3rem"
714
  msgstr ""
715
 
716
+ #: controls/ooohboi-glider.php:377 controls/ooohboi-kontrolz.php:141
717
  msgid "Calc Prev - X"
718
  msgstr ""
719
 
720
+ #: controls/ooohboi-glider.php:395 controls/ooohboi-kontrolz.php:154
721
  msgid "Calc Next - X"
722
  msgstr ""
723
 
724
+ #: controls/ooohboi-glider.php:416
725
  msgid "Hide Pagination"
726
  msgstr ""
727
 
728
+ #: controls/ooohboi-glider.php:438 controls/ooohboi-kontrolz.php:170
729
  msgid "Pagination styles"
730
  msgstr ""
731
 
732
+ #: controls/ooohboi-glider.php:454
733
  msgid "Pagination type"
734
  msgstr ""
735
 
736
+ #: controls/ooohboi-glider.php:458
737
  msgid "Bullets"
738
  msgstr ""
739
 
740
+ #: controls/ooohboi-glider.php:459
741
  msgid "Fraction"
742
  msgstr ""
743
 
744
+ #: controls/ooohboi-glider.php:460
745
  msgid "Progress Bar"
746
  msgstr ""
747
 
748
+ #: controls/ooohboi-glider.php:474 controls/ooohboi-kontrolz.php:182
749
  msgid "Pagination Color"
750
  msgstr ""
751
 
752
+ #: controls/ooohboi-glider.php:491 controls/ooohboi-kontrolz.php:195
753
  msgid "Pagination Color - Active"
754
  msgstr ""
755
 
756
+ #: controls/ooohboi-glider.php:556
757
  msgid "Transition type"
758
  msgstr ""
759
 
760
+ #: controls/ooohboi-glider.php:561
761
  msgid "Slide"
762
  msgstr ""
763
 
764
+ #: controls/ooohboi-glider.php:562 controls/ooohboi-teleporter.php:317
765
  msgid "Fade"
766
  msgstr ""
767
 
768
+ #: controls/ooohboi-glider.php:576
769
+ msgid "Show Multiple Slides"
 
770
  msgstr ""
771
 
772
+ #: controls/ooohboi-glider.php:597
773
  msgid "Slides Per View"
774
  msgstr ""
775
 
776
+ #: controls/ooohboi-glider.php:618
777
  msgid "Slides to Scroll"
778
  msgstr ""
779
 
780
+ #: controls/ooohboi-glider.php:619
781
  msgid "Scrolling multiple slides can break infinite loop."
782
  msgstr ""
783
 
784
+ #: controls/ooohboi-glider.php:638
785
  msgid "Space Between Slides (px)"
786
  msgstr ""
787
 
788
+ #: controls/ooohboi-glider.php:656
789
+ msgid "Centered Slides"
790
+ msgstr ""
791
+
792
+ #: controls/ooohboi-glider.php:657
793
+ msgid "Active slide will be centered."
794
+ msgstr ""
795
+
796
+ #: controls/ooohboi-glider.php:677
797
+ msgid "Centered Slide Bounds"
798
+ msgstr ""
799
+
800
+ #: controls/ooohboi-glider.php:678
801
+ msgid ""
802
+ "Active slide will be centered without adding gaps at the beginning and end "
803
+ "of slider."
804
+ msgstr ""
805
+
806
+ #: controls/ooohboi-glider.php:700
807
  msgid "Infinite Loop"
808
  msgstr ""
809
 
810
+ #: controls/ooohboi-glider.php:719
811
  msgid "Direction"
812
  msgstr ""
813
 
814
+ #: controls/ooohboi-glider.php:724
815
  msgid "Horizontal"
816
  msgstr ""
817
 
818
+ #: controls/ooohboi-glider.php:725
819
  msgid "Vertical"
820
  msgstr ""
821
 
822
+ #: controls/ooohboi-glider.php:739
823
  msgid "Parallax"
824
  msgstr ""
825
 
826
+ #: controls/ooohboi-glider.php:740
827
  msgid "It will work with Elementor PRO Attributes only."
828
  msgstr ""
829
 
830
+ #: controls/ooohboi-glider.php:759
831
  msgid "Transition speed"
832
  msgstr ""
833
 
834
+ #: controls/ooohboi-glider.php:775
835
+ msgid "Enable Touch Move"
836
+ msgstr ""
837
+
838
+ #: controls/ooohboi-glider.php:793
839
+ msgid "Enable Mousewheel"
840
+ msgstr ""
841
+
842
+ #: controls/ooohboi-glider.php:811
843
+ msgid "Deblur Slides"
844
+ msgstr ""
845
+
846
+ #: controls/ooohboi-glider.php:812
847
+ msgid "Round values of slides width and height to prevent blurry texts?"
848
  msgstr ""
849
 
850
+ #: controls/ooohboi-glider.php:831
851
  msgid "Autoplay"
852
  msgstr ""
853
 
854
+ #: controls/ooohboi-glider.php:849
855
  msgid "Autoplay delay"
856
  msgstr ""
857
 
858
+ #: controls/ooohboi-glider.php:850
859
  msgid "In miliseconds! 1000 is one second."
860
  msgstr ""
861
 
862
+ #: controls/ooohboi-glider.php:868
863
+ msgid "Control Glider externally!"
864
+ msgstr ""
865
+
866
+ #: controls/ooohboi-glider.php:870
867
+ msgid ""
868
+ "You can control this Glider instance from any link on this page by adding "
869
+ "the custom class name to the link. \n"
870
+ "\t\t\t\t\tCopy the text entirely and append the slide number to go to at the "
871
+ "end. For instance: glider-NNNNNNN-gotoslide-3"
872
+ msgstr ""
873
+
874
+ #: controls/ooohboi-glider.php:882
875
+ msgid "This Glider control class"
876
+ msgstr ""
877
+
878
+ #: controls/ooohboi-harakiri.php:91
879
  msgid "Color - HOVER"
880
  msgstr ""
881
 
882
+ #: controls/ooohboi-harakiri.php:103
883
  msgid "Writing Mode"
884
  msgstr ""
885
 
886
+ #: controls/ooohboi-harakiri.php:109
887
  msgid "Vertical LR"
888
  msgstr ""
889
 
890
+ #: controls/ooohboi-harakiri.php:110
891
  msgid "Vertical RL"
892
  msgstr ""
893
 
894
+ #: controls/ooohboi-harakiri.php:124
 
 
 
 
 
 
 
895
  msgid "Flip"
896
  msgstr ""
897
 
898
+ #: controls/ooohboi-harakiri.php:146 controls/ooohboi-overlaiz.php:145
899
+ #: controls/ooohboi-overlay-underlay.php:279
900
+ #: controls/ooohboi-overlay-underlay.php:917 controls/ooohboi-pseudo.php:294
901
+ #: controls/ooohboi-pseudo.php:948
902
  msgid "Height"
903
  msgstr ""
904
 
905
+ #: controls/ooohboi-harakiri.php:150 controls/ooohboi-harakiri.php:229
906
+ #: controls/ooohboi-hover-animator.php:321
907
+ #: controls/ooohboi-hover-animator.php:518
908
+ #: controls/ooohboi-hover-animator.php:715
909
+ #: controls/ooohboi-hover-animator.php:965
910
+ #: controls/ooohboi-hover-animator.php:1131 controls/ooohboi-overlaiz.php:537
911
+ #: controls/ooohboi-overlaiz.php:567 controls/ooohboi-overlay-underlay.php:581
912
+ #: controls/ooohboi-overlay-underlay.php:611
913
+ #: controls/ooohboi-overlay-underlay.php:1213
914
+ #: controls/ooohboi-overlay-underlay.php:1242
915
+ #: controls/ooohboi-photomorph.php:220 controls/ooohboi-pseudo.php:610
916
+ #: controls/ooohboi-pseudo.php:640 controls/ooohboi-pseudo.php:1257
917
+ #: controls/ooohboi-pseudo.php:1286 controls/ooohboi-spacerat.php:224
918
+ #: controls/ooohboi-spacerat.php:253 controls/ooohboi-videomasq.php:76
919
+ #: controls/ooohboi-videomasq.php:104
920
  msgid "Default"
921
  msgstr ""
922
 
923
+ #: controls/ooohboi-harakiri.php:151
924
  msgid "Inline"
925
  msgstr ""
926
 
927
+ #: controls/ooohboi-harakiri.php:152 controls/ooohboi-overlaiz.php:571
928
+ #: controls/ooohboi-overlay-underlay.php:615
929
+ #: controls/ooohboi-overlay-underlay.php:1246 controls/ooohboi-pseudo.php:644
930
+ #: controls/ooohboi-pseudo.php:1290 controls/ooohboi-spacerat.php:257
931
+ #: controls/ooohboi-videomasq.php:108
932
  msgid "Custom"
933
  msgstr ""
934
 
935
+ #: controls/ooohboi-harakiri.php:171
936
  msgid "NOTE: [%] unit works properly only if Column height is a fixed value!"
937
  msgstr ""
938
 
939
+ #: controls/ooohboi-harakiri.php:220
940
  msgid "Mix Blend Mode"
941
  msgstr ""
942
 
943
+ #: controls/ooohboi-harakiri.php:222
944
  #, php-format
945
  msgid "Learn more about this CSS property: %sMozilla.org%s"
946
  msgstr ""
947
 
948
+ #: controls/ooohboi-harakiri.php:230
949
  msgid "Multiply"
950
  msgstr ""
951
 
952
+ #: controls/ooohboi-harakiri.php:231
953
  msgid "Screen"
954
  msgstr ""
955
 
956
+ #: controls/ooohboi-harakiri.php:232 controls/ooohboi-overlay-underlay.php:120
957
  msgid "Overlay"
958
  msgstr ""
959
 
960
+ #: controls/ooohboi-harakiri.php:233
961
  msgid "Darken"
962
  msgstr ""
963
 
964
+ #: controls/ooohboi-harakiri.php:234
965
  msgid "Lighten"
966
  msgstr ""
967
 
968
+ #: controls/ooohboi-harakiri.php:235
969
  msgid "Color-dodge"
970
  msgstr ""
971
 
972
+ #: controls/ooohboi-harakiri.php:236
973
  msgid "Color-burn"
974
  msgstr ""
975
 
976
+ #: controls/ooohboi-harakiri.php:237
977
  msgid "Hard-light"
978
  msgstr ""
979
 
980
+ #: controls/ooohboi-harakiri.php:238
981
  msgid "Soft-light"
982
  msgstr ""
983
 
984
+ #: controls/ooohboi-harakiri.php:239
985
  msgid "Difference"
986
  msgstr ""
987
 
988
+ #: controls/ooohboi-harakiri.php:240
989
  msgid "Exclusion"
990
  msgstr ""
991
 
992
+ #: controls/ooohboi-harakiri.php:241
993
  msgid "Hue"
994
  msgstr ""
995
 
996
+ #: controls/ooohboi-harakiri.php:242
997
  msgid "Saturation"
998
  msgstr ""
999
 
1000
+ #: controls/ooohboi-harakiri.php:244
1001
  msgid "Luminosity"
1002
  msgstr ""
1003
 
1004
+ #: controls/ooohboi-harakiri.php:268
1005
+ msgid "Cut off the bottom margin"
1006
+ msgstr ""
1007
+
1008
+ #: controls/ooohboi-harakiri.php:269
1009
+ msgid "NOTE: Only the last child P(aragraph) shall be cut off!"
1010
+ msgstr ""
1011
+
1012
+ #: controls/ooohboi-hover-animator.php:105
1013
  msgid "Enable HOVERANIMATOR?"
1014
  msgstr ""
1015
 
1016
+ #: controls/ooohboi-hover-animator.php:120
1017
  msgid ""
1018
+ "With Hoveranimator you can animate any widget in this container on mouse-"
1019
+ "over event. Animation panel is available under the Advanced tab, per widget!"
1020
  msgstr ""
1021
 
1022
+ #: controls/ooohboi-hover-animator.php:129 controls/ooohboi-icobox.php:75
1023
+ #: controls/ooohboi-imbox.php:76 controls/ooohboi-perspektive.php:256
1024
  #: controls/ooohboi-teleporter.php:361
1025
  msgid "Content Overflow"
1026
  msgstr ""
1027
 
1028
+ #: controls/ooohboi-hover-animator.php:130
1029
  msgid ""
1030
  "VISIBLE - makes visible all the elements outside this Column boundaries, "
1031
  "HIDDEN - hides everything outside this Column boundaries."
1032
  msgstr ""
1033
 
1034
+ #: controls/ooohboi-hover-animator.php:135 controls/ooohboi-icobox.php:80
1035
+ #: controls/ooohboi-imbox.php:81 controls/ooohboi-perspektive.php:262
1036
  #: controls/ooohboi-teleporter.php:367
1037
  msgid "Visible"
1038
  msgstr ""
1039
 
1040
+ #: controls/ooohboi-hover-animator.php:136 controls/ooohboi-icobox.php:81
1041
+ #: controls/ooohboi-imbox.php:82 controls/ooohboi-perspektive.php:263
1042
  #: controls/ooohboi-teleporter.php:368
1043
  msgid "Hidden"
1044
  msgstr ""
1045
 
1046
+ #: controls/ooohboi-hover-animator.php:179
1047
  msgid "Enable Hoveranimator"
1048
  msgstr ""
1049
 
1050
+ #: controls/ooohboi-hover-animator.php:180
1051
  msgid ""
1052
  "That will allow you to animate this widget on mouse-over event of the parent "
1053
  "column."
1054
  msgstr ""
1055
 
1056
+ #: controls/ooohboi-hover-animator.php:194 controls/ooohboi-oh-animator.php:771
1057
+ #: controls/ooohboi-overlay-underlay.php:138
1058
+ #: controls/ooohboi-overlay-underlay.php:778 controls/ooohboi-pseudo.php:148
1059
+ #: controls/ooohboi-pseudo.php:807
1060
  msgid "Opacity"
1061
  msgstr ""
1062
 
1063
+ #: controls/ooohboi-hover-animator.php:210
1064
  msgid "Opacity Normal"
1065
  msgstr ""
1066
 
1067
+ #: controls/ooohboi-hover-animator.php:235
1068
  msgid "Opacity Hover"
1069
  msgstr ""
1070
 
1071
+ #: controls/ooohboi-hover-animator.php:257
1072
+ #: controls/ooohboi-hover-animator.php:454
1073
+ #: controls/ooohboi-hover-animator.php:651
1074
+ #: controls/ooohboi-hover-animator.php:901
1075
+ #: controls/ooohboi-hover-animator.php:1067
1076
+ #: controls/ooohboi-oh-animator.php:1206
1077
  msgid "Duration"
1078
  msgstr ""
1079
 
1080
+ #: controls/ooohboi-hover-animator.php:286
1081
+ #: controls/ooohboi-hover-animator.php:483
1082
+ #: controls/ooohboi-hover-animator.php:680
1083
+ #: controls/ooohboi-hover-animator.php:930
1084
+ #: controls/ooohboi-hover-animator.php:1096
1085
+ #: controls/ooohboi-oh-animator.php:1222
1086
  msgid "Delay"
1087
  msgstr ""
1088
 
1089
+ #: controls/ooohboi-hover-animator.php:315
1090
+ #: controls/ooohboi-hover-animator.php:512
1091
+ #: controls/ooohboi-hover-animator.php:709
1092
+ #: controls/ooohboi-hover-animator.php:959
1093
+ #: controls/ooohboi-hover-animator.php:1125
1094
  msgid "Easing"
1095
  msgstr ""
1096
 
1097
+ #: controls/ooohboi-hover-animator.php:322
1098
+ #: controls/ooohboi-hover-animator.php:519
1099
+ #: controls/ooohboi-hover-animator.php:716
1100
+ #: controls/ooohboi-hover-animator.php:966
1101
+ #: controls/ooohboi-hover-animator.php:1132 controls/ooohboi-photomorph.php:221
1102
  msgid "Ease-in"
1103
  msgstr ""
1104
 
1105
+ #: controls/ooohboi-hover-animator.php:323
1106
+ #: controls/ooohboi-hover-animator.php:520
1107
+ #: controls/ooohboi-hover-animator.php:717
1108
+ #: controls/ooohboi-hover-animator.php:967
1109
+ #: controls/ooohboi-hover-animator.php:1133 controls/ooohboi-photomorph.php:222
1110
  msgid "Ease-out"
1111
  msgstr ""
1112
 
1113
+ #: controls/ooohboi-hover-animator.php:324
1114
+ #: controls/ooohboi-hover-animator.php:521
1115
+ #: controls/ooohboi-hover-animator.php:718
1116
+ #: controls/ooohboi-hover-animator.php:968
1117
+ #: controls/ooohboi-hover-animator.php:1134 controls/ooohboi-photomorph.php:223
1118
  msgid "Ease-in-out"
1119
  msgstr ""
1120
 
1121
+ #: controls/ooohboi-hover-animator.php:344
1122
+ #: controls/ooohboi-overlay-underlay.php:340
1123
+ #: controls/ooohboi-overlay-underlay.php:976 controls/ooohboi-pseudo.php:359
1124
+ #: controls/ooohboi-pseudo.php:1011
1125
  msgid "Offset Top"
1126
  msgstr ""
1127
 
1128
+ #: controls/ooohboi-hover-animator.php:360
1129
  msgid "Offset Top Normal"
1130
  msgstr ""
1131
 
1132
+ #: controls/ooohboi-hover-animator.php:392
1133
  msgid "Calc Offset Top Normal"
1134
  msgstr ""
1135
 
1136
+ #: controls/ooohboi-hover-animator.php:393
1137
+ #: controls/ooohboi-hover-animator.php:440
1138
+ #: controls/ooohboi-hover-animator.php:590
1139
+ #: controls/ooohboi-hover-animator.php:637 controls/ooohboi-overlaiz.php:130
1140
+ #: controls/ooohboi-overlaiz.php:197 controls/ooohboi-overlaiz.php:264
1141
+ #: controls/ooohboi-overlaiz.php:331 controls/ooohboi-overlay-underlay.php:263
1142
+ #: controls/ooohboi-overlay-underlay.php:385
1143
+ #: controls/ooohboi-overlay-underlay.php:902
1144
+ #: controls/ooohboi-overlay-underlay.php:1020
1145
+ #: controls/ooohboi-overlay-underlay.php:1079 controls/ooohboi-pseudo.php:278
1146
+ #: controls/ooohboi-pseudo.php:408 controls/ooohboi-pseudo.php:933
1147
+ #: controls/ooohboi-pseudo.php:1059 controls/ooohboi-pseudo.php:1122
1148
  msgid "Enter CSS calc value only! Like: 100% - 50px or 100% + 2em"
1149
  msgstr ""
1150
 
1151
+ #: controls/ooohboi-hover-animator.php:410
1152
  msgid "Offset Top Hover"
1153
  msgstr ""
1154
 
1155
+ #: controls/ooohboi-hover-animator.php:439
1156
  msgid "Calc Offset Top Hover"
1157
  msgstr ""
1158
 
1159
+ #: controls/ooohboi-hover-animator.php:541
1160
+ #: controls/ooohboi-overlay-underlay.php:401
1161
+ #: controls/ooohboi-overlay-underlay.php:1035 controls/ooohboi-pseudo.php:424
1162
+ #: controls/ooohboi-pseudo.php:1074
1163
  msgid "Offset Left"
1164
  msgstr ""
1165
 
1166
+ #: controls/ooohboi-hover-animator.php:557
1167
  msgid "Offset Left Normal"
1168
  msgstr ""
1169
 
1170
+ #: controls/ooohboi-hover-animator.php:589
1171
  msgid "Calc Offset Left Normal"
1172
  msgstr ""
1173
 
1174
+ #: controls/ooohboi-hover-animator.php:607
1175
  msgid "Offset Left Hover"
1176
  msgstr ""
1177
 
1178
+ #: controls/ooohboi-hover-animator.php:636
1179
  msgid "Calc Offset Left Hover"
1180
  msgstr ""
1181
 
1182
+ #: controls/ooohboi-hover-animator.php:738
1183
  msgid "Transforms"
1184
  msgstr ""
1185
 
1186
+ #: controls/ooohboi-hover-animator.php:753
1187
  msgid "ScaleX Normal"
1188
  msgstr ""
1189
 
1190
+ #: controls/ooohboi-hover-animator.php:779
1191
  msgid "ScaleX Hover"
1192
  msgstr ""
1193
 
1194
+ #: controls/ooohboi-hover-animator.php:802
1195
  msgid "ScaleY Normal"
1196
  msgstr ""
1197
 
1198
+ #: controls/ooohboi-hover-animator.php:828
1199
  msgid "ScaleY Hover"
1200
  msgstr ""
1201
 
1202
+ #: controls/ooohboi-hover-animator.php:851
1203
  msgid "Rotation Normal"
1204
  msgstr ""
1205
 
1206
+ #: controls/ooohboi-hover-animator.php:877
1207
  msgid "Rotation Hover"
1208
  msgstr ""
1209
 
1210
+ #: controls/ooohboi-hover-animator.php:988 controls/ooohboi-shadough.php:123
1211
+ #: controls/ooohboi-spacerat.php:474
1212
  msgid "Blur"
1213
  msgstr ""
1214
 
1215
+ #: controls/ooohboi-hover-animator.php:1004
1216
  msgid "Blur Normal"
1217
  msgstr ""
1218
 
1219
+ #: controls/ooohboi-hover-animator.php:1037
1220
  msgid "Blur Hover"
1221
  msgstr ""
1222
 
1223
+ #: controls/ooohboi-icobox.php:92
1224
+ #, php-format
1225
+ msgid "Prevent Icon and Title Collapse%sNEW!%s"
1226
+ msgstr ""
1227
+
1228
+ #: controls/ooohboi-icobox.php:93
1229
+ msgid "The icon sits atop the title on mobiles. Prevent that, huh?"
1230
+ msgstr ""
1231
+
1232
+ #: controls/ooohboi-icobox.php:108 controls/ooohboi-icobox.php:243
1233
+ #: controls/ooohboi-imbox.php:110 controls/ooohboi-imbox.php:406
1234
  msgid "Overrides"
1235
  msgstr ""
1236
 
1237
+ #: controls/ooohboi-icobox.php:109 controls/ooohboi-imbox.php:111
1238
  msgid "Allow more basic controls?"
1239
  msgstr ""
1240
 
1241
+ #: controls/ooohboi-icobox.php:159
1242
  msgid "Icon Padding"
1243
  msgstr ""
1244
 
1245
+ #: controls/ooohboi-icobox.php:175
1246
  msgid "Icon Margin"
1247
  msgstr ""
1248
 
1249
+ #: controls/ooohboi-icobox.php:229 controls/ooohboi-imbox.php:306
1250
  msgid "Box Padding"
1251
  msgstr ""
1252
 
1253
+ #: controls/ooohboi-icobox.php:244 controls/ooohboi-imbox.php:407
1254
  msgid "Allow separate controls for Title and Description?"
1255
  msgstr ""
1256
 
1257
+ #: controls/ooohboi-icobox.php:258 controls/ooohboi-imbox.php:420
1258
  msgid "Title Padding"
1259
  msgstr ""
1260
 
1261
+ #: controls/ooohboi-icobox.php:274 controls/ooohboi-imbox.php:436
1262
  msgid "Title Margin"
1263
  msgstr ""
1264
 
1265
+ #: controls/ooohboi-icobox.php:289 controls/ooohboi-imbox.php:452
1266
  msgid "Description Padding"
1267
  msgstr ""
1268
 
1269
+ #: controls/ooohboi-icobox.php:305 controls/ooohboi-imbox.php:468
1270
  msgid "Description Margin"
1271
  msgstr ""
1272
 
1273
+ #: controls/ooohboi-imbox.php:93
1274
+ #, php-format
1275
+ msgid "Prevent Image and Title Collapse%sNEW!%s"
1276
+ msgstr ""
1277
+
1278
+ #: controls/ooohboi-imbox.php:94
1279
+ msgid "The thumbnail sits atop the title on mobiles. Prevent that, huh?"
1280
+ msgstr ""
1281
+
1282
+ #: controls/ooohboi-imbox.php:124
1283
  msgid "Image Size"
1284
  msgstr ""
1285
 
1286
+ #: controls/ooohboi-imbox.php:161
1287
  msgid "Image Padding"
1288
  msgstr ""
1289
 
1290
+ #: controls/ooohboi-imbox.php:177
1291
  msgid "Image Margin"
1292
  msgstr ""
1293
 
1294
+ #: controls/ooohboi-imbox.php:192
1295
  msgid "Enable full-height?"
1296
  msgstr ""
1297
 
1298
+ #: controls/ooohboi-imbox.php:193
1299
  msgid ""
1300
  "That will make the photo full-height. Makes sense only if the photo is "
1301
  "placed left or the right-hand side!"
1302
  msgstr ""
1303
 
1304
+ #: controls/ooohboi-imbox.php:246
1305
  msgid "Image clip path"
1306
  msgstr ""
1307
 
1308
+ #: controls/ooohboi-imbox.php:248 controls/ooohboi-oh-animator.php:931
1309
+ #: controls/ooohboi-overlaiz.php:470 controls/ooohboi-overlay-underlay.php:716
1310
+ #: controls/ooohboi-overlay-underlay.php:1344
1311
+ #: controls/ooohboi-photomorph.php:120 controls/ooohboi-photomorph.php:150
1312
+ #: controls/ooohboi-pseudo.php:745 controls/ooohboi-pseudo.php:1388
1313
+ #: controls/ooohboi-spacerat.php:539
1314
  #, php-format
1315
  msgid ""
1316
  "Enter the full clip-path property! See the copy-paste examples at %sClippy%s"
1317
  msgstr ""
1318
 
1319
+ #: controls/ooohboi-imbox.php:319
1320
  msgid "Box Margin"
1321
  msgstr ""
1322
 
1323
+ #: controls/ooohboi-imbox.php:392
1324
  msgid "Box z-index"
1325
  msgstr ""
1326
 
1328
  msgid "NOTE: It works only with the pagination style set to Dots!"
1329
  msgstr ""
1330
 
1331
+ #: controls/ooohboi-locomotion.php:42
1332
  msgid "Custom Attributes"
1333
  msgstr ""
1334
 
1335
+ #: controls/ooohboi-locomotion.php:50
1336
  msgid "key|value"
1337
  msgstr ""
1338
 
1339
+ #: controls/ooohboi-locomotion.php:51
1340
  #, php-format
1341
  msgid ""
1342
  "Set custom attributes for the current element/widget. Each attribute must be "
1344
  "pipe character, i.e. data-scroll-offset%s100,50em"
1345
  msgstr ""
1346
 
1347
+ #: controls/ooohboi-oh-animator.php:90
1348
+ msgid "Enable ANIMATOR?"
1349
+ msgstr ""
1350
+
1351
+ #: controls/ooohboi-oh-animator.php:107
1352
+ #, php-format
1353
+ msgid ""
1354
+ "If you are not familiar with the %s, %s and scroll triggered animations, "
1355
+ "it's good idea to learn some basics."
1356
+ msgstr ""
1357
+
1358
+ #: controls/ooohboi-oh-animator.php:121
1359
+ msgid "Animate first child?"
1360
+ msgstr ""
1361
+
1362
+ #: controls/ooohboi-oh-animator.php:122
1363
+ msgid ""
1364
+ "By default \".elementor-widget-container\" will be animated. You can animate "
1365
+ "its first child element instead."
1366
+ msgstr ""
1367
+
1368
+ #: controls/ooohboi-oh-animator.php:140
1369
+ msgid "ScrollTrigger Settings"
1370
+ msgstr ""
1371
+
1372
+ #: controls/ooohboi-oh-animator.php:142
1373
+ msgid "This is where you set you scroll triggered animation."
1374
+ msgstr ""
1375
+
1376
+ #: controls/ooohboi-oh-animator.php:153
1377
+ msgid "Show Markers?"
1378
+ msgstr ""
1379
+
1380
+ #: controls/ooohboi-oh-animator.php:154
1381
+ msgid "See where the target element/widget start/end/trigger points are"
1382
+ msgstr ""
1383
+
1384
+ #: controls/ooohboi-oh-animator.php:170
1385
+ msgid "Scrub?"
1386
+ msgstr ""
1387
+
1388
+ #: controls/ooohboi-oh-animator.php:171
1389
+ msgid ""
1390
+ "Controll the animation progress with the scrollbar so it acts like a scrubber"
1391
+ msgstr ""
1392
+
1393
+ #: controls/ooohboi-oh-animator.php:187
1394
+ msgid "Scrub smooth"
1395
+ msgstr ""
1396
+
1397
+ #: controls/ooohboi-oh-animator.php:188
1398
+ msgid "Adds smoothing to scrub. Best between 1 and 5 (extreme already!)"
1399
+ msgstr ""
1400
+
1401
+ #: controls/ooohboi-oh-animator.php:205
1402
+ msgid "Invalidate on refresh?"
1403
+ msgstr ""
1404
+
1405
+ #: controls/ooohboi-oh-animator.php:206
1406
+ msgid "This flushes out any internally-recorded starting values."
1407
+ msgstr ""
1408
+
1409
+ #: controls/ooohboi-oh-animator.php:222
1410
+ msgid "Immediate render"
1411
+ msgstr ""
1412
+
1413
+ #: controls/ooohboi-oh-animator.php:224
1414
+ #, php-format
1415
+ msgid "Please take a quick guide %s"
1416
+ msgstr ""
1417
+
1418
+ #: controls/ooohboi-oh-animator.php:242
1419
+ msgid "Pin?"
1420
+ msgstr ""
1421
+
1422
+ #: controls/ooohboi-oh-animator.php:243
1423
+ msgid ""
1424
+ "Warning: don't animate the pinned element itself due to the unpredicted "
1425
+ "results! Rather animate elements inside the pinned element."
1426
+ msgstr ""
1427
+
1428
+ #: controls/ooohboi-oh-animator.php:259
1429
+ msgid "Anticipate Pin"
1430
+ msgstr ""
1431
+
1432
+ #: controls/ooohboi-oh-animator.php:276
1433
+ msgid "Prevent overlaps"
1434
+ msgstr ""
1435
+
1436
+ #: controls/ooohboi-oh-animator.php:293
1437
+ msgid "Pin spacing"
1438
+ msgstr ""
1439
+
1440
+ #: controls/ooohboi-oh-animator.php:298
1441
+ msgid "Yes (true)"
1442
+ msgstr ""
1443
+
1444
+ #: controls/ooohboi-oh-animator.php:299
1445
+ msgid "No (false)"
1446
+ msgstr ""
1447
+
1448
+ #: controls/ooohboi-oh-animator.php:313
1449
+ msgid "ScrollTrigger Start and End"
1450
+ msgstr ""
1451
+
1452
+ #: controls/ooohboi-oh-animator.php:329
1453
+ msgid "ScrollTrigger Start"
1454
+ msgstr ""
1455
+
1456
+ #: controls/ooohboi-oh-animator.php:331
1457
+ msgid ""
1458
+ "Describes a place on the trigger and a place on the scroller that must meet "
1459
+ "in order to start the ScrollTrigger"
1460
+ msgstr ""
1461
+
1462
+ #: controls/ooohboi-oh-animator.php:344
1463
+ msgid "Start - Trigger Element"
1464
+ msgstr ""
1465
+
1466
+ #: controls/ooohboi-oh-animator.php:350 controls/ooohboi-oh-animator.php:400
1467
+ #: controls/ooohboi-oh-animator.php:462 controls/ooohboi-oh-animator.php:511
1468
+ msgid "Top"
1469
+ msgstr ""
1470
+
1471
+ #: controls/ooohboi-oh-animator.php:352 controls/ooohboi-oh-animator.php:402
1472
+ #: controls/ooohboi-oh-animator.php:464 controls/ooohboi-oh-animator.php:513
1473
+ msgid "Bottom"
1474
+ msgstr ""
1475
+
1476
+ #: controls/ooohboi-oh-animator.php:353
1477
+ msgid "Top + Self height"
1478
+ msgstr ""
1479
+
1480
+ #: controls/ooohboi-oh-animator.php:365
1481
+ msgid "Start - Trigger Element Offset"
1482
+ msgstr ""
1483
+
1484
+ #: controls/ooohboi-oh-animator.php:394
1485
+ msgid "Start - Viewport"
1486
+ msgstr ""
1487
+
1488
+ #: controls/ooohboi-oh-animator.php:414
1489
+ msgid "Start - Viewport Offset"
1490
+ msgstr ""
1491
+
1492
+ #: controls/ooohboi-oh-animator.php:443
1493
+ msgid "ScrollTrigger End"
1494
+ msgstr ""
1495
+
1496
+ #: controls/ooohboi-oh-animator.php:445
1497
+ msgid ""
1498
+ "Describes a place on the endTrigger (or trigger if one isn't defined) and a "
1499
+ "place on the scroller that must meet in order to end the scroll triggered "
1500
+ "animation"
1501
+ msgstr ""
1502
+
1503
+ #: controls/ooohboi-oh-animator.php:456
1504
+ msgid "End - Trigger Element"
1505
+ msgstr ""
1506
+
1507
+ #: controls/ooohboi-oh-animator.php:476
1508
+ msgid "End - Trigger Element Offset"
1509
+ msgstr ""
1510
+
1511
+ #: controls/ooohboi-oh-animator.php:505
1512
+ msgid "End - Viewport"
1513
+ msgstr ""
1514
+
1515
+ #: controls/ooohboi-oh-animator.php:525
1516
+ msgid "End - Viewport Offset"
1517
+ msgstr ""
1518
+
1519
+ #: controls/ooohboi-oh-animator.php:554
1520
+ msgid "End trigger selector"
1521
+ msgstr ""
1522
+
1523
+ #: controls/ooohboi-oh-animator.php:555
1524
+ msgid ""
1525
+ "Selector (element) whose position in the normal document flow is used for "
1526
+ "calculating where the ScrollTrigger ends. For instance: \".element-class-name"
1527
+ "\" or \"#element-unique-id\""
1528
+ msgstr ""
1529
+
1530
+ #: controls/ooohboi-oh-animator.php:571
1531
+ msgid "Toggle Actions"
1532
+ msgstr ""
1533
+
1534
+ #: controls/ooohboi-oh-animator.php:588
1535
+ msgid ""
1536
+ "Determines how the linked animation is controlled at the 4 distinct toggle "
1537
+ "places - onEnter, onLeave, onEnterBack, and onLeaveBack, in that order. <br/"
1538
+ ">\n"
1539
+ " For example:<br/>\n"
1540
+ " <pre>play pause resume reset</pre><br/>\n"
1541
+ " will play the animation when entering, pause it when "
1542
+ "leaving, resume it when entering again backwards, and reset (rewind back to "
1543
+ "the beginning) when scrolling all the way back past the beginning."
1544
+ msgstr ""
1545
+
1546
+ #: controls/ooohboi-oh-animator.php:600
1547
+ msgid "Action onEnter"
1548
+ msgstr ""
1549
+
1550
+ #: controls/ooohboi-oh-animator.php:607 controls/ooohboi-oh-animator.php:632
1551
+ #: controls/ooohboi-oh-animator.php:657 controls/ooohboi-oh-animator.php:682
1552
+ msgid "Play"
1553
+ msgstr ""
1554
+
1555
+ #: controls/ooohboi-oh-animator.php:608 controls/ooohboi-oh-animator.php:633
1556
+ #: controls/ooohboi-oh-animator.php:658 controls/ooohboi-oh-animator.php:683
1557
+ msgid "Pause"
1558
+ msgstr ""
1559
+
1560
+ #: controls/ooohboi-oh-animator.php:609 controls/ooohboi-oh-animator.php:634
1561
+ #: controls/ooohboi-oh-animator.php:659 controls/ooohboi-oh-animator.php:684
1562
+ msgid "Resume"
1563
+ msgstr ""
1564
+
1565
+ #: controls/ooohboi-oh-animator.php:610 controls/ooohboi-oh-animator.php:635
1566
+ #: controls/ooohboi-oh-animator.php:660 controls/ooohboi-oh-animator.php:685
1567
+ msgid "Reset"
1568
+ msgstr ""
1569
+
1570
+ #: controls/ooohboi-oh-animator.php:611 controls/ooohboi-oh-animator.php:636
1571
+ #: controls/ooohboi-oh-animator.php:661 controls/ooohboi-oh-animator.php:686
1572
+ msgid "Restart"
1573
+ msgstr ""
1574
+
1575
+ #: controls/ooohboi-oh-animator.php:612 controls/ooohboi-oh-animator.php:637
1576
+ #: controls/ooohboi-oh-animator.php:662 controls/ooohboi-oh-animator.php:687
1577
+ msgid "Complete"
1578
+ msgstr ""
1579
+
1580
+ #: controls/ooohboi-oh-animator.php:613 controls/ooohboi-oh-animator.php:638
1581
+ #: controls/ooohboi-oh-animator.php:663 controls/ooohboi-oh-animator.php:688
1582
+ msgid "Reverse"
1583
+ msgstr ""
1584
+
1585
+ #: controls/ooohboi-oh-animator.php:625
1586
+ msgid "Action onLeave"
1587
+ msgstr ""
1588
+
1589
+ #: controls/ooohboi-oh-animator.php:650
1590
+ msgid "Action onEnterBack"
1591
+ msgstr ""
1592
+
1593
+ #: controls/ooohboi-oh-animator.php:675
1594
+ msgid "Action onLeaveBack"
1595
+ msgstr ""
1596
+
1597
+ #: controls/ooohboi-oh-animator.php:703
1598
+ msgid "Toggle Class"
1599
+ msgstr ""
1600
+
1601
+ #: controls/ooohboi-oh-animator.php:720
1602
+ msgid ""
1603
+ "Adds/removes a class to an element (or multiple elements) when the "
1604
+ "ScrollTrigger toggles active/inactive. <br/>\n"
1605
+ " NOTE: It can only be the name of the class to add to the "
1606
+ "trigger element - the String! The Object is currently not supported!"
1607
+ msgstr ""
1608
+
1609
+ #: controls/ooohboi-oh-animator.php:729
1610
+ msgid "Toggle class name"
1611
+ msgstr ""
1612
+
1613
+ #: controls/ooohboi-oh-animator.php:746
1614
+ msgid "Animatable Properties"
1615
+ msgstr ""
1616
+
1617
+ #: controls/ooohboi-oh-animator.php:748
1618
+ msgid "Add as many as you like but avoid redundancy!"
1619
+ msgstr ""
1620
+
1621
+ #: controls/ooohboi-oh-animator.php:763
1622
+ msgid "Animate"
1623
+ msgstr ""
1624
+
1625
+ #: controls/ooohboi-oh-animator.php:769
1626
+ msgid "X"
1627
+ msgstr ""
1628
+
1629
+ #: controls/ooohboi-oh-animator.php:770
1630
+ msgid "Y"
1631
+ msgstr ""
1632
+
1633
+ #: controls/ooohboi-oh-animator.php:774
1634
+ msgid "Scale"
1635
+ msgstr ""
1636
+
1637
+ #: controls/ooohboi-oh-animator.php:775
1638
+ #: controls/ooohboi-overlay-underlay.php:463
1639
+ #: controls/ooohboi-overlay-underlay.php:1095 controls/ooohboi-pseudo.php:490
1640
+ #: controls/ooohboi-pseudo.php:1138
1641
+ msgid "Rotate"
1642
+ msgstr ""
1643
+
1644
+ #: controls/ooohboi-oh-animator.php:776
1645
+ msgid "SkewX"
1646
+ msgstr ""
1647
+
1648
+ #: controls/ooohboi-oh-animator.php:777
1649
+ msgid "SkewY"
1650
+ msgstr ""
1651
+
1652
+ #: controls/ooohboi-oh-animator.php:778 controls/ooohboi-overlaiz.php:453
1653
+ #: controls/ooohboi-overlay-underlay.php:714
1654
+ #: controls/ooohboi-overlay-underlay.php:1342 controls/ooohboi-pseudo.php:743
1655
+ #: controls/ooohboi-pseudo.php:1386 controls/ooohboi-spacerat.php:537
1656
+ msgid "Clip path"
1657
+ msgstr ""
1658
+
1659
+ #: controls/ooohboi-oh-animator.php:786 controls/ooohboi-oh-animator.php:812
1660
+ #: controls/ooohboi-oh-animator.php:838 controls/ooohboi-oh-animator.php:852
1661
+ #: controls/ooohboi-oh-animator.php:863 controls/ooohboi-oh-animator.php:874
1662
+ #: controls/ooohboi-oh-animator.php:887 controls/ooohboi-oh-animator.php:901
1663
+ #: controls/ooohboi-oh-animator.php:915 controls/ooohboi-oh-animator.php:929
1664
+ msgid "From"
1665
+ msgstr ""
1666
+
1667
+ #: controls/ooohboi-oh-animator.php:948 controls/ooohboi-oh-animator.php:974
1668
+ #: controls/ooohboi-oh-animator.php:1000 controls/ooohboi-oh-animator.php:1014
1669
+ #: controls/ooohboi-oh-animator.php:1025 controls/ooohboi-oh-animator.php:1036
1670
+ #: controls/ooohboi-oh-animator.php:1073 controls/ooohboi-oh-animator.php:1087
1671
+ #: controls/ooohboi-oh-animator.php:1101 controls/ooohboi-oh-animator.php:1115
1672
+ msgid "To"
1673
+ msgstr ""
1674
+
1675
+ #: controls/ooohboi-oh-animator.php:1049
1676
+ msgid "Transform Origin"
1677
+ msgstr ""
1678
+
1679
+ #: controls/ooohboi-oh-animator.php:1055
1680
+ msgid "Left Top"
1681
+ msgstr ""
1682
+
1683
+ #: controls/ooohboi-oh-animator.php:1056
1684
+ msgid "Left Center"
1685
+ msgstr ""
1686
+
1687
+ #: controls/ooohboi-oh-animator.php:1057
1688
+ msgid "Left Bottom"
1689
+ msgstr ""
1690
+
1691
+ #: controls/ooohboi-oh-animator.php:1058
1692
+ msgid "Center Top"
1693
+ msgstr ""
1694
+
1695
+ #: controls/ooohboi-oh-animator.php:1059 controls/ooohboi-overlaiz.php:538
1696
+ #: controls/ooohboi-overlay-underlay.php:582
1697
+ #: controls/ooohboi-overlay-underlay.php:1214 controls/ooohboi-pseudo.php:611
1698
+ #: controls/ooohboi-pseudo.php:1258 controls/ooohboi-spacerat.php:225
1699
+ #: controls/ooohboi-videomasq.php:77
1700
+ msgid "Center Center"
1701
+ msgstr ""
1702
+
1703
+ #: controls/ooohboi-oh-animator.php:1060
1704
+ msgid "Center Bottom"
1705
+ msgstr ""
1706
+
1707
+ #: controls/ooohboi-oh-animator.php:1061
1708
+ msgid "Right Top"
1709
+ msgstr ""
1710
+
1711
+ #: controls/ooohboi-oh-animator.php:1062
1712
+ msgid "Right Center"
1713
+ msgstr ""
1714
+
1715
+ #: controls/ooohboi-oh-animator.php:1063
1716
+ msgid "Right Bottom"
1717
+ msgstr ""
1718
+
1719
+ #: controls/ooohboi-oh-animator.php:1151
1720
+ msgid "Easing and Timing"
1721
+ msgstr ""
1722
+
1723
+ #: controls/ooohboi-oh-animator.php:1153
1724
+ msgid "These will make any animation look more natural"
1725
+ msgstr ""
1726
+
1727
+ #: controls/ooohboi-oh-animator.php:1165
1728
+ msgid "Ease"
1729
+ msgstr ""
1730
+
1731
+ #: controls/ooohboi-oh-animator.php:1166
1732
+ msgid "It will automatically become NONE with the Scrub option enabled!"
1733
+ msgstr ""
1734
+
1735
+ #: controls/ooohboi-oh-animator.php:1172
1736
+ msgid "Power1.in"
1737
+ msgstr ""
1738
+
1739
+ #: controls/ooohboi-oh-animator.php:1173
1740
+ msgid "Power1.out"
1741
+ msgstr ""
1742
+
1743
+ #: controls/ooohboi-oh-animator.php:1174
1744
+ msgid "Power1.inOut"
1745
+ msgstr ""
1746
+
1747
+ #: controls/ooohboi-oh-animator.php:1175
1748
+ msgid "Power2.in"
1749
+ msgstr ""
1750
+
1751
+ #: controls/ooohboi-oh-animator.php:1176
1752
+ msgid "Power2.out"
1753
+ msgstr ""
1754
+
1755
+ #: controls/ooohboi-oh-animator.php:1177
1756
+ msgid "Power2.inOut"
1757
+ msgstr ""
1758
+
1759
+ #: controls/ooohboi-oh-animator.php:1178
1760
+ msgid "Power3.in"
1761
+ msgstr ""
1762
+
1763
+ #: controls/ooohboi-oh-animator.php:1179
1764
+ msgid "Power3.out"
1765
+ msgstr ""
1766
+
1767
+ #: controls/ooohboi-oh-animator.php:1180
1768
+ msgid "Power3.inOut"
1769
+ msgstr ""
1770
+
1771
+ #: controls/ooohboi-oh-animator.php:1181
1772
+ msgid "Power4.in"
1773
+ msgstr ""
1774
+
1775
+ #: controls/ooohboi-oh-animator.php:1182
1776
+ msgid "Power4.out"
1777
+ msgstr ""
1778
+
1779
+ #: controls/ooohboi-oh-animator.php:1183
1780
+ msgid "Power4.inOut"
1781
+ msgstr ""
1782
+
1783
+ #: controls/ooohboi-oh-animator.php:1184
1784
+ msgid "Circ.in"
1785
+ msgstr ""
1786
+
1787
+ #: controls/ooohboi-oh-animator.php:1185
1788
+ msgid "Circ.out"
1789
+ msgstr ""
1790
+
1791
+ #: controls/ooohboi-oh-animator.php:1186
1792
+ msgid "Circ.inOut"
1793
+ msgstr ""
1794
+
1795
+ #: controls/ooohboi-oh-animator.php:1187
1796
+ msgid "Expo.in"
1797
+ msgstr ""
1798
+
1799
+ #: controls/ooohboi-oh-animator.php:1188
1800
+ msgid "Expo.out"
1801
+ msgstr ""
1802
+
1803
+ #: controls/ooohboi-oh-animator.php:1189
1804
+ msgid "Expo.inOut"
1805
+ msgstr ""
1806
+
1807
+ #: controls/ooohboi-oh-animator.php:1190
1808
+ msgid "Sine.in"
1809
+ msgstr ""
1810
+
1811
+ #: controls/ooohboi-oh-animator.php:1191
1812
+ msgid "Sine.out"
1813
+ msgstr ""
1814
+
1815
+ #: controls/ooohboi-oh-animator.php:1192
1816
+ msgid "Sine.inOut"
1817
+ msgstr ""
1818
+
1819
+ #: controls/ooohboi-oh-animator.php:1193
1820
+ msgid "Elastic"
1821
+ msgstr ""
1822
+
1823
+ #: controls/ooohboi-oh-animator.php:1194
1824
+ msgid "Back"
1825
+ msgstr ""
1826
+
1827
+ #: controls/ooohboi-oh-animator.php:1195
1828
+ msgid "Bounce"
1829
+ msgstr ""
1830
+
1831
+ #: controls/ooohboi-oh-animator.php:1207
1832
+ msgid "Animation duration in seconds. 0.4 is deafult."
1833
+ msgstr ""
1834
+
1835
+ #: controls/ooohboi-oh-animator.php:1223
1836
+ msgid "Seconds to pause before the animation starts."
1837
+ msgstr ""
1838
+
1839
+ #: controls/ooohboi-overlaiz.php:61
1840
  msgid "Enable Overlaiz?"
1841
  msgstr ""
1842
 
1843
+ #: controls/ooohboi-overlaiz.php:129 controls/ooohboi-overlay-underlay.php:262
1844
+ #: controls/ooohboi-overlay-underlay.php:901 controls/ooohboi-pseudo.php:277
1845
+ #: controls/ooohboi-pseudo.php:932
1846
  msgid "Calc Width"
1847
  msgstr ""
1848
 
1849
+ #: controls/ooohboi-overlaiz.php:196 controls/ooohboi-overlay-underlay.php:323
1850
+ #: controls/ooohboi-overlay-underlay.php:960 controls/ooohboi-pseudo.php:342
1851
+ #: controls/ooohboi-pseudo.php:995
1852
  msgid "Calc Height"
1853
  msgstr ""
1854
 
1855
+ #: controls/ooohboi-overlaiz.php:212
1856
  msgid "Position - X"
1857
  msgstr ""
1858
 
1859
+ #: controls/ooohboi-overlaiz.php:263
1860
  msgid "Calc Position - X"
1861
  msgstr ""
1862
 
1863
+ #: controls/ooohboi-overlaiz.php:279
1864
  msgid "Position - Y"
1865
  msgstr ""
1866
 
1867
+ #: controls/ooohboi-overlaiz.php:330
1868
  msgid "Calc Position - Y"
1869
  msgstr ""
1870
 
1871
+ #: controls/ooohboi-overlaiz.php:346
1872
  msgid "Rotation"
1873
  msgstr ""
1874
 
1875
+ #: controls/ooohboi-overlaiz.php:494
 
 
 
 
 
 
1876
  msgid "Mask"
1877
  msgstr ""
1878
 
1879
+ #: controls/ooohboi-overlaiz.php:495 controls/ooohboi-spacerat.php:185
1880
+ #: controls/ooohboi-spacerat.php:354
1881
  msgid ""
1882
  "NOTE: In order to see the effect you should add the Background to the Spacer "
1883
  "widget first!"
1884
  msgstr ""
1885
 
1886
+ #: controls/ooohboi-overlaiz.php:513 controls/ooohboi-overlay-underlay.php:557
1887
+ #: controls/ooohboi-overlay-underlay.php:1189 controls/ooohboi-pseudo.php:586
1888
+ #: controls/ooohboi-pseudo.php:1233 controls/ooohboi-spacerat.php:201
1889
  msgid "Choose Image Mask"
1890
  msgstr ""
1891
 
1892
+ #: controls/ooohboi-overlaiz.php:514 controls/ooohboi-overlay-underlay.php:558
1893
+ #: controls/ooohboi-overlay-underlay.php:1190 controls/ooohboi-pseudo.php:587
1894
+ #: controls/ooohboi-pseudo.php:1234 controls/ooohboi-spacerat.php:202
1895
  #, php-format
1896
  msgid ""
1897
  "NOTE: Image Mask should be black-and-transparent SVG file! Anything that’s "
1899
  "transparent will be completely hidden."
1900
  msgstr ""
1901
 
1902
+ #: controls/ooohboi-overlaiz.php:533 controls/ooohboi-overlay-underlay.php:577
1903
+ #: controls/ooohboi-overlay-underlay.php:1209 controls/ooohboi-pseudo.php:606
1904
+ #: controls/ooohboi-pseudo.php:1253 controls/ooohboi-spacerat.php:220
1905
+ #: controls/ooohboi-videomasq.php:72
1906
  msgid "Mask position"
1907
  msgstr ""
1908
 
1909
+ #: controls/ooohboi-overlaiz.php:539 controls/ooohboi-overlay-underlay.php:583
1910
+ #: controls/ooohboi-overlay-underlay.php:1215 controls/ooohboi-pseudo.php:612
1911
+ #: controls/ooohboi-pseudo.php:1259 controls/ooohboi-spacerat.php:226
1912
+ #: controls/ooohboi-videomasq.php:78
 
 
 
 
 
 
 
1913
  msgid "Center Left"
1914
  msgstr ""
1915
 
1916
+ #: controls/ooohboi-overlaiz.php:540 controls/ooohboi-overlay-underlay.php:584
1917
+ #: controls/ooohboi-overlay-underlay.php:1216 controls/ooohboi-pseudo.php:613
1918
+ #: controls/ooohboi-pseudo.php:1260 controls/ooohboi-spacerat.php:227
1919
+ #: controls/ooohboi-videomasq.php:79
1920
  msgid "Center Right"
1921
  msgstr ""
1922
 
1923
+ #: controls/ooohboi-overlaiz.php:541 controls/ooohboi-overlay-underlay.php:585
1924
+ #: controls/ooohboi-overlay-underlay.php:1217 controls/ooohboi-pseudo.php:614
1925
+ #: controls/ooohboi-pseudo.php:1261 controls/ooohboi-spacerat.php:228
1926
+ #: controls/ooohboi-videomasq.php:80
1927
  msgid "Top Center"
1928
  msgstr ""
1929
 
1930
+ #: controls/ooohboi-overlaiz.php:542 controls/ooohboi-overlay-underlay.php:586
1931
+ #: controls/ooohboi-overlay-underlay.php:1218 controls/ooohboi-pseudo.php:615
1932
+ #: controls/ooohboi-pseudo.php:1262 controls/ooohboi-spacerat.php:229
1933
+ #: controls/ooohboi-videomasq.php:81
1934
  msgid "Top Left"
1935
  msgstr ""
1936
 
1937
+ #: controls/ooohboi-overlaiz.php:543 controls/ooohboi-overlay-underlay.php:587
1938
+ #: controls/ooohboi-overlay-underlay.php:1219 controls/ooohboi-pseudo.php:616
1939
+ #: controls/ooohboi-pseudo.php:1263 controls/ooohboi-spacerat.php:230
1940
+ #: controls/ooohboi-videomasq.php:82
1941
  msgid "Top Right"
1942
  msgstr ""
1943
 
1944
+ #: controls/ooohboi-overlaiz.php:544 controls/ooohboi-overlay-underlay.php:588
1945
+ #: controls/ooohboi-overlay-underlay.php:1220 controls/ooohboi-pseudo.php:617
1946
+ #: controls/ooohboi-pseudo.php:1264 controls/ooohboi-spacerat.php:231
1947
+ #: controls/ooohboi-videomasq.php:83
1948
  msgid "Bottom Center"
1949
  msgstr ""
1950
 
1951
+ #: controls/ooohboi-overlaiz.php:545 controls/ooohboi-overlay-underlay.php:589
1952
+ #: controls/ooohboi-overlay-underlay.php:1221 controls/ooohboi-pseudo.php:618
1953
+ #: controls/ooohboi-pseudo.php:1265 controls/ooohboi-spacerat.php:232
1954
+ #: controls/ooohboi-videomasq.php:84
1955
  msgid "Bottom Left"
1956
  msgstr ""
1957
 
1958
+ #: controls/ooohboi-overlaiz.php:546 controls/ooohboi-overlay-underlay.php:590
1959
+ #: controls/ooohboi-overlay-underlay.php:1222 controls/ooohboi-pseudo.php:619
1960
+ #: controls/ooohboi-pseudo.php:1266 controls/ooohboi-spacerat.php:233
1961
+ #: controls/ooohboi-videomasq.php:85
1962
  msgid "Bottom Right"
1963
  msgstr ""
1964
 
1965
+ #: controls/ooohboi-overlaiz.php:563 controls/ooohboi-overlay-underlay.php:607
1966
+ #: controls/ooohboi-overlay-underlay.php:1238 controls/ooohboi-pseudo.php:636
1967
+ #: controls/ooohboi-pseudo.php:1282 controls/ooohboi-spacerat.php:249
1968
+ #: controls/ooohboi-videomasq.php:100
1969
  msgid "Mask size"
1970
  msgstr ""
1971
 
1972
+ #: controls/ooohboi-overlaiz.php:569 controls/ooohboi-overlay-underlay.php:613
1973
+ #: controls/ooohboi-overlay-underlay.php:1244 controls/ooohboi-pseudo.php:642
1974
+ #: controls/ooohboi-pseudo.php:1288 controls/ooohboi-spacerat.php:255
1975
+ #: controls/ooohboi-videomasq.php:106
1976
  msgid "Cover"
1977
  msgstr ""
1978
 
1979
+ #: controls/ooohboi-overlaiz.php:570 controls/ooohboi-overlay-underlay.php:614
1980
+ #: controls/ooohboi-overlay-underlay.php:1245 controls/ooohboi-pseudo.php:643
1981
+ #: controls/ooohboi-pseudo.php:1289 controls/ooohboi-spacerat.php:256
1982
+ #: controls/ooohboi-videomasq.php:107
1983
  msgid "Contain"
1984
  msgstr ""
1985
 
1986
+ #: controls/ooohboi-overlaiz.php:645 controls/ooohboi-overlay-underlay.php:687
1987
+ #: controls/ooohboi-overlay-underlay.php:1316 controls/ooohboi-pseudo.php:716
1988
+ #: controls/ooohboi-pseudo.php:1360 controls/ooohboi-spacerat.php:327
1989
+ #: controls/ooohboi-videomasq.php:172
1990
  msgid "Mask repeat"
1991
  msgstr ""
1992
 
1993
+ #: controls/ooohboi-overlaiz.php:649 controls/ooohboi-overlay-underlay.php:691
1994
+ #: controls/ooohboi-overlay-underlay.php:1320 controls/ooohboi-pseudo.php:720
1995
+ #: controls/ooohboi-pseudo.php:1364 controls/ooohboi-spacerat.php:331
1996
+ #: controls/ooohboi-videomasq.php:176
1997
  msgid "No-repeat"
1998
  msgstr ""
1999
 
2000
+ #: controls/ooohboi-overlaiz.php:650 controls/ooohboi-overlay-underlay.php:692
2001
+ #: controls/ooohboi-overlay-underlay.php:1321 controls/ooohboi-pseudo.php:721
2002
+ #: controls/ooohboi-pseudo.php:1365 controls/ooohboi-spacerat.php:332
2003
+ #: controls/ooohboi-videomasq.php:177
2004
  msgid "Repeat"
2005
  msgstr ""
2006
 
2007
+ #: controls/ooohboi-overlaiz.php:651 controls/ooohboi-overlay-underlay.php:693
2008
+ #: controls/ooohboi-overlay-underlay.php:1322 controls/ooohboi-pseudo.php:722
2009
+ #: controls/ooohboi-pseudo.php:1366 controls/ooohboi-spacerat.php:333
2010
+ #: controls/ooohboi-videomasq.php:178
2011
  msgid "Repeat-x"
2012
  msgstr ""
2013
 
2014
+ #: controls/ooohboi-overlaiz.php:652 controls/ooohboi-overlay-underlay.php:694
2015
+ #: controls/ooohboi-overlay-underlay.php:1323 controls/ooohboi-pseudo.php:723
2016
+ #: controls/ooohboi-pseudo.php:1367 controls/ooohboi-spacerat.php:334
2017
+ #: controls/ooohboi-videomasq.php:179
2018
  msgid "Repeat-y"
2019
  msgstr ""
2020
 
2021
+ #: controls/ooohboi-overlaiz.php:672 controls/ooohboi-overlay-underlay.php:737
2022
+ #: controls/ooohboi-overlay-underlay.php:1365 controls/ooohboi-pseudo.php:766
2023
+ #: controls/ooohboi-pseudo.php:1409
2024
  msgid "Z-Index"
2025
  msgstr ""
2026
 
2027
+ #: controls/ooohboi-overlay-underlay.php:102
2028
+ msgid "Enable PoopArt?"
2029
+ msgstr ""
2030
+
2031
+ #: controls/ooohboi-overlay-underlay.php:174
2032
+ #: controls/ooohboi-overlay-underlay.php:814 controls/ooohboi-pseudo.php:184
2033
+ #: controls/ooohboi-pseudo.php:843
2034
  msgid "Blend Mode"
2035
  msgstr ""
2036
 
2037
+ #: controls/ooohboi-overlay-underlay.php:201
2038
+ #: controls/ooohboi-overlay-underlay.php:841 controls/ooohboi-pseudo.php:212
2039
+ #: controls/ooohboi-pseudo.php:870
2040
  msgid "Position and Size"
2041
  msgstr ""
2042
 
2043
+ #: controls/ooohboi-overlay-underlay.php:324
2044
+ #: controls/ooohboi-overlay-underlay.php:446
2045
+ #: controls/ooohboi-overlay-underlay.php:961 controls/ooohboi-pseudo.php:343
2046
+ #: controls/ooohboi-pseudo.php:473 controls/ooohboi-pseudo.php:996
2047
  msgid "Enter CSS calc value only! Like: 45% + 85px or 100% - 3em"
2048
  msgstr ""
2049
 
2050
+ #: controls/ooohboi-overlay-underlay.php:384
2051
+ #: controls/ooohboi-overlay-underlay.php:1019 controls/ooohboi-pseudo.php:407
2052
+ #: controls/ooohboi-pseudo.php:1058
2053
  msgid "Calc Offset Top"
2054
  msgstr ""
2055
 
2056
+ #: controls/ooohboi-overlay-underlay.php:445
2057
+ #: controls/ooohboi-overlay-underlay.php:1078 controls/ooohboi-pseudo.php:472
2058
+ #: controls/ooohboi-pseudo.php:1121
2059
  msgid "Calc Offset Left"
2060
  msgstr ""
2061
 
2062
+ #: controls/ooohboi-overlay-underlay.php:540
 
 
 
 
 
 
2063
  msgid "Overlay Mask"
2064
  msgstr ""
2065
 
2066
+ #: controls/ooohboi-overlay-underlay.php:759
2067
  msgid "Underlay"
2068
  msgstr ""
2069
 
2070
+ #: controls/ooohboi-overlay-underlay.php:1173
2071
  msgid "Underlay Mask"
2072
  msgstr ""
2073
 
2074
+ #: controls/ooohboi-overlay-underlay.php:1395
2075
  msgid "Get rid of the Horizontal scroller?"
2076
  msgstr ""
2077
 
2078
+ #: controls/ooohboi-overlay-underlay.php:1396
2079
  msgid ""
2080
  "OoohBoi POOOPART may cause Horizontal Scroller to show up. This is how you "
2081
  "can remove it."
2082
  msgstr ""
2083
 
2084
+ #: controls/ooohboi-overlay-underlay.php:1414
2085
  msgid "Baseline Grid"
2086
  msgstr ""
2087
 
2088
+ #: controls/ooohboi-overlay-underlay.php:1415
2089
  msgid "Baseline grid helps you maintain accuracy and consistency"
2090
  msgstr ""
2091
 
2092
+ #: controls/ooohboi-overlay-underlay.php:1428
2093
  msgid "Grid style"
2094
  msgstr ""
2095
 
2096
+ #: controls/ooohboi-overlay-underlay.php:1432
2097
  msgid "Squares"
2098
  msgstr ""
2099
 
2100
+ #: controls/ooohboi-overlay-underlay.php:1433
2101
  msgid "Vertical lines"
2102
  msgstr ""
2103
 
2104
+ #: controls/ooohboi-overlay-underlay.php:1434
2105
  msgid "Horizontal lines"
2106
  msgstr ""
2107
 
2108
+ #: controls/ooohboi-overlay-underlay.php:1444
2109
  msgid "Grid color"
2110
  msgstr ""
2111
 
2112
+ #: controls/ooohboi-overlay-underlay.php:1455
2113
  msgid "Grid size"
2114
  msgstr ""
2115
 
2116
+ #: controls/ooohboi-overlay-underlay.php:1479
2117
  msgid "Vertical Spacing"
2118
  msgstr ""
2119
 
2120
+ #: controls/ooohboi-overlay-underlay.php:1503
2121
  msgid "Horizontal Spacing"
2122
  msgstr ""
2123
 
2141
  msgid "Unstyle Prev and Next?"
2142
  msgstr ""
2143
 
2144
+ #: controls/ooohboi-perspektive.php:101
2145
  msgid "Enable Perspektive?"
2146
  msgstr ""
2147
 
2148
+ #: controls/ooohboi-perspektive.php:102
2149
  msgid ""
2150
  "NOTE: Perspektive interferes with z-index! The background of the element "
2151
  "with the Perspektive will not be affected by the Perspektive."
2152
  msgstr ""
2153
 
2154
+ #: controls/ooohboi-perspektive.php:117
2155
  msgid "Perspective"
2156
  msgstr ""
2157
 
2158
+ #: controls/ooohboi-perspektive.php:150
2159
  msgid "Perspective Origin"
2160
  msgstr ""
2161
 
2162
+ #: controls/ooohboi-perspektive.php:175
2163
  msgid "Translate Z"
2164
  msgstr ""
2165
 
2166
+ #: controls/ooohboi-perspektive.php:208
2167
  msgid "Rotate X"
2168
  msgstr ""
2169
 
2170
+ #: controls/ooohboi-perspektive.php:232
2171
  msgid "Rotate Y"
2172
  msgstr ""
2173
 
2174
+ #: controls/ooohboi-perspektive.php:257
2175
  msgid "Just in case the wrapper is \"overflow: hidden\""
2176
  msgstr ""
2177
 
2185
  "(Column) uses the fixed height."
2186
  msgstr ""
2187
 
2188
+ #: controls/ooohboi-photomorph.php:94
2189
  msgid "Enable PhotoMorph"
2190
  msgstr ""
2191
 
2192
+ #: controls/ooohboi-photomorph.php:95
2193
  msgid ""
2194
  "That will allow you to add the custom clip-path for both Normal and Hover "
2195
  "Image widget."
2196
  msgstr ""
2197
 
2198
+ #: controls/ooohboi-photomorph.php:170
2199
  msgid "Animate Hover?"
2200
  msgstr ""
2201
 
2202
+ #: controls/ooohboi-photomorph.php:171
2203
  msgid ""
2204
  "To ensure the smooth transition, be sure that the number of nodes of the "
2205
  "Normal state clip-path EQUALS the number of nodes of the Hover state!"
2206
  msgstr ""
2207
 
2208
+ #: controls/ooohboi-photomorph.php:187
2209
  msgid "Animation duration"
2210
  msgstr ""
2211
 
2212
+ #: controls/ooohboi-photomorph.php:214
2213
  msgid "Animation effect"
2214
  msgstr ""
2215
 
2216
+ #: controls/ooohboi-photomorph.php:239
2217
  msgid "Animation delay"
2218
  msgstr ""
2219
 
2220
+ #: controls/ooohboi-pseudo.php:111
2221
  msgid "Enable Pseudo?"
2222
  msgstr ""
2223
 
2224
+ #: controls/ooohboi-pseudo.php:112
2225
  msgid ""
2226
  "This is how you can create and manage :before and :after pseudo elements for "
2227
  "this column"
2228
  msgstr ""
2229
 
2230
+ #: controls/ooohboi-pseudo.php:130
2231
  msgid "Before"
2232
  msgstr ""
2233
 
2234
+ #: controls/ooohboi-pseudo.php:569
2235
  msgid "Before Mask"
2236
  msgstr ""
2237
 
2238
+ #: controls/ooohboi-pseudo.php:788
2239
  msgid "After"
2240
  msgstr ""
2241
 
2242
+ #: controls/ooohboi-pseudo.php:1216
2243
  msgid "After Mask"
2244
  msgstr ""
2245
 
2246
+ #: controls/ooohboi-searchcop.php:91
2247
  msgid "Search Target"
2248
  msgstr ""
2249
 
2250
+ #: controls/ooohboi-searchcop.php:96
2251
  msgid "Search Posts"
2252
  msgstr ""
2253
 
2254
+ #: controls/ooohboi-searchcop.php:97
2255
  msgid "Search Pages"
2256
  msgstr ""
2257
 
2258
+ #: controls/ooohboi-searchcop.php:98
2259
  msgid "Search Products"
2260
  msgstr ""
2261
 
2262
+ #: controls/ooohboi-searchcop.php:99
2263
  msgid "Search All"
2264
  msgstr ""
2265
 
2271
  msgid "Creates a shadow that conforms to the shape."
2272
  msgstr ""
2273
 
2274
+ #: controls/ooohboi-shadough.php:61 controls/ooohboi-spacerat.php:408
2275
  msgid "Offset X"
2276
  msgstr ""
2277
 
2278
+ #: controls/ooohboi-shadough.php:92 controls/ooohboi-spacerat.php:441
2279
  msgid "Offset Y"
2280
  msgstr ""
2281
 
2282
+ #: controls/ooohboi-shadough.php:153 controls/ooohboi-spacerat.php:506
2283
  msgid "Shadow Color"
2284
  msgstr ""
2285
 
2286
+ #: controls/ooohboi-spacerat.php:97
2287
  msgid "Enable SpaceRat?"
2288
  msgstr ""
2289
 
2290
+ #: controls/ooohboi-spacerat.php:98
2291
  msgid "Awesome gear for the pretty-much dull Spacer widget."
2292
  msgstr ""
2293
 
2294
+ #: controls/ooohboi-spacerat.php:157 controls/ooohboi-teleporter.php:109
2295
  msgid "Cursor Pointer"
2296
  msgstr ""
2297
 
2298
+ #: controls/ooohboi-spacerat.php:158 controls/ooohboi-teleporter.php:110
2299
  msgid "Keep the default cursor or show pointer on Hover?"
2300
  msgstr ""
2301
 
2302
+ #: controls/ooohboi-spacerat.php:184
2303
  msgid "SpaceRat Mask"
2304
  msgstr ""
2305
 
2306
+ #: controls/ooohboi-spacerat.php:376
2307
  msgid "Add shadow?"
2308
  msgstr ""
2309
 
2310
+ #: controls/ooohboi-spacerat.php:391
2311
  msgid "Define Shadow"
2312
  msgstr ""
2313
 
2375
  msgid "Strongly advised: HIDDEN."
2376
  msgstr ""
2377
 
2378
+ #: controls/ooohboi-videomasq.php:54
2379
  msgid "Choose Video Mask"
2380
  msgstr ""
2381
 
2382
+ #: controls/ooohboi-videomasq.php:55
2383
  #, php-format
2384
  msgid ""
2385
  "NOTE: The video mask should be black-and-transparent SVG file! Anything "
2387
  "that’s transparent will be completely hidden."
2388
  msgstr ""
2389
 
2390
+ #: controls/ooohboi-widget-stalker.php:96
2391
  msgid ""
2392
+ "NOTE: Position, alignment, direction and justification of all widgets is "
2393
+ "controlled by the parent Container!"
2394
  msgstr ""
2395
 
2396
+ #: controls/ooohboi-widget-stalker.php:166
2397
  msgid "Widget width"
2398
  msgstr ""
2399
 
2400
+ #: controls/ooohboi-widget-stalker.php:221
2401
  msgid "Align self"
2402
  msgstr ""
2403
 
2404
+ #: controls/ooohboi-widget-stalker.php:222
2405
  msgid "Align this widget vertically"
2406
  msgstr ""
2407
 
2408
+ #: controls/ooohboi-widget-stalker.php:243
2409
  msgid "Widget Order"
2410
  msgstr ""
2411
 
2412
+ #: inc/common-functions.php:43
2413
  msgid "What's New?"
2414
  msgstr ""
2415
 
2416
+ #: inc/common-functions.php:56
2417
  msgid "Manage Extensions"
2418
  msgstr ""
2419
 
2420
+ #: inc/common-functions.php:62
2421
  #, php-format
2422
  msgid ""
2423
  "%sThe following extensions are currently available with Steroids for "
2425
  "or OFF.%s"
2426
  msgstr ""
2427
 
2428
+ #: inc/common-functions.php:69
2429
  #, php-format
2430
  msgid ""
2431
  "%sAllows you to change the writing mode of the Heading and Text Editor "
2432
  "widgets%s"
2433
  msgstr ""
2434
 
2435
+ #: inc/common-functions.php:76
2436
  #, php-format
2437
  msgid "%sAdd an overlay or underlay ghost-element to any Elementor Widget%s"
2438
  msgstr ""
2439
 
2440
+ #: inc/common-functions.php:83
2441
  #, php-format
2442
  msgid ""
2443
+ "%sAn awesome set of options for the Background Overlay element manipulation "
2444
+ "(up to Elementor 3.5.9)%s"
2445
  msgstr ""
2446
 
2447
+ #: inc/common-functions.php:90
2448
  #, php-format
2449
  msgid "%sIt allows you to style up the posts pagination in Elementor%s"
2450
  msgstr ""
2451
 
2452
+ #: inc/common-functions.php:97
2453
  #, php-format
2454
+ msgid ""
2455
+ "%sA must to have extension for the Section and Columns (up to Elementor "
2456
+ "3.5.9)%s"
2457
  msgstr ""
2458
 
2459
+ #: inc/common-functions.php:104
2460
  #, php-format
2461
  msgid "%sThe content slider made out of Section and Columns (Swiper)%s"
2462
  msgstr ""
2463
 
2464
+ #: inc/common-functions.php:111
2465
  #, php-format
2466
+ msgid ""
2467
+ "%sMake the Image widget full-height of the container (up to Elementor "
2468
+ "3.5.9)%s"
2469
  msgstr ""
2470
 
2471
+ #: inc/common-functions.php:118
2472
  #, php-format
2473
+ msgid ""
2474
+ "%sThe Column hover controls for an exceptional effects (up to Elementor "
2475
+ "3.5.9)%s"
2476
  msgstr ""
2477
 
2478
+ #: inc/common-functions.php:125
2479
  #, php-format
2480
  msgid "%sDecide what to search for; posts only, pages only or everything%s"
2481
  msgstr ""
2482
 
2483
+ #: inc/common-functions.php:132
2484
  #, php-format
2485
  msgid ""
2486
  "%sAdd the SVG mask to the Section video background and let the video play "
2487
  "inside any shape%s"
2488
  msgstr ""
2489
 
2490
+ #: inc/common-functions.php:139
2491
  #, php-format
2492
  msgid "%sDesign awesome buttons in Elementor%s"
2493
  msgstr ""
2494
 
2495
+ #: inc/common-functions.php:146
2496
  #, php-format
2497
  msgid "%sA small set of options that allow you to move widgets in 3D space%s"
2498
  msgstr ""
2499
 
2500
+ #: inc/common-functions.php:153
2501
  #, php-format
2502
  msgid "%sCreate the shadow that conforms the shape%s"
2503
  msgstr ""
2504
 
2505
+ #: inc/common-functions.php:160
2506
  #, php-format
2507
  msgid ""
2508
  "%sAllows you to add the clip-path to the Image widget for Normal and Hover "
2509
  "state%s"
2510
  msgstr ""
2511
 
2512
+ #: inc/common-functions.php:167
2513
  #, php-format
2514
  msgid "%sAllows you to style up the post comments."
2515
  msgstr ""
2516
 
2517
+ #: inc/common-functions.php:174
2518
  #, php-format
2519
  msgid "%sAdds new shine to the Spacer widget."
2520
  msgstr ""
2521
 
2522
+ #: inc/common-functions.php:181
2523
  #, php-format
2524
  msgid "%sImage Box widget extra controls"
2525
  msgstr ""
2526
 
2527
+ #: inc/common-functions.php:188
2528
  #, php-format
2529
  msgid "%sIcon Box widget extra controls"
2530
  msgstr ""
2531
 
2532
+ #: inc/common-functions.php:195
2533
  #, php-format
2534
  msgid "%sAnimate widgets on columns mouse-over event"
2535
  msgstr ""
2536
 
2537
+ #: inc/common-functions.php:202
2538
  #, php-format
2539
  msgid ""
2540
  "%sAllows you to additionaly style Image Carousel and Media Carousel controls"
2541
  "%s"
2542
  msgstr ""
2543
 
2544
+ #: inc/common-functions.php:209
2545
  #, php-format
2546
  msgid "%sStack widgets like flex elements%s"
2547
  msgstr ""
2548
 
2549
+ #: inc/common-functions.php:216
2550
  #, php-format
2551
  msgid "%sTake control over the Column's pseudo elements%s"
2552
  msgstr ""
2553
 
2554
+ #: inc/common-functions.php:223
2555
+ #, php-format
2556
+ msgid "%sAllows you to move the Icon List widget bullet to top%s"
2557
+ msgstr ""
2558
+
2559
+ #: inc/common-functions.php:230
2560
+ #, php-format
2561
+ msgid ""
2562
+ "%sJust a few extra Container settings which can make your life easier (for "
2563
+ "Elementor 3.6 and above)%s"
2564
+ msgstr ""
2565
+
2566
+ #: inc/common-functions.php:238
2567
  msgid "Manage JS Libraries"
2568
  msgstr ""
2569
 
2570
+ #: inc/common-functions.php:244
2571
  #, php-format
2572
  msgid ""
2573
  "%sThe following libraries are currently available with Steroids for "
2575
  "OFF.%s"
2576
  msgstr ""
2577
 
2578
+ #: inc/common-functions.php:250
2579
  msgid "LOCOMOTIVE SCROLL"
2580
  msgstr ""
2581
 
2582
+ #: inc/common-functions.php:251
2583
  #, php-format
2584
  msgid ""
2585
  "%1$sDetection of elements in viewport and smooth scrolling with parallax.%3$s"
2586
  "%4$sSOURCE%5$s%2$s"
2587
  msgstr ""
2588
 
2589
+ #: inc/common-functions.php:262
2590
  msgid "Enable for Tablets"
2591
  msgstr ""
2592
 
2593
+ #: inc/common-functions.php:263
2594
  msgid "Enable for Mobiles"
2595
  msgstr ""
2596
 
2597
+ #: inc/common-functions.php:272
2598
  msgid "Multiplier"
2599
  msgstr ""
2600
 
2601
+ #: inc/common-functions.php:273
2602
  #, php-format
2603
  msgid "%sBoost/reduce scrolling speed. 1 is the default.%s"
2604
  msgstr ""
2605
 
2606
+ #: inc/common-functions.php:282
2607
  msgid "Refresh on resize?"
2608
  msgstr ""
2609
 
2610
+ #: inc/common-functions.php:283
2611
  msgid ""
2612
  "Things get messy on resize. That will do the silent page refresh upon the "
2613
  "window resize/orientationchange."
2614
  msgstr ""
2615
 
2616
+ #: inc/common-functions.php:290
2617
+ msgid "Enable freehand mode?"
2618
+ msgstr ""
2619
+
2620
+ #: inc/common-functions.php:291
2621
+ #, php-format
2622
+ msgid ""
2623
+ "That removes all the default %sdata-scroll-section%s attributes so you can "
2624
+ "set them at will."
2625
+ msgstr ""
2626
+
2627
+ #: inc/common-functions.php:302
2628
+ #, php-format
2629
+ msgid ""
2630
+ "%1$s Cross-browser JavaScript library/API which is used to create and "
2631
+ "animate 3D computer graphics to display in a web browser.%3$s%4$sSOURCE%5$s"
2632
+ "%2$s"
2633
+ msgstr ""
2634
+
2635
+ #: inc/common-functions.php:309
2636
+ #, php-format
2637
+ msgid ""
2638
+ "%1$s A lightweight JavaScript animation library with a simple, yet powerful "
2639
+ "API.%3$s%4$sSOURCE%5$s%2$s"
2640
+ msgstr ""
2641
+
2642
+ #: inc/common-functions.php:316
2643
+ #, php-format
2644
+ msgid ""
2645
+ "%1$s Create badass fluid and smooth transitions between your website's pages."
2646
+ "%3$s%4$sSOURCE%5$s%2$s"
2647
+ msgstr ""
2648
+
2649
+ #: inc/common-functions.php:323
2650
  #, php-format
2651
  msgid ""
2652
  "%1$sGreenSock's GSAP JavaScript animation library (including Draggable).%3$s"
2653
  "%4$sSOURCE%5$s%2$s"
2654
  msgstr ""
2655
 
2656
+ #: inc/common-functions.php:330
2657
  #, php-format
2658
  msgid "%1$sLet your page react to scroll changes.%3$s%4$sSOURCE%5$s%2$s"
2659
  msgstr ""
2660
 
2661
+ #: inc/common-functions.php:337
2662
+ #, php-format
2663
+ msgid ""
2664
+ "%1$sAnimates the scroll position of the window or a DOM element.%3$s"
2665
+ "%4$sSOURCE%5$s%2$s"
2666
+ msgstr ""
2667
+
2668
+ #: inc/common-functions.php:344
2669
+ #, php-format
2670
+ msgid ""
2671
+ "%1$sAnimate anything (SVG, DOM, canvas, generic objects, whatever) along a "
2672
+ "motion path in any browser.%3$s%4$sSOURCE%5$s%2$s"
2673
+ msgstr ""
2674
+
2675
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:710
2676
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:733
2677
  msgid "Settings"
2678
  msgstr ""
2679
 
2680
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:796
2681
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:800
2682
  msgid "Plugin Options"
2683
  msgstr ""
2684
 
2685
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1500
2686
  msgid "ERROR:"
2687
  msgstr ""
2688
 
2689
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1501
2690
  msgid "This field class is not available!"
2691
  msgstr ""
2692
 
2693
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1573
2694
  msgid "Saving..."
2695
  msgstr ""
2696
 
2697
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1573
2698
  msgid "Saved Successfully."
2699
  msgstr ""
2700
 
2701
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1596
2702
+ #: inc/exopite-simple-options/exopite-simple-options-framework-class.php:1611
2703
  msgid "Save Settings"
2704
  msgstr ""
2705
 
2817
  msgid "Add Video"
2818
  msgstr ""
2819
 
2820
+ #: ooohboi-steroids.php:339
2821
+ #, php-format
2822
+ msgid "\"%1$s\" requires \"%2$s\" to be installed and activated."
2823
+ msgstr ""
2824
+
2825
+ #: ooohboi-steroids.php:340
2826
+ msgid "Steroids for Elementor"
2827
+ msgstr ""
2828
+
2829
+ #: ooohboi-steroids.php:341
2830
+ msgid "Elementor"
2831
+ msgstr ""
2832
+
2833
  #: inc/exopite-simple-options/assets/editors/ace/worker-coffee.js:1
2834
  msgid "arguments"
2835
  msgstr ""
lib/anime/anime.min.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
1
+ /*
2
+ * anime.js v3.2.1
3
+ * (c) 2020 Julian Garnier
4
+ * Released under the MIT license
5
+ * animejs.com
6
+ */
7
+
8
+ !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.anime=e()}(this,function(){"use strict";var n={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},e={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},t=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective","matrix","matrix3d"],r={CSS:{},springs:{}};function a(n,e,t){return Math.min(Math.max(n,e),t)}function o(n,e){return n.indexOf(e)>-1}function u(n,e){return n.apply(null,e)}var i={arr:function(n){return Array.isArray(n)},obj:function(n){return o(Object.prototype.toString.call(n),"Object")},pth:function(n){return i.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return n.nodeType||i.svg(n)},str:function(n){return"string"==typeof n},fnc:function(n){return"function"==typeof n},und:function(n){return void 0===n},nil:function(n){return i.und(n)||null===n},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return i.hex(n)||i.rgb(n)||i.hsl(n)},key:function(t){return!n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&"targets"!==t&&"keyframes"!==t}};function c(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(n){return parseFloat(n)}):[]}function s(n,e){var t=c(n),o=a(i.und(t[0])?1:t[0],.1,100),u=a(i.und(t[1])?100:t[1],.1,100),s=a(i.und(t[2])?10:t[2],.1,100),f=a(i.und(t[3])?0:t[3],.1,100),l=Math.sqrt(u/o),d=s/(2*Math.sqrt(u*o)),p=d<1?l*Math.sqrt(1-d*d):0,v=1,h=d<1?(d*l-f)/p:-f+l;function g(n){var t=e?e*n/1e3:n;return t=d<1?Math.exp(-t*d*l)*(v*Math.cos(p*t)+h*Math.sin(p*t)):(v+h*t)*Math.exp(-t*l),0===n||1===n?n:1-t}return e?g:function(){var e=r.springs[n];if(e)return e;for(var t=0,a=0;;)if(1===g(t+=1/6)){if(++a>=16)break}else a=0;var o=t*(1/6)*1e3;return r.springs[n]=o,o}}function f(n){return void 0===n&&(n=10),function(e){return Math.ceil(a(e,1e-6,1)*n)*(1/n)}}var l,d,p=function(){var n=11,e=1/(n-1);function t(n,e){return 1-3*e+3*n}function r(n,e){return 3*e-6*n}function a(n){return 3*n}function o(n,e,o){return((t(e,o)*n+r(e,o))*n+a(e))*n}function u(n,e,o){return 3*t(e,o)*n*n+2*r(e,o)*n+a(e)}return function(t,r,a,i){if(0<=t&&t<=1&&0<=a&&a<=1){var c=new Float32Array(n);if(t!==r||a!==i)for(var s=0;s<n;++s)c[s]=o(s*e,t,a);return function(n){return t===r&&a===i?n:0===n||1===n?n:o(f(n),r,i)}}function f(r){for(var i=0,s=1,f=n-1;s!==f&&c[s]<=r;++s)i+=e;var l=i+(r-c[--s])/(c[s+1]-c[s])*e,d=u(l,t,a);return d>=.001?function(n,e,t,r){for(var a=0;a<4;++a){var i=u(e,t,r);if(0===i)return e;e-=(o(e,t,r)-n)/i}return e}(r,l,t,a):0===d?l:function(n,e,t,r,a){for(var u,i,c=0;(u=o(i=e+(t-e)/2,r,a)-n)>0?t=i:e=i,Math.abs(u)>1e-7&&++c<10;);return i}(r,i,i+e,t,a)}}}(),v=(l={linear:function(){return function(n){return n}}},d={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var e,t=4;n<((e=Math.pow(2,--t))-1)/11;);return 1/Math.pow(4,3-t)-7.5625*Math.pow((3*e-2)/22-n,2)}},Elastic:function(n,e){void 0===n&&(n=1),void 0===e&&(e=.5);var t=a(n,1,10),r=a(e,.1,2);return function(n){return 0===n||1===n?n:-t*Math.pow(2,10*(n-1))*Math.sin((n-1-r/(2*Math.PI)*Math.asin(1/t))*(2*Math.PI)/r)}}},["Quad","Cubic","Quart","Quint","Expo"].forEach(function(n,e){d[n]=function(){return function(n){return Math.pow(n,e+2)}}}),Object.keys(d).forEach(function(n){var e=d[n];l["easeIn"+n]=e,l["easeOut"+n]=function(n,t){return function(r){return 1-e(n,t)(1-r)}},l["easeInOut"+n]=function(n,t){return function(r){return r<.5?e(n,t)(2*r)/2:1-e(n,t)(-2*r+2)/2}},l["easeOutIn"+n]=function(n,t){return function(r){return r<.5?(1-e(n,t)(1-2*r))/2:(e(n,t)(2*r-1)+1)/2}}}),l);function h(n,e){if(i.fnc(n))return n;var t=n.split("(")[0],r=v[t],a=c(n);switch(t){case"spring":return s(n,e);case"cubicBezier":return u(p,a);case"steps":return u(f,a);default:return u(r,a)}}function g(n){try{return document.querySelectorAll(n)}catch(n){return}}function m(n,e){for(var t=n.length,r=arguments.length>=2?arguments[1]:void 0,a=[],o=0;o<t;o++)if(o in n){var u=n[o];e.call(r,u,o,n)&&a.push(u)}return a}function y(n){return n.reduce(function(n,e){return n.concat(i.arr(e)?y(e):e)},[])}function b(n){return i.arr(n)?n:(i.str(n)&&(n=g(n)||n),n instanceof NodeList||n instanceof HTMLCollection?[].slice.call(n):[n])}function M(n,e){return n.some(function(n){return n===e})}function x(n){var e={};for(var t in n)e[t]=n[t];return e}function w(n,e){var t=x(n);for(var r in n)t[r]=e.hasOwnProperty(r)?e[r]:n[r];return t}function k(n,e){var t=x(n);for(var r in e)t[r]=i.und(n[r])?e[r]:n[r];return t}function O(n){return i.rgb(n)?(t=/rgb\((\d+,\s*[\d]+,\s*[\d]+)\)/g.exec(e=n))?"rgba("+t[1]+",1)":e:i.hex(n)?(r=n.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,function(n,e,t,r){return e+e+t+t+r+r}),a=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r),"rgba("+parseInt(a[1],16)+","+parseInt(a[2],16)+","+parseInt(a[3],16)+",1)"):i.hsl(n)?function(n){var e,t,r,a=/hsl\((\d+),\s*([\d.]+)%,\s*([\d.]+)%\)/g.exec(n)||/hsla\((\d+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)/g.exec(n),o=parseInt(a[1],10)/360,u=parseInt(a[2],10)/100,i=parseInt(a[3],10)/100,c=a[4]||1;function s(n,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?n+6*(e-n)*t:t<.5?e:t<2/3?n+(e-n)*(2/3-t)*6:n}if(0==u)e=t=r=i;else{var f=i<.5?i*(1+u):i+u-i*u,l=2*i-f;e=s(l,f,o+1/3),t=s(l,f,o),r=s(l,f,o-1/3)}return"rgba("+255*e+","+255*t+","+255*r+","+c+")"}(n):void 0;var e,t,r,a}function C(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function P(n,e){return i.fnc(n)?n(e.target,e.id,e.total):n}function I(n,e){return n.getAttribute(e)}function D(n,e,t){if(M([t,"deg","rad","turn"],C(e)))return e;var a=r.CSS[e+t];if(!i.und(a))return a;var o=document.createElement(n.tagName),u=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;u.appendChild(o),o.style.position="absolute",o.style.width=100+t;var c=100/o.offsetWidth;u.removeChild(o);var s=c*parseFloat(e);return r.CSS[e+t]=s,s}function B(n,e,t){if(e in n.style){var r=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),a=n.style[e]||getComputedStyle(n).getPropertyValue(r)||"0";return t?D(n,a,t):a}}function T(n,e){return i.dom(n)&&!i.inp(n)&&(!i.nil(I(n,e))||i.svg(n)&&n[e])?"attribute":i.dom(n)&&M(t,e)?"transform":i.dom(n)&&"transform"!==e&&B(n,e)?"css":null!=n[e]?"object":void 0}function E(n){if(i.dom(n)){for(var e,t=n.style.transform||"",r=/(\w+)\(([^)]*)\)/g,a=new Map;e=r.exec(t);)a.set(e[1],e[2]);return a}}function F(n,e,t,r){var a,u=o(e,"scale")?1:0+(o(a=e,"translate")||"perspective"===a?"px":o(a,"rotate")||o(a,"skew")?"deg":void 0),i=E(n).get(e)||u;return t&&(t.transforms.list.set(e,i),t.transforms.last=e),r?D(n,i,r):i}function A(n,e,t,r){switch(T(n,e)){case"transform":return F(n,e,r,t);case"css":return B(n,e,t);case"attribute":return I(n,e);default:return n[e]||0}}function N(n,e){var t=/^(\*=|\+=|-=)/.exec(n);if(!t)return n;var r=C(n)||0,a=parseFloat(e),o=parseFloat(n.replace(t[0],""));switch(t[0][0]){case"+":return a+o+r;case"-":return a-o+r;case"*":return a*o+r}}function S(n,e){if(i.col(n))return O(n);if(/\s/g.test(n))return n;var t=C(n),r=t?n.substr(0,n.length-t.length):n;return e?r+e:r}function L(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function j(n){for(var e,t=n.points,r=0,a=0;a<t.numberOfItems;a++){var o=t.getItem(a);a>0&&(r+=L(e,o)),e=o}return r}function q(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return o=n,2*Math.PI*I(o,"r");case"rect":return 2*I(a=n,"width")+2*I(a,"height");case"line":return L({x:I(r=n,"x1"),y:I(r,"y1")},{x:I(r,"x2"),y:I(r,"y2")});case"polyline":return j(n);case"polygon":return t=(e=n).points,j(e)+L(t.getItem(t.numberOfItems-1),t.getItem(0))}var e,t,r,a,o}function H(n,e){var t=e||{},r=t.el||function(n){for(var e=n.parentNode;i.svg(e)&&i.svg(e.parentNode);)e=e.parentNode;return e}(n),a=r.getBoundingClientRect(),o=I(r,"viewBox"),u=a.width,c=a.height,s=t.viewBox||(o?o.split(" "):[0,0,u,c]);return{el:r,viewBox:s,x:s[0]/1,y:s[1]/1,w:u,h:c,vW:s[2],vH:s[3]}}function V(n,e,t){function r(t){void 0===t&&(t=0);var r=e+t>=1?e+t:0;return n.el.getPointAtLength(r)}var a=H(n.el,n.svg),o=r(),u=r(-1),i=r(1),c=t?1:a.w/a.vW,s=t?1:a.h/a.vH;switch(n.property){case"x":return(o.x-a.x)*c;case"y":return(o.y-a.y)*s;case"angle":return 180*Math.atan2(i.y-u.y,i.x-u.x)/Math.PI}}function $(n,e){var t=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,r=S(i.pth(n)?n.totalLength:n,e)+"";return{original:r,numbers:r.match(t)?r.match(t).map(Number):[0],strings:i.str(n)||e?r.split(t):[]}}function W(n){return m(n?y(i.arr(n)?n.map(b):b(n)):[],function(n,e,t){return t.indexOf(n)===e})}function X(n){var e=W(n);return e.map(function(n,t){return{target:n,id:t,total:e.length,transforms:{list:E(n)}}})}function Y(n,e){var t=x(e);if(/^spring/.test(t.easing)&&(t.duration=s(t.easing)),i.arr(n)){var r=n.length;2===r&&!i.obj(n[0])?n={value:n}:i.fnc(e.duration)||(t.duration=e.duration/r)}var a=i.arr(n)?n:[n];return a.map(function(n,t){var r=i.obj(n)&&!i.pth(n)?n:{value:n};return i.und(r.delay)&&(r.delay=t?0:e.delay),i.und(r.endDelay)&&(r.endDelay=t===a.length-1?e.endDelay:0),r}).map(function(n){return k(n,t)})}function Z(n,e){var t=[],r=e.keyframes;for(var a in r&&(e=k(function(n){for(var e=m(y(n.map(function(n){return Object.keys(n)})),function(n){return i.key(n)}).reduce(function(n,e){return n.indexOf(e)<0&&n.push(e),n},[]),t={},r=function(r){var a=e[r];t[a]=n.map(function(n){var e={};for(var t in n)i.key(t)?t==a&&(e.value=n[t]):e[t]=n[t];return e})},a=0;a<e.length;a++)r(a);return t}(r),e)),e)i.key(a)&&t.push({name:a,tweens:Y(e[a],n)});return t}function G(n,e){var t;return n.tweens.map(function(r){var a=function(n,e){var t={};for(var r in n){var a=P(n[r],e);i.arr(a)&&1===(a=a.map(function(n){return P(n,e)})).length&&(a=a[0]),t[r]=a}return t.duration=parseFloat(t.duration),t.delay=parseFloat(t.delay),t}(r,e),o=a.value,u=i.arr(o)?o[1]:o,c=C(u),s=A(e.target,n.name,c,e),f=t?t.to.original:s,l=i.arr(o)?o[0]:f,d=C(l)||C(s),p=c||d;return i.und(u)&&(u=f),a.from=$(l,p),a.to=$(N(u,l),p),a.start=t?t.end:0,a.end=a.start+a.delay+a.duration+a.endDelay,a.easing=h(a.easing,a.duration),a.isPath=i.pth(o),a.isPathTargetInsideSVG=a.isPath&&i.svg(e.target),a.isColor=i.col(a.from.original),a.isColor&&(a.round=1),t=a,a})}var Q={css:function(n,e,t){return n.style[e]=t},attribute:function(n,e,t){return n.setAttribute(e,t)},object:function(n,e,t){return n[e]=t},transform:function(n,e,t,r,a){if(r.list.set(e,t),e===r.last||a){var o="";r.list.forEach(function(n,e){o+=e+"("+n+") "}),n.style.transform=o}}};function z(n,e){X(n).forEach(function(n){for(var t in e){var r=P(e[t],n),a=n.target,o=C(r),u=A(a,t,o,n),i=N(S(r,o||C(u)),u),c=T(a,t);Q[c](a,t,i,n.transforms,!0)}})}function _(n,e){return m(y(n.map(function(n){return e.map(function(e){return function(n,e){var t=T(n.target,e.name);if(t){var r=G(e,n),a=r[r.length-1];return{type:t,property:e.name,animatable:n,tweens:r,duration:a.end,delay:r[0].delay,endDelay:a.endDelay}}}(n,e)})})),function(n){return!i.und(n)})}function R(n,e){var t=n.length,r=function(n){return n.timelineOffset?n.timelineOffset:0},a={};return a.duration=t?Math.max.apply(Math,n.map(function(n){return r(n)+n.duration})):e.duration,a.delay=t?Math.min.apply(Math,n.map(function(n){return r(n)+n.delay})):e.delay,a.endDelay=t?a.duration-Math.max.apply(Math,n.map(function(n){return r(n)+n.duration-n.endDelay})):e.endDelay,a}var J=0;var K=[],U=function(){var n;function e(t){for(var r=K.length,a=0;a<r;){var o=K[a];o.paused?(K.splice(a,1),r--):(o.tick(t),a++)}n=a>0?requestAnimationFrame(e):void 0}return"undefined"!=typeof document&&document.addEventListener("visibilitychange",function(){en.suspendWhenDocumentHidden&&(nn()?n=cancelAnimationFrame(n):(K.forEach(function(n){return n._onDocumentVisibility()}),U()))}),function(){n||nn()&&en.suspendWhenDocumentHidden||!(K.length>0)||(n=requestAnimationFrame(e))}}();function nn(){return!!document&&document.hidden}function en(t){void 0===t&&(t={});var r,o=0,u=0,i=0,c=0,s=null;function f(n){var e=window.Promise&&new Promise(function(n){return s=n});return n.finished=e,e}var l,d,p,v,h,g,y,b,M=(d=w(n,l=t),p=w(e,l),v=Z(p,l),h=X(l.targets),g=_(h,v),y=R(g,p),b=J,J++,k(d,{id:b,children:[],animatables:h,animations:g,duration:y.duration,delay:y.delay,endDelay:y.endDelay}));f(M);function x(){var n=M.direction;"alternate"!==n&&(M.direction="normal"!==n?"normal":"reverse"),M.reversed=!M.reversed,r.forEach(function(n){return n.reversed=M.reversed})}function O(n){return M.reversed?M.duration-n:n}function C(){o=0,u=O(M.currentTime)*(1/en.speed)}function P(n,e){e&&e.seek(n-e.timelineOffset)}function I(n){for(var e=0,t=M.animations,r=t.length;e<r;){var o=t[e],u=o.animatable,i=o.tweens,c=i.length-1,s=i[c];c&&(s=m(i,function(e){return n<e.end})[0]||s);for(var f=a(n-s.start-s.delay,0,s.duration)/s.duration,l=isNaN(f)?1:s.easing(f),d=s.to.strings,p=s.round,v=[],h=s.to.numbers.length,g=void 0,y=0;y<h;y++){var b=void 0,x=s.to.numbers[y],w=s.from.numbers[y]||0;b=s.isPath?V(s.value,l*x,s.isPathTargetInsideSVG):w+l*(x-w),p&&(s.isColor&&y>2||(b=Math.round(b*p)/p)),v.push(b)}var k=d.length;if(k){g=d[0];for(var O=0;O<k;O++){d[O];var C=d[O+1],P=v[O];isNaN(P)||(g+=C?P+C:P+" ")}}else g=v[0];Q[o.type](u.target,o.property,g,u.transforms),o.currentValue=g,e++}}function D(n){M[n]&&!M.passThrough&&M[n](M)}function B(n){var e=M.duration,t=M.delay,l=e-M.endDelay,d=O(n);M.progress=a(d/e*100,0,100),M.reversePlayback=d<M.currentTime,r&&function(n){if(M.reversePlayback)for(var e=c;e--;)P(n,r[e]);else for(var t=0;t<c;t++)P(n,r[t])}(d),!M.began&&M.currentTime>0&&(M.began=!0,D("begin")),!M.loopBegan&&M.currentTime>0&&(M.loopBegan=!0,D("loopBegin")),d<=t&&0!==M.currentTime&&I(0),(d>=l&&M.currentTime!==e||!e)&&I(e),d>t&&d<l?(M.changeBegan||(M.changeBegan=!0,M.changeCompleted=!1,D("changeBegin")),D("change"),I(d)):M.changeBegan&&(M.changeCompleted=!0,M.changeBegan=!1,D("changeComplete")),M.currentTime=a(d,0,e),M.began&&D("update"),n>=e&&(u=0,M.remaining&&!0!==M.remaining&&M.remaining--,M.remaining?(o=i,D("loopComplete"),M.loopBegan=!1,"alternate"===M.direction&&x()):(M.paused=!0,M.completed||(M.completed=!0,D("loopComplete"),D("complete"),!M.passThrough&&"Promise"in window&&(s(),f(M)))))}return M.reset=function(){var n=M.direction;M.passThrough=!1,M.currentTime=0,M.progress=0,M.paused=!0,M.began=!1,M.loopBegan=!1,M.changeBegan=!1,M.completed=!1,M.changeCompleted=!1,M.reversePlayback=!1,M.reversed="reverse"===n,M.remaining=M.loop,r=M.children;for(var e=c=r.length;e--;)M.children[e].reset();(M.reversed&&!0!==M.loop||"alternate"===n&&1===M.loop)&&M.remaining++,I(M.reversed?M.duration:0)},M._onDocumentVisibility=C,M.set=function(n,e){return z(n,e),M},M.tick=function(n){i=n,o||(o=i),B((i+(u-o))*en.speed)},M.seek=function(n){B(O(n))},M.pause=function(){M.paused=!0,C()},M.play=function(){M.paused&&(M.completed&&M.reset(),M.paused=!1,K.push(M),C(),U())},M.reverse=function(){x(),M.completed=!M.reversed,C()},M.restart=function(){M.reset(),M.play()},M.remove=function(n){rn(W(n),M)},M.reset(),M.autoplay&&M.play(),M}function tn(n,e){for(var t=e.length;t--;)M(n,e[t].animatable.target)&&e.splice(t,1)}function rn(n,e){var t=e.animations,r=e.children;tn(n,t);for(var a=r.length;a--;){var o=r[a],u=o.animations;tn(n,u),u.length||o.children.length||r.splice(a,1)}t.length||r.length||e.pause()}return en.version="3.2.1",en.speed=1,en.suspendWhenDocumentHidden=!0,en.running=K,en.remove=function(n){for(var e=W(n),t=K.length;t--;)rn(e,K[t])},en.get=A,en.set=z,en.convertPx=D,en.path=function(n,e){var t=i.str(n)?g(n)[0]:n,r=e||100;return function(n){return{property:n,el:t,svg:H(t),totalLength:q(t)*(r/100)}}},en.setDashoffset=function(n){var e=q(n);return n.setAttribute("stroke-dasharray",e),e},en.stagger=function(n,e){void 0===e&&(e={});var t=e.direction||"normal",r=e.easing?h(e.easing):null,a=e.grid,o=e.axis,u=e.from||0,c="first"===u,s="center"===u,f="last"===u,l=i.arr(n),d=l?parseFloat(n[0]):parseFloat(n),p=l?parseFloat(n[1]):0,v=C(l?n[1]:n)||0,g=e.start||0+(l?d:0),m=[],y=0;return function(n,e,i){if(c&&(u=0),s&&(u=(i-1)/2),f&&(u=i-1),!m.length){for(var h=0;h<i;h++){if(a){var b=s?(a[0]-1)/2:u%a[0],M=s?(a[1]-1)/2:Math.floor(u/a[0]),x=b-h%a[0],w=M-Math.floor(h/a[0]),k=Math.sqrt(x*x+w*w);"x"===o&&(k=-x),"y"===o&&(k=-w),m.push(k)}else m.push(Math.abs(u-h));y=Math.max.apply(Math,m)}r&&(m=m.map(function(n){return r(n/y)*y})),"reverse"===t&&(m=m.map(function(n){return o?n<0?-1*n:-n:Math.abs(y-n)}))}return g+(l?(p-d)/y:d)*(Math.round(100*m[e])/100)+v}},en.timeline=function(n){void 0===n&&(n={});var t=en(n);return t.duration=0,t.add=function(r,a){var o=K.indexOf(t),u=t.children;function c(n){n.passThrough=!0}o>-1&&K.splice(o,1);for(var s=0;s<u.length;s++)c(u[s]);var f=k(r,w(e,n));f.targets=f.targets||n.targets;var l=t.duration;f.autoplay=!1,f.direction=t.direction,f.timelineOffset=i.und(a)?l:N(a,l),c(t),t.seek(f.timelineOffset);var d=en(f);c(d),u.push(d);var p=R(u,n);return t.delay=p.delay,t.endDelay=p.endDelay,t.duration=p.duration,t.seek(0),t.reset(),t.autoplay&&t.play(),t},t},en.easing=h,en.penner=v,en.random=function(n,e){return Math.floor(Math.random()*(e-n+1))+n},en});
lib/barba/barba.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /**
2
+ * Skipped minification because the original files appears to be already minified.
3
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
4
+ */
5
+ !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(t=t||self).barba=n()}(this,(function(){function t(t,n){for(var r=0;r<n.length;r++){var e=n[r];e.enumerable=e.enumerable||!1,e.configurable=!0,"value"in e&&(e.writable=!0),Object.defineProperty(t,e.key,e)}}function n(n,r,e){return r&&t(n.prototype,r),e&&t(n,e),n}function r(){return(r=Object.assign||function(t){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}return t}).apply(this,arguments)}function e(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n}function i(t){return(i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)})(t)}function o(t,n){return(o=Object.setPrototypeOf||function(t,n){return t.__proto__=n,t})(t,n)}function u(t,n,r){return(u=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct:function(t,n,r){var e=[null];e.push.apply(e,n);var i=new(Function.bind.apply(t,e));return r&&o(i,r.prototype),i}).apply(null,arguments)}function f(t){var n="function"==typeof Map?new Map:void 0;return(f=function(t){if(null===t||-1===Function.toString.call(t).indexOf("[native code]"))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(t))return n.get(t);n.set(t,r)}function r(){return u(t,arguments,i(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),o(r,t)})(t)}function s(t,n){try{var r=t()}catch(t){return n(t)}return r&&r.then?r.then(void 0,n):r}"undefined"!=typeof Symbol&&(Symbol.iterator||(Symbol.iterator=Symbol("Symbol.iterator"))),"undefined"!=typeof Symbol&&(Symbol.asyncIterator||(Symbol.asyncIterator=Symbol("Symbol.asyncIterator")));var c,a="2.9.7",h=function(){};!function(t){t[t.off=0]="off",t[t.error=1]="error",t[t.warning=2]="warning",t[t.info=3]="info",t[t.debug=4]="debug"}(c||(c={}));var v=c.off,l=function(){function t(t){this.t=t}t.getLevel=function(){return v},t.setLevel=function(t){return v=c[t]};var n=t.prototype;return n.error=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];this.i(console.error,c.error,n)},n.warn=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];this.i(console.warn,c.warning,n)},n.info=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];this.i(console.info,c.info,n)},n.debug=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];this.i(console.log,c.debug,n)},n.i=function(n,r,e){r<=t.getLevel()&&n.apply(console,["["+this.t+"] "].concat(e))},t}(),d=O,m=E,p=g,w=x,b=T,y="/",P=new RegExp(["(\\\\.)","(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?"].join("|"),"g");function g(t,n){for(var r,e=[],i=0,o=0,u="",f=n&&n.delimiter||y,s=n&&n.whitelist||void 0,c=!1;null!==(r=P.exec(t));){var a=r[0],h=r[1],v=r.index;if(u+=t.slice(o,v),o=v+a.length,h)u+=h[1],c=!0;else{var l="",d=r[2],m=r[3],p=r[4],w=r[5];if(!c&&u.length){var b=u.length-1,g=u[b];(!s||s.indexOf(g)>-1)&&(l=g,u=u.slice(0,b))}u&&(e.push(u),u="",c=!1);var E=m||p,x=l||f;e.push({name:d||i++,prefix:l,delimiter:x,optional:"?"===w||"*"===w,repeat:"+"===w||"*"===w,pattern:E?A(E):"[^"+k(x===f?x:x+f)+"]+?"})}}return(u||o<t.length)&&e.push(u+t.substr(o)),e}function E(t,n){return function(r,e){var i=t.exec(r);if(!i)return!1;for(var o=i[0],u=i.index,f={},s=e&&e.decode||decodeURIComponent,c=1;c<i.length;c++)if(void 0!==i[c]){var a=n[c-1];f[a.name]=a.repeat?i[c].split(a.delimiter).map((function(t){return s(t,a)})):s(i[c],a)}return{path:o,index:u,params:f}}}function x(t,n){for(var r=new Array(t.length),e=0;e<t.length;e++)"object"==typeof t[e]&&(r[e]=new RegExp("^(?:"+t[e].pattern+")$",R(n)));return function(n,e){for(var i="",o=e&&e.encode||encodeURIComponent,u=!e||!1!==e.validate,f=0;f<t.length;f++){var s=t[f];if("string"!=typeof s){var c,a=n?n[s.name]:void 0;if(Array.isArray(a)){if(!s.repeat)throw new TypeError('Expected "'+s.name+'" to not repeat, but got array');if(0===a.length){if(s.optional)continue;throw new TypeError('Expected "'+s.name+'" to not be empty')}for(var h=0;h<a.length;h++){if(c=o(a[h],s),u&&!r[f].test(c))throw new TypeError('Expected all "'+s.name+'" to match "'+s.pattern+'"');i+=(0===h?s.prefix:s.delimiter)+c}}else if("string"!=typeof a&&"number"!=typeof a&&"boolean"!=typeof a){if(!s.optional)throw new TypeError('Expected "'+s.name+'" to be '+(s.repeat?"an array":"a string"))}else{if(c=o(String(a),s),u&&!r[f].test(c))throw new TypeError('Expected "'+s.name+'" to match "'+s.pattern+'", but got "'+c+'"');i+=s.prefix+c}}else i+=s}return i}}function k(t){return t.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1")}function A(t){return t.replace(/([=!:$/()])/g,"\\$1")}function R(t){return t&&t.sensitive?"":"i"}function T(t,n,r){for(var e=(r=r||{}).strict,i=!1!==r.start,o=!1!==r.end,u=r.delimiter||y,f=[].concat(r.endsWith||[]).map(k).concat("$").join("|"),s=i?"^":"",c=0;c<t.length;c++){var a=t[c];if("string"==typeof a)s+=k(a);else{var h=a.repeat?"(?:"+a.pattern+")(?:"+k(a.delimiter)+"(?:"+a.pattern+"))*":a.pattern;n&&n.push(a),s+=a.optional?a.prefix?"(?:"+k(a.prefix)+"("+h+"))?":"("+h+")?":k(a.prefix)+"("+h+")"}}if(o)e||(s+="(?:"+k(u)+")?"),s+="$"===f?"$":"(?="+f+")";else{var v=t[t.length-1],l="string"==typeof v?v[v.length-1]===u:void 0===v;e||(s+="(?:"+k(u)+"(?="+f+"))?"),l||(s+="(?="+k(u)+"|"+f+")")}return new RegExp(s,R(r))}function O(t,n,r){return t instanceof RegExp?function(t,n){if(!n)return t;var r=t.source.match(/\((?!\?)/g);if(r)for(var e=0;e<r.length;e++)n.push({name:e,prefix:null,delimiter:null,optional:!1,repeat:!1,pattern:null});return t}(t,n):Array.isArray(t)?function(t,n,r){for(var e=[],i=0;i<t.length;i++)e.push(O(t[i],n,r).source);return new RegExp("(?:"+e.join("|")+")",R(r))}(t,n,r):function(t,n,r){return T(g(t,r),n,r)}(t,n,r)}d.match=function(t,n){var r=[];return E(O(t,r,n),r)},d.regexpToFunction=m,d.parse=p,d.compile=function(t,n){return x(g(t,n),n)},d.tokensToFunction=w,d.tokensToRegExp=b;var S={container:"container",history:"history",namespace:"namespace",prefix:"data-barba",prevent:"prevent",wrapper:"wrapper"},j=new(function(){function t(){this.o=S,this.u=new DOMParser}var n=t.prototype;return n.toString=function(t){return t.outerHTML},n.toDocument=function(t){return this.u.parseFromString(t,"text/html")},n.toElement=function(t){var n=document.createElement("div");return n.innerHTML=t,n},n.getHtml=function(t){return void 0===t&&(t=document),this.toString(t.documentElement)},n.getWrapper=function(t){return void 0===t&&(t=document),t.querySelector("["+this.o.prefix+'="'+this.o.wrapper+'"]')},n.getContainer=function(t){return void 0===t&&(t=document),t.querySelector("["+this.o.prefix+'="'+this.o.container+'"]')},n.removeContainer=function(t){document.body.contains(t)&&t.parentNode.removeChild(t)},n.addContainer=function(t,n){var r=this.getContainer();r?this.s(t,r):n.appendChild(t)},n.getNamespace=function(t){void 0===t&&(t=document);var n=t.querySelector("["+this.o.prefix+"-"+this.o.namespace+"]");return n?n.getAttribute(this.o.prefix+"-"+this.o.namespace):null},n.getHref=function(t){if(t.tagName&&"a"===t.tagName.toLowerCase()){if("string"==typeof t.href)return t.href;var n=t.getAttribute("href")||t.getAttribute("xlink:href");if(n)return this.resolveUrl(n.baseVal||n)}return null},n.resolveUrl=function(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];var e=n.length;if(0===e)throw new Error("resolveUrl requires at least one argument; got none.");var i=document.createElement("base");if(i.href=arguments[0],1===e)return i.href;var o=document.getElementsByTagName("head")[0];o.insertBefore(i,o.firstChild);for(var u,f=document.createElement("a"),s=1;s<e;s++)f.href=arguments[s],i.href=u=f.href;return o.removeChild(i),u},n.s=function(t,n){n.parentNode.insertBefore(t,n.nextSibling)},t}()),M=new(function(){function t(){this.h=[],this.v=-1}var e=t.prototype;return e.init=function(t,n){this.l="barba";var r={ns:n,scroll:{x:window.scrollX,y:window.scrollY},url:t};this.h.push(r),this.v=0;var e={from:this.l,index:0,states:[].concat(this.h)};window.history&&window.history.replaceState(e,"",t)},e.change=function(t,n,r){if(r&&r.state){var e=r.state,i=e.index;n=this.m(this.v-i),this.replace(e.states),this.v=i}else this.add(t,n);return n},e.add=function(t,n){var r=this.size,e=this.p(n),i={ns:"tmp",scroll:{x:window.scrollX,y:window.scrollY},url:t};this.h.push(i),this.v=r;var o={from:this.l,index:r,states:[].concat(this.h)};switch(e){case"push":window.history&&window.history.pushState(o,"",t);break;case"replace":window.history&&window.history.replaceState(o,"",t)}},e.update=function(t,n){var e=n||this.v,i=r({},this.get(e),{},t);this.set(e,i)},e.remove=function(t){t?this.h.splice(t,1):this.h.pop(),this.v--},e.clear=function(){this.h=[],this.v=-1},e.replace=function(t){this.h=t},e.get=function(t){return this.h[t]},e.set=function(t,n){return this.h[t]=n},e.p=function(t){var n="push",r=t,e=S.prefix+"-"+S.history;return r.hasAttribute&&r.hasAttribute(e)&&(n=r.getAttribute(e)),n},e.m=function(t){return Math.abs(t)>1?t>0?"forward":"back":0===t?"popstate":t>0?"back":"forward"},n(t,[{key:"current",get:function(){return this.h[this.v]}},{key:"state",get:function(){return this.h[this.h.length-1]}},{key:"previous",get:function(){return this.v<1?null:this.h[this.v-1]}},{key:"size",get:function(){return this.h.length}}]),t}()),L=function(t,n){try{var r=function(){if(!n.next.html)return Promise.resolve(t).then((function(t){var r=n.next;if(t){var e=j.toElement(t);r.namespace=j.getNamespace(e),r.container=j.getContainer(e),r.html=t,M.update({ns:r.namespace});var i=j.toDocument(t);document.title=i.title}}))}();return Promise.resolve(r&&r.then?r.then((function(){})):void 0)}catch(t){return Promise.reject(t)}},$=d,_={__proto__:null,update:L,nextTick:function(){return new Promise((function(t){window.requestAnimationFrame(t)}))},pathToRegexp:$},q=function(){return window.location.origin},B=function(t){return void 0===t&&(t=window.location.href),U(t).port},U=function(t){var n,r=t.match(/:\d+/);if(null===r)/^http/.test(t)&&(n=80),/^https/.test(t)&&(n=443);else{var e=r[0].substring(1);n=parseInt(e,10)}var i,o=t.replace(q(),""),u={},f=o.indexOf("#");f>=0&&(i=o.slice(f+1),o=o.slice(0,f));var s=o.indexOf("?");return s>=0&&(u=D(o.slice(s+1)),o=o.slice(0,s)),{hash:i,path:o,port:n,query:u}},D=function(t){return t.split("&").reduce((function(t,n){var r=n.split("=");return t[r[0]]=r[1],t}),{})},F=function(t){return void 0===t&&(t=window.location.href),t.replace(/(\/#.*|\/|#.*)$/,"")},H={__proto__:null,getHref:function(){return window.location.href},getOrigin:q,getPort:B,getPath:function(t){return void 0===t&&(t=window.location.href),U(t).path},parse:U,parseQuery:D,clean:F};function I(t,n,r){return void 0===n&&(n=2e3),new Promise((function(e,i){var o=new XMLHttpRequest;o.onreadystatechange=function(){if(o.readyState===XMLHttpRequest.DONE)if(200===o.status)e(o.responseText);else if(o.status){var n={status:o.status,statusText:o.statusText};r(t,n),i(n)}},o.ontimeout=function(){var e=new Error("Timeout error ["+n+"]");r(t,e),i(e)},o.onerror=function(){var n=new Error("Fetch error");r(t,n),i(n)},o.open("GET",t),o.timeout=n,o.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml"),o.setRequestHeader("x-barba","yes"),o.send()}))}var C=function(t){return!!t&&("object"==typeof t||"function"==typeof t)&&"function"==typeof t.then};function N(t,n){return void 0===n&&(n={}),function(){for(var r=arguments.length,e=new Array(r),i=0;i<r;i++)e[i]=arguments[i];var o=!1,u=new Promise((function(r,i){n.async=function(){return o=!0,function(t,n){t?i(t):r(n)}};var u=t.apply(n,e);o||(C(u)?u.then(r,i):r(u))}));return u}}var X=new(function(t){function n(){var n;return(n=t.call(this)||this).logger=new l("@barba/core"),n.all=["ready","page","reset","currentAdded","currentRemoved","nextAdded","nextRemoved","beforeOnce","once","afterOnce","before","beforeLeave","leave","afterLeave","beforeEnter","enter","afterEnter","after"],n.registered=new Map,n.init(),n}e(n,t);var r=n.prototype;return r.init=function(){var t=this;this.registered.clear(),this.all.forEach((function(n){t[n]||(t[n]=function(r,e){t.registered.has(n)||t.registered.set(n,new Set),t.registered.get(n).add({ctx:e||{},fn:r})})}))},r.do=function(t){for(var n=this,r=arguments.length,e=new Array(r>1?r-1:0),i=1;i<r;i++)e[i-1]=arguments[i];if(this.registered.has(t)){var o=Promise.resolve();return this.registered.get(t).forEach((function(t){o=o.then((function(){return N(t.fn,t.ctx).apply(void 0,e)}))})),o.catch((function(r){n.logger.debug("Hook error ["+t+"]"),n.logger.error(r)}))}return Promise.resolve()},r.clear=function(){var t=this;this.all.forEach((function(n){delete t[n]})),this.init()},r.help=function(){this.logger.info("Available hooks: "+this.all.join(","));var t=[];this.registered.forEach((function(n,r){return t.push(r)})),this.logger.info("Registered hooks: "+t.join(","))},n}(h)),z=function(){function t(t){if(this.P=[],"boolean"==typeof t)this.g=t;else{var n=Array.isArray(t)?t:[t];this.P=n.map((function(t){return $(t)}))}}return t.prototype.checkHref=function(t){if("boolean"==typeof this.g)return this.g;var n=U(t).path;return this.P.some((function(t){return null!==t.exec(n)}))},t}(),G=function(t){function n(n){var r;return(r=t.call(this,n)||this).k=new Map,r}e(n,t);var i=n.prototype;return i.set=function(t,n,r){return this.k.set(t,{action:r,request:n}),{action:r,request:n}},i.get=function(t){return this.k.get(t)},i.getRequest=function(t){return this.k.get(t).request},i.getAction=function(t){return this.k.get(t).action},i.has=function(t){return!this.checkHref(t)&&this.k.has(t)},i.delete=function(t){return this.k.delete(t)},i.update=function(t,n){var e=r({},this.k.get(t),{},n);return this.k.set(t,e),e},n}(z),Q=function(){return!window.history.pushState},W=function(t){return!t.el||!t.href},J=function(t){var n=t.event;return n.which>1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey},K=function(t){var n=t.el;return n.hasAttribute("target")&&"_blank"===n.target},V=function(t){var n=t.el;return void 0!==n.protocol&&window.location.protocol!==n.protocol||void 0!==n.hostname&&window.location.hostname!==n.hostname},Y=function(t){var n=t.el;return void 0!==n.port&&B()!==B(n.href)},Z=function(t){var n=t.el;return n.getAttribute&&"string"==typeof n.getAttribute("download")},tt=function(t){return t.el.hasAttribute(S.prefix+"-"+S.prevent)},nt=function(t){return Boolean(t.el.closest("["+S.prefix+"-"+S.prevent+'="all"]'))},rt=function(t){var n=t.href;return F(n)===F()&&B(n)===B()},et=function(t){function n(n){var r;return(r=t.call(this,n)||this).suite=[],r.tests=new Map,r.init(),r}e(n,t);var r=n.prototype;return r.init=function(){this.add("pushState",Q),this.add("exists",W),this.add("newTab",J),this.add("blank",K),this.add("corsDomain",V),this.add("corsPort",Y),this.add("download",Z),this.add("preventSelf",tt),this.add("preventAll",nt),this.add("sameUrl",rt,!1)},r.add=function(t,n,r){void 0===r&&(r=!0),this.tests.set(t,n),r&&this.suite.push(t)},r.run=function(t,n,r,e){return this.tests.get(t)({el:n,event:r,href:e})},r.checkLink=function(t,n,r){var e=this;return this.suite.some((function(i){return e.run(i,t,n,r)}))},n}(z),it=function(t){function n(r,e){var i;void 0===e&&(e="Barba error");for(var o=arguments.length,u=new Array(o>2?o-2:0),f=2;f<o;f++)u[f-2]=arguments[f];return(i=t.call.apply(t,[this].concat(u))||this).error=r,i.label=e,Error.captureStackTrace&&Error.captureStackTrace(function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(i),n),i.name="BarbaError",i}return e(n,t),n}(f(Error)),ot=function(){function t(t){void 0===t&&(t=[]),this.logger=new l("@barba/core"),this.all=[],this.page=[],this.once=[],this.A=[{name:"namespace",type:"strings"},{name:"custom",type:"function"}],t&&(this.all=this.all.concat(t)),this.update()}var n=t.prototype;return n.add=function(t,n){switch(t){case"rule":this.A.splice(n.position||0,0,n.value);break;case"transition":default:this.all.push(n)}this.update()},n.resolve=function(t,n){var r=this;void 0===n&&(n={});var e=n.once?this.once:this.page;e=e.filter(n.self?function(t){return t.name&&"self"===t.name}:function(t){return!t.name||"self"!==t.name});var i=new Map,o=e.find((function(e){var o=!0,u={};return!(!n.self||"self"!==e.name)||(r.A.reverse().forEach((function(n){o&&(o=r.R(e,n,t,u),e.from&&e.to&&(o=r.R(e,n,t,u,"from")&&r.R(e,n,t,u,"to")),e.from&&!e.to&&(o=r.R(e,n,t,u,"from")),!e.from&&e.to&&(o=r.R(e,n,t,u,"to")))})),i.set(e,u),o)})),u=i.get(o),f=[];if(f.push(n.once?"once":"page"),n.self&&f.push("self"),u){var s,c=[o];Object.keys(u).length>0&&c.push(u),(s=this.logger).info.apply(s,["Transition found ["+f.join(",")+"]"].concat(c))}else this.logger.info("No transition found ["+f.join(",")+"]");return o},n.update=function(){var t=this;this.all=this.all.map((function(n){return t.T(n)})).sort((function(t,n){return t.priority-n.priority})).reverse().map((function(t){return delete t.priority,t})),this.page=this.all.filter((function(t){return void 0!==t.leave||void 0!==t.enter})),this.once=this.all.filter((function(t){return void 0!==t.once}))},n.R=function(t,n,r,e,i){var o=!0,u=!1,f=t,s=n.name,c=s,a=s,h=s,v=i?f[i]:f,l="to"===i?r.next:r.current;if(i?v&&v[s]:v[s]){switch(n.type){case"strings":default:var d=Array.isArray(v[c])?v[c]:[v[c]];l[c]&&-1!==d.indexOf(l[c])&&(u=!0),-1===d.indexOf(l[c])&&(o=!1);break;case"object":var m=Array.isArray(v[a])?v[a]:[v[a]];l[a]?(l[a].name&&-1!==m.indexOf(l[a].name)&&(u=!0),-1===m.indexOf(l[a].name)&&(o=!1)):o=!1;break;case"function":v[h](r)?u=!0:o=!1}u&&(i?(e[i]=e[i]||{},e[i][s]=f[i][s]):e[s]=f[s])}return o},n.O=function(t,n,r){var e=0;return(t[n]||t.from&&t.from[n]||t.to&&t.to[n])&&(e+=Math.pow(10,r),t.from&&t.from[n]&&(e+=1),t.to&&t.to[n]&&(e+=2)),e},n.T=function(t){var n=this;t.priority=0;var r=0;return this.A.forEach((function(e,i){r+=n.O(t,e.name,i+1)})),t.priority=r,t},t}(),ut=function(){function t(t){void 0===t&&(t=[]),this.logger=new l("@barba/core"),this.S=!1,this.store=new ot(t)}var r=t.prototype;return r.get=function(t,n){return this.store.resolve(t,n)},r.doOnce=function(t){var n=t.data,r=t.transition;try{var e=function(){i.S=!1},i=this,o=r||{};i.S=!0;var u=s((function(){return Promise.resolve(i.j("beforeOnce",n,o)).then((function(){return Promise.resolve(i.once(n,o)).then((function(){return Promise.resolve(i.j("afterOnce",n,o)).then((function(){}))}))}))}),(function(t){i.S=!1,i.logger.debug("Transition error [before/after/once]"),i.logger.error(t)}));return Promise.resolve(u&&u.then?u.then(e):e())}catch(t){return Promise.reject(t)}},r.doPage=function(t){var n=t.data,r=t.transition,e=t.page,i=t.wrapper;try{var o=function(t){if(u)return t;f.S=!1},u=!1,f=this,c=r||{},a=!0===c.sync||!1;f.S=!0;var h=s((function(){function t(){return Promise.resolve(f.j("before",n,c)).then((function(){var t=!1;function r(r){return t?r:Promise.resolve(f.remove(n)).then((function(){return Promise.resolve(f.j("after",n,c)).then((function(){}))}))}var o=function(){if(a)return s((function(){return Promise.resolve(f.add(n,i)).then((function(){return Promise.resolve(f.j("beforeLeave",n,c)).then((function(){return Promise.resolve(f.j("beforeEnter",n,c)).then((function(){return Promise.resolve(Promise.all([f.leave(n,c),f.enter(n,c)])).then((function(){return Promise.resolve(f.j("afterLeave",n,c)).then((function(){return Promise.resolve(f.j("afterEnter",n,c)).then((function(){}))}))}))}))}))}))}),(function(t){if(f.M(t))throw new it(t,"Transition error [sync]")}));var r=function(r){return t?r:s((function(){var t=function(){if(!1!==o)return Promise.resolve(f.add(n,i)).then((function(){return Promise.resolve(f.j("beforeEnter",n,c)).then((function(){return Promise.resolve(f.enter(n,c,o)).then((function(){return Promise.resolve(f.j("afterEnter",n,c)).then((function(){}))}))}))}))}();if(t&&t.then)return t.then((function(){}))}),(function(t){if(f.M(t))throw new it(t,"Transition error [before/after/enter]")}))},o=!1,u=s((function(){return Promise.resolve(f.j("beforeLeave",n,c)).then((function(){return Promise.resolve(Promise.all([f.leave(n,c),L(e,n)]).then((function(t){return t[0]}))).then((function(t){return o=t,Promise.resolve(f.j("afterLeave",n,c)).then((function(){}))}))}))}),(function(t){if(f.M(t))throw new it(t,"Transition error [before/after/leave]")}));return u&&u.then?u.then(r):r(u)}();return o&&o.then?o.then(r):r(o)}))}var r=function(){if(a)return Promise.resolve(L(e,n)).then((function(){}))}();return r&&r.then?r.then(t):t()}),(function(t){if(f.S=!1,t.name&&"BarbaError"===t.name)throw f.logger.debug(t.label),f.logger.error(t.error),t;throw f.logger.debug("Transition error [page]"),f.logger.error(t),t}));return Promise.resolve(h&&h.then?h.then(o):o(h))}catch(t){return Promise.reject(t)}},r.once=function(t,n){try{return Promise.resolve(X.do("once",t,n)).then((function(){return n.once?N(n.once,n)(t):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.leave=function(t,n){try{return Promise.resolve(X.do("leave",t,n)).then((function(){return n.leave?N(n.leave,n)(t):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.enter=function(t,n,r){try{return Promise.resolve(X.do("enter",t,n)).then((function(){return n.enter?N(n.enter,n)(t,r):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.add=function(t,n){try{return j.addContainer(t.next.container,n),X.do("nextAdded",t),Promise.resolve()}catch(t){return Promise.reject(t)}},r.remove=function(t){try{return j.removeContainer(t.current.container),X.do("currentRemoved",t),Promise.resolve()}catch(t){return Promise.reject(t)}},r.M=function(t){return t.message?!/Timeout error|Fetch error/.test(t.message):!t.status},r.j=function(t,n,r){try{return Promise.resolve(X.do(t,n,r)).then((function(){return r[t]?N(r[t],r)(n):Promise.resolve()}))}catch(t){return Promise.reject(t)}},n(t,[{key:"isRunning",get:function(){return this.S},set:function(t){this.S=t}},{key:"hasOnce",get:function(){return this.store.once.length>0}},{key:"hasSelf",get:function(){return this.store.all.some((function(t){return"self"===t.name}))}},{key:"shouldWait",get:function(){return this.store.all.some((function(t){return t.to&&!t.to.route||t.sync}))}}]),t}(),ft=function(){function t(t){var n=this;this.names=["beforeLeave","afterLeave","beforeEnter","afterEnter"],this.byNamespace=new Map,0!==t.length&&(t.forEach((function(t){n.byNamespace.set(t.namespace,t)})),this.names.forEach((function(t){X[t](n.L(t))})))}return t.prototype.L=function(t){var n=this;return function(r){var e=t.match(/enter/i)?r.next:r.current,i=n.byNamespace.get(e.namespace);return i&&i[t]?N(i[t],i)(r):Promise.resolve()}},t}();Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){var n=this;do{if(n.matches(t))return n;n=n.parentElement||n.parentNode}while(null!==n&&1===n.nodeType);return null});var st={container:null,html:"",namespace:"",url:{hash:"",href:"",path:"",port:null,query:{}}};return new(function(){function t(){this.version=a,this.schemaPage=st,this.Logger=l,this.logger=new l("@barba/core"),this.plugins=[],this.hooks=X,this.dom=j,this.helpers=_,this.history=M,this.request=I,this.url=H}var e=t.prototype;return e.use=function(t,n){var r=this.plugins;r.indexOf(t)>-1?this.logger.warn("Plugin ["+t.name+"] already installed."):"function"==typeof t.install?(t.install(this,n),r.push(t)):this.logger.warn("Plugin ["+t.name+'] has no "install" method.')},e.init=function(t){var n=void 0===t?{}:t,e=n.transitions,i=void 0===e?[]:e,o=n.views,u=void 0===o?[]:o,f=n.schema,s=void 0===f?S:f,c=n.requestError,a=n.timeout,h=void 0===a?2e3:a,v=n.cacheIgnore,d=void 0!==v&&v,m=n.prefetchIgnore,p=void 0!==m&&m,w=n.preventRunning,b=void 0!==w&&w,y=n.prevent,P=void 0===y?null:y,g=n.debug,E=n.logLevel;if(l.setLevel(!0===(void 0!==g&&g)?"debug":void 0===E?"off":E),this.logger.info(this.version),Object.keys(s).forEach((function(t){S[t]&&(S[t]=s[t])})),this.$=c,this.timeout=h,this.cacheIgnore=d,this.prefetchIgnore=p,this.preventRunning=b,this._=this.dom.getWrapper(),!this._)throw new Error("[@barba/core] No Barba wrapper found");this._.setAttribute("aria-live","polite"),this.q();var x=this.data.current;if(!x.container)throw new Error("[@barba/core] No Barba container found");if(this.cache=new G(d),this.prevent=new et(p),this.transitions=new ut(i),this.views=new ft(u),null!==P){if("function"!=typeof P)throw new Error("[@barba/core] Prevent should be a function");this.prevent.add("preventCustom",P)}this.history.init(x.url.href,x.namespace),this.B=this.B.bind(this),this.U=this.U.bind(this),this.D=this.D.bind(this),this.F(),this.plugins.forEach((function(t){return t.init()}));var k=this.data;k.trigger="barba",k.next=k.current,k.current=r({},this.schemaPage),this.hooks.do("ready",k),this.once(k),this.q()},e.destroy=function(){this.q(),this.H(),this.history.clear(),this.hooks.clear(),this.plugins=[]},e.force=function(t){window.location.assign(t)},e.go=function(t,n,r){var e;if(void 0===n&&(n="barba"),this.transitions.isRunning)this.force(t);else if(!(e="popstate"===n?this.history.current&&this.url.getPath(this.history.current.url)===this.url.getPath(t):this.prevent.run("sameUrl",null,null,t))||this.transitions.hasSelf)return n=this.history.change(t,n,r),r&&(r.stopPropagation(),r.preventDefault()),this.page(t,n,e)},e.once=function(t){try{var n=this;return Promise.resolve(n.hooks.do("beforeEnter",t)).then((function(){function r(){return Promise.resolve(n.hooks.do("afterEnter",t)).then((function(){}))}var e=function(){if(n.transitions.hasOnce){var r=n.transitions.get(t,{once:!0});return Promise.resolve(n.transitions.doOnce({transition:r,data:t})).then((function(){}))}}();return e&&e.then?e.then(r):r()}))}catch(t){return Promise.reject(t)}},e.page=function(t,n,e){try{var i=function(){var t=o.data;return Promise.resolve(o.hooks.do("page",t)).then((function(){var n=s((function(){var n=o.transitions.get(t,{once:!1,self:e});return Promise.resolve(o.transitions.doPage({data:t,page:u,transition:n,wrapper:o._})).then((function(){o.q()}))}),(function(){0===l.getLevel()&&o.force(t.current.url.href)}));if(n&&n.then)return n.then((function(){}))}))},o=this;o.data.next.url=r({href:t},o.url.parse(t)),o.data.trigger=n;var u=o.cache.has(t)?o.cache.update(t,{action:"click"}).request:o.cache.set(t,o.request(t,o.timeout,o.onRequestError.bind(o,n)),"click").request,f=function(){if(o.transitions.shouldWait)return Promise.resolve(L(u,o.data)).then((function(){}))}();return Promise.resolve(f&&f.then?f.then(i):i())}catch(t){return Promise.reject(t)}},e.onRequestError=function(t){this.transitions.isRunning=!1;for(var n=arguments.length,r=new Array(n>1?n-1:0),e=1;e<n;e++)r[e-1]=arguments[e];var i=r[0],o=r[1],u=this.cache.getAction(i);return this.cache.delete(i),!(this.$&&!1===this.$(t,u,i,o)||("click"===u&&this.force(i),1))},e.prefetch=function(t){var n=this;this.cache.has(t)||this.cache.set(t,this.request(t,this.timeout,this.onRequestError.bind(this,"barba")).catch((function(t){n.logger.error(t)})),"prefetch")},e.F=function(){!0!==this.prefetchIgnore&&(document.addEventListener("mouseover",this.B),document.addEventListener("touchstart",this.B)),document.addEventListener("click",this.U),window.addEventListener("popstate",this.D)},e.H=function(){!0!==this.prefetchIgnore&&(document.removeEventListener("mouseover",this.B),document.removeEventListener("touchstart",this.B)),document.removeEventListener("click",this.U),window.removeEventListener("popstate",this.D)},e.B=function(t){var n=this,r=this.I(t);if(r){var e=this.dom.getHref(r);this.prevent.checkHref(e)||this.cache.has(e)||this.cache.set(e,this.request(e,this.timeout,this.onRequestError.bind(this,r)).catch((function(t){n.logger.error(t)})),"enter")}},e.U=function(t){var n=this.I(t);if(n)return this.transitions.isRunning&&this.preventRunning?(t.preventDefault(),void t.stopPropagation()):void this.go(this.dom.getHref(n),n,t)},e.D=function(t){this.go(this.url.getHref(),"popstate",t)},e.I=function(t){for(var n=t.target;n&&!this.dom.getHref(n);)n=n.parentNode;if(n&&!this.prevent.checkLink(n,t,this.dom.getHref(n)))return n},e.q=function(){var t=this.url.getHref(),n={container:this.dom.getContainer(),html:this.dom.getHtml(),namespace:this.dom.getNamespace(),url:r({href:t},this.url.parse(t))};this.C={current:n,next:r({},this.schemaPage),trigger:void 0},this.hooks.do("reset",this.data)},n(t,[{key:"data",get:function(){return this.C}},{key:"wrapper",get:function(){return this._}}]),t}())}));
6
+ //# sourceMappingURL=barba.umd.js.map
7
+
lib/gsap/gsap.min.js DELETED
@@ -1,11 +0,0 @@
1
- /*!
2
- * GSAP 3.5.0
3
- * https://greensock.com
4
- *
5
- * @license Copyright 2020, GreenSock. All rights reserved.
6
- * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership.
7
- * @author: Jack Doyle, jack@greensock.com
8
- */
9
-
10
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(e){"use strict";function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function n(t){return"string"==typeof t}function o(t){return"function"==typeof t}function p(t){return"number"==typeof t}function q(t){return void 0===t}function r(t){return"object"==typeof t}function s(t){return!1!==t}function t(){return"undefined"!=typeof window}function u(t){return o(t)||n(t)}function K(t){return(l=mt(t,ot))&&ae}function L(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")}function M(t,e){return!e&&console.warn(t)}function N(t,e){return t&&(ot[t]=e)&&l&&(l[t]=e)||ot}function O(){return 0}function Y(t){var e,i,n=t[0];if(r(n)||o(n)||(t=[t]),!(e=(n._gsap||{}).harness)){for(i=_t.length;i--&&!_t[i].targetTest(n););e=_t[i]}for(i=t.length;i--;)t[i]&&(t[i]._gsap||(t[i]._gsap=new It(t[i],e)))||t.splice(i,1);return t}function Z(t){return t._gsap||Y(bt(t))[0]._gsap}function $(t,e,r){return(r=t[e])&&o(r)?t[e]():q(r)&&t.getAttribute&&t.getAttribute(e)||r}function _(t,e){return(t=t.split(",")).forEach(e)||t}function aa(t){return Math.round(1e5*t)/1e5||0}function ba(t,e){for(var r=e.length,i=0;t.indexOf(e[i])<0&&++i<r;);return i<r}function ca(t,e,r){var i,n=p(t[1]),a=(n?2:1)+(e<2?0:1),o=t[a];if(n&&(o.duration=t[1]),o.parent=r,e){for(i=o;r&&!("immediateRender"in i);)i=r.vars.defaults||{},r=s(r.vars.inherit)&&r.parent;o.immediateRender=s(i.immediateRender),e<2?o.runBackwards=1:o.startAt=t[a-1]}return o}function da(){var t,e,r=ht.length,i=ht.slice(0);for(lt={},t=ht.length=0;t<r;t++)(e=i[t])&&e._lazy&&(e.render(e._lazy[0],e._lazy[1],!0)._lazy=0)}function ea(t,e,r,i){ht.length&&da(),t.render(e,r,i),ht.length&&da()}function fa(t){var e=parseFloat(t);return(e||0===e)&&(t+"").match(st).length<2?e:n(t)?t.trim():t}function ga(t){return t}function ha(t,e){for(var r in e)r in t||(t[r]=e[r]);return t}function ia(t,e){for(var r in e)r in t||"duration"===r||"ease"===r||(t[r]=e[r])}function ka(t,e){for(var i in e)t[i]=r(e[i])?ka(t[i]||(t[i]={}),e[i]):e[i];return t}function la(t,e){var r,i={};for(r in t)r in e||(i[r]=t[r]);return i}function ma(t){var e=t.parent||E,r=t.keyframes?ia:ha;if(s(t.inherit))for(;e;)r(t,e.vars.defaults),e=e.parent||e._dp;return t}function pa(t,e,r,i){void 0===r&&(r="_first"),void 0===i&&(i="_last");var n=e._prev,a=e._next;n?n._next=a:t[r]===e&&(t[r]=a),a?a._prev=n:t[i]===e&&(t[i]=n),e._next=e._prev=e.parent=null}function qa(t,e){!t.parent||e&&!t.parent.autoRemoveChildren||t.parent.remove(t),t._act=0}function ra(t,e){if(!e||e._end>t._dur||e._start<0)for(var r=t;r;)r._dirty=1,r=r.parent;return t}function ua(t){return t._repeat?gt(t._tTime,t=t.duration()+t._rDelay)*t:0}function wa(t,e){return(t-e._start)*e._ts+(0<=e._ts?0:e._dirty?e.totalDuration():e._tDur)}function xa(t){return t._end=aa(t._start+(t._tDur/Math.abs(t._ts||t._rts||U)||0))}function ya(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=aa(t._dp._time-(0<t._ts?e/t._ts:((t._dirty?t.totalDuration():t._tDur)-e)/-t._ts)),xa(t),r._dirty||ra(r,t)),t}function za(t,e){var r;if((e._time||e._initted&&!e._dur)&&(r=wa(t.rawTime(),e),(!e._dur||yt(0,e.totalDuration(),r)-e._tTime>U)&&e.render(r,!0)),ra(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur<t.duration())for(r=t;r._dp;)0<=r.rawTime()&&r.totalTime(r._tTime),r=r._dp;t._zTime=-U}}function Aa(t,e,r,i){return e.parent&&qa(e),e._start=aa(r+e._delay),e._end=aa(e._start+(e.totalDuration()/Math.abs(e.timeScale())||0)),function _addLinkedListItem(t,e,r,i,n){void 0===r&&(r="_first"),void 0===i&&(i="_last");var a,s=t[i];if(n)for(a=e[n];s&&s[n]>a;)s=s._prev;s?(e._next=s._next,s._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[i]=e,e._prev=s,e.parent=e._dp=t}(t,e,"_first","_last",t._sort?"_start":0),t._recent=e,i||za(t,e),t}function Ba(t,e){return(ot.ScrollTrigger||L("scrollTrigger",e))&&ot.ScrollTrigger.create(e,t)}function Ca(t,e,r,i){return Nt(t,e),t._initted?!r&&t._pt&&(t._dur&&!1!==t.vars.lazy||!t._dur&&t.vars.lazy)&&d!==At.frame?(ht.push(t),t._lazy=[e,i],1):void 0:1}function Fa(t,e,r,i){var n=t._repeat,a=aa(e)||0,s=t._tTime/t._tDur;return s&&!i&&(t._time*=a/t._dur),t._dur=a,t._tDur=n?n<0?1e10:aa(a*(n+1)+t._rDelay*n):a,s&&!i?ya(t,t._tTime=t._tDur*s):t.parent&&xa(t),r||ra(t.parent,t),t}function Ga(t){return t instanceof Bt?ra(t):Fa(t,t._dur)}function Ia(t,e){var r,i,a=t.labels,s=t._recent||vt,o=t.duration()>=B?s.endTime(!1):t._dur;return n(e)&&(isNaN(e)||e in a)?"<"===(r=e.charAt(0))||">"===r?("<"===r?s._start:s.endTime(0<=s._repeat))+(parseFloat(e.substr(1))||0):(r=e.indexOf("="))<0?(e in a||(a[e]=o),a[e]):(i=+(e.charAt(r-1)+e.substr(r+1)),1<r?Ia(t,e.substr(0,r-1))+i:o+i):null==e?o:+e}function Ja(t,e){return t||0===t?e(t):e}function La(t){return(t+"").substr((parseFloat(t)+"").length)}function Oa(t,e){return t&&r(t)&&"length"in t&&(!e&&!t.length||t.length-1 in t&&r(t[0]))&&!t.nodeType&&t!==i}function Ra(t){return t.sort(function(){return.5-Math.random()})}function Sa(t){if(o(t))return t;var _=r(t)?t:{each:t},c=Rt(_.ease),m=_.from||0,g=parseFloat(_.base)||0,v={},e=0<m&&m<1,y=isNaN(m)||e,T=_.axis,b=m,w=m;return n(m)?b=w={center:.5,edges:.5,end:1}[m]||0:!e&&y&&(b=m[0],w=m[1]),function(t,e,r){var i,n,a,s,o,u,h,l,f,d=(r||_).length,p=v[d];if(!p){if(!(f="auto"===_.grid?0:(_.grid||[1,B])[1])){for(h=-B;h<(h=r[f++].getBoundingClientRect().left)&&f<d;);f--}for(p=v[d]=[],i=y?Math.min(f,d)*b-.5:m%f,n=y?d*w/f-.5:m/f|0,l=B,u=h=0;u<d;u++)a=u%f-i,s=n-(u/f|0),p[u]=o=T?Math.abs("y"===T?s:a):J(a*a+s*s),h<o&&(h=o),o<l&&(l=o);"random"===m&&Ra(p),p.max=h-l,p.min=l,p.v=d=(parseFloat(_.amount)||parseFloat(_.each)*(d<f?d-1:T?"y"===T?d/f:f:Math.max(f,d/f))||0)*("edges"===m?-1:1),p.b=d<0?g-d:g,p.u=La(_.amount||_.each)||0,c=c&&d<0?Ft(c):c}return d=(p[t]-p.min)/p.max||0,aa(p.b+(c?c(d):d)*p.v)+p.u}}function Ta(e){var r=e<1?Math.pow(10,(e+"").length-2):1;return function(t){return Math.floor(Math.round(parseFloat(t)/e)*e*r)/r+(p(t)?0:La(t))}}function Ua(u,t){var h,l,e=tt(u);return!e&&r(u)&&(h=e=u.radius||B,u.values?(u=bt(u.values),(l=!p(u[0]))&&(h*=h)):u=Ta(u.increment)),Ja(t,e?o(u)?function(t){return l=u(t),Math.abs(l-t)<=h?l:t}:function(t){for(var e,r,i=parseFloat(l?t.x:t),n=parseFloat(l?t.y:0),a=B,s=0,o=u.length;o--;)(e=l?(e=u[o].x-i)*e+(r=u[o].y-n)*r:Math.abs(u[o]-i))<a&&(a=e,s=o);return s=!h||a<=h?u[s]:t,l||s===t||p(t)?s:s+La(t)}:Ta(u))}function Va(t,e,r,i){return Ja(tt(t)?!e:!0===r?!!(r=0):!i,function(){return tt(t)?t[~~(Math.random()*t.length)]:(r=r||1e-5)&&(i=r<1?Math.pow(10,(r+"").length-2):1)&&Math.floor(Math.round((t+Math.random()*(e-t))/r)*r*i)/i})}function Za(e,r,t){return Ja(t,function(t){return e[~~r(t)]})}function ab(t){for(var e,r,i,n,a=0,s="";~(e=t.indexOf("random(",a));)i=t.indexOf(")",e),n="["===t.charAt(e+7),r=t.substr(e+7,i-e-7).match(n?st:et),s+=t.substr(a,e-a)+Va(n?r:+r[0],n?0:+r[1],+r[2]||1e-5),a=i+1;return s+t.substr(a,t.length-a)}function db(t,e,r){var i,n,a,s=t.labels,o=B;for(i in s)(n=s[i]-e)<0==!!r&&n&&o>(n=Math.abs(n))&&(a=i,o=n);return a}function fb(t){return qa(t),t.progress()<1&&xt(t,"onInterrupt"),t}function kb(t,e,r){return(6*(t=t<0?t+1:1<t?t-1:t)<1?e+(r-e)*t*6:t<.5?r:3*t<2?e+(r-e)*(2/3-t)*6:e)*kt+.5|0}function lb(t,e,r){var i,n,a,s,o,u,h,l,f,d,_=t?p(t)?[t>>16,t>>8&kt,t&kt]:0:Ot.black;if(!_){if(","===t.substr(-1)&&(t=t.substr(0,t.length-1)),Ot[t])_=Ot[t];else if("#"===t.charAt(0))4===t.length&&(t="#"+(i=t.charAt(1))+i+(n=t.charAt(2))+n+(a=t.charAt(3))+a),_=[(t=parseInt(t.substr(1),16))>>16,t>>8&kt,t&kt];else if("hsl"===t.substr(0,3))if(_=d=t.match(et),e){if(~t.indexOf("="))return _=t.match(rt),r&&_.length<4&&(_[3]=1),_}else s=+_[0]%360/360,o=_[1]/100,i=2*(u=_[2]/100)-(n=u<=.5?u*(o+1):u+o-u*o),3<_.length&&(_[3]*=1),_[0]=kb(s+1/3,i,n),_[1]=kb(s,i,n),_[2]=kb(s-1/3,i,n);else _=t.match(et)||Ot.transparent;_=_.map(Number)}return e&&!d&&(i=_[0]/kt,n=_[1]/kt,a=_[2]/kt,u=((h=Math.max(i,n,a))+(l=Math.min(i,n,a)))/2,h===l?s=o=0:(f=h-l,o=.5<u?f/(2-h-l):f/(h+l),s=h===i?(n-a)/f+(n<a?6:0):h===n?(a-i)/f+2:(i-n)/f+4,s*=60),_[0]=~~(s+.5),_[1]=~~(100*o+.5),_[2]=~~(100*u+.5)),r&&_.length<4&&(_[3]=1),_}function mb(t){var r=[],i=[],n=-1;return t.split(Mt).forEach(function(t){var e=t.match(it)||[];r.push.apply(r,e),i.push(n+=e.length+1)}),r.c=i,r}function nb(t,e,r){var i,n,a,s,o="",u=(t+o).match(Mt),h=e?"hsla(":"rgba(",l=0;if(!u)return t;if(u=u.map(function(t){return(t=lb(t,e,1))&&h+(e?t[0]+","+t[1]+"%,"+t[2]+"%,"+t[3]:t.join(","))+")"}),r&&(a=mb(t),(i=r.c).join(o)!==a.c.join(o)))for(s=(n=t.replace(Mt,"1").split(it)).length-1;l<s;l++)o+=n[l]+(~i.indexOf(l)?u.shift()||h+"0,0,0,0)":(a.length?a:u.length?u:r).shift());if(!n)for(s=(n=t.split(Mt)).length-1;l<s;l++)o+=n[l]+u[l];return o+n[s]}function qb(t){var e,r=t.join(" ");if(Mt.lastIndex=0,Mt.test(r))return e=Ct.test(r),t[1]=nb(t[1],e),t[0]=nb(t[0],e,mb(t[1])),!0}function zb(t){var e=(t+"").split("("),r=Dt[e[0]];return r&&1<e.length&&r.config?r.config.apply(null,~t.indexOf("{")?[function _parseObjectInString(t){for(var e,r,i,n={},a=t.substr(1,t.length-3).split(":"),s=a[0],o=1,u=a.length;o<u;o++)r=a[o],e=o!==u-1?r.lastIndexOf(","):r.length,i=r.substr(0,e),n[s]=isNaN(i)?i.replace(zt,"").trim():+i,s=r.substr(e+1).trim();return n}(e[1])]:function _valueInParentheses(t){var e=t.indexOf("(")+1,r=t.indexOf(")"),i=t.indexOf("(",e);return t.substring(e,~i&&i<r?t.indexOf(")",r+1):r)}(t).split(",").map(fa)):Dt._CE&&St.test(t)?Dt._CE("",t):r}function Bb(t,e){for(var r,i=t._first;i;)i instanceof Bt?Bb(i,e):!i.vars.yoyoEase||i._yoyo&&i._repeat||i._yoyo===e||(i.timeline?Bb(i.timeline,e):(r=i._ease,i._ease=i._yEase,i._yEase=r,i._yoyo=e)),i=i._next}function Db(t,e,r,i){void 0===r&&(r=function easeOut(t){return 1-e(1-t)}),void 0===i&&(i=function easeInOut(t){return t<.5?e(2*t)/2:1-e(2*(1-t))/2});var n,a={easeIn:e,easeOut:r,easeInOut:i};return _(t,function(t){for(var e in Dt[t]=ot[t]=a,Dt[n=t.toLowerCase()]=r,a)Dt[n+("easeIn"===e?".in":"easeOut"===e?".out":".inOut")]=Dt[t+"."+e]=a[e]}),a}function Eb(e){return function(t){return t<.5?(1-e(1-2*t))/2:.5+e(2*(t-.5))/2}}function Fb(r,t,e){function ul(t){return 1===t?1:i*Math.pow(2,-10*t)*W((t-a)*n)+1}var i=1<=t?t:1,n=(e||(r?.3:.45))/(t<1?t:1),a=n/V*(Math.asin(1/i)||0),s="out"===r?ul:"in"===r?function(t){return 1-ul(1-t)}:Eb(ul);return n=V/n,s.config=function(t,e){return Fb(r,t,e)},s}function Gb(e,r){function Cl(t){return t?--t*t*((r+1)*t+r)+1:0}void 0===r&&(r=1.70158);var t="out"===e?Cl:"in"===e?function(t){return 1-Cl(1-t)}:Eb(Cl);return t.config=function(t){return Gb(e,t)},t}var E,i,a,h,l,f,d,c,m,g,v,y,T,b,w,x,k,C,A,P,D,S,z,F,R,j={autoSleep:120,force3D:"auto",nullTargetWarn:1,units:{lineHeight:""}},I={duration:.5,overwrite:!1,delay:0},B=1e8,U=1/B,V=2*Math.PI,X=V/4,G=0,J=Math.sqrt,Q=Math.cos,W=Math.sin,H="function"==typeof ArrayBuffer?ArrayBuffer.isView:function(){},tt=Array.isArray,et=/(?:-?\.?\d|\.)+/gi,rt=/[-+=.]*\d+[.e\-+]*\d*[e\-\+]*\d*/g,it=/[-+=.]*\d+[.e-]*\d*[a-z%]*/g,nt=/[-+=.]*\d+(?:\.|e-|e)*\d*/gi,at=/[+-]=-?[\.\d]+/,st=/[#\-+.]*\b[a-z\d-=+%.]+/gi,ot={},ut={},ht=[],lt={},ft={},dt={},pt=30,_t=[],ct="",mt=function _merge(t,e){for(var r in e)t[r]=e[r];return t},gt=function _animationCycle(t,e){return(t/=e)&&~~t===t?~~t-1:~~t},vt={_start:0,endTime:O},yt=function _clamp(t,e,r){return r<t?t:e<r?e:r},Tt=[].slice,bt=function toArray(t,e){return!n(t)||e||!a&&Pt()?tt(t)?function _flatten(t,e,r){return void 0===r&&(r=[]),t.forEach(function(t){return n(t)&&!e||Oa(t,1)?r.push.apply(r,bt(t)):r.push(t)})||r}(t,e):Oa(t)?Tt.call(t,0):t?[t]:[]:Tt.call(h.querySelectorAll(t),0)},wt=function mapRange(e,t,r,i,n){var a=t-e,s=i-r;return Ja(n,function(t){return r+((t-e)/a*s||0)})},xt=function _callback(t,e,r){var i,n,a=t.vars,s=a[e];if(s)return i=a[e+"Params"],n=a.callbackScope||t,r&&ht.length&&da(),i?s.apply(n,i):s.call(n)},kt=255,Ot={aqua:[0,kt,kt],lime:[0,kt,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,kt],navy:[0,0,128],white:[kt,kt,kt],olive:[128,128,0],yellow:[kt,kt,0],orange:[kt,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[kt,0,0],pink:[kt,192,203],cyan:[0,kt,kt],transparent:[kt,kt,kt,0]},Mt=function(){var t,e="(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3}){1,2}\\b";for(t in Ot)e+="|"+t+"\\b";return new RegExp(e+")","gi")}(),Ct=/hsl[a]?\(/,At=(x=Date.now,k=500,C=33,A=x(),P=A,S=D=1e3/240,T={time:0,frame:0,tick:function tick(){qk(!0)},deltaRatio:function deltaRatio(t){return b/(1e3/(t||60))},wake:function wake(){f&&(!a&&t()&&(i=a=window,h=i.document||{},ot.gsap=ae,(i.gsapVersions||(i.gsapVersions=[])).push(ae.version),K(l||i.GreenSockGlobals||!i.gsap&&i||{}),y=i.requestAnimationFrame),g&&T.sleep(),v=y||function(t){return setTimeout(t,S-1e3*T.time+1|0)},m=1,qk(2))},sleep:function sleep(){(y?i.cancelAnimationFrame:clearTimeout)(g),m=0,v=O},lagSmoothing:function lagSmoothing(t,e){k=t||1e8,C=Math.min(e,k,0)},fps:function fps(t){D=1e3/(t||240),S=1e3*T.time+D},add:function add(t){z.indexOf(t)<0&&z.push(t),Pt()},remove:function remove(t){var e;~(e=z.indexOf(t))&&z.splice(e,1)&&e<=w&&w--},_listeners:z=[]}),Pt=function _wake(){return!m&&At.wake()},Dt={},St=/^[\d.\-M][\d.\-,\s]/,zt=/["']/g,Ft=function _invertEase(e){return function(t){return 1-e(1-t)}},Rt=function _parseEase(t,e){return t&&(o(t)?t:Dt[t]||zb(t))||e};function qk(t){var e,r,i,n,a=x()-P,s=!0===t;if(k<a&&(A+=a-C),(0<(e=(i=(P+=a)-A)-S)||s)&&(n=++T.frame,b=i-1e3*T.time,T.time=i/=1e3,S+=e+(D<=e?4:D-e),r=1),s||(g=v(qk)),r)for(w=0;w<z.length;w++)z[w](i,b,n,t)}function Tl(t){return t<R?F*t*t:t<.7272727272727273?F*Math.pow(t-1.5/2.75,2)+.75:t<.9090909090909092?F*(t-=2.25/2.75)*t+.9375:F*Math.pow(t-2.625/2.75,2)+.984375}_("Linear,Quad,Cubic,Quart,Quint,Strong",function(t,e){var r=e<5?e+1:e;Db(t+",Power"+(r-1),e?function(t){return Math.pow(t,r)}:function(t){return t},function(t){return 1-Math.pow(1-t,r)},function(t){return t<.5?Math.pow(2*t,r)/2:1-Math.pow(2*(1-t),r)/2})}),Dt.Linear.easeNone=Dt.none=Dt.Linear.easeIn,Db("Elastic",Fb("in"),Fb("out"),Fb()),F=7.5625,R=1/2.75,Db("Bounce",function(t){return 1-Tl(1-t)},Tl),Db("Expo",function(t){return t?Math.pow(2,10*(t-1)):0}),Db("Circ",function(t){return-(J(1-t*t)-1)}),Db("Sine",function(t){return 1===t?1:1-Q(t*X)}),Db("Back",Gb("in"),Gb("out"),Gb()),Dt.SteppedEase=Dt.steps=ot.SteppedEase={config:function config(t,e){void 0===t&&(t=1);var r=1/t,i=t+(e?0:1),n=e?1:0;return function(t){return((i*yt(0,.99999999,t)|0)+n)*r}}},I.ease=Dt["quad.out"],_("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt",function(t){return ct+=t+","+t+"Params,"});var Et,It=function GSCache(t,e){this.id=G++,(t._gsap=this).target=t,this.harness=e,this.get=e?e.get:$,this.set=e?e.getSetter:Qt},Lt=((Et=Animation.prototype).delay=function delay(t){return t||0===t?(this.parent&&this.parent.smoothChildTiming&&this.startTime(this._start+t-this._delay),this._delay=t,this):this._delay},Et.duration=function duration(t){return arguments.length?this.totalDuration(0<this._repeat?t+(t+this._rDelay)*this._repeat:t):this.totalDuration()&&this._dur},Et.totalDuration=function totalDuration(t){return arguments.length?(this._dirty=0,Fa(this,this._repeat<0?t:(t-this._repeat*this._rDelay)/(this._repeat+1))):this._tDur},Et.totalTime=function totalTime(t,e){if(Pt(),!arguments.length)return this._tTime;var r=this._dp;if(r&&r.smoothChildTiming&&this._ts){for(ya(this,t);r.parent;)r.parent._time!==r._start+(0<=r._ts?r._tTime/r._ts:(r.totalDuration()-r._tTime)/-r._ts)&&r.totalTime(r._tTime,!0),r=r.parent;!this.parent&&this._dp.autoRemoveChildren&&(0<this._ts&&t<this._tDur||this._ts<0&&0<t||!this._tDur&&!t)&&Aa(this._dp,this,this._start-this._delay)}return(this._tTime!==t||!this._dur&&!e||this._initted&&Math.abs(this._zTime)===U||!t&&!this._initted&&(this.add||this._ptLookup))&&(this._ts||(this._pTime=t),ea(this,t,e)),this},Et.time=function time(t,e){return arguments.length?this.totalTime(Math.min(this.totalDuration(),t+ua(this))%this._dur||(t?this._dur:0),e):this._time},Et.totalProgress=function totalProgress(t,e){return arguments.length?this.totalTime(this.totalDuration()*t,e):this.totalDuration()?Math.min(1,this._tTime/this._tDur):this.ratio},Et.progress=function progress(t,e){return arguments.length?this.totalTime(this.duration()*(!this._yoyo||1&this.iteration()?t:1-t)+ua(this),e):this.duration()?Math.min(1,this._time/this._dur):this.ratio},Et.iteration=function iteration(t,e){var r=this.duration()+this._rDelay;return arguments.length?this.totalTime(this._time+(t-1)*r,e):this._repeat?gt(this._tTime,r)+1:1},Et.timeScale=function timeScale(t){if(!arguments.length)return this._rts===-U?0:this._rts;if(this._rts===t)return this;var e=this.parent&&this._ts?wa(this.parent._time,this):this._tTime;return this._rts=+t||0,this._ts=this._ps||t===-U?0:this._rts,function _recacheAncestors(t){for(var e=t.parent;e&&e.parent;)e._dirty=1,e.totalDuration(),e=e.parent;return t}(this.totalTime(yt(-this._delay,this._tDur,e),!0))},Et.paused=function paused(t){return arguments.length?(this._ps!==t&&((this._ps=t)?(this._pTime=this._tTime||Math.max(-this._delay,this.rawTime()),this._ts=this._act=0):(Pt(),this._ts=this._rts,this.totalTime(this.parent&&!this.parent.smoothChildTiming?this.rawTime():this._tTime||this._pTime,1===this.progress()&&(this._tTime-=U)&&Math.abs(this._zTime)!==U))),this):this._ps},Et.startTime=function startTime(t){if(arguments.length){this._start=t;var e=this.parent||this._dp;return!e||!e._sort&&this.parent||Aa(e,this,t-this._delay),this}return this._start},Et.endTime=function endTime(t){return this._start+(s(t)?this.totalDuration():this.duration())/Math.abs(this._ts)},Et.rawTime=function rawTime(t){var e=this.parent||this._dp;return e?t&&(!this._ts||this._repeat&&this._time&&this.totalProgress()<1)?this._tTime%(this._dur+this._rDelay):this._ts?wa(e.rawTime(t),this):this._tTime:this._tTime},Et.globalTime=function globalTime(t){for(var e=this,r=arguments.length?t:e.rawTime();e;)r=e._start+r/(e._ts||1),e=e._dp;return r},Et.repeat=function repeat(t){return arguments.length?(this._repeat=t,Ga(this)):this._repeat},Et.repeatDelay=function repeatDelay(t){return arguments.length?(this._rDelay=t,Ga(this)):this._rDelay},Et.yoyo=function yoyo(t){return arguments.length?(this._yoyo=t,this):this._yoyo},Et.seek=function seek(t,e){return this.totalTime(Ia(this,t),s(e))},Et.restart=function restart(t,e){return this.play().totalTime(t?-this._delay:0,s(e))},Et.play=function play(t,e){return null!=t&&this.seek(t,e),this.reversed(!1).paused(!1)},Et.reverse=function reverse(t,e){return null!=t&&this.seek(t||this.totalDuration(),e),this.reversed(!0).paused(!1)},Et.pause=function pause(t,e){return null!=t&&this.seek(t,e),this.paused(!0)},Et.resume=function resume(){return this.paused(!1)},Et.reversed=function reversed(t){return arguments.length?(!!t!==this.reversed()&&this.timeScale(-this._rts||(t?-U:0)),this):this._rts<0},Et.invalidate=function invalidate(){return this._initted=0,this._zTime=-U,this},Et.isActive=function isActive(){var t,e=this.parent||this._dp,r=this._start;return!(e&&!(this._ts&&this._initted&&e.isActive()&&(t=e.rawTime(!0))>=r&&t<this.endTime(!0)-U))},Et.eventCallback=function eventCallback(t,e,r){var i=this.vars;return 1<arguments.length?(e?(i[t]=e,r&&(i[t+"Params"]=r),"onUpdate"===t&&(this._onUpdate=e)):delete i[t],this):i[t]},Et.then=function then(t){var i=this;return new Promise(function(e){function jn(){var t=i.then;i.then=null,o(r)&&(r=r(i))&&(r.then||r===i)&&(i.then=t),e(r),i.then=t}var r=o(t)?t:ga;i._initted&&1===i.totalProgress()&&0<=i._ts||!i._tTime&&i._ts<0?jn():i._prom=jn})},Et.kill=function kill(){fb(this)},Animation);function Animation(t,e){var r=t.parent||E;this.vars=t,this._delay=+t.delay||0,(this._repeat=t.repeat||0)&&(this._rDelay=t.repeatDelay||0,this._yoyo=!!t.yoyo||!!t.yoyoEase),this._ts=1,Fa(this,+t.duration,1,1),this.data=t.data,m||At.wake(),r&&Aa(r,this,e||0===e?e:r._time,1),t.reversed&&this.reverse(),t.paused&&this.paused(!0)}ha(Lt.prototype,{_time:0,_start:0,_end:0,_tTime:0,_tDur:0,_dirty:0,_repeat:0,_yoyo:!1,parent:null,_initted:!1,_rDelay:0,_ts:1,_dp:0,ratio:0,_zTime:-U,_prom:0,_ps:!1,_rts:1});var Bt=function(i){function Timeline(t,e){var r;return void 0===t&&(t={}),(r=i.call(this,t,e)||this).labels={},r.smoothChildTiming=!!t.smoothChildTiming,r.autoRemoveChildren=!!t.autoRemoveChildren,r._sort=s(t.sortChildren),r.parent&&za(r.parent,_assertThisInitialized(r)),t.scrollTrigger&&Ba(_assertThisInitialized(r),t.scrollTrigger),r}_inheritsLoose(Timeline,i);var t=Timeline.prototype;return t.to=function to(t,e,r,i){return new Xt(t,ca(arguments,0,this),Ia(this,p(e)?i:r)),this},t.from=function from(t,e,r,i){return new Xt(t,ca(arguments,1,this),Ia(this,p(e)?i:r)),this},t.fromTo=function fromTo(t,e,r,i,n){return new Xt(t,ca(arguments,2,this),Ia(this,p(e)?n:i)),this},t.set=function set(t,e,r){return e.duration=0,e.parent=this,ma(e).repeatDelay||(e.repeat=0),e.immediateRender=!!e.immediateRender,new Xt(t,e,Ia(this,r),1),this},t.call=function call(t,e,r){return Aa(this,Xt.delayedCall(0,t,e),Ia(this,r))},t.staggerTo=function staggerTo(t,e,r,i,n,a,s){return r.duration=e,r.stagger=r.stagger||i,r.onComplete=a,r.onCompleteParams=s,r.parent=this,new Xt(t,r,Ia(this,n)),this},t.staggerFrom=function staggerFrom(t,e,r,i,n,a,o){return r.runBackwards=1,ma(r).immediateRender=s(r.immediateRender),this.staggerTo(t,e,r,i,n,a,o)},t.staggerFromTo=function staggerFromTo(t,e,r,i,n,a,o,u){return i.startAt=r,ma(i).immediateRender=s(i.immediateRender),this.staggerTo(t,e,i,n,a,o,u)},t.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d,p,_,c=this._time,m=this._dirty?this.totalDuration():this._tDur,g=this._dur,v=this!==E&&m-U<t&&0<=t?m:t<U?0:t,y=this._zTime<0!=t<0&&(this._initted||!g);if(v!==this._tTime||r||y){if(c!==this._time&&g&&(v+=this._time-c,t+=this._time-c),i=v,f=this._start,u=!(l=this._ts),y&&(g||(c=this._zTime),!t&&e||(this._zTime=t)),this._repeat&&(p=this._yoyo,o=g+this._rDelay,i=aa(v%o),v===m?(s=this._repeat,i=g):((s=~~(v/o))&&s===v/o&&(i=g,s--),g<i&&(i=g)),d=gt(this._tTime,o),!c&&this._tTime&&d!==s&&(d=s),p&&1&s&&(i=g-i,_=1),s!==d&&!this._lock)){var T=p&&1&d,b=T===(p&&1&s);if(s<d&&(T=!T),c=T?0:g,this._lock=1,this.render(c||(_?0:aa(s*o)),e,!g)._lock=0,!e&&this.parent&&xt(this,"onRepeat"),this.vars.repeatRefresh&&!_&&(this.invalidate()._lock=1),c!==this._time||u!=!this._ts)return this;if(g=this._dur,m=this._tDur,b&&(this._lock=2,c=T?g+1e-4:-1e-4,this.render(c,!0),this.vars.repeatRefresh&&!_&&this.invalidate()),this._lock=0,!this._ts&&!u)return this;Bb(this,_)}if(this._hasPause&&!this._forcing&&this._lock<2&&(h=function _findNextPauseTween(t,e,r){var i;if(e<r)for(i=t._first;i&&i._start<=r;){if(!i._dur&&"isPause"===i.data&&i._start>e)return i;i=i._next}else for(i=t._last;i&&i._start>=r;){if(!i._dur&&"isPause"===i.data&&i._start<e)return i;i=i._prev}}(this,aa(c),aa(i)))&&(v-=i-(i=h._start)),this._tTime=v,this._time=i,this._act=!l,this._initted||(this._onUpdate=this.vars.onUpdate,this._initted=1,this._zTime=t),c||!i||e||xt(this,"onStart"),c<=i&&0<=t)for(n=this._first;n;){if(a=n._next,(n._act||i>=n._start)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(i-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(i-n._start)*n._ts,e,r),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=-U);break}}n=a}else{n=this._last;for(var w=t<0?t:i;n;){if(a=n._prev,(n._act||w<=n._end)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0<n._ts?(w-n._start)*n._ts:(n._dirty?n.totalDuration():n._tDur)+(w-n._start)*n._ts,e,r),i!==this._time||!this._ts&&!u){h=0,a&&(v+=this._zTime=w?-U:U);break}}n=a}}if(h&&!e&&(this.pause(),h.render(c<=i?0:-U)._zTime=c<=i?1:-1,this._ts))return this._start=f,xa(this),this.render(t,e,r);this._onUpdate&&!e&&xt(this,"onUpdate",!0),(v===m&&m>=this.totalDuration()||!v&&c)&&(f!==this._start&&Math.abs(l)===Math.abs(this._ts)||this._lock||(!t&&g||!(v===m&&0<this._ts||!v&&this._ts<0)||qa(this,1),e||t<0&&!c||!v&&!c||(xt(this,v===m?"onComplete":"onReverseComplete",!0),!this._prom||v<m&&0<this.timeScale()||this._prom())))}return this},t.add=function add(t,e){var r=this;if(p(e)||(e=Ia(this,e)),!(t instanceof Lt)){if(tt(t))return t.forEach(function(t){return r.add(t,e)}),this;if(n(t))return this.addLabel(t,e);if(!o(t))return this;t=Xt.delayedCall(0,t)}return this!==t?Aa(this,t,e):this},t.getChildren=function getChildren(t,e,r,i){void 0===t&&(t=!0),void 0===e&&(e=!0),void 0===r&&(r=!0),void 0===i&&(i=-B);for(var n=[],a=this._first;a;)a._start>=i&&(a instanceof Xt?e&&n.push(a):(r&&n.push(a),t&&n.push.apply(n,a.getChildren(!0,e,r)))),a=a._next;return n},t.getById=function getById(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},t.remove=function remove(t){return n(t)?this.removeLabel(t):o(t)?this.killTweensOf(t):(pa(this,t),t===this._recent&&(this._recent=this._last),ra(this))},t.totalTime=function totalTime(t,e){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=aa(At.time-(0<this._ts?t/this._ts:(this.totalDuration()-t)/-this._ts))),i.prototype.totalTime.call(this,t,e),this._forcing=0,this):this._tTime},t.addLabel=function addLabel(t,e){return this.labels[t]=Ia(this,e),this},t.removeLabel=function removeLabel(t){return delete this.labels[t],this},t.addPause=function addPause(t,e,r){var i=Xt.delayedCall(0,e||O,r);return i.data="isPause",this._hasPause=1,Aa(this,i,Ia(this,t))},t.removePause=function removePause(t){var e=this._first;for(t=Ia(this,t);e;)e._start===t&&"isPause"===e.data&&qa(e),e=e._next},t.killTweensOf=function killTweensOf(t,e,r){for(var i=this.getTweensOf(t,r),n=i.length;n--;)qt!==i[n]&&i[n].kill(t,e);return this},t.getTweensOf=function getTweensOf(t,e){for(var r,i=[],n=bt(t),a=this._first,s=p(e);a;)a instanceof Xt?ba(a._targets,n)&&(s?(!qt||a._initted&&a._ts)&&a.globalTime(0)<=e&&a.globalTime(a.totalDuration())>e:!e||a.isActive())&&i.push(a):(r=a.getTweensOf(n,e)).length&&i.push.apply(i,r),a=a._next;return i},t.tweenTo=function tweenTo(t,e){e=e||{};var r=this,i=Ia(r,t),n=e.startAt,a=e.onStart,s=e.onStartParams,o=Xt.to(r,ha(e,{ease:"none",lazy:!1,time:i,duration:e.duration||Math.abs((i-(n&&"time"in n?n.time:r._time))/r.timeScale())||U,onStart:function onStart(){r.pause();var t=e.duration||Math.abs((i-r._time)/r.timeScale());o._dur!==t&&Fa(o,t,0,1).render(o._time,!0,!0),a&&a.apply(o,s||[])}}));return o},t.tweenFromTo=function tweenFromTo(t,e,r){return this.tweenTo(e,ha({startAt:{time:Ia(this,t)}},r))},t.recent=function recent(){return this._recent},t.nextLabel=function nextLabel(t){return void 0===t&&(t=this._time),db(this,Ia(this,t))},t.previousLabel=function previousLabel(t){return void 0===t&&(t=this._time),db(this,Ia(this,t),1)},t.currentLabel=function currentLabel(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+U)},t.shiftChildren=function shiftChildren(t,e,r){void 0===r&&(r=0);for(var i,n=this._first,a=this.labels;n;)n._start>=r&&(n._start+=t,n._end+=t),n=n._next;if(e)for(i in a)a[i]>=r&&(a[i]+=t);return ra(this)},t.invalidate=function invalidate(){var t=this._first;for(this._lock=0;t;)t.invalidate(),t=t._next;return i.prototype.invalidate.call(this)},t.clear=function clear(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._time=this._tTime=this._pTime=0,t&&(this.labels={}),ra(this)},t.totalDuration=function totalDuration(t){var e,r,i,n=0,a=this,s=a._last,o=B;if(arguments.length)return a.timeScale((a._repeat<0?a.duration():a.totalDuration())/(a.reversed()?-t:t));if(a._dirty){for(i=a.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),o<(r=s._start)&&a._sort&&s._ts&&!a._lock?(a._lock=1,Aa(a,s,r-s._delay,1)._lock=0):o=r,r<0&&s._ts&&(n-=r,(!i&&!a._dp||i&&i.smoothChildTiming)&&(a._start+=r/a._ts,a._time-=r,a._tTime-=r),a.shiftChildren(-r,!1,-Infinity),o=0),s._end>n&&s._ts&&(n=s._end),s=e;Fa(a,a===E&&a._time>n?a._time:n,1,1),a._dirty=0}return a._tDur},Timeline.updateRoot=function updateRoot(t){if(E._ts&&(ea(E,wa(t,E)),d=At.frame),At.frame>=pt){pt+=j.autoSleep||120;var e=E._first;if((!e||!e._ts)&&j.autoSleep&&At._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||At.sleep()}}},Timeline}(Lt);ha(Bt.prototype,{_lock:0,_hasPause:0,_forcing:0});function Nb(t,e,i,a,s,u){var h,l,f,d;if(ft[t]&&!1!==(h=new ft[t]).init(s,h.rawVars?e[t]:function _processVars(t,e,i,a,s){if(o(t)&&(t=jt(t,s,e,i,a)),!r(t)||t.style&&t.nodeType||tt(t)||H(t))return n(t)?jt(t,s,e,i,a):t;var u,h={};for(u in t)h[u]=jt(t[u],s,e,i,a);return h}(e[t],a,s,u,i),i,a,u)&&(i._pt=l=new ie(i._pt,s,t,0,1,h.render,h,0,h.priority),i!==c))for(f=i._ptLookup[i._targets.indexOf(s)],d=h._props.length;d--;)f[h._props[d]]=l;return h}var qt,Yt=function _addPropTween(t,e,r,i,a,s,u,h,l){o(i)&&(i=i(a||0,t,s));var f,d=t[e],p="get"!==r?r:o(d)?l?t[e.indexOf("set")||!o(t["get"+e.substr(3)])?e:"get"+e.substr(3)](l):t[e]():d,_=o(d)?l?Jt:Zt:Gt;if(n(i)&&(~i.indexOf("random(")&&(i=ab(i)),"="===i.charAt(1)&&(i=parseFloat(p)+parseFloat(i.substr(2))*("-"===i.charAt(0)?-1:1)+(La(p)||0))),p!==i)return isNaN(p*i)?(d||e in t||L(e,i),function _addComplexStringPropTween(t,e,r,i,n,a,s){var o,u,h,l,f,d,p,_,c=new ie(this._pt,t,e,0,1,Ht,null,n),m=0,g=0;for(c.b=r,c.e=i,r+="",(p=~(i+="").indexOf("random("))&&(i=ab(i)),a&&(a(_=[r,i],t,e),r=_[0],i=_[1]),u=r.match(nt)||[];o=nt.exec(i);)l=o[0],f=i.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),l!==u[g++]&&(d=parseFloat(u[g-1])||0,c._pt={_next:c._pt,p:f||1===g?f:",",s:d,c:"="===l.charAt(1)?parseFloat(l.substr(2))*("-"===l.charAt(0)?-1:1):parseFloat(l)-d,m:h&&h<4?Math.round:0},m=nt.lastIndex);return c.c=m<i.length?i.substring(m,i.length):"",c.fp=s,(at.test(i)||p)&&(c.e=0),this._pt=c}.call(this,t,e,p,i,_,h||j.stringFilter,l)):(f=new ie(this._pt,t,e,+p||0,i-(p||0),"boolean"==typeof d?$t:Wt,0,_),l&&(f.fp=l),u&&f.modifier(u,this,t),this._pt=f)},Nt=function _initTween(t,e){var r,i,n,a,o,u,h,l,f,d,p,_,c,m=t.vars,g=m.ease,v=m.startAt,y=m.immediateRender,T=m.lazy,b=m.onUpdate,w=m.onUpdateParams,x=m.callbackScope,k=m.runBackwards,O=m.yoyoEase,M=m.keyframes,C=m.autoRevert,A=t._dur,P=t._startAt,D=t._targets,S=t.parent,z=S&&"nested"===S.data?S.parent._targets:D,F="auto"===t._overwrite,R=t.timeline;if(!R||M&&g||(g="none"),t._ease=Rt(g,I.ease),t._yEase=O?Ft(Rt(!0===O?g:O,I.ease)):0,O&&t._yoyo&&!t._repeat&&(O=t._yEase,t._yEase=t._ease,t._ease=O),!R){if(_=(l=D[0]?Z(D[0]).harness:0)&&m[l.prop],r=la(m,ut),P&&P.render(-1,!0).kill(),v){if(qa(t._startAt=Xt.set(D,ha({data:"isStart",overwrite:!1,parent:S,immediateRender:!0,lazy:s(T),startAt:null,delay:0,onUpdate:b,onUpdateParams:w,callbackScope:x,stagger:0},v))),y)if(0<e)C||(t._startAt=0);else if(A&&!(e<0&&P))return void(e&&(t._zTime=e))}else if(k&&A)if(P)C||(t._startAt=0);else if(e&&(y=!1),n=ha({overwrite:!1,data:"isFromStart",lazy:y&&s(T),immediateRender:y,stagger:0,parent:S},r),_&&(n[l.prop]=_),qa(t._startAt=Xt.set(D,n)),y){if(!e)return}else _initTween(t._startAt,U);for(t._pt=0,T=A&&s(T)||T&&!A,i=0;i<D.length;i++){if(h=(o=D[i])._gsap||Y(D)[i]._gsap,t._ptLookup[i]=d={},lt[h.id]&&da(),p=z===D?i:z.indexOf(o),l&&!1!==(f=new l).init(o,_||r,t,p,z)&&(t._pt=a=new ie(t._pt,o,f.name,0,1,f.render,f,0,f.priority),f._props.forEach(function(t){d[t]=a}),f.priority&&(u=1)),!l||_)for(n in r)ft[n]&&(f=Nb(n,r,t,p,o,z))?f.priority&&(u=1):d[n]=a=Yt.call(t,o,n,"get",r[n],p,z,0,m.stringFilter);t._op&&t._op[i]&&t.kill(o,t._op[i]),F&&t._pt&&(qt=t,E.killTweensOf(o,d,t.globalTime(0)),c=!t.parent,qt=0),t._pt&&T&&(lt[h.id]=1)}u&&re(t),t._onInit&&t._onInit(t)}t._from=!R&&!!m.runBackwards,t._onUpdate=b,t._initted=(!t._op||t._pt)&&!c},jt=function _parseFuncOrString(t,e,r,i,a){return o(t)?t.call(e,r,i,a):n(t)&&~t.indexOf("random(")?ab(t):t},Ut=ct+"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase",Vt=(Ut+",id,stagger,delay,duration,paused,scrollTrigger").split(","),Xt=function(S){function Tween(t,e,i,n){var a;"number"==typeof e&&(i.duration=e,e=i,i=null);var o,h,l,f,d,_,c,m,g=(a=S.call(this,n?e:ma(e),i)||this).vars,v=g.duration,y=g.delay,T=g.immediateRender,b=g.stagger,w=g.overwrite,x=g.keyframes,k=g.defaults,C=g.scrollTrigger,A=g.yoyoEase,P=a.parent,D=(tt(t)||H(t)?p(t[0]):"length"in e)?[t]:bt(t);if(a._targets=D.length?Y(D):M("GSAP target "+t+" not found. https://greensock.com",!j.nullTargetWarn)||[],a._ptLookup=[],a._overwrite=w,x||b||u(v)||u(y)){if(e=a.vars,(o=a.timeline=new Bt({data:"nested",defaults:k||{}})).kill(),o.parent=_assertThisInitialized(a),x)ha(o.vars.defaults,{ease:"none"}),x.forEach(function(t){return o.to(D,t,">")});else{if(f=D.length,c=b?Sa(b):O,r(b))for(d in b)~Ut.indexOf(d)&&((m=m||{})[d]=b[d]);for(h=0;h<f;h++){for(d in l={},e)Vt.indexOf(d)<0&&(l[d]=e[d]);l.stagger=0,A&&(l.yoyoEase=A),m&&mt(l,m),_=D[h],l.duration=+jt(v,_assertThisInitialized(a),h,_,D),l.delay=(+jt(y,_assertThisInitialized(a),h,_,D)||0)-a._delay,!b&&1===f&&l.delay&&(a._delay=y=l.delay,a._start+=y,l.delay=0),o.to(_,l,c(h,_,D))}o.duration()?v=y=0:a.timeline=0}v||a.duration(v=o.duration())}else a.timeline=0;return!0===w&&(qt=_assertThisInitialized(a),E.killTweensOf(D),qt=0),P&&za(P,_assertThisInitialized(a)),(T||!v&&!x&&a._start===aa(P._time)&&s(T)&&function _hasNoPausedAncestors(t){return!t||t._ts&&_hasNoPausedAncestors(t.parent)}(_assertThisInitialized(a))&&"nested"!==P.data)&&(a._tTime=-U,a.render(Math.max(0,-y))),C&&Ba(_assertThisInitialized(a),C),a}_inheritsLoose(Tween,S);var t=Tween.prototype;return t.render=function render(t,e,r){var i,n,a,s,o,u,h,l,f,d=this._time,p=this._tDur,_=this._dur,c=p-U<t&&0<=t?p:t<U?0:t;if(_){if(c!==this._tTime||!t||r||this._startAt&&this._zTime<0!=t<0){if(i=c,l=this.timeline,this._repeat){if(s=_+this._rDelay,i=aa(c%s),c===p?(a=this._repeat,i=_):((a=~~(c/s))&&a===c/s&&(i=_,a--),_<i&&(i=_)),(u=this._yoyo&&1&a)&&(f=this._yEase,i=_-i),o=gt(this._tTime,s),i===d&&!r&&this._initted)return this;a!==o&&(l&&this._yEase&&Bb(l,u),!this.vars.repeatRefresh||u||this._lock||(this._lock=r=1,this.render(aa(s*a),!0).invalidate()._lock=0))}if(!this._initted){if(Ca(this,t<0?t:i,r,e))return this._tTime=0,this;if(_!==this._dur)return this.render(t,e,r)}for(this._tTime=c,this._time=i,!this._act&&this._ts&&(this._act=1,this._lazy=0),this.ratio=h=(f||this._ease)(i/_),this._from&&(this.ratio=h=1-h),!i||d||e||xt(this,"onStart"),n=this._pt;n;)n.r(h,n.d),n=n._next;l&&l.render(t<0?t:!i&&u?-U:l._dur*h,e,r)||this._startAt&&(this._zTime=t),this._onUpdate&&!e&&(t<0&&this._startAt&&this._startAt.render(t,!0,r),xt(this,"onUpdate")),this._repeat&&a!==o&&this.vars.onRepeat&&!e&&this.parent&&xt(this,"onRepeat"),c!==this._tDur&&c||this._tTime!==c||(t<0&&this._startAt&&!this._onUpdate&&this._startAt.render(t,!0,!0),!t&&_||!(c===this._tDur&&0<this._ts||!c&&this._ts<0)||qa(this,1),e||t<0&&!d||!c&&!d||(xt(this,c===p?"onComplete":"onReverseComplete",!0),!this._prom||c<p&&0<this.timeScale()||this._prom()))}}else!function _renderZeroDurationTween(t,e,r,i){var n,a,s=t.ratio,o=e<0||!e&&s&&!t._start&&t._zTime>U&&!t._dp._lock||(t._ts<0||t._dp._ts<0)&&"isFromStart"!==t.data&&"isStart"!==t.data?0:1,u=t._rDelay,h=0;if(u&&t._repeat&&(h=yt(0,t._tDur,e),gt(h,u)!==(a=gt(t._tTime,u))&&(s=1-o,t.vars.repeatRefresh&&t._initted&&t.invalidate())),t._initted||!Ca(t,e,i,r))if(o!==s||i||t._zTime===U||!e&&t._zTime){for(a=t._zTime,t._zTime=e||(r?U:0),r=r||e&&!a,t.ratio=o,t._from&&(o=1-o),t._time=0,t._tTime=h,r||xt(t,"onStart"),n=t._pt;n;)n.r(o,n.d),n=n._next;t._startAt&&e<0&&t._startAt.render(e,!0,!0),t._onUpdate&&!r&&xt(t,"onUpdate"),h&&t._repeat&&!r&&t.parent&&xt(t,"onRepeat"),(e>=t._tDur||e<0)&&t.ratio===o&&(o&&qa(t,1),r||(xt(t,o?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)}(this,t,e,r);return this},t.targets=function targets(){return this._targets},t.invalidate=function invalidate(){return this._pt=this._op=this._startAt=this._onUpdate=this._act=this._lazy=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(),S.prototype.invalidate.call(this)},t.kill=function kill(t,e){if(void 0===e&&(e="all"),!(t||e&&"all"!==e)&&(this._lazy=0,this.parent))return fb(this);if(this.timeline){var r=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,qt&&!0!==qt.vars.overwrite)._first||fb(this),this.parent&&r!==this.timeline.totalDuration()&&Fa(this,this._dur*this.timeline._tDur/r,0,1),this}var i,a,s,o,u,h,l,f=this._targets,d=t?bt(t):f,p=this._ptLookup,c=this._pt;if((!e||"all"===e)&&function _arraysMatch(t,e){for(var r=t.length,i=r===e.length;i&&r--&&t[r]===e[r];);return r<0}(f,d))return"all"===e&&(this._pt=0),fb(this);for(i=this._op=this._op||[],"all"!==e&&(n(e)&&(u={},_(e,function(t){return u[t]=1}),e=u),e=function _addAliasesToVars(t,e){var r,i,n,a,s=t[0]?Z(t[0]).harness:0,o=s&&s.aliases;if(!o)return e;for(i in r=mt({},e),o)if(i in r)for(n=(a=o[i].split(",")).length;n--;)r[a[n]]=r[i];return r}(f,e)),l=f.length;l--;)if(~d.indexOf(f[l]))for(u in a=p[l],"all"===e?(i[l]=e,o=a,s={}):(s=i[l]=i[l]||{},o=e),o)(h=a&&a[u])&&("kill"in h.d&&!0!==h.d.kill(u)||pa(this,h,"_pt"),delete a[u]),"all"!==s&&(s[u]=1);return this._initted&&!this._pt&&c&&fb(this),this},Tween.to=function to(t,e,r){return new Tween(t,e,r)},Tween.from=function from(t,e){return new Tween(t,ca(arguments,1))},Tween.delayedCall=function delayedCall(t,e,r,i){return new Tween(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:i})},Tween.fromTo=function fromTo(t,e,r){return new Tween(t,ca(arguments,2))},Tween.set=function set(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new Tween(t,e)},Tween.killTweensOf=function killTweensOf(t,e,r){return E.killTweensOf(t,e,r)},Tween}(Lt);ha(Xt.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),_("staggerTo,staggerFrom,staggerFromTo",function(r){Xt[r]=function(){var t=new Bt,e=Tt.call(arguments,0);return e.splice("staggerFromTo"===r?5:4,0,0),t[r].apply(t,e)}});function Yb(t,e,r){return t.setAttribute(e,r)}function ec(t,e,r,i){i.mSet(t,e,i.m.call(i.tween,r,i.mt),i)}var Gt=function _setterPlain(t,e,r){return t[e]=r},Zt=function _setterFunc(t,e,r){return t[e](r)},Jt=function _setterFuncWithParam(t,e,r,i){return t[e](i.fp,r)},Qt=function _getSetter(t,e){return o(t[e])?Zt:q(t[e])&&t.setAttribute?Yb:Gt},Wt=function _renderPlain(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4,e)},$t=function _renderBoolean(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},Ht=function _renderComplexString(t,e){var r=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;r;)i=r.p+(r.m?r.m(r.s+r.c*t):Math.round(1e4*(r.s+r.c*t))/1e4)+i,r=r._next;i+=e.c}e.set(e.t,e.p,i,e)},Kt=function _renderPropTweens(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},te=function _addPluginModifier(t,e,r,i){for(var n,a=this._pt;a;)n=a._next,a.p===i&&a.modifier(t,e,r),a=n},ee=function _killPropTweensOf(t){for(var e,r,i=this._pt;i;)r=i._next,i.p===t&&!i.op||i.op===t?pa(this,i,"_pt"):i.dep||(e=1),i=r;return!e},re=function _sortPropTweensByPriority(t){for(var e,r,i,n,a=t._pt;a;){for(e=a._next,r=i;r&&r.pr>a.pr;)r=r._next;(a._prev=r?r._prev:n)?a._prev._next=a:i=a,(a._next=r)?r._prev=a:n=a,a=e}t._pt=i},ie=(PropTween.prototype.modifier=function modifier(t,e,r){this.mSet=this.mSet||this.set,this.set=ec,this.m=t,this.mt=r,this.tween=e},PropTween);function PropTween(t,e,r,i,n,a,s,o,u){this.t=e,this.s=i,this.c=n,this.p=r,this.r=a||Wt,this.d=s||this,this.set=o||Gt,this.pr=u||0,(this._next=t)&&(t._prev=this)}_(ct+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(t){return ut[t]=1}),ot.TweenMax=ot.TweenLite=Xt,ot.TimelineLite=ot.TimelineMax=Bt,E=new Bt({sortChildren:!1,defaults:I,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),j.stringFilter=qb;var ne={registerPlugin:function registerPlugin(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];e.forEach(function(t){return function _createPlugin(t){var e=(t=!t.name&&t.default||t).name,r=o(t),i=e&&!r&&t.init?function(){this._props=[]}:t,n={init:O,render:Kt,add:Yt,kill:ee,modifier:te,rawVars:0},a={targetTest:0,get:0,getSetter:Qt,aliases:{},register:0};if(Pt(),t!==i){if(ft[e])return;ha(i,ha(la(t,n),a)),mt(i.prototype,mt(n,la(t,a))),ft[i.prop=e]=i,t.targetTest&&(_t.push(i),ut[e]=1),e=("css"===e?"CSS":e.charAt(0).toUpperCase()+e.substr(1))+"Plugin"}N(e,i),t.register&&t.register(ae,i,ie)}(t)})},timeline:function timeline(t){return new Bt(t)},getTweensOf:function getTweensOf(t,e){return E.getTweensOf(t,e)},getProperty:function getProperty(i,t,e,r){n(i)&&(i=bt(i)[0]);var a=Z(i||{}).get,s=e?ga:fa;return"native"===e&&(e=""),i?t?s((ft[t]&&ft[t].get||a)(i,t,e,r)):function(t,e,r){return s((ft[t]&&ft[t].get||a)(i,t,e,r))}:i},quickSetter:function quickSetter(r,e,i){if(1<(r=bt(r)).length){var n=r.map(function(t){return ae.quickSetter(t,e,i)}),a=n.length;return function(t){for(var e=a;e--;)n[e](t)}}r=r[0]||{};var s=ft[e],o=Z(r),u=o.harness&&(o.harness.aliases||{})[e]||e,h=s?function(t){var e=new s;c._pt=0,e.init(r,i?t+i:t,c,0,[r]),e.render(1,e),c._pt&&Kt(1,c)}:o.set(r,u);return s?h:function(t){return h(r,u,i?t+i:t,o,1)}},isTweening:function isTweening(t){return 0<E.getTweensOf(t,!0).length},defaults:function defaults(t){return t&&t.ease&&(t.ease=Rt(t.ease,I.ease)),ka(I,t||{})},config:function config(t){return ka(j,t||{})},registerEffect:function registerEffect(t){var n=t.name,i=t.effect,e=t.plugins,a=t.defaults,s=t.extendTimeline;(e||"").split(",").forEach(function(t){return t&&!ft[t]&&!ot[t]&&M(n+" effect requires "+t+" plugin.")}),dt[n]=function(t,e,r){return i(bt(t),ha(e||{},a),r)},s&&(Bt.prototype[n]=function(t,e,i){return this.add(dt[n](t,r(e)?e:(i=e)&&{},this),i)})},registerEase:function registerEase(t,e){Dt[t]=Rt(e)},parseEase:function parseEase(t,e){return arguments.length?Rt(t,e):Dt},getById:function getById(t){return E.getById(t)},exportRoot:function exportRoot(t,e){void 0===t&&(t={});var r,i,n=new Bt(t);for(n.smoothChildTiming=s(t.smoothChildTiming),E.remove(n),n._dp=0,n._time=n._tTime=E._time,r=E._first;r;)i=r._next,!e&&!r._dur&&r instanceof Xt&&r.vars.onComplete===r._targets[0]||Aa(n,r,r._start-r._delay),r=i;return Aa(E,n,0),n},utils:{wrap:function wrap(e,t,r){var i=t-e;return tt(e)?Za(e,wrap(0,e.length),t):Ja(r,function(t){return(i+(t-e)%i)%i+e})},wrapYoyo:function wrapYoyo(e,t,r){var i=t-e,n=2*i;return tt(e)?Za(e,wrapYoyo(0,e.length-1),t):Ja(r,function(t){return e+(i<(t=(n+(t-e)%n)%n||0)?n-t:t)})},distribute:Sa,random:Va,snap:Ua,normalize:function normalize(t,e,r){return wt(t,e,0,1,r)},getUnit:La,clamp:function clamp(e,r,t){return Ja(t,function(t){return yt(e,r,t)})},splitColor:lb,toArray:bt,mapRange:wt,pipe:function pipe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(t){return e.reduce(function(t,e){return e(t)},t)}},unitize:function unitize(e,r){return function(t){return e(parseFloat(t))+(r||La(t))}},interpolate:function interpolate(e,r,t,i){var a=isNaN(e+r)?0:function(t){return(1-t)*e+t*r};if(!a){var s,o,u,h,l,f=n(e),d={};if(!0===t&&(i=1)&&(t=null),f)e={p:e},r={p:r};else if(tt(e)&&!tt(r)){for(u=[],h=e.length,l=h-2,o=1;o<h;o++)u.push(interpolate(e[o-1],e[o]));h--,a=function func(t){t*=h;var e=Math.min(l,~~t);return u[e](t-e)},t=r}else i||(e=mt(tt(e)?[]:{},e));if(!u){for(s in r)Yt.call(d,e,s,"get",r[s]);a=function func(t){return Kt(t,d)||(f?e.p:e)}}}return Ja(t,a)},shuffle:Ra},install:K,effects:dt,ticker:At,updateRoot:Bt.updateRoot,plugins:ft,globalTimeline:E,core:{PropTween:ie,globals:N,Tween:Xt,Timeline:Bt,Animation:Lt,getCache:Z,_removeLinkedListItem:pa}};_("to,from,fromTo,delayedCall,set,killTweensOf",function(t){return ne[t]=Xt[t]}),At.add(Bt.updateRoot),c=ne.to({},{duration:0});function ic(t,e){for(var r=t._pt;r&&r.p!==e&&r.op!==e&&r.fp!==e;)r=r._next;return r}function kc(t,a){return{name:t,rawVars:1,init:function init(t,i,e){e._onInit=function(t){var e,r;if(n(i)&&(e={},_(i,function(t){return e[t]=1}),i=e),a){for(r in e={},i)e[r]=a(i[r]);i=e}!function _addModifiers(t,e){var r,i,n,a=t._targets;for(r in e)for(i=a.length;i--;)(n=(n=t._ptLookup[i][r])&&n.d)&&(n._pt&&(n=ic(n,r)),n&&n.modifier&&n.modifier(e[r],t,a[i],r))}(t,i)}}}}var ae=ne.registerPlugin({name:"attr",init:function init(t,e,r,i,n){var a,s;for(a in e)(s=this.add(t,"setAttribute",(t.getAttribute(a)||0)+"",e[a],i,n,0,0,a))&&(s.op=a),this._props.push(a)}},{name:"endArray",init:function init(t,e){for(var r=e.length;r--;)this.add(t,r,t[r]||0,e[r])}},kc("roundProps",Ta),kc("modifiers"),kc("snap",Ua))||ne;Xt.version=Bt.version=ae.version="3.5.0",f=1,t()&&Pt();function Vc(t,e){return e.set(e.t,e.p,Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function Wc(t,e){return e.set(e.t,e.p,1===t?e.e:Math.round(1e4*(e.s+e.c*t))/1e4+e.u,e)}function Xc(t,e){return e.set(e.t,e.p,t?Math.round(1e4*(e.s+e.c*t))/1e4+e.u:e.b,e)}function Yc(t,e){var r=e.s+e.c*t;e.set(e.t,e.p,~~(r+(r<0?-.5:.5))+e.u,e)}function Zc(t,e){return e.set(e.t,e.p,t?e.e:e.b,e)}function $c(t,e){return e.set(e.t,e.p,1!==t?e.b:e.e,e)}function _c(t,e,r){return t.style[e]=r}function ad(t,e,r){return t.style.setProperty(e,r)}function bd(t,e,r){return t._gsap[e]=r}function cd(t,e,r){return t._gsap.scaleX=t._gsap.scaleY=r}function dd(t,e,r,i,n){var a=t._gsap;a.scaleX=a.scaleY=r,a.renderTransform(n,a)}function ed(t,e,r,i,n){var a=t._gsap;a[e]=r,a.renderTransform(n,a)}function id(t,e){var r=oe.createElementNS?oe.createElementNS((e||"http://www.w3.org/1999/xhtml").replace(/^https/,"http"),t):oe.createElement(t);return r.style?r:oe.createElement(t)}function jd(t,e,r){var i=getComputedStyle(t);return i[e]||i.getPropertyValue(e.replace(Ie,"-$1").toLowerCase())||i.getPropertyValue(e)||!r&&jd(t,Ue(e)||e,1)||""}function md(){(function _windowExists(){return"undefined"!=typeof window})()&&window.document&&(se=window,oe=se.document,ue=oe.documentElement,le=id("div")||{style:{}},fe=id("div"),Ye=Ue(Ye),Ne=Ye+"Origin",le.style.cssText="border-width:0;line-height:0;position:absolute;padding:0",pe=!!Ue("perspective"),he=1)}function nd(t){var e,r=id("svg",this.ownerSVGElement&&this.ownerSVGElement.getAttribute("xmlns")||"http://www.w3.org/2000/svg"),i=this.parentNode,n=this.nextSibling,a=this.style.cssText;if(ue.appendChild(r),r.appendChild(this),this.style.display="block",t)try{e=this.getBBox(),this._gsapBBox=this.getBBox,this.getBBox=nd}catch(t){}else this._gsapBBox&&(e=this._gsapBBox());return i&&(n?i.insertBefore(this,n):i.appendChild(this)),ue.removeChild(r),this.style.cssText=a,e}function od(t,e){for(var r=e.length;r--;)if(t.hasAttribute(e[r]))return t.getAttribute(e[r])}function pd(e){var r;try{r=e.getBBox()}catch(t){r=nd.call(e,!0)}return r&&(r.width||r.height)||e.getBBox===nd||(r=nd.call(e,!0)),!r||r.width||r.x||r.y?r:{x:+od(e,["x","cx","x1"])||0,y:+od(e,["y","cy","y1"])||0,width:0,height:0}}function qd(t){return!(!t.getCTM||t.parentNode&&!t.ownerSVGElement||!pd(t))}function rd(t,e){if(e){var r=t.style;e in ze&&e!==Ne&&(e=Ye),r.removeProperty?("ms"!==e.substr(0,2)&&"webkit"!==e.substr(0,6)||(e="-"+e),r.removeProperty(e.replace(Ie,"-$1").toLowerCase())):r.removeAttribute(e)}}function sd(t,e,r,i,n,a){var s=new ie(t._pt,e,r,0,1,a?$c:Zc);return(t._pt=s).b=i,s.e=n,t._props.push(r),s}function ud(t,e,r,i){var n,a,s,o,u=parseFloat(r)||0,h=(r+"").trim().substr((u+"").length)||"px",l=le.style,f=Le.test(e),d="svg"===t.tagName.toLowerCase(),p=(d?"client":"offset")+(f?"Width":"Height"),_="px"===i,c="%"===i;return i===h||!u||Ve[i]||Ve[h]?u:("px"===h||_||(u=ud(t,e,r,"px")),o=t.getCTM&&qd(t),c&&(ze[e]||~e.indexOf("adius"))?aa(u/(o?t.getBBox()[f?"width":"height"]:t[p])*100):(l[f?"width":"height"]=100+(_?h:i),a=~e.indexOf("adius")||"em"===i&&t.appendChild&&!d?t:t.parentNode,o&&(a=(t.ownerSVGElement||{}).parentNode),a&&a!==oe&&a.appendChild||(a=oe.body),(s=a._gsap)&&c&&s.width&&f&&s.time===At.time?aa(u/s.width*100):(!c&&"%"!==h||(l.position=jd(t,"position")),a===t&&(l.position="static"),a.appendChild(le),n=le[p],a.removeChild(le),l.position="absolute",f&&c&&((s=Z(a)).time=At.time,s.width=a[p]),aa(_?n*u/100:n&&u?100/n*u:0))))}function vd(t,e,r,i){var n;return he||md(),e in qe&&"transform"!==e&&~(e=qe[e]).indexOf(",")&&(e=e.split(",")[0]),ze[e]&&"transform"!==e?(n=Qe(t,i),n="transformOrigin"!==e?n[e]:We(jd(t,Ne))+" "+n.zOrigin+"px"):(n=t.style[e])&&"auto"!==n&&!i&&!~(n+"").indexOf("calc(")||(n=Ge[e]&&Ge[e](t,e,r)||jd(t,e)||$(t,e)||("opacity"===e?1:0)),r&&!~(n+"").indexOf(" ")?ud(t,e,n,r)+r:n}function wd(t,e,r,i){if(!r||"none"===r){var n=Ue(e,t,1),a=n&&jd(t,n,1);a&&a!==r?(e=n,r=a):"borderColor"===e&&(r=jd(t,"borderTopColor"))}var s,o,u,h,l,f,d,p,_,c,m,g,v=new ie(this._pt,t.style,e,0,1,Ht),y=0,T=0;if(v.b=r,v.e=i,r+="","auto"===(i+="")&&(t.style[e]=i,i=jd(t,e)||i,t.style[e]=r),qb(s=[r,i]),i=s[1],u=(r=s[0]).match(it)||[],(i.match(it)||[]).length){for(;o=it.exec(i);)d=o[0],_=i.substring(y,o.index),l?l=(l+1)%5:"rgba("!==_.substr(-5)&&"hsla("!==_.substr(-5)||(l=1),d!==(f=u[T++]||"")&&(h=parseFloat(f)||0,m=f.substr((h+"").length),(g="="===d.charAt(1)?+(d.charAt(0)+"1"):0)&&(d=d.substr(2)),p=parseFloat(d),c=d.substr((p+"").length),y=it.lastIndex-c.length,c||(c=c||j.units[e]||m,y===i.length&&(i+=c,v.e+=c)),m!==c&&(h=ud(t,e,f,c)||0),v._pt={_next:v._pt,p:_||1===T?_:",",s:h,c:g?g*p:p-h,m:l&&l<4?Math.round:0});v.c=y<i.length?i.substring(y,i.length):""}else v.r="display"===e&&"none"===i?$c:Zc;return at.test(i)&&(v.e=0),this._pt=v}function yd(t){var e=t.split(" "),r=e[0],i=e[1]||"50%";return"top"!==r&&"bottom"!==r&&"left"!==i&&"right"!==i||(t=r,r=i,i=t),e[0]=Xe[r]||r,e[1]=Xe[i]||i,e.join(" ")}function zd(t,e){if(e.tween&&e.tween._time===e.tween._dur){var r,i,n,a=e.t,s=a.style,o=e.u,u=a._gsap;if("all"===o||!0===o)s.cssText="",i=1;else for(n=(o=o.split(",")).length;-1<--n;)r=o[n],ze[r]&&(i=1,r="transformOrigin"===r?Ne:Ye),rd(a,r);i&&(rd(a,Ye),u&&(u.svg&&a.removeAttribute("transform"),Qe(a,1),u.uncache=1))}}function Dd(t){return"matrix(1, 0, 0, 1, 0, 0)"===t||"none"===t||!t}function Ed(t){var e=jd(t,Ye);return Dd(e)?Ze:e.substr(7).match(rt).map(aa)}function Fd(t,e){var r,i,n,a,s=t._gsap||Z(t),o=t.style,u=Ed(t);return s.svg&&t.getAttribute("transform")?"1,0,0,1,0,0"===(u=[(n=t.transform.baseVal.consolidate().matrix).a,n.b,n.c,n.d,n.e,n.f]).join(",")?Ze:u:(u!==Ze||t.offsetParent||t===ue||s.svg||(n=o.display,o.display="block",(r=t.parentNode)&&t.offsetParent||(a=1,i=t.nextSibling,ue.appendChild(t)),u=Ed(t),n?o.display=n:rd(t,"display"),a&&(i?r.insertBefore(t,i):r?r.appendChild(t):ue.removeChild(t))),e&&6<u.length?[u[0],u[1],u[4],u[5],u[12],u[13]]:u)}function Gd(t,e,r,i,n,a){var s,o,u,h=t._gsap,l=n||Fd(t,!0),f=h.xOrigin||0,d=h.yOrigin||0,p=h.xOffset||0,_=h.yOffset||0,c=l[0],m=l[1],g=l[2],v=l[3],y=l[4],T=l[5],b=e.split(" "),w=parseFloat(b[0])||0,x=parseFloat(b[1])||0;r?l!==Ze&&(o=c*v-m*g)&&(u=w*(-m/o)+x*(c/o)-(c*T-m*y)/o,w=w*(v/o)+x*(-g/o)+(g*T-v*y)/o,x=u):(w=(s=pd(t)).x+(~b[0].indexOf("%")?w/100*s.width:w),x=s.y+(~(b[1]||b[0]).indexOf("%")?x/100*s.height:x)),i||!1!==i&&h.smooth?(y=w-f,T=x-d,h.xOffset=p+(y*c+T*g)-y,h.yOffset=_+(y*m+T*v)-T):h.xOffset=h.yOffset=0,h.xOrigin=w,h.yOrigin=x,h.smooth=!!i,h.origin=e,h.originIsAbsolute=!!r,t.style[Ne]="0px 0px",a&&(sd(a,h,"xOrigin",f,w),sd(a,h,"yOrigin",d,x),sd(a,h,"xOffset",p,h.xOffset),sd(a,h,"yOffset",_,h.yOffset)),t.setAttribute("data-svg-origin",w+" "+x)}function Jd(t,e,r){var i=La(e);return aa(parseFloat(e)+parseFloat(ud(t,"x",r+"px",i)))+i}function Qd(t,e,r,i,a,s){var o,u,h=360,l=n(a),f=parseFloat(a)*(l&&~a.indexOf("rad")?Fe:1),d=s?f*s:f-i,p=i+d+"deg";return l&&("short"===(o=a.split("_")[1])&&(d%=h)!==d%180&&(d+=d<0?h:-h),"cw"===o&&d<0?d=(d+36e9)%h-~~(d/h)*h:"ccw"===o&&0<d&&(d=(d-36e9)%h-~~(d/h)*h)),t._pt=u=new ie(t._pt,e,r,i,d,Wc),u.e=p,u.u="deg",t._props.push(r),u}function Rd(t,e,r){var i,n,a,s,o,u,h,l=fe.style,f=r._gsap;for(n in l.cssText=getComputedStyle(r).cssText+";position:absolute;display:block;",l[Ye]=e,oe.body.appendChild(fe),i=Qe(fe,1),ze)(a=f[n])!==(s=i[n])&&"perspective,force3D,transformOrigin,svgOrigin".indexOf(n)<0&&(o=La(a)!==(h=La(s))?ud(r,n,a,h):parseFloat(a),u=parseFloat(s),t._pt=new ie(t._pt,f,n,o,u-o,Vc),t._pt.u=h||0,t._props.push(n));oe.body.removeChild(fe)}var se,oe,ue,he,le,fe,de,pe,_e=Dt.Power0,ce=Dt.Power1,me=Dt.Power2,ge=Dt.Power3,ve=Dt.Power4,ye=Dt.Linear,Te=Dt.Quad,be=Dt.Cubic,we=Dt.Quart,xe=Dt.Quint,ke=Dt.Strong,Oe=Dt.Elastic,Me=Dt.Back,Ce=Dt.SteppedEase,Ae=Dt.Bounce,Pe=Dt.Sine,De=Dt.Expo,Se=Dt.Circ,ze={},Fe=180/Math.PI,Re=Math.PI/180,Ee=Math.atan2,Ie=/([A-Z])/g,Le=/(?:left|right|width|margin|padding|x)/i,Be=/[\s,\(]\S/,qe={autoAlpha:"opacity,visibility",scale:"scaleX,scaleY",alpha:"opacity"},Ye="transform",Ne=Ye+"Origin",je="O,Moz,ms,Ms,Webkit".split(","),Ue=function _checkPropPrefix(t,e,r){var i=(e||le).style,n=5;if(t in i&&!r)return t;for(t=t.charAt(0).toUpperCase()+t.substr(1);n--&&!(je[n]+t in i););return n<0?null:(3===n?"ms":0<=n?je[n]:"")+t},Ve={deg:1,rad:1,turn:1},Xe={top:"0%",bottom:"100%",left:"0%",right:"100%",center:"50%"},Ge={clearProps:function clearProps(t,e,r,i,n){if("isFromStart"!==n.data){var a=t._pt=new ie(t._pt,e,r,0,0,zd);return a.u=i,a.pr=-10,a.tween=n,t._props.push(r),1}}},Ze=[1,0,0,1,0,0],Je={},Qe=function _parseTransform(t,e){var r=t._gsap||new It(t);if("x"in r&&!e&&!r.uncache)return r;var i,n,a,s,o,u,h,l,f,d,p,_,c,m,g,v,y,T,b,w,x,k,O,M,C,A,P,D,S,z,F,R,E=t.style,I=r.scaleX<0,L="deg",B=jd(t,Ne)||"0";return i=n=a=u=h=l=f=d=p=0,s=o=1,r.svg=!(!t.getCTM||!qd(t)),m=Fd(t,r.svg),r.svg&&(M=!r.uncache&&t.getAttribute("data-svg-origin"),Gd(t,M||B,!!M||r.originIsAbsolute,!1!==r.smooth,m)),_=r.xOrigin||0,c=r.yOrigin||0,m!==Ze&&(T=m[0],b=m[1],w=m[2],x=m[3],i=k=m[4],n=O=m[5],6===m.length?(s=Math.sqrt(T*T+b*b),o=Math.sqrt(x*x+w*w),u=T||b?Ee(b,T)*Fe:0,(f=w||x?Ee(w,x)*Fe+u:0)&&(o*=Math.cos(f*Re)),r.svg&&(i-=_-(_*T+c*w),n-=c-(_*b+c*x))):(R=m[6],z=m[7],P=m[8],D=m[9],S=m[10],F=m[11],i=m[12],n=m[13],a=m[14],h=(g=Ee(R,S))*Fe,g&&(M=k*(v=Math.cos(-g))+P*(y=Math.sin(-g)),C=O*v+D*y,A=R*v+S*y,P=k*-y+P*v,D=O*-y+D*v,S=R*-y+S*v,F=z*-y+F*v,k=M,O=C,R=A),l=(g=Ee(-w,S))*Fe,g&&(v=Math.cos(-g),F=x*(y=Math.sin(-g))+F*v,T=M=T*v-P*y,b=C=b*v-D*y,w=A=w*v-S*y),u=(g=Ee(b,T))*Fe,g&&(M=T*(v=Math.cos(g))+b*(y=Math.sin(g)),C=k*v+O*y,b=b*v-T*y,O=O*v-k*y,T=M,k=C),h&&359.9<Math.abs(h)+Math.abs(u)&&(h=u=0,l=180-l),s=aa(Math.sqrt(T*T+b*b+w*w)),o=aa(Math.sqrt(O*O+R*R)),g=Ee(k,O),f=2e-4<Math.abs(g)?g*Fe:0,p=F?1/(F<0?-F:F):0),r.svg&&(M=t.getAttribute("transform"),r.forceCSS=t.setAttribute("transform","")||!Dd(jd(t,Ye)),M&&t.setAttribute("transform",M))),90<Math.abs(f)&&Math.abs(f)<270&&(I?(s*=-1,f+=u<=0?180:-180,u+=u<=0?180:-180):(o*=-1,f+=f<=0?180:-180)),r.x=((r.xPercent=i&&Math.round(t.offsetWidth/2)===Math.round(-i)?-50:0)?0:i)+"px",r.y=((r.yPercent=n&&Math.round(t.offsetHeight/2)===Math.round(-n)?-50:0)?0:n)+"px",r.z=a+"px",r.scaleX=aa(s),r.scaleY=aa(o),r.rotation=aa(u)+L,r.rotationX=aa(h)+L,r.rotationY=aa(l)+L,r.skewX=f+L,r.skewY=d+L,r.transformPerspective=p+"px",(r.zOrigin=parseFloat(B.split(" ")[2])||0)&&(E[Ne]=We(B)),r.xOffset=r.yOffset=0,r.force3D=j.force3D,r.renderTransform=r.svg?rr:pe?er:$e,r.uncache=0,r},We=function _firstTwoOnly(t){return(t=t.split(" "))[0]+" "+t[1]},$e=function _renderNon3DTransforms(t,e){e.z="0px",e.rotationY=e.rotationX="0deg",e.force3D=0,er(t,e)},He="0deg",Ke="0px",tr=") ",er=function _renderCSSTransforms(t,e){var r=e||this,i=r.xPercent,n=r.yPercent,a=r.x,s=r.y,o=r.z,u=r.rotation,h=r.rotationY,l=r.rotationX,f=r.skewX,d=r.skewY,p=r.scaleX,_=r.scaleY,c=r.transformPerspective,m=r.force3D,g=r.target,v=r.zOrigin,y="",T="auto"===m&&t&&1!==t||!0===m;if(v&&(l!==He||h!==He)){var b,w=parseFloat(h)*Re,x=Math.sin(w),k=Math.cos(w);w=parseFloat(l)*Re,b=Math.cos(w),a=Jd(g,a,x*b*-v),s=Jd(g,s,-Math.sin(w)*-v),o=Jd(g,o,k*b*-v+v)}c!==Ke&&(y+="perspective("+c+tr),(i||n)&&(y+="translate("+i+"%, "+n+"%) "),!T&&a===Ke&&s===Ke&&o===Ke||(y+=o!==Ke||T?"translate3d("+a+", "+s+", "+o+") ":"translate("+a+", "+s+tr),u!==He&&(y+="rotate("+u+tr),h!==He&&(y+="rotateY("+h+tr),l!==He&&(y+="rotateX("+l+tr),f===He&&d===He||(y+="skew("+f+", "+d+tr),1===p&&1===_||(y+="scale("+p+", "+_+tr),g.style[Ye]=y||"translate(0, 0)"},rr=function _renderSVGTransforms(t,e){var r,i,n,a,s,o=e||this,u=o.xPercent,h=o.yPercent,l=o.x,f=o.y,d=o.rotation,p=o.skewX,_=o.skewY,c=o.scaleX,m=o.scaleY,g=o.target,v=o.xOrigin,y=o.yOrigin,T=o.xOffset,b=o.yOffset,w=o.forceCSS,x=parseFloat(l),k=parseFloat(f);d=parseFloat(d),p=parseFloat(p),(_=parseFloat(_))&&(p+=_=parseFloat(_),d+=_),d||p?(d*=Re,p*=Re,r=Math.cos(d)*c,i=Math.sin(d)*c,n=Math.sin(d-p)*-m,a=Math.cos(d-p)*m,p&&(_*=Re,s=Math.tan(p-_),n*=s=Math.sqrt(1+s*s),a*=s,_&&(s=Math.tan(_),r*=s=Math.sqrt(1+s*s),i*=s)),r=aa(r),i=aa(i),n=aa(n),a=aa(a)):(r=c,a=m,i=n=0),(x&&!~(l+"").indexOf("px")||k&&!~(f+"").indexOf("px"))&&(x=ud(g,"x",l,"px"),k=ud(g,"y",f,"px")),(v||y||T||b)&&(x=aa(x+v-(v*r+y*n)+T),k=aa(k+y-(v*i+y*a)+b)),(u||h)&&(s=g.getBBox(),x=aa(x+u/100*s.width),k=aa(k+h/100*s.height)),s="matrix("+r+","+i+","+n+","+a+","+x+","+k+")",g.setAttribute("transform",s),w&&(g.style[Ye]=s)};_("padding,margin,Width,Radius",function(e,r){var t="Right",i="Bottom",n="Left",o=(r<3?["Top",t,i,n]:["Top"+n,"Top"+t,i+t,i+n]).map(function(t){return r<2?e+t:"border"+t+e});Ge[1<r?"border"+e:e]=function(e,t,r,i,n){var a,s;if(arguments.length<4)return a=o.map(function(t){return vd(e,t,r)}),5===(s=a.join(" ")).split(a[0]).length?a[0]:s;a=(i+"").split(" "),s={},o.forEach(function(t,e){return s[t]=a[e]=a[e]||a[(e-1)/2|0]}),e.init(t,s,n)}});var ir,nr,ar,sr={name:"css",register:md,targetTest:function targetTest(t){return t.style&&t.nodeType},init:function init(t,e,r,i,n){var a,s,o,u,h,l,f,d,p,_,c,m,g,v,y,T=this._props,b=t.style;for(f in he||md(),e)if("autoRound"!==f&&(s=e[f],!ft[f]||!Nb(f,e,r,i,t,n)))if(h=typeof s,l=Ge[f],"function"===h&&(h=typeof(s=s.call(r,i,t,n))),"string"===h&&~s.indexOf("random(")&&(s=ab(s)),l)l(this,t,f,s,r)&&(y=1);else if("--"===f.substr(0,2))this.add(b,"setProperty",getComputedStyle(t).getPropertyValue(f)+"",s+"",i,n,0,0,f);else if("undefined"!==h){if(a=vd(t,f),u=parseFloat(a),(_="string"===h&&"="===s.charAt(1)?+(s.charAt(0)+"1"):0)&&(s=s.substr(2)),o=parseFloat(s),f in qe&&("autoAlpha"===f&&(1===u&&"hidden"===vd(t,"visibility")&&o&&(u=0),sd(this,b,"visibility",u?"inherit":"hidden",o?"inherit":"hidden",!o)),"scale"!==f&&"transform"!==f&&~(f=qe[f]).indexOf(",")&&(f=f.split(",")[0])),c=f in ze)if(m||((g=t._gsap).renderTransform||Qe(t),v=!1!==e.smoothOrigin&&g.smooth,(m=this._pt=new ie(this._pt,b,Ye,0,1,g.renderTransform,g,0,-1)).dep=1),"scale"===f)this._pt=new ie(this._pt,g,"scaleY",g.scaleY,_?_*o:o-g.scaleY),T.push("scaleY",f),f+="X";else{if("transformOrigin"===f){s=yd(s),g.svg?Gd(t,s,0,v,0,this):((p=parseFloat(s.split(" ")[2])||0)!==g.zOrigin&&sd(this,g,"zOrigin",g.zOrigin,p),sd(this,b,f,We(a),We(s)));continue}if("svgOrigin"===f){Gd(t,s,1,v,0,this);continue}if(f in Je){Qd(this,g,f,u,s,_);continue}if("smoothOrigin"===f){sd(this,g,"smooth",g.smooth,s);continue}if("force3D"===f){g[f]=s;continue}if("transform"===f){Rd(this,s,t);continue}}else f in b||(f=Ue(f)||f);if(c||(o||0===o)&&(u||0===u)&&!Be.test(s)&&f in b)(d=(a+"").substr((u+"").length))!==(p=(s+"").substr(((o=o||0)+"").length)||(f in j.units?j.units[f]:d))&&(u=ud(t,f,a,p)),this._pt=new ie(this._pt,c?g:b,f,u,_?_*o:o-u,"px"!==p||!1===e.autoRound||c?Vc:Yc),this._pt.u=p||0,d!==p&&(this._pt.b=a,this._pt.r=Xc);else if(f in b)wd.call(this,t,f,a,s);else{if(!(f in t)){L(f,s);continue}this.add(t,f,t[f],s,i,n)}T.push(f)}y&&re(this)},get:vd,aliases:qe,getSetter:function getSetter(t,e,r){var i=qe[e];return i&&i.indexOf(",")<0&&(e=i),e in ze&&e!==Ne&&(t._gsap.x||vd(t,"x"))?r&&de===r?"scale"===e?cd:bd:(de=r||{})&&("scale"===e?dd:ed):t.style&&!q(t.style[e])?_c:~e.indexOf("-")?ad:Qt(t,e)},core:{_removeProperty:rd,_getMatrix:Fd}};ae.utils.checkPrefix=Ue,ar=_((ir="x,y,z,scale,scaleX,scaleY,xPercent,yPercent")+","+(nr="rotation,rotationX,rotationY,skewX,skewY")+",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective",function(t){ze[t]=1}),_(nr,function(t){j.units[t]="deg",Je[t]=1}),qe[ar[13]]=ir+","+nr,_("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY",function(t){var e=t.split(":");qe[e[1]]=ar[e[0]]}),_("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective",function(t){j.units[t]="px"}),ae.registerPlugin(sr);var or=ae.registerPlugin(sr)||ae,ur=or.core.Tween;e.Back=Me,e.Bounce=Ae,e.CSSPlugin=sr,e.Circ=Se,e.Cubic=be,e.Elastic=Oe,e.Expo=De,e.Linear=ye,e.Power0=_e,e.Power1=ce,e.Power2=me,e.Power3=ge,e.Power4=ve,e.Quad=Te,e.Quart=we,e.Quint=xe,e.Sine=Pe,e.SteppedEase=Ce,e.Strong=ke,e.TimelineLite=Bt,e.TimelineMax=Bt,e.TweenLite=Xt,e.TweenMax=ur,e.default=or,e.gsap=or;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
11
-
 
 
 
 
 
 
 
 
 
 
 
lib/scrolltrigger/ScrollTrigger.min.js DELETED
@@ -1,11 +0,0 @@
1
- /*!
2
- * ScrollTrigger 3.5.0
3
- * https://greensock.com
4
- *
5
- * @license Copyright 2020, GreenSock. All rights reserved.
6
- * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership.
7
- * @author: Jack Doyle, jack@greensock.com
8
- */
9
-
10
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function H(e){return e}function I(){return"undefined"!=typeof window}function J(){return ke||I()&&(ke=window.gsap)&&ke.registerPlugin&&ke}function K(e){return!!~i.indexOf(e)}function L(e,t){return~We.indexOf(e)&&We[We.indexOf(e)+1][t]}function M(t,e){var r=e.s,n=e.sc,o=h.indexOf(t),i=n===rt.sc?1:2;return~o||(o=h.push(t)-1),h[o+i]||(h[o+i]=L(t,r)||(K(t)?n:function(e){return arguments.length?t[r]=e:t[r]}))}function N(e){return L(e,"getBoundingClientRect")||(K(e)?function(){return ft.width=Me.innerWidth,ft.height=Me.innerHeight,ft}:function(){return nt(e)})}function Q(e,t){var r=t.s,n=t.d2,o=t.d,i=t.a;return(r="scroll"+n)&&(i=L(e,r))?i()-N(e)()[o]:K(e)?Math.max(Pe[r],Oe[r])-(Me["inner"+n]||Pe["client"+n]||Oe["client"+n]):e[r]-e["offset"+n]}function R(e,t){for(var r=0;r<d.length;r+=3)t&&!~t.indexOf(d[r+1])||e(d[r],d[r+1],d[r+2])}function S(e){return"string"==typeof e}function T(e){return"function"==typeof e}function U(e){return"number"==typeof e}function V(e){return"object"==typeof e}function W(e){return T(e)&&e()}function X(r,n){return function(){var e=W(r),t=W(n);return function(){W(e),W(t)}}}function qa(e){return Me.getComputedStyle(e)}function sa(e,t){for(var r in t)r in e||(e[r]=t[r]);return e}function ua(e,t){var r=t.d2;return e["offset"+r]||e["client"+r]||0}function wa(t,r,e,n){return e.split(",").forEach(function(e){return t(r,e,n)})}function xa(e,t,r){return e.addEventListener(t,r,{passive:!0})}function ya(e,t,r){return e.removeEventListener(t,r)}function Ca(e,t){if(S(e)){var r=e.indexOf("="),n=~r?(e.charAt(r-1)+1)*parseFloat(e.substr(r+1)):0;n&&(e.indexOf("%")>r&&(n*=t/100),e=e.substr(0,r-1)),e=n+(e in m?m[e]*t:~e.indexOf("%")?parseFloat(e)*t/100:parseFloat(e)||0)}return e}function Da(e,t,r,n,o,i,a){var s=o.startColor,l=o.endColor,c=o.fontSize,f=o.indent,u=o.fontWeight,p=_e.createElement("div"),d=K(r)||"fixed"===L(r,"pinType"),g=-1!==e.indexOf("scroller"),h=d?Oe:r,v=-1!==e.indexOf("start"),x=v?s:l,m="border-color:"+x+";font-size:"+c+";color:"+x+";font-weight:"+u+";pointer-events:none;white-space:nowrap;font-family:sans-serif,Arial;z-index:1000;padding:4px 8px;border-width:0;border-style:solid;";return m+="position:"+(g&&d?"fixed;":"absolute;"),!g&&d||(m+=(n===rt?b:y)+":"+(i+parseFloat(f))+"px;"),a&&(m+="box-sizing:border-box;text-align:left;width:"+a.offsetWidth+"px;"),p._isStart=v,p.setAttribute("class","gsap-marker-"+e),p.style.cssText=m,p.innerText=t||0===t?e+"-"+t:e,h.insertBefore(p,h.children[0]),p._offset=p["offset"+n.op.d2],w(p,0,n,v),p}function Ha(){return l=l||s(B)}function Ia(){l||(l=s(B),De||P("scrollStart"),De=He())}function Ja(){return!Re&&a.restart(!0)}function Pa(e){var t=ke.ticker.frame,r=[],n=0;if(g!==t||Fe){for(A();n<_.length;n+=3)Me.matchMedia(_[n]).matches?r.push(n):A(1,_[n])||T(_[n+2])&&_[n+2]();for(E(),n=0;n<r.length;n++)Be=_[r[n]],_[r[n]+2]=_[r[n]+1](e);z(Be=0,1),g=t,P("matchMedia")}}function Qa(){return ya(Y,"scrollEnd",Qa)||z(!0)}function ab(e,t,r,n){if(e.parentNode!==t){for(var o,i=F.length,a=t.style,s=e.style;i--;)a[o=F[i]]=r[o];a.position="absolute"===r.position?"absolute":"relative","inline"===r.display&&(a.display="inline-block"),s[y]=s[b]="auto",a.overflow="visible",a.boxSizing="border-box",a[Ke]=ua(e,tt)+et,a[je]=ua(e,rt)+et,a[$e]=s[Ze]=s.top=s[x]="0",ct(n),s[Ke]=r[Ke],s[je]=r[je],s[$e]=r[$e],e.parentNode.insertBefore(t,e),t.appendChild(e)}}function db(e){for(var t=D.length,r=e.style,n=[],o=0;o<t;o++)n.push(D[o],r[D[o]]);return n.t=e,n}function gb(e,t,r,n,o,i,a,s,l,c,f,u){if(T(e)&&(e=e(s)),S(e)&&"max"===e.substr(0,3)&&(e=u+("="===e.charAt(4)?Ca("0"+e.substr(3),r):0)),U(e))a&&w(a,r,n,!0);else{T(t)&&(t=t(s));var p,d,g,h=Ee(t)[0]||Oe,v=nt(h)||{},x=e.split(" ");v&&(v.left||v.top)||"none"!==qa(h).display||(g=h.style.display,h.style.display="block",v=nt(h),g?h.style.display=g:h.style.removeProperty("display")),p=Ca(x[0],v[n.d]),d=Ca(x[1]||"0",r),e=v[n.p]-l[n.p]-c+p+o-d,a&&w(a,d,n,r-d<20||a._isStart&&20<d),r-=r-d}if(i){var m=e+r,b=i._isStart;u="scroll"+n.d2,w(i,m,n,b&&20<m||!b&&(f?Math.max(Oe[u],Pe[u]):i.parentNode[u])<=m+1),f&&(l=nt(a),f&&(i.style[n.op.p]=l[n.op.p]-n.op.m-i._offset+et))}return Math.round(e)}function jb(l,e){var c,f,u=M(l,e),p="_scroll"+e.p2;return l[p]=u,function getTween(e,t,r,n,o){var i=getTween.tween,a=t.onComplete,s={};return i&&i.kill(),c=r,t[p]=e,(t.modifiers=s)[p]=function(e){return(e=u())!==c&&e!==f?(i.kill(),getTween.tween=0):e=r+n*i.ratio+o*i.ratio*i.ratio,f=c,c=Math.round(e)},t.onComplete=function(){getTween.tween=0,a&&a.call(i)},i=getTween.tween=ke.to(l,t)}}var ke,o,Me,_e,Pe,Oe,i,a,s,l,Ee,Le,Ie,c,Re,Ae,f,ze,u,p,d,Ne,qe,Be,g,Fe=1,We=[],h=[],He=Date.now,v=He(),De=0,Je=1,Qe=Math.abs,t="scrollLeft",r="scrollTop",x="left",b="right",y="bottom",Ke="width",je="height",Ve="Right",Xe="Left",Ue="Top",Ye="Bottom",$e="padding",Ze="margin",Ge="Width",n="Height",et="px",tt={s:t,p:x,p2:Xe,os:b,os2:Ve,d:Ke,d2:Ge,a:"x",sc:function sc(e){return arguments.length?Me.scrollTo(e,rt.sc()):Me.pageXOffset||_e[t]||Pe[t]||Oe[t]||0}},rt={s:r,p:"top",p2:Ue,os:y,os2:Ye,d:je,d2:n,a:"y",op:tt,sc:function sc(e){return arguments.length?Me.scrollTo(tt.sc(),e):Me.pageYOffset||_e[r]||Pe[r]||Oe[r]||0}},nt=function _getBounds(e,t){var r=t&&"matrix(1, 0, 0, 1, 0, 0)"!==qa(e)[f]&&ke.to(e,{x:0,y:0,xPercent:0,yPercent:0,rotation:0,rotationX:0,rotationY:0,scale:1,skewX:0,skewY:0}).progress(1),n=e.getBoundingClientRect();return r&&r.progress(0).kill(),n},ot={startColor:"green",endColor:"red",indent:0,fontSize:"16px",fontWeight:"normal"},it={toggleActions:"play",anticipatePin:0},m={top:0,left:0,center:.5,bottom:1,right:1},w=function _positionMarker(e,t,r,n){var o={display:"block"},i=r[n?"os2":"p2"],a=r[n?"p2":"os2"];e._isFlipped=n,o[r.a+"Percent"]=n?-100:0,o[r.a]=n?1:0,o["border"+i+Ge]=1,o["border"+a+Ge]=0,o[r.p]=t,ke.set(e,o)},at=[],st={},C={},k=[],_=[],P=function _dispatch(e){return C[e]&&C[e].map(function(e){return e()})||k},O=[],E=function _revertRecorded(e){for(var t=0;t<O.length;t+=4)e&&O[t+3]!==e||(O[t].style.cssText=O[t+1],O[t+2].uncache=1)},A=function _revertAll(e,t){var r;for(ze=0;ze<at.length;ze++)r=at[ze],t&&r.media!==t||(e?r.kill(1):(r.scroll.rec||(r.scroll.rec=r.scroll()),r.revert()));E(t),t||P("revert")},z=function _refreshAll(e,t){if(!De||e){var r=P("refreshInit");for(Ne&&Y.sort(),t||A(),ze=0;ze<at.length;ze++)at[ze].refresh();for(r.forEach(function(e){return e&&e.render&&e.render(-1)}),ze=at.length;ze--;)at[ze].scroll.rec=0;P("refresh")}else xa(Y,"scrollEnd",Qa)},q=0,lt=1,B=function _updateAll(){var e=at.length,t=He(),r=50<=t-v,n=e&&at[0].scroll();if(lt=n<q?-1:1,q=n,r&&(De&&!Ae&&200<t-De&&(De=0,P("scrollEnd")),Ie=v,v=t),lt<0){for(ze=e;ze--;)at[ze]&&at[ze].update(0,r);lt=1}else for(ze=0;ze<e;ze++)at[ze]&&at[ze].update(0,r);l=0},F=[x,"top",y,b,Ze+Ye,Ze+Ve,Ze+Ue,Ze+Xe,"display","flexShrink","float"],D=F.concat([Ke,je,"boxSizing","max"+Ge,"max"+n,"position",Ze,$e,$e+Ue,$e+Ve,$e+Ye,$e+Xe]),j=/([A-Z])/g,ct=function _setState(e){if(e)for(var t,r,n=e.t.style,o=e.length,i=0;i<o;i+=2)r=e[i+1],t=e[i],r?n[t]=r:n[t]&&n.removeProperty(t.replace(j,"-$1").toLowerCase())},ft={left:0,top:0},ut=/(?:webkit|moz|length|cssText)/i;tt.op=rt;var Y=(ScrollTrigger.prototype.init=function init(b,y){if(this.progress=0,this.vars&&this.kill(1),Je){var d,n,l,w,C,k,_,P,O,E,I,R,e,A,z,q,B,F,t,W,g,D,J,h,j,v,x,r,m,X,Y,o,c,$,Z,G,ee,te=(b=sa(S(b)||U(b)||b.nodeType?{trigger:b}:b,it)).horizontal?tt:rt,re=b.onUpdate,ne=b.toggleClass,i=b.id,oe=b.onToggle,ie=b.onRefresh,a=b.scrub,ae=b.trigger,se=b.pin,le=b.pinSpacing,ce=b.invalidateOnRefresh,fe=b.anticipatePin,s=b.onScrubComplete,f=b.onSnapComplete,ue=b.once,pe=b.snap,de=b.pinReparent,ge=!a&&0!==a,he=Ee(b.scroller||Me)[0],u=ke.core.getCache(he),p=K(he),ve="pinType"in b?"fixed"===b.pinType:p||"fixed"===L(he,"pinType"),xe=[b.onEnter,b.onLeave,b.onEnterBack,b.onLeaveBack],me=ge&&b.toggleActions.split(" "),be="markers"in b?b.markers:it.markers,ye=p?0:parseFloat(qa(he)["border"+te.p2+Ge])||0,Te=this,Se=b.onRefreshInit&&function(){return b.onRefreshInit(Te)},we=function _getSizeFunc(e,t,r){var n=r.d,o=r.d2,i=r.a;return(i=L(e,"getBoundingClientRect"))?function(){return i()[n]}:function(){return(t?Me["inner"+o]:e["client"+o])||0}}(he,p,te),Ce=function _getOffsetsFunc(e,t){return!t||~We.indexOf(e)?N(e):function(){return ft}}(he,p);Te.media=Be,fe*=45,at.push(Te),Te.scroller=he,Te.scroll=M(he,te),C=Te.scroll(),Te.vars=b,y=y||b.animation,"refreshPriority"in b&&(Ne=1),u.tweenScroll=u.tweenScroll||{top:jb(he,rt),left:jb(he,tt)},Te.tweenTo=d=u.tweenScroll[te.p],y&&(y.vars.lazy=!1,y._initted||!1!==y.vars.immediateRender&&!1!==b.immediateRender&&y.render(0,!0,!0),Te.animation=y.pause(),y.scrollTrigger=Te,(o=U(a)&&a)&&(Y=ke.to(y,{ease:"power3",duration:o,onComplete:function onComplete(){return s&&s(Te)}})),m=0,i=i||y.vars.id),pe&&(V(pe)||(pe={snapTo:pe}),ke.set(p?[Oe,Pe]:he,{scrollBehavior:"auto"}),l=T(pe.snapTo)?pe.snapTo:"labels"===pe.snapTo?function _getLabels(i){return function(e){var t,r=[],n=i.labels,o=i.duration();for(t in n)r.push(n[t]/o);return ke.utils.snap(r,e)}}(y):ke.utils.snap(pe.snapTo),c=pe.duration||{min:.1,max:2},c=V(c)?Le(c.min,c.max):Le(c,c),$=ke.delayedCall(pe.delay||o/2||.1,function(){if(Math.abs(Te.getVelocity())<10&&!Ae){var e=y&&!ge?y.totalProgress():Te.progress,t=(e-X)/(He()-Ie)*1e3||0,r=Qe(t/2)*t/.185,n=e+r,o=Le(0,1,l(n,Te)),i=Te.scroll(),a=Math.round(_+o*A),s=d.tween;if(i<=P&&_<=i&&a!==i){if(s&&!s._initted&&s.data<=Math.abs(a-i))return;d(a,{duration:c(Qe(.185*Math.max(Qe(n-e),Qe(o-e))/t/.05||0)),ease:pe.ease||"power3",data:Math.abs(a-i),onComplete:function onComplete(){m=X=y&&!ge?y.totalProgress():Te.progress,f&&f(Te)}},i,r*A,a-i-r*A)}}else Te.isActive&&$.restart(!0)}).pause()),i&&(st[i]=Te),ae=Te.trigger=Ee(ae||se)[0],se=!0===se?ae:Ee(se)[0],S(ne)&&(ne={targets:ae,className:ne}),se&&(!1===le||le===Ze||(le=!(!le&&"flex"===qa(se.parentNode).display)&&$e),Te.pin=se,!1!==b.force3D&&ke.set(se,{force3D:!0}),(n=ke.core.getCache(se)).spacer?z=n.pinState:(n.spacer=F=_e.createElement("div"),F.setAttribute("class","pin-spacer"+(i?" pin-spacer-"+i:"")),n.pinState=z=db(se)),Te.spacer=F=n.spacer,r=qa(se),h=r[le+te.os2],W=ke.getProperty(se),g=ke.quickSetter(se,te.a,et),ab(se,F,r),B=db(se)),be&&(e=V(be)?sa(be,ot):ot,I=Da("scroller-start",i,he,te,e,0),R=Da("scroller-end",i,he,te,e,0,I),t=I["offset"+te.op.d2],O=Da("start",i,he,te,e,t),E=Da("end",i,he,te,e,t),ve||(function _makePositionable(e){e.style.position="absolute"===qa(e).position?"absolute":"relative"}(he),ke.set([I,R],{force3D:!0}),v=ke.quickSetter(I,te.a,et),x=ke.quickSetter(R,te.a,et))),Te.revert=function(e){var t=!1!==e||!Te.enabled,r=Re;t!==w&&(t&&(G=Math.max(Te.scroll(),Te.scroll.rec||0),Z=Te.progress,ee=y&&y.progress()),O&&[O,E,I,R].forEach(function(e){return e.style.display=t?"none":"block"}),t&&(Re=1),Te.update(t),Re=r,se&&(t?function _swapPinOut(e,t,r){if(ct(r),e.parentNode===t){var n=t.parentNode;n&&(n.insertBefore(e,t),n.removeChild(t))}}(se,F,z):de&&Te.isActive||ab(se,F,qa(se),j)),w=t)},Te.refresh=function(e){if(!Re&&Te.enabled)if(se&&e&&De)xa(ScrollTrigger,"scrollEnd",Qa);else{Re=1,Y&&Y.kill(),ce&&y&&y.progress(0).invalidate(),w||Te.revert();for(var t,r,n,o,i,a,s,l,c=we(),f=Ce(),u=Q(he,te),p=0,d=0,g=b.end,h=b.endTrigger||ae,v=b.start||(se||!ae?"0 0":"0 100%"),x=ae&&Math.max(0,at.indexOf(Te))||0,m=x;m--;)!(s=at[m].pin)||s!==ae&&s!==se||at[m].revert();for(_=gb(v,ae,c,te,Te.scroll(),O,I,Te,f,ye,ve,u)||(se?-.001:0),T(g)&&(g=g(Te)),S(g)&&!g.indexOf("+=")&&(~g.indexOf(" ")?g=(S(v)?v.split(" ")[0]:"")+g:(p=Ca(g.substr(2),c),g=S(v)?v:_+p,h=ae)),P=Math.max(_,gb(g||(h?"100% 0":u),h,c,te,Te.scroll()+p,E,R,Te,f,ye,ve,u))||-.001,A=P-_||(_-=.01)&&.001,p=0,m=x;m--;)(s=(a=at[m]).pin)&&a.start-a._pinPush<_&&(t=a.end-a.start,s===ae&&(p+=t),s===se&&(d+=t));if(_+=p,P+=p,Te._pinPush=d,O&&p&&((t={})[te.a]="+="+p,ke.set([O,E],t)),se)t=qa(se),o=te===rt,n=Te.scroll(),D=parseFloat(W(te.a))+d,ab(se,F,t),B=db(se),r=nt(se,!0),l=ve&&M(he,o?tt:rt)(),le&&((j=[le+te.os2,A+d+et]).t=F,(m=le===$e?ua(se,te)+A+d:0)&&j.push(te.d,m+et),ct(j),ve&&Te.scroll(G)),ve&&((i={top:r.top+(o?n-_:l)+et,left:r.left+(o?l:n-_)+et,boxSizing:"border-box",position:"fixed"})[Ke]=i.maxWidth=Math.ceil(r.width)+et,i[je]=i.maxHeight=Math.ceil(r.height)+et,i[Ze]=i[Ze+Ue]=i[Ze+Ve]=i[Ze+Ye]=i[Ze+Xe]="0",i[$e]=t[$e],i[$e+Ue]=t[$e+Ue],i[$e+Ve]=t[$e+Ve],i[$e+Ye]=t[$e+Ye],i[$e+Xe]=t[$e+Xe],q=function _copyState(e,t,r){for(var n,o=[],i=e.length,a=r?8:0;a<i;a+=2)n=e[a],o.push(n,n in t?t[n]:e[a+1]);return o.t=e.t,o}(z,i,de)),y?(y.progress(1,!0),J=W(te.a)-D+A+d,A!==J&&q.splice(q.length-2,2),y.progress(0,!0)):J=A;else if(ae&&Te.scroll())for(r=ae.parentNode;r&&r!==Oe;)r._pinOffset&&(_-=r._pinOffset,P-=r._pinOffset),r=r.parentNode;for(m=0;m<x;m++)!(a=at[m].pin)||a!==ae&&a!==se||at[m].revert(!1);Te.start=_,Te.end=P,(C=k=Te.scroll())<G&&Te.scroll(G),Te.revert(!1),Re=0,ee&&ge&&y.progress(ee,!0),Z!==Te.progress&&(Y&&y.totalProgress(Z,!0),Te.progress=Z,Te.update()),se&&le&&(F._pinOffset=Math.round(Te.progress*J)),ie&&ie(Te)}},Te.getVelocity=function(){return(Te.scroll()-k)/(He()-Ie)*1e3||0},Te.update=function(e,t){var r,n,o,i,a,s=Te.scroll(),l=e?0:(s-_)/A,c=l<0?0:1<l?1:l||0,f=Te.progress;if(t&&(k=C,C=s,pe&&(X=m,m=y&&!ge?y.totalProgress():c)),fe&&!c&&se&&!Re&&!Fe&&De&&_<s+(s-k)/(He()-Ie)*fe&&(c=1e-4),c!==f&&Te.enabled){if(i=(a=(r=Te.isActive=!!c&&c<1)!=(!!f&&f<1))||!!c!=!!f,Te.direction=f<c?1:-1,Te.progress=c,ge||(!Y||Re||Fe?y&&y.totalProgress(c,!!Re):(Y.vars.totalProgress=c,Y.invalidate().restart())),se)if(e&&le&&(F.style[le+te.os2]=h),ve){if(i){if(o=!e&&f<c&&s<P+1&&s+1>=Q(he,te),de){if(!e&&(r||o)){var u=nt(se,!0),p=s-_;se.style.top=u.top+(te===rt?p:0)+et,se.style.left=u.left+(te===rt?0:p)+et}!function _reparent(e,t){if(e.parentNode!==t){var r,n,o=e.style;if(t===Oe)for(r in e._stOrig=o.cssText,n=qa(e))+r||ut.test(r)||!n[r]||"string"!=typeof o[r]||"0"===r||(o[r]=n[r]);else o.cssText=e._stOrig;t.appendChild(e)}}(se,e||!r&&!o?F:Oe)}ct(r||o?q:B),J!==A&&c<1&&r||g(D+(1!==c||o?0:J))}}else g(D+J*c);!pe||d.tween||Re||Fe||$.restart(!0),ne&&(a||ue&&c&&(c<1||!qe))&&Ee(ne.targets).forEach(function(e){return e.classList[r||ue?"add":"remove"](ne.className)}),!re||ge||e||re(Te),i&&!Re?(n=c&&!f?0:1===c?1:1===f?2:3,ge&&(o=!a&&"none"!==me[n+1]&&me[n+1]||me[n],y&&("complete"===o||"reset"===o||o in y)&&("complete"===o?y.pause().totalProgress(1):"reset"===o?y.restart(!0).pause():y[o]()),re&&re(Te)),!a&&qe||(oe&&a&&oe(Te),xe[n]&&xe[n](Te),ue&&(1===c?Te.kill(!1,1):xe[n]=0),a||xe[n=1===c?1:3]&&xe[n](Te))):ge&&re&&!Re&&re(Te)}x&&(v(s+(I._isFlipped?1:0)),x(s))},Te.enable=function(){Te.enabled||(Te.enabled=!0,xa(he,"resize",Ja),xa(he,"scroll",Ia),Se&&xa(ScrollTrigger,"refreshInit",Se),y&&y.add?ke.delayedCall(.01,function(){return _||P||Te.refresh()})&&(A=.01)&&(_=P=0):Te.refresh())},Te.disable=function(e,t){if(Te.enabled&&(!1!==e&&Te.revert(),Te.enabled=Te.isActive=!1,t||Y&&Y.pause(),G=0,n&&(n.uncache=1),Se&&ya(ScrollTrigger,"refreshInit",Se),$&&($.pause(),d.tween&&d.tween.kill()),!p)){for(var r=at.length;r--;)if(at[r].scroller===he&&at[r]!==Te)return;ya(he,"resize",Ja),ya(he,"scroll",Ia)}},Te.kill=function(e,t){Te.disable(e,t),i&&delete st[i];var r=at.indexOf(Te);at.splice(r,1),r===ze&&0<lt&&ze--,y&&(y.scrollTrigger=null,e&&y.render(-1),t||y.kill()),O&&[O,E,I,R].forEach(function(e){return e.parentNode.removeChild(e)}),n&&(n.uncache=1)},Te.enable()}else this.update=this.refresh=this.kill=H},ScrollTrigger.register=function register(e){if(!o&&(ke=e||J(),I()&&window.document&&(Me=window,_e=document,Pe=_e.documentElement,Oe=_e.body),ke&&(Ee=ke.utils.toArray,Le=ke.utils.clamp,ke.core.globals("ScrollTrigger",ScrollTrigger),Oe))){s=Me.requestAnimationFrame||function(e){return setTimeout(e,16)},xa(Me,"mousewheel",Ia),i=[Me,_e,Pe,Oe],xa(_e,"scroll",Ia);var t,r=Oe.style,n=r.borderTop;r.borderTop="1px solid #000",t=nt(Oe),rt.m=Math.round(t.top+rt.sc())||0,tt.m=Math.round(t.left+tt.sc())||0,n?r.borderTop=n:r.removeProperty("border-top"),c=setInterval(Ha,200),ke.delayedCall(.5,function(){return Fe=0}),xa(_e,"touchcancel",H),xa(Oe,"touchstart",H),wa(xa,_e,"pointerdown,touchstart,mousedown",function(){return Ae=1}),wa(xa,_e,"pointerup,touchend,mouseup",function(){return Ae=0}),f=ke.utils.checkPrefix("transform"),D.push(f),o=He(),a=ke.delayedCall(.2,z).pause(),d=[_e,"visibilitychange",function(){var e=Me.innerWidth,t=Me.innerHeight;_e.hidden?(u=e,p=t):u===e&&p===t||Ja()},_e,"DOMContentLoaded",z,Me,"load",function(){return De||z()},Me,"resize",Ja],R(xa)}return o},ScrollTrigger.defaults=function defaults(e){for(var t in e)it[t]=e[t]},ScrollTrigger.kill=function kill(){Je=0,at.slice(0).forEach(function(e){return e.kill(1)})},ScrollTrigger.config=function config(e){"limitCallbacks"in e&&(qe=!!e.limitCallbacks);var t=e.syncInterval;t&&clearInterval(c)||(c=t)&&setInterval(Ha,t),"autoRefreshEvents"in e&&(R(ya)||R(xa,e.autoRefreshEvents||"none"))},ScrollTrigger.scrollerProxy=function scrollerProxy(e,t){var r=Ee(e)[0];K(r)?We.unshift(Me,t,Oe,t,Pe,t):We.unshift(r,t)},ScrollTrigger.matchMedia=function matchMedia(e){var t,r,n,o,i;for(r in e)n=_.indexOf(r),o=e[r],"all"===(Be=r)?o():(t=Me.matchMedia(r))&&(t.matches&&(i=o()),~n?(_[n+1]=X(_[n+1],o),_[n+2]=X(_[n+2],i)):(n=_.length,_.push(r,o,i),t.addListener?t.addListener(Pa):t.addEventListener("change",Pa))),Be=0;return _},ScrollTrigger.clearMatchMedia=function clearMatchMedia(e){e||(_.length=0),0<=(e=_.indexOf(e))&&_.splice(e,3)},ScrollTrigger);function ScrollTrigger(e,t){o||ScrollTrigger.register(ke)||console.warn("Please gsap.registerPlugin(ScrollTrigger)"),this.init(e,t)}Y.version="3.5.0",Y.saveStyles=function(e){return e?Ee(e).forEach(function(e){var t=O.indexOf(e);0<=t&&O.splice(t,4),O.push(e,e.style.cssText,ke.core.getCache(e),Be)}):O},Y.revert=function(e,t){return A(!e,t)},Y.create=function(e,t){return new Y(e,t)},Y.refresh=function(e){return e?Ja():z(!0)},Y.update=B,Y.maxScroll=function(e,t){return Q(e,t?tt:rt)},Y.getScrollFunc=function(e,t){return M(Ee(e)[0],t?tt:rt)},Y.getById=function(e){return st[e]},Y.getAll=function(){return at.slice(0)},Y.isScrolling=function(){return!!De},Y.addEventListener=function(e,t){var r=C[e]||(C[e]=[]);~r.indexOf(t)||r.push(t)},Y.removeEventListener=function(e,t){var r=C[e],n=r&&r.indexOf(t);0<=n&&r.splice(n,1)},Y.batch=function(e,t){function $h(e,t){var r=[],n=[],o=ke.delayedCall(i,function(){t(r,n),r=[],n=[]}).pause();return function(e){r.length||o.restart(!0),r.push(e.trigger),n.push(e),a<=r.length&&o.progress(1)}}var r,n=[],o={},i=t.interval||.016,a=t.batchMax||1e9;for(r in t)o[r]="on"===r.substr(0,2)&&T(t[r])&&"onRefreshInit"!==r?$h(0,t[r]):t[r];return T(a)&&(a=a(),xa(Y,"refresh",function(){return a=t.batchMax()})),Ee(e).forEach(function(e){var t={};for(r in o)t[r]=o[r];t.trigger=e,n.push(Y.create(t))}),n},Y.sort=function(e){return at.sort(e||function(e,t){return-1e6*(e.vars.refreshPriority||0)+e.start-(t.start+-1e6*(t.vars.refreshPriority||0))})},J()&&ke.registerPlugin(Y),e.ScrollTrigger=Y,e.default=Y;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}});
11
-
 
 
 
 
 
 
 
 
 
 
 
ooohboi-steroids.php CHANGED
@@ -2,18 +2,20 @@
2
  /**
3
  * Plugin Name: OoohBoi Steroids for Elementor
4
  * Description: An awesome set of tools, options and settings that expand Elementor defaults. Instead of creating new Elementor Widgets, these act like an upgrade of existing options or the self-standing panels.
5
- * Version: 1.7.5
6
  * Author: OoohBoi
7
  * Author URI: https://www.youtube.com/c/OoohBoi
8
  * Text Domain: ooohboi-steroids
9
  * Domain Path: /lang
10
  * License: GPLv3
 
 
11
  * License URI: http://www.gnu.org/licenses/gpl-3.0
12
  */
13
 
14
- if ( ! defined( 'ABSPATH' ) ) {
15
- exit; // Exit if accessed directly.
16
- }
17
 
18
  /**
19
  * Main OoohBoi Steroids Class
@@ -31,7 +33,7 @@ final class OoohBoi_Steroids {
31
  *
32
  * @var string The plugin version.
33
  */
34
- const VERSION = '1.7.5';
35
 
36
  /**
37
  * Minimum Elementor Version
@@ -40,7 +42,16 @@ final class OoohBoi_Steroids {
40
  *
41
  * @var string Minimum Elementor version required to run the plugin.
42
  */
43
- const MINIMUM_ELEMENTOR_VERSION = '2.5.11';
 
 
 
 
 
 
 
 
 
44
 
45
  /**
46
  * Minimum PHP Version
@@ -79,7 +90,13 @@ final class OoohBoi_Steroids {
79
  public static $sfe_lib_locomotive_mobile = 0;
80
  public static $sfe_lib_allow_refresh = 0;
81
  private static $sfe_lib_scroll_trigger = 0;
 
 
82
  private static $sfe_lib_gsap = 0;
 
 
 
 
83
 
84
  /**
85
  * Instance
@@ -169,7 +186,7 @@ final class OoohBoi_Steroids {
169
  'ooohboi-steroids-admin',
170
  plugins_url( 'assets/css/admin.css', __FILE__ ),
171
  [],
172
- self::VERSION . '13052021'
173
  );
174
  } );
175
 
@@ -193,10 +210,22 @@ final class OoohBoi_Steroids {
193
  if( isset( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] ) && $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] && in_array( 'allow-mobile', $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] ) ) self::$sfe_lib_locomotive_mobile = 1;
194
  // allow refresh on resize
195
  if( isset( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] ) && $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] && 'yes' === $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] ) self::$sfe_lib_allow_refresh = 1;
196
- // ... Scroll Trigger
197
- if( isset( $ob_settings_options[ 'ob_use_scroll_trigger' ] ) && $ob_settings_options[ 'ob_use_scroll_trigger' ] && 'yes' === $ob_settings_options[ 'ob_use_scroll_trigger' ] ) self::$sfe_lib_scroll_trigger = 1;
198
  // ... GSAP
199
  if( isset( $ob_settings_options[ 'ob_use_gsap' ] ) && $ob_settings_options[ 'ob_use_gsap' ] && 'yes' === $ob_settings_options[ 'ob_use_gsap' ] ) self::$sfe_lib_gsap = 1;
 
 
 
 
 
 
 
 
 
 
 
 
200
  }
201
 
202
  // Editor Styles
@@ -205,6 +234,30 @@ final class OoohBoi_Steroids {
205
  // Register/Enqueue Scripts
206
  add_action( 'elementor/frontend/after_register_scripts', [ $this, 'ooohboi_register_scripts_front' ] );
207
  add_action( 'elementor/frontend/after_register_styles', [ $this, 'ooohboi_register_styles' ] );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
208
  add_action( 'elementor/frontend/after_enqueue_styles', function() {
209
 
210
  // locomotive scroll
@@ -218,16 +271,37 @@ final class OoohBoi_Steroids {
218
  'allow_tablet' => self::$sfe_lib_locomotive_tablet,
219
  'allow_mobile' => self::$sfe_lib_locomotive_mobile,
220
  'allow_refresh' => self::$sfe_lib_allow_refresh,
 
221
  );
222
  wp_localize_script( 'locomotive-scroll-ctrl', 'device_settings', $device_settings );
223
  }
 
 
 
 
224
  // scroll trigger
225
  if( 1 === self::$sfe_lib_scroll_trigger ) {
226
  wp_enqueue_script( 'scroll-trigger-js' );
227
  }
228
- // ssfe_lib_gsap
229
- if( 1 === self::$sfe_lib_gsap ) {
230
- wp_enqueue_script( 'gsap-js' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
231
  }
232
  // plugin stuff
233
  wp_enqueue_style( 'ooohboi-steroids-styles' );
@@ -252,7 +326,30 @@ final class OoohBoi_Steroids {
252
  /*
253
  * Init Extensions
254
  *
255
- * @since 1.4.8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
256
  *
257
  * @access public
258
  */
@@ -261,55 +358,36 @@ final class OoohBoi_Steroids {
261
  // Include extension classes
262
  self::ooohboi_take_steroids();
263
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  if( ! $ob_settings_options ) {
265
- OoohBoi_Harakiri::init(); // OoohBoi Harakiri
266
- OoohBoi_Overlay_Underlay::init(); // OoohBoi Overlay Underlay
267
- OoohBoi_Overlaiz::init(); // OoohBoi Overlaiz
268
- OoohBoi_Paginini::init(); // OoohBoi Paginini
269
- OoohBoi_Breaking_Bad::init(); // OoohBoi Breaking Bad
270
- OoohBoi_Glider::init(); // OoohBoi Glider Slider
271
- OoohBoi_PhotoGiraffe::init(); // OoohBoi PhotoGiraffe
272
- OoohBoi_Teleporter::init(); // OoohBoi Teleporter
273
- OoohBoi_SearchCop::init(); // OoohBoi Search Cop
274
- OoohBoi_Videomasq::init(); // OoohBoi Videomasq
275
- OoohBoi_Butter_Button::init(); // OoohBoi Butter Button
276
- OoohBoi_Perspektive::init(); // OoohBoi Perspektive
277
- OoohBoi_Shadough::init(); // OoohBoi Shadough
278
- OoohBoi_PhotoMorph::init(); // OoohBoi PhotoMorph
279
- OoohBoi_Commentz::init(); // OoohBoi Commentz
280
- OoohBoi_SpaceRat::init(); // OoohBoi SpaceRat
281
- OoohBoi_Imbox::init(); // OoohBoi Imbox
282
- OoohBoi_Icobox::init(); // OoohBoi Icobox
283
- OoohBoi_Hover_Animator::init(); // OoohBoi Hover Animator
284
- OoohBoi_Kontrolz::init(); // OoohBoi Kontrolz
285
- OoohBoi_Widget_Stalker::init(); // OoohBoi Widget Stalker
286
- OoohBoi_Pseudo::init(); // OoohBoi Pseudo
287
  } else {
288
- if( $ob_settings_options[ 'ob_use_harakiri' ] && 'yes' === $ob_settings_options[ 'ob_use_harakiri' ] ) OoohBoi_Harakiri::init(); // OoohBoi Harakiri
289
- if( $ob_settings_options[ 'ob_use_poopart' ] && 'yes' === $ob_settings_options[ 'ob_use_poopart' ] ) OoohBoi_Overlay_Underlay::init(); // OoohBoi Overlay Underlay
290
- if( $ob_settings_options[ 'ob_use_overlaiz' ] && 'yes' === $ob_settings_options[ 'ob_use_overlaiz' ] ) OoohBoi_Overlaiz::init(); // OoohBoi Overlaiz
291
- if( $ob_settings_options[ 'ob_use_paginini' ] && 'yes' === $ob_settings_options[ 'ob_use_paginini' ] ) OoohBoi_Paginini::init(); // OoohBoi Paginini
292
- if( $ob_settings_options[ 'ob_use_breakingbad' ] && 'yes' === $ob_settings_options[ 'ob_use_breakingbad' ] ) OoohBoi_Breaking_Bad::init(); // OoohBoi Breaking Bad
293
- if( $ob_settings_options[ 'ob_use_glider' ] && 'yes' === $ob_settings_options[ 'ob_use_glider' ] ) OoohBoi_Glider::init(); // OoohBoi Glider Slider
294
- if( $ob_settings_options[ 'ob_use_photogiraffe' ] && 'yes' === $ob_settings_options[ 'ob_use_photogiraffe' ] ) OoohBoi_PhotoGiraffe::init(); // OoohBoi PhotoGiraffe
295
- if( $ob_settings_options[ 'ob_use_teleporter' ] && 'yes' === $ob_settings_options[ 'ob_use_teleporter' ] ) OoohBoi_Teleporter::init(); // OoohBoi Teleporter
296
- if( $ob_settings_options[ 'ob_use_searchcop' ] && 'yes' === $ob_settings_options[ 'ob_use_searchcop' ] ) OoohBoi_SearchCop::init(); // OoohBoi Search Cop
297
- if( $ob_settings_options[ 'ob_use_videomasq' ] && 'yes' === $ob_settings_options[ 'ob_use_videomasq' ] ) OoohBoi_Videomasq::init(); // OoohBoi Videomasq
298
- if( $ob_settings_options[ 'ob_use_butterbutton' ] && 'yes' === $ob_settings_options[ 'ob_use_butterbutton' ] ) OoohBoi_Butter_Button::init(); // OoohBoi Butter Button
299
- if( $ob_settings_options[ 'ob_use_perspektive' ] && 'yes' === $ob_settings_options[ 'ob_use_perspektive' ] ) OoohBoi_Perspektive::init(); // OoohBoi Perspektive
300
- if( $ob_settings_options[ 'ob_use_shadough' ] && 'yes' === $ob_settings_options[ 'ob_use_shadough' ] ) OoohBoi_Shadough::init(); // OoohBoi Shadough
301
- if( $ob_settings_options[ 'ob_use_photomorph' ] && 'yes' === $ob_settings_options[ 'ob_use_photomorph' ] ) OoohBoi_PhotoMorph::init(); // OoohBoi PhotoMorph
302
- if( $ob_settings_options[ 'ob_use_commentz' ] && 'yes' === $ob_settings_options[ 'ob_use_commentz' ] ) OoohBoi_Commentz::init(); // OoohBoi Commentz
303
- if( $ob_settings_options[ 'ob_use_spacerat' ] && 'yes' === $ob_settings_options[ 'ob_use_spacerat' ] ) OoohBoi_SpaceRat::init(); // OoohBoi SpaceRat
304
- if( $ob_settings_options[ 'ob_use_imbox' ] && 'yes' === $ob_settings_options[ 'ob_use_imbox' ] ) OoohBoi_Imbox::init(); // OoohBoi Imbox
305
- if( $ob_settings_options[ 'ob_use_icobox' ] && 'yes' === $ob_settings_options[ 'ob_use_icobox' ] ) OoohBoi_Icobox::init(); // OoohBoi Icobox
306
- if( $ob_settings_options[ 'ob_use_hoveranimator' ] && 'yes' === $ob_settings_options[ 'ob_use_hoveranimator' ] ) OoohBoi_Hover_Animator::init(); // OoohBoi Hover Animator
307
- if( $ob_settings_options[ 'ob_use_kontrolz' ] && 'yes' === $ob_settings_options[ 'ob_use_kontrolz' ] ) OoohBoi_Kontrolz::init(); // OoohBoi Kontrolz
308
- if( $ob_settings_options[ 'ob_use_widgetstalker' ] && 'yes' === $ob_settings_options[ 'ob_use_widgetstalker' ] ) OoohBoi_Widget_Stalker::init(); // OoohBoi Widget Stalker
309
- if( $ob_settings_options[ 'ob_use_pseudo' ] && 'yes' === $ob_settings_options[ 'ob_use_pseudo' ] ) OoohBoi_Pseudo::init(); // OoohBoi Pseudo
310
-
311
- // include libraries that involve editor controls; Locomotive Scroll...
312
  if( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_scroll' ] && 'yes' === $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_scroll' ] ) new OoohBoi_Locomotion();
 
313
  }
314
 
315
  }
@@ -318,15 +396,30 @@ final class OoohBoi_Steroids {
318
  *
319
  * Include css files and register them
320
  *
321
- * @since 1.0.0
322
  *
323
  * @access public
324
  */
325
  public function ooohboi_register_styles_editor() {
326
-
327
- wp_enqueue_style( 'ooohboi-steroids-styles-editor', plugins_url( 'assets/css/editor.css', __FILE__ ), [ 'elementor-editor' ], self::VERSION . '28042021' );
 
 
 
 
 
 
 
 
 
328
 
329
  }
 
 
 
 
 
 
330
 
331
  /*
332
  * Init styles
@@ -345,7 +438,7 @@ final class OoohBoi_Steroids {
345
  }
346
  // -----------------------------
347
 
348
- wp_register_style( 'ooohboi-steroids-styles', plugins_url( 'assets/css/main.css', __FILE__ ), NULL, self::VERSION . '03052021' );
349
 
350
  }
351
 
@@ -358,24 +451,47 @@ final class OoohBoi_Steroids {
358
  *
359
  * @access public
360
  */
 
 
 
361
  public function ooohboi_register_scripts_front() {
362
 
363
  $ele_is_preview = \Elementor\Plugin::$instance->preview->is_preview_mode();
364
 
365
- wp_register_script( 'ooohboi-steroids', plugins_url( 'assets/js/ooohboi-steroids-min.js', __FILE__ ), [ 'jquery' ], self::VERSION . '13052021', true );
366
 
367
  // locomotive scroll
368
  if( 1 === self::$sfe_lib_locomotive ) {
369
- wp_register_script( 'locomotive-scroll-js', plugins_url( 'lib/locomotive_scroll/locomotive-scroll.min.js', __FILE__ ), [], self::VERSION . '28042021', true );
370
- wp_register_script( 'locomotive-scroll-ctrl', plugins_url( 'assets/js/ooohboi-libs-locomotion.js', __FILE__ ), [ 'locomotive-scroll-js' ], self::VERSION . '30042021', true );
 
 
 
 
371
  }
372
  // scroll trigger
373
- if( 1 === self::$sfe_lib_scroll_trigger && ! $ele_is_preview ) {
374
- wp_register_script( 'scroll-trigger-js', plugins_url( 'lib/scrolltrigger/ScrollTrigger.min.js', __FILE__ ), [], self::VERSION, true );
375
  }
376
- // gsap
377
- if( 1 === self::$sfe_lib_gsap && ! $ele_is_preview ) {
378
- wp_register_script( 'gsap-js', plugins_url( 'lib/gsap/gsap.min.js', __FILE__ ), [], self::VERSION, true );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  }
380
  // -----------------------------
381
 
@@ -390,14 +506,17 @@ final class OoohBoi_Steroids {
390
  * @access public
391
  */
392
  public static function ooohboi_take_steroids() {
 
393
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlay-underlay.php'; // OoohBoi Overlay Underlay
394
- include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlaiz.php'; // OoohBoi Overlaiz
395
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-harakiri.php'; // OoohBoi Harakiri
396
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-paginini.php'; // OoohBoi Paginini
397
- include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-breaking-bad.php'; // OoohBoi Breaking Bad
398
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-glider.php'; // OoohBoi Glider Slider
399
- include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-photogiraffe.php'; // OoohBoi PhotoGiraffe
400
- include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-teleporter.php'; // OoohBoi Teleporter
 
 
 
 
401
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-searchcop.php'; // OoohBoi Search Cop
402
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-videomasq.php'; // OoohBoi Video Masq
403
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-butter-button.php'; // OoohBoi Butter Button
@@ -412,6 +531,11 @@ final class OoohBoi_Steroids {
412
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-kontrolz.php'; // OoohBoi Kontrolz
413
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-widget-stalker.php'; // OoohBoi Widget Stalker
414
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-pseudo.php'; // OoohBoi Pseudo
 
 
 
 
 
415
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-locomotion.php'; // OoohBoi Locomotion
416
  }
417
 
2
  /**
3
  * Plugin Name: OoohBoi Steroids for Elementor
4
  * Description: An awesome set of tools, options and settings that expand Elementor defaults. Instead of creating new Elementor Widgets, these act like an upgrade of existing options or the self-standing panels.
5
+ * Version: 1.9.5
6
  * Author: OoohBoi
7
  * Author URI: https://www.youtube.com/c/OoohBoi
8
  * Text Domain: ooohboi-steroids
9
  * Domain Path: /lang
10
  * License: GPLv3
11
+ * Elementor tested up to: 3.7.9
12
+ * Elementor Pro tested up to: 3.7.7
13
  * License URI: http://www.gnu.org/licenses/gpl-3.0
14
  */
15
 
16
+ use Elementor\Core\Settings\Manager as SettingsManager;
17
+
18
+ defined( 'ABSPATH' ) || die(); // Exit if accessed directly.
19
 
20
  /**
21
  * Main OoohBoi Steroids Class
33
  *
34
  * @var string The plugin version.
35
  */
36
+ const VERSION = '1.9.5';
37
 
38
  /**
39
  * Minimum Elementor Version
42
  *
43
  * @var string Minimum Elementor version required to run the plugin.
44
  */
45
+ const MINIMUM_ELEMENTOR_VERSION = '3.2';
46
+
47
+ /**
48
+ * Elementor Version for Containers
49
+ *
50
+ * @since 1.9.1
51
+ *
52
+ * @var string Elementor version required for particular extensions to work
53
+ */
54
+ const ELEMENTOR_VERSION_CONTAINER = '3.6';
55
 
56
  /**
57
  * Minimum PHP Version
90
  public static $sfe_lib_locomotive_mobile = 0;
91
  public static $sfe_lib_allow_refresh = 0;
92
  private static $sfe_lib_scroll_trigger = 0;
93
+ private static $sfe_lib_scroll_to = 0;
94
+ private static $sfe_lib_motion_path = 0;
95
  private static $sfe_lib_gsap = 0;
96
+ private static $sfe_remove_locomotive_section_attribute = 0;
97
+ private static $sfe_lib_barba = 0;
98
+ private static $sfe_lib_anime = 0;
99
+ private static $sfe_lib_three = 0;
100
 
101
  /**
102
  * Instance
186
  'ooohboi-steroids-admin',
187
  plugins_url( 'assets/css/admin.css', __FILE__ ),
188
  [],
189
+ self::VERSION . '17012022b'
190
  );
191
  } );
192
 
210
  if( isset( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] ) && $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] && in_array( 'allow-mobile', $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_devices' ] ) ) self::$sfe_lib_locomotive_mobile = 1;
211
  // allow refresh on resize
212
  if( isset( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] ) && $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] && 'yes' === $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_allow_refresh' ] ) self::$sfe_lib_allow_refresh = 1;
213
+ // remove section attributes
214
+ if( isset( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_remove_section_attribute' ] ) && $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_remove_section_attribute' ] && 'yes' === $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_remove_section_attribute' ] ) self::$sfe_remove_locomotive_section_attribute = 1;
215
  // ... GSAP
216
  if( isset( $ob_settings_options[ 'ob_use_gsap' ] ) && $ob_settings_options[ 'ob_use_gsap' ] && 'yes' === $ob_settings_options[ 'ob_use_gsap' ] ) self::$sfe_lib_gsap = 1;
217
+ // ... Scroll Trigger
218
+ if( isset( $ob_settings_options[ 'ob_use_scroll_trigger' ] ) && $ob_settings_options[ 'ob_use_scroll_trigger' ] && 'yes' === $ob_settings_options[ 'ob_use_scroll_trigger' ] ) self::$sfe_lib_scroll_trigger = 1;
219
+ // ... Scroll To
220
+ if( isset( $ob_settings_options[ 'ob_use_scroll_to' ] ) && $ob_settings_options[ 'ob_use_scroll_to' ] && 'yes' === $ob_settings_options[ 'ob_use_scroll_to' ] ) self::$sfe_lib_scroll_to = 1;
221
+ // ... Motion Path
222
+ if( isset( $ob_settings_options[ 'ob_use_motion_path' ] ) && $ob_settings_options[ 'ob_use_motion_path' ] && 'yes' === $ob_settings_options[ 'ob_use_motion_path' ] ) self::$sfe_lib_motion_path = 1;
223
+ // ... Barba
224
+ if( isset( $ob_settings_options[ 'ob_use_barba' ] ) && $ob_settings_options[ 'ob_use_barba' ] && 'yes' === $ob_settings_options[ 'ob_use_barba' ] ) self::$sfe_lib_barba = 1;
225
+ // ... Anime
226
+ if( isset( $ob_settings_options[ 'ob_use_anime' ] ) && $ob_settings_options[ 'ob_use_anime' ] && 'yes' === $ob_settings_options[ 'ob_use_anime' ] ) self::$sfe_lib_anime = 1;
227
+ // ... Three
228
+ if( isset( $ob_settings_options[ 'ob_use_three' ] ) && $ob_settings_options[ 'ob_use_three' ] && 'yes' === $ob_settings_options[ 'ob_use_three' ] ) self::$sfe_lib_three = 1;
229
  }
230
 
231
  // Editor Styles
234
  // Register/Enqueue Scripts
235
  add_action( 'elementor/frontend/after_register_scripts', [ $this, 'ooohboi_register_scripts_front' ] );
236
  add_action( 'elementor/frontend/after_register_styles', [ $this, 'ooohboi_register_styles' ] );
237
+
238
+ // Editor Styles & Scripts
239
+ add_action('elementor/editor/after_enqueue_scripts', function() {
240
+
241
+ wp_enqueue_script(
242
+ 'ooohboi-steroids-editor',
243
+ plugins_url( 'assets/js/ob-steroids-editor-min.js', __FILE__ ),
244
+ [ 'elementor-editor', 'jquery' ],
245
+ self::VERSION . '16012022',
246
+ true
247
+ );
248
+ // data to JS via wp_localize_script
249
+ $local_data = [
250
+ 'dark_stylesheet_url' => self::ooohboi_dark_stylesheet_url(),
251
+ 'light_stylesheet_url' => self::ooohboi_light_stylesheet_url(),
252
+ ];
253
+ wp_localize_script(
254
+ 'ooohboi-steroids-editor',
255
+ 'SteroidsEditorLocalized',
256
+ $local_data
257
+ );
258
+
259
+ } );
260
+
261
  add_action( 'elementor/frontend/after_enqueue_styles', function() {
262
 
263
  // locomotive scroll
271
  'allow_tablet' => self::$sfe_lib_locomotive_tablet,
272
  'allow_mobile' => self::$sfe_lib_locomotive_mobile,
273
  'allow_refresh' => self::$sfe_lib_allow_refresh,
274
+ 'remove_section_attribute' => self::$sfe_remove_locomotive_section_attribute,
275
  );
276
  wp_localize_script( 'locomotive-scroll-ctrl', 'device_settings', $device_settings );
277
  }
278
+ // ssfe_lib_gsap
279
+ if( 1 === self::$sfe_lib_gsap ) {
280
+ wp_enqueue_script( 'gsap-js' );
281
+ }
282
  // scroll trigger
283
  if( 1 === self::$sfe_lib_scroll_trigger ) {
284
  wp_enqueue_script( 'scroll-trigger-js' );
285
  }
286
+ // scroll to
287
+ if( 1 === self::$sfe_lib_scroll_to ) {
288
+ wp_enqueue_script( 'scroll-to-js' );
289
+ }
290
+ // motion path
291
+ if( 1 === self::$sfe_lib_motion_path ) {
292
+ wp_enqueue_script( 'motion-path-js' );
293
+ }
294
+ // barba
295
+ if( 1 === self::$sfe_lib_barba ) {
296
+ wp_enqueue_script( 'barba-js' );
297
+ }
298
+ // anime
299
+ if( 1 === self::$sfe_lib_anime ) {
300
+ wp_enqueue_script( 'anime-js' );
301
+ }
302
+ // three
303
+ if( 1 === self::$sfe_lib_three ) {
304
+ wp_enqueue_script( 'three-js' );
305
  }
306
  // plugin stuff
307
  wp_enqueue_style( 'ooohboi-steroids-styles' );
326
  /*
327
  * Init Extensions
328
  *
329
+ * @since 1.9.0
330
+ *
331
+ * @access public
332
+ */
333
+ public function admin_notice_missing_main_plugin() {
334
+
335
+ if( isset( $_GET[ 'activate' ] ) ) unset( $_GET[ 'activate' ] );
336
+
337
+ $message = sprintf(
338
+ /* translators: 1: Plugin name 2: Elementor */
339
+ esc_html__( '"%1$s" requires "%2$s" to be installed and activated.', 'ooohboi-steroids' ),
340
+ '<strong>' . esc_html__( 'Steroids for Elementor', 'ooohboi-steroids' ) . '</strong>',
341
+ '<strong>' . esc_html__( 'Elementor', 'ooohboi-steroids' ) . '</strong>'
342
+ );
343
+
344
+ printf( '<div class="notice notice-warning is-dismissible"><p>%1$s</p></div>', $message );
345
+
346
+ }
347
+
348
+ /*
349
+ * Init Extensions
350
+ *
351
+ * @since 1.4.8
352
+ * @modified 1.8.2
353
  *
354
  * @access public
355
  */
358
  // Include extension classes
359
  self::ooohboi_take_steroids();
360
 
361
+ // is container experiment active?
362
+ $container_active = ( 'active' === get_option( 'elementor_experiment-container' ) ) ? true : false;
363
+
364
+ $extensions_array = [ 'OoohBoi_Harakiri' => 'ob_use_harakiri', 'OoohBoi_Overlay_Underlay' => 'ob_use_poopart', 'OoohBoi_Overlaiz' => 'ob_use_overlaiz', 'OoohBoi_Paginini' => 'ob_use_paginini', 'OoohBoi_Breaking_Bad' => 'ob_use_breakingbad',
365
+ 'OoohBoi_Glider' => 'ob_use_glider', 'OoohBoi_PhotoGiraffe' => 'ob_use_photogiraffe', 'OoohBoi_Teleporter' => 'ob_use_teleporter', 'OoohBoi_SearchCop' => 'ob_use_searchcop', 'OoohBoi_Videomasq' => 'ob_use_videomasq',
366
+ 'OoohBoi_Butter_Button' => 'ob_use_butterbutton', 'OoohBoi_Perspektive' => 'ob_use_perspektive', 'OoohBoi_Shadough' => 'ob_use_shadough', 'OoohBoi_PhotoMorph' => 'ob_use_photomorph', 'OoohBoi_Commentz' => 'ob_use_commentz',
367
+ 'OoohBoi_SpaceRat' => 'ob_use_spacerat', 'OoohBoi_Imbox' => 'ob_use_imbox', 'OoohBoi_Icobox' => 'ob_use_icobox', 'OoohBoi_Hover_Animator' => 'ob_use_hoveranimator', 'OoohBoi_Kontrolz' => 'ob_use_kontrolz',
368
+ 'OoohBoi_Widget_Stalker' => 'ob_use_widgetstalker', 'OoohBoi_Pseudo' => 'ob_use_pseudo', 'OoohBoi_Bullet' => 'ob_use_bullet', 'OoohBoi_Container_Extras' => 'ob_use_container_extras' ];
369
+
370
+ /* since 1.9.1 & Elementor 3.6+ */
371
+ $exclude_with_containers = [];
372
+ if( $container_active ) $exclude_with_containers = [ 'OoohBoi_Overlaiz', 'OoohBoi_Breaking_Bad', 'OoohBoi_PhotoGiraffe', 'OoohBoi_Teleporter' ];
373
+
374
  if( ! $ob_settings_options ) {
375
+ foreach( $extensions_array as $extension_class => $extension_token ) {
376
+ if( ! in_array( $extension_class, $exclude_with_containers ) ) $extension_class::init();
377
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
378
  } else {
379
+ foreach( $extensions_array as $extension_class => $extension_token ) {
380
+ if( ! isset( $ob_settings_options[ $extension_token ] ) && ! in_array( $extension_class, $exclude_with_containers ) ) {
381
+ $ob_settings_options[ $extension_token ] = 'yes';
382
+ update_option( 'steroids_for_elementor', $ob_settings_options );
383
+ } else {
384
+ if( $ob_settings_options[ $extension_token ] && 'yes' === $ob_settings_options[ $extension_token ] && ! in_array( $extension_class, $exclude_with_containers ) ) $extension_class::init();
385
+ }
386
+ }
387
+
388
+ // include libraries that involve editor controls; Locomotive Scroll, GSAP/ScrollTrigger...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
389
  if( $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_scroll' ] && 'yes' === $ob_settings_options[ 'fieldset_locomotive' ][ 'ob_use_locomotive_scroll' ] ) new OoohBoi_Locomotion();
390
+ if( $container_active && $ob_settings_options[ 'ob_use_gsap' ] && 'yes' === $ob_settings_options[ 'ob_use_gsap' ] && $ob_settings_options[ 'ob_use_scroll_trigger' ] && 'yes' === $ob_settings_options[ 'ob_use_scroll_trigger' ] ) OoohBoi_Oh_Animator::init();
391
  }
392
 
393
  }
396
  *
397
  * Include css files and register them
398
  *
399
+ * NEW @since 1.9.0
400
  *
401
  * @access public
402
  */
403
  public function ooohboi_register_styles_editor() {
404
+
405
+ $theme = SettingsManager::get_settings_managers( 'editorPreferences' )->get_model()->get_settings( 'ui_theme' );
406
+
407
+ if( 'light' !== $theme ) {
408
+
409
+ $mq = 'all';
410
+ if( 'auto' === $theme ) $mq = '(prefers-color-scheme: dark)';
411
+
412
+ wp_enqueue_style( 'ooohboi-steroids-styles-editor-dark', self::ooohboi_dark_stylesheet_url(), [ 'elementor-editor' ], self::VERSION . '02052022a', $mq );
413
+
414
+ } else wp_enqueue_style( 'ooohboi-steroids-styles-dark', self::ooohboi_light_stylesheet_url(), [ 'elementor-editor' ], self::VERSION . '02052022a' );
415
 
416
  }
417
+ public static function ooohboi_dark_stylesheet_url() {
418
+ return plugins_url( 'assets/css/editor-dark.css', __FILE__ );
419
+ }
420
+ public static function ooohboi_light_stylesheet_url() {
421
+ return plugins_url( 'assets/css/editor.css', __FILE__ );
422
+ }
423
 
424
  /*
425
  * Init styles
438
  }
439
  // -----------------------------
440
 
441
+ wp_register_style( 'ooohboi-steroids-styles', plugins_url( 'assets/css/main.css', __FILE__ ), NULL, self::VERSION . '21042022' );
442
 
443
  }
444
 
451
  *
452
  * @access public
453
  */
454
+ public function ooohboi_check_file_avail( $the_file ) {
455
+ return (bool)@fopen( $the_file, 'r' );
456
+ }
457
  public function ooohboi_register_scripts_front() {
458
 
459
  $ele_is_preview = \Elementor\Plugin::$instance->preview->is_preview_mode();
460
 
461
+ wp_register_script( 'ooohboi-steroids', plugins_url( 'assets/js/ooohboi-steroids-min.js', __FILE__ ), [ 'jquery' ], self::VERSION . '02052022', true );
462
 
463
  // locomotive scroll
464
  if( 1 === self::$sfe_lib_locomotive ) {
465
+ wp_register_script( 'locomotive-scroll-js', plugins_url( 'lib/locomotive_scroll/locomotive-scroll.min.js', __FILE__ ), [], self::VERSION . '02052022', true );
466
+ wp_register_script( 'locomotive-scroll-ctrl', plugins_url( 'assets/js/ooohboi-libs-locomotion.js', __FILE__ ), [ 'locomotive-scroll-js' ], self::VERSION . '02052022', true );
467
+ }
468
+ // gsap
469
+ if( 1 === self::$sfe_lib_gsap ) {
470
+ wp_register_script( 'gsap-js', '//cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/gsap.min.js', [], self::VERSION, true );
471
  }
472
  // scroll trigger
473
+ if( 1 === self::$sfe_lib_scroll_trigger ) {
474
+ wp_register_script( 'scroll-trigger-js', '//cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollTrigger.min.js', [], self::VERSION, true );
475
  }
476
+ // scroll to
477
+ if( 1 === self::$sfe_lib_scroll_to ) {
478
+ wp_register_script( 'scroll-to-js', '//cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/ScrollToPlugin.min.js', [], self::VERSION, true );
479
+ }
480
+ // scroll motion path
481
+ if( 1 === self::$sfe_lib_motion_path ) {
482
+ wp_register_script( 'motion-path-js', '//cdnjs.cloudflare.com/ajax/libs/gsap/3.9.1/MotionPathPlugin.min.js', [], self::VERSION, true );
483
+ }
484
+ // barba
485
+ if( 1 === self::$sfe_lib_barba && ! $ele_is_preview ) {
486
+ wp_register_script( 'barba-js', plugins_url( 'lib/barba/barba.min.js', __FILE__ ), [], self::VERSION, true );
487
+ }
488
+ // anime
489
+ if( 1 === self::$sfe_lib_anime && ! $ele_is_preview ) {
490
+ wp_register_script( 'anime-js', plugins_url( 'lib/anime/anime.min.js', __FILE__ ), [], self::VERSION, true );
491
+ }
492
+ // three
493
+ if( 1 === self::$sfe_lib_three && ! $ele_is_preview ) {
494
+ wp_register_script( 'three-js', '//cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js', [], self::VERSION, true );
495
  }
496
  // -----------------------------
497
 
506
  * @access public
507
  */
508
  public static function ooohboi_take_steroids() {
509
+
510
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlay-underlay.php'; // OoohBoi Overlay Underlay
 
511
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-harakiri.php'; // OoohBoi Harakiri
512
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-paginini.php'; // OoohBoi Paginini
 
513
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-glider.php'; // OoohBoi Glider Slider
514
+ if( 'active' !== get_option( 'elementor_experiment-container' ) ) {
515
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-overlaiz.php'; // OoohBoi Overlaiz
516
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-breaking-bad.php'; // OoohBoi Breaking Bad
517
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-photogiraffe.php'; // OoohBoi PhotoGiraffe
518
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-teleporter.php'; // OoohBoi Teleporter
519
+ }
520
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-searchcop.php'; // OoohBoi Search Cop
521
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-videomasq.php'; // OoohBoi Video Masq
522
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-butter-button.php'; // OoohBoi Butter Button
531
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-kontrolz.php'; // OoohBoi Kontrolz
532
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-widget-stalker.php'; // OoohBoi Widget Stalker
533
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-pseudo.php'; // OoohBoi Pseudo
534
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-bullet.php'; // OoohBoi Bullet
535
+ // OoohBoi Container Extras ONLY IF ELEMENTOR >= ELEMENTOR_VERSION_CONTAINER
536
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-container-extras.php';
537
+ include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-oh-animator.php';
538
+ // ----------
539
  include_once plugin_dir_path( __FILE__ ) . 'controls/ooohboi-locomotion.php'; // OoohBoi Locomotion
540
  }
541
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: OoohBoi
3
  Tags: page-builder, elementor, add-on, background-overlay, vertical text, ghost elements, overlapping columns
4
  Donate link: https://www.paypal.me/ooohboi
5
  Requires at least: 5.0
6
- Tested up to: 5.7
7
- Stable tag: 1.7.5
8
  Requires PHP: 7.0
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0
@@ -17,9 +17,7 @@ An awesome set of tools, options and settings that expand Elementor defaults. In
17
 
18
  = What is new? =
19
 
20
- The power of Locomotive Scroll is now available to all Elementor users. And that changes a lot! No more old-fashioned scrolling that looks awful in Chrome or Safari. From now on any Section, Column or Widget can become a part of smooth scrolling with support for parallax effects, toggling classes, and triggering event listeners when elements are in the viewport.
21
- That's not all! On top of the Locomotive Scroll, you can include GreenSock's ScrollTrigger and GSAP - the PRO grade animation library.
22
- Enjoy the latest features, create something awesome!
23
 
24
  = In the package so far =
25
 
@@ -29,22 +27,22 @@ Allows you to change the writing mode (CSS property writing-mode) of Elementor's
29
  2. POOPART
30
  Add an overlay or underlay ghost-element to any Elementor Widget. By adding a mask image to these, and/or combining them with CSS filters, blend mode, a wow effect is inevitable. Oh, yes, you can also resize and reposition these if you like.
31
 
32
- 3. OVERLAIZ
33
  From now on, you can move the Background Overlay in any direction, as well as to resize it. Creating overlapping columns is now piece of cake.
34
 
35
  4. PAGININI
36
  Your frustration with styling up the posts pagination in Elementor is now officially over.
37
 
38
- 5. BREAKING BAD
39
  Tailor the Section columns at will! Set the custom width, height and let them collapse naturally.
40
 
41
  6. GLIDER
42
  Generate the slider out of Section and columns with one click only!
43
 
44
- 7. PHOTOGIRAFFE
45
  Make any Image full-height
46
 
47
- 8. TELEPORTER
48
  An awesome Coulmn hover controls
49
 
50
  9. SEARCH COP
@@ -92,10 +90,20 @@ More controls to the Icon Box widget.
92
  23. PSEUDO
93
  Add and manage Column's pseudo elements. It's a PoopArt for Columns!
94
 
95
- 23. LOCOMOTION
96
  The power of Locomotive Scroll is now available in Elementor too!
97
 
98
- 25. MORE IS COMING SOON!
 
 
 
 
 
 
 
 
 
 
99
 
100
  == Installation ==
101
 
@@ -104,7 +112,7 @@ The power of Locomotive Scroll is now available in Elementor too!
104
 
105
  == Upgrade Notice ==
106
 
107
- 1.7.4 - Beware of the changes to the language file!
108
 
109
  == Frequently Asked Questions ==
110
 
@@ -148,6 +156,63 @@ No, you don't. It'll work with both free version of Elementor and Elementor PRO.
148
 
149
  == Changelog ==
150
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
  = 1.7.5 =
152
  - Fix: GSAP and ScrollTrigger loaded in Elementor editor
153
  - Improvement: Plugin Settings interface
@@ -186,40 +251,4 @@ No, you don't. It'll work with both free version of Elementor and Elementor PRO.
186
  - GLIDER, gotoslide is now supported via the custom class name ( .glider-control-1, .glider-control-2, ... .glider-control-10 )
187
  - HARAKIRI, added responsive option for Mix Blend Mode
188
  - HARAKIRI, added HOVER color option
189
- - IMBOX, added controls for manipulating border (image and the text box)
190
-
191
- = 1.6.6 =
192
- - CRITICAL ERROR FIX
193
- - ICOBOX, added new option to add the background/image to the icon element
194
-
195
- = 1.6.5 =
196
- - New feature added, ICOBOX - from now on, more power to the Icon Box widget
197
- - WIDGET STALKER for BREAKING BAD, fix for the horizontal alignment issue of widgets
198
- - BREAKING BAD, added new option to align the Inner Section horizontally
199
- - IMBOX, added more controls to the "Image Box" widget; stretch the image full-height, apply clip-path, add the background, padding, margin
200
-
201
- = 1.6.4 =
202
- - GLIDER, Prev and Next buttons positioning controls are now responsive
203
- - POOPART, added clip-path option to Overlay and Underlay
204
- - Passed the test for WordPress 5.7
205
-
206
- = 1.6.3 =
207
- - BREAKING BAD, fixed inheritance of the columns alignment and direction for Inner Sections
208
- - BREAKING BAD, added size controls (width) and self-alignment for Inner Section widget
209
- - WIDGET STALKER, fixed initial position being undefined/empty
210
- - WIDGET STALKER, added option to change the appearance order of the widget
211
-
212
- = 1.6.2 =
213
- - WIDGET STALKER fixed
214
- - GLIDER extension now works when "Improved Asset Loading" is active (Elementor PRO 3.1)
215
- - PHP 8.0+ compliance issue resolved
216
- - Elementor PRO 3.1 - deprecated PHP hooks have been replaced (https://developers.elementor.com/v3-1-planned-deprecations/)
217
- - New Admin settings interface
218
-
219
- = 1.6.1 =
220
- - WIDGET STALKER temporary disabled until the issues resolved
221
-
222
- = 1.6.0 =
223
- - New feature added, WIDGET STALKER
224
- - Teleporter, fixed disfunctional column-link
225
- - SearchCop, added search filter for "product" post type (WooCommerce required)
3
  Tags: page-builder, elementor, add-on, background-overlay, vertical text, ghost elements, overlapping columns
4
  Donate link: https://www.paypal.me/ooohboi
5
  Requires at least: 5.0
6
+ Tested up to: 5.9
7
+ Stable tag: 1.9.5
8
  Requires PHP: 7.0
9
  License: GPLv3
10
  License URI: http://www.gnu.org/licenses/gpl-3.0
17
 
18
  = What is new? =
19
 
20
+ Added new extensions : Oh! Animator (GSAP - ScrollTrigger animation), Container Extras, resolved issues that relate to the latest version of Elementor - 3.6+
 
 
21
 
22
  = In the package so far =
23
 
27
  2. POOPART
28
  Add an overlay or underlay ghost-element to any Elementor Widget. By adding a mask image to these, and/or combining them with CSS filters, blend mode, a wow effect is inevitable. Oh, yes, you can also resize and reposition these if you like.
29
 
30
+ 3. OVERLAIZ (works up to Elementor 3.5.9, use Pseudo extension for Elementor 3.6 and above)
31
  From now on, you can move the Background Overlay in any direction, as well as to resize it. Creating overlapping columns is now piece of cake.
32
 
33
  4. PAGININI
34
  Your frustration with styling up the posts pagination in Elementor is now officially over.
35
 
36
+ 5. BREAKING BAD (works up to Elementor 3.5.9)
37
  Tailor the Section columns at will! Set the custom width, height and let them collapse naturally.
38
 
39
  6. GLIDER
40
  Generate the slider out of Section and columns with one click only!
41
 
42
+ 7. PHOTOGIRAFFE (works up to Elementor 3.5.9)
43
  Make any Image full-height
44
 
45
+ 8. TELEPORTER (works up to Elementor 3.5.9)
46
  An awesome Coulmn hover controls
47
 
48
  9. SEARCH COP
90
  23. PSEUDO
91
  Add and manage Column's pseudo elements. It's a PoopArt for Columns!
92
 
93
+ 24. LOCOMOTION
94
  The power of Locomotive Scroll is now available in Elementor too!
95
 
96
+ 25. GSAP, SCROLLTRIGGER & MORE
97
+ The power of Locomotive Scroll is now available in Elementor too!
98
+
99
+ 26. BULLET
100
+ Moves the bullet of the Icon List widget to the top (fine tune with the margin)
101
+
102
+ 27. CONTAINER EXTRAS
103
+ Just a few settings atop to make the life with the Container element easier
104
+
105
+ 28. OH! ANIMATOR
106
+ Do those tricky GSAP-ScrollTrigger(ed) animations via the user-friendly interface
107
 
108
  == Installation ==
109
 
112
 
113
  == Upgrade Notice ==
114
 
115
+ 1.9.5 - Beware of the changes to the language file!
116
 
117
  == Frequently Asked Questions ==
118
 
156
 
157
  == Changelog ==
158
 
159
+ = 1.9.5 =
160
+ - New extension: OH! ANIMATOR (available only if the GSAP and ScrollTrigger libraries enabled)
161
+ - New extension: CONTAINER EXTRAS
162
+ - New library added: three.js
163
+ - GLIDER: now fully compliant with Containers
164
+ - Fix: Elementor 3.6+ compliance issues
165
+
166
+ = 1.9.0 =
167
+ - Major code improvements (up to 3x faster)
168
+ - Improved interface
169
+ - Reset to defaults now works properly
170
+ - GSAP and its plugins (ScrollTrigger, MotionPath and ScrollTo) are now loaded from the CDN
171
+ - All extensions but TELEPORTER are Container friendly (future Elementor 3.6)
172
+ - Fix: BUTTER BUTTON background flickers on hover
173
+ - BUTTER BUTTON: removed Typography control (typography inherited from the Button widget)
174
+
175
+ = 1.8.2 =
176
+ - New: BULET - Added option to vertically align the bullet of the Icon List widget
177
+ - Improvement: HARAKIRI - Added option to cut off the bottom margin of TextEditor widget
178
+ - Fix: PHP 8.0+ warning related to the "exopite-simple-options-framework-class.php on line 1700"
179
+ - core improvements - thanks to @nome_nation!
180
+
181
+ = 1.8.1 =
182
+ - New: ANIME.js added to optional/includable libraries
183
+ - New: ICOBOX - prevent icon/title collapse on mobile devices
184
+ - New: IMBOX - prevent thumbnail/title collapse on mobile devices
185
+ - Fix: PERSPEKTIVE extension now works as expected
186
+
187
+ = 1.8.0 =
188
+ - Fix: Elementor editor content overflow issue for the "Layers for Elementor" WP theme
189
+ - Fix: Baseline Grid messed up lines
190
+ - Fix: SEARCHCOP for Product post type
191
+ - Update: GSAP to 3.7.1
192
+ - Update: ScrollTrigger to 3.7.1
193
+ - Update: MotionPath to 3.7.1
194
+
195
+ = 1.7.9 =
196
+ - New: GLIDER - Centered Slides (a.k.a. centeredSlides) option added
197
+ - New: GLIDER - De-blur Slides (a.k.a.roundLenghts) option added
198
+ - Fix: Pseudo AFTER - Clip-path option visibility
199
+ - Fix: the class usage of Elementor\Scheme_Color
200
+
201
+ = 1.7.8 =
202
+ - Fix: Pseudo for Columns inherited by the Inner Section
203
+ - Fix: Imbox "Box z-index" option not available unless Overrides is enabled
204
+ - New: Imbox added "Box shadow" option to the content
205
+
206
+ = 1.7.7 =
207
+ - New: Added "barba.js" library
208
+ - New: Added 2 new GSAP plugins; ScrollTo and MotionPath
209
+ - Fix: if WP not installed in the root, SFE can't be loaded ("Failed to load plugin url" error msg)
210
+ - New option: Glider - Enable Mousewheel
211
+
212
+ = 1.7.6 =
213
+ - New: Added option to remove the "data-scroll-section" attribute (see Manage JS Libraries)
214
+ - Added required GSAP License acknowledgement
215
+
216
  = 1.7.5 =
217
  - Fix: GSAP and ScrollTrigger loaded in Elementor editor
218
  - Improvement: Plugin Settings interface
251
  - GLIDER, gotoslide is now supported via the custom class name ( .glider-control-1, .glider-control-2, ... .glider-control-10 )
252
  - HARAKIRI, added responsive option for Mix Blend Mode
253
  - HARAKIRI, added HOVER color option
254
+ - IMBOX, added controls for manipulating border (image and the text box)