Version Description
27 July 2020 =
New: Data Table widget
New:
happyaddons/extensions/grid_layer
hook to control Grid LayerNew:
happyaddons/extensions/background_overlay
hook to control Background OverlayNew:
happyaddons/extensions/wrapper_link
hook to control Wrapper LinkNew:
happyaddons/extensions/happy_clone
hook to control Happy CloneNew:
happyaddons/extensions/adminbar_menu
hook to control Adminbar menuNew:
happyaddons/extensions/floating_effects
hook to control Floating EffectsNew:
happyaddons/extensions/css_transform
hook to control CSS TransformNew:
happyaddons/extensions/on_demand_cache
hook to control On Demand Assets LoadingTweak: Added CSS Transform hover state support
Tweak: Added Stepflow direction arrow rotatation support
Tweak: Added Card button full width support
Tweak: Added Card responsive image positioning
Tweak: Restored justify alignment in all widgets
Tweak: Improved base styles in all widgets
Tweak: Removed widget control panel link from editor panel
Tweak: Removed HappyAddons shortcut link from finder
Tweak: Removed unnecessary css
Tweak: Post List content on/off option
Tweak: Post List feature image left & top show option
Fix: Post List date issue
Fix: WPML link translation issue
Release Info
Developer | thehappymonster |
Plugin | Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) |
Version | 2.13.0 |
Comparing to | |
See all releases |
Code changes from version 2.12.3 to 2.13.0
- assets/admin/js/editor.min.js +1 -1
- assets/css/main.css +639 -418
- assets/css/main.min.css +1 -1
- assets/css/widgets/badge.min.css +1 -1
- assets/css/widgets/btn.min.css +1 -1
- assets/css/widgets/card.min.css +1 -1
- assets/css/widgets/common.min.css +1 -1
- assets/css/widgets/data-table.min.css +1 -0
- assets/css/widgets/icon-box.min.css +1 -1
- assets/css/widgets/image-comparison.min.css +1 -1
- assets/css/widgets/infobox.min.css +1 -1
- assets/css/widgets/member.min.css +1 -1
- assets/css/widgets/post-list.min.css +1 -1
- assets/css/widgets/pricing-table.min.css +1 -1
- assets/css/widgets/review.min.css +1 -1
- assets/css/widgets/steps-flow.min.css +1 -1
- assets/css/widgets/testimonial.min.css +1 -1
- assets/js/happy-addons.js +15 -2
- assets/js/happy-addons.min.js +1 -1
- base.php +10 -41
- changelog.txt +25 -0
- classes/admin-bar.php +94 -92
- classes/assets-manager.php +12 -11
- classes/attention-seeker.php +2 -0
- classes/cache-manager.php +3 -1
- classes/clone-handler.php +187 -187
- classes/dashboard.php +2 -0
- classes/extensions-manager.php +42 -24
- classes/finder.php +0 -71
- classes/icons-manager.php +2 -0
- classes/library-manager.php +2 -0
- classes/select2-handler.php +2 -0
- classes/updater.php +2 -0
- classes/widgets-manager.php +550 -537
- classes/wpml-manager.php +18 -16
- extensions/background-overlay.php +2 -0
- extensions/column-extended.php +2 -0
- extensions/happy-effects.php +1147 -810
- extensions/happy-grid.php +2 -1
- extensions/widgets-extended.php +2 -0
- extensions/wrapper-link.php +2 -0
- inc/functions-extensions.php +98 -0
- inc/functions.php +58 -65
- plugin.php +2 -2
- readme.txt +26 -1
- widgets/bar-chart/widget.php +4 -2
- widgets/card/widget.php +99 -45
- widgets/data-table/widget.php +1131 -0
- widgets/dual-button/widget.php +8 -2
- widgets/fun-factor/widget.php +42 -38
- widgets/gradient-heading/widget.php +220 -216
- widgets/icon-box/widget.php +754 -756
- widgets/image-compare/widget.php +2 -8
- widgets/infobox/widget.php +18 -17
- widgets/member/widget.php +57 -43
- widgets/post-list/widget.php +138 -2
- widgets/pricing-table/widget.php +19 -19
- widgets/review/widget.php +800 -806
- widgets/step-flow/widget.php +744 -692
- widgets/testimonial/widget.php +378 -371
- wpml/carousel.php +9 -1
- wpml/logo-grid.php +8 -1
- wpml/slider.php +9 -1
- wpml/social-icons.php +8 -1
@@ -1 +1 @@
|
|
1 |
-
!function(e){"use strict";function t(){var t=e("#happy-addons-editor-dark-css");t.length||(t=e("<link>",{id:"happy-addons-editor-dark-css",rel:"stylesheet",href:HappyAddonsEditor.darkStylesheetURL})),elementor.settings.editorPreferences.model.on("change:ui_theme",function(e,n){if("light"===n)return void t.remove();t.attr("media","auto"===n?"(prefers-color-scheme: dark)":"").appendTo(elementorCommon.elements.$body)})}
|
1 |
+
!function(e){"use strict";function t(){var t=e("#happy-addons-editor-dark-css");t.length||(t=e("<link>",{id:"happy-addons-editor-dark-css",rel:"stylesheet",href:HappyAddonsEditor.darkStylesheetURL})),elementor.settings.editorPreferences.model.on("change:ui_theme",function(e,n){if("light"===n)return void t.remove();t.attr("media","auto"===n?"(prefers-color-scheme: dark)":"").appendTo(elementorCommon.elements.$body)})}if(window.ha=window.ha||{},ha.hasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},ha.getFeatureLabel=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},ha.translate=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.ha_get_feature_label=ha.getFeatureLabel,window.ha_has_icon_library=ha.hasIconLibrary,window.ha_translate=ha.translate,ha.getButtonWithIcon=function(e,t){var n,o,i,a,r,s=[],d={};if(t=t||{},t=_.defaults(t,{oldIcon:"button_icon",iconPos:"button_icon_position",newIcon:"button_selected_icon",text:"button_text",link:"button_link",class:"ha-btn ha-btn--link",textClass:"ha-btn-text"}),!_.isObject(e)||_.isUndefined(e.getContainer))return"";d=e.getContainer().settings.toJSON();var l=_.isUndefined(d[t.text])?"":d[t.text],c=!(_.isUndefined(d[t.oldIcon])||!d[t.oldIcon]),h=!(_.isUndefined(d[t.newIcon])||!_.isObject(d[t.newIcon])||!d[t.newIcon].value);return l||h||c?(ha.hasIconLibrary()&&(n=elementor.helpers.renderIcon(e,d[t.newIcon],{"aria-hidden":!0,class:"ha-btn-icon"},"i","object"),o=elementor.helpers.isIconMigrated(d,t.newIcon)),e.addInlineEditingAttributes(t.text,"none"),e.addRenderAttribute(t.text,"class",t.textClass),e.addRenderAttribute("button","class",t.class),e.addRenderAttribute("button","href",d[t.link].url),(h||c)&&(ha.hasIconLibrary()&&n&&n.rendered&&(!c||o)?i="svg"===d[t.newIcon].library?'<span class="ha-btn-icon ha-btn-icon--svg">'+n.value+"</span>":n.value:c&&(i='<i class="ha-btn-icon '+t.oldIcon+'" aria-hidden="true"></i>')),!l||h||c?l||!h&&!c?l&&(h||c)&&("before"===d[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),a=i,r="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),r=i,a="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"),s=["<a "+e.getRenderAttributeString("button")+">",a,r,"</a>"]):s=["<a "+e.getRenderAttributeString("button")+">",i,"</a>"]:s=["<a "+e.getRenderAttributeString("button")+">","<span "+e.getRenderAttributeString(t.text)+">",l,"</span>","</a>"],s.join("")):void 0},elementor.on("panel:init",function(){if(e("#elementor-panel-elements-search-input").on("keyup",_.debounce(function(){e("#elementor-panel-elements").find(".hm").parents(".elementor-element").addClass("is-ha-widget")},100)),"undefined"!=typeof $e||null!==$e){var n={callback:function(){var e=elementor.settings.page.model.attributes.ha_grid;""===e?elementor.settings.page.model.setExternalChange("ha_grid","yes"):"yes"===e&&elementor.settings.page.model.setExternalChange("ha_grid","")}};$e.shortcuts.register("ctrl+shift+g",n),$e.shortcuts.register("cmd+shift+g",n)}t()}),elementor.modules.controls.Icons){var n=elementor.modules.controls.Icons.extend({getControlValue:function(){var e=this.constructor.__super__.getControlValue.call(this),t=this.model,n=this.getValueToMigrate(),o={value:"",library:"happy-icons"},i=this.container&&this.container.settings||this.elementSettingsModel;if(_.isObject(e)&&!_.isEmpty(e)&&"svg"!==e.library&&0===e.value.indexOf("fashm"))return o.value=e.value.substr(e.value.indexOf("hm hm-")),i.set(t.get("name"),o),o;if(!_.isObject(e)&&n&&0===n.indexOf("hm hm-"))return o.value=n,i.set(t.get("name"),o),o;if(!this.isMigrationAllowed())return n;if(!n)return e;var a=i.get(this.dataKeys.migratedKey),r=t.get("name");return this.cache.migratedFlag[r]?this.cache.migratedFlag[r]:a&&a[r]?e:this.migrateFa4toFa5(n)}});elementor.addControlView("icons",n)}elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-home",icon:"hm hm-happyaddons",title:ha.translate("editorPanelHomeLinkTitle"),type:"link",link:HappyAddonsEditor.editorPanelHomeLinkURL,newTab:!0},"settings"),elementor.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.proWidgets))return e;var t,n,o=e.elements.view,i=e.categories.view,a=e.elements.options.collection,r=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){a.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),a.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=r.findIndex({name:"happy_addons_category"}),n&&r.add({name:"happy_addons_pro_category",title:"Happy Addons Pro",icon:"hm hm-happyaddons",defaultActive:!1,items:s},{at:n+1}),t={className:function(){var e=this.constructor.__super__.className.call(this);return!this.isEditable()&&this.isHappyWidget()&&(e+=" ha-element--promotion"),e},isHappyWidget:function(){return 0===this.model.get("name").indexOf("ha-")},onMouseDown:function(){if(!this.isHappyWidget())return elementor.promotion.dialog.buttons[0].removeClass("ha-btn--promotion"),void this.constructor.__super__.onMouseDown.call(this);elementor.promotion.dialog.buttons[0].addClass("ha-btn--promotion"),elementor.promotion.showDialog({headerMessage:ha.translate("promotionDialogHeader",[this.model.get("title")]),message:ha.translate("promotionDialogMessage",[this.model.get("title")]),top:"-7",element:this.el,actionURL:"https://demo.happyaddons.com/"})}},e.elements.view=o.extend({childView:o.prototype.childView.extend(t)}),e.categories.view=i.extend({childView:i.prototype.childView.extend({childView:i.prototype.childView.prototype.childView.extend(t)})}),e})}(jQuery);
|
@@ -1,39 +1,30 @@
|
|
1 |
-
.ha-card > .elementor-widget-container,
|
2 |
-
.ha-infobox > .elementor-widget-container,
|
3 |
-
.ha-icon-box > .elementor-widget-container,
|
4 |
-
.ha-member > .elementor-widget-container,
|
5 |
-
.ha-review > .elementor-widget-container,
|
6 |
-
.ha-image-compare > .elementor-widget-container,
|
7 |
-
.ha-pricing-table > .elementor-widget-container {
|
8 |
-
border-radius: .5rem;
|
9 |
-
background-color: #fff;
|
10 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
11 |
-
}
|
12 |
-
|
13 |
.ha-logo-grid-wrapper:after {
|
14 |
display: block;
|
15 |
clear: both;
|
16 |
content: "";
|
17 |
}
|
18 |
|
19 |
-
.ha-card > .elementor-widget-container,
|
20 |
-
.ha-infobox > .elementor-widget-container,
|
21 |
-
.ha-icon-box > .elementor-widget-container,
|
22 |
-
.ha-member > .elementor-widget-container,
|
23 |
-
.ha-review > .elementor-widget-container,
|
24 |
-
.ha-image-compare > .elementor-widget-container,
|
25 |
-
.ha-pricing-table > .elementor-widget-container {
|
26 |
-
border-radius: .5rem;
|
27 |
-
background-color: #fff;
|
28 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
29 |
-
}
|
30 |
-
|
31 |
.ha-logo-grid-wrapper:after {
|
32 |
display: block;
|
33 |
clear: both;
|
34 |
content: "";
|
35 |
}
|
36 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
.happy-addon > .elementor-widget-container {
|
38 |
word-wrap: break-word;
|
39 |
|
@@ -56,6 +47,10 @@
|
|
56 |
display: none;
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
59 |
.ha-screen-reader-text {
|
60 |
position: absolute;
|
61 |
overflow: hidden;
|
@@ -100,18 +95,6 @@
|
|
100 |
outline-width: thin;
|
101 |
}
|
102 |
|
103 |
-
.ha-card > .elementor-widget-container,
|
104 |
-
.ha-infobox > .elementor-widget-container,
|
105 |
-
.ha-icon-box > .elementor-widget-container,
|
106 |
-
.ha-member > .elementor-widget-container,
|
107 |
-
.ha-review > .elementor-widget-container,
|
108 |
-
.ha-image-compare > .elementor-widget-container,
|
109 |
-
.ha-pricing-table > .elementor-widget-container {
|
110 |
-
border-radius: .5rem;
|
111 |
-
background-color: #fff;
|
112 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
113 |
-
}
|
114 |
-
|
115 |
.ha-logo-grid-wrapper:after {
|
116 |
display: block;
|
117 |
clear: both;
|
@@ -131,7 +114,7 @@
|
|
131 |
}
|
132 |
.ha-btn:not(.ha-btn--link) {
|
133 |
padding: 15px 25px;
|
134 |
-
border-radius:
|
135 |
background-color: #562dd4;
|
136 |
color: #fff;
|
137 |
}
|
@@ -159,74 +142,64 @@
|
|
159 |
}
|
160 |
|
161 |
.ha-badge {
|
162 |
-
padding:
|
163 |
-
max-width: 100%;
|
164 |
border-radius: 50px;
|
165 |
background-color: #fff;
|
166 |
font-size: 12px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
}
|
168 |
.ha-badge--top-left {
|
169 |
-
top:
|
170 |
-
left:
|
171 |
}
|
172 |
.ha-badge--top-center {
|
173 |
-
top:
|
174 |
left: 50%;
|
175 |
-
|
176 |
-
|
177 |
-
transform: translateX(-50%);
|
178 |
}
|
179 |
.ha-badge--top-right {
|
180 |
-
top:
|
181 |
-
right:
|
182 |
}
|
183 |
.ha-badge--middle-left {
|
184 |
top: 50%;
|
185 |
-
left:
|
186 |
-
|
187 |
-
|
188 |
-
transform: translateY(-50%);
|
189 |
}
|
190 |
.ha-badge--middle-center {
|
191 |
top: 50%;
|
192 |
left: 50%;
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
}
|
197 |
.ha-badge--middle-right {
|
198 |
top: 50%;
|
199 |
-
right:
|
200 |
-
|
201 |
-
|
202 |
-
transform: translateY(-50%);
|
203 |
}
|
204 |
.ha-badge--bottom-left {
|
205 |
-
bottom:
|
206 |
-
left:
|
207 |
}
|
208 |
.ha-badge--bottom-center {
|
209 |
-
bottom:
|
210 |
left: 50%;
|
211 |
-
|
212 |
-
|
213 |
-
transform: translateX(-50%);
|
214 |
}
|
215 |
.ha-badge--bottom-right {
|
216 |
-
right:
|
217 |
-
bottom:
|
218 |
-
}
|
219 |
-
|
220 |
-
.ha-card > .elementor-widget-container,
|
221 |
-
.ha-infobox > .elementor-widget-container,
|
222 |
-
.ha-icon-box > .elementor-widget-container,
|
223 |
-
.ha-member > .elementor-widget-container,
|
224 |
-
.ha-review > .elementor-widget-container,
|
225 |
-
.ha-image-compare > .elementor-widget-container,
|
226 |
-
.ha-pricing-table > .elementor-widget-container {
|
227 |
-
border-radius: .5rem;
|
228 |
-
background-color: #fff;
|
229 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
230 |
}
|
231 |
|
232 |
.ha-logo-grid-wrapper:after {
|
@@ -235,32 +208,52 @@
|
|
235 |
content: "";
|
236 |
}
|
237 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
238 |
.ha-card-figure {
|
239 |
position: relative;
|
|
|
|
|
|
|
|
|
|
|
240 |
height: 250px;
|
|
|
|
|
|
|
241 |
}
|
242 |
.ha-card-figure img {
|
243 |
width: 100%;
|
244 |
height: 100%;
|
245 |
-
border-top-left-radius: calc(.5rem - 1px);
|
246 |
-
border-top-right-radius: calc(.5rem - 1px);
|
247 |
vertical-align: bottom;
|
248 |
}
|
249 |
|
250 |
.ha-card-body {
|
251 |
-
padding:
|
252 |
}
|
253 |
|
254 |
.ha-card-title {
|
255 |
margin-top: 0;
|
256 |
-
margin-bottom:
|
257 |
color: #151515;
|
258 |
font-weight: 700;
|
259 |
font-size: 22px;
|
260 |
}
|
261 |
|
262 |
.ha-card-text {
|
263 |
-
margin-bottom:
|
264 |
color: #616161;
|
265 |
font-size: 16px;
|
266 |
line-height: 1.7;
|
@@ -272,9 +265,21 @@
|
|
272 |
|
273 |
.ha-card--top .ha-card-figure {
|
274 |
display: inline-block;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
width: 100%;
|
276 |
}
|
277 |
|
|
|
|
|
|
|
|
|
278 |
.ha-card--right > .elementor-widget-container,
|
279 |
.ha-card--left > .elementor-widget-container {
|
280 |
display: -webkit-box;
|
@@ -285,63 +290,150 @@
|
|
285 |
-webkit-align-items: center;
|
286 |
align-items: center;
|
287 |
-ms-flex-align: center;
|
288 |
-
-webkit-box-orient: horizontal;
|
289 |
-
-webkit-box-direction: normal;
|
290 |
-
-webkit-flex-direction: row;
|
291 |
-
-ms-flex-direction: row;
|
292 |
-
flex-direction: row;
|
293 |
}
|
294 |
-
|
295 |
-
.ha-card--
|
296 |
-
|
297 |
-
-webkit-box-flex: 0;
|
298 |
-
-webkit-flex: 0 0 50%;
|
299 |
-
-ms-flex: 0 0 50%;
|
300 |
-
flex: 0 0 50%;
|
301 |
-
max-width: 50%;
|
302 |
}
|
303 |
|
304 |
-
.ha-card--right .ha-card-body,
|
305 |
.ha-card--left .ha-card-body {
|
306 |
-webkit-box-flex: 0;
|
307 |
-
-webkit-flex: 0 0
|
308 |
-
-ms-flex: 0 0
|
309 |
-
flex: 0 0
|
310 |
-
|
311 |
-
max-width:
|
312 |
}
|
313 |
|
314 |
.ha-card--left .ha-card-figure img {
|
315 |
-
border-radius:
|
316 |
}
|
317 |
|
318 |
-
.ha-card--right
|
319 |
-
-webkit-box-
|
320 |
-
-webkit-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
}
|
326 |
|
327 |
.ha-card--right .ha-card-figure img {
|
328 |
-
border-radius: 0
|
329 |
}
|
330 |
|
331 |
-
|
332 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
}
|
334 |
|
335 |
-
|
336 |
-
.ha-
|
337 |
-
|
338 |
-
|
339 |
-
.ha-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
345 |
}
|
346 |
|
347 |
.ha-logo-grid-wrapper:after {
|
@@ -350,32 +442,47 @@
|
|
350 |
content: "";
|
351 |
}
|
352 |
|
|
|
|
|
|
|
|
|
|
|
353 |
.ha-infobox > .elementor-widget-container {
|
354 |
-
padding:
|
|
|
|
|
|
|
355 |
}
|
356 |
-
|
357 |
.ha-infobox-title {
|
358 |
margin-top: 0;
|
359 |
-
margin-bottom:
|
360 |
color: #151515;
|
361 |
font-size: 24px;
|
362 |
}
|
363 |
-
|
364 |
.ha-infobox-figure {
|
365 |
display: inline-block;
|
366 |
-
margin: 0 0
|
|
|
|
|
|
|
367 |
}
|
368 |
.ha-infobox-figure--icon {
|
369 |
text-align: center;
|
370 |
-
font-size:
|
371 |
line-height: 1;
|
|
|
|
|
|
|
372 |
}
|
373 |
.ha-infobox-figure i,
|
374 |
.ha-infobox-figure svg {
|
375 |
position: relative;
|
376 |
-
display: block;
|
377 |
width: 1em;
|
378 |
height: 1em;
|
|
|
|
|
|
|
379 |
}
|
380 |
.ha-infobox-figure i:before {
|
381 |
position: absolute;
|
@@ -389,26 +496,15 @@
|
|
389 |
height: 100%;
|
390 |
vertical-align: bottom;
|
391 |
}
|
392 |
-
|
|
|
|
|
393 |
.ha-infobox-text p {
|
394 |
margin-top: 0;
|
395 |
margin-bottom: 0;
|
396 |
}
|
397 |
-
|
398 |
.ha-infobox-text + .ha-btn--link {
|
399 |
-
margin-top:
|
400 |
-
}
|
401 |
-
|
402 |
-
.ha-card > .elementor-widget-container,
|
403 |
-
.ha-infobox > .elementor-widget-container,
|
404 |
-
.ha-icon-box > .elementor-widget-container,
|
405 |
-
.ha-member > .elementor-widget-container,
|
406 |
-
.ha-review > .elementor-widget-container,
|
407 |
-
.ha-image-compare > .elementor-widget-container,
|
408 |
-
.ha-pricing-table > .elementor-widget-container {
|
409 |
-
border-radius: .5rem;
|
410 |
-
background-color: #fff;
|
411 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
412 |
}
|
413 |
|
414 |
.ha-logo-grid-wrapper:after {
|
@@ -419,7 +515,10 @@
|
|
419 |
|
420 |
.ha-icon-box > .elementor-widget-container {
|
421 |
position: relative;
|
422 |
-
padding:
|
|
|
|
|
|
|
423 |
}
|
424 |
|
425 |
.ha-icon-box-title {
|
@@ -433,10 +532,10 @@
|
|
433 |
|
434 |
.ha-icon-box-icon {
|
435 |
display: inline-block;
|
436 |
-
margin-bottom:
|
437 |
color: #151515;
|
438 |
text-align: center;
|
439 |
-
font-size:
|
440 |
-webkit-transition: border .3s, background .3s, color .3s, -webkit-transform .3s;
|
441 |
transition: border .3s, background .3s, color .3s, -webkit-transform .3s;
|
442 |
transition: transform .3s, border .3s, background .3s, color .3s;
|
@@ -476,18 +575,6 @@
|
|
476 |
color: #fff;
|
477 |
}
|
478 |
|
479 |
-
.ha-card > .elementor-widget-container,
|
480 |
-
.ha-infobox > .elementor-widget-container,
|
481 |
-
.ha-icon-box > .elementor-widget-container,
|
482 |
-
.ha-member > .elementor-widget-container,
|
483 |
-
.ha-review > .elementor-widget-container,
|
484 |
-
.ha-image-compare > .elementor-widget-container,
|
485 |
-
.ha-pricing-table > .elementor-widget-container {
|
486 |
-
border-radius: .5rem;
|
487 |
-
background-color: #fff;
|
488 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
489 |
-
}
|
490 |
-
|
491 |
.ha-logo-grid-wrapper:after {
|
492 |
display: block;
|
493 |
clear: both;
|
@@ -495,12 +582,15 @@
|
|
495 |
}
|
496 |
|
497 |
.ha-member > .elementor-widget-container {
|
498 |
-
padding:
|
|
|
|
|
|
|
499 |
}
|
500 |
|
501 |
.ha-member-figure {
|
502 |
display: inline-block;
|
503 |
-
margin: 0 0
|
504 |
}
|
505 |
.ha-member-figure img {
|
506 |
width: 100%;
|
@@ -510,19 +600,19 @@
|
|
510 |
|
511 |
.ha-member-name {
|
512 |
margin-top: 0;
|
513 |
-
margin-bottom:
|
514 |
color: #151515;
|
515 |
font-size: 18px;
|
516 |
}
|
517 |
|
518 |
.ha-member-position {
|
519 |
-
margin-bottom:
|
520 |
color: #7f7f7f;
|
521 |
font-size: 14px;
|
522 |
}
|
523 |
|
524 |
.ha-member-bio {
|
525 |
-
margin-bottom:
|
526 |
font-size: 14px;
|
527 |
line-height: 1.6;
|
528 |
}
|
@@ -544,99 +634,102 @@
|
|
544 |
height: 1em;
|
545 |
}
|
546 |
.ha-member-links > a:not(:last-child) {
|
547 |
-
margin-right:
|
548 |
}
|
549 |
|
550 |
.ha-member .ha-btn {
|
551 |
-
margin-bottom:
|
552 |
}
|
553 |
|
554 |
-
.ha-member-
|
555 |
-
margin-top:
|
556 |
margin-bottom: 0;
|
557 |
}
|
558 |
|
559 |
-
.ha-card > .elementor-widget-container,
|
560 |
-
.ha-infobox > .elementor-widget-container,
|
561 |
-
.ha-icon-box > .elementor-widget-container,
|
562 |
-
.ha-member > .elementor-widget-container,
|
563 |
-
.ha-review > .elementor-widget-container,
|
564 |
-
.ha-image-compare > .elementor-widget-container,
|
565 |
-
.ha-pricing-table > .elementor-widget-container {
|
566 |
-
border-radius: .5rem;
|
567 |
-
background-color: #fff;
|
568 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
569 |
-
}
|
570 |
-
|
571 |
.ha-logo-grid-wrapper:after {
|
572 |
display: block;
|
573 |
clear: both;
|
574 |
content: "";
|
575 |
}
|
576 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
577 |
.ha-review-header {
|
578 |
-
margin-top:
|
579 |
}
|
580 |
-
|
581 |
.ha-review-figure {
|
|
|
|
|
|
|
|
|
582 |
margin: 0;
|
|
|
|
|
|
|
|
|
583 |
}
|
584 |
.ha-review-figure img {
|
585 |
-
width: 100%;
|
586 |
height: 100%;
|
587 |
border-radius: 50%;
|
588 |
vertical-align: bottom;
|
589 |
}
|
590 |
-
|
591 |
.ha-review-reviewer {
|
592 |
margin-top: 0;
|
593 |
-
margin-bottom:
|
594 |
color: #151515;
|
595 |
font-size: 18px;
|
596 |
}
|
597 |
-
|
598 |
.ha-review-position {
|
599 |
-
margin-bottom:
|
600 |
color: #7f7f7f;
|
601 |
font-size: 15px;
|
602 |
}
|
603 |
-
|
604 |
.ha-review-ratting {
|
605 |
display: inline-block;
|
606 |
font-size: 12px;
|
607 |
line-height: 1;
|
608 |
}
|
609 |
-
|
610 |
.ha-review-ratting--num {
|
611 |
-
padding:
|
612 |
-
border-radius:
|
613 |
background-color: #562dd4;
|
614 |
color: #fff;
|
615 |
}
|
616 |
-
|
617 |
.ha-review-ratting--star {
|
618 |
color: #ffbf36;
|
619 |
}
|
620 |
-
|
621 |
.ha-review-desc {
|
622 |
-
margin-top:
|
623 |
font-size: 16px;
|
624 |
line-height: 1.6;
|
625 |
}
|
626 |
.ha-review-desc p {
|
627 |
margin: 0;
|
628 |
}
|
629 |
-
|
630 |
.ha-review--top > .elementor-widget-container {
|
631 |
-
padding:
|
632 |
}
|
633 |
-
|
634 |
.ha-review--top .ha-review-figure {
|
635 |
display: inline-block;
|
636 |
-
max-width: 70px;
|
637 |
height: 70px;
|
638 |
}
|
639 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
640 |
.ha-review--left > .elementor-widget-container,
|
641 |
.ha-review--right > .elementor-widget-container {
|
642 |
display: -webkit-box;
|
@@ -647,59 +740,51 @@
|
|
647 |
-webkit-align-items: center;
|
648 |
align-items: center;
|
649 |
-ms-flex-align: center;
|
650 |
-
-webkit-box-orient: horizontal;
|
651 |
-
-webkit-box-direction: normal;
|
652 |
-
-webkit-flex-direction: row;
|
653 |
-
-ms-flex-direction: row;
|
654 |
-
flex-direction: row;
|
655 |
-
padding-left: 2rem;
|
656 |
}
|
657 |
-
|
658 |
.ha-review--left .ha-review-figure,
|
659 |
.ha-review--right .ha-review-figure {
|
660 |
-
-webkit-box-flex: 0;
|
661 |
-
-webkit-flex: 0 0 150px;
|
662 |
-
-ms-flex: 0 0 150px;
|
663 |
-
flex: 0 0 150px;
|
664 |
-
max-width: 150px;
|
665 |
height: 150px;
|
666 |
}
|
667 |
-
|
668 |
.ha-review--left .ha-review-body,
|
669 |
.ha-review--right .ha-review-body {
|
670 |
-
|
671 |
-
-webkit-flex: 0 0 calc(100% - 150px);
|
672 |
-
-ms-flex: 0 0 calc(100% - 150px);
|
673 |
-
flex: 0 0 calc(100% - 150px);
|
674 |
-
padding: 2rem;
|
675 |
-
max-width: calc(100% - 150px);
|
676 |
}
|
677 |
.ha-review--left .ha-review-body > :first-child,
|
678 |
.ha-review--right .ha-review-body > :first-child {
|
679 |
margin-top: 0;
|
680 |
}
|
681 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
682 |
.ha-review--right > .elementor-widget-container {
|
683 |
-webkit-box-orient: horizontal;
|
684 |
-webkit-box-direction: reverse;
|
685 |
-webkit-flex-direction: row-reverse;
|
686 |
-ms-flex-direction: row-reverse;
|
687 |
flex-direction: row-reverse;
|
688 |
-
padding-right:
|
689 |
-
padding-left: 0;
|
690 |
text-align: right;
|
691 |
}
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
.ha-pricing-table > .elementor-widget-container {
|
700 |
-
border-radius: .5rem;
|
701 |
-
background-color: #fff;
|
702 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
703 |
}
|
704 |
|
705 |
.ha-logo-grid-wrapper:after {
|
@@ -708,23 +793,17 @@
|
|
708 |
content: "";
|
709 |
}
|
710 |
|
|
|
|
|
|
|
|
|
|
|
|
|
711 |
.ha-image-compare .twentytwenty-container,
|
712 |
.ha-image-compare .twentytwenty-wrapper {
|
713 |
border-radius: inherit;
|
714 |
}
|
715 |
|
716 |
-
.ha-card > .elementor-widget-container,
|
717 |
-
.ha-infobox > .elementor-widget-container,
|
718 |
-
.ha-icon-box > .elementor-widget-container,
|
719 |
-
.ha-member > .elementor-widget-container,
|
720 |
-
.ha-review > .elementor-widget-container,
|
721 |
-
.ha-image-compare > .elementor-widget-container,
|
722 |
-
.ha-pricing-table > .elementor-widget-container {
|
723 |
-
border-radius: .5rem;
|
724 |
-
background-color: #fff;
|
725 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
726 |
-
}
|
727 |
-
|
728 |
.ha-logo-grid-wrapper:after {
|
729 |
display: block;
|
730 |
clear: both;
|
@@ -771,18 +850,6 @@
|
|
771 |
color: #fff;
|
772 |
}
|
773 |
|
774 |
-
.ha-card > .elementor-widget-container,
|
775 |
-
.ha-infobox > .elementor-widget-container,
|
776 |
-
.ha-icon-box > .elementor-widget-container,
|
777 |
-
.ha-member > .elementor-widget-container,
|
778 |
-
.ha-review > .elementor-widget-container,
|
779 |
-
.ha-image-compare > .elementor-widget-container,
|
780 |
-
.ha-pricing-table > .elementor-widget-container {
|
781 |
-
border-radius: .5rem;
|
782 |
-
background-color: #fff;
|
783 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
784 |
-
}
|
785 |
-
|
786 |
.ha-logo-grid-wrapper:after {
|
787 |
display: block;
|
788 |
clear: both;
|
@@ -814,18 +881,6 @@
|
|
814 |
height: 100%;
|
815 |
}
|
816 |
|
817 |
-
.ha-card > .elementor-widget-container,
|
818 |
-
.ha-infobox > .elementor-widget-container,
|
819 |
-
.ha-icon-box > .elementor-widget-container,
|
820 |
-
.ha-member > .elementor-widget-container,
|
821 |
-
.ha-review > .elementor-widget-container,
|
822 |
-
.ha-image-compare > .elementor-widget-container,
|
823 |
-
.ha-pricing-table > .elementor-widget-container {
|
824 |
-
border-radius: .5rem;
|
825 |
-
background-color: #fff;
|
826 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
827 |
-
}
|
828 |
-
|
829 |
.ha-logo-grid-wrapper:after {
|
830 |
display: block;
|
831 |
clear: both;
|
@@ -878,18 +933,6 @@
|
|
878 |
}
|
879 |
}
|
880 |
|
881 |
-
.ha-card > .elementor-widget-container,
|
882 |
-
.ha-infobox > .elementor-widget-container,
|
883 |
-
.ha-icon-box > .elementor-widget-container,
|
884 |
-
.ha-member > .elementor-widget-container,
|
885 |
-
.ha-review > .elementor-widget-container,
|
886 |
-
.ha-image-compare > .elementor-widget-container,
|
887 |
-
.ha-pricing-table > .elementor-widget-container {
|
888 |
-
border-radius: .5rem;
|
889 |
-
background-color: #fff;
|
890 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
891 |
-
}
|
892 |
-
|
893 |
.ha-logo-grid-wrapper:after {
|
894 |
display: block;
|
895 |
clear: both;
|
@@ -1029,18 +1072,6 @@
|
|
1029 |
color: #fff;
|
1030 |
}
|
1031 |
|
1032 |
-
.ha-card > .elementor-widget-container,
|
1033 |
-
.ha-infobox > .elementor-widget-container,
|
1034 |
-
.ha-icon-box > .elementor-widget-container,
|
1035 |
-
.ha-member > .elementor-widget-container,
|
1036 |
-
.ha-review > .elementor-widget-container,
|
1037 |
-
.ha-image-compare > .elementor-widget-container,
|
1038 |
-
.ha-pricing-table > .elementor-widget-container {
|
1039 |
-
border-radius: .5rem;
|
1040 |
-
background-color: #fff;
|
1041 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1042 |
-
}
|
1043 |
-
|
1044 |
.ha-logo-grid-wrapper:after {
|
1045 |
display: block;
|
1046 |
clear: both;
|
@@ -1126,18 +1157,6 @@
|
|
1126 |
text-overflow: ellipsis;
|
1127 |
}
|
1128 |
|
1129 |
-
.ha-card > .elementor-widget-container,
|
1130 |
-
.ha-infobox > .elementor-widget-container,
|
1131 |
-
.ha-icon-box > .elementor-widget-container,
|
1132 |
-
.ha-member > .elementor-widget-container,
|
1133 |
-
.ha-review > .elementor-widget-container,
|
1134 |
-
.ha-image-compare > .elementor-widget-container,
|
1135 |
-
.ha-pricing-table > .elementor-widget-container {
|
1136 |
-
border-radius: .5rem;
|
1137 |
-
background-color: #fff;
|
1138 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1139 |
-
}
|
1140 |
-
|
1141 |
.ha-logo-grid-wrapper:after {
|
1142 |
display: block;
|
1143 |
clear: both;
|
@@ -1153,18 +1172,6 @@
|
|
1153 |
text-decoration: none;
|
1154 |
}
|
1155 |
|
1156 |
-
.ha-card > .elementor-widget-container,
|
1157 |
-
.ha-infobox > .elementor-widget-container,
|
1158 |
-
.ha-icon-box > .elementor-widget-container,
|
1159 |
-
.ha-member > .elementor-widget-container,
|
1160 |
-
.ha-review > .elementor-widget-container,
|
1161 |
-
.ha-image-compare > .elementor-widget-container,
|
1162 |
-
.ha-pricing-table > .elementor-widget-container {
|
1163 |
-
border-radius: .5rem;
|
1164 |
-
background-color: #fff;
|
1165 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1166 |
-
}
|
1167 |
-
|
1168 |
.ha-logo-grid-wrapper:after {
|
1169 |
display: block;
|
1170 |
clear: both;
|
@@ -1624,18 +1631,6 @@
|
|
1624 |
}
|
1625 |
}
|
1626 |
|
1627 |
-
.ha-card > .elementor-widget-container,
|
1628 |
-
.ha-infobox > .elementor-widget-container,
|
1629 |
-
.ha-icon-box > .elementor-widget-container,
|
1630 |
-
.ha-member > .elementor-widget-container,
|
1631 |
-
.ha-review > .elementor-widget-container,
|
1632 |
-
.ha-image-compare > .elementor-widget-container,
|
1633 |
-
.ha-pricing-table > .elementor-widget-container {
|
1634 |
-
border-radius: .5rem;
|
1635 |
-
background-color: #fff;
|
1636 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1637 |
-
}
|
1638 |
-
|
1639 |
.ha-logo-grid-wrapper:after {
|
1640 |
display: block;
|
1641 |
clear: both;
|
@@ -1971,18 +1966,6 @@
|
|
1971 |
}
|
1972 |
}
|
1973 |
|
1974 |
-
.ha-card > .elementor-widget-container,
|
1975 |
-
.ha-infobox > .elementor-widget-container,
|
1976 |
-
.ha-icon-box > .elementor-widget-container,
|
1977 |
-
.ha-member > .elementor-widget-container,
|
1978 |
-
.ha-review > .elementor-widget-container,
|
1979 |
-
.ha-image-compare > .elementor-widget-container,
|
1980 |
-
.ha-pricing-table > .elementor-widget-container {
|
1981 |
-
border-radius: .5rem;
|
1982 |
-
background-color: #fff;
|
1983 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1984 |
-
}
|
1985 |
-
|
1986 |
.ha-logo-grid-wrapper:after {
|
1987 |
display: block;
|
1988 |
clear: both;
|
@@ -1990,23 +1973,23 @@
|
|
1990 |
}
|
1991 |
|
1992 |
.ha-testimonial--basic > .elementor-widget-container {
|
1993 |
-
padding:
|
1994 |
border: 1px solid #ececec;
|
1995 |
-
border-radius:
|
1996 |
}
|
1997 |
|
1998 |
.ha-testimonial--basic .ha-testimonial__content {
|
1999 |
-
margin-bottom:
|
2000 |
}
|
2001 |
|
2002 |
.ha-testimonial--bubble .ha-testimonial__content {
|
2003 |
position: relative;
|
2004 |
-
margin-bottom:
|
2005 |
-
padding:
|
2006 |
border-radius: 6px;
|
2007 |
-
background-color: #fff;
|
2008 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
2009 |
-
line-height: 1.
|
2010 |
}
|
2011 |
.ha-testimonial--bubble .ha-testimonial__content:after {
|
2012 |
position: absolute;
|
@@ -2067,7 +2050,7 @@
|
|
2067 |
object-fit: cover;
|
2068 |
}
|
2069 |
.ha-testimonial__reviewer-name {
|
2070 |
-
margin-bottom:
|
2071 |
color: #562dd4;
|
2072 |
font-weight: bold;
|
2073 |
font-size: 18px;
|
@@ -2078,7 +2061,7 @@
|
|
2078 |
}
|
2079 |
|
2080 |
.ha-testimonial--left .ha-testimonial__reviewer-meta {
|
2081 |
-
padding-left:
|
2082 |
}
|
2083 |
|
2084 |
.ha-testimonial--center .ha-testimonial__reviewer {
|
@@ -2089,7 +2072,7 @@
|
|
2089 |
flex-direction: column;
|
2090 |
}
|
2091 |
.ha-testimonial--center .ha-testimonial__reviewer-meta {
|
2092 |
-
padding-top:
|
2093 |
max-width: 100%;
|
2094 |
}
|
2095 |
|
@@ -2110,31 +2093,7 @@
|
|
2110 |
flex-direction: row-reverse;
|
2111 |
}
|
2112 |
.ha-testimonial--right .ha-testimonial__reviewer-meta {
|
2113 |
-
padding-right:
|
2114 |
-
}
|
2115 |
-
|
2116 |
-
.ha-testimonial--left {
|
2117 |
-
text-align: left;
|
2118 |
-
}
|
2119 |
-
|
2120 |
-
.ha-testimonial--right {
|
2121 |
-
text-align: right;
|
2122 |
-
}
|
2123 |
-
|
2124 |
-
.ha-testimonial--center {
|
2125 |
-
text-align: center;
|
2126 |
-
}
|
2127 |
-
|
2128 |
-
.ha-card > .elementor-widget-container,
|
2129 |
-
.ha-infobox > .elementor-widget-container,
|
2130 |
-
.ha-icon-box > .elementor-widget-container,
|
2131 |
-
.ha-member > .elementor-widget-container,
|
2132 |
-
.ha-review > .elementor-widget-container,
|
2133 |
-
.ha-image-compare > .elementor-widget-container,
|
2134 |
-
.ha-pricing-table > .elementor-widget-container {
|
2135 |
-
border-radius: .5rem;
|
2136 |
-
background-color: #fff;
|
2137 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
2138 |
}
|
2139 |
|
2140 |
.ha-logo-grid-wrapper:after {
|
@@ -2181,18 +2140,6 @@
|
|
2181 |
flex: 1;
|
2182 |
}
|
2183 |
|
2184 |
-
.ha-card > .elementor-widget-container,
|
2185 |
-
.ha-infobox > .elementor-widget-container,
|
2186 |
-
.ha-icon-box > .elementor-widget-container,
|
2187 |
-
.ha-member > .elementor-widget-container,
|
2188 |
-
.ha-review > .elementor-widget-container,
|
2189 |
-
.ha-image-compare > .elementor-widget-container,
|
2190 |
-
.ha-pricing-table > .elementor-widget-container {
|
2191 |
-
border-radius: .5rem;
|
2192 |
-
background-color: #fff;
|
2193 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
2194 |
-
}
|
2195 |
-
|
2196 |
.ha-logo-grid-wrapper:after {
|
2197 |
display: block;
|
2198 |
clear: both;
|
@@ -2431,18 +2378,6 @@
|
|
2431 |
transition: transform .6s cubic-bezier(.2, .85, .4, 1.275), -webkit-transform .6s cubic-bezier(.2, .85, .4, 1.275);
|
2432 |
}
|
2433 |
|
2434 |
-
.ha-card > .elementor-widget-container,
|
2435 |
-
.ha-infobox > .elementor-widget-container,
|
2436 |
-
.ha-icon-box > .elementor-widget-container,
|
2437 |
-
.ha-member > .elementor-widget-container,
|
2438 |
-
.ha-review > .elementor-widget-container,
|
2439 |
-
.ha-image-compare > .elementor-widget-container,
|
2440 |
-
.ha-pricing-table > .elementor-widget-container {
|
2441 |
-
border-radius: .5rem;
|
2442 |
-
background-color: #fff;
|
2443 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
2444 |
-
}
|
2445 |
-
|
2446 |
.ha-logo-grid-wrapper:after {
|
2447 |
display: block;
|
2448 |
clear: both;
|
@@ -2451,8 +2386,11 @@
|
|
2451 |
|
2452 |
.ha-pricing-table > .elementor-widget-container {
|
2453 |
position: relative;
|
2454 |
-
overflow: hidden;
|
2455 |
padding: 3em 4em;
|
|
|
|
|
|
|
2456 |
}
|
2457 |
|
2458 |
.ha-pricing-table-badge {
|
@@ -2563,36 +2501,35 @@
|
|
2563 |
color: #fff;
|
2564 |
}
|
2565 |
|
2566 |
-
.ha-card > .elementor-widget-container,
|
2567 |
-
.ha-infobox > .elementor-widget-container,
|
2568 |
-
.ha-icon-box > .elementor-widget-container,
|
2569 |
-
.ha-member > .elementor-widget-container,
|
2570 |
-
.ha-review > .elementor-widget-container,
|
2571 |
-
.ha-image-compare > .elementor-widget-container,
|
2572 |
-
.ha-pricing-table > .elementor-widget-container {
|
2573 |
-
border-radius: .5rem;
|
2574 |
-
background-color: #fff;
|
2575 |
-
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
2576 |
-
}
|
2577 |
-
|
2578 |
.ha-logo-grid-wrapper:after {
|
2579 |
display: block;
|
2580 |
clear: both;
|
2581 |
content: "";
|
2582 |
}
|
2583 |
|
|
|
|
|
|
|
|
|
|
|
2584 |
.ha-step-flow > .elementor-widget-container {
|
2585 |
-
padding:
|
2586 |
text-align: center;
|
2587 |
}
|
2588 |
|
2589 |
.ha-step-arrow {
|
2590 |
position: absolute;
|
2591 |
top: 49%;
|
2592 |
-
left: calc( 100% + 20px);
|
2593 |
display: inline-block;
|
2594 |
width: 100px;
|
2595 |
border-top: 1px solid #ddd;
|
|
|
|
|
|
|
|
|
|
|
|
|
2596 |
}
|
2597 |
.ha-step-arrow:after {
|
2598 |
position: absolute;
|
@@ -2617,7 +2554,6 @@
|
|
2617 |
padding: 40px;
|
2618 |
border-radius: 50%;
|
2619 |
background-color: #e9ecf0;
|
2620 |
-
box-shadow: 0 2px 6px -2px #989898;
|
2621 |
color: #8056ee;
|
2622 |
text-align: center;
|
2623 |
font-size: 46px;
|
@@ -2641,7 +2577,7 @@
|
|
2641 |
top: 5px;
|
2642 |
right: 0;
|
2643 |
overflow: hidden;
|
2644 |
-
padding:
|
2645 |
max-width: 200%;
|
2646 |
border: 3px solid #fff;
|
2647 |
border-radius: 20px;
|
@@ -3305,6 +3241,11 @@ span.ha-post-list-icon svg {
|
|
3305 |
margin-right: 3px;
|
3306 |
}
|
3307 |
|
|
|
|
|
|
|
|
|
|
|
3308 |
.ha-post-tab .ha-post-tab-filter {
|
3309 |
padding: 0;
|
3310 |
border-bottom: 1px solid #ddd;
|
@@ -3712,3 +3653,283 @@ span.ha-threesixty-rotation-magnify {
|
|
3712 |
-webkit-transition: all .5s ease 0s;
|
3713 |
transition: all .5s ease 0s;
|
3714 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.ha-logo-grid-wrapper:after {
|
2 |
display: block;
|
3 |
clear: both;
|
4 |
content: "";
|
5 |
}
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
.ha-logo-grid-wrapper:after {
|
8 |
display: block;
|
9 |
clear: both;
|
10 |
content: "";
|
11 |
}
|
12 |
|
13 |
+
.elementor-widget {
|
14 |
+
-webkit-transition-duration: var(--ha-tfx-transition-duration, .2s);
|
15 |
+
transition-duration: var(--ha-tfx-transition-duration, .2s);
|
16 |
+
-webkit-transition-property: -webkit-transform;
|
17 |
+
transition-property: -webkit-transform;
|
18 |
+
transition-property: transform;
|
19 |
+
transition-property: transform, -webkit-transform;
|
20 |
+
-webkit-transform: translate(var(--ha-tfx-translate-x, 0), var(--ha-tfx-translate-y, 0)) scale(var(--ha-tfx-scale-x, 1), var(--ha-tfx-scale-y, 1)) skew(var(--ha-tfx-skew-x, 0), var(--ha-tfx-skew-y, 0)) rotateX(var(--ha-tfx-rotate-x, 0)) rotateY(var(--ha-tfx-rotate-y, 0)) rotateZ(var(--ha-tfx-rotate-z, 0));
|
21 |
+
transform: translate(var(--ha-tfx-translate-x, 0), var(--ha-tfx-translate-y, 0)) scale(var(--ha-tfx-scale-x, 1), var(--ha-tfx-scale-y, 1)) skew(var(--ha-tfx-skew-x, 0), var(--ha-tfx-skew-y, 0)) rotateX(var(--ha-tfx-rotate-x, 0)) rotateY(var(--ha-tfx-rotate-y, 0)) rotateZ(var(--ha-tfx-rotate-z, 0));
|
22 |
+
}
|
23 |
+
.elementor-widget:hover {
|
24 |
+
-webkit-transform: translate(var(--ha-tfx-translate-x-hover, 0), var(--ha-tfx-translate-y-hover, 0)) scale(var(--ha-tfx-scale-x-hover, 1), var(--ha-tfx-scale-y-hover, 1)) skew(var(--ha-tfx-skew-x-hover, 0), var(--ha-tfx-skew-y-hover, 0)) rotateX(var(--ha-tfx-rotate-x-hover, 0)) rotateY(var(--ha-tfx-rotate-y-hover, 0)) rotateZ(var(--ha-tfx-rotate-z-hover, 0));
|
25 |
+
transform: translate(var(--ha-tfx-translate-x-hover, 0), var(--ha-tfx-translate-y-hover, 0)) scale(var(--ha-tfx-scale-x-hover, 1), var(--ha-tfx-scale-y-hover, 1)) skew(var(--ha-tfx-skew-x-hover, 0), var(--ha-tfx-skew-y-hover, 0)) rotateX(var(--ha-tfx-rotate-x-hover, 0)) rotateY(var(--ha-tfx-rotate-y-hover, 0)) rotateZ(var(--ha-tfx-rotate-z-hover, 0));
|
26 |
+
}
|
27 |
+
|
28 |
.happy-addon > .elementor-widget-container {
|
29 |
word-wrap: break-word;
|
30 |
|
47 |
display: none;
|
48 |
}
|
49 |
|
50 |
+
.happy-addon .elementor-inline-editing {
|
51 |
+
min-height: auto !important;
|
52 |
+
}
|
53 |
+
|
54 |
.ha-screen-reader-text {
|
55 |
position: absolute;
|
56 |
overflow: hidden;
|
95 |
outline-width: thin;
|
96 |
}
|
97 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
.ha-logo-grid-wrapper:after {
|
99 |
display: block;
|
100 |
clear: both;
|
114 |
}
|
115 |
.ha-btn:not(.ha-btn--link) {
|
116 |
padding: 15px 25px;
|
117 |
+
border-radius: 5px;
|
118 |
background-color: #562dd4;
|
119 |
color: #fff;
|
120 |
}
|
142 |
}
|
143 |
|
144 |
.ha-badge {
|
145 |
+
padding: 10px 18px;
|
|
|
146 |
border-radius: 50px;
|
147 |
background-color: #fff;
|
148 |
font-size: 12px;
|
149 |
+
line-height: 1;
|
150 |
+
-webkit-transform: translate(var(--ha-badge-translate-x), var(--ha-badge-translate-y));
|
151 |
+
-ms-transform: translate(var(--ha-badge-translate-x), var(--ha-badge-translate-y));
|
152 |
+
transform: translate(var(--ha-badge-translate-x), var(--ha-badge-translate-y));
|
153 |
+
|
154 |
+
--ha-badge-translate-x: 0;
|
155 |
+
--ha-badge-translate-y: 0;
|
156 |
}
|
157 |
.ha-badge--top-left {
|
158 |
+
top: 25px;
|
159 |
+
left: 25px;
|
160 |
}
|
161 |
.ha-badge--top-center {
|
162 |
+
top: 25px;
|
163 |
left: 50%;
|
164 |
+
|
165 |
+
--ha-badge-translate-x: -50%;
|
|
|
166 |
}
|
167 |
.ha-badge--top-right {
|
168 |
+
top: 25px;
|
169 |
+
right: 25px;
|
170 |
}
|
171 |
.ha-badge--middle-left {
|
172 |
top: 50%;
|
173 |
+
left: 25px;
|
174 |
+
|
175 |
+
--ha-badge-translate-x: -50%;
|
|
|
176 |
}
|
177 |
.ha-badge--middle-center {
|
178 |
top: 50%;
|
179 |
left: 50%;
|
180 |
+
|
181 |
+
--ha-badge-translate-x: -50%;
|
182 |
+
--ha-badge-translate-y: -50%;
|
183 |
}
|
184 |
.ha-badge--middle-right {
|
185 |
top: 50%;
|
186 |
+
right: 25px;
|
187 |
+
|
188 |
+
--ha-badge-translate-y: -50%;
|
|
|
189 |
}
|
190 |
.ha-badge--bottom-left {
|
191 |
+
bottom: 25px;
|
192 |
+
left: 25px;
|
193 |
}
|
194 |
.ha-badge--bottom-center {
|
195 |
+
bottom: 25px;
|
196 |
left: 50%;
|
197 |
+
|
198 |
+
--ha-badge-translate-x: -50%;
|
|
|
199 |
}
|
200 |
.ha-badge--bottom-right {
|
201 |
+
right: 25px;
|
202 |
+
bottom: 25px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
|
205 |
.ha-logo-grid-wrapper:after {
|
208 |
content: "";
|
209 |
}
|
210 |
|
211 |
+
.ha-card {
|
212 |
+
--ha-card-body-width-left: calc(100% - var(--ha-card-image-width) + (-1 * var(--ha-card-image-offset-x)));
|
213 |
+
--ha-card-body-width-right: calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));
|
214 |
+
--ha-card-image-offset-x: calc(1px - 1px);
|
215 |
+
--ha-card-image-offset-y: calc(1px - 1px);
|
216 |
+
--ha-card-image-width: 100%;
|
217 |
+
}
|
218 |
+
|
219 |
+
.ha-card > .elementor-widget-container {
|
220 |
+
border-radius: 5px;
|
221 |
+
background-color: #fff;
|
222 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
223 |
+
}
|
224 |
+
|
225 |
.ha-card-figure {
|
226 |
position: relative;
|
227 |
+
-webkit-box-flex: 0;
|
228 |
+
-webkit-flex: 0 0 var(--ha-card-image-width);
|
229 |
+
-ms-flex: 0 0 var(--ha-card-image-width);
|
230 |
+
flex: 0 0 var(--ha-card-image-width);
|
231 |
+
max-width: var(--ha-card-image-width);
|
232 |
height: 250px;
|
233 |
+
-webkit-transform: translate(var(--ha-card-image-offset-x), var(--ha-card-image-offset-y));
|
234 |
+
-ms-transform: translate(var(--ha-card-image-offset-x), var(--ha-card-image-offset-y));
|
235 |
+
transform: translate(var(--ha-card-image-offset-x), var(--ha-card-image-offset-y));
|
236 |
}
|
237 |
.ha-card-figure img {
|
238 |
width: 100%;
|
239 |
height: 100%;
|
|
|
|
|
240 |
vertical-align: bottom;
|
241 |
}
|
242 |
|
243 |
.ha-card-body {
|
244 |
+
padding: 25px;
|
245 |
}
|
246 |
|
247 |
.ha-card-title {
|
248 |
margin-top: 0;
|
249 |
+
margin-bottom: 10px;
|
250 |
color: #151515;
|
251 |
font-weight: 700;
|
252 |
font-size: 22px;
|
253 |
}
|
254 |
|
255 |
.ha-card-text {
|
256 |
+
margin-bottom: 25px;
|
257 |
color: #616161;
|
258 |
font-size: 16px;
|
259 |
line-height: 1.7;
|
265 |
|
266 |
.ha-card--top .ha-card-figure {
|
267 |
display: inline-block;
|
268 |
+
}
|
269 |
+
.ha-card--top .ha-card-figure img {
|
270 |
+
border-radius: 5px 5px 0 0;
|
271 |
+
}
|
272 |
+
|
273 |
+
.ha-card--top .ha-card-body {
|
274 |
+
margin-top: var(--ha-card-image-offset-y);
|
275 |
+
max-width: initial;
|
276 |
width: 100%;
|
277 |
}
|
278 |
|
279 |
+
.ha-card--right,
|
280 |
+
.ha-card--left {
|
281 |
+
--ha-card-image-width: 50%;
|
282 |
+
}
|
283 |
.ha-card--right > .elementor-widget-container,
|
284 |
.ha-card--left > .elementor-widget-container {
|
285 |
display: -webkit-box;
|
290 |
-webkit-align-items: center;
|
291 |
align-items: center;
|
292 |
-ms-flex-align: center;
|
|
|
|
|
|
|
|
|
|
|
293 |
}
|
294 |
+
.ha-card--right .ha-card-body,
|
295 |
+
.ha-card--left .ha-card-body {
|
296 |
+
padding: 35px;
|
|
|
|
|
|
|
|
|
|
|
297 |
}
|
298 |
|
|
|
299 |
.ha-card--left .ha-card-body {
|
300 |
-webkit-box-flex: 0;
|
301 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-left);
|
302 |
+
-ms-flex: 0 0 var(--ha-card-body-width-left);
|
303 |
+
flex: 0 0 var(--ha-card-body-width-left);
|
304 |
+
margin-left: var(--ha-card-image-offset-x);
|
305 |
+
max-width: var(--ha-card-body-width-left);
|
306 |
}
|
307 |
|
308 |
.ha-card--left .ha-card-figure img {
|
309 |
+
border-radius: 5px 0 0 5px;
|
310 |
}
|
311 |
|
312 |
+
.ha-card--right .ha-card-body {
|
313 |
+
-webkit-box-flex: 0;
|
314 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-right);
|
315 |
+
-ms-flex: 0 0 var(--ha-card-body-width-right);
|
316 |
+
flex: 0 0 var(--ha-card-body-width-right);
|
317 |
+
margin-right: calc(-1 * var(--ha-card-image-offset-x));
|
318 |
+
max-width: var(--ha-card-body-width-right);
|
319 |
}
|
320 |
|
321 |
.ha-card--right .ha-card-figure img {
|
322 |
+
border-radius: 0 5px 5px 0;
|
323 |
}
|
324 |
|
325 |
+
@media (max-width: 1024px) {
|
326 |
+
.ha-card--tablet-top {
|
327 |
+
--ha-card-image-width: 100%;
|
328 |
+
}
|
329 |
+
.ha-card--tablet-top .ha-card-figure {
|
330 |
+
display: inline-block;
|
331 |
+
}
|
332 |
+
.ha-card--tablet-top .ha-card-figure img {
|
333 |
+
border-radius: 5px 5px 0 0;
|
334 |
+
}
|
335 |
+
.ha-card--tablet-top .ha-card-body {
|
336 |
+
margin-top: var(--ha-card-image-offset-y);
|
337 |
+
padding: 25px;
|
338 |
+
max-width: initial;
|
339 |
+
width: 100%;
|
340 |
+
}
|
341 |
+
.ha-card--tablet-right,
|
342 |
+
.ha-card--tablet-left {
|
343 |
+
--ha-card-image-width: 50%;
|
344 |
+
}
|
345 |
+
.ha-card--tablet-right > .elementor-widget-container,
|
346 |
+
.ha-card--tablet-left > .elementor-widget-container {
|
347 |
+
display: -webkit-box;
|
348 |
+
display: -webkit-flex;
|
349 |
+
display: -ms-flexbox;
|
350 |
+
display: flex;
|
351 |
+
-webkit-box-align: center;
|
352 |
+
-webkit-align-items: center;
|
353 |
+
align-items: center;
|
354 |
+
-ms-flex-align: center;
|
355 |
+
}
|
356 |
+
.ha-card--tablet-left .ha-card-body {
|
357 |
+
-webkit-box-flex: 0;
|
358 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-left);
|
359 |
+
-ms-flex: 0 0 var(--ha-card-body-width-left);
|
360 |
+
flex: 0 0 var(--ha-card-body-width-left);
|
361 |
+
margin-left: var(--ha-card-image-offset-x);
|
362 |
+
max-width: var(--ha-card-body-width-left);
|
363 |
+
}
|
364 |
+
.ha-card--tablet-left .ha-card-figure img {
|
365 |
+
border-radius: 5px 0 0 5px;
|
366 |
+
}
|
367 |
+
.ha-card--tablet-right .ha-card-body {
|
368 |
+
-webkit-box-flex: 0;
|
369 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-right);
|
370 |
+
-ms-flex: 0 0 var(--ha-card-body-width-right);
|
371 |
+
flex: 0 0 var(--ha-card-body-width-right);
|
372 |
+
margin-right: calc(-1 * var(--ha-card-image-offset-x));
|
373 |
+
max-width: var(--ha-card-body-width-right);
|
374 |
+
}
|
375 |
+
.ha-card--tablet-right .ha-card-figure img {
|
376 |
+
border-radius: 0 5px 5px 0;
|
377 |
+
}
|
378 |
}
|
379 |
|
380 |
+
@media (max-width: 767px) {
|
381 |
+
.ha-card--tablet-top {
|
382 |
+
--ha-card-image-width: 100%;
|
383 |
+
}
|
384 |
+
.ha-card--tablet-top .ha-card-figure {
|
385 |
+
display: inline-block;
|
386 |
+
}
|
387 |
+
.ha-card--tablet-top .ha-card-figure img {
|
388 |
+
border-radius: 5px 5px 0 0;
|
389 |
+
}
|
390 |
+
.ha-card--tablet-top .ha-card-body {
|
391 |
+
margin-top: var(--ha-card-image-offset-y);
|
392 |
+
padding: 25px;
|
393 |
+
max-width: initial;
|
394 |
+
width: 100%;
|
395 |
+
}
|
396 |
+
.ha-card--mobile-right,
|
397 |
+
.ha-card--mobile-left {
|
398 |
+
--ha-card-image-width: 50%;
|
399 |
+
}
|
400 |
+
.ha-card--mobile-right > .elementor-widget-container,
|
401 |
+
.ha-card--mobile-left > .elementor-widget-container {
|
402 |
+
display: -webkit-box;
|
403 |
+
display: -webkit-flex;
|
404 |
+
display: -ms-flexbox;
|
405 |
+
display: flex;
|
406 |
+
-webkit-box-align: center;
|
407 |
+
-webkit-align-items: center;
|
408 |
+
align-items: center;
|
409 |
+
-ms-flex-align: center;
|
410 |
+
}
|
411 |
+
.ha-card--mobile-left .ha-card-body {
|
412 |
+
-webkit-box-flex: 0;
|
413 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-left);
|
414 |
+
-ms-flex: 0 0 var(--ha-card-body-width-left);
|
415 |
+
flex: 0 0 var(--ha-card-body-width-left);
|
416 |
+
margin-left: var(--ha-card-image-offset-x);
|
417 |
+
max-width: var(--ha-card-body-width-left);
|
418 |
+
}
|
419 |
+
.ha-card--mobile-left .ha-card-figure img {
|
420 |
+
border-radius: 5px 0 0 5px;
|
421 |
+
}
|
422 |
+
.ha-card--mobile-right .ha-card-body {
|
423 |
+
-webkit-box-flex: 0;
|
424 |
+
-webkit-flex: 0 0 var(--ha-card-body-width-right);
|
425 |
+
-ms-flex: 0 0 var(--ha-card-body-width-right);
|
426 |
+
flex: 0 0 var(--ha-card-body-width-right);
|
427 |
+
margin-right: calc(-1 * var(--ha-card-image-offset-x));
|
428 |
+
max-width: var(--ha-card-body-width-right);
|
429 |
+
}
|
430 |
+
.ha-card--mobile-right .ha-card-figure img {
|
431 |
+
border-radius: 0 5px 5px 0;
|
432 |
+
}
|
433 |
+
}
|
434 |
+
|
435 |
+
.ha-card .ha-badge {
|
436 |
+
position: absolute;
|
437 |
}
|
438 |
|
439 |
.ha-logo-grid-wrapper:after {
|
442 |
content: "";
|
443 |
}
|
444 |
|
445 |
+
.ha-infobox {
|
446 |
+
--ha-infobox-media-offset-x: 0;
|
447 |
+
--ha-infobox-media-offset-y: 0;
|
448 |
+
--ha-infobox-media-rotate: 0;
|
449 |
+
}
|
450 |
.ha-infobox > .elementor-widget-container {
|
451 |
+
padding: 25px;
|
452 |
+
border-radius: 5px;
|
453 |
+
background-color: #fff;
|
454 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
455 |
}
|
|
|
456 |
.ha-infobox-title {
|
457 |
margin-top: 0;
|
458 |
+
margin-bottom: 10px;
|
459 |
color: #151515;
|
460 |
font-size: 24px;
|
461 |
}
|
|
|
462 |
.ha-infobox-figure {
|
463 |
display: inline-block;
|
464 |
+
margin: 0 0 25px !important;
|
465 |
+
-webkit-transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y));
|
466 |
+
-ms-transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y));
|
467 |
+
transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y));
|
468 |
}
|
469 |
.ha-infobox-figure--icon {
|
470 |
text-align: center;
|
471 |
+
font-size: 48px;
|
472 |
line-height: 1;
|
473 |
+
-webkit-transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));
|
474 |
+
-ms-transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));
|
475 |
+
transform: translate(var(--ha-infobox-media-offset-x), var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));
|
476 |
}
|
477 |
.ha-infobox-figure i,
|
478 |
.ha-infobox-figure svg {
|
479 |
position: relative;
|
480 |
+
display: block;
|
481 |
width: 1em;
|
482 |
height: 1em;
|
483 |
+
-webkit-transform: rotate(calc(-1 * var(--ha-infobox-media-rotate)));
|
484 |
+
-ms-transform: rotate(calc(-1 * var(--ha-infobox-media-rotate)));
|
485 |
+
transform: rotate(calc(-1 * var(--ha-infobox-media-rotate)));
|
486 |
}
|
487 |
.ha-infobox-figure i:before {
|
488 |
position: absolute;
|
496 |
height: 100%;
|
497 |
vertical-align: bottom;
|
498 |
}
|
499 |
+
.ha-infobox-body {
|
500 |
+
margin-top: var(--ha-infobox-media-offset-y);
|
501 |
+
}
|
502 |
.ha-infobox-text p {
|
503 |
margin-top: 0;
|
504 |
margin-bottom: 0;
|
505 |
}
|
|
|
506 |
.ha-infobox-text + .ha-btn--link {
|
507 |
+
margin-top: 25px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
}
|
509 |
|
510 |
.ha-logo-grid-wrapper:after {
|
515 |
|
516 |
.ha-icon-box > .elementor-widget-container {
|
517 |
position: relative;
|
518 |
+
padding: 25px;
|
519 |
+
border-radius: 5px;
|
520 |
+
background-color: #fff;
|
521 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
522 |
}
|
523 |
|
524 |
.ha-icon-box-title {
|
532 |
|
533 |
.ha-icon-box-icon {
|
534 |
display: inline-block;
|
535 |
+
margin-bottom: 20px;
|
536 |
color: #151515;
|
537 |
text-align: center;
|
538 |
+
font-size: 48px;
|
539 |
-webkit-transition: border .3s, background .3s, color .3s, -webkit-transform .3s;
|
540 |
transition: border .3s, background .3s, color .3s, -webkit-transform .3s;
|
541 |
transition: transform .3s, border .3s, background .3s, color .3s;
|
575 |
color: #fff;
|
576 |
}
|
577 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
.ha-logo-grid-wrapper:after {
|
579 |
display: block;
|
580 |
clear: both;
|
582 |
}
|
583 |
|
584 |
.ha-member > .elementor-widget-container {
|
585 |
+
padding: 25px;
|
586 |
+
border-radius: 5px;
|
587 |
+
background-color: #fff;
|
588 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
589 |
}
|
590 |
|
591 |
.ha-member-figure {
|
592 |
display: inline-block;
|
593 |
+
margin: 0 0 25px !important;
|
594 |
}
|
595 |
.ha-member-figure img {
|
596 |
width: 100%;
|
600 |
|
601 |
.ha-member-name {
|
602 |
margin-top: 0;
|
603 |
+
margin-bottom: 10px;
|
604 |
color: #151515;
|
605 |
font-size: 18px;
|
606 |
}
|
607 |
|
608 |
.ha-member-position {
|
609 |
+
margin-bottom: 25px;
|
610 |
color: #7f7f7f;
|
611 |
font-size: 14px;
|
612 |
}
|
613 |
|
614 |
.ha-member-bio {
|
615 |
+
margin-bottom: 25px;
|
616 |
font-size: 14px;
|
617 |
line-height: 1.6;
|
618 |
}
|
634 |
height: 1em;
|
635 |
}
|
636 |
.ha-member-links > a:not(:last-child) {
|
637 |
+
margin-right: 10px;
|
638 |
}
|
639 |
|
640 |
.ha-member .ha-btn {
|
641 |
+
margin-bottom: 15px;
|
642 |
}
|
643 |
|
644 |
+
.ha-member-body .ha-btn:last-child {
|
645 |
+
margin-top: 15px;
|
646 |
margin-bottom: 0;
|
647 |
}
|
648 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
649 |
.ha-logo-grid-wrapper:after {
|
650 |
display: block;
|
651 |
clear: both;
|
652 |
content: "";
|
653 |
}
|
654 |
|
655 |
+
.ha-review {
|
656 |
+
--ha-review-left-body-width: calc(100% - var(--ha-review-media-width) + (-1 * var(--ha-review-media-offset-x)));
|
657 |
+
--ha-review-media-offset-x: calc(1px - 1px);
|
658 |
+
--ha-review-media-offset-y: calc(1px - 1px);
|
659 |
+
--ha-review-right-body-width: calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)));
|
660 |
+
}
|
661 |
+
.ha-review > .elementor-widget-container {
|
662 |
+
border-radius: 5px;
|
663 |
+
background-color: #fff;
|
664 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
665 |
+
}
|
666 |
.ha-review-header {
|
667 |
+
margin-top: 25px;
|
668 |
}
|
|
|
669 |
.ha-review-figure {
|
670 |
+
-webkit-box-flex: 0;
|
671 |
+
-webkit-flex: 0 0 var(--ha-review-media-width, 70px);
|
672 |
+
-ms-flex: 0 0 var(--ha-review-media-width, 70px);
|
673 |
+
flex: 0 0 var(--ha-review-media-width, 70px);
|
674 |
margin: 0;
|
675 |
+
max-width: var(--ha-review-media-width, 70px);
|
676 |
+
-webkit-transform: translate(var(--ha-review-media-offset-x), var(--ha-review-media-offset-y));
|
677 |
+
-ms-transform: translate(var(--ha-review-media-offset-x), var(--ha-review-media-offset-y));
|
678 |
+
transform: translate(var(--ha-review-media-offset-x), var(--ha-review-media-offset-y));
|
679 |
}
|
680 |
.ha-review-figure img {
|
681 |
+
width: 100%;
|
682 |
height: 100%;
|
683 |
border-radius: 50%;
|
684 |
vertical-align: bottom;
|
685 |
}
|
|
|
686 |
.ha-review-reviewer {
|
687 |
margin-top: 0;
|
688 |
+
margin-bottom: 10px;
|
689 |
color: #151515;
|
690 |
font-size: 18px;
|
691 |
}
|
|
|
692 |
.ha-review-position {
|
693 |
+
margin-bottom: 10px;
|
694 |
color: #7f7f7f;
|
695 |
font-size: 15px;
|
696 |
}
|
|
|
697 |
.ha-review-ratting {
|
698 |
display: inline-block;
|
699 |
font-size: 12px;
|
700 |
line-height: 1;
|
701 |
}
|
|
|
702 |
.ha-review-ratting--num {
|
703 |
+
padding: 5px 10px;
|
704 |
+
border-radius: 20px;
|
705 |
background-color: #562dd4;
|
706 |
color: #fff;
|
707 |
}
|
|
|
708 |
.ha-review-ratting--star {
|
709 |
color: #ffbf36;
|
710 |
}
|
|
|
711 |
.ha-review-desc {
|
712 |
+
margin-top: 25px;
|
713 |
font-size: 16px;
|
714 |
line-height: 1.6;
|
715 |
}
|
716 |
.ha-review-desc p {
|
717 |
margin: 0;
|
718 |
}
|
|
|
719 |
.ha-review--top > .elementor-widget-container {
|
720 |
+
padding: 25px;
|
721 |
}
|
|
|
722 |
.ha-review--top .ha-review-figure {
|
723 |
display: inline-block;
|
|
|
724 |
height: 70px;
|
725 |
}
|
726 |
+
.ha-review--top .ha-review-body {
|
727 |
+
margin-top: var(--ha-review-media-offset-y);
|
728 |
+
}
|
729 |
+
.ha-review--left,
|
730 |
+
.ha-review--right {
|
731 |
+
--ha-review-media-width: 150px;
|
732 |
+
}
|
733 |
.ha-review--left > .elementor-widget-container,
|
734 |
.ha-review--right > .elementor-widget-container {
|
735 |
display: -webkit-box;
|
740 |
-webkit-align-items: center;
|
741 |
align-items: center;
|
742 |
-ms-flex-align: center;
|
|
|
|
|
|
|
|
|
|
|
|
|
743 |
}
|
|
|
744 |
.ha-review--left .ha-review-figure,
|
745 |
.ha-review--right .ha-review-figure {
|
|
|
|
|
|
|
|
|
|
|
746 |
height: 150px;
|
747 |
}
|
|
|
748 |
.ha-review--left .ha-review-body,
|
749 |
.ha-review--right .ha-review-body {
|
750 |
+
padding: 25px;
|
|
|
|
|
|
|
|
|
|
|
751 |
}
|
752 |
.ha-review--left .ha-review-body > :first-child,
|
753 |
.ha-review--right .ha-review-body > :first-child {
|
754 |
margin-top: 0;
|
755 |
}
|
756 |
+
.ha-review--left > .elementor-widget-container {
|
757 |
+
-webkit-box-orient: horizontal;
|
758 |
+
-webkit-box-direction: normal;
|
759 |
+
-webkit-flex-direction: row;
|
760 |
+
-ms-flex-direction: row;
|
761 |
+
flex-direction: row;
|
762 |
+
padding-left: 25px;
|
763 |
+
}
|
764 |
+
.ha-review--left .ha-review-body {
|
765 |
+
-webkit-box-flex: 0;
|
766 |
+
-webkit-flex: 0 0 var(--ha-review-left-body-width);
|
767 |
+
-ms-flex: 0 0 var(--ha-review-left-body-width);
|
768 |
+
flex: 0 0 var(--ha-review-left-body-width);
|
769 |
+
margin-left: var(--ha-review-media-offset-x);
|
770 |
+
max-width: var(--ha-review-left-body-width);
|
771 |
+
}
|
772 |
.ha-review--right > .elementor-widget-container {
|
773 |
-webkit-box-orient: horizontal;
|
774 |
-webkit-box-direction: reverse;
|
775 |
-webkit-flex-direction: row-reverse;
|
776 |
-ms-flex-direction: row-reverse;
|
777 |
flex-direction: row-reverse;
|
778 |
+
padding-right: 25px;
|
|
|
779 |
text-align: right;
|
780 |
}
|
781 |
+
.ha-review--right .ha-review-body {
|
782 |
+
-webkit-box-flex: 0;
|
783 |
+
-webkit-flex: 0 0 var(--ha-review-right-body-width);
|
784 |
+
-ms-flex: 0 0 var(--ha-review-right-body-width);
|
785 |
+
flex: 0 0 var(--ha-review-right-body-width);
|
786 |
+
margin-right: calc(-1 * var(--ha-review-media-offset-x));
|
787 |
+
max-width: var(--ha-review-right-body-width);
|
|
|
|
|
|
|
|
|
788 |
}
|
789 |
|
790 |
.ha-logo-grid-wrapper:after {
|
793 |
content: "";
|
794 |
}
|
795 |
|
796 |
+
.ha-image-compare > .elementor-widget-container {
|
797 |
+
border-radius: 5px;
|
798 |
+
background-color: #fff;
|
799 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
800 |
+
}
|
801 |
+
|
802 |
.ha-image-compare .twentytwenty-container,
|
803 |
.ha-image-compare .twentytwenty-wrapper {
|
804 |
border-radius: inherit;
|
805 |
}
|
806 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
807 |
.ha-logo-grid-wrapper:after {
|
808 |
display: block;
|
809 |
clear: both;
|
850 |
color: #fff;
|
851 |
}
|
852 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
853 |
.ha-logo-grid-wrapper:after {
|
854 |
display: block;
|
855 |
clear: both;
|
881 |
height: 100%;
|
882 |
}
|
883 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
884 |
.ha-logo-grid-wrapper:after {
|
885 |
display: block;
|
886 |
clear: both;
|
933 |
}
|
934 |
}
|
935 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
936 |
.ha-logo-grid-wrapper:after {
|
937 |
display: block;
|
938 |
clear: both;
|
1072 |
color: #fff;
|
1073 |
}
|
1074 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1075 |
.ha-logo-grid-wrapper:after {
|
1076 |
display: block;
|
1077 |
clear: both;
|
1157 |
text-overflow: ellipsis;
|
1158 |
}
|
1159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1160 |
.ha-logo-grid-wrapper:after {
|
1161 |
display: block;
|
1162 |
clear: both;
|
1172 |
text-decoration: none;
|
1173 |
}
|
1174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1175 |
.ha-logo-grid-wrapper:after {
|
1176 |
display: block;
|
1177 |
clear: both;
|
1631 |
}
|
1632 |
}
|
1633 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1634 |
.ha-logo-grid-wrapper:after {
|
1635 |
display: block;
|
1636 |
clear: both;
|
1966 |
}
|
1967 |
}
|
1968 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1969 |
.ha-logo-grid-wrapper:after {
|
1970 |
display: block;
|
1971 |
clear: both;
|
1973 |
}
|
1974 |
|
1975 |
.ha-testimonial--basic > .elementor-widget-container {
|
1976 |
+
padding: 25px;
|
1977 |
border: 1px solid #ececec;
|
1978 |
+
border-radius: 5px;
|
1979 |
}
|
1980 |
|
1981 |
.ha-testimonial--basic .ha-testimonial__content {
|
1982 |
+
margin-bottom: 25px;
|
1983 |
}
|
1984 |
|
1985 |
.ha-testimonial--bubble .ha-testimonial__content {
|
1986 |
position: relative;
|
1987 |
+
margin-bottom: 25px;
|
1988 |
+
padding: 25px;
|
1989 |
border-radius: 6px;
|
1990 |
+
background-color: #fff;
|
1991 |
+
box-shadow: 0 .2rem 2.8rem rgba(36, 36, 36, .1);
|
1992 |
+
line-height: 1.6;
|
1993 |
}
|
1994 |
.ha-testimonial--bubble .ha-testimonial__content:after {
|
1995 |
position: absolute;
|
2050 |
object-fit: cover;
|
2051 |
}
|
2052 |
.ha-testimonial__reviewer-name {
|
2053 |
+
margin-bottom: 10px;
|
2054 |
color: #562dd4;
|
2055 |
font-weight: bold;
|
2056 |
font-size: 18px;
|
2061 |
}
|
2062 |
|
2063 |
.ha-testimonial--left .ha-testimonial__reviewer-meta {
|
2064 |
+
padding-left: 25px;
|
2065 |
}
|
2066 |
|
2067 |
.ha-testimonial--center .ha-testimonial__reviewer {
|
2072 |
flex-direction: column;
|
2073 |
}
|
2074 |
.ha-testimonial--center .ha-testimonial__reviewer-meta {
|
2075 |
+
padding-top: 15px;
|
2076 |
max-width: 100%;
|
2077 |
}
|
2078 |
|
2093 |
flex-direction: row-reverse;
|
2094 |
}
|
2095 |
.ha-testimonial--right .ha-testimonial__reviewer-meta {
|
2096 |
+
padding-right: 25px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2097 |
}
|
2098 |
|
2099 |
.ha-logo-grid-wrapper:after {
|
2140 |
flex: 1;
|
2141 |
}
|
2142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2143 |
.ha-logo-grid-wrapper:after {
|
2144 |
display: block;
|
2145 |
clear: both;
|
2378 |
transition: transform .6s cubic-bezier(.2, .85, .4, 1.275), -webkit-transform .6s cubic-bezier(.2, .85, .4, 1.275);
|
2379 |
}
|
2380 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2381 |
.ha-logo-grid-wrapper:after {
|
2382 |
display: block;
|
2383 |
clear: both;
|
2386 |
|
2387 |
.ha-pricing-table > .elementor-widget-container {
|
2388 |
position: relative;
|
2389 |
+
overflow: hidden;
|
2390 |
padding: 3em 4em;
|
2391 |
+
border-radius: 5px;
|
2392 |
+
background-color: #fff;
|
2393 |
+
box-shadow: 0 3px 40px rgba(36, 36, 36, .1);
|
2394 |
}
|
2395 |
|
2396 |
.ha-pricing-table-badge {
|
2501 |
color: #fff;
|
2502 |
}
|
2503 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2504 |
.ha-logo-grid-wrapper:after {
|
2505 |
display: block;
|
2506 |
clear: both;
|
2507 |
content: "";
|
2508 |
}
|
2509 |
|
2510 |
+
.ha-step-flow {
|
2511 |
+
--ha-stepflow-direction-origin-x: calc(-1 * ((var(--ha-stepflow-icon-size, 46px) / 2)
|
2512 |
+
+ var(--ha-stepflow-icon-padding, 40px)
|
2513 |
+
+ var(--ha-stepflow-direction-offset-x, 20px)));
|
2514 |
+
}
|
2515 |
.ha-step-flow > .elementor-widget-container {
|
2516 |
+
padding: 25px;
|
2517 |
text-align: center;
|
2518 |
}
|
2519 |
|
2520 |
.ha-step-arrow {
|
2521 |
position: absolute;
|
2522 |
top: 49%;
|
2523 |
+
left: calc( 100% + 20px);
|
2524 |
display: inline-block;
|
2525 |
width: 100px;
|
2526 |
border-top: 1px solid #ddd;
|
2527 |
+
-webkit-transform: rotate(var(--ha-stepflow-direction-angle, 0));
|
2528 |
+
-ms-transform: rotate(var(--ha-stepflow-direction-angle, 0));
|
2529 |
+
transform: rotate(var(--ha-stepflow-direction-angle, 0));
|
2530 |
+
-webkit-transform-origin: var(--ha-stepflow-direction-origin-x) center;
|
2531 |
+
-ms-transform-origin: var(--ha-stepflow-direction-origin-x) center;
|
2532 |
+
transform-origin: var(--ha-stepflow-direction-origin-x) center;
|
2533 |
}
|
2534 |
.ha-step-arrow:after {
|
2535 |
position: absolute;
|
2554 |
padding: 40px;
|
2555 |
border-radius: 50%;
|
2556 |
background-color: #e9ecf0;
|
|
|
2557 |
color: #8056ee;
|
2558 |
text-align: center;
|
2559 |
font-size: 46px;
|
2577 |
top: 5px;
|
2578 |
right: 0;
|
2579 |
overflow: hidden;
|
2580 |
+
padding: 8px 10px;
|
2581 |
max-width: 200%;
|
2582 |
border: 3px solid #fff;
|
2583 |
border-radius: 20px;
|
3241 |
margin-right: 3px;
|
3242 |
}
|
3243 |
|
3244 |
+
.ha-post-list-excerpt p {
|
3245 |
+
margin-bottom: 0;
|
3246 |
+
color: #8c8c8c;
|
3247 |
+
}
|
3248 |
+
|
3249 |
.ha-post-tab .ha-post-tab-filter {
|
3250 |
padding: 0;
|
3251 |
border-bottom: 1px solid #ddd;
|
3653 |
-webkit-transition: all .5s ease 0s;
|
3654 |
transition: all .5s ease 0s;
|
3655 |
}
|
3656 |
+
|
3657 |
+
.ha-data-table .elementor-widget-container {
|
3658 |
+
overflow: hidden;
|
3659 |
+
}
|
3660 |
+
|
3661 |
+
.ha-data-table .ha-table {
|
3662 |
+
margin-bottom: 0;
|
3663 |
+
}
|
3664 |
+
|
3665 |
+
.ha-data-table .ha-table__head-column-cell {
|
3666 |
+
padding: 20px;
|
3667 |
+
border: 1px solid;
|
3668 |
+
border-color: #5636d1 #320ebd #5636d1 #5636d1;
|
3669 |
+
background-color: #5636d1;
|
3670 |
+
color: #fff;
|
3671 |
+
vertical-align: middle;
|
3672 |
+
text-align: center;
|
3673 |
+
}
|
3674 |
+
|
3675 |
+
.ha-data-table .ha-table__head-column-cell-wrap {
|
3676 |
+
display: -webkit-inline-box;
|
3677 |
+
display: -webkit-inline-flex;
|
3678 |
+
display: -ms-inline-flexbox;
|
3679 |
+
display: inline-flex;
|
3680 |
+
-webkit-box-align: center;
|
3681 |
+
-webkit-align-items: center;
|
3682 |
+
align-items: center;
|
3683 |
+
-ms-flex-align: center;
|
3684 |
+
-webkit-box-orient: horizontal;
|
3685 |
+
-webkit-box-direction: normal;
|
3686 |
+
-webkit-flex-direction: row;
|
3687 |
+
-ms-flex-direction: row;
|
3688 |
+
flex-direction: row;
|
3689 |
+
}
|
3690 |
+
|
3691 |
+
.ha-data-table .ha-table__head-column-cell-icon {
|
3692 |
+
padding-left: 10px;
|
3693 |
+
line-height: 1;
|
3694 |
+
}
|
3695 |
+
|
3696 |
+
.ha-data-table .ha-table__head-column-cell-icon img {
|
3697 |
+
width: 40px;
|
3698 |
+
}
|
3699 |
+
|
3700 |
+
.ha-data-table .ha-table__head-column-cell-icon svg {
|
3701 |
+
width: 40px;
|
3702 |
+
}
|
3703 |
+
|
3704 |
+
.ha-data-table .ha-table__body-row:nth-child(even) {
|
3705 |
+
background-color: #fff;
|
3706 |
+
}
|
3707 |
+
.ha-data-table .ha-table__body-row:nth-child(even):hover {
|
3708 |
+
background-color: rgba(86, 54, 209, .08);
|
3709 |
+
}
|
3710 |
+
|
3711 |
+
.ha-data-table .ha-table__body-row:nth-child(odd) {
|
3712 |
+
background-color: #fff;
|
3713 |
+
}
|
3714 |
+
.ha-data-table .ha-table__body-row:nth-child(odd):hover {
|
3715 |
+
background-color: rgba(232, 53, 124, .08);
|
3716 |
+
}
|
3717 |
+
|
3718 |
+
.ha-data-table .ha-table__body-row-cell {
|
3719 |
+
padding: 15px;
|
3720 |
+
border: 1px solid #ddd;
|
3721 |
+
background-color: transparent;
|
3722 |
+
vertical-align: middle;
|
3723 |
+
}
|
3724 |
+
|
3725 |
+
.ha-data-table .ha-table__body-row-cell-wrap {
|
3726 |
+
display: -webkit-inline-box;
|
3727 |
+
display: -webkit-inline-flex;
|
3728 |
+
display: -ms-inline-flexbox;
|
3729 |
+
display: inline-flex;
|
3730 |
+
-webkit-box-align: center;
|
3731 |
+
-webkit-align-items: center;
|
3732 |
+
align-items: center;
|
3733 |
+
-ms-flex-align: center;
|
3734 |
+
-webkit-box-orient: horizontal;
|
3735 |
+
-webkit-box-direction: normal;
|
3736 |
+
-webkit-flex-direction: row;
|
3737 |
+
-ms-flex-direction: row;
|
3738 |
+
flex-direction: row;
|
3739 |
+
}
|
3740 |
+
|
3741 |
+
.ha-data-table .ha-table__body-row-cell-icon {
|
3742 |
+
padding-left: 10px;
|
3743 |
+
line-height: 1;
|
3744 |
+
}
|
3745 |
+
|
3746 |
+
.ha-data-table .ha-table__body-row-cell-icon img {
|
3747 |
+
width: 40px;
|
3748 |
+
}
|
3749 |
+
|
3750 |
+
.ha-data-table .ha-table__body-row-cell-icon svg {
|
3751 |
+
width: 40px;
|
3752 |
+
}
|
3753 |
+
|
3754 |
+
.ha-data-table .ha-table__body .ha-table__head-column-cell {
|
3755 |
+
display: none;
|
3756 |
+
}
|
3757 |
+
|
3758 |
+
.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon,
|
3759 |
+
.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon {
|
3760 |
+
width: 100%;
|
3761 |
+
}
|
3762 |
+
|
3763 |
+
.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,
|
3764 |
+
.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon {
|
3765 |
+
width: auto;
|
3766 |
+
}
|
3767 |
+
|
3768 |
+
.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon,
|
3769 |
+
.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon {
|
3770 |
+
width: 100%;
|
3771 |
+
}
|
3772 |
+
|
3773 |
+
.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,
|
3774 |
+
.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon {
|
3775 |
+
width: auto;
|
3776 |
+
}
|
3777 |
+
|
3778 |
+
.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap {
|
3779 |
+
-webkit-box-orient: horizontal;
|
3780 |
+
-webkit-box-direction: reverse;
|
3781 |
+
-webkit-flex-direction: row-reverse;
|
3782 |
+
-ms-flex-direction: row-reverse;
|
3783 |
+
flex-direction: row-reverse;
|
3784 |
+
}
|
3785 |
+
|
3786 |
+
.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap {
|
3787 |
+
-webkit-box-orient: horizontal;
|
3788 |
+
-webkit-box-direction: normal;
|
3789 |
+
-webkit-flex-direction: row;
|
3790 |
+
-ms-flex-direction: row;
|
3791 |
+
flex-direction: row;
|
3792 |
+
}
|
3793 |
+
|
3794 |
+
.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap {
|
3795 |
+
-webkit-box-orient: vertical;
|
3796 |
+
-webkit-box-direction: reverse;
|
3797 |
+
-webkit-flex-direction: column-reverse;
|
3798 |
+
-ms-flex-direction: column-reverse;
|
3799 |
+
flex-direction: column-reverse;
|
3800 |
+
}
|
3801 |
+
|
3802 |
+
.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap {
|
3803 |
+
-webkit-box-orient: vertical;
|
3804 |
+
-webkit-box-direction: normal;
|
3805 |
+
-webkit-flex-direction: column;
|
3806 |
+
-ms-flex-direction: column;
|
3807 |
+
flex-direction: column;
|
3808 |
+
}
|
3809 |
+
|
3810 |
+
.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap {
|
3811 |
+
-webkit-box-orient: horizontal;
|
3812 |
+
-webkit-box-direction: reverse;
|
3813 |
+
-webkit-flex-direction: row-reverse;
|
3814 |
+
-ms-flex-direction: row-reverse;
|
3815 |
+
flex-direction: row-reverse;
|
3816 |
+
}
|
3817 |
+
|
3818 |
+
.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap {
|
3819 |
+
-webkit-box-orient: horizontal;
|
3820 |
+
-webkit-box-direction: normal;
|
3821 |
+
-webkit-flex-direction: row;
|
3822 |
+
-ms-flex-direction: row;
|
3823 |
+
flex-direction: row;
|
3824 |
+
}
|
3825 |
+
|
3826 |
+
.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap {
|
3827 |
+
-webkit-box-orient: vertical;
|
3828 |
+
-webkit-box-direction: reverse;
|
3829 |
+
-webkit-flex-direction: column-reverse;
|
3830 |
+
-ms-flex-direction: column-reverse;
|
3831 |
+
flex-direction: column-reverse;
|
3832 |
+
}
|
3833 |
+
|
3834 |
+
.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap {
|
3835 |
+
-webkit-box-orient: vertical;
|
3836 |
+
-webkit-box-direction: normal;
|
3837 |
+
-webkit-flex-direction: column;
|
3838 |
+
-ms-flex-direction: column;
|
3839 |
+
flex-direction: column;
|
3840 |
+
}
|
3841 |
+
|
3842 |
+
@media (max-width: 767px) {
|
3843 |
+
.ha-data-table .ha-table__head {
|
3844 |
+
display: none;
|
3845 |
+
}
|
3846 |
+
.ha-data-table .ha-table__body .ha-table__body-row {
|
3847 |
+
display: -webkit-box;
|
3848 |
+
display: -webkit-flex;
|
3849 |
+
display: -ms-flexbox;
|
3850 |
+
display: flex;
|
3851 |
+
-webkit-box-orient: vertical;
|
3852 |
+
-webkit-box-direction: normal;
|
3853 |
+
-webkit-flex-direction: column;
|
3854 |
+
-ms-flex-direction: column;
|
3855 |
+
flex-direction: column;
|
3856 |
+
}
|
3857 |
+
.ha-data-table .ha-table__body .ha-table__body-row-cell {
|
3858 |
+
display: -webkit-box;
|
3859 |
+
display: -webkit-flex;
|
3860 |
+
display: -ms-flexbox;
|
3861 |
+
display: flex;
|
3862 |
+
overflow: hidden;
|
3863 |
+
-webkit-box-pack: justify;
|
3864 |
+
-ms-flex-pack: justify;
|
3865 |
+
-webkit-justify-content: space-between;
|
3866 |
+
justify-content: space-between;
|
3867 |
+
margin-top: -1px;
|
3868 |
+
padding: 0 !important;
|
3869 |
+
}
|
3870 |
+
.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child {
|
3871 |
+
margin-top: auto;
|
3872 |
+
}
|
3873 |
+
.ha-data-table .ha-table__body .ha-table__head-column-cell {
|
3874 |
+
display: block;
|
3875 |
+
width: 100%;
|
3876 |
+
}
|
3877 |
+
.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap {
|
3878 |
+
display: -webkit-box;
|
3879 |
+
display: -webkit-flex;
|
3880 |
+
display: -ms-flexbox;
|
3881 |
+
display: flex;
|
3882 |
+
width: 100%;
|
3883 |
+
}
|
3884 |
+
.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap {
|
3885 |
+
-webkit-box-pack: end;
|
3886 |
+
-ms-flex-pack: end;
|
3887 |
+
-webkit-justify-content: flex-end;
|
3888 |
+
justify-content: flex-end;
|
3889 |
+
}
|
3890 |
+
.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap {
|
3891 |
+
-webkit-box-pack: center;
|
3892 |
+
-ms-flex-pack: center;
|
3893 |
+
-webkit-justify-content: center;
|
3894 |
+
justify-content: center;
|
3895 |
+
}
|
3896 |
+
.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap {
|
3897 |
+
-webkit-box-pack: start;
|
3898 |
+
-ms-flex-pack: start;
|
3899 |
+
-webkit-justify-content: flex-start;
|
3900 |
+
justify-content: flex-start;
|
3901 |
+
}
|
3902 |
+
.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap,
|
3903 |
+
.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap {
|
3904 |
+
-webkit-box-align: start;
|
3905 |
+
-webkit-align-items: flex-start;
|
3906 |
+
align-items: flex-start;
|
3907 |
+
-ms-flex-align: start;
|
3908 |
+
-webkit-box-pack: center;
|
3909 |
+
-ms-flex-pack: center;
|
3910 |
+
-webkit-justify-content: center;
|
3911 |
+
justify-content: center;
|
3912 |
+
}
|
3913 |
+
.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap,
|
3914 |
+
.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap {
|
3915 |
+
-webkit-box-align: center;
|
3916 |
+
-webkit-align-items: center;
|
3917 |
+
align-items: center;
|
3918 |
+
-ms-flex-align: center;
|
3919 |
+
-webkit-box-pack: center;
|
3920 |
+
-ms-flex-pack: center;
|
3921 |
+
-webkit-justify-content: center;
|
3922 |
+
justify-content: center;
|
3923 |
+
}
|
3924 |
+
.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap,
|
3925 |
+
.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap {
|
3926 |
+
-webkit-box-align: end;
|
3927 |
+
-webkit-align-items: flex-end;
|
3928 |
+
align-items: flex-end;
|
3929 |
+
-ms-flex-align: end;
|
3930 |
+
-webkit-box-pack: center;
|
3931 |
+
-ms-flex-pack: center;
|
3932 |
+
-webkit-justify-content: center;
|
3933 |
+
justify-content: center;
|
3934 |
+
}
|
3935 |
+
}
|
@@ -1 +1 @@
|
|
1 |
-
.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.happy-addon p:empty{display:none}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}.ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:.25rem;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg,.ha-member-links>a{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em}.ha-badge{padding:.475rem 1.1rem;max-width:100%;border-radius:50px;background-color:#fff;font-size:12px}.ha-badge--top-left{top:1rem;left:1rem}.ha-badge--top-center{top:1rem;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-badge--top-right{top:1rem;right:1rem}.ha-badge--middle-left{top:50%;left:1rem;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-badge--middle-center{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ha-badge--middle-right{top:50%;right:1rem;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-badge--bottom-left{bottom:1rem;left:1rem}.ha-badge--bottom-center{bottom:1rem;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-badge--bottom-right{right:1rem;bottom:1rem}.ha-card-figure{position:relative;height:250px}.ha-card-figure img{border-top-left-radius:calc(.5rem - 1px);border-top-right-radius:calc(.5rem - 1px)}.ha-card-body{padding:1.5rem}.ha-card-title{margin-top:0;margin-bottom:.75rem;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:2rem;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p,.ha-infobox-text p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block;width:100%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-card--left .ha-card-body,.ha-card--left .ha-card-figure,.ha-card--right .ha-card-body,.ha-card--right .ha-card-figure{-webkit-box-flex:0;-webkit-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:2.5rem}.ha-card--left .ha-card-figure img{border-radius:calc(.5rem - 1px) 0 0 calc(.5rem - 1px)}.ha-card--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-card--right .ha-card-figure img{border-radius:0 calc(.5rem - 1px) calc(.5rem - 1px) 0}.ha-card .ha-badge{position:absolute}.ha-infobox>.elementor-widget-container{padding:1.5rem}.ha-infobox-title{margin-top:0;margin-bottom:1rem;color:#151515;font-size:24px}.ha-infobox-figure{display:inline-block;margin:0 0 1.5rem!important}.ha-infobox-figure--icon{text-align:center;font-size:3rem;line-height:1}.ha-icon-box-icon i,.ha-icon-box-icon svg,.ha-infobox-figure i,.ha-infobox-figure svg{position:relative;display:block;width:1em;height:1em}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before,.ha-icon-box-icon i:before,.ha-infobox-figure i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-card-figure img,.ha-infobox-figure img,.ha-member-figure img{width:100%;height:100%;vertical-align:bottom}.ha-infobox-text+.ha-btn--link{margin-top:1rem}.ha-icon-box>.elementor-widget-container{position:relative;padding:1.25rem}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:1rem;color:#151515;text-align:center;font-size:3rem;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}.ha-member>.elementor-widget-container{padding:1.25rem}.ha-member-figure{display:inline-block;margin:0 0 1.5rem!important}.ha-member-name{margin-top:0;margin-bottom:.5rem;color:#151515;font-size:18px}.ha-member-position{margin-bottom:1.5rem;color:#7f7f7f;font-size:14px}.ha-member-bio{margin-bottom:1.5rem;font-size:14px;line-height:1.6}.ha-member-links>a{color:#9895ad;text-align:center;line-height:1;-webkit-transition:all .2s;transition:all .2s}.ha-member-links>a:focus,.ha-member-links>a:hover{color:#222}.ha-member-links>a>i{width:1em;height:1em}.ha-member-links>a:not(:last-child){margin-right:.3rem}.ha-member .ha-btn{margin-bottom:10px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p,.ha-member-links+.ha-btn{margin-top:10px;margin-bottom:0}.ha-review-header{margin-top:1.5rem}.ha-review-desc p,.ha-review-figure{margin:0}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom}.ha-review-reviewer{margin-top:0;margin-bottom:.3rem;color:#151515;font-size:18px}.ha-review-position{margin-bottom:.5rem;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:.25em .66em;border-radius:2.5em;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:1.5rem;font-size:16px;line-height:1.6}.ha-review--top>.elementor-widget-container{padding:2rem}.ha-review--top .ha-review-figure{display:inline-block;max-width:70px;height:70px}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;padding-left:2rem}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 150px;-ms-flex:0 0 150px;flex:0 0 150px;max-width:150px;height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 150px);-ms-flex:0 0 calc(100% - 150px);flex:0 0 calc(100% - 150px);padding:2rem;max-width:calc(100% - 150px)}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:2rem;padding-left:0;text-align:right}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper,a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-gallery-filter{margin:0 10px 2rem;padding:0;list-style:none}.ha-gallery-filter>li{display:inline-block;margin-bottom:10px;max-width:100%}.ha-gallery-filter>li:not(:last-child){margin-right:10px}.ha-gallery-filter>li>button{display:block;overflow:hidden;padding:10px 25px;max-width:100%;border:2px solid #562dd4;border-radius:.25rem;background-color:transparent;color:#562dd4;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-gallery-filter>li>button:focus,.ha-gallery-filter>li>button:hover{outline:0;background-color:#562dd4;color:#fff}.ha-gallery-filter>.ha-filter-active>button{background-color:#562dd4;color:#fff}.ha-image-grid-item{float:left}.ha-image-grid-inner{position:relative;display:block;overflow:hidden;margin:10px;text-decoration:none}.ha-image-grid-inner img{display:block;width:100%;-webkit-transition:all .25s;transition:all .25s}.ha-image-grid--layout-even .ha-image-grid-inner{height:250px}.ha-image-grid--layout-even .ha-image-grid-inner img{height:100%}.ha-justified-gallery-item,.ha-justified-gallery-item>img{border-radius:6px}.ha-justified-gallery .justified-gallery>.ha-justified-gallery-item>.caption{bottom:-100px!important;padding:10px;-webkit-transition:all .25s!important;transition:all .25s!important;-webkit-animation:haSmoothReveal .3s forwards;animation:haSmoothReveal .3s forwards}.ha-justified-gallery .justified-gallery>.ha-justified-gallery-item>.caption.caption-visible{bottom:0!important}.ha-justified-gallery .justified-gallery>.entry-visible>a>img,.ha-justified-gallery .justified-gallery>.entry-visible>img{-webkit-transition:all 300ms,opacity 500ms ease-in;transition:all 300ms,opacity 500ms ease-in}@-webkit-keyframes haSmoothReveal{0%{-webkit-transform:translateY(100px);transform:translateY(100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes haSmoothReveal{0%{-webkit-transform:translateY(100px);transform:translateY(100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;text-align:center;font-size:12px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{content:""}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:40px;height:40px;line-height:40px}.ha-slider .slick-next,.ha-slider .slick-prev{width:50px;height:50px;line-height:50px}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}.ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}.ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}.ha-logo-grid-item{float:left;overflow:hidden;height:180px;border-color:#e7e7e7}.ha-logo-grid-figure{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin:0;padding:30px;width:100%;height:100%}.ha-logo-grid-img{max-height:100%}@media (min-width:1025px){.ha-logo-grid--col-2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col-3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col-4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col-5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col-6 .ha-logo-grid-item{width:calc(100%/6)}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--col--tablet2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col--tablet3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col--tablet4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col--tablet5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col--tablet6 .ha-logo-grid-item{width:calc(100%/6)}}@media (max-width:767px){.ha-logo-grid--col--mobile2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col--mobile3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col--mobile4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col--mobile5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col--mobile6 .ha-logo-grid-item{width:calc(100%/6)}}.ha-logo-grid--tictactoe .ha-logo-grid-item{border-width:2px 2px 0 0;border-style:solid}@media (min-width:1025px){.ha-logo-grid--tictactoe.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}@media (max-width:767px){.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}.ha-logo-grid--border .ha-logo-grid-item{border-width:0 2px 2px 0;border-style:solid}.ha-logo-grid--border .ha-logo-grid-item:first-child{border-top-left-radius:10px}.ha-logo-grid--border .ha-logo-grid-item:last-child{border-bottom-right-radius:10px}@media (min-width:1025px){.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}@media (max-width:767px){.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}.ha-logo-grid--box .ha-logo-grid-wrapper{margin:-.5rem}.ha-logo-grid--box .ha-logo-grid-item{margin:.5rem;border-width:2px;border-style:solid;border-radius:.5rem}@media (min-width:1025px){.ha-logo-grid--box.ha-logo-grid--col-2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--box.ha-logo-grid--col--tablet2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}@media (max-width:767px){.ha-logo-grid--box.ha-logo-grid--col--mobile2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.2rem 3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container,.ha-news-ticker-wrapper ul.ha-news-ticker-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container,.ha-testimonial__reviewer{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}.ha-testimonial--basic>.elementor-widget-container{padding:2rem;border:1px solid #ececec;border-radius:.5rem}.ha-testimonial--basic .ha-testimonial__content{margin-bottom:2.5em}.ha-testimonial--bubble .ha-testimonial__content{position:relative;margin-bottom:1.5rem;padding:2rem;border-radius:6px;background-color:#fff;box-shadow:0 .2rem 2.8rem rgba(36,36,36,.1);line-height:1.6rem}.ha-testimonial--bubble .ha-testimonial__content:after{position:absolute;bottom:-14px;color:#fff;content:"\e911";font-style:normal;font-size:36px;font-family:"Happy Icons";-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.ha-testimonial--left.ha-testimonial--bubble .ha-testimonial__content:after{left:15px}.ha-testimonial--center.ha-testimonial--bubble .ha-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) rotate(-180deg);-ms-transform:translateX(-50%) rotate(-180deg);transform:translateX(-50%) rotate(-180deg)}.ha-testimonial--right.ha-testimonial--bubble .ha-testimonial__content:after{right:15px}.ha-testimonial__reviewer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-testimonial__reviewer-thumb{-webkit-box-flex:0;-webkit-flex:0 0 65px;-ms-flex:0 0 65px;flex:0 0 65px;max-width:65px;height:65px}.ha-testimonial__reviewer-thumb img{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}.ha-testimonial__reviewer-name{margin-bottom:.3rem;color:#562dd4;font-weight:700;font-size:18px}.ha-testimonial__reviewer-title{color:#8c8c8c;font-size:16px}.ha-testimonial--left .ha-testimonial__reviewer-meta{padding-left:1em}.ha-testimonial--center .ha-testimonial__reviewer{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-testimonial--center .ha-testimonial__reviewer-meta{padding-top:1em;max-width:100%}.ha-testimonial--left .ha-testimonial__reviewer-meta,.ha-testimonial--right .ha-testimonial__reviewer-meta{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 65px);-ms-flex:0 0 calc(100% - 65px);flex:0 0 calc(100% - 65px);max-width:calc(100% - 65px)}.ha-testimonial--right .ha-testimonial__reviewer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-testimonial--right .ha-testimonial__reviewer-meta{padding-right:1em}.ha-testimonial--left{text-align:left}.ha-testimonial--right{text-align:right}.ha-number-body,.ha-testimonial--center{text-align:center}.ha-number-body{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;padding:6px;width:50px;height:50px;border-radius:100%;background-color:#562dd4;color:#fff;font-size:20px}.ha-number-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ha-number-text{position:relative;z-index:1;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative;color:#fff}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}.ha-logo-grid-wrapper:after{display:block;clear:both;content:""}.ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list i,.ha-pricing-table-features-list svg{margin-right:.5rem;min-width:15px;font-size:.8em}.ha-pricing-table-features-list svg,span.ha-post-list-icon svg{width:auto;height:1em}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}.ha-card>.elementor-widget-container,.ha-icon-box>.elementor-widget-container,.ha-image-compare>.elementor-widget-container,.ha-infobox>.elementor-widget-container,.ha-member>.elementor-widget-container,.ha-pricing-table>.elementor-widget-container,.ha-review>.elementor-widget-container{border-radius:.5rem;background-color:#fff;box-shadow:0 .2rem 2.8rem rgba(36,36,36,.1)}.ha-step-flow>.elementor-widget-container{padding:30px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;box-shadow:0 2px 6px -2px #989898;color:#8056ee;text-align:center;font-size:46px}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg,.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em}.ha-fun-factor__media--icon i:before,.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:12px 8px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-news-ticker-wrapper li.ha-news-ticker-item a,.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}.ha-news-ticker-wrapper{position:relative;overflow:hidden;padding:20px 0;border:1px solid #d2d2d2;border-radius:5px}.ha-news-ticker-wrapper ul.ha-news-ticker-container{margin:0;padding:0;list-style:none}.ha-news-ticker-wrapper ul.ha-news-ticker-container:focus,.ha-news-ticker-wrapper ul.ha-news-ticker-container:hover{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.ha-news-ticker-wrapper span.ha-news-ticker-sticky-title{position:absolute;top:50%;left:auto;z-index:1;padding:20px;background:#333;color:#fff;font-size:1rem;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-news-ticker-wrapper li.ha-news-ticker-item{margin-right:20px;white-space:nowrap}.ha-news-ticker-wrapper li.ha-news-ticker-item:last-child,.ha-post-list-meta-wrap span:last-child{margin-right:0}.ha-news-ticker-wrapper .ha-news-ticker-title{margin:0;font-size:1rem;line-height:1}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}.ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}.ha-twitter-feed .ha-tweeter-feed-icon i{position:absolute;top:15px;right:15px;color:#1da1f2;font-size:22px}.ha-twitter-feed .ha-tweet-items{display:-ms-grid;display:grid;grid-gap:30px}.ha-twitter-feed .ha-tweet-item{position:relative;z-index:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-shadow:1px 1px 8px 1px rgba(0,0,0,.1)}.ha-twitter-feed .ha-tweet-content:before,.ha-twitter-feed .ha-tweet-item:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-twitter-feed .ha-tweet-inner-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:30px 10px}.ha-twitter-feed .ha-tweet-author,.ha-twitter-feed .ha-tweet-inner-wrapper,.ha-twitter-feed .ha-tweet-user{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-twitter-feed .ha-tweet-author{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-bottom:10px}.ha-twitter-feed .ha-tweet-avatar{width:45px;border-radius:50%}.ha-twitter-feed .ha-tweet-user{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-twitter-feed .ha-tweet-author-name,.ha-twitter-feed .ha-tweet-content p a:hover{color:#e2498a}.ha-twitter-feed .ha-tweet-author-name:hover,.ha-twitter-feed .ha-tweet-content p a{color:#562dd4}.ha-twitter-feed .ha-tweet-username{color:#a7a7a7}.ha-twitter-feed .ha-tweet-username:hover{color:#818181}.ha-twitter-feed .ha-tweet-content{position:relative;color:#222}.ha-twitter-feed .ha-tweet-content p{margin-bottom:5px}.ha-twitter-feed .ha-tweet-footer{position:absolute;bottom:15px;left:0;padding:0 15px;width:100%;text-align:right}.ha-twitter-feed .ha-tweet-date{color:#a7a7a7}.ha-twitter-feed .ha-tweet-meta{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around;padding:15px}.ha-twitter-feed .ha-tweet-favorite,.ha-twitter-feed .ha-tweet-retweet{display:inline-block;color:#a7a7a7}.ha-twitter-feed .ha-tweet-favorite{margin-right:12px}.ha-twitter-feed .ha-twitter-load-more-wrapper{margin-top:30px;text-align:center}.ha-twitter-feed .ha-twitter-load-more{display:inline-block;padding:10px 25px;outline:none;border:none;border-radius:50px;background-color:#302a8c;color:#fff;text-align:center;font-weight:400;font-size:16px;-webkit-transition:all .3s;transition:all .3s}.ha-twitter-feed .ha-twitter-load-more:hover{background-color:#e2498a}.ha-twitter-feed .ha-tweet-error-message{padding:20px;border-left:4px solid #ff7726;background-color:#fff9f5}.ha-post-list-item a img,.ha-twitter-feed.ha-twitter-left .ha-tweet-avatar{margin-right:15px}.ha-twitter-feed.ha-twitter-left .ha-tweet-content{text-align:left}.ha-twitter-feed.ha-twitter-center .ha-tweet-author{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-twitter-feed.ha-twitter-center .ha-tweet-content{text-align:center}.ha-twitter-feed.ha-twitter-right .ha-tweeter-feed-icon i{right:auto;left:5px;-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-twitter-feed.ha-twitter-right .ha-tweet-author{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-twitter-feed.ha-twitter-right .ha-tweet-content{text-align:right}.ha-twitter-feed.ha-twitter-user-bottom .ha-tweet-inner-wrapper{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-twitter-feed.ha-twitter-user-bottom .ha-tweet-author{margin-top:10px;margin-bottom:0}.ha-twitter-feed.ha-tweet-glassy-yes .ha-tweet-content:before{background-color:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ha-post-list{margin:0;padding:0;list-style:none}.ha-post-list .ha-post-list-item,.ha-post-list.ha-post-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list.ha-post-list-inline{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-list .ha-post-list-item{margin:0 0 10px;padding:0}.ha-post-list.ha-post-list-inline .ha-post-list-item{margin-right:21px}.ha-post-list .ha-post-list-item:last-child,.ha-post-list.ha-post-list-inline .ha-post-list-item:last-child{margin-right:0;margin-bottom:0}.ha-post-list .ha-post-list-item a{width:100%}.ha-post-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-post-list .ha-post-list-item a:hover .ha-post-list-title,.ha-taxonomy-list .ha-taxonomy-list-item a:hover .ha-taxonomy-list-title{color:#e04d8b}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}.ha-post-list .ha-post-list-item a,.ha-post-list-meta-wrap,.ha-post-tab span.ha-post-tab-loading{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list-meta-wrap{margin-top:3px}.ha-post-list-meta-wrap span{margin-right:10px;color:#8c8c8c;font-size:13px}.ha-post-list-meta-wrap span i{margin-right:3px}.ha-post-tab .ha-post-tab-filter{padding:0;border-bottom:1px solid #ddd;list-style:none}.ha-post-tab .ha-post-tab-filter li{display:inline-block;margin:0 5px 0 0;padding:15px 25px;background:#fff;color:#333;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.ha-post-tab .ha-post-tab-filter li.active,.ha-post-tab .ha-post-tab-filter li:hover,.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li.active,.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li:hover{background:#6d39ef;color:#fff}.ha-post-tab .ha-post-tab-item-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:hidden;overflow:hidden;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0;opacity:0}.ha-post-tab span.ha-post-tab-loading{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;height:100%;text-align:center;font-size:60px;opacity:.5}.ha-post-tab .ha-post-tab-item-wrapper.active{visibility:visible;height:auto;opacity:1}.ha-post-tab .ha-post-tab-item{margin-bottom:30px;padding-right:15px;padding-left:15px}.ha-post-tab .ha-post-tab-item-inner{box-sizing:border-box;padding:20px;height:100%;border-radius:5px;background:#fff;box-shadow:0 1px 20px rgba(0,0,0,.09)}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-thumb{position:relative;display:block;overflow:hidden;margin-bottom:15px;padding-right:0;padding-left:0}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-thumb img{max-width:100%;height:auto}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-title{margin-top:0;margin-bottom:10px;font-size:16px}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-title a,.ha-post-tab .ha-post-tab-meta span a{color:#333;text-decoration:none;-webkit-transition:all .4s;transition:all .4s}.ha-post-tab .ha-post-tab-meta span a:hover,.ha-post-tab .ha-post-tab-title a:hover{color:#6d39ef}.ha-post-tab .ha-post-tab-meta{font-size:14px}.ha-post-tab .ha-post-tab-meta span{display:inline-block;margin-top:10px;margin-right:15px;color:#9b9b9b;-webkit-transition:all .4s;transition:all .4s}.ha-post-tab .ha-post-tab-meta span i{padding-right:5px}.ha-post-tab .ha-post-tab-meta span a{color:#9b9b9b}.ha-post-tab .ha-post-tab-excerpt p{margin:0}.ha-post-tab.ha-post-tab-left,.ha-post-tab.ha-post-tab-right{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;min-width:200px;border-right:1px solid #f1f1f1;border-bottom:none}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{text-align:left;display:block;margin:0;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{text-align:right}.ha-post-tab.ha-post-tab-left .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 200px);-ms-flex:0 0 calc(100% - 200px);flex:0 0 calc(100% - 200px);min-width:calc(100% - 200px);min-height:100%}.ha-post-tab.ha-post-tab-right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-post-tab.ha-post-tab-right .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;min-width:200px;border-bottom:none;border-left:1px solid #f1f1f1}.ha-post-tab.ha-post-tab-right .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 200px);-ms-flex:0 0 calc(100% - 200px);flex:0 0 calc(100% - 200px);min-width:calc(100% - 200px);min-height:100%}@media (max-width:767px){.ha-post-tab.ha-post-tab-right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;border-right:0;border-bottom:1px solid #f1f1f1;border-left:0}.ha-post-tab.ha-post-tab-left .ha-post-tab-content,.ha-post-tab.ha-post-tab-right .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;min-height:100%}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{display:inline-block}}.ha-taxonomy-list{margin:0;padding:0;list-style:none}.ha-taxonomy-list.ha-taxonomy-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-taxonomy-list .ha-taxonomy-list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 0 10px;padding:0}.ha-taxonomy-list.ha-taxonomy-list-inline .ha-taxonomy-list-item{margin-right:21px}.ha-taxonomy-list .ha-taxonomy-list-item:last-child,.ha-taxonomy-list.ha-taxonomy-list-inline .ha-taxonomy-list-item:last-child{margin-right:0;margin-bottom:0}.ha-taxonomy-list .ha-taxonomy-list-item a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;width:100%}.ha-taxonomy-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-taxonomy-list span.ha-taxonomy-list-icon{margin-right:8px;color:#242424;font-size:14px}.ha-taxonomy-list span.ha-taxonomy-list-icon svg{display:block;width:auto;height:1em}.ha-taxonomy-list span.ha-taxonomy-list-image{margin-right:15px;line-height:1}.ha-taxonomy-list span.ha-taxonomy-list-image img{width:50px}.ha-threesixty-rotation-inner{overflow:hidden;background:#0c5460}.ha-threesixty-rotation-inner img{cursor:move}.ha-img-magnifier-glass{position:absolute;width:200px;height:200px;border:3px solid #000;border-radius:50%;cursor:none}span.ha-threesixty-rotation-magnify{position:absolute;top:15px;right:15px;display:inline-block;font-size:22px;line-height:1}.ha-threesixty-rotation-autoplay{display:none}.ha-threesixty-rotation-autoplay-button button{display:inline-block;padding:.4rem 2rem;outline:none;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:24px;-webkit-transition:all .3s;transition:all .3s}.ha-threesixty-rotation-autoplay-button button:focus{outline:none}.ha-threesixty-rotation-autoplay-button button:hover{outline:none;background-color:#562dd4;color:#fff}.ha-threesixty-rotation-360img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;margin:auto;width:100px;height:100px;border-radius:50%;background-color:rgba(38,39,39,.5);background-position:50% 50%;background-size:contain;background-repeat:no-repeat;box-shadow:rgba(255,255,255,.5) 0 0 4px;color:#505050;text-align:center;line-height:100px;-webkit-transition:all .5s ease 0s;transition:all .5s ease 0s}
|
1 |
+
.elementor-widget{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.elementor-widget:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,0),var(--ha-tfx-translate-y-hover,0)) scale(var(--ha-tfx-scale-x-hover,1),var(--ha-tfx-scale-y-hover,1)) skew(var(--ha-tfx-skew-x-hover,0),var(--ha-tfx-skew-y-hover,0)) rotateX(var(--ha-tfx-rotate-x-hover,0)) rotateY(var(--ha-tfx-rotate-y-hover,0)) rotateZ(var(--ha-tfx-rotate-z-hover,0));transform:translate(var(--ha-tfx-translate-x-hover,0),var(--ha-tfx-translate-y-hover,0)) scale(var(--ha-tfx-scale-x-hover,1),var(--ha-tfx-scale-y-hover,1)) skew(var(--ha-tfx-skew-x-hover,0),var(--ha-tfx-skew-y-hover,0)) rotateX(var(--ha-tfx-rotate-x-hover,0)) rotateY(var(--ha-tfx-rotate-y-hover,0)) rotateZ(var(--ha-tfx-rotate-z-hover,0))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}.ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em}.ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}.ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img,.ha-infobox-figure img,.ha-member-figure img{width:100%;height:100%;vertical-align:bottom}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p,.ha-infobox-text p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure,.ha-member-links>a{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card--left,.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top{--ha-card-image-width:100%}.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left,.ha-card--tablet-right{--ha-card-image-width:50%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--tablet-top{--ha-card-image-width:100%}.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left,.ha-card--mobile-right{--ha-card-image-width:50%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}.ha-infobox{--ha-infobox-media-offset-x:0;--ha-infobox-media-offset-y:0;--ha-infobox-media-rotate:0}.ha-infobox>.elementor-widget-container{padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-infobox-title{margin-top:0;margin-bottom:10px;color:#151515;font-size:24px}.ha-infobox-figure{display:inline-block;margin:0 0 25px!important;-webkit-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y));-ms-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y));transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y))}.ha-infobox-figure--icon{text-align:center;font-size:48px;line-height:1;-webkit-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));-ms-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate))}.ha-infobox-figure i,.ha-infobox-figure svg{-webkit-transform:rotate(calc(-1*var(--ha-infobox-media-rotate)));-ms-transform:rotate(calc(-1*var(--ha-infobox-media-rotate)));transform:rotate(calc(-1*var(--ha-infobox-media-rotate)))}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i:before,.ha-icon-box-icon i:before,.ha-infobox-figure i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-infobox-body{margin-top:var(--ha-infobox-media-offset-y)}.ha-infobox-text+.ha-btn--link{margin-top:25px}.ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg,.ha-infobox-figure i,.ha-infobox-figure svg{position:relative;display:block;width:1em;height:1em}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}.ha-member>.elementor-widget-container{padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-member-figure{display:inline-block;margin:0 0 25px!important}.ha-member-name{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-member-position{margin-bottom:25px;color:#7f7f7f;font-size:14px}.ha-member-bio{margin-bottom:25px;font-size:14px;line-height:1.6}.ha-member-links>a{color:#9895ad;text-align:center;line-height:1;-webkit-transition:all .2s;transition:all .2s}.ha-member-links>a:focus,.ha-member-links>a:hover{color:#222}.ha-member-links>a>i{width:1em;height:1em}.ha-gallery-filter>li:not(:last-child),.ha-member-links>a:not(:last-child){margin-right:10px}.ha-member .ha-btn{margin-bottom:15px}.ha-member-body .ha-btn:last-child{margin-top:15px;margin-bottom:0}.ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}.ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper,a.ha-social-icon:after,a.ha-social-icon:before{border-radius:inherit}.ha-gallery-filter{margin:0 10px 2rem;padding:0;list-style:none}.ha-gallery-filter>li{display:inline-block;margin-bottom:10px;max-width:100%}.ha-gallery-filter>li>button{display:block;overflow:hidden;padding:10px 25px;max-width:100%;border:2px solid #562dd4;border-radius:.25rem;background-color:transparent;color:#562dd4;text-transform:uppercase;text-overflow:ellipsis;font-size:14px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ha-gallery-filter>li>button:focus,.ha-gallery-filter>li>button:hover{outline:0;background-color:#562dd4;color:#fff}.ha-gallery-filter>.ha-filter-active>button{background-color:#562dd4;color:#fff}.ha-image-grid-item{float:left}.ha-image-grid-inner{position:relative;display:block;overflow:hidden;margin:10px;text-decoration:none}.ha-image-grid-inner img{display:block;width:100%;-webkit-transition:all .25s;transition:all .25s}.ha-image-grid--layout-even .ha-image-grid-inner{height:250px}.ha-image-grid--layout-even .ha-image-grid-inner img{height:100%}.ha-justified-gallery-item,.ha-justified-gallery-item>img{border-radius:6px}.ha-justified-gallery .justified-gallery>.ha-justified-gallery-item>.caption{bottom:-100px!important;padding:10px;-webkit-transition:all .25s!important;transition:all .25s!important;-webkit-animation:haSmoothReveal .3s forwards;animation:haSmoothReveal .3s forwards}.ha-justified-gallery .justified-gallery>.ha-justified-gallery-item>.caption.caption-visible{bottom:0!important}.ha-justified-gallery .justified-gallery>.entry-visible>a>img,.ha-justified-gallery .justified-gallery>.entry-visible>img{-webkit-transition:all 300ms,opacity 500ms ease-in;transition:all 300ms,opacity 500ms ease-in}@-webkit-keyframes haSmoothReveal{0%{-webkit-transform:translateY(100px);transform:translateY(100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes haSmoothReveal{0%{-webkit-transform:translateY(100px);transform:translateY(100px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}.ha-carousel .slick-vertical .slick-slide,.ha-slider .slick-vertical .slick-slide{border:0}.ha-carousel .slick-next,.ha-carousel .slick-prev,.ha-slider .slick-next,.ha-slider .slick-prev{z-index:999;padding:0;border:1px solid rgba(255,255,255,.8);border-radius:50%;background-color:rgba(255,255,255,.8);color:#8c8c8c;text-align:center;font-size:12px;opacity:1}.ha-carousel .slick-next:focus,.ha-carousel .slick-next:hover,.ha-carousel .slick-prev:focus,.ha-carousel .slick-prev:hover,.ha-slider .slick-next:focus,.ha-slider .slick-next:hover,.ha-slider .slick-prev:focus,.ha-slider .slick-prev:hover{background-color:#fff;color:#8c8c8c}.ha-carousel .slick-next:before,.ha-carousel .slick-prev:before,.ha-slider .slick-next:before,.ha-slider .slick-prev:before{content:""}.ha-carousel .slick-disabled,.ha-slider .slick-disabled{opacity:.7}.ha-carousel .slick-prev,.ha-slider .slick-prev{left:25px}.ha-carousel .slick-next,.ha-slider .slick-next{right:25px}.ha-carousel .slick-dots,.ha-slider .slick-dots{bottom:-40px}.ha-carousel .slick-dots li,.ha-slider .slick-dots li{margin-right:2px;margin-left:2px}.ha-carousel .slick-dots li button:focus,.ha-carousel .slick-dots li button:hover,.ha-slider .slick-dots li button:focus,.ha-slider .slick-dots li button:hover{background-color:transparent}.ha-carousel .slick-dots li button:before,.ha-slider .slick-dots li button:before{color:#1b1b1b;opacity:1}.ha-carousel .slick-dots .slick-active button:before,.ha-carousel .slick-dots li button:hover:before,.ha-slider .slick-dots .slick-active button:before,.ha-slider .slick-dots li button:hover:before{-webkit-transform:scale(1.5);-ms-transform:scale(1.5);transform:scale(1.5)}.ha-carousel .slick-next,.ha-carousel .slick-prev{width:40px;height:40px;line-height:40px}.ha-slider .slick-next,.ha-slider .slick-prev{width:50px;height:50px;line-height:50px}.ha-carousel .slick-slider:not(.slick-vertical) .slick-slide{padding-right:5px;padding-left:5px}.ha-carousel .slick-slider.slick-vertical .slick-slide{padding-top:5px;padding-bottom:5px}.ha-slick-item{position:relative;display:inline-block;overflow:hidden;vertical-align:bottom}.ha-slick-content{position:absolute;bottom:0;padding:1.5rem;width:100%;background:-webkit-linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3));background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,.3))}.ha-slick-title{margin-top:0;margin-bottom:.2rem;color:#fff;font-size:20px}.ha-slick-subtitle{margin:0;color:#fff}.ha-skills>.elementor-widget-container{padding-top:1px}.ha-skill{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;border-radius:15px;background-color:#e9ecef;font-size:.75rem}.ha-skill--inside .ha-skill-info,.ha-skill--outside .ha-skill-info{text-align:left;font-size:14px;line-height:1}.ha-skill--inside .ha-skill-level-text,.ha-skill--outside .ha-skill-level-text{float:right}.ha-skill--outside{height:2px}.ha-skill--outside .ha-skill-level{position:relative}.ha-skill--outside .ha-skill-info{position:absolute;top:-25px;width:100%;color:#242424}.ha-skill--inside{height:30px}.ha-skill--inside .ha-skill-info{padding-right:1rem;padding-left:1rem;color:#fff}.ha-skill-level{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:10%;border-radius:inherit;background-color:#562dd4;color:#fff;text-align:center;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.ha-skill--outside{margin-top:40px}.ha-skill--inside:not(:first-child){margin-top:20px}.ha-skill-name{display:inline-block;overflow:hidden;max-width:70%;text-overflow:ellipsis}.ha-gradient-heading{margin-top:0;margin-bottom:0}.ha-gradient-heading>a{color:inherit;text-decoration:none}.ha-logo-grid-item{float:left;overflow:hidden;height:180px;border-color:#e7e7e7}.ha-logo-grid-figure{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;margin:0;padding:30px;width:100%;height:100%}.ha-logo-grid-img{max-height:100%}@media (min-width:1025px){.ha-logo-grid--col-2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col-3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col-4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col-5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col-6 .ha-logo-grid-item{width:calc(100%/6)}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--col--tablet2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col--tablet3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col--tablet4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col--tablet5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col--tablet6 .ha-logo-grid-item{width:calc(100%/6)}}@media (max-width:767px){.ha-logo-grid--col--mobile2 .ha-logo-grid-item{width:calc(100%/2)}.ha-logo-grid--col--mobile3 .ha-logo-grid-item{width:calc(100%/3)}.ha-logo-grid--col--mobile4 .ha-logo-grid-item{width:calc(100%/4)}.ha-logo-grid--col--mobile5 .ha-logo-grid-item{width:calc(100%/5)}.ha-logo-grid--col--mobile6 .ha-logo-grid-item{width:calc(100%/6)}}.ha-logo-grid--tictactoe .ha-logo-grid-item{border-width:2px 2px 0 0;border-style:solid}@media (min-width:1025px){.ha-logo-grid--tictactoe.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}@media (max-width:767px){.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6n){border-right-width:0!important}.ha-logo-grid--tictactoe.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:0!important}}.ha-logo-grid--border .ha-logo-grid-item{border-width:0 2px 2px 0;border-style:solid}.ha-logo-grid--border .ha-logo-grid-item:first-child{border-top-left-radius:10px}.ha-logo-grid--border .ha-logo-grid-item:last-child{border-bottom-right-radius:10px}@media (min-width:1025px){.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col-6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--tablet6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}@media (max-width:767px){.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(-n+2){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-child(2){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile2 .ha-logo-grid-item:nth-last-child(2){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(-n+3){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-child(3){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile3 .ha-logo-grid-item:nth-last-child(3){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(-n+4){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-child(4){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile4 .ha-logo-grid-item:nth-last-child(4){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(-n+5){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-child(5){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile5 .ha-logo-grid-item:nth-last-child(5){border-bottom-left-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(-n+6){border-top-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6n+1){border-left-width:2px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-child(6){border-top-right-radius:10px}.ha-logo-grid--border.ha-logo-grid--col--mobile6 .ha-logo-grid-item:nth-last-child(6){border-bottom-left-radius:10px}}.ha-logo-grid--box .ha-logo-grid-wrapper{margin:-.5rem}.ha-logo-grid--box .ha-logo-grid-item{margin:.5rem;border-width:2px;border-style:solid;border-radius:.5rem}@media (min-width:1025px){.ha-logo-grid--box.ha-logo-grid--col-2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col-6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}@media (max-width:1024px) and (min-width:768px){.ha-logo-grid--box.ha-logo-grid--col--tablet2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--tablet6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}@media (max-width:767px){.ha-logo-grid--box.ha-logo-grid--col--mobile2 .ha-logo-grid-item{width:calc((100%/2) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile3 .ha-logo-grid-item{width:calc((100%/3) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile4 .ha-logo-grid-item{width:calc((100%/4) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile5 .ha-logo-grid-item{width:calc((100%/5) - 1rem)}.ha-logo-grid--box.ha-logo-grid--col--mobile6 .ha-logo-grid-item{width:calc((100%/6) - 1rem)}}.ha-dual-btn,.ha-dual-btn-connector{display:inline-block}.ha-dual-btn-wrapper{position:relative;text-align:center;font-weight:400}.ha-dual-btn{padding:1.2rem 3rem;max-width:100%;color:#fff;text-decoration:none;font-size:14px}.ha-dual-btn--left{background-color:#562dd4}.ha-dual-btn--left:focus,.ha-dual-btn--left:hover{background-color:#4423ab;color:#fff}.ha-dual-btn--right{background-color:#e2498a}.ha-dual-btn--right:focus,.ha-dual-btn--right:hover{background-color:#d6226e;color:#fff}.ha-dual-btn-connector{position:absolute!important;z-index:9;overflow:hidden;width:30px;height:30px;border-radius:100%;background-color:#fff;box-shadow:0 0 0 5px rgba(255,255,255,.3);color:#27374c;text-transform:uppercase;font-size:12px;line-height:30px;-webkit-transform:translate(50%,-50%);-ms-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ha-dual-btn-icon>svg{width:1em;height:auto}.ha-dual-btn-icon>i{font-size:1em}.ha-dual-btn-icon--before{margin-right:5px}.ha-dual-btn-icon--after{margin-left:5px}.ha-dual-button>.elementor-widget-container,.ha-news-ticker-wrapper ul.ha-news-ticker-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-dual-button--mobile-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--mobile-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--mobile-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--mobile-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--mobile-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-center>.elementor-widget-container,.ha-testimonial__reviewer{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--mobile-layout-stack.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--mobile-layout-queue.ha-dual-button--mobile-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--mobile-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--mobile-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--mobile-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--mobile-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--mobile-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}@media (min-width:768px){.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--tablet-layout-stack.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--tablet-layout-queue.ha-dual-button--tablet-align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--tablet-layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--tablet-layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--tablet-layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--tablet-layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--tablet-layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--tablet-layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--tablet-layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--tablet-layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--tablet-layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--tablet-layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}@media (min-width:1025px){.ha-dual-button--layout-stack.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start}.ha-dual-button--layout-stack.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-dual-button--layout-stack.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end}.ha-dual-button--layout-queue.ha-dual-button--align-left>.elementor-widget-container{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-dual-button--layout-queue.ha-dual-button--align-center>.elementor-widget-container{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-dual-button--layout-queue.ha-dual-button--align-right>.elementor-widget-container{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-dual-button--layout-stack>.elementor-widget-container{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-dual-button--layout-stack .ha-dual-btn-wrapper{max-width:100%}.ha-dual-button--layout-stack .ha-dual-btn-connector{top:100%;right:50%}.ha-dual-button--layout-stack .ha-dual-btn--left{border-radius:30px 30px 0 0}.ha-dual-button--layout-stack .ha-dual-btn--right{border-radius:0 0 30px 30px}.ha-dual-button--layout-queue>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-dual-button--layout-queue .ha-dual-btn-wrapper{max-width:50%}.ha-dual-button--layout-queue .ha-dual-btn-connector{top:50%;right:0}.ha-dual-button--layout-queue .ha-dual-btn--left{border-radius:50px 0 0 50px}.ha-dual-button--layout-queue .ha-dual-btn--right{border-radius:0 50px 50px 0}}.ha-testimonial--basic>.elementor-widget-container{padding:25px;border:1px solid #ececec;border-radius:5px}.ha-testimonial--basic .ha-testimonial__content{margin-bottom:25px}.ha-testimonial--bubble .ha-testimonial__content{position:relative;margin-bottom:25px;padding:25px;border-radius:6px;background-color:#fff;box-shadow:0 .2rem 2.8rem rgba(36,36,36,.1);line-height:1.6}.ha-testimonial--bubble .ha-testimonial__content:after{position:absolute;bottom:-14px;color:#fff;content:"\e911";font-style:normal;font-size:36px;font-family:"Happy Icons";-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.ha-testimonial--left.ha-testimonial--bubble .ha-testimonial__content:after{left:15px}.ha-testimonial--center.ha-testimonial--bubble .ha-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) rotate(-180deg);-ms-transform:translateX(-50%) rotate(-180deg);transform:translateX(-50%) rotate(-180deg)}.ha-testimonial--right.ha-testimonial--bubble .ha-testimonial__content:after{right:15px}.ha-testimonial__reviewer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-testimonial__reviewer-thumb{-webkit-box-flex:0;-webkit-flex:0 0 65px;-ms-flex:0 0 65px;flex:0 0 65px;max-width:65px;height:65px}.ha-testimonial__reviewer-thumb img{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}.ha-testimonial__reviewer-name{margin-bottom:10px;color:#562dd4;font-weight:700;font-size:18px}.ha-testimonial__reviewer-title{color:#8c8c8c;font-size:16px}.ha-testimonial--left .ha-testimonial__reviewer-meta{padding-left:25px}.ha-testimonial--center .ha-testimonial__reviewer{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-testimonial--center .ha-testimonial__reviewer-meta{padding-top:15px;max-width:100%}.ha-testimonial--left .ha-testimonial__reviewer-meta,.ha-testimonial--right .ha-testimonial__reviewer-meta{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 65px);-ms-flex:0 0 calc(100% - 65px);flex:0 0 calc(100% - 65px);max-width:calc(100% - 65px)}.ha-testimonial--right .ha-testimonial__reviewer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-testimonial--right .ha-testimonial__reviewer-meta{padding-right:25px}.ha-number-body{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;padding:6px;width:50px;height:50px;border-radius:100%;background-color:#562dd4;color:#fff;text-align:center;font-size:20px}.ha-number-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ha-number-text{position:relative;z-index:1;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-flip-box-container:after{display:block;visibility:hidden;clear:both;height:0;content:" ";font-size:0}.ha-flip-box-container .ha-flip-box-inner{position:relative;z-index:1;margin:0;padding:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-back{z-index:1}.ha-flip-box-container .ha-flip-box-inner:hover .ha-flip-box-front{z-index:-1}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-inner-wrapper{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{top:0;right:0;left:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;height:250px;background-position:center;background-clip:padding-box;background-size:cover;background-repeat:no-repeat;text-align:center;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front{background-color:transparent;position:relative;bottom:0;z-index:10;padding:30px;border:1px solid #ddd;border-radius:.3rem}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back:before,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front:before{position:absolute;top:0;left:0;z-index:-9;width:100%;height:100%;background-color:transparent;content:""}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back{position:absolute;z-index:-1;padding:46px;border-radius:.3rem;background-color:#562dd4;color:#fff}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text{text-align:center}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-text p,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-text p{margin-top:10px;margin-bottom:0}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon.icon{padding:20px;border-radius:50%;background-color:#f1f4f8;color:#242424}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:28px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon svg{display:block;width:1em;height:1em}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon i{position:relative}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon img,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-icon img{width:60px;height:60px;vertical-align:middle}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner .ha-flip-box-heading{margin:0;font-weight:700;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-front-inner p{margin-bottom:0;font-size:16px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-box-heading-back{margin:0;color:#fff;font-size:18px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon{display:inline-block;margin-bottom:20px;text-align:center;font-size:20px}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i,.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon svg{display:block;width:1em;height:1em}.ha-flip-box-container .ha-flip-box-inner .ha-flip-box-back-inner .ha-flip-icon i{position:relative;color:#fff}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-back{-webkit-transform:rotateY(0);transform:rotateY(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right .ha-flip-box-back{-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-right:hover .ha-flip-box-front{-webkit-transform:rotateY(180deg);transform:rotateY(180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-front,.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-back{-webkit-transform:rotateX(0);transform:rotateX(0)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up .ha-flip-box-back{-webkit-transform:rotateX(-180deg);transform:rotateX(-180deg)}.ha-flip-box-container .ha-flip-box-inner.ha-flip-up:hover .ha-flip-box-front{-webkit-transform:rotateX(180deg);transform:rotateX(180deg)}.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-back,.ha-flip-box-container.ha-flip-effect-classic .ha-flip-box-front{-webkit-transition:-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275);transition:transform .6s cubic-bezier(.2,.85,.4,1.275),-webkit-transform .6s cubic-bezier(.2,.85,.4,1.275)}.ha-logo-grid-wrapper:after{display:block;clear:both;content:""}.ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list i,.ha-pricing-table-features-list svg{margin-right:.5rem;min-width:15px;font-size:.8em}.ha-pricing-table-features-list svg,span.ha-post-list-icon svg{width:auto;height:1em}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}.ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-fun-factor__media--icon i,.ha-fun-factor__media--icon svg,.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em}.ha-fun-factor__media--icon i:before,.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-news-ticker-wrapper li.ha-news-ticker-item a,.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}.ha-news-ticker-wrapper{position:relative;overflow:hidden;padding:20px 0;border:1px solid #d2d2d2;border-radius:5px}.ha-news-ticker-wrapper ul.ha-news-ticker-container{margin:0;padding:0;list-style:none}.ha-news-ticker-wrapper ul.ha-news-ticker-container:focus,.ha-news-ticker-wrapper ul.ha-news-ticker-container:hover{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.ha-news-ticker-wrapper span.ha-news-ticker-sticky-title{position:absolute;top:50%;left:auto;z-index:1;padding:20px;background:#333;color:#fff;font-size:1rem;line-height:1;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.ha-news-ticker-wrapper li.ha-news-ticker-item{margin-right:20px;white-space:nowrap}.ha-news-ticker-wrapper li.ha-news-ticker-item:last-child,.ha-post-list-meta-wrap span:last-child{margin-right:0}.ha-news-ticker-wrapper .ha-news-ticker-title{margin:0;font-size:1rem;line-height:1}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}.ha-fun-factor__content .ha-fun-factor__content-number,.ha-fun-factor__content .ha-fun-factor__content-text{margin-top:0;margin-bottom:15px;font-size:24px}.ha-ff-icon--left .ha-fun-factor__content{padding-left:20px}.ha-ff-icon--right .ha-fun-factor__content{padding-right:20px}.ha-fun-factor__divider{display:block;margin-bottom:15px;height:1px;background-color:#ccc}.ha-ff-icon--top .ha-fun-factor__media{display:inline-block;margin-top:10px;margin-bottom:10px}.ha-ff-icon--top .ha-fun-factor__media--image{width:200px}:not(.ha-ff-icon--top) .ha-fun-factor__media--image{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;max-width:200px}.ha-fun-factor__media--image img{width:100%;height:100%;vertical-align:bottom}.ha-fun-factor__media--icon{font-size:3rem}.ha-fun-factor__wrap{padding:10px;word-wrap:break-word;overflow-wrap:break-word}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;text-align:right}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto}.ha-ff-icon--top>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{display:block;margin-right:auto;margin-left:auto;width:100px}.ha-ff-icon--left>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider,.ha-ff-icon--right>.elementor-widget-container .ha-fun-factor__wrap .ha-fun-factor__divider{width:100%!important}.ha-fun-factor__divider-align-left{margin-left:0!important;text-align:left}.ha-fun-factor__divider-align-right{margin-right:0!important;text-align:right}.ha-fun-factor__divider-align-center{margin-right:auto!important;margin-left:auto!important;text-align:center}.ha-social-icons-wrapper,.ha-social-icons-wrapper a{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-social-icons-wrapper a{padding:15px;border-radius:4px;color:#fff;font-size:30px;-webkit-transition:all .3s;transition:all .3s}a.ha-social-icon:hover{position:relative;z-index:1;background:#e2498a}.ha-social-icons-wrapper a.elementor-social-icon-label{color:#d30c5c}.ha-social-icon:not(:last-child){margin-right:2px}.ha-social-icon i{position:relative;display:initial;width:1em;height:1em}.ha-social-icon-label{margin:0 0 0 10px;width:100%;height:100%;font-size:18px;line-height:1}.elementor-social-icon-label .ha-social-icon-label{margin-left:0}.elementor-element-edit-mode .ha-social-icon-sticky{z-index:9999}.ha-social-icons:not(.elementor-element-edit-mode) .ha-social-icon-sticky{position:fixed}.ha-social-icon-separator{margin-right:10px}.ha-separator--stroke .ha-social-icon-separator{width:1px;height:1em;background:#d30c5c}.ha-separator--custom .ha-social-icon-separator{color:#d30c5c;font-size:24px}.ha-social-icon-separator:last-child{display:none}.ha-twitter-feed .ha-tweeter-feed-icon i{position:absolute;top:15px;right:15px;color:#1da1f2;font-size:22px}.ha-twitter-feed .ha-tweet-items{display:-ms-grid;display:grid;grid-gap:30px}.ha-twitter-feed .ha-tweet-item{position:relative;z-index:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;box-shadow:1px 1px 8px 1px rgba(0,0,0,.1)}.ha-twitter-feed .ha-tweet-content:before,.ha-twitter-feed .ha-tweet-item:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-twitter-feed .ha-tweet-inner-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;padding:30px 10px}.ha-twitter-feed .ha-tweet-author,.ha-twitter-feed .ha-tweet-inner-wrapper,.ha-twitter-feed .ha-tweet-user{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-twitter-feed .ha-tweet-author{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;margin-bottom:10px}.ha-twitter-feed .ha-tweet-avatar{width:45px;border-radius:50%}.ha-twitter-feed .ha-tweet-user{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-twitter-feed .ha-tweet-author-name,.ha-twitter-feed .ha-tweet-content p a:hover{color:#e2498a}.ha-twitter-feed .ha-tweet-author-name:hover,.ha-twitter-feed .ha-tweet-content p a{color:#562dd4}.ha-twitter-feed .ha-tweet-username{color:#a7a7a7}.ha-twitter-feed .ha-tweet-username:hover{color:#818181}.ha-twitter-feed .ha-tweet-content{position:relative;color:#222}.ha-twitter-feed .ha-tweet-content p{margin-bottom:5px}.ha-twitter-feed .ha-tweet-footer{position:absolute;bottom:15px;left:0;padding:0 15px;width:100%;text-align:right}.ha-twitter-feed .ha-tweet-date{color:#a7a7a7}.ha-twitter-feed .ha-tweet-meta{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-ms-flex-pack:distribute;-webkit-justify-content:space-around;justify-content:space-around;padding:15px}.ha-twitter-feed .ha-tweet-favorite,.ha-twitter-feed .ha-tweet-retweet{display:inline-block;color:#a7a7a7}.ha-twitter-feed .ha-tweet-favorite{margin-right:12px}.ha-twitter-feed .ha-twitter-load-more-wrapper{margin-top:30px;text-align:center}.ha-twitter-feed .ha-twitter-load-more{display:inline-block;padding:10px 25px;outline:none;border:none;border-radius:50px;background-color:#302a8c;color:#fff;text-align:center;font-weight:400;font-size:16px;-webkit-transition:all .3s;transition:all .3s}.ha-twitter-feed .ha-twitter-load-more:hover{background-color:#e2498a}.ha-twitter-feed .ha-tweet-error-message{padding:20px;border-left:4px solid #ff7726;background-color:#fff9f5}.ha-post-list-item a img,.ha-twitter-feed.ha-twitter-left .ha-tweet-avatar{margin-right:15px}.ha-twitter-feed.ha-twitter-left .ha-tweet-content{text-align:left}.ha-twitter-feed.ha-twitter-center .ha-tweet-author{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-twitter-feed.ha-twitter-center .ha-tweet-content{text-align:center}.ha-twitter-feed.ha-twitter-right .ha-tweeter-feed-icon i{right:auto;left:5px;-webkit-transform:rotateY(-180deg);transform:rotateY(-180deg)}.ha-twitter-feed.ha-twitter-right .ha-tweet-author{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-twitter-feed.ha-twitter-right .ha-tweet-content{text-align:right}.ha-twitter-feed.ha-twitter-user-bottom .ha-tweet-inner-wrapper{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-twitter-feed.ha-twitter-user-bottom .ha-tweet-author{margin-top:10px;margin-bottom:0}.ha-twitter-feed.ha-tweet-glassy-yes .ha-tweet-content:before{background-color:rgba(255,255,255,.4);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ha-post-list{margin:0;padding:0;list-style:none}.ha-post-list .ha-post-list-item,.ha-post-list.ha-post-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list.ha-post-list-inline{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-list .ha-post-list-item{margin:0 0 10px;padding:0}.ha-post-list.ha-post-list-inline .ha-post-list-item{margin-right:21px}.ha-post-list .ha-post-list-item:last-child,.ha-post-list.ha-post-list-inline .ha-post-list-item:last-child{margin-right:0;margin-bottom:0}.ha-post-list .ha-post-list-item a{width:100%}.ha-post-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-post-list .ha-post-list-item a:hover .ha-post-list-title,.ha-taxonomy-list .ha-taxonomy-list-item a:hover .ha-taxonomy-list-title{color:#e04d8b}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}.ha-post-list .ha-post-list-item a,.ha-post-list-meta-wrap,.ha-post-tab span.ha-post-tab-loading{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list-meta-wrap{margin-top:3px}.ha-post-list-meta-wrap span{margin-right:10px;color:#8c8c8c;font-size:13px}.ha-post-list-meta-wrap span i{margin-right:3px}.ha-post-list-excerpt p{margin-bottom:0;color:#8c8c8c}.ha-post-tab .ha-post-tab-filter{padding:0;border-bottom:1px solid #ddd;list-style:none}.ha-post-tab .ha-post-tab-filter li{display:inline-block;margin:0 5px 0 0;padding:15px 25px;background:#fff;color:#333;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.ha-post-tab .ha-post-tab-filter li.active,.ha-post-tab .ha-post-tab-filter li:hover,.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li.active,.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li:hover{background:#6d39ef;color:#fff}.ha-post-tab .ha-post-tab-item-wrapper{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:hidden;overflow:hidden;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;height:0;opacity:0}.ha-post-tab span.ha-post-tab-loading{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;width:100%;height:100%;text-align:center;font-size:60px;opacity:.5}.ha-post-tab .ha-post-tab-item-wrapper.active{visibility:visible;height:auto;opacity:1}.ha-post-tab .ha-post-tab-item{margin-bottom:30px;padding-right:15px;padding-left:15px}.ha-post-tab .ha-post-tab-item-inner{box-sizing:border-box;padding:20px;height:100%;border-radius:5px;background:#fff;box-shadow:0 1px 20px rgba(0,0,0,.09)}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-thumb{position:relative;display:block;overflow:hidden;margin-bottom:15px;padding-right:0;padding-left:0}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-thumb img{max-width:100%;height:auto}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-title{margin-top:0;margin-bottom:10px;font-size:16px}.ha-post-tab .ha-post-tab-item-inner .ha-post-tab-title a,.ha-post-tab .ha-post-tab-meta span a{color:#333;text-decoration:none;-webkit-transition:all .4s;transition:all .4s}.ha-post-tab .ha-post-tab-meta span a:hover,.ha-post-tab .ha-post-tab-title a:hover{color:#6d39ef}.ha-post-tab .ha-post-tab-meta{font-size:14px}.ha-post-tab .ha-post-tab-meta span{display:inline-block;margin-top:10px;margin-right:15px;color:#9b9b9b;-webkit-transition:all .4s;transition:all .4s}.ha-post-tab .ha-post-tab-meta span i{padding-right:5px}.ha-post-tab .ha-post-tab-meta span a{color:#9b9b9b}.ha-post-tab .ha-post-tab-excerpt p{margin:0}.ha-post-tab.ha-post-tab-left,.ha-post-tab.ha-post-tab-right{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;min-width:200px;border-right:1px solid #f1f1f1;border-bottom:none}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{text-align:left;display:block;margin:0;text-decoration:none;-webkit-transition:all .3s;transition:all .3s}.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{text-align:right}.ha-post-tab.ha-post-tab-left .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 200px);-ms-flex:0 0 calc(100% - 200px);flex:0 0 calc(100% - 200px);min-width:calc(100% - 200px);min-height:100%}.ha-post-tab.ha-post-tab-right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-post-tab.ha-post-tab-right .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 200px;-ms-flex:0 0 200px;flex:0 0 200px;min-width:200px;border-bottom:none;border-left:1px solid #f1f1f1}.ha-post-tab.ha-post-tab-right .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 200px);-ms-flex:0 0 calc(100% - 200px);flex:0 0 calc(100% - 200px);min-width:calc(100% - 200px);min-height:100%}@media (max-width:767px){.ha-post-tab.ha-post-tab-right{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;border-right:0;border-bottom:1px solid #f1f1f1;border-left:0}.ha-post-tab.ha-post-tab-left .ha-post-tab-content,.ha-post-tab.ha-post-tab-right .ha-post-tab-content{-webkit-box-flex:0;-webkit-flex:0 0 100%;-ms-flex:0 0 100%;flex:0 0 100%;min-width:100%;min-height:100%}.ha-post-tab.ha-post-tab-left .ha-post-tab-filter li,.ha-post-tab.ha-post-tab-right .ha-post-tab-filter li{display:inline-block}}.ha-taxonomy-list{margin:0;padding:0;list-style:none}.ha-taxonomy-list.ha-taxonomy-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-taxonomy-list .ha-taxonomy-list-item{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:0 0 10px;padding:0}.ha-taxonomy-list.ha-taxonomy-list-inline .ha-taxonomy-list-item{margin-right:21px}.ha-taxonomy-list .ha-taxonomy-list-item:last-child,.ha-taxonomy-list.ha-taxonomy-list-inline .ha-taxonomy-list-item:last-child{margin-right:0;margin-bottom:0}.ha-taxonomy-list .ha-taxonomy-list-item a{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;width:100%}.ha-taxonomy-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-taxonomy-list span.ha-taxonomy-list-icon{margin-right:8px;color:#242424;font-size:14px}.ha-taxonomy-list span.ha-taxonomy-list-icon svg{display:block;width:auto;height:1em}.ha-taxonomy-list span.ha-taxonomy-list-image{margin-right:15px;line-height:1}.ha-taxonomy-list span.ha-taxonomy-list-image img{width:50px}.ha-threesixty-rotation-inner{overflow:hidden;background:#0c5460}.ha-threesixty-rotation-inner img{cursor:move}.ha-img-magnifier-glass{position:absolute;width:200px;height:200px;border:3px solid #000;border-radius:50%;cursor:none}span.ha-threesixty-rotation-magnify{position:absolute;top:15px;right:15px;display:inline-block;font-size:22px;line-height:1}.ha-threesixty-rotation-autoplay{display:none}.ha-threesixty-rotation-autoplay-button button{display:inline-block;padding:.4rem 2rem;outline:none;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:24px;-webkit-transition:all .3s;transition:all .3s}.ha-threesixty-rotation-autoplay-button button:focus{outline:none}.ha-threesixty-rotation-autoplay-button button:hover{outline:none;background-color:#562dd4;color:#fff}.ha-threesixty-rotation-360img{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;margin:auto;width:100px;height:100px;border-radius:50%;background-color:rgba(38,39,39,.5);background-position:50% 50%;background-size:contain;background-repeat:no-repeat;box-shadow:rgba(255,255,255,.5) 0 0 4px;color:#505050;text-align:center;line-height:100px;-webkit-transition:all .5s ease 0s;transition:all .5s ease 0s}.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-badge{padding
|
1 |
+
.ha-badge{padding:10px 18px;border-radius:50px;background-color:#fff;font-size:12px;line-height:1;-webkit-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));-ms-transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));transform:translate(var(--ha-badge-translate-x),var(--ha-badge-translate-y));--ha-badge-translate-x:0;--ha-badge-translate-y:0}.ha-badge--top-left{top:25px;left:25px}.ha-badge--top-center{top:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--top-right{top:25px;right:25px}.ha-badge--middle-center,.ha-badge--middle-left{top:50%;left:25px;--ha-badge-translate-x:-50%}.ha-badge--middle-center{left:50%;--ha-badge-translate-y:-50%}.ha-badge--middle-right{top:50%;right:25px;--ha-badge-translate-y:-50%}.ha-badge--bottom-left{bottom:25px;left:25px}.ha-badge--bottom-center{bottom:25px;left:50%;--ha-badge-translate-x:-50%}.ha-badge--bottom-right{right:25px;bottom:25px}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius
|
1 |
+
.ha-btn{display:inline-block;max-width:100%;vertical-align:middle;text-align:center;text-decoration:none;font-size:14px;line-height:1;-webkit-transition:all .3s;transition:all .3s}.ha-btn:not(.ha-btn--link){padding:15px 25px;border-radius:5px;background-color:#562dd4;color:#fff}.ha-btn:not(.ha-btn--link):focus,.ha-btn:not(.ha-btn--link):hover{background-color:#e2498a}.ha-btn.ha-btn--link{color:#562dd4}.ha-btn.ha-btn--link:focus,.ha-btn.ha-btn--link:hover{color:#e2498a}.ha-btn-icon+.ha-btn-text,.ha-btn-text+.ha-btn-icon{margin-left:5px}.ha-btn-icon--svg{display:inline-block}.ha-btn-icon--svg svg{width:auto;height:1em}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-card>.elementor-widget-container{border-radius
|
1 |
+
.ha-card{--ha-card-body-width-left:calc(100% - var(--ha-card-image-width) + (-1*var(--ha-card-image-offset-x)));--ha-card-body-width-right:calc(100% - var(--ha-card-image-width) + var(--ha-card-image-offset-x));--ha-card-image-offset-x:calc(1px - 1px);--ha-card-image-offset-y:calc(1px - 1px);--ha-card-image-width:100%}.ha-card>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-card-figure{position:relative;-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-image-width);-ms-flex:0 0 var(--ha-card-image-width);flex:0 0 var(--ha-card-image-width);max-width:var(--ha-card-image-width);height:250px;-webkit-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));-ms-transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y));transform:translate(var(--ha-card-image-offset-x),var(--ha-card-image-offset-y))}.ha-card-figure img{width:100%;height:100%;vertical-align:bottom}.ha-card-body{padding:25px}.ha-card-title{margin-top:0;margin-bottom:10px;color:#151515;font-weight:700;font-size:22px}.ha-card-text{margin-bottom:25px;color:#616161;font-size:16px;line-height:1.7}.ha-card-text>p{margin-top:0;margin-bottom:0}.ha-card--top .ha-card-figure{display:inline-block}.ha-card--top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--top .ha-card-body{margin-top:var(--ha-card-image-offset-y);max-width:initial;width:100%}.ha-card--left,.ha-card--right{--ha-card-image-width:50%}.ha-card--left>.elementor-widget-container,.ha-card--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--left .ha-card-body,.ha-card--right .ha-card-body{padding:35px}.ha-card--left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--right .ha-card-figure img{border-radius:0 5px 5px 0}@media (max-width:1024px){.ha-card--tablet-top{--ha-card-image-width:100%}.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--tablet-left,.ha-card--tablet-right{--ha-card-image-width:50%}.ha-card--tablet-left>.elementor-widget-container,.ha-card--tablet-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--tablet-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--tablet-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--tablet-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--tablet-right .ha-card-figure img{border-radius:0 5px 5px 0}}@media (max-width:767px){.ha-card--tablet-top{--ha-card-image-width:100%}.ha-card--tablet-top .ha-card-figure{display:inline-block}.ha-card--tablet-top .ha-card-figure img{border-radius:5px 5px 0 0}.ha-card--tablet-top .ha-card-body{margin-top:var(--ha-card-image-offset-y);padding:25px;max-width:initial;width:100%}.ha-card--mobile-left,.ha-card--mobile-right{--ha-card-image-width:50%}.ha-card--mobile-left>.elementor-widget-container,.ha-card--mobile-right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-card--mobile-left .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-left);-ms-flex:0 0 var(--ha-card-body-width-left);flex:0 0 var(--ha-card-body-width-left);margin-left:var(--ha-card-image-offset-x);max-width:var(--ha-card-body-width-left)}.ha-card--mobile-left .ha-card-figure img{border-radius:5px 0 0 5px}.ha-card--mobile-right .ha-card-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-card-body-width-right);-ms-flex:0 0 var(--ha-card-body-width-right);flex:0 0 var(--ha-card-body-width-right);margin-right:calc(-1*var(--ha-card-image-offset-x));max-width:var(--ha-card-body-width-right)}.ha-card--mobile-right .ha-card-figure img{border-radius:0 5px 5px 0}}.ha-card .ha-badge{position:absolute}
|
@@ -1 +1 @@
|
|
1 |
-
.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.happy-addon p:empty{display:none}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
1 |
+
.elementor-widget{-webkit-transition-duration:var(--ha-tfx-transition-duration,.2s);transition-duration:var(--ha-tfx-transition-duration,.2s);-webkit-transition-property:-webkit-transform;transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0));transform:translate(var(--ha-tfx-translate-x,0),var(--ha-tfx-translate-y,0)) scale(var(--ha-tfx-scale-x,1),var(--ha-tfx-scale-y,1)) skew(var(--ha-tfx-skew-x,0),var(--ha-tfx-skew-y,0)) rotateX(var(--ha-tfx-rotate-x,0)) rotateY(var(--ha-tfx-rotate-y,0)) rotateZ(var(--ha-tfx-rotate-z,0))}.elementor-widget:hover{-webkit-transform:translate(var(--ha-tfx-translate-x-hover,0),var(--ha-tfx-translate-y-hover,0)) scale(var(--ha-tfx-scale-x-hover,1),var(--ha-tfx-scale-y-hover,1)) skew(var(--ha-tfx-skew-x-hover,0),var(--ha-tfx-skew-y-hover,0)) rotateX(var(--ha-tfx-rotate-x-hover,0)) rotateY(var(--ha-tfx-rotate-y-hover,0)) rotateZ(var(--ha-tfx-rotate-z-hover,0));transform:translate(var(--ha-tfx-translate-x-hover,0),var(--ha-tfx-translate-y-hover,0)) scale(var(--ha-tfx-scale-x-hover,1),var(--ha-tfx-scale-y-hover,1)) skew(var(--ha-tfx-skew-x-hover,0),var(--ha-tfx-skew-y-hover,0)) rotateX(var(--ha-tfx-rotate-x-hover,0)) rotateY(var(--ha-tfx-rotate-y-hover,0)) rotateZ(var(--ha-tfx-rotate-z-hover,0))}.happy-addon>.elementor-widget-container{word-wrap:break-word;overflow-wrap:break-word;box-sizing:border-box}.happy-addon>.elementor-widget-container *{box-sizing:border-box}.happy-addon img{max-width:100%;height:auto;-o-object-fit:cover;object-fit:cover}.happy-addon p:empty{display:none}.happy-addon .elementor-inline-editing{min-height:auto!important}.ha-screen-reader-text{position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);margin:-1px;padding:0;width:1px;height:1px;border:0;word-wrap:normal!important;-webkit-clip-path:inset(50%);clip-path:inset(50%)}.ha-has-background-overlay>.elementor-widget-container{position:relative;z-index:1}.ha-has-background-overlay>.elementor-widget-container:before{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;content:""}.ha-popup--is-enabled .ha-js-popup,.ha-popup--is-enabled .ha-js-popup img{cursor:-webkit-zoom-in!important;cursor:zoom-in!important}.mfp-wrap .mfp-arrow,.mfp-wrap .mfp-close{background-color:transparent}.mfp-wrap .mfp-arrow:focus,.mfp-wrap .mfp-close:focus{outline-width:thin}
|
@@ -0,0 +1 @@
|
|
|
1 |
+
.ha-data-table .elementor-widget-container{overflow:hidden}.ha-data-table .ha-table{margin-bottom:0}.ha-data-table .ha-table__head-column-cell{padding:20px;border:1px solid;border-color:#5636d1 #320ebd #5636d1 #5636d1;background-color:#5636d1;color:#fff;vertical-align:middle;text-align:center}.ha-data-table .ha-table__head-column-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__head-column-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body-row-cell-icon img,.ha-data-table .ha-table__body-row-cell-icon svg,.ha-data-table .ha-table__head-column-cell-icon img,.ha-data-table .ha-table__head-column-cell-icon svg{width:40px}.ha-data-table .ha-table__body-row:nth-child(even),.ha-data-table .ha-table__body-row:nth-child(odd){background-color:#fff}.ha-data-table .ha-table__body-row:nth-child(even):hover{background-color:rgba(86,54,209,.08)}.ha-data-table .ha-table__body-row:nth-child(odd):hover{background-color:rgba(232,53,124,.08)}.ha-data-table .ha-table__body-row-cell{padding:15px;border:1px solid #ddd;background-color:transparent;vertical-align:middle}.ha-data-table .ha-table__body-row-cell-wrap{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table .ha-table__body-row-cell-icon{padding-left:10px;line-height:1}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:none}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-icon{width:100%}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-icon,.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-icon{width:auto}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-icon{width:100%}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-icon,.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-icon{width:auto}.ha-data-table.ha-column-icon-left .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-column-icon-right .ha-table__head-column-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-column-icon-top .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-column-icon-bottom .ha-table__head-column-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table.ha-row-icon-left .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-data-table.ha-row-icon-right .ha-table__body-row-cell-wrap{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.ha-data-table.ha-row-icon-top .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:reverse;-webkit-flex-direction:column-reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.ha-data-table.ha-row-icon-bottom .ha-table__body-row-cell-wrap{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}@media (max-width:767px){.ha-data-table .ha-table__head{display:none}.ha-data-table .ha-table__body .ha-table__body-row{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-data-table .ha-table__body .ha-table__body-row-cell{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;overflow:hidden;-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;margin-top:-1px;padding:0!important}.ha-data-table .ha-table__body .ha-table__body-row-cell:first-child{margin-top:auto}.ha-data-table .ha-table__body .ha-table__head-column-cell{display:block;width:100%}.ha-data-table .ha-table__body .ha-table__body-row-cell-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%}.ha-data-table.ha-row-icon-left.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.ha-data-table.ha-row-icon-left.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-left.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-pack:start;-ms-flex-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-left .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-left .ha-table__body-row-cell-wrap{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start;-ms-flex-align:start;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-center .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-center .ha-table__body-row-cell-wrap{-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}.ha-data-table.ha-row-icon-bottom.ha-row-alignment-right .ha-table__body-row-cell-wrap,.ha-data-table.ha-row-icon-top.ha-row-alignment-right .ha-table__body-row-cell-wrap{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end;-ms-flex-align:end;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center}}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-icon-box>.elementor-widget-container{border-radius
|
1 |
+
.ha-icon-box>.elementor-widget-container{position:relative;padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-icon-box-title{margin-top:0;margin-bottom:0;color:#151515;font-size:24px;-webkit-transition:color .3s;transition:color .3s}.ha-icon-box-icon{display:inline-block;margin-bottom:20px;color:#151515;text-align:center;font-size:48px;-webkit-transition:border .3s,background .3s,color .3s,-webkit-transform .3s;transition:transform .3s,border .3s,background .3s,color .3s;transition:transform .3s,border .3s,background .3s,color .3s,-webkit-transform .3s}.ha-icon-box-icon i,.ha-icon-box-icon svg{position:relative;display:block;width:1em;height:1em}.ha-icon-box-icon i{-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ha-icon-box-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-icon-box-link{display:block;color:transparent;text-decoration:none}.ha-icon-box .ha-badge{position:absolute;z-index:9999;background-color:#e2498a;color:#fff}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-image-compare>.elementor-widget-container{border-radius
|
1 |
+
.ha-image-compare>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-image-compare .twentytwenty-container,.ha-image-compare .twentytwenty-wrapper{border-radius:inherit}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-infobox>.elementor-widget-container{border-radius
|
1 |
+
.ha-infobox{--ha-infobox-media-offset-x:0;--ha-infobox-media-offset-y:0;--ha-infobox-media-rotate:0}.ha-infobox>.elementor-widget-container{padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-infobox-title{margin-top:0;margin-bottom:10px;color:#151515;font-size:24px}.ha-infobox-figure{display:inline-block;margin:0 0 25px!important;-webkit-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y));-ms-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y));transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y))}.ha-infobox-figure--icon{text-align:center;font-size:48px;line-height:1;-webkit-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));-ms-transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate));transform:translate(var(--ha-infobox-media-offset-x),var(--ha-infobox-media-offset-y)) rotate(var(--ha-infobox-media-rotate))}.ha-infobox-figure i,.ha-infobox-figure svg{position:relative;display:block;width:1em;height:1em;-webkit-transform:rotate(calc(-1*var(--ha-infobox-media-rotate)));-ms-transform:rotate(calc(-1*var(--ha-infobox-media-rotate)));transform:rotate(calc(-1*var(--ha-infobox-media-rotate)))}.ha-infobox-figure i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-infobox-figure img{width:100%;height:100%;vertical-align:bottom}.ha-infobox-body{margin-top:var(--ha-infobox-media-offset-y)}.ha-infobox-text p{margin-top:0;margin-bottom:0}.ha-infobox-text+.ha-btn--link{margin-top:25px}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-member>.elementor-widget-container{border-radius
|
1 |
+
.ha-member>.elementor-widget-container{padding:25px;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-member-figure{display:inline-block;margin:0 0 25px!important}.ha-member-figure img{width:100%;height:100%;vertical-align:bottom}.ha-member-name{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-member-position{margin-bottom:25px;color:#7f7f7f;font-size:14px}.ha-member-bio{margin-bottom:25px;font-size:14px;line-height:1.6}.ha-member-links>a{display:inline-block;color:#9895ad;text-align:center;line-height:1;-webkit-transition:all .2s;transition:all .2s}.ha-member-links>a:focus,.ha-member-links>a:hover{color:#222}.ha-member-links>a>i{width:1em;height:1em}.ha-member-links>a:not(:last-child){margin-right:10px}.ha-member .ha-btn{margin-bottom:15px}.ha-member-body .ha-btn:last-child{margin-top:15px;margin-bottom:0}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-post-list{margin:0;padding:0;list-style:none}.ha-post-list .ha-post-list-item,.ha-post-list.ha-post-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list.ha-post-list-inline{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-list .ha-post-list-item{margin:0 0 10px;padding:0}.ha-post-list.ha-post-list-inline .ha-post-list-item{margin-right:21px}.ha-post-list .ha-post-list-item:last-child,.ha-post-list.ha-post-list-inline .ha-post-list-item:last-child{margin-right:0;margin-bottom:0}.ha-post-list .ha-post-list-item a,.ha-post-list-meta-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list .ha-post-list-item a{width:100%}.ha-post-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-post-list .ha-post-list-item a:hover .ha-post-list-title{color:#e04d8b}.ha-post-list-item a img{margin-right:15px}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em}.ha-post-list-meta-wrap{margin-top:3px}.ha-post-list-meta-wrap span{margin-right:10px;color:#8c8c8c;font-size:13px}.ha-post-list-meta-wrap span:last-child{margin-right:0}.ha-post-list-meta-wrap span i{margin-right:3px}
|
1 |
+
.ha-post-list{margin:0;padding:0;list-style:none}.ha-post-list .ha-post-list-item,.ha-post-list.ha-post-list-inline{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list.ha-post-list-inline{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.ha-post-list .ha-post-list-item{margin:0 0 10px;padding:0}.ha-post-list.ha-post-list-inline .ha-post-list-item{margin-right:21px}.ha-post-list .ha-post-list-item:last-child,.ha-post-list.ha-post-list-inline .ha-post-list-item:last-child{margin-right:0;margin-bottom:0}.ha-post-list .ha-post-list-item a,.ha-post-list-meta-wrap{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.ha-post-list .ha-post-list-item a{width:100%}.ha-post-list-title{display:block;margin-top:0;margin-bottom:0;color:#242424;font-size:1rem;-webkit-transition:all .4s;transition:all .4s}.ha-post-list .ha-post-list-item a:hover .ha-post-list-title{color:#e04d8b}.ha-post-list-item a img{margin-right:15px}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em}.ha-post-list-meta-wrap{margin-top:3px}.ha-post-list-meta-wrap span{margin-right:10px;color:#8c8c8c;font-size:13px}.ha-post-list-meta-wrap span:last-child{margin-right:0}.ha-post-list-meta-wrap span i{margin-right:3px}.ha-post-list-excerpt p{margin-bottom:0;color:#8c8c8c}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-pricing-table>.elementor-widget-container{border-radius
|
1 |
+
.ha-pricing-table>.elementor-widget-container{position:relative;overflow:hidden;padding:3em 4em;border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-pricing-table-badge{position:absolute;top:-1px;padding:.8rem 1rem;background-color:#e2498a;color:#fff;line-height:1}.ha-pricing-table-badge--left{left:0;-webkit-transform:rotate(-90deg) translateX(-100%);-ms-transform:rotate(-90deg) translateX(-100%);transform:rotate(-90deg) translateX(-100%);-webkit-transform-origin:left top;-ms-transform-origin:left top;transform-origin:left top}.ha-pricing-table-badge--right{right:0;-webkit-transform:rotate(-90deg) translateY(-100%);-ms-transform:rotate(-90deg) translateY(-100%);transform:rotate(-90deg) translateY(-100%);-webkit-transform-origin:right top;-ms-transform-origin:right top;transform-origin:right top}.ha-pricing-table-title{margin-top:0;margin-bottom:.5rem;color:#242424;font-weight:400;font-size:24px}.ha-pricing-table-price{margin-bottom:3rem}.ha-pricing-table-price-tag{margin-bottom:.5rem;color:#242424;font-weight:700;font-size:60px;line-height:normal}.ha-pricing-table-currency{font-size:24px}.ha-pricing-table-period{color:#8c8c8c;font-size:16px}.ha-pricing-table-body{margin-bottom:3rem}.ha-pricing-table-features-title{margin-top:0;margin-bottom:1rem;font-weight:700;font-size:16px}.ha-pricing-table-features-list{margin:0;padding:0;list-style:none}.ha-pricing-table-features-list li{margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list i,.ha-pricing-table-features-list svg{margin-right:.5rem;min-width:15px;font-size:.8em}.ha-pricing-table-features-list svg{width:auto;height:1em}.ha-pricing-table-feature-text{display:inline-block}.ha-pricing-table-btn{display:inline-block;padding:.8rem 2rem;border-radius:40px;background-color:#e2498a;color:#fff;text-decoration:none;text-transform:uppercase;font-size:12px;-webkit-transition:all .3s;transition:all .3s}.ha-pricing-table-btn:hover{background-color:#562dd4;color:#fff}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-review>.elementor-widget-container{border-radius
|
1 |
+
.ha-review{--ha-review-left-body-width:calc(100% - var(--ha-review-media-width) + (-1*var(--ha-review-media-offset-x)));--ha-review-media-offset-x:calc(1px - 1px);--ha-review-media-offset-y:calc(1px - 1px);--ha-review-right-body-width:calc(100% - var(--ha-review-media-width) + (var(--ha-review-media-offset-x)))}.ha-review>.elementor-widget-container{border-radius:5px;background-color:#fff;box-shadow:0 3px 40px rgba(36,36,36,.1)}.ha-review-header{margin-top:25px}.ha-review-figure{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-media-width,70px);-ms-flex:0 0 var(--ha-review-media-width,70px);flex:0 0 var(--ha-review-media-width,70px);margin:0;max-width:var(--ha-review-media-width,70px);-webkit-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));-ms-transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y));transform:translate(var(--ha-review-media-offset-x),var(--ha-review-media-offset-y))}.ha-review-figure img{width:100%;height:100%;border-radius:50%;vertical-align:bottom}.ha-review-reviewer{margin-top:0;margin-bottom:10px;color:#151515;font-size:18px}.ha-review-position{margin-bottom:10px;color:#7f7f7f;font-size:15px}.ha-review-ratting{display:inline-block;font-size:12px;line-height:1}.ha-review-ratting--num{padding:5px 10px;border-radius:20px;background-color:#562dd4;color:#fff}.ha-review-ratting--star{color:#ffbf36}.ha-review-desc{margin-top:25px;font-size:16px;line-height:1.6}.ha-review-desc p{margin:0}.ha-review--top>.elementor-widget-container{padding:25px}.ha-review--top .ha-review-figure{display:inline-block;height:70px}.ha-review--top .ha-review-body{margin-top:var(--ha-review-media-offset-y)}.ha-review--left,.ha-review--right{--ha-review-media-width:150px}.ha-review--left>.elementor-widget-container,.ha-review--right>.elementor-widget-container{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center}.ha-review--left .ha-review-figure,.ha-review--right .ha-review-figure{height:150px}.ha-review--left .ha-review-body,.ha-review--right .ha-review-body{padding:25px}.ha-review--left .ha-review-body>:first-child,.ha-review--right .ha-review-body>:first-child{margin-top:0}.ha-review--left>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding-left:25px}.ha-review--left .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-left-body-width);-ms-flex:0 0 var(--ha-review-left-body-width);flex:0 0 var(--ha-review-left-body-width);margin-left:var(--ha-review-media-offset-x);max-width:var(--ha-review-left-body-width)}.ha-review--right>.elementor-widget-container{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse;padding-right:25px;text-align:right}.ha-review--right .ha-review-body{-webkit-box-flex:0;-webkit-flex:0 0 var(--ha-review-right-body-width);-ms-flex:0 0 var(--ha-review-right-body-width);flex:0 0 var(--ha-review-right-body-width);margin-right:calc(-1*var(--ha-review-media-offset-x));max-width:var(--ha-review-right-body-width)}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-step-flow>.elementor-widget-container{padding:
|
1 |
+
.ha-step-flow{--ha-stepflow-direction-origin-x:calc(-1*((var(--ha-stepflow-icon-size,46px)/2) + var(--ha-stepflow-icon-padding,40px) + var(--ha-stepflow-direction-offset-x,20px)))}.ha-step-flow>.elementor-widget-container{padding:25px;text-align:center}.ha-step-arrow,.ha-step-arrow:after{position:absolute;display:inline-block;border-top:1px solid #ddd}.ha-step-arrow{left:calc(100% + 20px);-webkit-transform:rotate(var(--ha-stepflow-direction-angle,0));-ms-transform:rotate(var(--ha-stepflow-direction-angle,0));transform:rotate(var(--ha-stepflow-direction-angle,0));-webkit-transform-origin:var(--ha-stepflow-direction-origin-x) center;-ms-transform-origin:var(--ha-stepflow-direction-origin-x) center;transform-origin:var(--ha-stepflow-direction-origin-x) center;top:49%;width:100px}.ha-step-arrow:after{top:-2px;right:5px;width:12px;height:12px;border-right:1px solid #ddd;color:#ddd;content:"";-webkit-transform:rotate(45deg) translateY(-50%);-ms-transform:rotate(45deg) translateY(-50%);transform:rotate(45deg) translateY(-50%)}.ha-steps-icon{position:relative;display:inline-block;margin-bottom:2rem;padding:40px;border-radius:50%;background-color:#e9ecf0;color:#8056ee;text-align:center;font-size:46px}.ha-steps-icon i,.ha-steps-icon svg{position:relative;display:block;width:1em;height:1em}.ha-steps-icon i:before{position:absolute;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.ha-steps-icon .ha-steps-label{position:absolute;top:5px;right:0;overflow:hidden;padding:8px 10px;max-width:200%;border:3px solid #fff;border-radius:20px;background-color:#8056ee;color:#fff;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1}.ha-steps-title{margin-top:0;margin-bottom:30px;font-weight:700;font-size:16px}.ha-steps-title a{display:block;color:#562dd4}.ha-steps-title a:hover{color:#242424}.ha-step-description{margin:0;color:#616161;font-weight:400;font-size:16px;line-height:1.5}
|
@@ -1 +1 @@
|
|
1 |
-
.ha-testimonial--basic>.elementor-widget-container{padding:
|
1 |
+
.ha-testimonial--basic>.elementor-widget-container{padding:25px;border:1px solid #ececec;border-radius:5px}.ha-testimonial--basic .ha-testimonial__content{margin-bottom:25px}.ha-testimonial--bubble .ha-testimonial__content{position:relative;margin-bottom:25px;padding:25px;border-radius:6px;background-color:#fff;box-shadow:0 .2rem 2.8rem rgba(36,36,36,.1);line-height:1.6}.ha-testimonial--bubble .ha-testimonial__content:after{position:absolute;bottom:-14px;color:#fff;content:"\e911";font-style:normal;font-size:36px;font-family:"Happy Icons";-webkit-transform:rotate(-180deg);-ms-transform:rotate(-180deg);transform:rotate(-180deg)}.ha-testimonial--left.ha-testimonial--bubble .ha-testimonial__content:after{left:15px}.ha-testimonial--center.ha-testimonial--bubble .ha-testimonial__content:after{left:50%;-webkit-transform:translateX(-50%) rotate(-180deg);-ms-transform:translateX(-50%) rotate(-180deg);transform:translateX(-50%) rotate(-180deg)}.ha-testimonial--right.ha-testimonial--bubble .ha-testimonial__content:after{right:15px}.ha-testimonial__reviewer{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-ms-flex-align:center;-webkit-box-flex:1;-webkit-flex:1;-ms-flex:1;flex:1}.ha-testimonial__reviewer-thumb{-webkit-box-flex:0;-webkit-flex:0 0 65px;-ms-flex:0 0 65px;flex:0 0 65px;max-width:65px;height:65px}.ha-testimonial__reviewer-thumb img{width:100%;height:100%;border-radius:50%;-o-object-fit:cover;object-fit:cover}.ha-testimonial__reviewer-name{margin-bottom:10px;color:#562dd4;font-weight:700;font-size:18px}.ha-testimonial__reviewer-title{color:#8c8c8c;font-size:16px}.ha-testimonial--left .ha-testimonial__reviewer-meta{padding-left:25px}.ha-testimonial--center .ha-testimonial__reviewer{-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.ha-testimonial--center .ha-testimonial__reviewer-meta{padding-top:15px;max-width:100%}.ha-testimonial--left .ha-testimonial__reviewer-meta,.ha-testimonial--right .ha-testimonial__reviewer-meta{-webkit-box-flex:0;-webkit-flex:0 0 calc(100% - 65px);-ms-flex:0 0 calc(100% - 65px);flex:0 0 calc(100% - 65px);max-width:calc(100% - 65px)}.ha-testimonial--right .ha-testimonial__reviewer{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-webkit-flex-direction:row-reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.ha-testimonial--right .ha-testimonial__reviewer-meta{padding-right:25px}
|
@@ -563,7 +563,19 @@
|
|
563 |
|
564 |
}, 200));
|
565 |
}
|
566 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
567 |
|
568 |
//Threesixty Rotation
|
569 |
var Threesixty_Rotation = function($scope) {
|
@@ -662,7 +674,8 @@
|
|
662 |
'ha-fun-factor.default': FunFactor,
|
663 |
'ha-bar-chart.default': BarChart,
|
664 |
'ha-twitter-feed.default': TwitterFeed,
|
665 |
-
'ha-threesixty-rotation.default': Threesixty_Rotation
|
|
|
666 |
};
|
667 |
|
668 |
$.each( handlersFnMap, function( widgetName, handlerFn ) {
|
563 |
|
564 |
}, 200));
|
565 |
}
|
566 |
+
});
|
567 |
+
|
568 |
+
var DataTable = function($scope) {
|
569 |
+
var columnTH = $scope.find('.ha-table__head-column-cell');
|
570 |
+
var rowTR = $scope.find('.ha-table__body-row');
|
571 |
+
|
572 |
+
rowTR.each( function( i, tr) {
|
573 |
+
var th = $(tr).find('.ha-table__body-row-cell');
|
574 |
+
th.each( function( index, th ) {
|
575 |
+
$(th).prepend( '<div class="ha-table__head-column-cell">' + columnTH.eq(index).html() + '</div>' );
|
576 |
+
} );
|
577 |
+
} );
|
578 |
+
};
|
579 |
|
580 |
//Threesixty Rotation
|
581 |
var Threesixty_Rotation = function($scope) {
|
674 |
'ha-fun-factor.default': FunFactor,
|
675 |
'ha-bar-chart.default': BarChart,
|
676 |
'ha-twitter-feed.default': TwitterFeed,
|
677 |
+
'ha-threesixty-rotation.default': Threesixty_Rotation,
|
678 |
+
'ha-data-table.default': DataTable
|
679 |
};
|
680 |
|
681 |
$.each( handlersFnMap, function( widgetName, handlerFn ) {
|
@@ -1 +1 @@
|
|
1 |
-
"use strict";!function(t,e){function i(t,e,i){var n;return function(){var a=this,o=arguments,s=function(){n=null,i||t.apply(a,o)},r=i&&!n;clearTimeout(n),n=setTimeout(s,e),r&&t.apply(a,o)}}function n(e,i){var n=e.find(".hajs-gallery-filter");n.length&&n.on("click","button",function(e){e.stopPropagation();var n=t(this);n.parent().addClass("ha-filter-active").siblings().removeClass("ha-filter-active"),i(n.data("filter"))})}function a(e,i,n,a){if(t.fn.magnificPopup){if(!n)return void t.magnificPopup.close();e.on("click",i,function(t){t.stopPropagation()}),e.find(i).magnificPopup({key:a,type:"image",image:{titleSrc:function(t){return t.el.attr("title")?t.el.attr("title"):t.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(t){return t.is("img")?t:t.find("img")}}})}}var o=t(e);t.fn.getHappySettings=function(){return this.data("happy-settings")};var s=function(t){var e=t.find(".hajs-image-comparison"),i=e.getHappySettings();i[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[i.move_handle||"on_swipe"]]=!0,delete i.move_handle,e.imagesLoaded().done(function(){e.twentytwenty(i);var t=setTimeout(function(){o.trigger("resize.twentytwenty"),clearTimeout(t)},400)})},r=function(e){var i=e.find(".hajs-justified-gallery"),o=i.getHappySettings(),s=o.enable_popup;i.justifiedGallery(t.extend({},{rowHeight:150,lastRow:"justify",margins:10},o)),a(e,".ha-js-popup",s,"justifiedgallery"),n(e,function(t){i.justifiedGallery({lastRow:"*"===t?o.lastRow:"nojustify",filter:t}),a(e,"*"!==t?t:".ha-js-popup",s,"justifiedgallery")})};o.on("elementor/frontend/init",function(){var e=elementorFrontend,o=elementorModules,l=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.widgetContainer=this.$element.find(".elementor-widget-container")[0],this.initFloatingEffects(),this.initBackgroundOverlay()},initBackgroundOverlay:function(){this.isEdit&&this.$element.addClass("ha-has-background-overlay")},getDefaultSettings:function(){return{targets:this.widgetContainer,loop:!0,direction:"alternate",easing:"easeInOutSine"}},onElementChange:function(t){-1!==t.indexOf("ha_floating")&&this.runOnElementChange()},runOnElementChange:i(function(){this.animation&&this.animation.restart(),this.initFloatingEffects()},200),getConfig:function(t){return this.getElementSettings("ha_floating_fx_"+t)},initFloatingEffects:function(){var t=this.getDefaultSettings();this.getConfig("translate_toggle")&&((this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to"))&&(t.translateX={value:[this.getConfig("translate_x.sizes.from")||0,this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0}),(this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to"))&&(t.translateY={value:[this.getConfig("translate_y.sizes.from")||0,this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0})),this.getConfig("rotate_toggle")&&((this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to"))&&(t.rotateX={value:[this.getConfig("rotate_x.sizes.from")||0,this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to"))&&(t.rotateY={value:[this.getConfig("rotate_y.sizes.from")||0,this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to"))&&(t.rotateZ={value:[this.getConfig("rotate_z.sizes.from")||0,this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0})),this.getConfig("scale_toggle")&&((this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to"))&&(t.scaleX={value:[this.getConfig("scale_x.sizes.from")||0,this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0}),(this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to"))&&(t.scaleY={value:[this.getConfig("scale_y.sizes.from")||0,this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0})),(this.getConfig("translate_toggle")||this.getConfig("rotate_toggle")||this.getConfig("scale_toggle"))&&(this.widgetContainer.style.setProperty("will-change","transform"),this.animation=anime(t))}}),h=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-slick"),this.run()},isCarousel:function(){return this.$element.hasClass("ha-carousel")},getDefaultSettings:function(){return{arrows:!1,dots:!1,checkVisible:!1,infinite:!0,slidesToShow:this.isCarousel()?3:1,rows:0,prevArrow:'<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'}},onElementChange:function(){this.$container.slick("unslick"),this.run()},getReadySettings:function(){var i={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":i.arrows=!0;break;case"dots":i.dots=!0;break;case"both":i.arrows=!0,i.dots=!0}return this.isCarousel()&&(i.slidesToShow=this.getElementSettings("slides_to_show")||3,i.responsive=[{breakpoint:e.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}},{breakpoint:e.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}}]),t.extend({},this.getDefaultSettings(),i)},run:function(){this.$container.slick(this.getReadySettings())}}),f=function(t){e.waypoint(t,function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},g=function(i){e.waypoint(i,function(){i.find(".ha-skill-level").each(function(){var e=t(this),i=e.find(".ha-skill-level-text"),n=e.data("level");e.animate({width:n+"%"},500),i.numerator({toValue:n+"%",duration:1300,onStep:function(){i.append("%")}})})})},d=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-isotope"),this.run(),this.runFilter()},getLayoutMode:function(){var t=this.getElementSettings("layout");return"even"===t?"masonry":t},getDefaultSettings:function(){return{itemSelector:".ha-image-grid-item",percentPosition:!0,layoutMode:this.getLayoutMode()}},runFilter:function(){var t=this;n(this.$element,function(e){t.$container.isotope({filter:e});var i="*"!==e?e:".ha-js-popup";a(t.$element,i,t.getElementSettings("enable_popup"),"imagegrid")})},onElementChange:function(t){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(t)&&this.run()},run:function(){var t=this;this.$container.isotope(t.getDefaultSettings()),this.$container.imagesLoaded().progress(function(){t.$container.isotope("layout")}),a(this.$element,".ha-js-popup",this.getElementSettings("enable_popup"),"imagegrid")}}),u=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(t){"item_space"!==t&&"title_typography_font_size"!==t||this.run()},run:function(){var e=this.wrapper.innerHeight(),i=this.wrapper.innerWidth(),n=this.wrapper.find(".ha-news-ticker-container"),a=n.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),s="scroll"+o+e+i,r=this.wrapper.data("duration"),l="normal",h=10,f={transform:"translateX(0"+i+"px)"},g={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){h+=t(this).outerWidth(!0)}),n.css({width:h,display:"flex"}),t.keyframe.define([{name:s,"0%":f,"100%":g}]),n.playKeyframe({name:s,duration:r+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),c=function(t){e.waypoint(t,function(){var e=t.find(".ha-fun-factor__content-number");e.numerator(e.data("animation"))})},p=function(i){e.waypoint(i,function(){var e=t(this),i=e.find(".ha-bar-chart-container"),n=e.find("#ha-bar-chart"),a=i.data("settings");i.length&&new Chart(n,a)})},m=function(e){var i=e.find(".ha-twitter-load-more"),n=e.find(".ha-tweet-items");i.on("click",function(i){i.preventDefault();var a=t(this),o=a.data("settings"),s=a.data("total"),r=e.find(".ha-tweet-item").length;t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:r},success:function(e){s>r?t(e).appendTo(n):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(t){}})})},y=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var e=this.wrapper.find(".ha-post-tab-filter"),n=e.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");n.on(a,i(function(e){e.preventDefault();var i=t(this),a=i.data("term"),s=i.closest(".ha-post-tab"),r=s.find(".ha-post-tab-content"),l=r.find(".ha-post-tab-loading"),h=r.find(".ha-post-tab-item-wrapper"),f=!1;0===l.length&&(n.removeClass("active"),h.removeClass("active"),i.addClass("active"),h.each(function(){var e=t(this),i=e.data("term");a===i&&(e.addClass("active"),f=!0)}),!1===f&&t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){r.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(t){r.find(".ha-post-tab-loading").remove(),r.append(t)},error:function(t){}}))},200))}}),_=function(e){var i=e.find(".ha-threesixty-rotation-inner"),n=i.data("selector"),a=i.data("autoplay"),o=e.find(".ha-threesixty-rotation-magnify"),s=e.find(".ha-threesixty-rotation-360img"),r=o.data("zoom"),l=e.find(".ha-threesixty-rotation-play"),h=circlr(n,{play:!0});if("on"===a){var f=e.find(".ha-threesixty-rotation-autoplay");f.on("click",function(t){t.preventDefault(),h.play(),s.remove()}),setTimeout(function(){f.trigger("click"),f.remove()},1e3)}else l.on("click",function(e){e.preventDefault();var i=t(this),n=i.find("i");n.hasClass("hm-play-button")?(n.removeClass("hm-play-button"),n.addClass("hm-stop"),h.play()):(n.removeClass("hm-stop"),n.addClass("hm-play-button"),h.stop()),s.remove()});o.on("click",function(i){e.find("img").each(function(){-1!==t(this).attr("style").indexOf("block")&&(HappySimplaMagnify(t(this)[0],r),o.css("display","none"),s.remove())})}),t(document).on("click",function(n){var a=t(n.target),r=e.find(".ha-img-magnifier-glass"),l=o.find("i");r.length&&a[0]!==l[0]&&(r.remove(),o.removeAttr("style")),a[0]===i[0]&&s.remove()}),i.on("mouseup mousedown",function(t){s.remove()})};t("[data-ha-element-link]").each(function(){var e=t(this).data("ha-element-link");t(this).on("click.haElementOnClick",function(){e.is_external?window.open(e.url):location.href=e.url})});var v={"ha-image-compare.default":s,"ha-justified-gallery.default":r,"ha-number.default":f,"ha-skills.default":g,"ha-fun-factor.default":c,"ha-bar-chart.default":p,"ha-twitter-feed.default":m,"ha-threesixty-rotation.default":_};t.each(v,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,i)});var C={"ha-slider.default":h,"ha-carousel.default":h,"ha-image-grid.default":d,"ha-news-ticker.default":u,"ha-post-tab.default":y,widget:l};t.each(C,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,function(t){e.elementsHandler.addHandler(i,{$element:t})})})})}(jQuery,window);
|
1 |
+
"use strict";!function(t,e){function i(t,e,i){var n;return function(){var a=this,o=arguments,s=function(){n=null,i||t.apply(a,o)},r=i&&!n;clearTimeout(n),n=setTimeout(s,e),r&&t.apply(a,o)}}function n(e,i){var n=e.find(".hajs-gallery-filter");n.length&&n.on("click","button",function(e){e.stopPropagation();var n=t(this);n.parent().addClass("ha-filter-active").siblings().removeClass("ha-filter-active"),i(n.data("filter"))})}function a(e,i,n,a){if(t.fn.magnificPopup){if(!n)return void t.magnificPopup.close();e.on("click",i,function(t){t.stopPropagation()}),e.find(i).magnificPopup({key:a,type:"image",image:{titleSrc:function(t){return t.el.attr("title")?t.el.attr("title"):t.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(t){return t.is("img")?t:t.find("img")}}})}}var o=t(e);t.fn.getHappySettings=function(){return this.data("happy-settings")};var s=function(t){var e=t.find(".hajs-image-comparison"),i=e.getHappySettings();i[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[i.move_handle||"on_swipe"]]=!0,delete i.move_handle,e.imagesLoaded().done(function(){e.twentytwenty(i);var t=setTimeout(function(){o.trigger("resize.twentytwenty"),clearTimeout(t)},400)})},r=function(e){var i=e.find(".hajs-justified-gallery"),o=i.getHappySettings(),s=o.enable_popup;i.justifiedGallery(t.extend({},{rowHeight:150,lastRow:"justify",margins:10},o)),a(e,".ha-js-popup",s,"justifiedgallery"),n(e,function(t){i.justifiedGallery({lastRow:"*"===t?o.lastRow:"nojustify",filter:t}),a(e,"*"!==t?t:".ha-js-popup",s,"justifiedgallery")})};o.on("elementor/frontend/init",function(){var e=elementorFrontend,o=elementorModules,l=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.widgetContainer=this.$element.find(".elementor-widget-container")[0],this.initFloatingEffects(),this.initBackgroundOverlay()},initBackgroundOverlay:function(){this.isEdit&&this.$element.addClass("ha-has-background-overlay")},getDefaultSettings:function(){return{targets:this.widgetContainer,loop:!0,direction:"alternate",easing:"easeInOutSine"}},onElementChange:function(t){-1!==t.indexOf("ha_floating")&&this.runOnElementChange()},runOnElementChange:i(function(){this.animation&&this.animation.restart(),this.initFloatingEffects()},200),getConfig:function(t){return this.getElementSettings("ha_floating_fx_"+t)},initFloatingEffects:function(){var t=this.getDefaultSettings();this.getConfig("translate_toggle")&&((this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to"))&&(t.translateX={value:[this.getConfig("translate_x.sizes.from")||0,this.getConfig("translate_x.size")||this.getConfig("translate_x.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0}),(this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to"))&&(t.translateY={value:[this.getConfig("translate_y.sizes.from")||0,this.getConfig("translate_y.size")||this.getConfig("translate_y.sizes.to")],duration:this.getConfig("translate_duration.size"),delay:this.getConfig("translate_delay.size")||0})),this.getConfig("rotate_toggle")&&((this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to"))&&(t.rotateX={value:[this.getConfig("rotate_x.sizes.from")||0,this.getConfig("rotate_x.size")||this.getConfig("rotate_x.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to"))&&(t.rotateY={value:[this.getConfig("rotate_y.sizes.from")||0,this.getConfig("rotate_y.size")||this.getConfig("rotate_y.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0}),(this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to"))&&(t.rotateZ={value:[this.getConfig("rotate_z.sizes.from")||0,this.getConfig("rotate_z.size")||this.getConfig("rotate_z.sizes.to")],duration:this.getConfig("rotate_duration.size"),delay:this.getConfig("rotate_delay.size")||0})),this.getConfig("scale_toggle")&&((this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to"))&&(t.scaleX={value:[this.getConfig("scale_x.sizes.from")||0,this.getConfig("scale_x.size")||this.getConfig("scale_x.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0}),(this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to"))&&(t.scaleY={value:[this.getConfig("scale_y.sizes.from")||0,this.getConfig("scale_y.size")||this.getConfig("scale_y.sizes.to")],duration:this.getConfig("scale_duration.size"),delay:this.getConfig("scale_delay.size")||0})),(this.getConfig("translate_toggle")||this.getConfig("rotate_toggle")||this.getConfig("scale_toggle"))&&(this.widgetContainer.style.setProperty("will-change","transform"),this.animation=anime(t))}}),h=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-slick"),this.run()},isCarousel:function(){return this.$element.hasClass("ha-carousel")},getDefaultSettings:function(){return{arrows:!1,dots:!1,checkVisible:!1,infinite:!0,slidesToShow:this.isCarousel()?3:1,rows:0,prevArrow:'<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',nextArrow:'<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'}},onElementChange:function(){this.$container.slick("unslick"),this.run()},getReadySettings:function(){var i={infinite:!!this.getElementSettings("loop"),autoplay:!!this.getElementSettings("autoplay"),autoplaySpeed:this.getElementSettings("autoplay_speed"),speed:this.getElementSettings("animation_speed"),centerMode:!!this.getElementSettings("center"),vertical:!!this.getElementSettings("vertical"),slidesToScroll:1};switch(this.getElementSettings("navigation")){case"arrow":i.arrows=!0;break;case"dots":i.dots=!0;break;case"both":i.arrows=!0,i.dots=!0}return this.isCarousel()&&(i.slidesToShow=this.getElementSettings("slides_to_show")||3,i.responsive=[{breakpoint:e.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}},{breakpoint:e.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||i.slidesToShow}}]),t.extend({},this.getDefaultSettings(),i)},run:function(){this.$container.slick(this.getReadySettings())}}),f=function(t){e.waypoint(t,function(){var e=t.find(".ha-number-text");e.numerator(e.data("animation"))})},g=function(i){e.waypoint(i,function(){i.find(".ha-skill-level").each(function(){var e=t(this),i=e.find(".ha-skill-level-text"),n=e.data("level");e.animate({width:n+"%"},500),i.numerator({toValue:n+"%",duration:1300,onStep:function(){i.append("%")}})})})},d=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.$container=this.$element.find(".hajs-isotope"),this.run(),this.runFilter()},getLayoutMode:function(){var t=this.getElementSettings("layout");return"even"===t?"masonry":t},getDefaultSettings:function(){return{itemSelector:".ha-image-grid-item",percentPosition:!0,layoutMode:this.getLayoutMode()}},runFilter:function(){var t=this;n(this.$element,function(e){t.$container.isotope({filter:e});var i="*"!==e?e:".ha-js-popup";a(t.$element,i,t.getElementSettings("enable_popup"),"imagegrid")})},onElementChange:function(t){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(t)&&this.run()},run:function(){var t=this;this.$container.isotope(t.getDefaultSettings()),this.$container.imagesLoaded().progress(function(){t.$container.isotope("layout")}),a(this.$element,".ha-js-popup",this.getElementSettings("enable_popup"),"imagegrid")}}),c=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(t){"item_space"!==t&&"title_typography_font_size"!==t||this.run()},run:function(){var e=this.wrapper.innerHeight(),i=this.wrapper.innerWidth(),n=this.wrapper.find(".ha-news-ticker-container"),a=n.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),s="scroll"+o+e+i,r=this.wrapper.data("duration"),l="normal",h=10,f={transform:"translateX(0"+i+"px)"},g={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){h+=t(this).outerWidth(!0)}),n.css({width:h,display:"flex"}),t.keyframe.define([{name:s,"0%":f,"100%":g}]),n.playKeyframe({name:s,duration:r+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),u=function(t){e.waypoint(t,function(){var e=t.find(".ha-fun-factor__content-number");e.numerator(e.data("animation"))})},p=function(i){e.waypoint(i,function(){var e=t(this),i=e.find(".ha-bar-chart-container"),n=e.find("#ha-bar-chart"),a=i.data("settings");i.length&&new Chart(n,a)})},m=function(e){var i=e.find(".ha-twitter-load-more"),n=e.find(".ha-tweet-items");i.on("click",function(i){i.preventDefault();var a=t(this),o=a.data("settings"),s=a.data("total"),r=e.find(".ha-tweet-item").length;t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:r},success:function(e){s>r?t(e).appendTo(n):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(t){}})})},y=o.frontend.handlers.Base.extend({onInit:function(){o.frontend.handlers.Base.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var e=this.wrapper.find(".ha-post-tab-filter"),n=e.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");n.on(a,i(function(e){e.preventDefault();var i=t(this),a=i.data("term"),s=i.closest(".ha-post-tab"),r=s.find(".ha-post-tab-content"),l=r.find(".ha-post-tab-loading"),h=r.find(".ha-post-tab-item-wrapper"),f=!1;0===l.length&&(n.removeClass("active"),h.removeClass("active"),i.addClass("active"),h.each(function(){var e=t(this),i=e.data("term");a===i&&(e.addClass("active"),f=!0)}),!1===f&&t.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_post_tab_action",security:HappyLocalize.nonce,post_tab_query:o,term_id:a},beforeSend:function(){r.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(t){r.find(".ha-post-tab-loading").remove(),r.append(t)},error:function(t){}}))},200))}}),_=function(e){var i=e.find(".ha-table__head-column-cell");e.find(".ha-table__body-row").each(function(e,n){t(n).find(".ha-table__body-row-cell").each(function(e,n){t(n).prepend('<div class="ha-table__head-column-cell">'+i.eq(e).html()+"</div>")})})},v=function(e){var i=e.find(".ha-threesixty-rotation-inner"),n=i.data("selector"),a=i.data("autoplay"),o=e.find(".ha-threesixty-rotation-magnify"),s=e.find(".ha-threesixty-rotation-360img"),r=o.data("zoom"),l=e.find(".ha-threesixty-rotation-play"),h=circlr(n,{play:!0});if("on"===a){var f=e.find(".ha-threesixty-rotation-autoplay");f.on("click",function(t){t.preventDefault(),h.play(),s.remove()}),setTimeout(function(){f.trigger("click"),f.remove()},1e3)}else l.on("click",function(e){e.preventDefault();var i=t(this),n=i.find("i");n.hasClass("hm-play-button")?(n.removeClass("hm-play-button"),n.addClass("hm-stop"),h.play()):(n.removeClass("hm-stop"),n.addClass("hm-play-button"),h.stop()),s.remove()});o.on("click",function(i){e.find("img").each(function(){-1!==t(this).attr("style").indexOf("block")&&(HappySimplaMagnify(t(this)[0],r),o.css("display","none"),s.remove())})}),t(document).on("click",function(n){var a=t(n.target),r=e.find(".ha-img-magnifier-glass"),l=o.find("i");r.length&&a[0]!==l[0]&&(r.remove(),o.removeAttr("style")),a[0]===i[0]&&s.remove()}),i.on("mouseup mousedown",function(t){s.remove()})};t("[data-ha-element-link]").each(function(){var e=t(this).data("ha-element-link");t(this).on("click.haElementOnClick",function(){e.is_external?window.open(e.url):location.href=e.url})});var C={"ha-image-compare.default":s,"ha-justified-gallery.default":r,"ha-number.default":f,"ha-skills.default":g,"ha-fun-factor.default":u,"ha-bar-chart.default":p,"ha-twitter-feed.default":m,"ha-threesixty-rotation.default":v,"ha-data-table.default":_};t.each(C,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,i)});var w={"ha-slider.default":h,"ha-carousel.default":h,"ha-image-grid.default":d,"ha-news-ticker.default":c,"ha-post-tab.default":y,widget:l};t.each(w,function(t,i){e.hooks.addAction("frontend/element_ready/"+t,function(t){e.elementsHandler.addHandler(i,{$element:t})})})})}(jQuery,window);
|
@@ -8,7 +8,6 @@ namespace Happy_Addons\Elementor;
|
|
8 |
|
9 |
use Elementor\Controls_Manager;
|
10 |
use Elementor\Elements_Manager;
|
11 |
-
use Elementor\Core\Common\Modules\Finder\Categories_Manager;
|
12 |
|
13 |
defined( 'ABSPATH' ) || die();
|
14 |
|
@@ -41,32 +40,12 @@ class Base {
|
|
41 |
add_action( 'elementor/elements/categories_registered', [ $this, 'add_category' ] );
|
42 |
|
43 |
// Register custom controls
|
44 |
-
|
45 |
|
46 |
-
|
47 |
-
add_action( 'elementor/finder/categories/init', [ $this, 'register_finder' ] );
|
48 |
-
|
49 |
-
Widgets_Manager::init();
|
50 |
-
Assets_Manager::init();
|
51 |
-
Cache_Manager::init();
|
52 |
-
Icons_Manager::init();
|
53 |
-
Extensions_Manager::init();
|
54 |
-
Select2_Handler::init();
|
55 |
-
WPML_Manager::init();
|
56 |
|
57 |
$this->init_appsero_tracking();
|
58 |
|
59 |
-
if ( is_user_logged_in() ) {
|
60 |
-
Admin_Bar::init();
|
61 |
-
Library_Manager::init();
|
62 |
-
}
|
63 |
-
|
64 |
-
if ( is_admin() ) {
|
65 |
-
Updater::init();
|
66 |
-
Dashboard::init();
|
67 |
-
Attention_Seeker::init();
|
68 |
-
}
|
69 |
-
|
70 |
do_action( 'happyaddons_loaded' );
|
71 |
}
|
72 |
|
@@ -96,7 +75,7 @@ class Base {
|
|
96 |
}
|
97 |
|
98 |
public function include_files() {
|
99 |
-
|
100 |
|
101 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/icons-manager.php' );
|
102 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-manager.php' );
|
@@ -105,7 +84,7 @@ class Base {
|
|
105 |
|
106 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-cache.php' );
|
107 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/assets-cache.php' );
|
108 |
-
|
109 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/select2-handler.php' );
|
110 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/wpml-manager.php' );
|
111 |
|
@@ -116,12 +95,15 @@ class Base {
|
|
116 |
}
|
117 |
|
118 |
if ( is_user_logged_in() ) {
|
119 |
-
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/admin-bar.php' );
|
120 |
-
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/clone-handler.php' );
|
121 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/library-manager.php' );
|
122 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/library-source.php' );
|
123 |
}
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
125 |
|
126 |
/**
|
127 |
* Add custom category.
|
@@ -152,17 +134,4 @@ class Base {
|
|
152 |
$controls_Manager->add_group_control( $foreground::get_type(), new $foreground() );
|
153 |
ha_elementor()->controls_manager->register_control( $select2::TYPE, new $select2() );
|
154 |
}
|
155 |
-
|
156 |
-
/**
|
157 |
-
* Register finder category and category items
|
158 |
-
*
|
159 |
-
* @param $categories_manager
|
160 |
-
*/
|
161 |
-
public function register_finder( Categories_Manager $categories_manager ) {
|
162 |
-
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/finder.php' );
|
163 |
-
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/finder-edit.php' );
|
164 |
-
// Add the category
|
165 |
-
$categories_manager->add_category( Finder::SLUG, new Finder() );
|
166 |
-
$categories_manager->add_category( Finder_Edit::SLUG, new Finder_Edit() );
|
167 |
-
}
|
168 |
}
|
8 |
|
9 |
use Elementor\Controls_Manager;
|
10 |
use Elementor\Elements_Manager;
|
|
|
11 |
|
12 |
defined( 'ABSPATH' ) || die();
|
13 |
|
40 |
add_action( 'elementor/elements/categories_registered', [ $this, 'add_category' ] );
|
41 |
|
42 |
// Register custom controls
|
43 |
+
add_action( 'elementor/controls/controls_registered', [ $this, 'register_controls' ] );
|
44 |
|
45 |
+
add_action( 'init', [ $this, 'include_on_init' ] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
|
47 |
$this->init_appsero_tracking();
|
48 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
49 |
do_action( 'happyaddons_loaded' );
|
50 |
}
|
51 |
|
75 |
}
|
76 |
|
77 |
public function include_files() {
|
78 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'inc/functions-forms.php' );
|
79 |
|
80 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/icons-manager.php' );
|
81 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-manager.php' );
|
84 |
|
85 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-cache.php' );
|
86 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/assets-cache.php' );
|
87 |
+
|
88 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/select2-handler.php' );
|
89 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/wpml-manager.php' );
|
90 |
|
95 |
}
|
96 |
|
97 |
if ( is_user_logged_in() ) {
|
|
|
|
|
98 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/library-manager.php' );
|
99 |
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/library-source.php' );
|
100 |
}
|
101 |
+
}
|
102 |
+
|
103 |
+
public function include_on_init() {
|
104 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'inc/functions-extensions.php' );
|
105 |
+
include_once( HAPPY_ADDONS_DIR_PATH . 'classes/extensions-manager.php' );
|
106 |
+
}
|
107 |
|
108 |
/**
|
109 |
* Add custom category.
|
134 |
$controls_Manager->add_group_control( $foreground::get_type(), new $foreground() );
|
135 |
ha_elementor()->controls_manager->register_control( $select2::TYPE, new $select2() );
|
136 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
}
|
@@ -1,3 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 2.12.3 - 13 July 2020 =
|
2 |
|
3 |
- Tweak: Twitter feed widget icon updated
|
1 |
+
= 2.13.0 - 27 July 2020 =
|
2 |
+
|
3 |
+
- New: Data Table widget
|
4 |
+
- New: `happyaddons/extensions/grid_layer` hook to control Grid Layer
|
5 |
+
- New: `happyaddons/extensions/background_overlay` hook to control Background Overlay
|
6 |
+
- New: `happyaddons/extensions/wrapper_link` hook to control Wrapper Link
|
7 |
+
- New: `happyaddons/extensions/happy_clone` hook to control Happy Clone
|
8 |
+
- New: `happyaddons/extensions/adminbar_menu` hook to control Adminbar menu
|
9 |
+
- New: `happyaddons/extensions/floating_effects` hook to control Floating Effects
|
10 |
+
- New: `happyaddons/extensions/css_transform` hook to control CSS Transform
|
11 |
+
- New: `happyaddons/extensions/on_demand_cache` hook to control On Demand Assets Loading
|
12 |
+
- Tweak: Added CSS Transform hover state support
|
13 |
+
- Tweak: Added Stepflow direction arrow rotatation support
|
14 |
+
- Tweak: Added Card button full width support
|
15 |
+
- Tweak: Added Card responsive image positioning
|
16 |
+
- Tweak: Restored justify alignment in all widgets
|
17 |
+
- Tweak: Improved base styles in all widgets
|
18 |
+
- Tweak: Removed widget control panel link from editor panel
|
19 |
+
- Tweak: Removed HappyAddons shortcut link from finder
|
20 |
+
- Tweak: Removed unnecessary css
|
21 |
+
- Tweak: Post List content on/off option
|
22 |
+
- Tweak: Post List feature image left & top show option
|
23 |
+
- Fix: Post List date issue
|
24 |
+
- Fix: WPML link translation issue
|
25 |
+
|
26 |
= 2.12.3 - 13 July 2020 =
|
27 |
|
28 |
- Tweak: Twitter feed widget icon updated
|
@@ -5,100 +5,102 @@ defined( 'ABSPATH' ) || die();
|
|
5 |
|
6 |
class Admin_Bar {
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
}
|
70 |
|
71 |
$icon = '<i class="dashicons dashicons-update-alt"></i> ';
|
72 |
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
}
|
|
|
|
5 |
|
6 |
class Admin_Bar {
|
7 |
|
8 |
+
public static function init() {
|
9 |
+
add_action( 'admin_bar_menu', [__CLASS__, 'add_toolbar_items'], 500 );
|
10 |
+
add_action( 'wp_enqueue_scripts', [__CLASS__, 'enqueue_assets'] );
|
11 |
+
add_action( 'admin_enqueue_scripts', [__CLASS__, 'enqueue_assets'] );
|
12 |
+
add_action( 'wp_ajax_ha_clear_cache', [__CLASS__, 'clear_cache' ] );
|
13 |
+
}
|
14 |
+
|
15 |
+
public static function clear_cache() {
|
16 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
if ( ! check_ajax_referer( 'ha_clear_cache', 'nonce' ) ) {
|
21 |
+
wp_send_json_error();
|
22 |
+
}
|
23 |
+
|
24 |
+
$type = isset( $_POST['type'] ) ? $_POST['type'] : '';
|
25 |
+
$post_id = isset( $_POST['post_id'] ) ? $_POST['post_id'] : 0;
|
26 |
+
$assets_cache = new Assets_Cache( $post_id );
|
27 |
+
if ( $type === 'page' ) {
|
28 |
+
$assets_cache->delete();
|
29 |
+
} elseif ( $type === 'all' ) {
|
30 |
+
$assets_cache->delete_all();
|
31 |
+
}
|
32 |
+
wp_send_json_success();
|
33 |
+
}
|
34 |
+
|
35 |
+
public static function enqueue_assets() {
|
36 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
37 |
+
return;
|
38 |
+
}
|
39 |
+
|
40 |
+
wp_enqueue_style(
|
41 |
+
'happy-elementor-addons-admin',
|
42 |
+
HAPPY_ADDONS_ASSETS . 'admin/css/admin.min.css',
|
43 |
+
null,
|
44 |
+
HAPPY_ADDONS_VERSION
|
45 |
+
);
|
46 |
+
|
47 |
+
wp_enqueue_script(
|
48 |
+
'happy-elementor-addons-admin',
|
49 |
+
HAPPY_ADDONS_ASSETS . 'admin/js/admin.min.js',
|
50 |
+
['jquery'],
|
51 |
+
HAPPY_ADDONS_VERSION,
|
52 |
+
true
|
53 |
+
);
|
54 |
+
|
55 |
+
wp_localize_script(
|
56 |
+
'happy-elementor-addons-admin',
|
57 |
+
'HappyAdmin',
|
58 |
+
[
|
59 |
+
'nonce' => wp_create_nonce( 'ha_clear_cache' ),
|
60 |
+
'post_id' => get_queried_object_id(),
|
61 |
+
'ajax_url' => admin_url( 'admin-ajax.php' ),
|
62 |
+
]
|
63 |
+
);
|
64 |
+
}
|
65 |
+
|
66 |
+
public static function add_toolbar_items( \WP_Admin_Bar $admin_bar ) {
|
67 |
+
if ( ! current_user_can( 'manage_options' ) ) {
|
68 |
+
return;
|
69 |
}
|
70 |
|
71 |
$icon = '<i class="dashicons dashicons-update-alt"></i> ';
|
72 |
|
73 |
+
$admin_bar->add_menu( [
|
74 |
+
'id' => 'happy-addons',
|
75 |
+
'title' => sprintf( '<img src="%s">', ha_get_b64_icon() ),
|
76 |
+
'href' => ha_get_dashboard_link(),
|
77 |
+
'meta' => [
|
78 |
+
'title' => __( 'HappyAddons', 'happy-elementor-addons' ),
|
79 |
+
]
|
80 |
+
] );
|
81 |
+
|
82 |
+
if ( is_singular() ) {
|
83 |
+
$admin_bar->add_menu( [
|
84 |
+
'id' => 'ha-clear-page-cache',
|
85 |
+
'parent' => 'happy-addons',
|
86 |
+
'title' => $icon . __( 'Page: Renew On Demand Assets', 'happy-elementor-addons' ),
|
87 |
+
'href' => '#',
|
88 |
+
'meta' => [
|
89 |
+
'class' => 'hajs-clear-cache ha-clear-page-cache',
|
90 |
+
]
|
91 |
+
] );
|
92 |
+
}
|
93 |
+
|
94 |
+
$admin_bar->add_menu( [
|
95 |
+
'id' => 'ha-clear-all-cache',
|
96 |
+
'parent' => 'happy-addons',
|
97 |
+
'title' => $icon . __( 'Global: Renew On Demand Assets', 'happy-elementor-addons' ),
|
98 |
+
'href' => '#',
|
99 |
+
'meta' => [
|
100 |
+
'class' => 'hajs-clear-cache ha-clear-all-cache',
|
101 |
+
]
|
102 |
+
] );
|
103 |
+
}
|
104 |
}
|
105 |
+
|
106 |
+
Admin_Bar::init();
|
@@ -343,8 +343,7 @@ class Assets_Manager {
|
|
343 |
'editorPanelHomeLinkURL' => ha_get_dashboard_link(),
|
344 |
'editorPanelWidgetsLinkURL' => ha_get_dashboard_link('#widgets'),
|
345 |
'i18n' => [
|
346 |
-
'editorPanelHomeLinkTitle' => esc_html__( 'HappyAddons
|
347 |
-
'editorPanelWidgetsLinkTitle' => esc_html__( 'HappyAddons - Widgets', 'happy-elementor-addons' ),
|
348 |
'promotionDialogHeader' => esc_html__( '%s Widget', 'happy-elementor-addons' ),
|
349 |
'promotionDialogMessage' => esc_html__( 'Use %s widget with other exclusive pro widgets and 100% unique features to extend your toolbox and build sites faster and better.', 'happy-elementor-addons' ),
|
350 |
|
@@ -371,36 +370,36 @@ class Assets_Manager {
|
|
371 |
}
|
372 |
|
373 |
public static function enqueue_preview_style() {
|
374 |
-
if (ha_is_weforms_activated()) {
|
375 |
wp_enqueue_style(
|
376 |
-
'happy-
|
377 |
plugins_url('/weforms/assets/wpuf/css/frontend-forms.css', 'weforms'),
|
378 |
null,
|
379 |
HAPPY_ADDONS_VERSION
|
380 |
);
|
381 |
}
|
382 |
|
383 |
-
if (ha_is_wpforms_activated() && defined('WPFORMS_PLUGIN_SLUG')) {
|
384 |
wp_enqueue_style(
|
385 |
-
'happy-
|
386 |
plugins_url('/' . WPFORMS_PLUGIN_SLUG . '/assets/css/wpforms-full.css', WPFORMS_PLUGIN_SLUG),
|
387 |
null,
|
388 |
HAPPY_ADDONS_VERSION
|
389 |
);
|
390 |
}
|
391 |
|
392 |
-
if (ha_is_calderaforms_activated()) {
|
393 |
wp_enqueue_style(
|
394 |
-
'happy-
|
395 |
plugins_url('/caldera-forms/assets/css/caldera-forms-front.css', 'caldera-forms'),
|
396 |
null,
|
397 |
HAPPY_ADDONS_VERSION
|
398 |
);
|
399 |
}
|
400 |
|
401 |
-
if (ha_is_gravityforms_activated()) {
|
402 |
wp_enqueue_style(
|
403 |
-
'happy-
|
404 |
plugins_url('/gravityforms/css/formsmain.min.css', 'gravityforms'),
|
405 |
null,
|
406 |
HAPPY_ADDONS_VERSION
|
@@ -419,7 +418,7 @@ class Assets_Manager {
|
|
419 |
|
420 |
if ( ha_is_fluent_form_activated() ) {
|
421 |
wp_enqueue_style(
|
422 |
-
'happy-
|
423 |
plugins_url('/fluentform/public/css/fluent-forms-public.css', 'fluentform'),
|
424 |
null,
|
425 |
HAPPY_ADDONS_VERSION
|
@@ -427,3 +426,5 @@ class Assets_Manager {
|
|
427 |
}
|
428 |
}
|
429 |
}
|
|
|
|
343 |
'editorPanelHomeLinkURL' => ha_get_dashboard_link(),
|
344 |
'editorPanelWidgetsLinkURL' => ha_get_dashboard_link('#widgets'),
|
345 |
'i18n' => [
|
346 |
+
'editorPanelHomeLinkTitle' => esc_html__( 'HappyAddons', 'happy-elementor-addons' ),
|
|
|
347 |
'promotionDialogHeader' => esc_html__( '%s Widget', 'happy-elementor-addons' ),
|
348 |
'promotionDialogMessage' => esc_html__( 'Use %s widget with other exclusive pro widgets and 100% unique features to extend your toolbox and build sites faster and better.', 'happy-elementor-addons' ),
|
349 |
|
370 |
}
|
371 |
|
372 |
public static function enqueue_preview_style() {
|
373 |
+
if ( ha_is_weforms_activated() ) {
|
374 |
wp_enqueue_style(
|
375 |
+
'happy-addons-weform',
|
376 |
plugins_url('/weforms/assets/wpuf/css/frontend-forms.css', 'weforms'),
|
377 |
null,
|
378 |
HAPPY_ADDONS_VERSION
|
379 |
);
|
380 |
}
|
381 |
|
382 |
+
if ( ha_is_wpforms_activated() && defined( 'WPFORMS_PLUGIN_SLUG' ) ) {
|
383 |
wp_enqueue_style(
|
384 |
+
'happy-addons-wpform',
|
385 |
plugins_url('/' . WPFORMS_PLUGIN_SLUG . '/assets/css/wpforms-full.css', WPFORMS_PLUGIN_SLUG),
|
386 |
null,
|
387 |
HAPPY_ADDONS_VERSION
|
388 |
);
|
389 |
}
|
390 |
|
391 |
+
if ( ha_is_calderaforms_activated() ) {
|
392 |
wp_enqueue_style(
|
393 |
+
'happy-addons-caldera-forms',
|
394 |
plugins_url('/caldera-forms/assets/css/caldera-forms-front.css', 'caldera-forms'),
|
395 |
null,
|
396 |
HAPPY_ADDONS_VERSION
|
397 |
);
|
398 |
}
|
399 |
|
400 |
+
if ( ha_is_gravityforms_activated() ) {
|
401 |
wp_enqueue_style(
|
402 |
+
'happy-addons-gravity-forms',
|
403 |
plugins_url('/gravityforms/css/formsmain.min.css', 'gravityforms'),
|
404 |
null,
|
405 |
HAPPY_ADDONS_VERSION
|
418 |
|
419 |
if ( ha_is_fluent_form_activated() ) {
|
420 |
wp_enqueue_style(
|
421 |
+
'happy-addons-fluent-forms',
|
422 |
plugins_url('/fluentform/public/css/fluent-forms-public.css', 'fluentform'),
|
423 |
null,
|
424 |
HAPPY_ADDONS_VERSION
|
426 |
}
|
427 |
}
|
428 |
}
|
429 |
+
|
430 |
+
Assets_Manager::init();
|
@@ -101,3 +101,5 @@ class Attention_Seeker {
|
|
101 |
return [];
|
102 |
}
|
103 |
}
|
|
|
|
101 |
return [];
|
102 |
}
|
103 |
}
|
104 |
+
|
105 |
+
Attention_Seeker::init();
|
@@ -50,7 +50,7 @@ class Cache_Manager {
|
|
50 |
}
|
51 |
|
52 |
public static function should_enqueue( $post_id ) {
|
53 |
-
if ( !
|
54 |
! self::is_built_with_elementor( $post_id ) ||
|
55 |
! self::is_published( $post_id ) ||
|
56 |
self::is_editing_mode() ) {
|
@@ -123,3 +123,5 @@ class Cache_Manager {
|
|
123 |
do_action( 'happyaddons_enqueue_assets', $is_cache = false, 0 );
|
124 |
}
|
125 |
}
|
|
|
|
50 |
}
|
51 |
|
52 |
public static function should_enqueue( $post_id ) {
|
53 |
+
if ( ! ha_is_on_demand_cache_enabled() ||
|
54 |
! self::is_built_with_elementor( $post_id ) ||
|
55 |
! self::is_published( $post_id ) ||
|
56 |
self::is_editing_mode() ) {
|
123 |
do_action( 'happyaddons_enqueue_assets', $is_cache = false, 0 );
|
124 |
}
|
125 |
}
|
126 |
+
|
127 |
+
Cache_Manager::init();
|
@@ -5,199 +5,199 @@ use Elementor\Core\Files\CSS\Post as Post_CSS;
|
|
5 |
|
6 |
class Clone_Handler {
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
self::duplicate_meta_entries( $post, $duplicated_post_id );
|
98 |
|
99 |
$css = Post_CSS::create( $duplicated_post_id );
|
100 |
$css->update();
|
101 |
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
$query .= implode( ', ', $_records ) . ';';
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
|
202 |
}
|
203 |
|
5 |
|
6 |
class Clone_Handler {
|
7 |
|
8 |
+
/**
|
9 |
+
* Request and nonce action name
|
10 |
+
*/
|
11 |
+
const ACTION = 'ha_duplicate_thing';
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Register hooks and initialize
|
15 |
+
*/
|
16 |
+
public static function init() {
|
17 |
+
add_action( 'admin_action_' . self::ACTION, [ __CLASS__, 'duplicate_thing' ] );
|
18 |
+
add_filter( 'post_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
|
19 |
+
add_filter( 'page_row_actions', [ __CLASS__, 'add_row_actions' ], 10, 2 );
|
20 |
+
}
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Check if current user can clone
|
24 |
+
*
|
25 |
+
* @return bool
|
26 |
+
*/
|
27 |
+
public static function can_clone() {
|
28 |
+
return current_user_can( 'edit_posts' );
|
29 |
+
}
|
30 |
+
|
31 |
+
/**
|
32 |
+
* Add clone link in row actions
|
33 |
+
*
|
34 |
+
* @param array $actions
|
35 |
+
* @param \WP_Post $post
|
36 |
+
* @return array
|
37 |
+
*/
|
38 |
+
public static function add_row_actions( $actions, $post ) {
|
39 |
+
if ( self::can_clone() && post_type_supports( $post->post_type, 'elementor' ) ) {
|
40 |
+
$actions[ self::ACTION ] = sprintf(
|
41 |
+
'<a href="%1$s" title="%2$s"><span class="screen-reader-text">%2$s</span>%3$s</a>',
|
42 |
+
esc_url( self::get_url( $post->ID, 'list' ) ),
|
43 |
+
sprintf( esc_attr__( 'Clone - %s', 'happy-elementor-addons' ), esc_attr( $post->post_title ) ),
|
44 |
+
esc_html__( 'Happy Clone', 'happy-elementor-addons' )
|
45 |
+
);
|
46 |
+
}
|
47 |
+
|
48 |
+
return $actions;
|
49 |
+
}
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Duplicate requested post
|
53 |
+
*
|
54 |
+
* @return void
|
55 |
+
*/
|
56 |
+
public static function duplicate_thing() {
|
57 |
+
if ( ! self::can_clone() ) {
|
58 |
+
return;
|
59 |
+
}
|
60 |
+
|
61 |
+
$_uri = $_SERVER['REQUEST_URI'];
|
62 |
+
|
63 |
+
// Resolve finder clone request issue
|
64 |
+
if ( stripos( $_uri, '&' ) !== false ) {
|
65 |
+
$_uri = html_entity_decode( $_uri );
|
66 |
+
$_uri = parse_url( $_uri, PHP_URL_QUERY );
|
67 |
+
$valid_args = ['_wpnonce', 'post_id', 'ref'];
|
68 |
+
parse_str( $_uri, $args );
|
69 |
+
|
70 |
+
if ( ! empty( $args ) && is_array( $args ) ) {
|
71 |
+
foreach ( $args as $key => $val ) {
|
72 |
+
if ( in_array( $key, $valid_args, true ) ) {
|
73 |
+
$_GET[ $key ] = $val;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
}
|
77 |
+
}
|
78 |
+
|
79 |
+
$nonce = isset( $_GET['_wpnonce'] ) ? $_GET['_wpnonce'] : '';
|
80 |
+
$post_id = isset( $_GET['post_id'] ) ? absint( $_GET['post_id'] ) : 0;
|
81 |
+
$ref = isset( $_GET['ref'] ) ? $_GET['ref'] : '';
|
82 |
+
|
83 |
+
if ( ! wp_verify_nonce( $nonce, self::ACTION ) ) {
|
84 |
+
return;
|
85 |
+
}
|
86 |
+
|
87 |
+
if ( is_null( ( $post = get_post( $post_id ) ) ) ) {
|
88 |
+
return;
|
89 |
+
}
|
90 |
+
|
91 |
+
$post = sanitize_post( $post, 'db' );
|
92 |
+
$duplicated_post_id = self::duplicate_post( $post );
|
93 |
+
$redirect = add_query_arg( [ 'post_type' => $post->post_type ], admin_url( 'edit.php' ) );
|
94 |
+
|
95 |
+
if ( ! is_wp_error( $duplicated_post_id ) ) {
|
96 |
+
self::duplicate_taxonomies( $post, $duplicated_post_id );
|
97 |
self::duplicate_meta_entries( $post, $duplicated_post_id );
|
98 |
|
99 |
$css = Post_CSS::create( $duplicated_post_id );
|
100 |
$css->update();
|
101 |
|
102 |
+
if ( $ref === 'editor' ) {
|
103 |
+
$document = ha_elementor()->documents->get( $duplicated_post_id );
|
104 |
+
$redirect = $document->get_edit_url();
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
wp_safe_redirect( $redirect );
|
109 |
+
die();
|
110 |
+
}
|
111 |
+
|
112 |
+
/**
|
113 |
+
* Get clone url with required query params
|
114 |
+
*
|
115 |
+
* @param $post_id
|
116 |
+
* @param string $ref
|
117 |
+
* @return string
|
118 |
+
*/
|
119 |
+
public static function get_url( $post_id, $ref = '' ) {
|
120 |
+
return wp_nonce_url(
|
121 |
+
add_query_arg(
|
122 |
+
[
|
123 |
+
'action' => self::ACTION,
|
124 |
+
'post_id' => $post_id,
|
125 |
+
'ref' => $ref,
|
126 |
+
],
|
127 |
+
admin_url( 'admin.php' )
|
128 |
+
),
|
129 |
+
self::ACTION
|
130 |
+
);
|
131 |
+
}
|
132 |
+
|
133 |
+
/**
|
134 |
+
* Clone post
|
135 |
+
*
|
136 |
+
* @param $old_post
|
137 |
+
* @return int $dulicated post id
|
138 |
+
*/
|
139 |
+
protected static function duplicate_post( $post ) {
|
140 |
+
$current_user = wp_get_current_user();
|
141 |
+
|
142 |
+
$duplicated_post_args = [
|
143 |
+
'post_status' => 'draft',
|
144 |
+
'to_ping' => $post->to_ping,
|
145 |
+
'post_type' => $post->post_type,
|
146 |
+
'menu_order' => $post->menu_order,
|
147 |
+
'post_author' => $current_user->ID,
|
148 |
+
'post_parent' => $post->post_parent,
|
149 |
+
'ping_status' => $post->ping_status,
|
150 |
+
'post_excerpt' => $post->post_excerpt,
|
151 |
+
'post_content' => $post->post_content,
|
152 |
+
'post_password' => $post->post_password,
|
153 |
+
'comment_status' => $post->comment_status,
|
154 |
+
'post_title' => sprintf( __( '%s - [Cloned #%d]', 'happy-elementor-addons' ), $post->post_title,
|
155 |
+
$post->ID ),
|
156 |
+
];
|
157 |
+
|
158 |
+
return wp_insert_post( $duplicated_post_args );
|
159 |
+
}
|
160 |
+
|
161 |
+
/**
|
162 |
+
* Copy post taxonomies to cloned post
|
163 |
+
*
|
164 |
+
* @param $post
|
165 |
+
* @param $duplicated_post_id
|
166 |
+
*/
|
167 |
+
protected static function duplicate_taxonomies( $post, $duplicated_post_id ) {
|
168 |
+
$taxonomies = get_object_taxonomies( $post->post_type );
|
169 |
+
if ( ! empty( $taxonomies ) && is_array( $taxonomies ) ) {
|
170 |
+
foreach ( $taxonomies as $taxonomy ) {
|
171 |
+
$terms = wp_get_object_terms( $post->ID, $taxonomy, [ 'fields' => 'slugs' ] );
|
172 |
+
wp_set_object_terms( $duplicated_post_id, $terms, $taxonomy, false );
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
+
|
177 |
+
/**
|
178 |
+
* Copy post meta entries to cloned post
|
179 |
+
*
|
180 |
+
* @param $post
|
181 |
+
* @param $duplicated_post_id
|
182 |
+
*/
|
183 |
+
protected static function duplicate_meta_entries( $post, $duplicated_post_id ) {
|
184 |
+
global $wpdb;
|
185 |
+
|
186 |
+
$entries = $wpdb->get_results(
|
187 |
+
$wpdb->prepare( "SELECT meta_key, meta_value FROM {$wpdb->postmeta} WHERE post_id = %d", $post->ID )
|
188 |
+
);
|
189 |
+
|
190 |
+
if ( is_array( $entries ) ) {
|
191 |
+
$query = "INSERT INTO {$wpdb->postmeta} ( post_id, meta_key, meta_value ) VALUES ";
|
192 |
+
$_records = [];
|
193 |
+
foreach ( $entries as $entry ) {
|
194 |
+
$_value = wp_slash( $entry->meta_value );
|
195 |
+
$_records[] = "( $duplicated_post_id, '{$entry->meta_key}', '{$_value}' )";
|
196 |
+
}
|
197 |
$query .= implode( ', ', $_records ) . ';';
|
198 |
+
$wpdb->query( $query );
|
199 |
+
}
|
200 |
+
}
|
201 |
|
202 |
}
|
203 |
|
@@ -266,3 +266,5 @@ class Dashboard {
|
|
266 |
self::load_template( 'pro' );
|
267 |
}
|
268 |
}
|
|
|
|
266 |
self::load_template( 'pro' );
|
267 |
}
|
268 |
}
|
269 |
+
|
270 |
+
Dashboard::init();
|
@@ -1,12 +1,7 @@
|
|
1 |
<?php
|
2 |
namespace Happy_Addons\Elementor;
|
3 |
|
4 |
-
use
|
5 |
-
use Happy_Addons\Elementor\Extension\Column_Extended;
|
6 |
-
use Happy_Addons\Elementor\Extension\Happy_Grid;
|
7 |
-
use Happy_Addons\Elementor\Extension\Widgets_Extended;
|
8 |
-
use Happy_Addons\Elementor\Extension\Background_Overlay;
|
9 |
-
use Happy_Addons\Elementor\Extension\Wrapper_Link;
|
10 |
|
11 |
defined( 'ABSPATH' ) || die();
|
12 |
|
@@ -16,22 +11,45 @@ class Extensions_Manager {
|
|
16 |
* Initialize
|
17 |
*/
|
18 |
public static function init() {
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
}
|
|
|
|
1 |
<?php
|
2 |
namespace Happy_Addons\Elementor;
|
3 |
|
4 |
+
use Elementor\Core\Common\Modules\Finder\Categories_Manager;
|
|
|
|
|
|
|
|
|
|
|
5 |
|
6 |
defined( 'ABSPATH' ) || die();
|
7 |
|
11 |
* Initialize
|
12 |
*/
|
13 |
public static function init() {
|
14 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/column-extended.php';
|
15 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/widgets-extended.php';
|
16 |
+
|
17 |
+
if ( ha_is_background_overlay_enabled() ) {
|
18 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/background-overlay.php';
|
19 |
+
}
|
20 |
+
|
21 |
+
if ( ha_is_grid_layer_enabled() ) {
|
22 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/happy-grid.php';
|
23 |
+
}
|
24 |
+
|
25 |
+
if ( ha_is_wrapper_link_enabled() ) {
|
26 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/wrapper-link.php';
|
27 |
+
}
|
28 |
+
|
29 |
+
if ( ha_is_floating_effects_enabled() || ha_is_css_transform_enabled() ) {
|
30 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'extensions/happy-effects.php';
|
31 |
+
}
|
32 |
+
|
33 |
+
if ( is_user_logged_in() && ha_is_adminbar_menu_enabled() ) {
|
34 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'classes/admin-bar.php';
|
35 |
+
}
|
36 |
+
|
37 |
+
if ( is_user_logged_in() && ha_is_happy_clone_enabled() ) {
|
38 |
+
add_action( 'elementor/finder/categories/init', [ __CLASS__, 'register_finder' ] );
|
39 |
+
|
40 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'classes/clone-handler.php';
|
41 |
+
}
|
42 |
+
}
|
43 |
+
|
44 |
+
/**
|
45 |
+
* Register finder category and category items
|
46 |
+
*
|
47 |
+
* @param $categories_manager
|
48 |
+
*/
|
49 |
+
public static function register_finder( Categories_Manager $categories_manager ) {
|
50 |
+
include_once HAPPY_ADDONS_DIR_PATH . 'classes/finder-edit.php';
|
51 |
+
$categories_manager->add_category( Finder_Edit::SLUG, new Finder_Edit() );
|
52 |
+
}
|
53 |
}
|
54 |
+
|
55 |
+
Extensions_Manager::init();
|
@@ -1,71 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Finder class
|
4 |
-
*
|
5 |
-
* @package Happy_Addons
|
6 |
-
*/
|
7 |
-
namespace Happy_Addons\Elementor;
|
8 |
-
|
9 |
-
use Elementor\Core\Common\Modules\Finder\Base_Category as Finder_Category;
|
10 |
-
|
11 |
-
defined( 'ABSPATH' ) || die();
|
12 |
-
|
13 |
-
class Finder extends Finder_Category {
|
14 |
-
|
15 |
-
const SLUG = 'happy-addons';
|
16 |
-
|
17 |
-
/**
|
18 |
-
* Get title.
|
19 |
-
*
|
20 |
-
* @access public
|
21 |
-
*
|
22 |
-
* @return string
|
23 |
-
*/
|
24 |
-
public function get_title() {
|
25 |
-
return __( 'Happy Addons', 'happy-elementor-addons' );
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Get category items.
|
30 |
-
*
|
31 |
-
* @access public
|
32 |
-
*
|
33 |
-
* @param array $options
|
34 |
-
*
|
35 |
-
* @return array
|
36 |
-
*/
|
37 |
-
public function get_category_items( array $options = [] ) {
|
38 |
-
$items = [
|
39 |
-
'home' => [
|
40 |
-
'title' => __( 'HappyAddons', 'happy-elementor-addons' ),
|
41 |
-
'description' => __( 'Control Panel Home', 'happy-elementor-addons' ),
|
42 |
-
'url' => ha_get_dashboard_link(),
|
43 |
-
'icon' => ' hm hm-happyaddons',
|
44 |
-
'keywords' => [ 'happy', 'setting', 'happyaddons', 'dashboard', 'widget', 'control', 'panel', 'essential' ],
|
45 |
-
'actions' => [
|
46 |
-
[
|
47 |
-
'name' => 'view',
|
48 |
-
'url' => ha_get_dashboard_link(),
|
49 |
-
'icon' => 'eye'
|
50 |
-
]
|
51 |
-
]
|
52 |
-
],
|
53 |
-
'widgets' => [
|
54 |
-
'title' => __( 'HappyAddons', 'happy-elementor-addons' ),
|
55 |
-
'description' => __( 'Widgets Control Panel', 'happy-elementor-addons' ),
|
56 |
-
'icon' => ' hm hm-cross-game',
|
57 |
-
'url' => ha_get_dashboard_link( '#widgets' ),
|
58 |
-
'keywords' => [ 'happy', 'setting', 'happyaddons', 'dashboard', 'widget', 'control', 'panel', 'essential' ],
|
59 |
-
'actions' => [
|
60 |
-
[
|
61 |
-
'name' => 'view',
|
62 |
-
'url' => ha_get_dashboard_link( '#widgets' ),
|
63 |
-
'icon' => 'eye'
|
64 |
-
]
|
65 |
-
]
|
66 |
-
],
|
67 |
-
];
|
68 |
-
|
69 |
-
return $items;
|
70 |
-
}
|
71 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -499,3 +499,5 @@ class Icons_Manager {
|
|
499 |
];
|
500 |
}
|
501 |
}
|
|
|
|
499 |
];
|
500 |
}
|
501 |
}
|
502 |
+
|
503 |
+
Icons_Manager::init();
|
@@ -118,3 +118,5 @@ class Library_Manager {
|
|
118 |
];
|
119 |
}
|
120 |
}
|
|
|
|
118 |
];
|
119 |
}
|
120 |
}
|
121 |
+
|
122 |
+
Library_Manager::init();
|
@@ -143,3 +143,5 @@ class Select2_Handler {
|
|
143 |
}
|
144 |
|
145 |
}
|
|
|
|
143 |
}
|
144 |
|
145 |
}
|
146 |
+
|
147 |
+
Select2_Handler::init();
|
@@ -53,3 +53,5 @@ class Updater {
|
|
53 |
return version_compare( self::get_new_version(), self::get_old_version(), '>' );
|
54 |
}
|
55 |
}
|
|
|
|
53 |
return version_compare( self::get_new_version(), self::get_old_version(), '>' );
|
54 |
}
|
55 |
}
|
56 |
+
|
57 |
+
Updater::init();
|
@@ -7,488 +7,489 @@ defined( 'ABSPATH' ) || die();
|
|
7 |
|
8 |
class Widgets_Manager {
|
9 |
|
10 |
-
|
11 |
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
|
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
'promo-box' => [
|
159 |
'title' => __( 'Promo Box', 'happy-elementor-addons' ),
|
160 |
'icon' => 'hm hm-promo',
|
161 |
'is_pro' => true,
|
162 |
],
|
163 |
-
|
164 |
-
|
165 |
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
'social-icons' => [
|
493 |
'title' => __( 'Social Icons', 'happy-elementor-addons' ),
|
494 |
'icon' => 'hm hm-bond2',
|
@@ -509,45 +510,45 @@ class Widgets_Manager {
|
|
509 |
'js' => [],
|
510 |
],
|
511 |
],
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
],
|
552 |
'fluent-form' => [
|
553 |
'title' => __( 'Fluent Form', 'happy-elementor-addons' ),
|
@@ -559,46 +560,58 @@ class Widgets_Manager {
|
|
559 |
'js' => [],
|
560 |
],
|
561 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
562 |
];
|
563 |
}
|
564 |
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
include_once( HAPPY_ADDONS_DIR_PATH . 'base/widget-base.php' );
|
580 |
include_once( HAPPY_ADDONS_DIR_PATH . 'traits/button-renderer.php' );
|
581 |
|
582 |
-
|
583 |
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
|
591 |
-
|
592 |
-
|
593 |
|
594 |
-
|
595 |
|
596 |
-
|
597 |
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
}
|
|
|
|
7 |
|
8 |
class Widgets_Manager {
|
9 |
|
10 |
+
const WIDGETS_DB_KEY = 'happyaddons_inactive_widgets';
|
11 |
|
12 |
+
/**
|
13 |
+
* Initialize
|
14 |
+
*/
|
15 |
+
public static function init() {
|
16 |
+
add_action( 'elementor/widgets/widgets_registered', [ __CLASS__, 'register' ] );
|
17 |
+
add_action( 'elementor/frontend/before_render', [ __CLASS__, 'add_global_widget_render_attributes' ] );
|
18 |
+
}
|
19 |
|
20 |
+
public static function add_global_widget_render_attributes( Element_Base $widget ) {
|
21 |
+
if ( $widget->get_data( 'widgetType' ) === 'global' && method_exists( $widget, 'get_original_element_instance' ) ) {
|
22 |
+
$original_instance = $widget->get_original_element_instance();
|
23 |
+
if ( method_exists( $original_instance, 'get_html_wrapper_class' ) && strpos( $original_instance->get_data( 'widgetType' ), 'ha-' ) !== false ) {
|
24 |
+
$widget->add_render_attribute( '_wrapper', [
|
25 |
+
'class' => $original_instance->get_html_wrapper_class(),
|
26 |
+
] );
|
27 |
+
}
|
28 |
+
}
|
29 |
+
}
|
30 |
|
31 |
+
public static function get_inactive_widgets() {
|
32 |
+
return get_option( self::WIDGETS_DB_KEY, [] );
|
33 |
+
}
|
34 |
|
35 |
+
public static function save_inactive_widgets( $widgets = [] ) {
|
36 |
+
update_option( self::WIDGETS_DB_KEY, $widgets );
|
37 |
+
}
|
38 |
|
39 |
+
public static function get_widgets_map() {
|
40 |
+
$widgets_map = [
|
41 |
+
self::get_base_widget_key() => [
|
42 |
+
'css' => ['common', 'btn'],
|
43 |
+
'js' => [],
|
44 |
+
'vendor' => [
|
45 |
+
'js' => ['anime'],
|
46 |
+
'css' => ['happy-icons', 'font-awesome']
|
47 |
+
]
|
48 |
+
],
|
49 |
+
];
|
50 |
|
51 |
+
$local_widgets_map = self::get_local_widgets_map();
|
52 |
+
$widgets_map = array_merge( $widgets_map, $local_widgets_map );
|
53 |
+
|
54 |
+
return apply_filters( 'happyaddons_get_widgets_map', $widgets_map );
|
55 |
+
}
|
56 |
|
57 |
+
/**
|
58 |
+
* Get the pro widgets map for dashboard only
|
59 |
+
*
|
60 |
+
* @return array
|
61 |
+
*/
|
62 |
+
public static function get_pro_widget_map() {
|
63 |
+
return [
|
64 |
+
'advanced-heading' => [
|
65 |
+
'title' => __( 'Advanced Heading', 'happy-elementor-addons' ),
|
66 |
+
'icon' => 'hm hm-advanced-heading',
|
67 |
+
'is_pro' => true,
|
68 |
+
],
|
69 |
+
'list-group' => [
|
70 |
+
'title' => __( 'List Group', 'happy-elementor-addons' ),
|
71 |
+
'icon' => 'hm hm-list-group',
|
72 |
+
'is_pro' => true,
|
73 |
+
],
|
74 |
+
'hover-box' => [
|
75 |
+
'title' => __( 'Hover Box', 'happy-elementor-addons' ),
|
76 |
+
'icon' => 'hm hm-finger-point',
|
77 |
+
'is_pro' => true,
|
78 |
+
],
|
79 |
+
'countdown' => [
|
80 |
+
'title' => __( 'Countdown', 'happy-elementor-addons' ),
|
81 |
+
'icon' => 'hm hm-refresh-time',
|
82 |
+
'is_pro' => true,
|
83 |
+
],
|
84 |
+
'team-carousel' => [
|
85 |
+
'title' => __( 'Team Carousel', 'happy-elementor-addons' ),
|
86 |
+
'icon' => 'hm hm-team-carousel',
|
87 |
+
'is_pro' => true,
|
88 |
+
],
|
89 |
+
'logo-carousel' => [
|
90 |
+
'title' => __( 'Logo Carousel', 'happy-elementor-addons' ),
|
91 |
+
'icon' => 'hm hm-logo-carousel',
|
92 |
+
'is_pro' => true,
|
93 |
+
],
|
94 |
+
'source-code' => [
|
95 |
+
'title' => __( 'Source Code', 'happy-elementor-addons' ),
|
96 |
+
'icon' => 'hm hm-code-browser',
|
97 |
+
'is_pro' => true,
|
98 |
+
],
|
99 |
+
'feature-list' => [
|
100 |
+
'title' => __( 'Feature List', 'happy-elementor-addons' ),
|
101 |
+
'icon' => 'hm hm-list-2',
|
102 |
+
'is_pro' => true,
|
103 |
+
],
|
104 |
+
'testimonial-carousel' => [
|
105 |
+
'title' => __( 'Testimonial Carousel', 'happy-elementor-addons' ),
|
106 |
+
'icon' => 'hm hm-testimonial-carousel',
|
107 |
+
'is_pro' => true,
|
108 |
+
],
|
109 |
+
'advanced-tabs' => [
|
110 |
+
'title' => __( 'Advanced Tabs', 'happy-elementor-addons' ),
|
111 |
+
'icon' => 'hm hm-tab',
|
112 |
+
'is_pro' => true,
|
113 |
+
],
|
114 |
+
'animated-text' => [
|
115 |
+
'title' => __( 'Animated Text', 'happy-elementor-addons' ),
|
116 |
+
'icon' => 'hm hm-text-animation',
|
117 |
+
'is_pro' => true,
|
118 |
+
],
|
119 |
+
'timeline' => [
|
120 |
+
'title' => __( 'Timeline', 'happy-elementor-addons' ),
|
121 |
+
'icon' => 'hm hm-timeline',
|
122 |
+
'is_pro' => true,
|
123 |
+
],
|
124 |
+
'instagram-feed' => [
|
125 |
+
'title' => __( 'Instagram Feed', 'happy-elementor-addons' ),
|
126 |
+
'icon' => 'hm hm-instagram',
|
127 |
+
'is_pro' => true,
|
128 |
+
],
|
129 |
+
'scrolling-image' => [
|
130 |
+
'title' => __( 'Scrolling Image', 'happy-elementor-addons' ),
|
131 |
+
'icon' => 'hm hm-scrolling-image',
|
132 |
+
'is_pro' => true,
|
133 |
+
],
|
134 |
+
'toggle' => [
|
135 |
+
'title' => __( 'Advanced Toggle', 'happy-elementor-addons' ),
|
136 |
+
'icon' => 'hm hm-accordion-vertical',
|
137 |
+
'is_pro' => true,
|
138 |
+
],
|
139 |
+
'accordion' => [
|
140 |
+
'title' => __( 'Advanced Accordion', 'happy-elementor-addons' ),
|
141 |
+
'icon' => 'hm hm-accordion-vertical',
|
142 |
+
'is_pro' => true,
|
143 |
+
],
|
144 |
+
'advanced-pricing-table' => [
|
145 |
+
'title' => __( 'Advanced Pricing Table', 'happy-elementor-addons'),
|
146 |
+
'icon' => 'hm hm-file-cabinet',
|
147 |
+
'is_pro' => true,
|
148 |
+
],
|
149 |
+
'advanced-flip-box' => [
|
150 |
+
'title' => __( 'Advanced Flip Box', 'happy-elementor-addons' ),
|
151 |
+
'icon' => 'hm hm-flip-card1',
|
152 |
+
'is_pro' => true,
|
153 |
+
],
|
154 |
+
'business-hour' => [
|
155 |
+
'title' => __( 'Business Hour', 'happy-elementor-addons' ),
|
156 |
+
'icon' => 'hm hm-hand-watch',
|
157 |
+
'is_pro' => true,
|
158 |
+
],
|
159 |
'promo-box' => [
|
160 |
'title' => __( 'Promo Box', 'happy-elementor-addons' ),
|
161 |
'icon' => 'hm hm-promo',
|
162 |
'is_pro' => true,
|
163 |
],
|
164 |
+
];
|
165 |
+
}
|
166 |
|
167 |
+
/**
|
168 |
+
* Get the free widgets map
|
169 |
+
*
|
170 |
+
* @return array
|
171 |
+
*/
|
172 |
+
public static function get_local_widgets_map() {
|
173 |
+
// All the widgets are listed below with respective map
|
174 |
|
175 |
+
return [
|
176 |
+
'infobox' => [
|
177 |
+
'demo' => 'https://happyaddons.com/go/demo-info-box',
|
178 |
+
'title' => __( 'Info Box', 'happy-elementor-addons' ),
|
179 |
+
'icon' => 'hm hm-blog-content',
|
180 |
+
'css' => ['infobox'],
|
181 |
+
'js' => [],
|
182 |
+
'vendor' => [
|
183 |
+
'css' => [],
|
184 |
+
'js' => [],
|
185 |
+
],
|
186 |
+
],
|
187 |
+
'card' => [
|
188 |
+
'demo' => 'https://happyaddons.com/go/demo-card',
|
189 |
+
'title' => __( 'Card', 'happy-elementor-addons' ),
|
190 |
+
'icon' => 'hm hm-card',
|
191 |
+
'css' => ['card', 'badge'],
|
192 |
+
'js' => [],
|
193 |
+
'vendor' => [
|
194 |
+
'css' => [],
|
195 |
+
'js' => [],
|
196 |
+
],
|
197 |
+
],
|
198 |
+
'cf7' => [
|
199 |
+
'demo' => 'https://happyaddons.com/go/demo-contact-form7',
|
200 |
+
'title' => __( 'Contact Form 7', 'happy-elementor-addons' ),
|
201 |
+
'icon' => 'hm hm-form',
|
202 |
+
'css' => [],
|
203 |
+
'js' => [],
|
204 |
+
'vendor' => [
|
205 |
+
'css' => [],
|
206 |
+
'js' => [],
|
207 |
+
],
|
208 |
+
],
|
209 |
+
'icon-box' => [
|
210 |
+
'demo' => 'https://happyaddons.com/go/demo-icon-box',
|
211 |
+
'title' => __( 'Icon Box', 'happy-elementor-addons' ),
|
212 |
+
'icon' => 'hm hm-icon-box',
|
213 |
+
'css' => ['icon-box', 'badge'],
|
214 |
+
'js' => [],
|
215 |
+
'vendor' => [
|
216 |
+
'css' => [],
|
217 |
+
'js' => [],
|
218 |
+
],
|
219 |
+
],
|
220 |
+
'member' => [
|
221 |
+
'demo' => 'https://happyaddons.com/go/demo-team-member',
|
222 |
+
'title' => __( 'Team Member', 'happy-elementor-addons' ),
|
223 |
+
'icon' => 'hm hm-team-member',
|
224 |
+
'css' => ['member'],
|
225 |
+
'js' => [],
|
226 |
+
'vendor' => [
|
227 |
+
'css' => [],
|
228 |
+
'js' => [],
|
229 |
+
],
|
230 |
+
],
|
231 |
+
'review' => [
|
232 |
+
'demo' => 'https://happyaddons.com/go/demo-review',
|
233 |
+
'title' => __( 'Review', 'happy-elementor-addons' ),
|
234 |
+
'icon' => 'hm hm-review',
|
235 |
+
'css' => ['review'],
|
236 |
+
'js' => [],
|
237 |
+
'vendor' => [
|
238 |
+
'css' => [],
|
239 |
+
'js' => [],
|
240 |
+
],
|
241 |
+
],
|
242 |
+
'image-compare' => [
|
243 |
+
'demo' => 'https://happyaddons.com/go/demo-image-compare',
|
244 |
+
'title' => __( 'Image Compare', 'happy-elementor-addons' ),
|
245 |
+
'icon' => 'hm hm-image-compare',
|
246 |
+
'css' => ['image-comparison'],
|
247 |
+
'js' => [],
|
248 |
+
'vendor' => [
|
249 |
+
'css' => ['twentytwenty'],
|
250 |
+
'js' => ['jquery-event-move','jquery-twentytwenty'],
|
251 |
+
],
|
252 |
+
],
|
253 |
+
'justified-gallery' => [
|
254 |
+
'demo' => 'https://happyaddons.com/go/demo-justified-grid',
|
255 |
+
'title' => __( 'Justified Grid', 'happy-elementor-addons' ),
|
256 |
+
'icon' => 'hm hm-brick-wall',
|
257 |
+
'css' => ['justified-gallery', 'gallery-filter'],
|
258 |
+
'js' => [],
|
259 |
+
'vendor' => [
|
260 |
+
'css' => ['justifiedGallery', 'magnific-popup'],
|
261 |
+
'js' => ['jquery-justifiedGallery', 'jquery-magnific-popup'],
|
262 |
+
],
|
263 |
+
],
|
264 |
+
'image-grid' => [
|
265 |
+
'demo' => 'https://happyaddons.com/go/demo-image-grid',
|
266 |
+
'title' => __( 'Image Grid', 'happy-elementor-addons' ),
|
267 |
+
'icon' => 'hm hm-grid-even',
|
268 |
+
'css' => ['image-grid', 'gallery-filter'],
|
269 |
+
'js' => [],
|
270 |
+
'vendor' => [
|
271 |
+
'css' => ['magnific-popup'],
|
272 |
+
'js' => ['jquery-isotope', 'jquery-magnific-popup'],
|
273 |
+
],
|
274 |
+
],
|
275 |
+
'slider' => [
|
276 |
+
'demo' => 'https://happyaddons.com/go/demo-slider',
|
277 |
+
'title' => __( 'Slider', 'happy-elementor-addons' ),
|
278 |
+
'icon' => 'hm hm-image-slider',
|
279 |
+
'css' => ['slider-carousel'],
|
280 |
+
'js' => [],
|
281 |
+
'vendor' => [
|
282 |
+
'css' => ['slick', 'slick-theme'],
|
283 |
+
'js' => ['jquery-slick'],
|
284 |
+
],
|
285 |
+
],
|
286 |
+
'carousel' => [
|
287 |
+
'demo' => 'https://happyaddons.com/go/demo-image-carousel',
|
288 |
+
'title' => __( 'Carousel', 'happy-elementor-addons' ),
|
289 |
+
'icon' => 'hm hm-carousal',
|
290 |
+
'class' => Carousel::class,
|
291 |
+
'css' => ['slider-carousel'],
|
292 |
+
'js' => [],
|
293 |
+
'vendor' => [
|
294 |
+
'css' => ['slick', 'slick-theme'],
|
295 |
+
'js' => ['jquery-slick'],
|
296 |
+
],
|
297 |
+
],
|
298 |
+
'skills' => [
|
299 |
+
'demo' => 'https://happyaddons.com/go/demo-skill-bar',
|
300 |
+
'title' => __( 'Skill Bars', 'happy-elementor-addons' ),
|
301 |
+
'icon' => 'hm hm-progress-bar',
|
302 |
+
'css' => ['skills'],
|
303 |
+
'js' => [],
|
304 |
+
'vendor' => [
|
305 |
+
'css' => [],
|
306 |
+
'js' => ['elementor-waypoints', 'jquery-numerator'],
|
307 |
+
],
|
308 |
+
],
|
309 |
+
'gradient-heading' => [
|
310 |
+
'demo' => 'https://happyaddons.com/go/demo-gradient-heading',
|
311 |
+
'title' => __( 'Gradient Heading', 'happy-elementor-addons' ),
|
312 |
+
'icon' => 'hm hm-drag',
|
313 |
+
'css' => ['gradient-heading'],
|
314 |
+
'js' => [],
|
315 |
+
'vendor' => [
|
316 |
+
'css' => [],
|
317 |
+
'js' => [],
|
318 |
+
],
|
319 |
+
],
|
320 |
+
'wpform' => [
|
321 |
+
'demo' => 'https://happyaddons.com/go/demo-wpforms',
|
322 |
+
'title' => __( 'WPForms', 'happy-elementor-addons' ),
|
323 |
+
'icon' => 'hm hm-form',
|
324 |
+
'css' => [],
|
325 |
+
'js' => [],
|
326 |
+
'vendor' => [
|
327 |
+
'css' => [],
|
328 |
+
'js' => [],
|
329 |
+
],
|
330 |
+
],
|
331 |
+
'ninjaform' => [
|
332 |
+
'demo' => 'https://happyaddons.com/go/demo-ninja-forms',
|
333 |
+
'title' => __( 'Ninja Forms', 'happy-elementor-addons' ),
|
334 |
+
'icon' => 'hm hm-form',
|
335 |
+
'css' => [],
|
336 |
+
'js' => [],
|
337 |
+
'vendor' => [
|
338 |
+
'css' => [],
|
339 |
+
'js' => [],
|
340 |
+
],
|
341 |
+
],
|
342 |
+
'calderaform' => [
|
343 |
+
'demo' => 'https://happyaddons.com/go/demo-caldera-forms',
|
344 |
+
'title' => __( 'Caldera Forms', 'happy-elementor-addons' ),
|
345 |
+
'icon' => 'hm hm-form',
|
346 |
+
'css' => [],
|
347 |
+
'js' => [],
|
348 |
+
'vendor' => [
|
349 |
+
'css' => [],
|
350 |
+
'js' => [],
|
351 |
+
],
|
352 |
+
],
|
353 |
+
'weform' => [
|
354 |
+
'demo' => 'https://happyaddons.com/go/demo-weforms',
|
355 |
+
'title' => __( 'weForms', 'happy-elementor-addons' ),
|
356 |
+
'icon' => 'hm hm-form',
|
357 |
+
'css' => [],
|
358 |
+
'js' => [],
|
359 |
+
'vendor' => [
|
360 |
+
'css' => [],
|
361 |
+
'js' => [],
|
362 |
+
],
|
363 |
+
],
|
364 |
+
'logo-grid' => [
|
365 |
+
'demo' => 'https://happyaddons.com/go/demo-logo-grid',
|
366 |
+
'title' => __('Logo Grid', 'happy-elementor-addons'),
|
367 |
+
'icon' => 'hm hm-logo-grid',
|
368 |
+
'css' => ['logo-grid'],
|
369 |
+
'js' => [],
|
370 |
+
'vendor' => [
|
371 |
+
'css' => [],
|
372 |
+
'js' => [],
|
373 |
+
],
|
374 |
+
],
|
375 |
+
'dual-button' => [
|
376 |
+
'demo' => 'https://happyaddons.com/go/demo-dual-button',
|
377 |
+
'title' => __( 'Dual Button', 'happy-elementor-addons' ),
|
378 |
+
'icon' => 'hm hm-accordion-horizontal',
|
379 |
+
'css' => ['dual-btn'],
|
380 |
+
'js' => [],
|
381 |
+
'vendor' => [
|
382 |
+
'css' => [],
|
383 |
+
'js' => [],
|
384 |
+
],
|
385 |
+
],
|
386 |
+
'testimonial' => [
|
387 |
+
'demo' => 'https://happyaddons.com/go/demo-testimonial',
|
388 |
+
'title' => __( 'Testimonial', 'happy-elementor-addons' ),
|
389 |
+
'icon' => 'hm hm-testimonial',
|
390 |
+
'css' => ['testimonial'],
|
391 |
+
'js' => [],
|
392 |
+
'vendor' => [
|
393 |
+
'css' => [],
|
394 |
+
'js' => [],
|
395 |
+
],
|
396 |
+
],
|
397 |
+
'number' => [
|
398 |
+
'demo' => 'https://happyaddons.com/go/demo-number-widget',
|
399 |
+
'title' => __( 'Number', 'happy-elementor-addons' ),
|
400 |
+
'icon' => 'hm hm-madel',
|
401 |
+
'css' => ['number'],
|
402 |
+
'js' => [],
|
403 |
+
'vendor' => [
|
404 |
+
'css' => [],
|
405 |
+
'js' => ['elementor-waypoints', 'jquery-numerator'],
|
406 |
+
],
|
407 |
+
],
|
408 |
+
'flip-box' => [
|
409 |
+
'demo' => 'https://happyaddons.com/gp/demo-flip-box',
|
410 |
+
'title' => __( 'Flip Box', 'happy-elementor-addons' ),
|
411 |
+
'icon' => 'hm hm-flip-card1',
|
412 |
+
'css' => ['flip-box'],
|
413 |
+
'js' => [],
|
414 |
+
'vendor' => [
|
415 |
+
'css' => [],
|
416 |
+
'js' => [],
|
417 |
+
],
|
418 |
+
],
|
419 |
+
'calendly' => [
|
420 |
+
'demo' => 'https://happyaddons.com/go/demo-calendly',
|
421 |
+
'title' => __( 'Calendly', 'happy-elementor-addons' ),
|
422 |
+
'icon' => 'hm hm-calendar',
|
423 |
+
'css' => [],
|
424 |
+
'js' => [],
|
425 |
+
'vendor' => [
|
426 |
+
'css' => [],
|
427 |
+
'js' => [],
|
428 |
+
],
|
429 |
+
],
|
430 |
+
'pricing-table' => [
|
431 |
+
'demo' => 'https://happyaddons.com/go/demo-pricing-table',
|
432 |
+
'title' => __( 'Pricing Table', 'happy-elementor-addons' ),
|
433 |
+
'icon' => 'hm hm-file-cabinet',
|
434 |
+
'css' => ['pricing-table'],
|
435 |
+
'js' => [],
|
436 |
+
'vendor' => [
|
437 |
+
'css' => [],
|
438 |
+
'js' => [],
|
439 |
+
],
|
440 |
+
],
|
441 |
+
'step-flow' => [
|
442 |
+
'demo' => 'https://happyaddons.com/go/demo-step-flow',
|
443 |
+
'title' => __( 'Step Flow', 'happy-elementor-addons' ),
|
444 |
+
'icon' => 'hm hm-step-flow',
|
445 |
+
'css' => ['steps-flow'],
|
446 |
+
'js' => [],
|
447 |
+
'vendor' => [
|
448 |
+
'css' => [],
|
449 |
+
'js' => [],
|
450 |
+
],
|
451 |
+
],
|
452 |
+
'gravityforms' => [
|
453 |
+
'title' => __( 'Gravity Forms', 'happy-elementor-addons' ),
|
454 |
+
'icon' => 'hm hm-form',
|
455 |
+
'css' => [],
|
456 |
+
'js' => [],
|
457 |
+
'vendor' => [
|
458 |
+
'css' => [],
|
459 |
+
'js' => [],
|
460 |
+
],
|
461 |
+
],
|
462 |
+
'news-ticker' => [
|
463 |
+
'title' => __( 'News Ticker', 'happy-elementor-addons' ),
|
464 |
+
'icon' => 'hm hm-slider',
|
465 |
+
'css' => ['news-ticker'],
|
466 |
+
'js' => [],
|
467 |
+
'vendor' => [
|
468 |
+
'css' => [],
|
469 |
+
'js' => ['jquery-keyframes'],
|
470 |
+
],
|
471 |
+
],
|
472 |
+
'fun-factor' => [
|
473 |
+
'title' => __( 'Fun Factor', 'happy-elementor-addons' ),
|
474 |
+
'icon' => 'hm hm-slider',
|
475 |
+
'css' => ['fun-factor'],
|
476 |
+
'js' => [],
|
477 |
+
'vendor' => [
|
478 |
+
'css' => [],
|
479 |
+
'js' => ['elementor-waypoints', 'jquery-numerator'],
|
480 |
+
],
|
481 |
+
],
|
482 |
+
'bar-chart' => [
|
483 |
+
'demo' => '',
|
484 |
+
'title' => __( 'Bar Chart', 'happy-elementor-addons' ),
|
485 |
+
'icon' => 'hm hm-graph-bar',
|
486 |
+
'css' => ['chart'],
|
487 |
+
'js' => [],
|
488 |
+
'vendor' => [
|
489 |
+
'css' => [],
|
490 |
+
'js' => ['chart-js'],
|
491 |
+
],
|
492 |
+
],
|
493 |
'social-icons' => [
|
494 |
'title' => __( 'Social Icons', 'happy-elementor-addons' ),
|
495 |
'icon' => 'hm hm-bond2',
|
510 |
'js' => [],
|
511 |
],
|
512 |
],
|
513 |
+
'post-list' => [
|
514 |
+
'title' => __( 'Post List', 'happy-elementor-addons' ),
|
515 |
+
'icon' => 'hm hm-post-list',
|
516 |
+
'css' => ['post-list'],
|
517 |
+
'js' => [],
|
518 |
+
'vendor' => [
|
519 |
+
'css' => [],
|
520 |
+
'js' => [],
|
521 |
+
],
|
522 |
+
],
|
523 |
+
'post-tab' => [
|
524 |
+
'title' => __( 'Post Tab', 'happy-elementor-addons' ),
|
525 |
+
'icon' => 'hm hm-post-tab',
|
526 |
+
'css' => ['post-tab'],
|
527 |
+
'js' => [],
|
528 |
+
'vendor' => [
|
529 |
+
'css' => [],
|
530 |
+
'js' => [],
|
531 |
+
],
|
532 |
+
],
|
533 |
+
'taxonomy-list' => [
|
534 |
+
'title' => __( 'Taxonomy List', 'happy-elementor-addons' ),
|
535 |
+
'icon' => 'hm hm-clip-board',
|
536 |
+
'css' => ['taxonomy-list'],
|
537 |
+
'js' => [],
|
538 |
+
'vendor' => [
|
539 |
+
'css' => [],
|
540 |
+
'js' => [],
|
541 |
+
],
|
542 |
+
],
|
543 |
+
'threesixty-rotation' => [
|
544 |
+
'title' => __( 'Threesixty Rotation', 'happy-elementor-addons' ),
|
545 |
+
'icon' => 'hm hm-3d-rotate',
|
546 |
+
'css' => ['threesixty-rotation'],
|
547 |
+
'js' => [],
|
548 |
+
'vendor' => [
|
549 |
+
'css' => [],
|
550 |
+
'js' => ['circlr','ha-simple-magnify'],
|
551 |
+
],
|
552 |
],
|
553 |
'fluent-form' => [
|
554 |
'title' => __( 'Fluent Form', 'happy-elementor-addons' ),
|
560 |
'js' => [],
|
561 |
],
|
562 |
],
|
563 |
+
'data-table' => [
|
564 |
+
'title' => __( 'Data Table', 'happy-elementor-addons' ),
|
565 |
+
'icon' => 'hm hm-data-table',
|
566 |
+
'css' => ['data-table'],
|
567 |
+
'js' => [],
|
568 |
+
'vendor' => [
|
569 |
+
'css' => [],
|
570 |
+
'js' => [],
|
571 |
+
],
|
572 |
+
],
|
573 |
];
|
574 |
}
|
575 |
|
576 |
+
public static function get_base_widget_key() {
|
577 |
+
return apply_filters( 'happyaddons_get_base_widget_key', '_happyaddons_base' );
|
578 |
+
}
|
579 |
|
580 |
+
/**
|
581 |
+
* Init Widgets
|
582 |
+
*
|
583 |
+
* Include widgets files and register them
|
584 |
+
*
|
585 |
+
* @since 1.0.0
|
586 |
+
*
|
587 |
+
* @access public
|
588 |
+
*/
|
589 |
+
public static function register() {
|
590 |
include_once( HAPPY_ADDONS_DIR_PATH . 'base/widget-base.php' );
|
591 |
include_once( HAPPY_ADDONS_DIR_PATH . 'traits/button-renderer.php' );
|
592 |
|
593 |
+
$inactive_widgets = self::get_inactive_widgets();
|
594 |
|
595 |
+
foreach ( self::get_local_widgets_map() as $widget_key => $data ) {
|
596 |
+
if ( ! in_array( $widget_key, $inactive_widgets ) ) {
|
597 |
+
self::register_widget( $widget_key );
|
598 |
+
}
|
599 |
+
}
|
600 |
+
}
|
601 |
|
602 |
+
protected static function register_widget( $widget_key ) {
|
603 |
+
$widget_file = HAPPY_ADDONS_DIR_PATH . 'widgets/' . $widget_key . '/widget.php';
|
604 |
|
605 |
+
if ( is_readable( $widget_file ) ) {
|
606 |
|
607 |
+
include_once( $widget_file );
|
608 |
|
609 |
+
$widget_class = '\Happy_Addons\Elementor\Widget\\' . str_replace( '-', '_', $widget_key );
|
610 |
+
if ( class_exists( $widget_class ) ) {
|
611 |
+
ha_elementor()->widgets_manager->register_widget_type( new $widget_class );
|
612 |
+
}
|
613 |
+
}
|
614 |
+
}
|
615 |
}
|
616 |
+
|
617 |
+
Widgets_Manager::init();
|
@@ -72,8 +72,8 @@ class WPML_Manager {
|
|
72 |
'type' => __( 'Card: Button Text', 'happy-elementor-addons' ),
|
73 |
'editor_type' => 'LINE',
|
74 |
],
|
75 |
-
[
|
76 |
-
'field' => '
|
77 |
'type' => __( 'Card: Button Link', 'happy-elementor-addons' ),
|
78 |
'editor_type' => 'LINK',
|
79 |
],
|
@@ -98,8 +98,8 @@ class WPML_Manager {
|
|
98 |
'type' => __( 'Dual Button: Primary Button Text', 'happy-elementor-addons' ),
|
99 |
'editor_type' => 'LINE',
|
100 |
],
|
101 |
-
[
|
102 |
-
'field' => '
|
103 |
'type' => __( 'Dual Button: Primary Button Link', 'happy-elementor-addons' ),
|
104 |
'editor_type' => 'LINK',
|
105 |
],
|
@@ -113,8 +113,8 @@ class WPML_Manager {
|
|
113 |
'type' => __( 'Dual Button: Secondary Button Text', 'happy-elementor-addons' ),
|
114 |
'editor_type' => 'LINE',
|
115 |
],
|
116 |
-
[
|
117 |
-
'field' => '
|
118 |
'type' => __( 'Dual Button: Secondary Button Link', 'happy-elementor-addons' ),
|
119 |
'editor_type' => 'LINK',
|
120 |
],
|
@@ -172,8 +172,8 @@ class WPML_Manager {
|
|
172 |
'type' => __( 'Gradient_Heading: Title', 'happy-elementor-addons' ),
|
173 |
'editor_type' => 'AREA',
|
174 |
],
|
175 |
-
[
|
176 |
-
'field' => '
|
177 |
'type' => __( 'Gradient_Heading: Link', 'happy-elementor-addons' ),
|
178 |
'editor_type' => 'LINK',
|
179 |
],
|
@@ -195,8 +195,8 @@ class WPML_Manager {
|
|
195 |
'type' => __( 'Icon Box: Badge Text', 'happy-elementor-addons' ),
|
196 |
'editor_type' => 'LINE',
|
197 |
],
|
198 |
-
[
|
199 |
-
'field' => '
|
200 |
'type' => __( 'Icon Box: Link', 'happy-elementor-addons' ),
|
201 |
'editor_type' => 'LINK',
|
202 |
],
|
@@ -255,8 +255,8 @@ class WPML_Manager {
|
|
255 |
'type' => __( 'Info Box: Button Text', 'happy-elementor-addons' ),
|
256 |
'editor_type' => 'LINE',
|
257 |
],
|
258 |
-
[
|
259 |
-
'field' => '
|
260 |
'type' => __( 'Info Box: Button Link', 'happy-elementor-addons' ),
|
261 |
'editor_type' => 'LINK',
|
262 |
],
|
@@ -364,8 +364,8 @@ class WPML_Manager {
|
|
364 |
'type' => __( 'Pricing Table: Button Text', 'happy-elementor-addons' ),
|
365 |
'editor_type' => 'LINE',
|
366 |
],
|
367 |
-
[
|
368 |
-
'field' => '
|
369 |
'type' => __( 'Pricing Table: Button Link', 'happy-elementor-addons' ),
|
370 |
'editor_type' => 'LINK',
|
371 |
],
|
@@ -445,8 +445,8 @@ class WPML_Manager {
|
|
445 |
'type' => __( 'Step Flow: Description', 'happy-elementor-addons' ),
|
446 |
'editor_type' => 'AREA',
|
447 |
],
|
448 |
-
[
|
449 |
-
'field' => '
|
450 |
'type' => __( 'Step Flow: Link', 'happy-elementor-addons' ),
|
451 |
'editor_type' => 'LINK',
|
452 |
],
|
@@ -515,3 +515,5 @@ class WPML_Manager {
|
|
515 |
return $widgets;
|
516 |
}
|
517 |
}
|
|
|
|
72 |
'type' => __( 'Card: Button Text', 'happy-elementor-addons' ),
|
73 |
'editor_type' => 'LINE',
|
74 |
],
|
75 |
+
'button_link' => [
|
76 |
+
'field' => 'url',
|
77 |
'type' => __( 'Card: Button Link', 'happy-elementor-addons' ),
|
78 |
'editor_type' => 'LINK',
|
79 |
],
|
98 |
'type' => __( 'Dual Button: Primary Button Text', 'happy-elementor-addons' ),
|
99 |
'editor_type' => 'LINE',
|
100 |
],
|
101 |
+
'left_button_link' => [
|
102 |
+
'field' => 'url',
|
103 |
'type' => __( 'Dual Button: Primary Button Link', 'happy-elementor-addons' ),
|
104 |
'editor_type' => 'LINK',
|
105 |
],
|
113 |
'type' => __( 'Dual Button: Secondary Button Text', 'happy-elementor-addons' ),
|
114 |
'editor_type' => 'LINE',
|
115 |
],
|
116 |
+
'right_button_link' => [
|
117 |
+
'field' => 'url',
|
118 |
'type' => __( 'Dual Button: Secondary Button Link', 'happy-elementor-addons' ),
|
119 |
'editor_type' => 'LINK',
|
120 |
],
|
172 |
'type' => __( 'Gradient_Heading: Title', 'happy-elementor-addons' ),
|
173 |
'editor_type' => 'AREA',
|
174 |
],
|
175 |
+
'link' => [
|
176 |
+
'field' => 'url',
|
177 |
'type' => __( 'Gradient_Heading: Link', 'happy-elementor-addons' ),
|
178 |
'editor_type' => 'LINK',
|
179 |
],
|
195 |
'type' => __( 'Icon Box: Badge Text', 'happy-elementor-addons' ),
|
196 |
'editor_type' => 'LINE',
|
197 |
],
|
198 |
+
'link' => [
|
199 |
+
'field' => 'url',
|
200 |
'type' => __( 'Icon Box: Link', 'happy-elementor-addons' ),
|
201 |
'editor_type' => 'LINK',
|
202 |
],
|
255 |
'type' => __( 'Info Box: Button Text', 'happy-elementor-addons' ),
|
256 |
'editor_type' => 'LINE',
|
257 |
],
|
258 |
+
'button_link' => [
|
259 |
+
'field' => 'url',
|
260 |
'type' => __( 'Info Box: Button Link', 'happy-elementor-addons' ),
|
261 |
'editor_type' => 'LINK',
|
262 |
],
|
364 |
'type' => __( 'Pricing Table: Button Text', 'happy-elementor-addons' ),
|
365 |
'editor_type' => 'LINE',
|
366 |
],
|
367 |
+
'button_link' => [
|
368 |
+
'field' => 'url',
|
369 |
'type' => __( 'Pricing Table: Button Link', 'happy-elementor-addons' ),
|
370 |
'editor_type' => 'LINK',
|
371 |
],
|
445 |
'type' => __( 'Step Flow: Description', 'happy-elementor-addons' ),
|
446 |
'editor_type' => 'AREA',
|
447 |
],
|
448 |
+
'link' => [
|
449 |
+
'field' => 'url',
|
450 |
'type' => __( 'Step Flow: Link', 'happy-elementor-addons' ),
|
451 |
'editor_type' => 'LINK',
|
452 |
],
|
515 |
return $widgets;
|
516 |
}
|
517 |
}
|
518 |
+
|
519 |
+
WPML_Manager::init();
|
@@ -196,3 +196,5 @@ class Background_Overlay {
|
|
196 |
$element->end_controls_section();
|
197 |
}
|
198 |
}
|
|
|
|
196 |
$element->end_controls_section();
|
197 |
}
|
198 |
}
|
199 |
+
|
200 |
+
Background_Overlay::init();
|
@@ -51,3 +51,5 @@ href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/O
|
|
51 |
);
|
52 |
}
|
53 |
}
|
|
|
|
51 |
);
|
52 |
}
|
53 |
}
|
54 |
+
|
55 |
+
Column_Extended::init();
|
@@ -8,865 +8,1202 @@ defined( 'ABSPATH' ) || die();
|
|
8 |
|
9 |
class Happy_Effects {
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
|
24 |
-
|
25 |
-
|
|
|
26 |
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
[
|
34 |
-
'label' => __( 'Floating Effects', 'happy-elementor-addons' ),
|
35 |
-
'type' => Controls_Manager::SWITCHER,
|
36 |
-
'return_value' => 'yes',
|
37 |
-
'frontend_available' => true,
|
38 |
-
]
|
39 |
-
);
|
40 |
|
41 |
-
|
42 |
-
|
43 |
-
[
|
44 |
-
'label' => __( 'Translate', 'happy-elementor-addons' ),
|
45 |
-
'type' => Controls_Manager::POPOVER_TOGGLE,
|
46 |
-
'return_value' => 'yes',
|
47 |
-
'frontend_available' => true,
|
48 |
-
'condition' => [
|
49 |
-
'ha_floating_fx' => 'yes',
|
50 |
-
]
|
51 |
-
]
|
52 |
-
);
|
53 |
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
'range' => [
|
69 |
-
'px' => [
|
70 |
-
'min' => -100,
|
71 |
-
'max' => 100,
|
72 |
-
]
|
73 |
-
],
|
74 |
-
'labels' => [
|
75 |
-
__( 'From', 'happy-elementor-addons' ),
|
76 |
-
__( 'To', 'happy-elementor-addons' ),
|
77 |
-
],
|
78 |
-
'scales' => 1,
|
79 |
-
'handles' => 'range',
|
80 |
-
'condition' => [
|
81 |
-
'ha_floating_fx_translate_toggle' => 'yes',
|
82 |
-
'ha_floating_fx' => 'yes',
|
83 |
-
],
|
84 |
-
'render_type' => 'none',
|
85 |
-
'frontend_available' => true,
|
86 |
-
]
|
87 |
-
);
|
88 |
|
89 |
-
|
90 |
-
'ha_floating_fx_translate_y',
|
91 |
-
[
|
92 |
-
'label' => __( 'Translate Y', 'happy-elementor-addons' ),
|
93 |
-
'type' => Controls_Manager::SLIDER,
|
94 |
-
'default' => [
|
95 |
-
'sizes' => [
|
96 |
-
'from' => 0,
|
97 |
-
'to' => 5,
|
98 |
-
],
|
99 |
-
'unit' => 'px',
|
100 |
-
],
|
101 |
-
'range' => [
|
102 |
-
'px' => [
|
103 |
-
'min' => -100,
|
104 |
-
'max' => 100,
|
105 |
-
]
|
106 |
-
],
|
107 |
-
'labels' => [
|
108 |
-
__( 'From', 'happy-elementor-addons' ),
|
109 |
-
__( 'To', 'happy-elementor-addons' ),
|
110 |
-
],
|
111 |
-
'scales' => 1,
|
112 |
-
'handles' => 'range',
|
113 |
-
'condition' => [
|
114 |
-
'ha_floating_fx_translate_toggle' => 'yes',
|
115 |
-
'ha_floating_fx' => 'yes',
|
116 |
-
],
|
117 |
-
'render_type' => 'none',
|
118 |
-
'frontend_available' => true,
|
119 |
-
]
|
120 |
-
);
|
121 |
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
146 |
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
168 |
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
|
184 |
-
|
185 |
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
'range' => [
|
199 |
-
'px' => [
|
200 |
-
'min' => -180,
|
201 |
-
'max' => 180,
|
202 |
-
]
|
203 |
-
],
|
204 |
-
'labels' => [
|
205 |
-
__( 'From', 'happy-elementor-addons' ),
|
206 |
-
__( 'To', 'happy-elementor-addons' ),
|
207 |
-
],
|
208 |
-
'scales' => 1,
|
209 |
-
'handles' => 'range',
|
210 |
-
'condition' => [
|
211 |
-
'ha_floating_fx_rotate_toggle' => 'yes',
|
212 |
-
'ha_floating_fx' => 'yes',
|
213 |
-
],
|
214 |
-
'render_type' => 'none',
|
215 |
-
'frontend_available' => true,
|
216 |
-
]
|
217 |
-
);
|
218 |
|
219 |
-
|
220 |
-
'ha_floating_fx_rotate_y',
|
221 |
-
[
|
222 |
-
'label' => __( 'Rotate Y', 'happy-elementor-addons' ),
|
223 |
-
'type' => Controls_Manager::SLIDER,
|
224 |
-
'default' => [
|
225 |
-
'sizes' => [
|
226 |
-
'from' => 0,
|
227 |
-
'to' => 45,
|
228 |
-
],
|
229 |
-
'unit' => 'px',
|
230 |
-
],
|
231 |
-
'range' => [
|
232 |
-
'px' => [
|
233 |
-
'min' => -180,
|
234 |
-
'max' => 180,
|
235 |
-
]
|
236 |
-
],
|
237 |
-
'labels' => [
|
238 |
-
__( 'From', 'happy-elementor-addons' ),
|
239 |
-
__( 'To', 'happy-elementor-addons' ),
|
240 |
-
],
|
241 |
-
'scales' => 1,
|
242 |
-
'handles' => 'range',
|
243 |
-
'condition' => [
|
244 |
-
'ha_floating_fx_rotate_toggle' => 'yes',
|
245 |
-
'ha_floating_fx' => 'yes',
|
246 |
-
],
|
247 |
-
'render_type' => 'none',
|
248 |
-
'frontend_available' => true,
|
249 |
-
]
|
250 |
-
);
|
251 |
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
309 |
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
331 |
|
332 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
333 |
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
346 |
|
347 |
-
|
348 |
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
'range' => [
|
362 |
-
'px' => [
|
363 |
-
'min' => 0,
|
364 |
-
'max' => 5,
|
365 |
-
'step' => .1
|
366 |
-
]
|
367 |
-
],
|
368 |
-
'labels' => [
|
369 |
-
__( 'From', 'happy-elementor-addons' ),
|
370 |
-
__( 'To', 'happy-elementor-addons' ),
|
371 |
-
],
|
372 |
-
'scales' => 1,
|
373 |
-
'handles' => 'range',
|
374 |
-
'condition' => [
|
375 |
-
'ha_floating_fx_scale_toggle' => 'yes',
|
376 |
-
'ha_floating_fx' => 'yes',
|
377 |
-
],
|
378 |
-
'render_type' => 'none',
|
379 |
-
'frontend_available' => true,
|
380 |
-
]
|
381 |
-
);
|
382 |
|
383 |
-
|
384 |
-
'ha_floating_fx_scale_y',
|
385 |
-
[
|
386 |
-
'label' => __( 'Scale Y', 'happy-elementor-addons' ),
|
387 |
-
'type' => Controls_Manager::SLIDER,
|
388 |
-
'default' => [
|
389 |
-
'sizes' => [
|
390 |
-
'from' => 1,
|
391 |
-
'to' => 1.2,
|
392 |
-
],
|
393 |
-
'unit' => 'px',
|
394 |
-
],
|
395 |
-
'range' => [
|
396 |
-
'px' => [
|
397 |
-
'min' => 0,
|
398 |
-
'max' => 5,
|
399 |
-
'step' => .1
|
400 |
-
]
|
401 |
-
],
|
402 |
-
'labels' => [
|
403 |
-
__( 'From', 'happy-elementor-addons' ),
|
404 |
-
__( 'To', 'happy-elementor-addons' ),
|
405 |
-
],
|
406 |
-
'scales' => 1,
|
407 |
-
'handles' => 'range',
|
408 |
-
'condition' => [
|
409 |
-
'ha_floating_fx_scale_toggle' => 'yes',
|
410 |
-
'ha_floating_fx' => 'yes',
|
411 |
-
],
|
412 |
-
'render_type' => 'none',
|
413 |
-
'frontend_available' => true,
|
414 |
-
]
|
415 |
-
);
|
416 |
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
463 |
|
464 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
465 |
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
473 |
|
474 |
-
|
475 |
-
|
476 |
-
'ha_transform_fx',
|
477 |
-
[
|
478 |
-
'label' => __( 'CSS Transform', 'happy-elementor-addons' ),
|
479 |
-
'type' => Controls_Manager::SWITCHER,
|
480 |
-
'return_value' => 'yes',
|
481 |
-
]
|
482 |
-
);
|
483 |
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
|
|
|
|
|
|
|
|
495 |
|
496 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
497 |
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
'max' => 1000,
|
508 |
-
]
|
509 |
-
],
|
510 |
-
'condition' => [
|
511 |
-
'ha_transform_fx_translate_toggle' => 'yes',
|
512 |
-
'ha_transform_fx' => 'yes',
|
513 |
-
],
|
514 |
-
]
|
515 |
-
);
|
516 |
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
],
|
529 |
-
'condition' => [
|
530 |
-
'ha_transform_fx_translate_toggle' => 'yes',
|
531 |
-
'ha_transform_fx' => 'yes',
|
532 |
-
],
|
533 |
-
'selectors' => [
|
534 |
-
'(desktop){{WRAPPER}}' =>
|
535 |
-
'-ms-transform:'
|
536 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px);'
|
537 |
-
. '-webkit-transform:'
|
538 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px);'
|
539 |
-
. 'transform:'
|
540 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px);',
|
541 |
-
'(tablet){{WRAPPER}}' =>
|
542 |
-
'-ms-transform:'
|
543 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px);'
|
544 |
-
. '-webkit-transform:'
|
545 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px);'
|
546 |
-
. 'transform:'
|
547 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px);',
|
548 |
-
'(mobile){{WRAPPER}}' =>
|
549 |
-
'-ms-transform:'
|
550 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px);'
|
551 |
-
. '-webkit-transform:'
|
552 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px);'
|
553 |
-
. 'transform:'
|
554 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px);',
|
555 |
-
]
|
556 |
-
]
|
557 |
-
);
|
558 |
|
559 |
-
|
560 |
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
571 |
|
572 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
573 |
|
574 |
-
|
575 |
-
'ha_transform_fx_rotate_x',
|
576 |
-
[
|
577 |
-
'label' => __( 'Rotate X', 'happy-elementor-addons' ),
|
578 |
-
'type' => Controls_Manager::SLIDER,
|
579 |
-
'size_units' => ['px'],
|
580 |
-
'range' => [
|
581 |
-
'px' => [
|
582 |
-
'min' => -180,
|
583 |
-
'max' => 180,
|
584 |
-
]
|
585 |
-
],
|
586 |
-
'condition' => [
|
587 |
-
'ha_transform_fx_rotate_toggle' => 'yes',
|
588 |
-
'ha_transform_fx' => 'yes',
|
589 |
-
],
|
590 |
-
]
|
591 |
-
);
|
592 |
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
]
|
604 |
-
],
|
605 |
-
'condition' => [
|
606 |
-
'ha_transform_fx_rotate_toggle' => 'yes',
|
607 |
-
'ha_transform_fx' => 'yes',
|
608 |
-
],
|
609 |
-
]
|
610 |
-
);
|
611 |
|
612 |
-
|
613 |
-
'ha_transform_fx_rotate_z',
|
614 |
-
[
|
615 |
-
'label' => __( 'Rotate Z', 'happy-elementor-addons' ),
|
616 |
-
'type' => Controls_Manager::SLIDER,
|
617 |
-
'size_units' => ['px'],
|
618 |
-
'range' => [
|
619 |
-
'px' => [
|
620 |
-
'min' => -180,
|
621 |
-
'max' => 180,
|
622 |
-
]
|
623 |
-
],
|
624 |
-
'condition' => [
|
625 |
-
'ha_transform_fx_rotate_toggle' => 'yes',
|
626 |
-
'ha_transform_fx' => 'yes',
|
627 |
-
],
|
628 |
-
'selectors' => [
|
629 |
-
'(desktop){{WRAPPER}}' =>
|
630 |
-
'-ms-transform:'
|
631 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
632 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg);'
|
633 |
-
. '-webkit-transform:'
|
634 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
635 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg);'
|
636 |
-
. 'transform:'
|
637 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
638 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg);',
|
639 |
-
'(tablet){{WRAPPER}}' =>
|
640 |
-
'-ms-transform:'
|
641 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
642 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg);'
|
643 |
-
. '-webkit-transform:'
|
644 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
645 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg);'
|
646 |
-
. 'transform:'
|
647 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
648 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg);',
|
649 |
-
'(mobile){{WRAPPER}}' =>
|
650 |
-
'-ms-transform:'
|
651 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
652 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg);'
|
653 |
-
. '-webkit-transform:'
|
654 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
655 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg);'
|
656 |
-
. 'transform:'
|
657 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
658 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg);'
|
659 |
-
]
|
660 |
-
]
|
661 |
-
);
|
662 |
|
663 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
664 |
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
'condition' => [
|
672 |
-
'ha_transform_fx' => 'yes',
|
673 |
-
],
|
674 |
-
]
|
675 |
-
);
|
676 |
|
677 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
678 |
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
'(desktop){{WRAPPER}}' =>
|
724 |
-
'-ms-transform:'
|
725 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
726 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
727 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}});'
|
728 |
-
. '-webkit-transform:'
|
729 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
730 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
731 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}});'
|
732 |
-
. 'transform:'
|
733 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
734 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
735 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}});',
|
736 |
-
'(tablet){{WRAPPER}}' =>
|
737 |
-
'-ms-transform:'
|
738 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
739 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
740 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}});'
|
741 |
-
. '-webkit-transform:'
|
742 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
743 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
744 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}});'
|
745 |
-
. 'transform:'
|
746 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
747 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
748 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}});',
|
749 |
-
'(mobile){{WRAPPER}}' =>
|
750 |
-
'-ms-transform:'
|
751 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
752 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
753 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}});'
|
754 |
-
. '-webkit-transform:'
|
755 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
756 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
757 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}});'
|
758 |
-
. 'transform:'
|
759 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
760 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
761 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}});'
|
762 |
-
]
|
763 |
-
]
|
764 |
-
);
|
765 |
|
766 |
-
|
767 |
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
|
780 |
-
|
781 |
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
|
|
800 |
|
801 |
-
|
802 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
803 |
[
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
'px' => [
|
809 |
-
'min' => -180,
|
810 |
-
'max' => 180,
|
811 |
-
]
|
812 |
-
],
|
813 |
-
'condition' => [
|
814 |
-
'ha_transform_fx_skew_toggle' => 'yes',
|
815 |
-
'ha_transform_fx' => 'yes',
|
816 |
-
],
|
817 |
-
'selectors' => [
|
818 |
-
'(desktop){{WRAPPER}}' =>
|
819 |
-
'-ms-transform:'
|
820 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
821 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
822 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}}) '
|
823 |
-
. 'skew({{ha_transform_fx_skew_x.SIZE || 0}}deg, {{ha_transform_fx_skew_y.SIZE || 0}}deg);'
|
824 |
-
. '-webkit-transform:'
|
825 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
826 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
827 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}}) '
|
828 |
-
. 'skew({{ha_transform_fx_skew_x.SIZE || 0}}deg, {{ha_transform_fx_skew_y.SIZE || 0}}deg);'
|
829 |
-
. 'transform:'
|
830 |
-
. 'translate({{ha_transform_fx_translate_x.SIZE || 0}}px, {{ha_transform_fx_translate_y.SIZE || 0}}px) '
|
831 |
-
. 'rotateX({{ha_transform_fx_rotate_x.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z.SIZE || 0}}deg) '
|
832 |
-
. 'scaleX({{ha_transform_fx_scale_x.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y.SIZE || 1}}) '
|
833 |
-
. 'skew({{ha_transform_fx_skew_x.SIZE || 0}}deg, {{ha_transform_fx_skew_y.SIZE || 0}}deg);',
|
834 |
-
'(tablet){{WRAPPER}}' =>
|
835 |
-
'-ms-transform:'
|
836 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
837 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
838 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}}) '
|
839 |
-
. 'skew({{ha_transform_fx_skew_x_tablet.SIZE || 0}}deg, {{ha_transform_fx_skew_y_tablet.SIZE || 0}}deg);'
|
840 |
-
. '-webkit-transform:'
|
841 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
842 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
843 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}}) '
|
844 |
-
. 'skew({{ha_transform_fx_skew_x_tablet.SIZE || 0}}deg, {{ha_transform_fx_skew_y_tablet.SIZE || 0}}deg);'
|
845 |
-
. 'transform:'
|
846 |
-
. 'translate({{ha_transform_fx_translate_x_tablet.SIZE || 0}}px, {{ha_transform_fx_translate_y_tablet.SIZE || 0}}px) '
|
847 |
-
. 'rotateX({{ha_transform_fx_rotate_x_tablet.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_tablet.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_tablet.SIZE || 0}}deg) '
|
848 |
-
. 'scaleX({{ha_transform_fx_scale_x_tablet.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_tablet.SIZE || 1}}) '
|
849 |
-
. 'skew({{ha_transform_fx_skew_x_tablet.SIZE || 0}}deg, {{ha_transform_fx_skew_y_tablet.SIZE || 0}}deg);',
|
850 |
-
'(mobile){{WRAPPER}}' =>
|
851 |
-
'-ms-transform:'
|
852 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
853 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
854 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}}) '
|
855 |
-
. 'skew({{ha_transform_fx_skew_x_mobile.SIZE || 0}}deg, {{ha_transform_fx_skew_y_mobile.SIZE || 0}}deg);'
|
856 |
-
. '-webkit-transform:'
|
857 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
858 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
859 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}}) '
|
860 |
-
. 'skew({{ha_transform_fx_skew_x_mobile.SIZE || 0}}deg, {{ha_transform_fx_skew_y_mobile.SIZE || 0}}deg);'
|
861 |
-
. 'transform:'
|
862 |
-
. 'translate({{ha_transform_fx_translate_x_mobile.SIZE || 0}}px, {{ha_transform_fx_translate_y_mobile.SIZE || 0}}px) '
|
863 |
-
. 'rotateX({{ha_transform_fx_rotate_x_mobile.SIZE || 0}}deg) rotateY({{ha_transform_fx_rotate_y_mobile.SIZE || 0}}deg) rotateZ({{ha_transform_fx_rotate_z_mobile.SIZE || 0}}deg) '
|
864 |
-
. 'scaleX({{ha_transform_fx_scale_x_mobile.SIZE || 1}}) scaleY({{ha_transform_fx_scale_y_mobile.SIZE || 1}}) '
|
865 |
-
. 'skew({{ha_transform_fx_skew_x_mobile.SIZE || 0}}deg, {{ha_transform_fx_skew_y_mobile.SIZE || 0}}deg);'
|
866 |
-
]
|
867 |
]
|
868 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
869 |
|
870 |
-
|
871 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
872 |
}
|
|
|
|
8 |
|
9 |
class Happy_Effects {
|
10 |
|
11 |
+
public static function init() {
|
12 |
+
add_action( 'elementor/element/common/_section_style/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
|
13 |
+
}
|
14 |
|
15 |
+
public static function add_controls_section( Element_Base $element ) {
|
16 |
+
$element->start_controls_section(
|
17 |
+
'_section_happy_effects',
|
18 |
+
[
|
19 |
+
'label' => __( 'Happy Effects', 'happy-elementor-addons' ) . ha_get_section_icon(),
|
20 |
+
'tab' => Controls_Manager::TAB_ADVANCED,
|
21 |
+
]
|
22 |
+
);
|
23 |
|
24 |
+
if ( ha_is_floating_effects_enabled() ) {
|
25 |
+
self::add_floating_effects( $element );
|
26 |
+
}
|
27 |
|
28 |
+
if ( ha_is_floating_effects_enabled() && ha_is_css_transform_enabled() ) {
|
29 |
+
$element->add_control(
|
30 |
+
'ha_effects_divider_1',
|
31 |
+
[
|
32 |
+
'type' => Controls_Manager::DIVIDER,
|
33 |
+
]
|
34 |
+
);
|
35 |
+
}
|
36 |
|
37 |
+
if ( ha_is_css_transform_enabled() ) {
|
38 |
+
self::add_css_effects( $element );
|
39 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
|
41 |
+
$element->end_controls_section();
|
42 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
43 |
|
44 |
+
public static function add_floating_effects( Element_Base $element ) {
|
45 |
+
$element->add_control(
|
46 |
+
'ha_floating_fx',
|
47 |
+
[
|
48 |
+
'label' => __( 'Floating Effects', 'happy-elementor-addons' ),
|
49 |
+
'type' => Controls_Manager::SWITCHER,
|
50 |
+
'return_value' => 'yes',
|
51 |
+
'frontend_available' => true,
|
52 |
+
]
|
53 |
+
);
|
54 |
|
55 |
+
$element->add_control(
|
56 |
+
'ha_floating_fx_translate_toggle',
|
57 |
+
[
|
58 |
+
'label' => __( 'Translate', 'happy-elementor-addons' ),
|
59 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
60 |
+
'return_value' => 'yes',
|
61 |
+
'frontend_available' => true,
|
62 |
+
'condition' => [
|
63 |
+
'ha_floating_fx' => 'yes',
|
64 |
+
]
|
65 |
+
]
|
66 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
67 |
|
68 |
+
$element->start_popover();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
+
$element->add_control(
|
71 |
+
'ha_floating_fx_translate_x',
|
72 |
+
[
|
73 |
+
'label' => __( 'Translate X', 'happy-elementor-addons' ),
|
74 |
+
'type' => Controls_Manager::SLIDER,
|
75 |
+
'default' => [
|
76 |
+
'sizes' => [
|
77 |
+
'from' => 0,
|
78 |
+
'to' => 5,
|
79 |
+
],
|
80 |
+
'unit' => 'px',
|
81 |
+
],
|
82 |
+
'range' => [
|
83 |
+
'px' => [
|
84 |
+
'min' => -100,
|
85 |
+
'max' => 100,
|
86 |
+
]
|
87 |
+
],
|
88 |
+
'labels' => [
|
89 |
+
__( 'From', 'happy-elementor-addons' ),
|
90 |
+
__( 'To', 'happy-elementor-addons' ),
|
91 |
+
],
|
92 |
+
'scales' => 1,
|
93 |
+
'handles' => 'range',
|
94 |
+
'condition' => [
|
95 |
+
'ha_floating_fx_translate_toggle' => 'yes',
|
96 |
+
'ha_floating_fx' => 'yes',
|
97 |
+
],
|
98 |
+
'render_type' => 'none',
|
99 |
+
'frontend_available' => true,
|
100 |
+
]
|
101 |
+
);
|
102 |
|
103 |
+
$element->add_control(
|
104 |
+
'ha_floating_fx_translate_y',
|
105 |
+
[
|
106 |
+
'label' => __( 'Translate Y', 'happy-elementor-addons' ),
|
107 |
+
'type' => Controls_Manager::SLIDER,
|
108 |
+
'default' => [
|
109 |
+
'sizes' => [
|
110 |
+
'from' => 0,
|
111 |
+
'to' => 5,
|
112 |
+
],
|
113 |
+
'unit' => 'px',
|
114 |
+
],
|
115 |
+
'range' => [
|
116 |
+
'px' => [
|
117 |
+
'min' => -100,
|
118 |
+
'max' => 100,
|
119 |
+
]
|
120 |
+
],
|
121 |
+
'labels' => [
|
122 |
+
__( 'From', 'happy-elementor-addons' ),
|
123 |
+
__( 'To', 'happy-elementor-addons' ),
|
124 |
+
],
|
125 |
+
'scales' => 1,
|
126 |
+
'handles' => 'range',
|
127 |
+
'condition' => [
|
128 |
+
'ha_floating_fx_translate_toggle' => 'yes',
|
129 |
+
'ha_floating_fx' => 'yes',
|
130 |
+
],
|
131 |
+
'render_type' => 'none',
|
132 |
+
'frontend_available' => true,
|
133 |
+
]
|
134 |
+
);
|
135 |
|
136 |
+
$element->add_control(
|
137 |
+
'ha_floating_fx_translate_duration',
|
138 |
+
[
|
139 |
+
'label' => __( 'Duration', 'happy-elementor-addons' ),
|
140 |
+
'type' => Controls_Manager::SLIDER,
|
141 |
+
'size_units' => ['px'],
|
142 |
+
'range' => [
|
143 |
+
'px' => [
|
144 |
+
'min' => 0,
|
145 |
+
'max' => 10000,
|
146 |
+
'step' => 100
|
147 |
+
]
|
148 |
+
],
|
149 |
+
'default' => [
|
150 |
+
'size' => 1000,
|
151 |
+
],
|
152 |
+
'condition' => [
|
153 |
+
'ha_floating_fx_translate_toggle' => 'yes',
|
154 |
+
'ha_floating_fx' => 'yes',
|
155 |
+
],
|
156 |
+
'render_type' => 'none',
|
157 |
+
'frontend_available' => true,
|
158 |
+
]
|
159 |
+
);
|
160 |
|
161 |
+
$element->add_control(
|
162 |
+
'ha_floating_fx_translate_delay',
|
163 |
+
[
|
164 |
+
'label' => __( 'Delay', 'happy-elementor-addons' ),
|
165 |
+
'type' => Controls_Manager::SLIDER,
|
166 |
+
'size_units' => ['px'],
|
167 |
+
'range' => [
|
168 |
+
'px' => [
|
169 |
+
'min' => 0,
|
170 |
+
'max' => 5000,
|
171 |
+
'step' => 100
|
172 |
+
]
|
173 |
+
],
|
174 |
+
'condition' => [
|
175 |
+
'ha_floating_fx_translate_toggle' => 'yes',
|
176 |
+
'ha_floating_fx' => 'yes',
|
177 |
+
],
|
178 |
+
'render_type' => 'none',
|
179 |
+
'frontend_available' => true,
|
180 |
+
]
|
181 |
+
);
|
182 |
|
183 |
+
$element->end_popover();
|
184 |
|
185 |
+
$element->add_control(
|
186 |
+
'ha_floating_fx_rotate_toggle',
|
187 |
+
[
|
188 |
+
'label' => __( 'Rotate', 'happy-elementor-addons' ),
|
189 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
190 |
+
'return_value' => 'yes',
|
191 |
+
'frontend_available' => true,
|
192 |
+
'condition' => [
|
193 |
+
'ha_floating_fx' => 'yes',
|
194 |
+
]
|
195 |
+
]
|
196 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
|
198 |
+
$element->start_popover();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
|
200 |
+
$element->add_control(
|
201 |
+
'ha_floating_fx_rotate_x',
|
202 |
+
[
|
203 |
+
'label' => __( 'Rotate X', 'happy-elementor-addons' ),
|
204 |
+
'type' => Controls_Manager::SLIDER,
|
205 |
+
'default' => [
|
206 |
+
'sizes' => [
|
207 |
+
'from' => 0,
|
208 |
+
'to' => 45,
|
209 |
+
],
|
210 |
+
'unit' => 'px',
|
211 |
+
],
|
212 |
+
'range' => [
|
213 |
+
'px' => [
|
214 |
+
'min' => -180,
|
215 |
+
'max' => 180,
|
216 |
+
]
|
217 |
+
],
|
218 |
+
'labels' => [
|
219 |
+
__( 'From', 'happy-elementor-addons' ),
|
220 |
+
__( 'To', 'happy-elementor-addons' ),
|
221 |
+
],
|
222 |
+
'scales' => 1,
|
223 |
+
'handles' => 'range',
|
224 |
+
'condition' => [
|
225 |
+
'ha_floating_fx_rotate_toggle' => 'yes',
|
226 |
+
'ha_floating_fx' => 'yes',
|
227 |
+
],
|
228 |
+
'render_type' => 'none',
|
229 |
+
'frontend_available' => true,
|
230 |
+
]
|
231 |
+
);
|
232 |
|
233 |
+
$element->add_control(
|
234 |
+
'ha_floating_fx_rotate_y',
|
235 |
+
[
|
236 |
+
'label' => __( 'Rotate Y', 'happy-elementor-addons' ),
|
237 |
+
'type' => Controls_Manager::SLIDER,
|
238 |
+
'default' => [
|
239 |
+
'sizes' => [
|
240 |
+
'from' => 0,
|
241 |
+
'to' => 45,
|
242 |
+
],
|
243 |
+
'unit' => 'px',
|
244 |
+
],
|
245 |
+
'range' => [
|
246 |
+
'px' => [
|
247 |
+
'min' => -180,
|
248 |
+
'max' => 180,
|
249 |
+
]
|
250 |
+
],
|
251 |
+
'labels' => [
|
252 |
+
__( 'From', 'happy-elementor-addons' ),
|
253 |
+
__( 'To', 'happy-elementor-addons' ),
|
254 |
+
],
|
255 |
+
'scales' => 1,
|
256 |
+
'handles' => 'range',
|
257 |
+
'condition' => [
|
258 |
+
'ha_floating_fx_rotate_toggle' => 'yes',
|
259 |
+
'ha_floating_fx' => 'yes',
|
260 |
+
],
|
261 |
+
'render_type' => 'none',
|
262 |
+
'frontend_available' => true,
|
263 |
+
]
|
264 |
+
);
|
265 |
|
266 |
+
$element->add_control(
|
267 |
+
'ha_floating_fx_rotate_z',
|
268 |
+
[
|
269 |
+
'label' => __( 'Rotate Z', 'happy-elementor-addons' ),
|
270 |
+
'type' => Controls_Manager::SLIDER,
|
271 |
+
'default' => [
|
272 |
+
'sizes' => [
|
273 |
+
'from' => 0,
|
274 |
+
'to' => 45,
|
275 |
+
],
|
276 |
+
'unit' => 'px',
|
277 |
+
],
|
278 |
+
'range' => [
|
279 |
+
'px' => [
|
280 |
+
'min' => -180,
|
281 |
+
'max' => 180,
|
282 |
+
]
|
283 |
+
],
|
284 |
+
'labels' => [
|
285 |
+
__( 'From', 'happy-elementor-addons' ),
|
286 |
+
__( 'To', 'happy-elementor-addons' ),
|
287 |
+
],
|
288 |
+
'scales' => 1,
|
289 |
+
'handles' => 'range',
|
290 |
+
'condition' => [
|
291 |
+
'ha_floating_fx_rotate_toggle' => 'yes',
|
292 |
+
'ha_floating_fx' => 'yes',
|
293 |
+
],
|
294 |
+
'render_type' => 'none',
|
295 |
+
'frontend_available' => true,
|
296 |
+
]
|
297 |
+
);
|
298 |
|
299 |
+
$element->add_control(
|
300 |
+
'ha_floating_fx_rotate_duration',
|
301 |
+
[
|
302 |
+
'label' => __( 'Duration', 'happy-elementor-addons' ),
|
303 |
+
'type' => Controls_Manager::SLIDER,
|
304 |
+
'size_units' => ['px'],
|
305 |
+
'range' => [
|
306 |
+
'px' => [
|
307 |
+
'min' => 0,
|
308 |
+
'max' => 10000,
|
309 |
+
'step' => 100
|
310 |
+
]
|
311 |
+
],
|
312 |
+
'default' => [
|
313 |
+
'size' => 1000,
|
314 |
+
],
|
315 |
+
'condition' => [
|
316 |
+
'ha_floating_fx_rotate_toggle' => 'yes',
|
317 |
+
'ha_floating_fx' => 'yes',
|
318 |
+
],
|
319 |
+
'render_type' => 'none',
|
320 |
+
'frontend_available' => true,
|
321 |
+
]
|
322 |
+
);
|
323 |
|
324 |
+
$element->add_control(
|
325 |
+
'ha_floating_fx_rotate_delay',
|
326 |
+
[
|
327 |
+
'label' => __( 'Delay', 'happy-elementor-addons' ),
|
328 |
+
'type' => Controls_Manager::SLIDER,
|
329 |
+
'size_units' => ['px'],
|
330 |
+
'range' => [
|
331 |
+
'px' => [
|
332 |
+
'min' => 0,
|
333 |
+
'max' => 5000,
|
334 |
+
'step' => 100
|
335 |
+
]
|
336 |
+
],
|
337 |
+
'condition' => [
|
338 |
+
'ha_floating_fx_rotate_toggle' => 'yes',
|
339 |
+
'ha_floating_fx' => 'yes',
|
340 |
+
],
|
341 |
+
'render_type' => 'none',
|
342 |
+
'frontend_available' => true,
|
343 |
+
]
|
344 |
+
);
|
345 |
|
346 |
+
$element->end_popover();
|
347 |
|
348 |
+
$element->add_control(
|
349 |
+
'ha_floating_fx_scale_toggle',
|
350 |
+
[
|
351 |
+
'label' => __( 'Scale', 'happy-elementor-addons' ),
|
352 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
353 |
+
'return_value' => 'yes',
|
354 |
+
'frontend_available' => true,
|
355 |
+
'condition' => [
|
356 |
+
'ha_floating_fx' => 'yes',
|
357 |
+
]
|
358 |
+
]
|
359 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
360 |
|
361 |
+
$element->start_popover();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
|
363 |
+
$element->add_control(
|
364 |
+
'ha_floating_fx_scale_x',
|
365 |
+
[
|
366 |
+
'label' => __( 'Scale X', 'happy-elementor-addons' ),
|
367 |
+
'type' => Controls_Manager::SLIDER,
|
368 |
+
'default' => [
|
369 |
+
'sizes' => [
|
370 |
+
'from' => 1,
|
371 |
+
'to' => 1.2,
|
372 |
+
],
|
373 |
+
'unit' => 'px',
|
374 |
+
],
|
375 |
+
'range' => [
|
376 |
+
'px' => [
|
377 |
+
'min' => 0,
|
378 |
+
'max' => 5,
|
379 |
+
'step' => .1
|
380 |
+
]
|
381 |
+
],
|
382 |
+
'labels' => [
|
383 |
+
__( 'From', 'happy-elementor-addons' ),
|
384 |
+
__( 'To', 'happy-elementor-addons' ),
|
385 |
+
],
|
386 |
+
'scales' => 1,
|
387 |
+
'handles' => 'range',
|
388 |
+
'condition' => [
|
389 |
+
'ha_floating_fx_scale_toggle' => 'yes',
|
390 |
+
'ha_floating_fx' => 'yes',
|
391 |
+
],
|
392 |
+
'render_type' => 'none',
|
393 |
+
'frontend_available' => true,
|
394 |
+
]
|
395 |
+
);
|
396 |
|
397 |
+
$element->add_control(
|
398 |
+
'ha_floating_fx_scale_y',
|
399 |
+
[
|
400 |
+
'label' => __( 'Scale Y', 'happy-elementor-addons' ),
|
401 |
+
'type' => Controls_Manager::SLIDER,
|
402 |
+
'default' => [
|
403 |
+
'sizes' => [
|
404 |
+
'from' => 1,
|
405 |
+
'to' => 1.2,
|
406 |
+
],
|
407 |
+
'unit' => 'px',
|
408 |
+
],
|
409 |
+
'range' => [
|
410 |
+
'px' => [
|
411 |
+
'min' => 0,
|
412 |
+
'max' => 5,
|
413 |
+
'step' => .1
|
414 |
+
]
|
415 |
+
],
|
416 |
+
'labels' => [
|
417 |
+
__( 'From', 'happy-elementor-addons' ),
|
418 |
+
__( 'To', 'happy-elementor-addons' ),
|
419 |
+
],
|
420 |
+
'scales' => 1,
|
421 |
+
'handles' => 'range',
|
422 |
+
'condition' => [
|
423 |
+
'ha_floating_fx_scale_toggle' => 'yes',
|
424 |
+
'ha_floating_fx' => 'yes',
|
425 |
+
],
|
426 |
+
'render_type' => 'none',
|
427 |
+
'frontend_available' => true,
|
428 |
+
]
|
429 |
+
);
|
430 |
|
431 |
+
$element->add_control(
|
432 |
+
'ha_floating_fx_scale_duration',
|
433 |
+
[
|
434 |
+
'label' => __( 'Duration', 'happy-elementor-addons' ),
|
435 |
+
'type' => Controls_Manager::SLIDER,
|
436 |
+
'size_units' => ['px'],
|
437 |
+
'range' => [
|
438 |
+
'px' => [
|
439 |
+
'min' => 0,
|
440 |
+
'max' => 10000,
|
441 |
+
'step' => 100
|
442 |
+
]
|
443 |
+
],
|
444 |
+
'default' => [
|
445 |
+
'size' => 1000,
|
446 |
+
],
|
447 |
+
'condition' => [
|
448 |
+
'ha_floating_fx_scale_toggle' => 'yes',
|
449 |
+
'ha_floating_fx' => 'yes',
|
450 |
+
],
|
451 |
+
'render_type' => 'none',
|
452 |
+
'frontend_available' => true,
|
453 |
+
]
|
454 |
+
);
|
455 |
|
456 |
+
$element->add_control(
|
457 |
+
'ha_floating_fx_scale_delay',
|
458 |
+
[
|
459 |
+
'label' => __( 'Delay', 'happy-elementor-addons' ),
|
460 |
+
'type' => Controls_Manager::SLIDER,
|
461 |
+
'size_units' => ['px'],
|
462 |
+
'range' => [
|
463 |
+
'px' => [
|
464 |
+
'min' => 0,
|
465 |
+
'max' => 5000,
|
466 |
+
'step' => 100
|
467 |
+
]
|
468 |
+
],
|
469 |
+
'condition' => [
|
470 |
+
'ha_floating_fx_scale_toggle' => 'yes',
|
471 |
+
'ha_floating_fx' => 'yes',
|
472 |
+
],
|
473 |
+
'render_type' => 'none',
|
474 |
+
'frontend_available' => true,
|
475 |
+
]
|
476 |
+
);
|
477 |
|
478 |
+
$element->end_popover();
|
479 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
480 |
|
481 |
+
/**
|
482 |
+
* Register transform controls
|
483 |
+
*
|
484 |
+
* @param Element_Base $element
|
485 |
+
* @return void
|
486 |
+
*/
|
487 |
+
public static function add_css_effects( Element_Base $element ) {
|
488 |
+
$element->add_control(
|
489 |
+
'ha_transform_fx',
|
490 |
+
[
|
491 |
+
'label' => __( 'CSS Transform', 'happy-elementor-addons' ),
|
492 |
+
'type' => Controls_Manager::SWITCHER,
|
493 |
+
'return_value' => 'yes',
|
494 |
+
]
|
495 |
+
);
|
496 |
|
497 |
+
$element->start_controls_tabs(
|
498 |
+
'_tabs_ha_transform',
|
499 |
+
[
|
500 |
+
'condition' => [
|
501 |
+
'ha_transform_fx' => 'yes',
|
502 |
+
],
|
503 |
+
]
|
504 |
+
);
|
505 |
|
506 |
+
$element->start_controls_tab(
|
507 |
+
'_tabs_ha_transform_normal',
|
508 |
+
[
|
509 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
510 |
+
'condition' => [
|
511 |
+
'ha_transform_fx' => 'yes',
|
512 |
+
],
|
513 |
+
]
|
514 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
|
516 |
+
$element->add_control(
|
517 |
+
'ha_transform_fx_translate_toggle',
|
518 |
+
[
|
519 |
+
'label' => __( 'Translate', 'happy-elementor-addons' ),
|
520 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
521 |
+
'return_value' => 'yes',
|
522 |
+
'condition' => [
|
523 |
+
'ha_transform_fx' => 'yes',
|
524 |
+
],
|
525 |
+
]
|
526 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
527 |
|
528 |
+
$element->start_popover();
|
529 |
|
530 |
+
$element->add_responsive_control(
|
531 |
+
'ha_transform_fx_translate_x',
|
532 |
+
[
|
533 |
+
'label' => __( 'Translate X', 'happy-elementor-addons' ),
|
534 |
+
'type' => Controls_Manager::SLIDER,
|
535 |
+
'size_units' => ['px'],
|
536 |
+
'range' => [
|
537 |
+
'px' => [
|
538 |
+
'min' => -1000,
|
539 |
+
'max' => 1000,
|
540 |
+
]
|
541 |
+
],
|
542 |
+
'condition' => [
|
543 |
+
'ha_transform_fx_translate_toggle' => 'yes',
|
544 |
+
'ha_transform_fx' => 'yes',
|
545 |
+
],
|
546 |
+
'selectors' => [
|
547 |
+
'{{WRAPPER}}' => '--ha-tfx-translate-x: {{SIZE}}px;'
|
548 |
+
],
|
549 |
+
]
|
550 |
+
);
|
551 |
|
552 |
+
$element->add_responsive_control(
|
553 |
+
'ha_transform_fx_translate_y',
|
554 |
+
[
|
555 |
+
'label' => __( 'Translate Y', 'happy-elementor-addons' ),
|
556 |
+
'type' => Controls_Manager::SLIDER,
|
557 |
+
'size_units' => ['px'],
|
558 |
+
'range' => [
|
559 |
+
'px' => [
|
560 |
+
'min' => -1000,
|
561 |
+
'max' => 1000,
|
562 |
+
]
|
563 |
+
],
|
564 |
+
'condition' => [
|
565 |
+
'ha_transform_fx_translate_toggle' => 'yes',
|
566 |
+
'ha_transform_fx' => 'yes',
|
567 |
+
],
|
568 |
+
'selectors' => [
|
569 |
+
'{{WRAPPER}}' => '--ha-tfx-translate-y: {{SIZE}}px;'
|
570 |
+
],
|
571 |
+
]
|
572 |
+
);
|
573 |
|
574 |
+
$element->end_popover();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
575 |
|
576 |
+
$element->add_control(
|
577 |
+
'ha_transform_fx_rotate_toggle',
|
578 |
+
[
|
579 |
+
'label' => __( 'Rotate', 'happy-elementor-addons' ),
|
580 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
581 |
+
'condition' => [
|
582 |
+
'ha_transform_fx' => 'yes',
|
583 |
+
],
|
584 |
+
]
|
585 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
586 |
|
587 |
+
$element->start_popover();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
588 |
|
589 |
+
$element->add_control(
|
590 |
+
'ha_transform_fx_rotate_mode',
|
591 |
+
[
|
592 |
+
'label' => __( 'Mode', 'happy-elementor-addons' ),
|
593 |
+
'type' => Controls_Manager::CHOOSE,
|
594 |
+
'options' => [
|
595 |
+
'compact' => [
|
596 |
+
'title' => __( 'Compact', 'happy-elementor-addons' ),
|
597 |
+
'icon' => 'eicon-plus-circle',
|
598 |
+
],
|
599 |
+
'loose' => [
|
600 |
+
'title' => __( 'Loose', 'happy-elementor-addons' ),
|
601 |
+
'icon' => 'eicon-minus-circle',
|
602 |
+
],
|
603 |
+
],
|
604 |
+
'default' => 'loose',
|
605 |
+
'toggle' => false
|
606 |
+
]
|
607 |
+
);
|
608 |
|
609 |
+
$element->add_control(
|
610 |
+
'ha_transform_fx_rotate_hr',
|
611 |
+
[
|
612 |
+
'type' => Controls_Manager::DIVIDER,
|
613 |
+
]
|
614 |
+
);
|
|
|
|
|
|
|
|
|
|
|
615 |
|
616 |
+
$element->add_responsive_control(
|
617 |
+
'ha_transform_fx_rotate_x',
|
618 |
+
[
|
619 |
+
'label' => __( 'Rotate X', 'happy-elementor-addons' ),
|
620 |
+
'type' => Controls_Manager::SLIDER,
|
621 |
+
'size_units' => ['px'],
|
622 |
+
'range' => [
|
623 |
+
'px' => [
|
624 |
+
'min' => -180,
|
625 |
+
'max' => 180,
|
626 |
+
]
|
627 |
+
],
|
628 |
+
'condition' => [
|
629 |
+
'ha_transform_fx_rotate_toggle' => 'yes',
|
630 |
+
'ha_transform_fx' => 'yes',
|
631 |
+
'ha_transform_fx_rotate_mode' => 'loose'
|
632 |
+
],
|
633 |
+
'selectors' => [
|
634 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-x: {{SIZE}}deg;'
|
635 |
+
],
|
636 |
+
]
|
637 |
+
);
|
638 |
|
639 |
+
$element->add_responsive_control(
|
640 |
+
'ha_transform_fx_rotate_y',
|
641 |
+
[
|
642 |
+
'label' => __( 'Rotate Y', 'happy-elementor-addons' ),
|
643 |
+
'type' => Controls_Manager::SLIDER,
|
644 |
+
'size_units' => ['px'],
|
645 |
+
'range' => [
|
646 |
+
'px' => [
|
647 |
+
'min' => -180,
|
648 |
+
'max' => 180,
|
649 |
+
]
|
650 |
+
],
|
651 |
+
'condition' => [
|
652 |
+
'ha_transform_fx_rotate_toggle' => 'yes',
|
653 |
+
'ha_transform_fx' => 'yes',
|
654 |
+
'ha_transform_fx_rotate_mode' => 'loose'
|
655 |
+
],
|
656 |
+
'selectors' => [
|
657 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-y: {{SIZE}}deg;'
|
658 |
+
],
|
659 |
+
]
|
660 |
+
);
|
661 |
|
662 |
+
$element->add_responsive_control(
|
663 |
+
'ha_transform_fx_rotate_z',
|
664 |
+
[
|
665 |
+
'label' => __( 'Rotate (Z)', 'happy-elementor-addons' ),
|
666 |
+
'type' => Controls_Manager::SLIDER,
|
667 |
+
'size_units' => ['px'],
|
668 |
+
'range' => [
|
669 |
+
'px' => [
|
670 |
+
'min' => -180,
|
671 |
+
'max' => 180,
|
672 |
+
]
|
673 |
+
],
|
674 |
+
'condition' => [
|
675 |
+
'ha_transform_fx_rotate_toggle' => 'yes',
|
676 |
+
'ha_transform_fx' => 'yes',
|
677 |
+
],
|
678 |
+
'selectors' => [
|
679 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-z: {{SIZE}}deg;'
|
680 |
+
],
|
681 |
+
]
|
682 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
683 |
|
684 |
+
$element->end_popover();
|
685 |
|
686 |
+
$element->add_control(
|
687 |
+
'ha_transform_fx_scale_toggle',
|
688 |
+
[
|
689 |
+
'label' => __( 'Scale', 'happy-elementor-addons' ),
|
690 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
691 |
+
'return_value' => 'yes',
|
692 |
+
'condition' => [
|
693 |
+
'ha_transform_fx' => 'yes',
|
694 |
+
],
|
695 |
+
]
|
696 |
+
);
|
697 |
|
698 |
+
$element->start_popover();
|
699 |
|
700 |
+
$element->add_control(
|
701 |
+
'ha_transform_fx_scale_mode',
|
702 |
+
[
|
703 |
+
'label' => __( 'Mode', 'happy-elementor-addons' ),
|
704 |
+
'type' => Controls_Manager::CHOOSE,
|
705 |
+
'options' => [
|
706 |
+
'compact' => [
|
707 |
+
'title' => __( 'Compact', 'happy-elementor-addons' ),
|
708 |
+
'icon' => 'eicon-plus-circle',
|
709 |
+
],
|
710 |
+
'loose' => [
|
711 |
+
'title' => __( 'Loose', 'happy-elementor-addons' ),
|
712 |
+
'icon' => 'eicon-minus-circle',
|
713 |
+
],
|
714 |
+
],
|
715 |
+
'default' => 'loose',
|
716 |
+
'toggle' => false
|
717 |
+
]
|
718 |
+
);
|
719 |
|
720 |
+
$element->add_control(
|
721 |
+
'ha_transform_fx_scale_hr',
|
722 |
+
[
|
723 |
+
'type' => Controls_Manager::DIVIDER,
|
724 |
+
]
|
725 |
+
);
|
726 |
+
|
727 |
+
$element->add_responsive_control(
|
728 |
+
'ha_transform_fx_scale_x',
|
729 |
+
[
|
730 |
+
'label' => __( 'Scale (X)', 'happy-elementor-addons' ),
|
731 |
+
'type' => Controls_Manager::SLIDER,
|
732 |
+
'size_units' => ['px'],
|
733 |
+
'default' => [
|
734 |
+
'size' => 1
|
735 |
+
],
|
736 |
+
'range' => [
|
737 |
+
'px' => [
|
738 |
+
'min' => 0,
|
739 |
+
'max' => 5,
|
740 |
+
'step' => .1
|
741 |
+
]
|
742 |
+
],
|
743 |
+
'condition' => [
|
744 |
+
'ha_transform_fx_scale_toggle' => 'yes',
|
745 |
+
'ha_transform_fx' => 'yes',
|
746 |
+
],
|
747 |
+
'selectors' => [
|
748 |
+
'{{WRAPPER}}' => '--ha-tfx-scale-x: {{SIZE}}; --ha-tfx-scale-y: {{SIZE}};'
|
749 |
+
],
|
750 |
+
]
|
751 |
+
);
|
752 |
+
|
753 |
+
$element->add_responsive_control(
|
754 |
+
'ha_transform_fx_scale_y',
|
755 |
+
[
|
756 |
+
'label' => __( 'Scale Y', 'happy-elementor-addons' ),
|
757 |
+
'type' => Controls_Manager::SLIDER,
|
758 |
+
'size_units' => ['px'],
|
759 |
+
'default' => [
|
760 |
+
'size' => 1
|
761 |
+
],
|
762 |
+
'range' => [
|
763 |
+
'px' => [
|
764 |
+
'min' => 0,
|
765 |
+
'max' => 5,
|
766 |
+
'step' => .1
|
767 |
+
]
|
768 |
+
],
|
769 |
+
'condition' => [
|
770 |
+
'ha_transform_fx_scale_toggle' => 'yes',
|
771 |
+
'ha_transform_fx' => 'yes',
|
772 |
+
'ha_transform_fx_scale_mode' => 'loose',
|
773 |
+
],
|
774 |
+
'selectors' => [
|
775 |
+
'{{WRAPPER}}' => '--ha-tfx-scale-y: {{SIZE}};'
|
776 |
+
],
|
777 |
+
]
|
778 |
+
);
|
779 |
+
|
780 |
+
$element->end_popover();
|
781 |
+
|
782 |
+
$element->add_control(
|
783 |
+
'ha_transform_fx_skew_toggle',
|
784 |
+
[
|
785 |
+
'label' => __( 'Skew', 'happy-elementor-addons' ),
|
786 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
787 |
+
'return_value' => 'yes',
|
788 |
+
'condition' => [
|
789 |
+
'ha_transform_fx' => 'yes',
|
790 |
+
],
|
791 |
+
]
|
792 |
+
);
|
793 |
+
|
794 |
+
$element->start_popover();
|
795 |
+
|
796 |
+
$element->add_responsive_control(
|
797 |
+
'ha_transform_fx_skew_x',
|
798 |
+
[
|
799 |
+
'label' => __( 'Skew X', 'happy-elementor-addons' ),
|
800 |
+
'type' => Controls_Manager::SLIDER,
|
801 |
+
'size_units' => ['deg'],
|
802 |
+
'range' => [
|
803 |
+
'px' => [
|
804 |
+
'min' => -180,
|
805 |
+
'max' => 180,
|
806 |
+
]
|
807 |
+
],
|
808 |
+
'condition' => [
|
809 |
+
'ha_transform_fx_skew_toggle' => 'yes',
|
810 |
+
'ha_transform_fx' => 'yes',
|
811 |
+
],
|
812 |
+
'selectors' => [
|
813 |
+
'{{WRAPPER}}' => '--ha-tfx-skew-x: {{SIZE}}deg;'
|
814 |
+
],
|
815 |
+
]
|
816 |
+
);
|
817 |
+
|
818 |
+
$element->add_responsive_control(
|
819 |
+
'ha_transform_fx_skew_y',
|
820 |
+
[
|
821 |
+
'label' => __( 'Skew Y', 'happy-elementor-addons' ),
|
822 |
+
'type' => Controls_Manager::SLIDER,
|
823 |
+
'size_units' => ['deg'],
|
824 |
+
'range' => [
|
825 |
+
'px' => [
|
826 |
+
'min' => -180,
|
827 |
+
'max' => 180,
|
828 |
+
]
|
829 |
+
],
|
830 |
+
'condition' => [
|
831 |
+
'ha_transform_fx_skew_toggle' => 'yes',
|
832 |
+
'ha_transform_fx' => 'yes',
|
833 |
+
],
|
834 |
+
'selectors' => [
|
835 |
+
'{{WRAPPER}}' => '--ha-tfx-skew-y: {{SIZE}}deg;'
|
836 |
+
],
|
837 |
+
]
|
838 |
+
);
|
839 |
+
|
840 |
+
$element->end_popover();
|
841 |
+
|
842 |
+
$element->end_controls_tab();
|
843 |
+
|
844 |
+
$element->start_controls_tab(
|
845 |
+
'_tabs_ha_transform_hover',
|
846 |
[
|
847 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
848 |
+
'condition' => [
|
849 |
+
'ha_transform_fx' => 'yes',
|
850 |
+
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
851 |
]
|
852 |
+
);
|
853 |
+
|
854 |
+
$element->add_control(
|
855 |
+
'ha_transform_fx_translate_toggle_hover',
|
856 |
+
[
|
857 |
+
'label' => __( 'Translate', 'happy-elementor-addons' ),
|
858 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
859 |
+
'return_value' => 'yes',
|
860 |
+
'condition' => [
|
861 |
+
'ha_transform_fx' => 'yes',
|
862 |
+
],
|
863 |
+
]
|
864 |
+
);
|
865 |
+
|
866 |
+
$element->start_popover();
|
867 |
+
|
868 |
+
$element->add_responsive_control(
|
869 |
+
'ha_transform_fx_translate_x_hover',
|
870 |
+
[
|
871 |
+
'label' => __( 'Translate X', 'happy-elementor-addons' ),
|
872 |
+
'type' => Controls_Manager::SLIDER,
|
873 |
+
'size_units' => ['px'],
|
874 |
+
'range' => [
|
875 |
+
'px' => [
|
876 |
+
'min' => -1000,
|
877 |
+
'max' => 1000,
|
878 |
+
]
|
879 |
+
],
|
880 |
+
'condition' => [
|
881 |
+
'ha_transform_fx_translate_toggle_hover' => 'yes',
|
882 |
+
'ha_transform_fx' => 'yes',
|
883 |
+
],
|
884 |
+
'selectors' => [
|
885 |
+
'{{WRAPPER}}' => '--ha-tfx-translate-x-hover: {{SIZE}}px;'
|
886 |
+
],
|
887 |
+
]
|
888 |
+
);
|
889 |
|
890 |
+
$element->add_responsive_control(
|
891 |
+
'ha_transform_fx_translate_y_hover',
|
892 |
+
[
|
893 |
+
'label' => __( 'Translate Y', 'happy-elementor-addons' ),
|
894 |
+
'type' => Controls_Manager::SLIDER,
|
895 |
+
'size_units' => ['px'],
|
896 |
+
'range' => [
|
897 |
+
'px' => [
|
898 |
+
'min' => -1000,
|
899 |
+
'max' => 1000,
|
900 |
+
]
|
901 |
+
],
|
902 |
+
'condition' => [
|
903 |
+
'ha_transform_fx_translate_toggle_hover' => 'yes',
|
904 |
+
'ha_transform_fx' => 'yes',
|
905 |
+
],
|
906 |
+
'selectors' => [
|
907 |
+
'{{WRAPPER}}' => '--ha-tfx-translate-y-hover: {{SIZE}}px;'
|
908 |
+
],
|
909 |
+
]
|
910 |
+
);
|
911 |
+
|
912 |
+
$element->end_popover();
|
913 |
+
|
914 |
+
$element->add_control(
|
915 |
+
'ha_transform_fx_rotate_toggle_hover',
|
916 |
+
[
|
917 |
+
'label' => __( 'Rotate', 'happy-elementor-addons' ),
|
918 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
919 |
+
'condition' => [
|
920 |
+
'ha_transform_fx' => 'yes',
|
921 |
+
],
|
922 |
+
]
|
923 |
+
);
|
924 |
+
|
925 |
+
$element->start_popover();
|
926 |
+
|
927 |
+
$element->add_control(
|
928 |
+
'ha_transform_fx_rotate_mode_hover',
|
929 |
+
[
|
930 |
+
'label' => __( 'Mode', 'happy-elementor-addons' ),
|
931 |
+
'type' => Controls_Manager::CHOOSE,
|
932 |
+
'options' => [
|
933 |
+
'compact' => [
|
934 |
+
'title' => __( 'Compact', 'happy-elementor-addons' ),
|
935 |
+
'icon' => 'eicon-plus-circle',
|
936 |
+
],
|
937 |
+
'loose' => [
|
938 |
+
'title' => __( 'Loose', 'happy-elementor-addons' ),
|
939 |
+
'icon' => 'eicon-minus-circle',
|
940 |
+
],
|
941 |
+
],
|
942 |
+
'default' => 'loose',
|
943 |
+
'toggle' => false
|
944 |
+
]
|
945 |
+
);
|
946 |
+
|
947 |
+
$element->add_control(
|
948 |
+
'ha_transform_fx_rotate_hr_hover',
|
949 |
+
[
|
950 |
+
'type' => Controls_Manager::DIVIDER,
|
951 |
+
]
|
952 |
+
);
|
953 |
+
|
954 |
+
$element->add_responsive_control(
|
955 |
+
'ha_transform_fx_rotate_x_hover',
|
956 |
+
[
|
957 |
+
'label' => __( 'Rotate X', 'happy-elementor-addons' ),
|
958 |
+
'type' => Controls_Manager::SLIDER,
|
959 |
+
'size_units' => ['px'],
|
960 |
+
'range' => [
|
961 |
+
'px' => [
|
962 |
+
'min' => -180,
|
963 |
+
'max' => 180,
|
964 |
+
]
|
965 |
+
],
|
966 |
+
'condition' => [
|
967 |
+
'ha_transform_fx_rotate_toggle_hover' => 'yes',
|
968 |
+
'ha_transform_fx' => 'yes',
|
969 |
+
'ha_transform_fx_rotate_mode_hover' => 'loose'
|
970 |
+
],
|
971 |
+
'selectors' => [
|
972 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-x-hover: {{SIZE}}deg;'
|
973 |
+
],
|
974 |
+
]
|
975 |
+
);
|
976 |
+
|
977 |
+
$element->add_responsive_control(
|
978 |
+
'ha_transform_fx_rotate_y_hover',
|
979 |
+
[
|
980 |
+
'label' => __( 'Rotate Y', 'happy-elementor-addons' ),
|
981 |
+
'type' => Controls_Manager::SLIDER,
|
982 |
+
'size_units' => ['px'],
|
983 |
+
'range' => [
|
984 |
+
'px' => [
|
985 |
+
'min' => -180,
|
986 |
+
'max' => 180,
|
987 |
+
]
|
988 |
+
],
|
989 |
+
'condition' => [
|
990 |
+
'ha_transform_fx_rotate_toggle_hover' => 'yes',
|
991 |
+
'ha_transform_fx' => 'yes',
|
992 |
+
'ha_transform_fx_rotate_mode_hover' => 'loose'
|
993 |
+
],
|
994 |
+
'selectors' => [
|
995 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-y-hover: {{SIZE}}deg;'
|
996 |
+
],
|
997 |
+
]
|
998 |
+
);
|
999 |
+
|
1000 |
+
$element->add_responsive_control(
|
1001 |
+
'ha_transform_fx_rotate_z_hover',
|
1002 |
+
[
|
1003 |
+
'label' => __( 'Rotate (Z)', 'happy-elementor-addons' ),
|
1004 |
+
'type' => Controls_Manager::SLIDER,
|
1005 |
+
'size_units' => ['px'],
|
1006 |
+
'range' => [
|
1007 |
+
'px' => [
|
1008 |
+
'min' => -180,
|
1009 |
+
'max' => 180,
|
1010 |
+
]
|
1011 |
+
],
|
1012 |
+
'condition' => [
|
1013 |
+
'ha_transform_fx_rotate_toggle_hover' => 'yes',
|
1014 |
+
'ha_transform_fx' => 'yes',
|
1015 |
+
],
|
1016 |
+
'selectors' => [
|
1017 |
+
'{{WRAPPER}}' => '--ha-tfx-rotate-z-hover: {{SIZE}}deg;'
|
1018 |
+
],
|
1019 |
+
]
|
1020 |
+
);
|
1021 |
+
|
1022 |
+
$element->end_popover();
|
1023 |
+
|
1024 |
+
$element->add_control(
|
1025 |
+
'ha_transform_fx_scale_toggle_hover',
|
1026 |
+
[
|
1027 |
+
'label' => __( 'Scale', 'happy-elementor-addons' ),
|
1028 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
1029 |
+
'return_value' => 'yes',
|
1030 |
+
'condition' => [
|
1031 |
+
'ha_transform_fx' => 'yes',
|
1032 |
+
],
|
1033 |
+
]
|
1034 |
+
);
|
1035 |
+
|
1036 |
+
$element->start_popover();
|
1037 |
+
|
1038 |
+
$element->add_control(
|
1039 |
+
'ha_transform_fx_scale_mode_hover',
|
1040 |
+
[
|
1041 |
+
'label' => __( 'Mode', 'happy-elementor-addons' ),
|
1042 |
+
'type' => Controls_Manager::CHOOSE,
|
1043 |
+
'options' => [
|
1044 |
+
'compact' => [
|
1045 |
+
'title' => __( 'Compact', 'happy-elementor-addons' ),
|
1046 |
+
'icon' => 'eicon-plus-circle',
|
1047 |
+
],
|
1048 |
+
'loose' => [
|
1049 |
+
'title' => __( 'Loose', 'happy-elementor-addons' ),
|
1050 |
+
'icon' => 'eicon-minus-circle',
|
1051 |
+
],
|
1052 |
+
],
|
1053 |
+
'default' => 'loose',
|
1054 |
+
'toggle' => false
|
1055 |
+
]
|
1056 |
+
);
|
1057 |
+
|
1058 |
+
$element->add_control(
|
1059 |
+
'ha_transform_fx_scale_hr_hover',
|
1060 |
+
[
|
1061 |
+
'type' => Controls_Manager::DIVIDER,
|
1062 |
+
]
|
1063 |
+
);
|
1064 |
+
|
1065 |
+
$element->add_responsive_control(
|
1066 |
+
'ha_transform_fx_scale_x_hover',
|
1067 |
+
[
|
1068 |
+
'label' => __( 'Scale (X)', 'happy-elementor-addons' ),
|
1069 |
+
'type' => Controls_Manager::SLIDER,
|
1070 |
+
'size_units' => ['px'],
|
1071 |
+
'default' => [
|
1072 |
+
'size' => 1
|
1073 |
+
],
|
1074 |
+
'range' => [
|
1075 |
+
'px' => [
|
1076 |
+
'min' => 0,
|
1077 |
+
'max' => 5,
|
1078 |
+
'step' => .1
|
1079 |
+
]
|
1080 |
+
],
|
1081 |
+
'condition' => [
|
1082 |
+
'ha_transform_fx_scale_toggle_hover' => 'yes',
|
1083 |
+
'ha_transform_fx' => 'yes',
|
1084 |
+
],
|
1085 |
+
'selectors' => [
|
1086 |
+
'{{WRAPPER}}' => '--ha-tfx-scale-x-hover: {{SIZE}}; --ha-tfx-scale-y-hover: {{SIZE}};'
|
1087 |
+
],
|
1088 |
+
]
|
1089 |
+
);
|
1090 |
+
|
1091 |
+
$element->add_responsive_control(
|
1092 |
+
'ha_transform_fx_scale_y_hover',
|
1093 |
+
[
|
1094 |
+
'label' => __( 'Scale Y', 'happy-elementor-addons' ),
|
1095 |
+
'type' => Controls_Manager::SLIDER,
|
1096 |
+
'size_units' => ['px'],
|
1097 |
+
'default' => [
|
1098 |
+
'size' => 1
|
1099 |
+
],
|
1100 |
+
'range' => [
|
1101 |
+
'px' => [
|
1102 |
+
'min' => 0,
|
1103 |
+
'max' => 5,
|
1104 |
+
'step' => .1
|
1105 |
+
]
|
1106 |
+
],
|
1107 |
+
'condition' => [
|
1108 |
+
'ha_transform_fx_scale_toggle_hover' => 'yes',
|
1109 |
+
'ha_transform_fx' => 'yes',
|
1110 |
+
'ha_transform_fx_scale_mode_hover' => 'loose',
|
1111 |
+
],
|
1112 |
+
'selectors' => [
|
1113 |
+
'{{WRAPPER}}' => '--ha-tfx-scale-y-hover: {{SIZE}};'
|
1114 |
+
],
|
1115 |
+
]
|
1116 |
+
);
|
1117 |
+
|
1118 |
+
$element->end_popover();
|
1119 |
+
|
1120 |
+
$element->add_control(
|
1121 |
+
'ha_transform_fx_skew_toggle_hover',
|
1122 |
+
[
|
1123 |
+
'label' => __( 'Skew', 'happy-elementor-addons' ),
|
1124 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
1125 |
+
'return_value' => 'yes',
|
1126 |
+
'condition' => [
|
1127 |
+
'ha_transform_fx' => 'yes',
|
1128 |
+
],
|
1129 |
+
]
|
1130 |
+
);
|
1131 |
+
|
1132 |
+
$element->start_popover();
|
1133 |
+
|
1134 |
+
$element->add_responsive_control(
|
1135 |
+
'ha_transform_fx_skew_x_hover',
|
1136 |
+
[
|
1137 |
+
'label' => __( 'Skew X', 'happy-elementor-addons' ),
|
1138 |
+
'type' => Controls_Manager::SLIDER,
|
1139 |
+
'size_units' => ['deg'],
|
1140 |
+
'range' => [
|
1141 |
+
'px' => [
|
1142 |
+
'min' => -180,
|
1143 |
+
'max' => 180,
|
1144 |
+
]
|
1145 |
+
],
|
1146 |
+
'condition' => [
|
1147 |
+
'ha_transform_fx_skew_toggle_hover' => 'yes',
|
1148 |
+
'ha_transform_fx' => 'yes',
|
1149 |
+
],
|
1150 |
+
'selectors' => [
|
1151 |
+
'{{WRAPPER}}' => '--ha-tfx-skew-x-hover: {{SIZE}}deg;'
|
1152 |
+
],
|
1153 |
+
]
|
1154 |
+
);
|
1155 |
+
|
1156 |
+
$element->add_responsive_control(
|
1157 |
+
'ha_transform_fx_skew_y_hover',
|
1158 |
+
[
|
1159 |
+
'label' => __( 'Skew Y', 'happy-elementor-addons' ),
|
1160 |
+
'type' => Controls_Manager::SLIDER,
|
1161 |
+
'size_units' => ['deg'],
|
1162 |
+
'range' => [
|
1163 |
+
'px' => [
|
1164 |
+
'min' => -180,
|
1165 |
+
'max' => 180,
|
1166 |
+
]
|
1167 |
+
],
|
1168 |
+
'condition' => [
|
1169 |
+
'ha_transform_fx_skew_toggle_hover' => 'yes',
|
1170 |
+
'ha_transform_fx' => 'yes',
|
1171 |
+
],
|
1172 |
+
'selectors' => [
|
1173 |
+
'{{WRAPPER}}' => '--ha-tfx-skew-y-hover: {{SIZE}}deg;'
|
1174 |
+
],
|
1175 |
+
]
|
1176 |
+
);
|
1177 |
+
|
1178 |
+
$element->end_popover();
|
1179 |
+
|
1180 |
+
$element->add_control(
|
1181 |
+
'ha_transform_fx_transition_duration',
|
1182 |
+
[
|
1183 |
+
'label' => __( 'Transition Duration', 'happy-elementor-addons' ),
|
1184 |
+
'type' => Controls_Manager::SLIDER,
|
1185 |
+
'separator' => 'before',
|
1186 |
+
'size_units' => ['px'],
|
1187 |
+
'range' => [
|
1188 |
+
'px' => [
|
1189 |
+
'min' => 0,
|
1190 |
+
'max' => 3,
|
1191 |
+
'step' => .1,
|
1192 |
+
]
|
1193 |
+
],
|
1194 |
+
'condition' => [
|
1195 |
+
'ha_transform_fx' => 'yes',
|
1196 |
+
],
|
1197 |
+
'selectors' => [
|
1198 |
+
'{{WRAPPER}}' => '--ha-tfx-transition-duration: {{SIZE}}s;'
|
1199 |
+
],
|
1200 |
+
]
|
1201 |
+
);
|
1202 |
+
|
1203 |
+
$element->end_controls_tab();
|
1204 |
+
|
1205 |
+
$element->end_controls_tabs();
|
1206 |
+
}
|
1207 |
}
|
1208 |
+
|
1209 |
+
Happy_Effects::init();
|
@@ -2,7 +2,6 @@
|
|
2 |
namespace Happy_Addons\Elementor\Extension;
|
3 |
|
4 |
use Elementor\Controls_Manager;
|
5 |
-
use Elementor\Element_Base;
|
6 |
|
7 |
defined( 'ABSPATH' ) || die();
|
8 |
|
@@ -260,3 +259,5 @@ class Happy_Grid {
|
|
260 |
}
|
261 |
|
262 |
}
|
|
|
|
2 |
namespace Happy_Addons\Elementor\Extension;
|
3 |
|
4 |
use Elementor\Controls_Manager;
|
|
|
5 |
|
6 |
defined( 'ABSPATH' ) || die();
|
7 |
|
259 |
}
|
260 |
|
261 |
}
|
262 |
+
|
263 |
+
Happy_Grid::init();
|
@@ -162,3 +162,5 @@ class Widgets_Extended {
|
|
162 |
$widget->end_popover();
|
163 |
}
|
164 |
}
|
|
|
|
162 |
$widget->end_popover();
|
163 |
}
|
164 |
}
|
165 |
+
|
166 |
+
Widgets_Extended::init();
|
@@ -61,3 +61,5 @@ class Wrapper_Link {
|
|
61 |
}
|
62 |
}
|
63 |
}
|
|
|
|
61 |
}
|
62 |
}
|
63 |
}
|
64 |
+
|
65 |
+
Wrapper_Link::init();
|
@@ -0,0 +1,98 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Filters function defination
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
* @since 2.13.0
|
7 |
+
* @author HappyMonster
|
8 |
+
*
|
9 |
+
*/
|
10 |
+
defined( 'ABSPATH' ) || die();
|
11 |
+
|
12 |
+
if ( ! function_exists( 'ha_is_adminbar_menu_enabled' ) ) {
|
13 |
+
/**
|
14 |
+
* Check if Adminbar is enabled
|
15 |
+
*
|
16 |
+
* @return bool
|
17 |
+
*/
|
18 |
+
function ha_is_adminbar_menu_enabled() {
|
19 |
+
return apply_filters( 'happyaddons/extensions/adminbar_menu', true );
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
if ( ! function_exists( 'ha_is_background_overlay_enabled' ) ) {
|
24 |
+
/**
|
25 |
+
* Check if Background Overlay is enabled
|
26 |
+
*
|
27 |
+
* @return bool
|
28 |
+
*/
|
29 |
+
function ha_is_background_overlay_enabled() {
|
30 |
+
return apply_filters( 'happyaddons/extensions/background_overlay', true );
|
31 |
+
}
|
32 |
+
}
|
33 |
+
|
34 |
+
if ( ! function_exists( 'ha_is_css_transform_enabled' ) ) {
|
35 |
+
/**
|
36 |
+
* Check if CSS Transform is enabled
|
37 |
+
*
|
38 |
+
* @return bool
|
39 |
+
*/
|
40 |
+
function ha_is_css_transform_enabled() {
|
41 |
+
return apply_filters( 'happyaddons/extensions/css_transform', true );
|
42 |
+
}
|
43 |
+
}
|
44 |
+
|
45 |
+
if ( ! function_exists( 'ha_is_floating_effects_enabled' ) ) {
|
46 |
+
/**
|
47 |
+
* Check if Floating Effects is enabled
|
48 |
+
*
|
49 |
+
* @return bool
|
50 |
+
*/
|
51 |
+
function ha_is_floating_effects_enabled() {
|
52 |
+
return apply_filters( 'happyaddons/extensions/floating_effects', true );
|
53 |
+
}
|
54 |
+
}
|
55 |
+
|
56 |
+
if ( ! function_exists( 'ha_is_grid_layer_enabled' ) ) {
|
57 |
+
/**
|
58 |
+
* Check if Grid Layer is enabled
|
59 |
+
*
|
60 |
+
* @return bool
|
61 |
+
*/
|
62 |
+
function ha_is_grid_layer_enabled() {
|
63 |
+
return apply_filters( 'happyaddons/extensions/grid_layer', true );
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
if ( ! function_exists( 'ha_is_wrapper_link_enabled' ) ) {
|
68 |
+
/**
|
69 |
+
* Check if Wrapper Link is enabled
|
70 |
+
*
|
71 |
+
* @return bool
|
72 |
+
*/
|
73 |
+
function ha_is_wrapper_link_enabled() {
|
74 |
+
return apply_filters( 'happyaddons/extensions/wrapper_link', true );
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
if ( ! function_exists( 'ha_is_happy_clone_enabled' ) ) {
|
79 |
+
/**
|
80 |
+
* Check if Happy Clone is enabled
|
81 |
+
*
|
82 |
+
* @return bool
|
83 |
+
*/
|
84 |
+
function ha_is_happy_clone_enabled() {
|
85 |
+
return apply_filters( 'happyaddons/extensions/happy_clone', true );
|
86 |
+
}
|
87 |
+
}
|
88 |
+
|
89 |
+
if ( ! function_exists( 'ha_is_on_demand_cache_enabled' ) ) {
|
90 |
+
/**
|
91 |
+
* Check if On Demand Cache is enabled
|
92 |
+
*
|
93 |
+
* @return bool
|
94 |
+
*/
|
95 |
+
function ha_is_on_demand_cache_enabled() {
|
96 |
+
return apply_filters( 'happyaddons/extensions/on_demand_cache', true );
|
97 |
+
}
|
98 |
+
}
|
@@ -79,61 +79,61 @@ function ha_is_localhost() {
|
|
79 |
|
80 |
function ha_get_css_cursors() {
|
81 |
return [
|
82 |
-
'default'
|
83 |
-
'alias'
|
84 |
-
'all-scroll'
|
85 |
-
'auto'
|
86 |
-
'cell'
|
87 |
'context-menu' => __( 'Context menu', 'happy-elementor-addons' ),
|
88 |
-
'col-resize'
|
89 |
-
'copy'
|
90 |
-
'crosshair'
|
91 |
-
'e-resize'
|
92 |
-
'ew-resize'
|
93 |
-
'grab'
|
94 |
-
'grabbing'
|
95 |
-
'help'
|
96 |
-
'move'
|
97 |
-
'n-resize'
|
98 |
-
'ne-resize'
|
99 |
-
'nesw-resize'
|
100 |
-
'ns-resize'
|
101 |
-
'nw-resize'
|
102 |
-
'nwse-resize'
|
103 |
-
'no-drop'
|
104 |
-
'not-allowed'
|
105 |
-
'pointer'
|
106 |
-
'progress'
|
107 |
-
'row-resize'
|
108 |
-
's-resize'
|
109 |
-
'se-resize'
|
110 |
-
'sw-resize'
|
111 |
-
'text'
|
112 |
-
'url'
|
113 |
-
'w-resize'
|
114 |
-
'wait'
|
115 |
-
'zoom-in'
|
116 |
-
'zoom-out'
|
117 |
-
'none'
|
118 |
];
|
119 |
}
|
120 |
|
121 |
function ha_get_css_blend_modes() {
|
122 |
return [
|
123 |
-
'normal'
|
124 |
-
'multiply'
|
125 |
-
'screen'
|
126 |
-
'overlay'
|
127 |
-
'darken'
|
128 |
-
'lighten'
|
129 |
'color-dodge' => __( 'Color Dodge', 'happy-elementor-addons' ),
|
130 |
-
'color-burn'
|
131 |
-
'saturation'
|
132 |
-
'difference'
|
133 |
-
'exclusion'
|
134 |
-
'hue'
|
135 |
-
'color'
|
136 |
-
'luminosity'
|
137 |
];
|
138 |
}
|
139 |
|
@@ -189,13 +189,6 @@ function ha_get_happy_icons() {
|
|
189 |
return \Happy_Addons\Elementor\Icons_Manager::get_happy_icons();
|
190 |
}
|
191 |
|
192 |
-
/**
|
193 |
-
* @return bool
|
194 |
-
*/
|
195 |
-
function ha_is_happy_mode_enabled() {
|
196 |
-
return apply_filters( 'happyaddons_is_happy_mode_enabled', true );
|
197 |
-
}
|
198 |
-
|
199 |
/**
|
200 |
* Get elementor instance
|
201 |
*
|
@@ -216,8 +209,17 @@ function ha_get_allowed_html_tags( $level = 'basic' ) {
|
|
216 |
'b' => [],
|
217 |
'i' => [],
|
218 |
'u' => [],
|
219 |
-
'
|
220 |
'br' => [],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
221 |
'abbr' => [
|
222 |
'title' => [],
|
223 |
],
|
@@ -256,16 +258,7 @@ function ha_get_allowed_html_tags( $level = 'basic' ) {
|
|
256 |
'acronym' => [
|
257 |
'title' => [],
|
258 |
],
|
259 |
-
'strike' => [],
|
260 |
-
'small' => [],
|
261 |
-
'code' => [],
|
262 |
-
'mark' => [],
|
263 |
-
'del' => [],
|
264 |
-
'ins' => [],
|
265 |
-
'sub' => [],
|
266 |
-
'sup' => [],
|
267 |
'hr' => [],
|
268 |
-
's' => [],
|
269 |
];
|
270 |
|
271 |
$allowed_html = array_merge( $allowed_html, $tags );
|
79 |
|
80 |
function ha_get_css_cursors() {
|
81 |
return [
|
82 |
+
'default' => __( 'Default', 'happy-elementor-addons' ),
|
83 |
+
'alias' => __( 'Alias', 'happy-elementor-addons' ),
|
84 |
+
'all-scroll' => __( 'All scroll', 'happy-elementor-addons' ),
|
85 |
+
'auto' => __( 'Auto', 'happy-elementor-addons' ),
|
86 |
+
'cell' => __( 'Cell', 'happy-elementor-addons' ),
|
87 |
'context-menu' => __( 'Context menu', 'happy-elementor-addons' ),
|
88 |
+
'col-resize' => __( 'Col-resize', 'happy-elementor-addons' ),
|
89 |
+
'copy' => __( 'Copy', 'happy-elementor-addons' ),
|
90 |
+
'crosshair' => __( 'Crosshair', 'happy-elementor-addons' ),
|
91 |
+
'e-resize' => __( 'E-resize', 'happy-elementor-addons' ),
|
92 |
+
'ew-resize' => __( 'EW-resize', 'happy-elementor-addons' ),
|
93 |
+
'grab' => __( 'Grab', 'happy-elementor-addons' ),
|
94 |
+
'grabbing' => __( 'Grabbing', 'happy-elementor-addons' ),
|
95 |
+
'help' => __( 'Help', 'happy-elementor-addons' ),
|
96 |
+
'move' => __( 'Move', 'happy-elementor-addons' ),
|
97 |
+
'n-resize' => __( 'N-resize', 'happy-elementor-addons' ),
|
98 |
+
'ne-resize' => __( 'NE-resize', 'happy-elementor-addons' ),
|
99 |
+
'nesw-resize' => __( 'NESW-resize', 'happy-elementor-addons' ),
|
100 |
+
'ns-resize' => __( 'NS-resize', 'happy-elementor-addons' ),
|
101 |
+
'nw-resize' => __( 'NW-resize', 'happy-elementor-addons' ),
|
102 |
+
'nwse-resize' => __( 'NWSE-resize', 'happy-elementor-addons' ),
|
103 |
+
'no-drop' => __( 'No-drop', 'happy-elementor-addons' ),
|
104 |
+
'not-allowed' => __( 'Not-allowed', 'happy-elementor-addons' ),
|
105 |
+
'pointer' => __( 'Pointer', 'happy-elementor-addons' ),
|
106 |
+
'progress' => __( 'Progress', 'happy-elementor-addons' ),
|
107 |
+
'row-resize' => __( 'Row-resize', 'happy-elementor-addons' ),
|
108 |
+
's-resize' => __( 'S-resize', 'happy-elementor-addons' ),
|
109 |
+
'se-resize' => __( 'SE-resize', 'happy-elementor-addons' ),
|
110 |
+
'sw-resize' => __( 'SW-resize', 'happy-elementor-addons' ),
|
111 |
+
'text' => __( 'Text', 'happy-elementor-addons' ),
|
112 |
+
'url' => __( 'URL', 'happy-elementor-addons' ),
|
113 |
+
'w-resize' => __( 'W-resize', 'happy-elementor-addons' ),
|
114 |
+
'wait' => __( 'Wait', 'happy-elementor-addons' ),
|
115 |
+
'zoom-in' => __( 'Zoom-in', 'happy-elementor-addons' ),
|
116 |
+
'zoom-out' => __( 'Zoom-out', 'happy-elementor-addons' ),
|
117 |
+
'none' => __( 'None', 'happy-elementor-addons' ),
|
118 |
];
|
119 |
}
|
120 |
|
121 |
function ha_get_css_blend_modes() {
|
122 |
return [
|
123 |
+
'normal' => __( 'Normal', 'happy-elementor-addons' ),
|
124 |
+
'multiply' => __( 'Multiply', 'happy-elementor-addons' ),
|
125 |
+
'screen' => __( 'Screen', 'happy-elementor-addons' ),
|
126 |
+
'overlay' => __( 'Overlay', 'happy-elementor-addons' ),
|
127 |
+
'darken' => __( 'Darken', 'happy-elementor-addons' ),
|
128 |
+
'lighten' => __( 'Lighten', 'happy-elementor-addons' ),
|
129 |
'color-dodge' => __( 'Color Dodge', 'happy-elementor-addons' ),
|
130 |
+
'color-burn' => __( 'Color Burn', 'happy-elementor-addons' ),
|
131 |
+
'saturation' => __( 'Saturation', 'happy-elementor-addons' ),
|
132 |
+
'difference' => __( 'Difference', 'happy-elementor-addons' ),
|
133 |
+
'exclusion' => __( 'Exclusion', 'happy-elementor-addons' ),
|
134 |
+
'hue' => __( 'Hue', 'happy-elementor-addons' ),
|
135 |
+
'color' => __( 'Color', 'happy-elementor-addons' ),
|
136 |
+
'luminosity' => __( 'Luminosity', 'happy-elementor-addons' ),
|
137 |
];
|
138 |
}
|
139 |
|
189 |
return \Happy_Addons\Elementor\Icons_Manager::get_happy_icons();
|
190 |
}
|
191 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
/**
|
193 |
* Get elementor instance
|
194 |
*
|
209 |
'b' => [],
|
210 |
'i' => [],
|
211 |
'u' => [],
|
212 |
+
's' => [],
|
213 |
'br' => [],
|
214 |
+
'em' => [],
|
215 |
+
'del' => [],
|
216 |
+
'ins' => [],
|
217 |
+
'sub' => [],
|
218 |
+
'sup' => [],
|
219 |
+
'code' => [],
|
220 |
+
'mark' => [],
|
221 |
+
'small' => [],
|
222 |
+
'strike' => [],
|
223 |
'abbr' => [
|
224 |
'title' => [],
|
225 |
],
|
258 |
'acronym' => [
|
259 |
'title' => [],
|
260 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
'hr' => [],
|
|
|
262 |
];
|
263 |
|
264 |
$allowed_html = array_merge( $allowed_html, $tags );
|
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Happy Elementor Addons
|
4 |
* Plugin URI: https://happyaddons.com/
|
5 |
* Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
|
6 |
-
* Version: 2.
|
7 |
* Author: weDevs
|
8 |
* Author URI: https://happyaddons.com/
|
9 |
* License: GPLv2
|
@@ -34,7 +34,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
|
|
34 |
|
35 |
defined( 'ABSPATH' ) || die();
|
36 |
|
37 |
-
define( 'HAPPY_ADDONS_VERSION', '2.
|
38 |
define( 'HAPPY_ADDONS__FILE__', __FILE__ );
|
39 |
define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
|
40 |
define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
|
3 |
* Plugin Name: Happy Elementor Addons
|
4 |
* Plugin URI: https://happyaddons.com/
|
5 |
* Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
|
6 |
+
* Version: 2.13.0
|
7 |
* Author: weDevs
|
8 |
* Author URI: https://happyaddons.com/
|
9 |
* License: GPLv2
|
34 |
|
35 |
defined( 'ABSPATH' ) || die();
|
36 |
|
37 |
+
define( 'HAPPY_ADDONS_VERSION', '2.13.0' );
|
38 |
define( 'HAPPY_ADDONS__FILE__', __FILE__ );
|
39 |
define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
|
40 |
define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
|
@@ -1,6 +1,6 @@
|
|
1 |
=== Happy Addons for Elementor ===
|
2 |
Plugin Name: Happy Addons for Elementor
|
3 |
-
Version: 2.
|
4 |
Author: weDevs
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
|
@@ -258,6 +258,31 @@ For a more detailed explanation check out the following documentation
|
|
258 |
|
259 |
== Changelog ==
|
260 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
= 2.12.3 - 13 July 2020 =
|
262 |
|
263 |
- Tweak: Twitter feed widget icon updated
|
1 |
=== Happy Addons for Elementor ===
|
2 |
Plugin Name: Happy Addons for Elementor
|
3 |
+
Version: 2.13.0
|
4 |
Author: weDevs
|
5 |
Author URI: https://happyaddons.com/
|
6 |
Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
|
258 |
|
259 |
== Changelog ==
|
260 |
|
261 |
+
= 2.13.0 - 27 July 2020 =
|
262 |
+
|
263 |
+
- New: Data Table widget
|
264 |
+
- New: `happyaddons/extensions/grid_layer` hook to control Grid Layer
|
265 |
+
- New: `happyaddons/extensions/background_overlay` hook to control Background Overlay
|
266 |
+
- New: `happyaddons/extensions/wrapper_link` hook to control Wrapper Link
|
267 |
+
- New: `happyaddons/extensions/happy_clone` hook to control Happy Clone
|
268 |
+
- New: `happyaddons/extensions/adminbar_menu` hook to control Adminbar menu
|
269 |
+
- New: `happyaddons/extensions/floating_effects` hook to control Floating Effects
|
270 |
+
- New: `happyaddons/extensions/css_transform` hook to control CSS Transform
|
271 |
+
- New: `happyaddons/extensions/on_demand_cache` hook to control On Demand Assets Loading
|
272 |
+
- Tweak: Added CSS Transform hover state support
|
273 |
+
- Tweak: Added Stepflow direction arrow rotatation support
|
274 |
+
- Tweak: Added Card button full width support
|
275 |
+
- Tweak: Added Card responsive image positioning
|
276 |
+
- Tweak: Restored justify alignment in all widgets
|
277 |
+
- Tweak: Improved base styles in all widgets
|
278 |
+
- Tweak: Removed widget control panel link from editor panel
|
279 |
+
- Tweak: Removed HappyAddons shortcut link from finder
|
280 |
+
- Tweak: Removed unnecessary css
|
281 |
+
- Tweak: Post List content on/off option
|
282 |
+
- Tweak: Post List feature image left & top show option
|
283 |
+
- Fix: Post List date issue
|
284 |
+
- Fix: WPML link translation issue
|
285 |
+
|
286 |
= 2.12.3 - 13 July 2020 =
|
287 |
|
288 |
- Tweak: Twitter feed widget icon updated
|
@@ -40,7 +40,7 @@ class Bar_Chart extends Base {
|
|
40 |
}
|
41 |
|
42 |
public function get_keywords() {
|
43 |
-
return [ 'chart', 'bar', 'statistic' ];
|
44 |
}
|
45 |
|
46 |
protected function register_content_controls() {
|
@@ -55,7 +55,7 @@ class Bar_Chart extends Base {
|
|
55 |
$this->add_control(
|
56 |
'chart_position',
|
57 |
[
|
58 |
-
'label' => __( '
|
59 |
'type' => Controls_Manager::SELECT,
|
60 |
'default' => 'bar',
|
61 |
'options' => [
|
@@ -92,6 +92,7 @@ class Bar_Chart extends Base {
|
|
92 |
[
|
93 |
'label' => __( 'Label', 'happy-elementor-addons' ),
|
94 |
'type' => Controls_Manager::TEXT,
|
|
|
95 |
'dynamic' => [ 'active' => true ],
|
96 |
]
|
97 |
);
|
@@ -100,6 +101,7 @@ class Bar_Chart extends Base {
|
|
100 |
'data',
|
101 |
[
|
102 |
'label' => __( 'Data', 'happy-elementor-addons' ),
|
|
|
103 |
'type' => Controls_Manager::TEXT,
|
104 |
'description' => __( 'Write data values with comma ( , ) separator. Example: 4, 2, 6', 'happy-elementor-addons' ),
|
105 |
]
|
40 |
}
|
41 |
|
42 |
public function get_keywords() {
|
43 |
+
return [ 'chart', 'bar', 'statistic', 'graph' ];
|
44 |
}
|
45 |
|
46 |
protected function register_content_controls() {
|
55 |
$this->add_control(
|
56 |
'chart_position',
|
57 |
[
|
58 |
+
'label' => __( '', 'happy-elementor-addons' ),
|
59 |
'type' => Controls_Manager::SELECT,
|
60 |
'default' => 'bar',
|
61 |
'options' => [
|
92 |
[
|
93 |
'label' => __( 'Label', 'happy-elementor-addons' ),
|
94 |
'type' => Controls_Manager::TEXT,
|
95 |
+
'label_block' => true,
|
96 |
'dynamic' => [ 'active' => true ],
|
97 |
]
|
98 |
);
|
101 |
'data',
|
102 |
[
|
103 |
'label' => __( 'Data', 'happy-elementor-addons' ),
|
104 |
+
'label_block' => true,
|
105 |
'type' => Controls_Manager::TEXT,
|
106 |
'description' => __( 'Write data values with comma ( , ) separator. Example: 4, 2, 6', 'happy-elementor-addons' ),
|
107 |
]
|
@@ -87,7 +87,7 @@ class Card extends Base {
|
|
87 |
]
|
88 |
);
|
89 |
|
90 |
-
$this->
|
91 |
'image_position',
|
92 |
[
|
93 |
'label' => __( 'Image Position', 'happy-elementor-addons' ),
|
@@ -108,9 +108,19 @@ class Card extends Base {
|
|
108 |
],
|
109 |
],
|
110 |
'toggle' => false,
|
111 |
-
'
|
112 |
-
'
|
|
|
|
|
113 |
'style_transfer' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
114 |
]
|
115 |
);
|
116 |
|
@@ -213,15 +223,19 @@ class Card extends Base {
|
|
213 |
'options' => [
|
214 |
'left' => [
|
215 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
216 |
-
'icon' => '
|
217 |
],
|
218 |
'center' => [
|
219 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
220 |
-
'icon' => '
|
221 |
],
|
222 |
'right' => [
|
223 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
224 |
-
'icon' => '
|
|
|
|
|
|
|
|
|
225 |
],
|
226 |
],
|
227 |
'toggle' => true,
|
@@ -263,10 +277,67 @@ class Card extends Base {
|
|
263 |
'placeholder' => 'https://example.com',
|
264 |
'dynamic' => [
|
265 |
'active' => true,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
266 |
]
|
267 |
]
|
268 |
);
|
269 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
270 |
if ( ha_is_elementor_version( '<', '2.6.0' ) ) {
|
271 |
$this->add_control(
|
272 |
'button_icon',
|
@@ -296,17 +367,11 @@ class Card extends Base {
|
|
296 |
'button_icon_position',
|
297 |
[
|
298 |
'label' => __( 'Icon Position', 'happy-elementor-addons' ),
|
299 |
-
'type' => Controls_Manager::
|
300 |
'label_block' => false,
|
301 |
'options' => [
|
302 |
-
'before' =>
|
303 |
-
|
304 |
-
'icon' => 'eicon-h-align-left',
|
305 |
-
],
|
306 |
-
'after' => [
|
307 |
-
'title' => __( 'After', 'happy-elementor-addons' ),
|
308 |
-
'icon' => 'eicon-h-align-right',
|
309 |
-
],
|
310 |
],
|
311 |
'default' => 'before',
|
312 |
'toggle' => false,
|
@@ -366,8 +431,7 @@ class Card extends Base {
|
|
366 |
],
|
367 |
],
|
368 |
'selectors' => [
|
369 |
-
'{{WRAPPER}}
|
370 |
-
'{{WRAPPER}}.ha-card--right .ha-card-body, {{WRAPPER}}.ha-card--left .ha-card-body' => 'flex: 0 0 calc(100% - {{SIZE || 50}}{{UNIT}}); max-width: calc(100% - {{SIZE || 50}}{{UNIT}});',
|
371 |
],
|
372 |
]
|
373 |
);
|
@@ -418,7 +482,9 @@ class Card extends Base {
|
|
418 |
'max' => 1000,
|
419 |
],
|
420 |
],
|
421 |
-
'
|
|
|
|
|
422 |
]
|
423 |
);
|
424 |
|
@@ -438,23 +504,11 @@ class Card extends Base {
|
|
438 |
],
|
439 |
],
|
440 |
'selectors' => [
|
441 |
-
|
442 |
-
'(desktop){{WRAPPER}}.ha-card--left .ha-card-body' => 'margin-left: {{image_offset_x.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width.SIZE || 50}}{{image_width.UNIT}}) + (-1 * {{image_offset_x.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width.SIZE || 50}}{{image_width.UNIT}}) + (-1 * {{image_offset_x.SIZE || 0}}{{UNIT}}));',
|
443 |
-
'(tablet){{WRAPPER}}.ha-card--left .ha-card-body' => 'margin-left: {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width_tablet.SIZE || 50}}{{image_width_tablet.UNIT}}) + (-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width_tablet.SIZE || 50}}{{image_width_tablet.UNIT}}) + (-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}));',
|
444 |
-
'(mobile){{WRAPPER}}.ha-card--left .ha-card-body' => 'margin-left: {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width_mobile.SIZE || 50}}{{image_width_mobile.UNIT}}) + (-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width_mobile.SIZE || 50}}{{image_width_mobile.UNIT}}) + (-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}));',
|
445 |
-
// Image right position styles
|
446 |
-
'(desktop){{WRAPPER}}.ha-card--right .ha-card-body' => 'margin-right: calc(-1 * {{image_offset_x.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width.SIZE || 50}}{{image_width.UNIT}}) + {{image_offset_x.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width.SIZE || 50}}{{image_width.UNIT}}) + {{image_offset_x.SIZE || 0}}{{UNIT}});',
|
447 |
-
'(tablet){{WRAPPER}}.ha-card--right .ha-card-body' => 'margin-right: calc(-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width_tablet.SIZE || 50}}{{image_width_tablet.UNIT}}) + {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width_tablet.SIZE || 50}}{{image_width_tablet.UNIT}}) + {{image_offset_x_tablet.SIZE || 0}}{{UNIT}});',
|
448 |
-
'(mobile){{WRAPPER}}.ha-card--right .ha-card-body' => 'margin-right: calc(-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width_mobile.SIZE || 50}}{{image_width_mobile.UNIT}}) + {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width_mobile.SIZE || 50}}{{image_width_mobile.UNIT}}) + {{image_offset_x_mobile.SIZE || 0}}{{UNIT}});',
|
449 |
-
// Image translate styles
|
450 |
-
'(desktop){{WRAPPER}} .ha-card-figure' => '-ms-transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}});',
|
451 |
-
'(tablet){{WRAPPER}} .ha-card-figure' => '-ms-transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}});',
|
452 |
-
'(mobile){{WRAPPER}} .ha-card-figure' => '-ms-transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}});',
|
453 |
-
// Card body styles
|
454 |
-
'{{WRAPPER}}.ha-card--top .ha-card-body' => 'margin-top: {{SIZE}}{{UNIT}};',
|
455 |
],
|
456 |
]
|
457 |
);
|
|
|
458 |
$this->end_popover();
|
459 |
|
460 |
$this->add_responsive_control(
|
@@ -620,14 +674,14 @@ class Card extends Base {
|
|
620 |
'label' => __( 'Position', 'happy-elementor-addons' ),
|
621 |
'type' => Controls_Manager::SELECT,
|
622 |
'options' => [
|
623 |
-
'top-left'
|
624 |
-
'top-center'
|
625 |
-
'top-right'
|
626 |
-
'middle-left'
|
627 |
-
'middle-center'
|
628 |
'middle-right' => __( 'Middle Right', 'happy-elementor-addons' ),
|
629 |
-
'bottom-left'
|
630 |
-
'bottom-center'
|
631 |
'bottom-right' => __( 'Bottom Right', 'happy-elementor-addons' ),
|
632 |
],
|
633 |
'default' => 'top-right',
|
@@ -662,7 +716,9 @@ class Card extends Base {
|
|
662 |
'max' => 1000,
|
663 |
],
|
664 |
],
|
665 |
-
'
|
|
|
|
|
666 |
]
|
667 |
);
|
668 |
|
@@ -682,9 +738,7 @@ class Card extends Base {
|
|
682 |
],
|
683 |
],
|
684 |
'selectors' => [
|
685 |
-
'
|
686 |
-
'(tablet){{WRAPPER}} .ha-badge' => '-ms-transform: translate({{badge_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{badge_offset_y_tablet.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{badge_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{badge_offset_y_tablet.SIZE || 0}}{{UNIT}}); transform: translate({{badge_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{badge_offset_y_tablet.SIZE || 0}}{{UNIT}});',
|
687 |
-
'(mobile){{WRAPPER}} .ha-badge' => '-ms-transform: translate({{badge_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{badge_offset_y_mobile.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{badge_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{badge_offset_y_mobile.SIZE || 0}}{{UNIT}}); transform: translate({{badge_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{badge_offset_y_mobile.SIZE || 0}}{{UNIT}});',
|
688 |
],
|
689 |
]
|
690 |
);
|
@@ -1048,7 +1102,7 @@ class Card extends Base {
|
|
1048 |
<figure class="ha-card-figure">
|
1049 |
<?php echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'image' ); ?>
|
1050 |
<?php if ( $settings['badge_text'] ) : ?>
|
1051 |
-
<
|
1052 |
<?php endif; ?>
|
1053 |
</figure>
|
1054 |
<?php endif; ?>
|
@@ -1105,7 +1159,7 @@ class Card extends Base {
|
|
1105 |
<figure class="ha-card-figure">
|
1106 |
<img class="elementor-animation-{{settings.hover_animation}}" src="{{ image_url }}">
|
1107 |
<# if (settings.badge_text) { #>
|
1108 |
-
<
|
1109 |
<# } #>
|
1110 |
</figure>
|
1111 |
<# } #>
|
87 |
]
|
88 |
);
|
89 |
|
90 |
+
$this->add_responsive_control(
|
91 |
'image_position',
|
92 |
[
|
93 |
'label' => __( 'Image Position', 'happy-elementor-addons' ),
|
108 |
],
|
109 |
],
|
110 |
'toggle' => false,
|
111 |
+
'desktop_default' => 'top',
|
112 |
+
'tablet_default' => 'top',
|
113 |
+
'mobile_default' => 'top',
|
114 |
+
'prefix_class' => 'ha-card-%s-',
|
115 |
'style_transfer' => true,
|
116 |
+
'selectors' => [
|
117 |
+
'{{WRAPPER}} .elementor-widget-container' => '{{VALUE}};',
|
118 |
+
],
|
119 |
+
'selectors_dictionary' => [
|
120 |
+
'left' => '-webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; text-align: left;',
|
121 |
+
'top' => '-webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; text-align: left;',
|
122 |
+
'right' => '-webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; text-align: right;'
|
123 |
+
]
|
124 |
]
|
125 |
);
|
126 |
|
223 |
'options' => [
|
224 |
'left' => [
|
225 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
226 |
+
'icon' => 'eicon-text-align-left',
|
227 |
],
|
228 |
'center' => [
|
229 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
230 |
+
'icon' => 'eicon-text-align-center',
|
231 |
],
|
232 |
'right' => [
|
233 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
234 |
+
'icon' => 'eicon-text-align-right',
|
235 |
+
],
|
236 |
+
'justify' => [
|
237 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
238 |
+
'icon' => 'eicon-text-align-justify',
|
239 |
],
|
240 |
],
|
241 |
'toggle' => true,
|
277 |
'placeholder' => 'https://example.com',
|
278 |
'dynamic' => [
|
279 |
'active' => true,
|
280 |
+
],
|
281 |
+
'default' => [
|
282 |
+
'url' => '#'
|
283 |
+
],
|
284 |
+
]
|
285 |
+
);
|
286 |
+
|
287 |
+
$this->add_control(
|
288 |
+
'button_fullwidth',
|
289 |
+
[
|
290 |
+
'label' => __( 'Full Width?', 'happy-elementor-addons' ),
|
291 |
+
'type' => Controls_Manager::SWITCHER,
|
292 |
+
'default' => false,
|
293 |
+
'return_value' => 'yes',
|
294 |
+
'style_transfer' => true,
|
295 |
+
'selectors' => [
|
296 |
+
'{{WRAPPER}} .ha-btn' => 'display: -webkit-box; display: -ms-flexbox; display: flex;',
|
297 |
]
|
298 |
]
|
299 |
);
|
300 |
|
301 |
+
$this->add_control(
|
302 |
+
'button_align',
|
303 |
+
[
|
304 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
305 |
+
'type' => Controls_Manager::CHOOSE,
|
306 |
+
'options' => [
|
307 |
+
'left' => [
|
308 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
309 |
+
'icon' => 'eicon-text-align-left',
|
310 |
+
],
|
311 |
+
'center' => [
|
312 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
313 |
+
'icon' => 'eicon-text-align-center',
|
314 |
+
],
|
315 |
+
'right' => [
|
316 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
317 |
+
'icon' => 'eicon-text-align-right',
|
318 |
+
],
|
319 |
+
'stretch' => [
|
320 |
+
'title' => __( 'Stretch', 'happy-elementor-addons' ),
|
321 |
+
'icon' => 'eicon-text-align-justify',
|
322 |
+
],
|
323 |
+
],
|
324 |
+
'toggle' => false,
|
325 |
+
'default' => 'center',
|
326 |
+
'selectors' => [
|
327 |
+
'{{WRAPPER}} .ha-btn' => '{{VALUE}}',
|
328 |
+
],
|
329 |
+
'selectors_dictionary' => [
|
330 |
+
'left' => '-webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start;',
|
331 |
+
'center' => '-webkit-box-pack: center; -ms-flex-pack: center; justify-content: center;',
|
332 |
+
'right' => '-webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end;',
|
333 |
+
'stretch' => '-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between;',
|
334 |
+
],
|
335 |
+
'condition' => [
|
336 |
+
'button_fullwidth' => 'yes',
|
337 |
+
],
|
338 |
+
]
|
339 |
+
);
|
340 |
+
|
341 |
if ( ha_is_elementor_version( '<', '2.6.0' ) ) {
|
342 |
$this->add_control(
|
343 |
'button_icon',
|
367 |
'button_icon_position',
|
368 |
[
|
369 |
'label' => __( 'Icon Position', 'happy-elementor-addons' ),
|
370 |
+
'type' => Controls_Manager::SELECT,
|
371 |
'label_block' => false,
|
372 |
'options' => [
|
373 |
+
'before' => __( 'Before Text', 'happy-elementor-addons' ),
|
374 |
+
'after' => __( 'After Text', 'happy-elementor-addons' ),
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
],
|
376 |
'default' => 'before',
|
377 |
'toggle' => false,
|
431 |
],
|
432 |
],
|
433 |
'selectors' => [
|
434 |
+
'{{WRAPPER}}' => '--ha-card-image-width: {{SIZE}}{{UNIT}};'
|
|
|
435 |
],
|
436 |
]
|
437 |
);
|
482 |
'max' => 1000,
|
483 |
],
|
484 |
],
|
485 |
+
'selectors' => [
|
486 |
+
'{{WRAPPER}}' => '--ha-card-image-offset-x: {{SIZE}}{{UNIT}};'
|
487 |
+
]
|
488 |
]
|
489 |
);
|
490 |
|
504 |
],
|
505 |
],
|
506 |
'selectors' => [
|
507 |
+
'{{WRAPPER}}' => '--ha-card-image-offset-y: {{SIZE}}{{UNIT}};',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
],
|
509 |
]
|
510 |
);
|
511 |
+
|
512 |
$this->end_popover();
|
513 |
|
514 |
$this->add_responsive_control(
|
674 |
'label' => __( 'Position', 'happy-elementor-addons' ),
|
675 |
'type' => Controls_Manager::SELECT,
|
676 |
'options' => [
|
677 |
+
'top-left' => __( 'Top Left', 'happy-elementor-addons' ),
|
678 |
+
'top-center' => __( 'Top Center', 'happy-elementor-addons' ),
|
679 |
+
'top-right' => __( 'Top Right', 'happy-elementor-addons' ),
|
680 |
+
'middle-left' => __( 'Middle Left', 'happy-elementor-addons' ),
|
681 |
+
'middle-center' => __( 'Middle Center', 'happy-elementor-addons' ),
|
682 |
'middle-right' => __( 'Middle Right', 'happy-elementor-addons' ),
|
683 |
+
'bottom-left' => __( 'Bottom Left', 'happy-elementor-addons' ),
|
684 |
+
'bottom-center' => __( 'Bottom Center', 'happy-elementor-addons' ),
|
685 |
'bottom-right' => __( 'Bottom Right', 'happy-elementor-addons' ),
|
686 |
],
|
687 |
'default' => 'top-right',
|
716 |
'max' => 1000,
|
717 |
],
|
718 |
],
|
719 |
+
'selectors' => [
|
720 |
+
'{{WRAPPER}} .ha-badge' => '--ha-badge-translate-x: {{SIZE}}{{UNIT}};',
|
721 |
+
],
|
722 |
]
|
723 |
);
|
724 |
|
738 |
],
|
739 |
],
|
740 |
'selectors' => [
|
741 |
+
'{{WRAPPER}} .ha-badge' => '--ha-badge-translate-y: {{SIZE}}{{UNIT}};',
|
|
|
|
|
742 |
],
|
743 |
]
|
744 |
);
|
1102 |
<figure class="ha-card-figure">
|
1103 |
<?php echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'image' ); ?>
|
1104 |
<?php if ( $settings['badge_text'] ) : ?>
|
1105 |
+
<span <?php echo $this->get_render_attribute_string( 'badge_text' ); ?>><?php echo esc_html( $settings['badge_text'] ); ?></span>
|
1106 |
<?php endif; ?>
|
1107 |
</figure>
|
1108 |
<?php endif; ?>
|
1159 |
<figure class="ha-card-figure">
|
1160 |
<img class="elementor-animation-{{settings.hover_animation}}" src="{{ image_url }}">
|
1161 |
<# if (settings.badge_text) { #>
|
1162 |
+
<span {{{ view.getRenderAttributeString( 'badge_text' ) }}}>{{ settings.badge_text }}</span>
|
1163 |
<# } #>
|
1164 |
</figure>
|
1165 |
<# } #>
|
@@ -0,0 +1,1131 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Data Table
|
4 |
+
*
|
5 |
+
* @package Happy_Addons
|
6 |
+
*/
|
7 |
+
|
8 |
+
namespace Happy_Addons\Elementor\Widget;
|
9 |
+
|
10 |
+
use Elementor\Controls_Manager;
|
11 |
+
use Elementor\Icons_Manager;
|
12 |
+
use Elementor\Repeater;
|
13 |
+
use Elementor\Scheme_Typography;
|
14 |
+
use Elementor\Group_Control_Typography;
|
15 |
+
use Elementor\Group_Control_Border;
|
16 |
+
use Elementor\Group_Control_Background;
|
17 |
+
use Elementor\Group_Control_Box_Shadow;
|
18 |
+
use Elementor\Group_Control_Image_Size;
|
19 |
+
use Elementor\Utils;
|
20 |
+
use Elementor\Control_Media;
|
21 |
+
|
22 |
+
defined('ABSPATH') || die();
|
23 |
+
|
24 |
+
class Data_Table extends Base {
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Get widget title.
|
28 |
+
*
|
29 |
+
* @return string Widget title.
|
30 |
+
* @since 1.0.0
|
31 |
+
* @access public
|
32 |
+
*
|
33 |
+
*/
|
34 |
+
public function get_title() {
|
35 |
+
return __( 'Data Table', 'happy-elementor-addons' );
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* Get widget icon.
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
* @since 1.0.0
|
43 |
+
* @access public
|
44 |
+
*
|
45 |
+
*/
|
46 |
+
public function get_icon() {
|
47 |
+
return 'hm hm-data-table';
|
48 |
+
}
|
49 |
+
|
50 |
+
public function get_keywords() {
|
51 |
+
return ['data', 'table', 'statistics'];
|
52 |
+
}
|
53 |
+
|
54 |
+
|
55 |
+
/**
|
56 |
+
* Register content related controls
|
57 |
+
*/
|
58 |
+
protected function register_content_controls() {
|
59 |
+
$this->start_controls_section(
|
60 |
+
'_section_table_column',
|
61 |
+
[
|
62 |
+
'label' => __( 'Table Head', 'happy-elementor-addons' ),
|
63 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
64 |
+
]
|
65 |
+
);
|
66 |
+
|
67 |
+
$repeater = new Repeater();
|
68 |
+
|
69 |
+
$repeater->start_controls_tabs( '_tabs_column' );
|
70 |
+
|
71 |
+
$repeater->start_controls_tab(
|
72 |
+
'_tab_column_content',
|
73 |
+
[
|
74 |
+
'label' => __( 'Content', 'happy-elementor-addons' ),
|
75 |
+
]
|
76 |
+
);
|
77 |
+
|
78 |
+
$repeater->add_control(
|
79 |
+
'column_name',
|
80 |
+
[
|
81 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
82 |
+
'type' => Controls_Manager::TEXT,
|
83 |
+
'label_block' => true,
|
84 |
+
'placeholder' => __( 'Column Name', 'happy-elementor-addons' ),
|
85 |
+
'default' => __( 'Column One', 'happy-elementor-addons' ),
|
86 |
+
'dynamic' => [
|
87 |
+
'active' => true,
|
88 |
+
]
|
89 |
+
]
|
90 |
+
);
|
91 |
+
|
92 |
+
$repeater->add_control(
|
93 |
+
'column_span',
|
94 |
+
[
|
95 |
+
'label' => __( 'Col Span', 'happy-elementor-addons' ),
|
96 |
+
'type' => Controls_Manager::NUMBER,
|
97 |
+
'min' => 0,
|
98 |
+
'max' => 50,
|
99 |
+
'step' => 1
|
100 |
+
]
|
101 |
+
);
|
102 |
+
|
103 |
+
$repeater->add_responsive_control(
|
104 |
+
'column_media',
|
105 |
+
[
|
106 |
+
'label' => __( 'Media', 'happy-elementor-addons' ),
|
107 |
+
'type' => Controls_Manager::CHOOSE,
|
108 |
+
'label_block' => false,
|
109 |
+
'toggle' => false,
|
110 |
+
'default' => 'none',
|
111 |
+
'options' => [
|
112 |
+
'none' => [
|
113 |
+
'title' => __( 'None', 'happy-elementor-addons' ),
|
114 |
+
'icon' => 'eicon-editor-close',
|
115 |
+
],
|
116 |
+
'icon' => [
|
117 |
+
'title' => __( 'Icon', 'happy-elementor-addons' ),
|
118 |
+
'icon' => 'eicon-info-circle',
|
119 |
+
],
|
120 |
+
'image' => [
|
121 |
+
'title' => __( 'Image', 'happy-elementor-addons' ),
|
122 |
+
'icon' => 'eicon-image-bold',
|
123 |
+
],
|
124 |
+
]
|
125 |
+
]
|
126 |
+
);
|
127 |
+
|
128 |
+
$repeater->add_control(
|
129 |
+
'column_icons',
|
130 |
+
[
|
131 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
132 |
+
'type' => Controls_Manager::ICONS,
|
133 |
+
'fa4compatibility' => 'column_icon',
|
134 |
+
'label_block' => true,
|
135 |
+
'condition' => [
|
136 |
+
'column_media' => 'icon'
|
137 |
+
],
|
138 |
+
]
|
139 |
+
);
|
140 |
+
|
141 |
+
$repeater->add_control(
|
142 |
+
'column_image',
|
143 |
+
[
|
144 |
+
'label' => __( 'Image', 'happy-elementor-addons' ),
|
145 |
+
'type' => Controls_Manager::MEDIA,
|
146 |
+
'default' => [
|
147 |
+
'url' => Utils::get_placeholder_image_src(),
|
148 |
+
],
|
149 |
+
'dynamic' => [
|
150 |
+
'active' => true,
|
151 |
+
],
|
152 |
+
'condition' => [
|
153 |
+
'column_media' => 'image'
|
154 |
+
]
|
155 |
+
]
|
156 |
+
);
|
157 |
+
|
158 |
+
$repeater->add_group_control(
|
159 |
+
Group_Control_Image_Size::get_type(),
|
160 |
+
[
|
161 |
+
'name' => 'column_thumbnail',
|
162 |
+
'default' => 'thumbnail',
|
163 |
+
'separator' => 'none',
|
164 |
+
'condition' => [
|
165 |
+
'column_media' => 'image'
|
166 |
+
]
|
167 |
+
]
|
168 |
+
);
|
169 |
+
|
170 |
+
$repeater->end_controls_tab();
|
171 |
+
|
172 |
+
$repeater->start_controls_tab( '_tabs_column_style',
|
173 |
+
[
|
174 |
+
'label' => __( 'Style', 'happy-elementor-addons' ),
|
175 |
+
]
|
176 |
+
);
|
177 |
+
|
178 |
+
$repeater->add_control(
|
179 |
+
'head_custom_color',
|
180 |
+
[
|
181 |
+
'label' => __( 'Icon Color', 'happy-elementor-addons' ),
|
182 |
+
'type' => Controls_Manager::COLOR,
|
183 |
+
'condition' => [
|
184 |
+
'column_media' => 'icon'
|
185 |
+
],
|
186 |
+
'selectors' => [
|
187 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__head-column-cell-icon i' => 'color: {{VALUE}}',
|
188 |
+
],
|
189 |
+
]
|
190 |
+
);
|
191 |
+
|
192 |
+
$repeater->end_controls_tab();
|
193 |
+
$repeater->end_controls_tabs();
|
194 |
+
|
195 |
+
$this->add_control(
|
196 |
+
'columns_data',
|
197 |
+
[
|
198 |
+
'type' => Controls_Manager::REPEATER,
|
199 |
+
'fields' => $repeater->get_controls(),
|
200 |
+
'title_field' => '{{{ column_name }}}',
|
201 |
+
'default' => [
|
202 |
+
[
|
203 |
+
'column_name' => __( 'WordPress', 'happy-elementor-addons' )
|
204 |
+
],
|
205 |
+
[
|
206 |
+
'column_name' => __( 'Elementor', 'happy-elementor-addons' )
|
207 |
+
],
|
208 |
+
[
|
209 |
+
'column_name' => __( 'Happy Addons', 'happy-elementor-addons' )
|
210 |
+
],
|
211 |
+
]
|
212 |
+
]
|
213 |
+
);
|
214 |
+
|
215 |
+
$this->add_responsive_control(
|
216 |
+
'head_align',
|
217 |
+
[
|
218 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
219 |
+
'type' => Controls_Manager::CHOOSE,
|
220 |
+
'separator' => 'before',
|
221 |
+
'options' => [
|
222 |
+
'left' => [
|
223 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
224 |
+
'icon' => 'fa fa-align-left',
|
225 |
+
],
|
226 |
+
'center' => [
|
227 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
228 |
+
'icon' => 'fa fa-align-center',
|
229 |
+
],
|
230 |
+
'right' => [
|
231 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
232 |
+
'icon' => 'fa fa-align-right',
|
233 |
+
]
|
234 |
+
],
|
235 |
+
'default' => 'center',
|
236 |
+
'toggle' => false,
|
237 |
+
'prefix_class' => 'ha-column-alignment-',
|
238 |
+
'selectors' => [
|
239 |
+
'{{WRAPPER}} .ha-table__head-column-cell' => 'text-align: {{VALUE}}'
|
240 |
+
]
|
241 |
+
]
|
242 |
+
);
|
243 |
+
|
244 |
+
$this->add_responsive_control(
|
245 |
+
'icon_position',
|
246 |
+
[
|
247 |
+
'label' => __( 'Icon Position', 'happy-elementor-addons' ),
|
248 |
+
'type' => Controls_Manager::CHOOSE,
|
249 |
+
'options' => [
|
250 |
+
'left' => [
|
251 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
252 |
+
'icon' => 'eicon-h-align-left',
|
253 |
+
],
|
254 |
+
'right' => [
|
255 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
256 |
+
'icon' => 'eicon-h-align-right',
|
257 |
+
],
|
258 |
+
'top' => [
|
259 |
+
'title' => __( 'Top', 'happy-elementor-addons' ),
|
260 |
+
'icon' => 'eicon-v-align-top',
|
261 |
+
],
|
262 |
+
'bottom' => [
|
263 |
+
'title' => __( 'Bottom', 'happy-elementor-addons' ),
|
264 |
+
'icon' => 'eicon-v-align-bottom',
|
265 |
+
],
|
266 |
+
],
|
267 |
+
'default' => 'right',
|
268 |
+
'toggle' => false,
|
269 |
+
'prefix_class' => 'ha-column-icon-'
|
270 |
+
]
|
271 |
+
);
|
272 |
+
|
273 |
+
$this->end_controls_section();
|
274 |
+
|
275 |
+
$this->start_controls_section(
|
276 |
+
'_section_table_row',
|
277 |
+
[
|
278 |
+
'label' => __( 'Row', 'happy-elementor-addons' ),
|
279 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
280 |
+
]
|
281 |
+
);
|
282 |
+
|
283 |
+
$repeater = new Repeater();
|
284 |
+
|
285 |
+
$repeater->add_control(
|
286 |
+
'row_column_type',
|
287 |
+
[
|
288 |
+
'label' => __( 'Row/Column', 'happy-elementor-addons' ),
|
289 |
+
'type' => Controls_Manager::SELECT,
|
290 |
+
'default' => 'row',
|
291 |
+
'options' => [
|
292 |
+
'row' => __( 'Row', 'happy-elementor-addons' ),
|
293 |
+
'column' => __( 'Column', 'happy-elementor-addons' ),
|
294 |
+
],
|
295 |
+
]
|
296 |
+
);
|
297 |
+
|
298 |
+
$repeater->start_controls_tabs( '_tabs_row' );
|
299 |
+
|
300 |
+
$repeater->start_controls_tab(
|
301 |
+
'_tab_row_content',
|
302 |
+
[
|
303 |
+
'label' => __( 'Content', 'happy-elementor-addons' ),
|
304 |
+
'condition' => [
|
305 |
+
'row_column_type' => 'column'
|
306 |
+
],
|
307 |
+
]
|
308 |
+
);
|
309 |
+
|
310 |
+
$repeater->add_control(
|
311 |
+
'cell_name',
|
312 |
+
[
|
313 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
314 |
+
'type' => Controls_Manager::TEXT,
|
315 |
+
'label_block' => true,
|
316 |
+
'placeholder' => __( 'Cell Name', 'happy-elementor-addons' ),
|
317 |
+
'dynamic' => [
|
318 |
+
'active' => true,
|
319 |
+
],
|
320 |
+
'condition' => [
|
321 |
+
'row_column_type' => 'column'
|
322 |
+
],
|
323 |
+
]
|
324 |
+
);
|
325 |
+
|
326 |
+
$repeater->add_control(
|
327 |
+
'row_column_span',
|
328 |
+
[
|
329 |
+
'label' => __( 'Col Span', 'happy-elementor-addons' ),
|
330 |
+
'type' => Controls_Manager::NUMBER,
|
331 |
+
'min' => 0,
|
332 |
+
'max' => 50,
|
333 |
+
'step' => 1,
|
334 |
+
'condition' => [
|
335 |
+
'row_column_type' => 'column'
|
336 |
+
],
|
337 |
+
]
|
338 |
+
);
|
339 |
+
|
340 |
+
$repeater->add_control(
|
341 |
+
'row_span',
|
342 |
+
[
|
343 |
+
'label' => __( 'Row Span', 'happy-elementor-addons' ),
|
344 |
+
'type' => Controls_Manager::NUMBER,
|
345 |
+
'min' => 0,
|
346 |
+
'max' => 50,
|
347 |
+
'step' => 1,
|
348 |
+
'condition' => [
|
349 |
+
'row_column_type' => 'column'
|
350 |
+
],
|
351 |
+
]
|
352 |
+
);
|
353 |
+
|
354 |
+
$repeater->add_control(
|
355 |
+
'row_media',
|
356 |
+
[
|
357 |
+
'label' => __( 'Media', 'happy-elementor-addons' ),
|
358 |
+
'type' => Controls_Manager::CHOOSE,
|
359 |
+
'label_block' => false,
|
360 |
+
'toggle' => false,
|
361 |
+
'default' => 'none',
|
362 |
+
'condition' => [
|
363 |
+
'row_column_type' => 'column'
|
364 |
+
],
|
365 |
+
'options' => [
|
366 |
+
'icon' => [
|
367 |
+
'title' => __( 'Icon', 'happy-elementor-addons' ),
|
368 |
+
'icon' => 'eicon-info-circle',
|
369 |
+
],
|
370 |
+
'image' => [
|
371 |
+
'title' => __( 'Image', 'happy-elementor-addons' ),
|
372 |
+
'icon' => 'eicon-image-bold',
|
373 |
+
],
|
374 |
+
'none' => [
|
375 |
+
'title' => __( 'None', 'happy-elementor-addons' ),
|
376 |
+
'icon' => 'eicon-editor-close',
|
377 |
+
],
|
378 |
+
]
|
379 |
+
]
|
380 |
+
);
|
381 |
+
|
382 |
+
$repeater->add_control(
|
383 |
+
'row_icons',
|
384 |
+
[
|
385 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
386 |
+
'type' => Controls_Manager::ICONS,
|
387 |
+
'fa4compatibility' => 'row_icon',
|
388 |
+
'label_block' => true,
|
389 |
+
'condition' => [
|
390 |
+
'row_media' => 'icon',
|
391 |
+
'row_column_type' => 'column'
|
392 |
+
],
|
393 |
+
]
|
394 |
+
);
|
395 |
+
|
396 |
+
$repeater->add_control(
|
397 |
+
'row_image',
|
398 |
+
[
|
399 |
+
'label' => __( 'Image', 'happy-elementor-addons' ),
|
400 |
+
'type' => Controls_Manager::MEDIA,
|
401 |
+
'default' => [
|
402 |
+
'url' => Utils::get_placeholder_image_src(),
|
403 |
+
],
|
404 |
+
'condition' => [
|
405 |
+
'row_media' => 'image',
|
406 |
+
'row_column_type' => 'column'
|
407 |
+
],
|
408 |
+
'dynamic' => [
|
409 |
+
'active' => true,
|
410 |
+
]
|
411 |
+
]
|
412 |
+
);
|
413 |
+
|
414 |
+
$repeater->add_group_control(
|
415 |
+
Group_Control_Image_Size::get_type(),
|
416 |
+
[
|
417 |
+
'name' => 'row_thumbnail',
|
418 |
+
'default' => 'thumbnail',
|
419 |
+
'separator' => 'none',
|
420 |
+
'exclude' => [ 'custom' ],
|
421 |
+
'condition' => [
|
422 |
+
'row_media' => 'image',
|
423 |
+
'row_column_type' => 'column'
|
424 |
+
],
|
425 |
+
]
|
426 |
+
);
|
427 |
+
|
428 |
+
$repeater->end_controls_tab();
|
429 |
+
|
430 |
+
$repeater->start_controls_tab( '_tabs_row_style',
|
431 |
+
[
|
432 |
+
'label' => __( 'Style', 'happy-elementor-addons' ),
|
433 |
+
'condition' => [
|
434 |
+
'row_column_type' => 'column'
|
435 |
+
],
|
436 |
+
]
|
437 |
+
);
|
438 |
+
|
439 |
+
$repeater->add_control(
|
440 |
+
'row_custom_background_color',
|
441 |
+
[
|
442 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
443 |
+
'type' => Controls_Manager::COLOR,
|
444 |
+
'condition' => [
|
445 |
+
'row_column_type' => 'column'
|
446 |
+
],
|
447 |
+
'selectors' => [
|
448 |
+
'{{WRAPPER}} {{CURRENT_ITEM}}.ha-table__body-row-cell' => 'background-color: {{VALUE}}',
|
449 |
+
],
|
450 |
+
]
|
451 |
+
);
|
452 |
+
|
453 |
+
$repeater->add_control(
|
454 |
+
'row_custom_text_color',
|
455 |
+
[
|
456 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
457 |
+
'type' => Controls_Manager::COLOR,
|
458 |
+
'condition' => [
|
459 |
+
'row_column_type' => 'column'
|
460 |
+
],
|
461 |
+
'selectors' => [
|
462 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__body-row-cell-text' => 'color: {{VALUE}}',
|
463 |
+
],
|
464 |
+
]
|
465 |
+
);
|
466 |
+
|
467 |
+
$repeater->add_control(
|
468 |
+
'row_custom_icon_color',
|
469 |
+
[
|
470 |
+
'label' => __( 'Icon Color', 'happy-elementor-addons' ),
|
471 |
+
'type' => Controls_Manager::COLOR,
|
472 |
+
'condition' => [
|
473 |
+
'row_column_type' => 'column',
|
474 |
+
'row_media' => 'icon'
|
475 |
+
],
|
476 |
+
'selectors' => [
|
477 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__body-row-cell-icon i' => 'color: {{VALUE}}',
|
478 |
+
],
|
479 |
+
]
|
480 |
+
);
|
481 |
+
|
482 |
+
$repeater->add_responsive_control(
|
483 |
+
'row_custom_icon_size',
|
484 |
+
[
|
485 |
+
'label' => __( 'Icon/Image Size', 'happy-elementor-addons' ),
|
486 |
+
'type' => Controls_Manager::SLIDER,
|
487 |
+
'condition' => [
|
488 |
+
'row_column_type' => 'column'
|
489 |
+
],
|
490 |
+
'selectors' => [
|
491 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__body-row-cell-icon i' => 'font-size: {{SIZE}}{{UNIT}};',
|
492 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__body-row-cell-icon img' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
|
493 |
+
'{{WRAPPER}} {{CURRENT_ITEM}} .ha-table__body-row-cell-icon svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
|
494 |
+
],
|
495 |
+
]
|
496 |
+
);
|
497 |
+
|
498 |
+
$repeater->end_controls_tab();
|
499 |
+
$repeater->end_controls_tabs();
|
500 |
+
|
501 |
+
$this->add_control(
|
502 |
+
'row_starts',
|
503 |
+
[
|
504 |
+
'label' => false,
|
505 |
+
'type' => Controls_Manager::HIDDEN,
|
506 |
+
'default' => __( 'Row Starts', 'happy-elementor-addons' ),
|
507 |
+
'condition' => [
|
508 |
+
'row_column_type' => 'row'
|
509 |
+
],
|
510 |
+
]
|
511 |
+
);
|
512 |
+
|
513 |
+
$this->add_control(
|
514 |
+
'rows_data',
|
515 |
+
[
|
516 |
+
'type' => Controls_Manager::REPEATER,
|
517 |
+
'fields' => $repeater->get_controls(),
|
518 |
+
'title_field' => '<# print( (row_column_type == "column" ) ? cell_name : ("Row Starts") ) #>',
|
519 |
+
'default' => [
|
520 |
+
[
|
521 |
+
'row_column_type' => 'row',
|
522 |
+
'row_starts' => __( 'Row Starts', 'happy-elementor-addons' ),
|
523 |
+
],
|
524 |
+
[
|
525 |
+
'row_column_type' => 'column',
|
526 |
+
'cell_name' => __( 'Stay Happy', 'happy-elementor-addons' )
|
527 |
+
],
|
528 |
+
[
|
529 |
+
'row_column_type' => 'column',
|
530 |
+
'cell_name' => __( 'Stay Safe', 'happy-elementor-addons' )
|
531 |
+
],
|
532 |
+
[
|
533 |
+
'row_column_type' => 'column',
|
534 |
+
'cell_name' => __( 'Spread Happiness', 'happy-elementor-addons' )
|
535 |
+
],
|
536 |
+
]
|
537 |
+
]
|
538 |
+
);
|
539 |
+
|
540 |
+
$this->add_responsive_control(
|
541 |
+
'row_align',
|
542 |
+
[
|
543 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
544 |
+
'type' => Controls_Manager::CHOOSE,
|
545 |
+
'separator' => 'before',
|
546 |
+
'options' => [
|
547 |
+
'left' => [
|
548 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
549 |
+
'icon' => 'fa fa-align-left',
|
550 |
+
],
|
551 |
+
'center' => [
|
552 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
553 |
+
'icon' => 'fa fa-align-center',
|
554 |
+
],
|
555 |
+
'right' => [
|
556 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
557 |
+
'icon' => 'fa fa-align-right',
|
558 |
+
]
|
559 |
+
],
|
560 |
+
'default' => 'left',
|
561 |
+
'toggle' => false,
|
562 |
+
'prefix_class' => 'ha-row-alignment-',
|
563 |
+
'selectors' => [
|
564 |
+
'(desktop){{WRAPPER}} .ha-table__body-row-cell' => 'text-align: {{VALUE}}',
|
565 |
+
'(tablet){{WRAPPER}} .ha-table__body-row-cell' => 'text-align: {{VALUE}}',
|
566 |
+
'(mobile){{WRAPPER}} .ha-table__body-row-cell' => 'text-align: {{VALUE}}'
|
567 |
+
]
|
568 |
+
]
|
569 |
+
);
|
570 |
+
|
571 |
+
$this->add_responsive_control(
|
572 |
+
'row_icon_position',
|
573 |
+
[
|
574 |
+
'label' => __( 'Icon Position', 'happy-elementor-addons' ),
|
575 |
+
'type' => Controls_Manager::CHOOSE,
|
576 |
+
'options' => [
|
577 |
+
'left' => [
|
578 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
579 |
+
'icon' => 'eicon-h-align-left',
|
580 |
+
],
|
581 |
+
'right' => [
|
582 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
583 |
+
'icon' => 'eicon-h-align-right',
|
584 |
+
],
|
585 |
+
'top' => [
|
586 |
+
'title' => __( 'Top', 'happy-elementor-addons' ),
|
587 |
+
'icon' => 'eicon-v-align-top',
|
588 |
+
],
|
589 |
+
'bottom' => [
|
590 |
+
'title' => __( 'Bottom', 'happy-elementor-addons' ),
|
591 |
+
'icon' => 'eicon-v-align-bottom',
|
592 |
+
],
|
593 |
+
],
|
594 |
+
'default' => 'right',
|
595 |
+
'toggle' => false,
|
596 |
+
'prefix_class' => 'ha-row-icon-'
|
597 |
+
]
|
598 |
+
);
|
599 |
+
|
600 |
+
$this->end_controls_section();
|
601 |
+
|
602 |
+
}
|
603 |
+
|
604 |
+
|
605 |
+
/**
|
606 |
+
* Register styles related controls
|
607 |
+
*/
|
608 |
+
protected function register_style_controls() {
|
609 |
+
|
610 |
+
$this->start_controls_section(
|
611 |
+
'_section_table_head',
|
612 |
+
[
|
613 |
+
'label' => __( 'Table Head', 'happy-elementor-addons' ),
|
614 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
615 |
+
]
|
616 |
+
);
|
617 |
+
|
618 |
+
$this->add_responsive_control(
|
619 |
+
'table_head_padding',
|
620 |
+
[
|
621 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
622 |
+
'type' => Controls_Manager::DIMENSIONS,
|
623 |
+
'size_units' => [ 'px', '%' ],
|
624 |
+
'selectors' => [
|
625 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
626 |
+
],
|
627 |
+
]
|
628 |
+
);
|
629 |
+
|
630 |
+
$this->add_responsive_control(
|
631 |
+
'head_border_radius',
|
632 |
+
[
|
633 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
634 |
+
'type' => Controls_Manager::SLIDER,
|
635 |
+
'selectors' => [
|
636 |
+
'(desktop){{WRAPPER}} .ha-table .ha-table__head-column-cell:first-child' => 'border-top-left-radius: {{SIZE}}{{UNIT}};',
|
637 |
+
'(desktop){{WRAPPER}} .ha-table .ha-table__head-column-cell:last-child' => 'border-top-right-radius: {{SIZE}}{{UNIT}};',
|
638 |
+
'(tablet){{WRAPPER}} .ha-table .ha-table__head-column-cell:first-child' => 'border-top-left-radius: {{SIZE}}{{UNIT}};',
|
639 |
+
'(tablet){{WRAPPER}} .ha-table .ha-table__head-column-cell:last-child' => 'border-top-right-radius: {{SIZE}}{{UNIT}};',
|
640 |
+
'(mobile){{WRAPPER}} .ha-table .ha-table__head-column-cell' => 'border-radius: {{SIZE}}{{UNIT}};',
|
641 |
+
],
|
642 |
+
]
|
643 |
+
);
|
644 |
+
|
645 |
+
$this->add_group_control(
|
646 |
+
Group_Control_Border::get_type(),
|
647 |
+
[
|
648 |
+
'name' => 'head_border',
|
649 |
+
'selector' => '{{WRAPPER}} .ha-table .ha-table__head-column-cell',
|
650 |
+
]
|
651 |
+
);
|
652 |
+
|
653 |
+
$this->add_group_control(
|
654 |
+
Group_Control_Background::get_type(),
|
655 |
+
[
|
656 |
+
'name' => 'head_background_color',
|
657 |
+
'types' => [ 'classic', 'gradient' ],
|
658 |
+
'exclude' => [ 'image' ],
|
659 |
+
'selector' => '{{WRAPPER}} .ha-table .ha-table__head-column-cell',
|
660 |
+
]
|
661 |
+
);
|
662 |
+
|
663 |
+
$this->add_control(
|
664 |
+
'_heading_title',
|
665 |
+
[
|
666 |
+
'type' => Controls_Manager::HEADING,
|
667 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
668 |
+
'separator' => 'before'
|
669 |
+
]
|
670 |
+
);
|
671 |
+
|
672 |
+
$this->add_group_control(
|
673 |
+
Group_Control_Typography::get_type(),
|
674 |
+
[
|
675 |
+
'name' => 'head_typography',
|
676 |
+
'selector' => '{{WRAPPER}} .ha-table .ha-table__head-column-cell-text',
|
677 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
678 |
+
]
|
679 |
+
);
|
680 |
+
|
681 |
+
$this->add_control(
|
682 |
+
'head_text_color',
|
683 |
+
[
|
684 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
685 |
+
'type' => Controls_Manager::COLOR,
|
686 |
+
'selectors' => [
|
687 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell-wrap' => 'color: {{VALUE}}',
|
688 |
+
],
|
689 |
+
]
|
690 |
+
);
|
691 |
+
|
692 |
+
$this->add_control(
|
693 |
+
'_heading_icon',
|
694 |
+
[
|
695 |
+
'type' => Controls_Manager::HEADING,
|
696 |
+
'label' => __( 'Icon/Image', 'happy-elementor-addons' ),
|
697 |
+
'separator' => 'before'
|
698 |
+
]
|
699 |
+
);
|
700 |
+
|
701 |
+
$this->add_responsive_control(
|
702 |
+
'icon_spacing',
|
703 |
+
[
|
704 |
+
'label' => __( 'Spacing', 'happy-elementor-addons' ),
|
705 |
+
'type' => Controls_Manager::DIMENSIONS,
|
706 |
+
'size_units' => [ 'px', '%' ],
|
707 |
+
'selectors' => [
|
708 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
709 |
+
],
|
710 |
+
]
|
711 |
+
);
|
712 |
+
|
713 |
+
$this->add_responsive_control(
|
714 |
+
'head_icon',
|
715 |
+
[
|
716 |
+
'label' => __( 'Icon Size', 'happy-elementor-addons' ),
|
717 |
+
'type' => Controls_Manager::SLIDER,
|
718 |
+
'selectors' => [
|
719 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
720 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell-icon svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
|
721 |
+
],
|
722 |
+
]
|
723 |
+
);
|
724 |
+
|
725 |
+
$this->add_control(
|
726 |
+
'column_image_border_radius',
|
727 |
+
[
|
728 |
+
'label' => __( 'Image Border Radius', 'happy-elementor-addons' ),
|
729 |
+
'type' => Controls_Manager::SLIDER,
|
730 |
+
'selectors' => [
|
731 |
+
'{{WRAPPER}} .ha-table .ha-table__head-column-cell-icon img' => 'border-radius: {{SIZE}}{{UNIT}};'
|
732 |
+
],
|
733 |
+
]
|
734 |
+
);
|
735 |
+
|
736 |
+
$this->add_control(
|
737 |
+
'head_icon_color',
|
738 |
+
[
|
739 |
+
'label' => __( 'Icon Color', 'happy-elementor-addons' ),
|
740 |
+
'type' => Controls_Manager::COLOR,
|
741 |
+
'selectors' => [
|
742 |
+
'{{WRAPPER}} .ha-table__head-column-cell-icon i' => 'color: {{VALUE}}',
|
743 |
+
],
|
744 |
+
]
|
745 |
+
);
|
746 |
+
|
747 |
+
$this->add_control(
|
748 |
+
'column_color_notice',
|
749 |
+
[
|
750 |
+
'type' => Controls_Manager::RAW_HTML,
|
751 |
+
'raw' => 'If you\'ve added <strong>Custom Style</strong> then Icon Color will be over written for that cell.',
|
752 |
+
]
|
753 |
+
);
|
754 |
+
|
755 |
+
$this->end_controls_section();
|
756 |
+
|
757 |
+
$this->start_controls_section(
|
758 |
+
'_section_table_row_style',
|
759 |
+
[
|
760 |
+
'label' => __( 'Table Row', 'happy-elementor-addons' ),
|
761 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
762 |
+
]
|
763 |
+
);
|
764 |
+
|
765 |
+
$this->add_responsive_control(
|
766 |
+
'table_row_padding',
|
767 |
+
[
|
768 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
769 |
+
'type' => Controls_Manager::DIMENSIONS,
|
770 |
+
'size_units' => [ 'px', '%' ],
|
771 |
+
'selectors' => [
|
772 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row-cell' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
773 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row-cell' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
774 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
775 |
+
],
|
776 |
+
]
|
777 |
+
);
|
778 |
+
|
779 |
+
$this->add_group_control(
|
780 |
+
Group_Control_Border::get_type(),
|
781 |
+
[
|
782 |
+
'name' => 'row_border',
|
783 |
+
'selector' => '{{WRAPPER}} .ha-table__body .ha-table__body-row-cell',
|
784 |
+
]
|
785 |
+
);
|
786 |
+
|
787 |
+
$this->start_controls_tabs( '_tabs_rows' );
|
788 |
+
$this->start_controls_tab(
|
789 |
+
'_tab_head_row',
|
790 |
+
[
|
791 |
+
'label' => __( 'Normal', 'happy-elementor-addons' )
|
792 |
+
]
|
793 |
+
);
|
794 |
+
|
795 |
+
$this->add_responsive_control(
|
796 |
+
'row_background_color_even',
|
797 |
+
[
|
798 |
+
'label' => __( 'Background Color (Even)', 'happy-elementor-addons' ),
|
799 |
+
'type' => Controls_Manager::COLOR,
|
800 |
+
'selectors' => [
|
801 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even)' => 'background-color: {{VALUE}}',
|
802 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even)' => 'background-color: {{VALUE}}',
|
803 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(even) .ha-table__body-row-cell-wrap' => 'background-color: {{VALUE}}',
|
804 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even)' => 'background-color: transparent',
|
805 |
+
],
|
806 |
+
]
|
807 |
+
);
|
808 |
+
|
809 |
+
$this->add_responsive_control(
|
810 |
+
'row_background_color_odd',
|
811 |
+
[
|
812 |
+
'label' => __( 'Background Color (Odd)', 'happy-elementor-addons' ),
|
813 |
+
'type' => Controls_Manager::COLOR,
|
814 |
+
'selectors' => [
|
815 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd)' => 'background-color: {{VALUE}}',
|
816 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd)' => 'background-color: {{VALUE}}',
|
817 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(odd) .ha-table__body-row-cell-wrap' => 'background-color: {{VALUE}}',
|
818 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd)' => 'background-color: transparent',
|
819 |
+
],
|
820 |
+
]
|
821 |
+
);
|
822 |
+
|
823 |
+
$this->add_responsive_control(
|
824 |
+
'row_color_even',
|
825 |
+
[
|
826 |
+
'label' => __( 'Color (Even)', 'happy-elementor-addons' ),
|
827 |
+
'type' => Controls_Manager::COLOR,
|
828 |
+
'selectors' => [
|
829 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
830 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
831 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(even) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}'
|
832 |
+
],
|
833 |
+
]
|
834 |
+
);
|
835 |
+
|
836 |
+
$this->add_responsive_control(
|
837 |
+
'row_color_odd',
|
838 |
+
[
|
839 |
+
'label' => __( 'Color (Odd)', 'happy-elementor-addons' ),
|
840 |
+
'type' => Controls_Manager::COLOR,
|
841 |
+
'selectors' => [
|
842 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
843 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
844 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(odd) .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}'
|
845 |
+
],
|
846 |
+
]
|
847 |
+
);
|
848 |
+
|
849 |
+
$this->end_controls_tab();
|
850 |
+
|
851 |
+
$this->start_controls_tab(
|
852 |
+
'_tab_row',
|
853 |
+
[
|
854 |
+
'label' => __( 'Hover', 'happy-elementor-addons' )
|
855 |
+
]
|
856 |
+
);
|
857 |
+
|
858 |
+
$this->add_responsive_control(
|
859 |
+
'row_hover_background_color_even',
|
860 |
+
[
|
861 |
+
'label' => __( 'Background Color (Even)', 'happy-elementor-addons' ),
|
862 |
+
'type' => Controls_Manager::COLOR,
|
863 |
+
'selectors' => [
|
864 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even):hover' => 'background-color: {{VALUE}}',
|
865 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even):hover' => 'background-color: {{VALUE}}',
|
866 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(even) .ha-table__body-row-cell-wrap:hover' => 'background-color: {{VALUE}}',
|
867 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even):hover' => 'background-color: transparent',
|
868 |
+
],
|
869 |
+
]
|
870 |
+
);
|
871 |
+
|
872 |
+
$this->add_responsive_control(
|
873 |
+
'row_hover_background_color_odd',
|
874 |
+
[
|
875 |
+
'label' => __( 'Background Color (Odd)', 'happy-elementor-addons' ),
|
876 |
+
'type' => Controls_Manager::COLOR,
|
877 |
+
'selectors' => [
|
878 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd):hover' => 'background-color: {{VALUE}}',
|
879 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd):hover' => 'background-color: {{VALUE}}',
|
880 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(odd) .ha-table__body-row-cell-wrap:hover' => 'background-color: {{VALUE}}',
|
881 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd):hover' => 'background-color: transparent',
|
882 |
+
],
|
883 |
+
]
|
884 |
+
);
|
885 |
+
|
886 |
+
$this->add_responsive_control(
|
887 |
+
'row_hover_color_even',
|
888 |
+
[
|
889 |
+
'label' => __( 'Color (Even)', 'happy-elementor-addons' ),
|
890 |
+
'type' => Controls_Manager::COLOR,
|
891 |
+
'selectors' => [
|
892 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
893 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(even):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
894 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(even):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}'
|
895 |
+
],
|
896 |
+
]
|
897 |
+
);
|
898 |
+
|
899 |
+
$this->add_responsive_control(
|
900 |
+
'row_hover_color_odd',
|
901 |
+
[
|
902 |
+
'label' => __( 'Color (Odd)', 'happy-elementor-addons' ),
|
903 |
+
'type' => Controls_Manager::COLOR,
|
904 |
+
'selectors' => [
|
905 |
+
'(desktop){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
906 |
+
'(tablet){{WRAPPER}} .ha-table__body .ha-table__body-row:nth-child(odd):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}',
|
907 |
+
'(mobile){{WRAPPER}} .ha-table__body .ha-table__body-row-cell:nth-child(odd):hover .ha-table__body-row-cell-wrap' => 'color: {{VALUE}}'
|
908 |
+
],
|
909 |
+
]
|
910 |
+
);
|
911 |
+
|
912 |
+
$this->end_controls_tab();
|
913 |
+
$this->end_controls_tabs();
|
914 |
+
|
915 |
+
$this->add_control(
|
916 |
+
'_row_title',
|
917 |
+
[
|
918 |
+
'type' => Controls_Manager::HEADING,
|
919 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
920 |
+
'separator' => 'before'
|
921 |
+
]
|
922 |
+
);
|
923 |
+
|
924 |
+
$this->add_group_control(
|
925 |
+
Group_Control_Typography::get_type(),
|
926 |
+
[
|
927 |
+
'name' => 'row_text_typography',
|
928 |
+
'selector' => '{{WRAPPER}} .ha-table__body .ha-table__body-row-cell-text',
|
929 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
930 |
+
]
|
931 |
+
);
|
932 |
+
|
933 |
+
$this->add_control(
|
934 |
+
'_row_icon',
|
935 |
+
[
|
936 |
+
'type' => Controls_Manager::HEADING,
|
937 |
+
'label' => __( 'Icon/Image', 'happy-elementor-addons' ),
|
938 |
+
'separator' => 'before'
|
939 |
+
]
|
940 |
+
);
|
941 |
+
|
942 |
+
$this->add_responsive_control(
|
943 |
+
'row_icon_spacing',
|
944 |
+
[
|
945 |
+
'label' => __( 'Spacing', 'happy-elementor-addons' ),
|
946 |
+
'type' => Controls_Manager::DIMENSIONS,
|
947 |
+
'size_units' => [ 'px', '%' ],
|
948 |
+
'selectors' => [
|
949 |
+
'{{WRAPPER}} .ha-table__body .ha-table__body-row-cell-icon' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
950 |
+
],
|
951 |
+
]
|
952 |
+
);
|
953 |
+
|
954 |
+
$this->add_responsive_control(
|
955 |
+
'row_icon_size',
|
956 |
+
[
|
957 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
958 |
+
'type' => Controls_Manager::SLIDER,
|
959 |
+
'selectors' => [
|
960 |
+
'{{WRAPPER}} .ha-table__body-row-cell-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
961 |
+
'{{WRAPPER}} .ha-table__body-row-cell-icon img' => 'width: {{SIZE}}{{UNIT}};',
|
962 |
+
'{{WRAPPER}} .ha-table__body-row-cell-icon svg' => 'width: {{SIZE}}{{UNIT}};'
|
963 |
+
],
|
964 |
+
]
|
965 |
+
);
|
966 |
+
|
967 |
+
$this->add_control(
|
968 |
+
'row_image_border_radius',
|
969 |
+
[
|
970 |
+
'label' => __( 'Image Border Radius', 'happy-elementor-addons' ),
|
971 |
+
'type' => Controls_Manager::SLIDER,
|
972 |
+
'selectors' => [
|
973 |
+
'{{WRAPPER}} .ha-table__body .ha-table__body-row-cell-icon img' => 'border-radius: {{SIZE}}{{UNIT}};'
|
974 |
+
],
|
975 |
+
]
|
976 |
+
);
|
977 |
+
|
978 |
+
$this->add_control(
|
979 |
+
'row_icon_color',
|
980 |
+
[
|
981 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
982 |
+
'type' => Controls_Manager::COLOR,
|
983 |
+
'selectors' => [
|
984 |
+
'{{WRAPPER}} .ha-table__body-row-cell-icon i' => 'color: {{VALUE}}',
|
985 |
+
],
|
986 |
+
]
|
987 |
+
);
|
988 |
+
|
989 |
+
$this->add_control(
|
990 |
+
'row_style_notice',
|
991 |
+
[
|
992 |
+
'type' => Controls_Manager::RAW_HTML,
|
993 |
+
'separator' => 'before',
|
994 |
+
'raw' => 'If you\'ve added <strong>Custom Style</strong> then Background Color, Color, Icon Size, Icon Color will be over written for that cell.',
|
995 |
+
]
|
996 |
+
);
|
997 |
+
|
998 |
+
$this->end_controls_section();
|
999 |
+
}
|
1000 |
+
|
1001 |
+
protected function render() {
|
1002 |
+
$this->data_table_render();
|
1003 |
+
}
|
1004 |
+
|
1005 |
+
protected function data_table_render() {
|
1006 |
+
$settings = $this->get_settings_for_display();
|
1007 |
+
|
1008 |
+
$table_row = [];
|
1009 |
+
$table_cell = [];
|
1010 |
+
foreach ( $settings['rows_data'] as $row ) {
|
1011 |
+
$row_id = uniqid();
|
1012 |
+
|
1013 |
+
if ( $row['row_column_type'] == 'row' ) {
|
1014 |
+
$table_row[] = [
|
1015 |
+
'id' => $row_id,
|
1016 |
+
'type' => $row['row_column_type'],
|
1017 |
+
];
|
1018 |
+
}
|
1019 |
+
|
1020 |
+
if ( $row['row_column_type'] == 'column' ) {
|
1021 |
+
$table_row_keys = array_keys( $table_row );
|
1022 |
+
$cell_key = end($table_row_keys );
|
1023 |
+
|
1024 |
+
$table_cell[] = [
|
1025 |
+
'repeater_id' => $row['_id'],
|
1026 |
+
'row_id' => $table_row[$cell_key]['id'],
|
1027 |
+
'title' => $row['cell_name'],
|
1028 |
+
'row_span' => $row['row_span'],
|
1029 |
+
'row_column_span' => $row['row_column_span'],
|
1030 |
+
'row_icon' => ! empty( $row['row_icon'] ) ? $row['row_icon'] : '',
|
1031 |
+
'row_icons' => ! empty( $row['row_icons']['value'] ) ? $row['row_icons'] : '',
|
1032 |
+
'row_icon_show' => ! empty( $row['row_icon_show'] ) ? $row['row_icon_show'] : '',
|
1033 |
+
'row_image' => array_key_exists( 'row_image', $row ) ? $row['row_image'] : '',
|
1034 |
+
'row_thumbnail_size' => !empty( $row['row_thumbnail_size'] ) ? $row['row_thumbnail_size'] : '',
|
1035 |
+
];
|
1036 |
+
}
|
1037 |
+
|
1038 |
+
}
|
1039 |
+
?>
|
1040 |
+
|
1041 |
+
<table class="ha-table">
|
1042 |
+
|
1043 |
+
<thead class="ha-table__head">
|
1044 |
+
<tr class="ha-table__head-column">
|
1045 |
+
<?php foreach ( $settings['columns_data'] as $index => $column_cell ) :
|
1046 |
+
$column_repeater_key = $this->get_repeater_setting_key( 'column_span', 'columns_data', $index );
|
1047 |
+
$this->add_render_attribute( $column_repeater_key, 'class', 'ha-table__head-column-cell' );
|
1048 |
+
$this->add_render_attribute( $column_repeater_key, 'class', 'elementor-repeater-item-' . $column_cell['_id'] );
|
1049 |
+
if ( $column_cell['column_span'] ) {
|
1050 |
+
$this->add_render_attribute( $column_repeater_key, 'colspan', $column_cell['column_span'] );
|
1051 |
+
}
|
1052 |
+
?>
|
1053 |
+
<th <?php echo $this->get_render_attribute_string( $column_repeater_key ); ?>>
|
1054 |
+
<div class="ha-table__head-column-cell-wrap">
|
1055 |
+
<div class="ha-table__head-column-cell-text"><?php echo esc_html( $column_cell['column_name'] ); ?></div>
|
1056 |
+
<?php if ( $column_cell['column_media'] == 'icon' && ! empty( $column_cell['column_icons'] ) ) : ?>
|
1057 |
+
<div class="ha-table__head-column-cell-icon">
|
1058 |
+
<?php Icons_Manager::render_icon( $column_cell['column_icons'] ); ?>
|
1059 |
+
</div>
|
1060 |
+
<?php endif; ?>
|
1061 |
+
|
1062 |
+
<?php
|
1063 |
+
if ( $column_cell['column_image']['url'] || $column_cell['column_image']['id'] ) :
|
1064 |
+
$this->add_render_attribute( 'column_image', 'src', $column_cell['column_image']['url'] );
|
1065 |
+
$this->add_render_attribute( 'column_image', 'alt', Control_Media::get_image_alt( $column_cell['column_image'] ) );
|
1066 |
+
$this->add_render_attribute( 'column_image', 'title', Control_Media::get_image_title( $column_cell['column_image'] ) );
|
1067 |
+
?>
|
1068 |
+
<div class="ha-table__head-column-cell-icon">
|
1069 |
+
<?php echo Group_Control_Image_Size::get_attachment_image_html( $column_cell, 'column_thumbnail', 'column_image' ); ?>
|
1070 |
+
</div>
|
1071 |
+
<?php endif; ?>
|
1072 |
+
</div>
|
1073 |
+
</th>
|
1074 |
+
<?php endforeach; ?>
|
1075 |
+
</tr>
|
1076 |
+
</thead>
|
1077 |
+
|
1078 |
+
<tbody class="ha-table__body">
|
1079 |
+
<?php for ( $i = 0; $i < count( $table_row ); $i++ ) : ?>
|
1080 |
+
<tr class="ha-table__body-row">
|
1081 |
+
<?php
|
1082 |
+
for ( $j = 0; $j < count( $table_cell ); $j++ ) :
|
1083 |
+
if( $table_row[$i]['id'] == $table_cell[$j]['row_id'] ) :
|
1084 |
+
$row_span_repeater_key = $this->get_repeater_setting_key( 'row_span', 'rows_data', $table_cell[$j]['row_id'].$i.$j );
|
1085 |
+
$this->add_render_attribute( $row_span_repeater_key, 'class', 'ha-table__body-row-cell' );
|
1086 |
+
$this->add_render_attribute( $row_span_repeater_key, 'class', 'elementor-repeater-item-' . $table_cell[$j]['repeater_id'] );
|
1087 |
+
if ( ! empty( $table_cell[$j]['row_column_span'] ) ) {
|
1088 |
+
$this->add_render_attribute( $row_span_repeater_key, 'colspan', $table_cell[$j]['row_column_span'] );
|
1089 |
+
}
|
1090 |
+
if ( ! empty( $table_cell[$j]['row_span'] ) ) {
|
1091 |
+
$this->add_render_attribute( $row_span_repeater_key, 'rowspan', $table_cell[$j]['row_span'] );
|
1092 |
+
}
|
1093 |
+
?>
|
1094 |
+
<td <?php echo $this->get_render_attribute_string( $row_span_repeater_key ); ?>>
|
1095 |
+
<div class="ha-table__body-row-cell-wrap">
|
1096 |
+
<div class="ha-table__body-row-cell-text"><?php echo esc_html( $table_cell[$j]['title'] ); ?></div>
|
1097 |
+
|
1098 |
+
<?php if ( ! empty( $table_cell[$j]['row_icons'] ) ) : ?>
|
1099 |
+
<div class="ha-table__body-row-cell-icon">
|
1100 |
+
<?php Icons_Manager::render_icon( $table_cell[$j]['row_icons'] ); ?>
|
1101 |
+
</div>
|
1102 |
+
<?php endif; ?>
|
1103 |
+
|
1104 |
+
<?php
|
1105 |
+
if ( $table_cell[$j]['row_image']['url'] || $table_cell[$j]['row_image']['id'] ) :
|
1106 |
+
$image = wp_get_attachment_image_url( $table_cell[$j]['row_image']['id'], $table_cell[$j]['row_thumbnail_size'] );
|
1107 |
+
if ( ! $image ) {
|
1108 |
+
$image = $table_cell[$j]['row_image']['url'];
|
1109 |
+
}
|
1110 |
+
?>
|
1111 |
+
<div class="ha-table__body-row-cell-icon">
|
1112 |
+
<img src="<?php echo esc_url( $image ); ?>" alt="<?php echo esc_attr( $table_cell[$j]['title'] ); ?>">
|
1113 |
+
</div>
|
1114 |
+
<?php endif; ?>
|
1115 |
+
</div>
|
1116 |
+
</td>
|
1117 |
+
<?php
|
1118 |
+
endif;
|
1119 |
+
endfor;
|
1120 |
+
?>
|
1121 |
+
</tr>
|
1122 |
+
<?php endfor; ?>
|
1123 |
+
</tbody>
|
1124 |
+
|
1125 |
+
</table>
|
1126 |
+
|
1127 |
+
<?php
|
1128 |
+
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
}
|
@@ -87,7 +87,10 @@ class Dual_Button extends Base {
|
|
87 |
'placeholder' => 'https://example.com',
|
88 |
'dynamic' => [
|
89 |
'active' => true,
|
90 |
-
|
|
|
|
|
|
|
91 |
]
|
92 |
);
|
93 |
|
@@ -273,7 +276,10 @@ class Dual_Button extends Base {
|
|
273 |
'placeholder' => 'https://example.com',
|
274 |
'dynamic' => [
|
275 |
'active' => true,
|
276 |
-
|
|
|
|
|
|
|
277 |
]
|
278 |
);
|
279 |
|
87 |
'placeholder' => 'https://example.com',
|
88 |
'dynamic' => [
|
89 |
'active' => true,
|
90 |
+
],
|
91 |
+
'default' => [
|
92 |
+
'url' => '#',
|
93 |
+
],
|
94 |
]
|
95 |
);
|
96 |
|
276 |
'placeholder' => 'https://example.com',
|
277 |
'dynamic' => [
|
278 |
'active' => true,
|
279 |
+
],
|
280 |
+
'default' => [
|
281 |
+
'url' => '#',
|
282 |
+
],
|
283 |
]
|
284 |
);
|
285 |
|
@@ -235,38 +235,14 @@ class Fun_Factor extends Base {
|
|
235 |
);
|
236 |
|
237 |
$this->add_control(
|
238 |
-
'
|
239 |
[
|
240 |
-
'label'
|
241 |
-
'type'
|
242 |
-
'
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
],
|
247 |
-
'h2' => [
|
248 |
-
'title' => __('H2', 'happy-elementor-addons'),
|
249 |
-
'icon' => 'eicon-editor-h2'
|
250 |
-
],
|
251 |
-
'h3' => [
|
252 |
-
'title' => __('H3', 'happy-elementor-addons'),
|
253 |
-
'icon' => 'eicon-editor-h3'
|
254 |
-
],
|
255 |
-
'h4' => [
|
256 |
-
'title' => __('H4', 'happy-elementor-addons'),
|
257 |
-
'icon' => 'eicon-editor-h4'
|
258 |
-
],
|
259 |
-
'h5' => [
|
260 |
-
'title' => __('H5', 'happy-elementor-addons'),
|
261 |
-
'icon' => 'eicon-editor-h5'
|
262 |
-
],
|
263 |
-
'h6' => [
|
264 |
-
'title' => __('H6', 'happy-elementor-addons'),
|
265 |
-
'icon' => 'eicon-editor-h6'
|
266 |
-
]
|
267 |
-
],
|
268 |
-
'default' => 'h2',
|
269 |
-
'toggle' => false,
|
270 |
]
|
271 |
);
|
272 |
|
@@ -288,6 +264,10 @@ class Fun_Factor extends Base {
|
|
288 |
'title' => __('Right', 'happy-elementor-addons'),
|
289 |
'icon' => 'eicon-text-align-right',
|
290 |
],
|
|
|
|
|
|
|
|
|
291 |
],
|
292 |
'toggle' => true,
|
293 |
'selectors' => [
|
@@ -299,14 +279,38 @@ class Fun_Factor extends Base {
|
|
299 |
);
|
300 |
|
301 |
$this->add_control(
|
302 |
-
'
|
303 |
[
|
304 |
-
'label'
|
305 |
-
'type'
|
306 |
-
'
|
307 |
-
|
308 |
-
|
309 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
310 |
]
|
311 |
);
|
312 |
|
235 |
);
|
236 |
|
237 |
$this->add_control(
|
238 |
+
'divider_show_hide',
|
239 |
[
|
240 |
+
'label' => __('Show Divider', 'happy-elementor-addons'),
|
241 |
+
'type' => Controls_Manager::SWITCHER,
|
242 |
+
'label_on' => __('Show', 'happy-elementor-addons'),
|
243 |
+
'label_off' => __('Hide', 'happy-elementor-addons'),
|
244 |
+
'return_value' => 'yes',
|
245 |
+
'default' => 'yes',
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
]
|
247 |
);
|
248 |
|
264 |
'title' => __('Right', 'happy-elementor-addons'),
|
265 |
'icon' => 'eicon-text-align-right',
|
266 |
],
|
267 |
+
'justify' => [
|
268 |
+
'title' => __('Justify', 'happy-elementor-addons'),
|
269 |
+
'icon' => 'eicon-text-align-justify',
|
270 |
+
],
|
271 |
],
|
272 |
'toggle' => true,
|
273 |
'selectors' => [
|
279 |
);
|
280 |
|
281 |
$this->add_control(
|
282 |
+
'title_tag',
|
283 |
[
|
284 |
+
'label' => __('Title HTML Tag', 'happy-elementor-addons'),
|
285 |
+
'type' => Controls_Manager::CHOOSE,
|
286 |
+
'options' => [
|
287 |
+
'h1' => [
|
288 |
+
'title' => __('H1', 'happy-elementor-addons'),
|
289 |
+
'icon' => 'eicon-editor-h1'
|
290 |
+
],
|
291 |
+
'h2' => [
|
292 |
+
'title' => __('H2', 'happy-elementor-addons'),
|
293 |
+
'icon' => 'eicon-editor-h2'
|
294 |
+
],
|
295 |
+
'h3' => [
|
296 |
+
'title' => __('H3', 'happy-elementor-addons'),
|
297 |
+
'icon' => 'eicon-editor-h3'
|
298 |
+
],
|
299 |
+
'h4' => [
|
300 |
+
'title' => __('H4', 'happy-elementor-addons'),
|
301 |
+
'icon' => 'eicon-editor-h4'
|
302 |
+
],
|
303 |
+
'h5' => [
|
304 |
+
'title' => __('H5', 'happy-elementor-addons'),
|
305 |
+
'icon' => 'eicon-editor-h5'
|
306 |
+
],
|
307 |
+
'h6' => [
|
308 |
+
'title' => __('H6', 'happy-elementor-addons'),
|
309 |
+
'icon' => 'eicon-editor-h6'
|
310 |
+
]
|
311 |
+
],
|
312 |
+
'default' => 'h2',
|
313 |
+
'toggle' => false,
|
314 |
]
|
315 |
);
|
316 |
|
@@ -16,37 +16,37 @@ defined( 'ABSPATH' ) || die();
|
|
16 |
|
17 |
class Gradient_Heading extends Base {
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
public function get_custom_help_url() {
|
32 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/gradient-heading/';
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
|
51 |
protected function register_content_controls() {
|
52 |
$this->start_controls_section(
|
@@ -57,195 +57,199 @@ class Gradient_Heading extends Base {
|
|
57 |
]
|
58 |
);
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
|
|
|
|
|
|
|
|
251 |
}
|
16 |
|
17 |
class Gradient_Heading extends Base {
|
18 |
|
19 |
+
/**
|
20 |
+
* Get widget title.
|
21 |
+
*
|
22 |
+
* @since 1.0.0
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string Widget title.
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'Gradient Heading', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
|
31 |
public function get_custom_help_url() {
|
32 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/gradient-heading/';
|
33 |
}
|
34 |
|
35 |
/**
|
36 |
+
* Get widget icon.
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @access public
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
*/
|
43 |
+
public function get_icon() {
|
44 |
+
return 'hm hm-drag';
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_keywords() {
|
48 |
+
return [ 'gradient', 'advanced', 'heading', 'title', 'colorful' ];
|
49 |
+
}
|
50 |
|
51 |
protected function register_content_controls() {
|
52 |
$this->start_controls_section(
|
57 |
]
|
58 |
);
|
59 |
|
60 |
+
$this->add_control(
|
61 |
+
'title',
|
62 |
+
[
|
63 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
64 |
+
'type' => Controls_Manager::TEXTAREA,
|
65 |
+
'default' => 'Happy Gradient Heading',
|
66 |
+
'placeholder' => __( 'Type Gradient Heading Text', 'happy-elementor-addons' ),
|
67 |
+
'dynamic' => [
|
68 |
+
'active' => true,
|
69 |
+
]
|
70 |
+
]
|
71 |
+
);
|
72 |
+
|
73 |
+
$this->add_control(
|
74 |
+
'link',
|
75 |
+
[
|
76 |
+
'label' => __( 'Link', 'happy-elementor-addons' ),
|
77 |
+
'type' => Controls_Manager::URL,
|
78 |
+
'separator' => 'before',
|
79 |
+
'placeholder' => 'https://example.com',
|
80 |
+
'dynamic' => [
|
81 |
+
'active' => true,
|
82 |
+
]
|
83 |
+
]
|
84 |
+
);
|
85 |
+
|
86 |
+
$this->add_control(
|
87 |
+
'title_tag',
|
88 |
+
[
|
89 |
+
'label' => __( 'Title HTML Tag', 'happy-elementor-addons' ),
|
90 |
+
'type' => Controls_Manager::CHOOSE,
|
91 |
+
'options' => [
|
92 |
+
'h1' => [
|
93 |
+
'title' => __( 'H1', 'happy-elementor-addons' ),
|
94 |
+
'icon' => 'eicon-editor-h1'
|
95 |
+
],
|
96 |
+
'h2' => [
|
97 |
+
'title' => __( 'H2', 'happy-elementor-addons' ),
|
98 |
+
'icon' => 'eicon-editor-h2'
|
99 |
+
],
|
100 |
+
'h3' => [
|
101 |
+
'title' => __( 'H3', 'happy-elementor-addons' ),
|
102 |
+
'icon' => 'eicon-editor-h3'
|
103 |
+
],
|
104 |
+
'h4' => [
|
105 |
+
'title' => __( 'H4', 'happy-elementor-addons' ),
|
106 |
+
'icon' => 'eicon-editor-h4'
|
107 |
+
],
|
108 |
+
'h5' => [
|
109 |
+
'title' => __( 'H5', 'happy-elementor-addons' ),
|
110 |
+
'icon' => 'eicon-editor-h5'
|
111 |
+
],
|
112 |
+
'h6' => [
|
113 |
+
'title' => __( 'H6', 'happy-elementor-addons' ),
|
114 |
+
'icon' => 'eicon-editor-h6'
|
115 |
+
]
|
116 |
+
],
|
117 |
+
'default' => 'h2',
|
118 |
+
'toggle' => false,
|
119 |
+
]
|
120 |
+
);
|
121 |
+
|
122 |
+
$this->add_responsive_control(
|
123 |
+
'align',
|
124 |
+
[
|
125 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
126 |
+
'type' => Controls_Manager::CHOOSE,
|
127 |
+
'options' => [
|
128 |
+
'left' => [
|
129 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
130 |
+
'icon' => 'eicon-text-align-left',
|
131 |
+
],
|
132 |
+
'center' => [
|
133 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
134 |
+
'icon' => 'eicon-text-align-center',
|
135 |
+
],
|
136 |
+
'right' => [
|
137 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
138 |
+
'icon' => 'eicon-text-align-right',
|
139 |
+
],
|
140 |
+
'justify' => [
|
141 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
142 |
+
'icon' => 'eicon-text-align-justify',
|
143 |
+
],
|
144 |
+
],
|
145 |
+
'toggle' => true,
|
146 |
+
'selectors' => [
|
147 |
+
'{{WRAPPER}}' => 'text-align: {{VALUE}};'
|
148 |
+
]
|
149 |
+
]
|
150 |
+
);
|
151 |
+
|
152 |
+
$this->end_controls_section();
|
153 |
+
}
|
154 |
+
|
155 |
+
protected function register_style_controls() {
|
156 |
+
$this->start_controls_section(
|
157 |
+
'_section_style_title',
|
158 |
+
[
|
159 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
160 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
161 |
+
]
|
162 |
+
);
|
163 |
+
|
164 |
+
$this->add_group_control(
|
165 |
+
Group_Control_Foreground::get_type(),
|
166 |
+
[
|
167 |
+
'name' => 'title',
|
168 |
+
'selector' => '{{WRAPPER}} .ha-gradient-heading',
|
169 |
+
]
|
170 |
+
);
|
171 |
+
|
172 |
+
$this->add_group_control(
|
173 |
+
Group_Control_Typography::get_type(),
|
174 |
+
[
|
175 |
+
'name' => 'title',
|
176 |
+
'selector' => '{{WRAPPER}} .ha-gradient-heading',
|
177 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_1,
|
178 |
+
]
|
179 |
+
);
|
180 |
+
|
181 |
+
$this->add_group_control(
|
182 |
+
Group_Control_Text_Shadow::get_type(),
|
183 |
+
[
|
184 |
+
'name' => 'title',
|
185 |
+
'label' => __( 'Text Shadow', 'happy-elementor-addons' ),
|
186 |
+
'selector' => '{{WRAPPER}} .ha-gradient-heading',
|
187 |
+
]
|
188 |
+
);
|
189 |
+
|
190 |
+
$this->add_control(
|
191 |
+
'blend_mode',
|
192 |
+
[
|
193 |
+
'label' => __( 'Blend Mode', 'happy-elementor-addons' ),
|
194 |
+
'type' => Controls_Manager::SELECT,
|
195 |
+
'options' => [
|
196 |
+
'' => __( 'Normal', 'happy-elementor-addons' ),
|
197 |
+
'multiply' => 'Multiply',
|
198 |
+
'screen' => 'Screen',
|
199 |
+
'overlay' => 'Overlay',
|
200 |
+
'darken' => 'Darken',
|
201 |
+
'lighten' => 'Lighten',
|
202 |
+
'color-dodge' => 'Color Dodge',
|
203 |
+
'saturation' => 'Saturation',
|
204 |
+
'color' => 'Color',
|
205 |
+
'difference' => 'Difference',
|
206 |
+
'exclusion' => 'Exclusion',
|
207 |
+
'hue' => 'Hue',
|
208 |
+
'luminosity' => 'Luminosity',
|
209 |
+
],
|
210 |
+
'selectors' => [
|
211 |
+
'{{WRAPPER}} .ha-gradient-heading' => 'mix-blend-mode: {{VALUE}};',
|
212 |
+
],
|
213 |
+
'separator' => 'none',
|
214 |
+
]
|
215 |
+
);
|
216 |
+
|
217 |
+
$this->end_controls_section();
|
218 |
+
}
|
219 |
+
|
220 |
+
protected function render() {
|
221 |
+
$settings = $this->get_settings_for_display();
|
222 |
+
|
223 |
+
$this->add_inline_editing_attributes( 'title', 'basic' );
|
224 |
+
$this->add_render_attribute( 'title', 'class', 'ha-gradient-heading' );
|
225 |
+
|
226 |
+
$title = ha_kses_basic( $settings['title' ] );
|
227 |
+
|
228 |
+
if ( ! empty( $settings['link']['url'] ) ) {
|
229 |
+
$this->add_link_attributes( 'link', $settings['link'] );
|
230 |
+
|
231 |
+
$title = sprintf( '<a %1$s>%2$s</a>',
|
232 |
+
$this->get_render_attribute_string( 'link' ),
|
233 |
+
$title
|
234 |
+
);
|
235 |
+
}
|
236 |
+
|
237 |
+
printf( '<%1$s %2$s>%3$s</%1$s>',
|
238 |
+
tag_escape( $settings['title_tag'] ),
|
239 |
+
$this->get_render_attribute_string( 'title' ),
|
240 |
+
$title
|
241 |
+
);
|
242 |
+
}
|
243 |
+
|
244 |
+
public function _content_template() {
|
245 |
+
?>
|
246 |
+
<#
|
247 |
+
view.addInlineEditingAttributes( 'title', 'basic' );
|
248 |
+
view.addRenderAttribute( 'title', 'class', 'ha-gradient-heading' );
|
249 |
+
|
250 |
+
var title = _.isEmpty(settings.link.url) ? settings.title : '<a href="'+settings.link.url+'">'+settings.title+'</a>';
|
251 |
+
#>
|
252 |
+
<{{ settings.title_tag }} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ title }}}</{{ settings.title_tag }}>
|
253 |
+
<?php
|
254 |
+
}
|
255 |
}
|
@@ -18,37 +18,37 @@ defined( 'ABSPATH' ) || die();
|
|
18 |
|
19 |
class Icon_Box extends Base {
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
|
33 |
public function get_custom_help_url() {
|
34 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/icon-box/';
|
35 |
}
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
protected function register_content_controls() {
|
54 |
$this->start_controls_section(
|
@@ -59,735 +59,733 @@ class Icon_Box extends Base {
|
|
59 |
]
|
60 |
);
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
$tag = 'a';
|
694 |
-
$this->add_render_attribute( 'icon_box', 'class', 'ha-icon-box-link' );
|
695 |
$this->add_link_attributes( 'icon_box', $link );
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
}
|
18 |
|
19 |
class Icon_Box extends Base {
|
20 |
|
21 |
+
/**
|
22 |
+
* Get widget title.
|
23 |
+
*
|
24 |
+
* @since 1.0.0
|
25 |
+
* @access public
|
26 |
+
*
|
27 |
+
* @return string Widget title.
|
28 |
+
*/
|
29 |
+
public function get_title() {
|
30 |
+
return __( 'Icon Box', 'happy-elementor-addons' );
|
31 |
+
}
|
32 |
|
33 |
public function get_custom_help_url() {
|
34 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/icon-box/';
|
35 |
}
|
36 |
|
37 |
+
/**
|
38 |
+
* Get widget icon.
|
39 |
+
*
|
40 |
+
* @since 1.0.0
|
41 |
+
* @access public
|
42 |
+
*
|
43 |
+
* @return string Widget icon.
|
44 |
+
*/
|
45 |
+
public function get_icon() {
|
46 |
+
return 'hm hm-icon-box';
|
47 |
+
}
|
48 |
+
|
49 |
+
public function get_keywords() {
|
50 |
+
return [ 'info', 'box', 'icon' ];
|
51 |
+
}
|
52 |
|
53 |
protected function register_content_controls() {
|
54 |
$this->start_controls_section(
|
59 |
]
|
60 |
);
|
61 |
|
62 |
+
if ( ha_is_elementor_version( '<', '2.6.0' ) ) {
|
63 |
+
$this->add_control(
|
64 |
+
'icon',
|
65 |
+
[
|
66 |
+
'show_label' => false,
|
67 |
+
'type' => Controls_Manager::ICON,
|
68 |
+
'label_block' => true,
|
69 |
+
'options' => ha_get_happy_icons(),
|
70 |
+
'default' => 'fa fa-smile-o',
|
71 |
+
]
|
72 |
+
);
|
73 |
+
} else {
|
74 |
+
$this->add_control(
|
75 |
+
'selected_icon',
|
76 |
+
[
|
77 |
+
'show_label' => false,
|
78 |
+
'type' => Controls_Manager::ICONS,
|
79 |
+
'fa4compatibility' => 'icon',
|
80 |
+
'label_block' => true,
|
81 |
+
'default' => [
|
82 |
+
'value' => 'fas fa-smile-wink',
|
83 |
+
'library' => 'fa-solid',
|
84 |
+
]
|
85 |
+
]
|
86 |
+
);
|
87 |
+
}
|
88 |
+
|
89 |
+
$this->add_control(
|
90 |
+
'title',
|
91 |
+
[
|
92 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
93 |
+
'type' => Controls_Manager::TEXT,
|
94 |
+
'label_block' => true,
|
95 |
+
'default' => __( 'Happy Icon Box', 'happy-elementor-addons' ),
|
96 |
+
'placeholder' => __( 'Type Icon Box Title', 'happy-elementor-addons' ),
|
97 |
+
'dynamic' => [
|
98 |
+
'active' => true,
|
99 |
+
]
|
100 |
+
]
|
101 |
+
);
|
102 |
+
|
103 |
+
$this->add_control(
|
104 |
+
'badge_text',
|
105 |
+
[
|
106 |
+
'label' => __( 'Badge Text', 'happy-elementor-addons' ),
|
107 |
+
'type' => Controls_Manager::TEXT,
|
108 |
+
'label_block' => true,
|
109 |
+
'placeholder' => __( 'Type Icon Badge Text', 'happy-elementor-addons' ),
|
110 |
+
'dynamic' => [
|
111 |
+
'active' => true,
|
112 |
+
]
|
113 |
+
]
|
114 |
+
);
|
115 |
+
|
116 |
+
$this->add_control(
|
117 |
+
'link',
|
118 |
+
[
|
119 |
+
'label' => __( 'Box Link', 'happy-elementor-addons' ),
|
120 |
+
'separator' => 'before',
|
121 |
+
'type' => Controls_Manager::URL,
|
122 |
+
'placeholder' => 'https://example.com',
|
123 |
+
'dynamic' => [
|
124 |
+
'active' => true,
|
125 |
+
]
|
126 |
+
]
|
127 |
+
);
|
128 |
+
|
129 |
+
$this->add_control(
|
130 |
+
'title_tag',
|
131 |
+
[
|
132 |
+
'label' => __( 'Title HTML Tag', 'happy-elementor-addons' ),
|
133 |
+
'type' => Controls_Manager::CHOOSE,
|
134 |
+
'separator' => 'before',
|
135 |
+
'options' => [
|
136 |
+
'h1' => [
|
137 |
+
'title' => __( 'H1', 'happy-elementor-addons' ),
|
138 |
+
'icon' => 'eicon-editor-h1'
|
139 |
+
],
|
140 |
+
'h2' => [
|
141 |
+
'title' => __( 'H2', 'happy-elementor-addons' ),
|
142 |
+
'icon' => 'eicon-editor-h2'
|
143 |
+
],
|
144 |
+
'h3' => [
|
145 |
+
'title' => __( 'H3', 'happy-elementor-addons' ),
|
146 |
+
'icon' => 'eicon-editor-h3'
|
147 |
+
],
|
148 |
+
'h4' => [
|
149 |
+
'title' => __( 'H4', 'happy-elementor-addons' ),
|
150 |
+
'icon' => 'eicon-editor-h4'
|
151 |
+
],
|
152 |
+
'h5' => [
|
153 |
+
'title' => __( 'H5', 'happy-elementor-addons' ),
|
154 |
+
'icon' => 'eicon-editor-h5'
|
155 |
+
],
|
156 |
+
'h6' => [
|
157 |
+
'title' => __( 'H6', 'happy-elementor-addons' ),
|
158 |
+
'icon' => 'eicon-editor-h6'
|
159 |
+
]
|
160 |
+
],
|
161 |
+
'default' => 'h2',
|
162 |
+
'toggle' => false,
|
163 |
+
]
|
164 |
+
);
|
165 |
+
|
166 |
+
$this->add_responsive_control(
|
167 |
+
'align',
|
168 |
+
[
|
169 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
170 |
+
'type' => Controls_Manager::CHOOSE,
|
171 |
+
'options' => [
|
172 |
+
'left' => [
|
173 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
174 |
+
'icon' => 'eicon-text-align-left',
|
175 |
+
],
|
176 |
+
'center' => [
|
177 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
178 |
+
'icon' => 'eicon-text-align-center',
|
179 |
+
],
|
180 |
+
'right' => [
|
181 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
182 |
+
'icon' => 'eicon-text-align-right',
|
183 |
+
],
|
184 |
+
'justify' => [
|
185 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
186 |
+
'icon' => 'eicon-text-align-justify',
|
187 |
+
],
|
188 |
+
],
|
189 |
+
'toggle' => true,
|
190 |
+
'default' => 'center',
|
191 |
+
'selectors' => [
|
192 |
+
'{{WRAPPER}}' => 'text-align: {{VALUE}};'
|
193 |
+
]
|
194 |
+
]
|
195 |
+
);
|
196 |
+
|
197 |
+
$this->end_controls_section();
|
198 |
+
}
|
199 |
+
|
200 |
+
protected function register_style_controls() {
|
201 |
+
$this->start_controls_section(
|
202 |
+
'_section_style_icon',
|
203 |
+
[
|
204 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
205 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
206 |
+
]
|
207 |
+
);
|
208 |
+
|
209 |
+
$this->add_responsive_control(
|
210 |
+
'icon_size',
|
211 |
+
[
|
212 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
213 |
+
'type' => Controls_Manager::SLIDER,
|
214 |
+
'size_units' => [ 'px' ],
|
215 |
+
'range' => [
|
216 |
+
'px' => [
|
217 |
+
'min' => 6,
|
218 |
+
'max' => 300,
|
219 |
+
],
|
220 |
+
],
|
221 |
+
'selectors' => [
|
222 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
223 |
+
],
|
224 |
+
]
|
225 |
+
);
|
226 |
+
|
227 |
+
$this->add_responsive_control(
|
228 |
+
'icon_padding',
|
229 |
+
[
|
230 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
231 |
+
'type' => Controls_Manager::SLIDER,
|
232 |
+
'size_units' => ['px'],
|
233 |
+
'selectors' => [
|
234 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'padding: {{SIZE}}{{UNIT}};',
|
235 |
+
],
|
236 |
+
]
|
237 |
+
);
|
238 |
+
|
239 |
+
$this->add_responsive_control(
|
240 |
+
'icon_spacing',
|
241 |
+
[
|
242 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
243 |
+
'type' => Controls_Manager::SLIDER,
|
244 |
+
'size_units' => ['px'],
|
245 |
+
'range' => [
|
246 |
+
'px' => [
|
247 |
+
'max' => 150,
|
248 |
+
]
|
249 |
+
],
|
250 |
+
'selectors' => [
|
251 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
252 |
+
],
|
253 |
+
]
|
254 |
+
);
|
255 |
+
|
256 |
+
$this->add_group_control(
|
257 |
+
Group_Control_Border::get_type(),
|
258 |
+
[
|
259 |
+
'name' => 'icon_border',
|
260 |
+
'selector' => '{{WRAPPER}} .ha-icon-box-icon'
|
261 |
+
]
|
262 |
+
);
|
263 |
+
|
264 |
+
$this->add_responsive_control(
|
265 |
+
'icon_border_radius',
|
266 |
+
[
|
267 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
268 |
+
'type' => Controls_Manager::DIMENSIONS,
|
269 |
+
'size_units' => [ 'px', '%' ],
|
270 |
+
'selectors' => [
|
271 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
272 |
+
],
|
273 |
+
]
|
274 |
+
);
|
275 |
+
|
276 |
+
$this->add_group_control(
|
277 |
+
Group_Control_Box_Shadow::get_type(),
|
278 |
+
[
|
279 |
+
'name' => 'icon_shadow',
|
280 |
+
'exclude' => [
|
281 |
+
'box_shadow_position',
|
282 |
+
],
|
283 |
+
'selector' => '{{WRAPPER}} .ha-icon-box-icon'
|
284 |
+
]
|
285 |
+
);
|
286 |
+
|
287 |
+
$this->start_controls_tabs( '_tabs_icon' );
|
288 |
+
|
289 |
+
$this->start_controls_tab(
|
290 |
+
'_tab_icon_normal',
|
291 |
+
[
|
292 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
293 |
+
]
|
294 |
+
);
|
295 |
+
|
296 |
+
$this->add_control(
|
297 |
+
'icon_color',
|
298 |
+
[
|
299 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
300 |
+
'type' => Controls_Manager::COLOR,
|
301 |
+
'selectors' => [
|
302 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'color: {{VALUE}};',
|
303 |
+
],
|
304 |
+
]
|
305 |
+
);
|
306 |
+
|
307 |
+
$this->add_control(
|
308 |
+
'icon_bg_color',
|
309 |
+
[
|
310 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
311 |
+
'type' => Controls_Manager::COLOR,
|
312 |
+
'selectors' => [
|
313 |
+
'{{WRAPPER}} .ha-icon-box-icon' => 'background-color: {{VALUE}};',
|
314 |
+
],
|
315 |
+
]
|
316 |
+
);
|
317 |
+
|
318 |
+
$this->add_control(
|
319 |
+
'icon_bg_rotate',
|
320 |
+
[
|
321 |
+
'label' => __( 'Rotate Icon Box', 'happy-elementor-addons' ),
|
322 |
+
'type' => Controls_Manager::SLIDER,
|
323 |
+
'size_units' => [ 'deg' ],
|
324 |
+
'default' => [
|
325 |
+
'unit' => 'deg',
|
326 |
+
],
|
327 |
+
'range' => [
|
328 |
+
'deg' => [
|
329 |
+
'min' => 0,
|
330 |
+
'max' => 360,
|
331 |
+
],
|
332 |
+
],
|
333 |
+
'selectors' => [
|
334 |
+
'{{WRAPPER}} .ha-icon-box-icon' => '-webkit-transform: rotate({{SIZE}}{{UNIT}}); transform: rotate({{SIZE}}{{UNIT}});',
|
335 |
+
'{{WRAPPER}} .ha-icon-box-icon > i' => '-webkit-transform: rotate(-{{SIZE}}{{UNIT}}); transform: rotate(-{{SIZE}}{{UNIT}});',
|
336 |
+
],
|
337 |
+
'condition' => [
|
338 |
+
'icon_bg_color!' => '',
|
339 |
+
]
|
340 |
+
]
|
341 |
+
);
|
342 |
+
|
343 |
+
$this->end_controls_tab();
|
344 |
+
|
345 |
+
$this->start_controls_tab(
|
346 |
+
'_tab_button_hover',
|
347 |
+
[
|
348 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
349 |
+
]
|
350 |
+
);
|
351 |
+
|
352 |
+
$this->add_control(
|
353 |
+
'icon_hover_color',
|
354 |
+
[
|
355 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
356 |
+
'type' => Controls_Manager::COLOR,
|
357 |
+
'selectors' => [
|
358 |
+
'{{WRAPPER}}:hover .ha-icon-box-icon' => 'color: {{VALUE}};',
|
359 |
+
],
|
360 |
+
]
|
361 |
+
);
|
362 |
+
|
363 |
+
$this->add_control(
|
364 |
+
'icon_hover_bg_color',
|
365 |
+
[
|
366 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
367 |
+
'type' => Controls_Manager::COLOR,
|
368 |
+
'selectors' => [
|
369 |
+
'{{WRAPPER}}:hover .ha-icon-box-icon' => 'background-color: {{VALUE}};',
|
370 |
+
],
|
371 |
+
]
|
372 |
+
);
|
373 |
+
|
374 |
+
$this->add_control(
|
375 |
+
'icon_hover_border_color',
|
376 |
+
[
|
377 |
+
'label' => __( 'Border Color', 'happy-elementor-addons' ),
|
378 |
+
'type' => Controls_Manager::COLOR,
|
379 |
+
'selectors' => [
|
380 |
+
'{{WRAPPER}}:hover .ha-icon-box-icon' => 'border-color: {{VALUE}};',
|
381 |
+
],
|
382 |
+
'condition' => [
|
383 |
+
'icon_border_border!' => '',
|
384 |
+
]
|
385 |
+
]
|
386 |
+
);
|
387 |
+
|
388 |
+
$this->add_control(
|
389 |
+
'icon_hover_bg_rotate',
|
390 |
+
[
|
391 |
+
'label' => __( 'Rotate Icon Box', 'happy-elementor-addons' ),
|
392 |
+
'type' => Controls_Manager::SLIDER,
|
393 |
+
'size_units' => [ 'deg' ],
|
394 |
+
'default' => [
|
395 |
+
'unit' => 'deg',
|
396 |
+
],
|
397 |
+
'range' => [
|
398 |
+
'deg' => [
|
399 |
+
'min' => 0,
|
400 |
+
'max' => 360,
|
401 |
+
],
|
402 |
+
],
|
403 |
+
'selectors' => [
|
404 |
+
'{{WRAPPER}}:hover .ha-icon-box-icon' => '-webkit-transform: rotate({{SIZE}}{{UNIT}}); transform: rotate({{SIZE}}{{UNIT}});',
|
405 |
+
'{{WRAPPER}}:hover .ha-icon-box-icon > i' => '-webkit-transform: rotate(-{{SIZE}}{{UNIT}}); transform: rotate(-{{SIZE}}{{UNIT}});',
|
406 |
+
],
|
407 |
+
'condition' => [
|
408 |
+
'icon_bg_color!' => '',
|
409 |
+
]
|
410 |
+
]
|
411 |
+
);
|
412 |
+
|
413 |
+
$this->end_controls_tab();
|
414 |
+
$this->end_controls_tabs();
|
415 |
+
|
416 |
+
$this->end_controls_section();
|
417 |
+
|
418 |
+
$this->start_controls_section(
|
419 |
+
'_section_style_title',
|
420 |
+
[
|
421 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
422 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
423 |
+
]
|
424 |
+
);
|
425 |
+
|
426 |
+
$this->add_group_control(
|
427 |
+
Group_Control_Typography::get_type(),
|
428 |
+
[
|
429 |
+
'name' => 'title',
|
430 |
+
'selector' => '{{WRAPPER}} .ha-icon-box-title',
|
431 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_2
|
432 |
+
]
|
433 |
+
);
|
434 |
+
|
435 |
+
$this->add_group_control(
|
436 |
+
Group_Control_Text_Shadow::get_type(),
|
437 |
+
[
|
438 |
+
'name' => 'title',
|
439 |
+
'selector' => '{{WRAPPER}} .ha-icon-box-title',
|
440 |
+
]
|
441 |
+
);
|
442 |
+
|
443 |
+
$this->start_controls_tabs( '_tabs_title' );
|
444 |
+
|
445 |
+
$this->start_controls_tab(
|
446 |
+
'_tab_title_normal',
|
447 |
+
[
|
448 |
+
'label' => __( 'Normal', 'happy-elementor-addons' ),
|
449 |
+
]
|
450 |
+
);
|
451 |
+
|
452 |
+
$this->add_control(
|
453 |
+
'title_color',
|
454 |
+
[
|
455 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
456 |
+
'type' => Controls_Manager::COLOR,
|
457 |
+
'selectors' => [
|
458 |
+
'{{WRAPPER}} .ha-icon-box-title' => 'color: {{VALUE}};',
|
459 |
+
],
|
460 |
+
]
|
461 |
+
);
|
462 |
+
|
463 |
+
$this->end_controls_tab();
|
464 |
+
|
465 |
+
$this->start_controls_tab(
|
466 |
+
'_tab_title_hover',
|
467 |
+
[
|
468 |
+
'label' => __( 'Hover', 'happy-elementor-addons' ),
|
469 |
+
]
|
470 |
+
);
|
471 |
+
|
472 |
+
$this->add_control(
|
473 |
+
'title_hover_color',
|
474 |
+
[
|
475 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
476 |
+
'type' => Controls_Manager::COLOR,
|
477 |
+
'selectors' => [
|
478 |
+
'{{WRAPPER}}:hover .ha-icon-box-title' => 'color: {{VALUE}};',
|
479 |
+
],
|
480 |
+
]
|
481 |
+
);
|
482 |
+
|
483 |
+
$this->end_controls_tab();
|
484 |
+
$this->end_controls_tabs();
|
485 |
+
|
486 |
+
$this->end_controls_section();
|
487 |
+
|
488 |
+
$this->start_controls_section(
|
489 |
+
'_section_style_badge',
|
490 |
+
[
|
491 |
+
'label' => __( 'Badge', 'happy-elementor-addons' ),
|
492 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
493 |
+
]
|
494 |
+
);
|
495 |
+
|
496 |
+
$this->add_control(
|
497 |
+
'badge_offset_toggle',
|
498 |
+
[
|
499 |
+
'label' => __( 'Offset', 'happy-elementor-addons' ),
|
500 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
501 |
+
'label_off' => __( 'None', 'happy-elementor-addons' ),
|
502 |
+
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
503 |
+
'return_value' => 'yes',
|
504 |
+
]
|
505 |
+
);
|
506 |
+
|
507 |
+
$this->start_popover();
|
508 |
+
|
509 |
+
$this->add_responsive_control(
|
510 |
+
'badge_offset_x',
|
511 |
+
[
|
512 |
+
'label' => __( 'Offset Left', 'happy-elementor-addons' ),
|
513 |
+
'type' => Controls_Manager::SLIDER,
|
514 |
+
'size_units' => ['px'],
|
515 |
+
'condition' => [
|
516 |
+
'badge_offset_toggle' => 'yes'
|
517 |
+
],
|
518 |
+
'default' => [
|
519 |
+
'size' => 1
|
520 |
+
],
|
521 |
+
'range' => [
|
522 |
+
'px' => [
|
523 |
+
'min' => -250,
|
524 |
+
'max' => 250,
|
525 |
+
],
|
526 |
+
],
|
527 |
+
'selectors' => [
|
528 |
+
'{{WRAPPER}} .ha-badge' => '--ha-badge-translate-x: {{SIZE}}{{UNIT}};',
|
529 |
+
],
|
530 |
+
]
|
531 |
+
);
|
532 |
+
|
533 |
+
$this->add_responsive_control(
|
534 |
+
'badge_offset_y',
|
535 |
+
[
|
536 |
+
'label' => __( 'Offset Top', 'happy-elementor-addons' ),
|
537 |
+
'type' => Controls_Manager::SLIDER,
|
538 |
+
'size_units' => ['px'],
|
539 |
+
'condition' => [
|
540 |
+
'badge_offset_toggle' => 'yes'
|
541 |
+
],
|
542 |
+
'default' => [
|
543 |
+
'size' => 1
|
544 |
+
],
|
545 |
+
'range' => [
|
546 |
+
'px' => [
|
547 |
+
'min' => -500,
|
548 |
+
'max' => 500,
|
549 |
+
],
|
550 |
+
],
|
551 |
+
'selectors' => [
|
552 |
+
'{{WRAPPER}} .ha-badge' => '--ha-badge-translate-y: {{SIZE}}{{UNIT}};',
|
553 |
+
],
|
554 |
+
]
|
555 |
+
);
|
556 |
+
$this->end_popover();
|
557 |
+
|
558 |
+
$this->add_responsive_control(
|
559 |
+
'badge_padding',
|
560 |
+
[
|
561 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
562 |
+
'type' => Controls_Manager::DIMENSIONS,
|
563 |
+
'size_units' => [ 'px', 'em', '%' ],
|
564 |
+
'selectors' => [
|
565 |
+
'{{WRAPPER}} .ha-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
566 |
+
],
|
567 |
+
]
|
568 |
+
);
|
569 |
+
|
570 |
+
$this->add_control(
|
571 |
+
'badge_color',
|
572 |
+
[
|
573 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
574 |
+
'type' => Controls_Manager::COLOR,
|
575 |
+
'selectors' => [
|
576 |
+
'{{WRAPPER}} .ha-badge' => 'color: {{VALUE}};',
|
577 |
+
],
|
578 |
+
]
|
579 |
+
);
|
580 |
+
|
581 |
+
$this->add_control(
|
582 |
+
'badge_bg_color',
|
583 |
+
[
|
584 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
585 |
+
'type' => Controls_Manager::COLOR,
|
586 |
+
'selectors' => [
|
587 |
+
'{{WRAPPER}} .ha-badge' => 'background-color: {{VALUE}};',
|
588 |
+
],
|
589 |
+
]
|
590 |
+
);
|
591 |
+
|
592 |
+
$this->add_group_control(
|
593 |
+
Group_Control_Border::get_type(),
|
594 |
+
[
|
595 |
+
'name' => 'badge_border',
|
596 |
+
'selector' => '{{WRAPPER}} .ha-badge',
|
597 |
+
]
|
598 |
+
);
|
599 |
+
|
600 |
+
$this->add_responsive_control(
|
601 |
+
'badge_border_radius',
|
602 |
+
[
|
603 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
604 |
+
'type' => Controls_Manager::DIMENSIONS,
|
605 |
+
'size_units' => [ 'px', '%' ],
|
606 |
+
'selectors' => [
|
607 |
+
'{{WRAPPER}} .ha-badge' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
608 |
+
],
|
609 |
+
]
|
610 |
+
);
|
611 |
+
|
612 |
+
$this->add_group_control(
|
613 |
+
Group_Control_Box_Shadow::get_type(),
|
614 |
+
[
|
615 |
+
'name' => 'badge_box_shadow',
|
616 |
+
'exclude' => [
|
617 |
+
'box_shadow_position',
|
618 |
+
],
|
619 |
+
'selector' => '{{WRAPPER}} .ha-badge',
|
620 |
+
]
|
621 |
+
);
|
622 |
+
|
623 |
+
$this->add_group_control(
|
624 |
+
Group_Control_Typography::get_type(),
|
625 |
+
[
|
626 |
+
'name' => 'badge_typography',
|
627 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
628 |
+
'exclude' => [
|
629 |
+
'font_family',
|
630 |
+
'line_height'
|
631 |
+
],
|
632 |
+
'default' => [
|
633 |
+
'font_size' => ['']
|
634 |
+
],
|
635 |
+
'selector' => '{{WRAPPER}} .ha-badge',
|
636 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
637 |
+
]
|
638 |
+
);
|
639 |
+
|
640 |
+
$this->end_controls_section();
|
641 |
+
}
|
642 |
+
|
643 |
+
/**
|
644 |
+
* Render widget output on the frontend.
|
645 |
+
*
|
646 |
+
* Used to generate the final HTML displayed on the frontend.
|
647 |
+
*
|
648 |
+
* Note that if skin is selected, it will be rendered by the skin itself,
|
649 |
+
* not the widget.
|
650 |
+
*
|
651 |
+
* @since 1.0.0
|
652 |
+
* @access public
|
653 |
+
*/
|
654 |
+
public function render_content() {
|
655 |
+
/**
|
656 |
+
* Before widget render content.
|
657 |
+
*
|
658 |
+
* Fires before Elementor widget is being rendered.
|
659 |
+
*
|
660 |
+
* @since 1.0.0
|
661 |
+
*
|
662 |
+
* @param Widget_Base $this The current widget.
|
663 |
+
*/
|
664 |
+
do_action( 'elementor/widget/before_render_content', $this );
|
665 |
+
|
666 |
+
ob_start();
|
667 |
+
|
668 |
+
$skin = $this->get_current_skin();
|
669 |
+
if ( $skin ) {
|
670 |
+
$skin->set_parent( $this );
|
671 |
+
$skin->render();
|
672 |
+
} else {
|
673 |
+
$this->render();
|
674 |
+
}
|
675 |
+
|
676 |
+
$widget_content = ob_get_clean();
|
677 |
+
|
678 |
+
if ( empty( $widget_content ) ) {
|
679 |
+
return;
|
680 |
+
}
|
681 |
+
|
682 |
+
if ( ha_elementor()->editor->is_edit_mode() ) {
|
683 |
+
$this->render_edit_tools();
|
684 |
+
}
|
685 |
+
|
686 |
+
$tag = 'div';
|
687 |
+
$link = $this->get_settings_for_display( 'link' );
|
688 |
+
$this->add_render_attribute( 'icon_box', 'class', 'elementor-widget-container' );
|
689 |
+
|
690 |
+
if ( ! empty( $link['url'] ) ) {
|
691 |
+
$tag = 'a';
|
692 |
+
$this->add_render_attribute( 'icon_box', 'class', 'ha-icon-box-link' );
|
|
|
|
|
693 |
$this->add_link_attributes( 'icon_box', $link );
|
694 |
+
}
|
695 |
+
?>
|
696 |
+
<<?php echo $tag; ?> <?php echo $this->get_render_attribute_string( 'icon_box' ); ?>>
|
697 |
+
<?php
|
698 |
+
|
699 |
+
/**
|
700 |
+
* Render widget content.
|
701 |
+
*
|
702 |
+
* Filters the widget content before it's rendered.
|
703 |
+
*
|
704 |
+
* @since 1.0.0
|
705 |
+
*
|
706 |
+
* @param string $widget_content The content of the widget.
|
707 |
+
* @param Widget_Base $this The widget.
|
708 |
+
*/
|
709 |
+
$widget_content = apply_filters( 'elementor/widget/render_content', $widget_content, $this );
|
710 |
+
|
711 |
+
echo $widget_content; // XSS ok.
|
712 |
+
?>
|
713 |
+
</<?php echo $tag; ?>>
|
714 |
+
<?php
|
715 |
+
}
|
716 |
+
|
717 |
+
protected function render() {
|
718 |
+
$settings = $this->get_settings_for_display();
|
719 |
+
|
720 |
+
$this->add_inline_editing_attributes( 'title', 'basic' );
|
721 |
+
$this->add_render_attribute( 'title', 'class', 'ha-icon-box-title' );
|
722 |
+
|
723 |
+
$this->add_inline_editing_attributes( 'badge_text', 'none' );
|
724 |
+
$this->add_render_attribute( 'badge_text', 'class', 'ha-badge ha-badge--top-right' );
|
725 |
+
?>
|
726 |
+
|
727 |
+
<?php if ( $settings['badge_text'] ) : ?>
|
728 |
+
<span <?php $this->print_render_attribute_string( 'badge_text' ); ?>><?php echo esc_html( $settings['badge_text'] ); ?></span>
|
729 |
+
<?php endif; ?>
|
730 |
+
|
731 |
+
<?php if ( ! empty( $settings['icon'] ) || ! empty( $settings['selected_icon']['value'] ) ) : ?>
|
732 |
+
<span class="ha-icon-box-icon">
|
733 |
+
<?php ha_render_icon( $settings, 'icon', 'selected_icon' ); ?>
|
734 |
+
</span>
|
735 |
+
<?php endif;
|
736 |
+
|
737 |
+
if ( $settings['title' ] ) :
|
738 |
+
printf( '<%1$s %2$s>%3$s</%1$s>',
|
739 |
+
tag_escape( $settings['title_tag'] ),
|
740 |
+
$this->get_render_attribute_string( 'title' ),
|
741 |
+
ha_kses_basic( $settings['title' ] )
|
742 |
+
);
|
743 |
+
endif;
|
744 |
+
}
|
745 |
+
|
746 |
+
public function _content_template() {
|
747 |
+
?>
|
748 |
+
<#
|
749 |
+
var iconHTML = migrated = '';
|
750 |
+
|
751 |
+
if ( ha.hasIconLibrary() ) {
|
752 |
+
iconHTML = elementor.helpers.renderIcon( view, settings.selected_icon, { 'aria-hidden': true }, 'i' , 'object' ),
|
753 |
+
migrated = elementor.helpers.isIconMigrated( settings, 'selected_icon' );
|
754 |
+
}
|
755 |
+
|
756 |
+
view.addInlineEditingAttributes( 'title', 'basic' );
|
757 |
+
view.addRenderAttribute( 'title', 'class', 'ha-icon-box-title' );
|
758 |
+
|
759 |
+
view.addInlineEditingAttributes( 'badge_text', 'none' );
|
760 |
+
view.addRenderAttribute( 'badge_text', 'class', 'ha-badge ha-badge--top-right' );
|
761 |
+
|
762 |
+
if (settings.link.url) {
|
763 |
+
view.addRenderAttribute( 'link', 'class', 'ha-icon-box-link' );
|
764 |
+
view.addRenderAttribute( 'link', 'href', settings.link.url );
|
765 |
+
print( '<a ' + view.getRenderAttributeString( 'link' ) + '>' );
|
766 |
+
} #>
|
767 |
+
|
768 |
+
<# if (settings.badge_text) { #>
|
769 |
+
<span {{{ view.getRenderAttributeString( 'badge_text' ) }}}>{{ settings.badge_text }}</span>
|
770 |
+
<# } #>
|
771 |
+
|
772 |
+
<# if ( settings.icon || settings.selected_icon.value ) { #>
|
773 |
+
<span class="ha-icon-box-icon">
|
774 |
+
<# if ( ha.hasIconLibrary() && iconHTML && iconHTML.rendered && ( ! settings.icon || migrated ) ) { #>
|
775 |
+
{{{ iconHTML.value }}}
|
776 |
+
<# } else { #>
|
777 |
+
<i class="{{ settings.icon }}" aria-hidden="true"></i>
|
778 |
+
<# } #>
|
779 |
+
</span>
|
780 |
+
<# } #>
|
781 |
+
|
782 |
+
<# if (settings.title) { #>
|
783 |
+
<{{ settings.title_tag }} {{{ view.getRenderAttributeString( 'title' ) }}}>{{ settings.title }}</{{ settings.title_tag }}>
|
784 |
+
<# } #>
|
785 |
+
|
786 |
+
<# if (settings.link.url) {
|
787 |
+
print( '</a>' );
|
788 |
+
} #>
|
789 |
+
<?php
|
790 |
+
}
|
791 |
}
|
@@ -247,14 +247,8 @@ class Image_Compare extends Base {
|
|
247 |
'{{WRAPPER}} .twentytwenty-handle' => 'border-color: {{VALUE}}',
|
248 |
'{{WRAPPER}} .twentytwenty-left-arrow' => 'border-right-color: {{VALUE}}',
|
249 |
'{{WRAPPER}} .twentytwenty-right-arrow' => 'border-left-color: {{VALUE}}',
|
250 |
-
'{{WRAPPER}} .twentytwenty-handle:before' =>
|
251 |
-
|
252 |
-
. '-moz-box-shadow: 0 3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);'
|
253 |
-
. 'box-shadow: 0 3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);',
|
254 |
-
'{{WRAPPER}} .twentytwenty-handle:after' =>
|
255 |
-
'-webkit-box-shadow: 0 -3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);'
|
256 |
-
. '-moz-box-shadow: 0 -3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);'
|
257 |
-
. 'box-shadow: 0 -3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);',
|
258 |
],
|
259 |
]
|
260 |
);
|
247 |
'{{WRAPPER}} .twentytwenty-handle' => 'border-color: {{VALUE}}',
|
248 |
'{{WRAPPER}} .twentytwenty-left-arrow' => 'border-right-color: {{VALUE}}',
|
249 |
'{{WRAPPER}} .twentytwenty-right-arrow' => 'border-left-color: {{VALUE}}',
|
250 |
+
'{{WRAPPER}} .twentytwenty-handle:before' => 'box-shadow: 0 3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);',
|
251 |
+
'{{WRAPPER}} .twentytwenty-handle:after' => 'box-shadow: 0 -3px 0 {{VALUE}}, 0px 0px 12px rgba(51, 51, 51, 0.5);',
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
],
|
253 |
]
|
254 |
);
|
@@ -8,7 +8,6 @@ namespace Happy_Addons\Elementor\Widget;
|
|
8 |
|
9 |
use Elementor\Scheme_Typography;
|
10 |
use Elementor\Utils;
|
11 |
-
use Elementor\Control_Media;
|
12 |
use Elementor\Controls_Manager;
|
13 |
use Elementor\Group_Control_Border;
|
14 |
use Elementor\Group_Control_Box_Shadow;
|
@@ -240,15 +239,19 @@ class InfoBox extends Base {
|
|
240 |
'options' => [
|
241 |
'left' => [
|
242 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
243 |
-
'icon' => '
|
244 |
],
|
245 |
'center' => [
|
246 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
247 |
-
'icon' => '
|
248 |
],
|
249 |
'right' => [
|
250 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
251 |
-
'icon' => '
|
|
|
|
|
|
|
|
|
252 |
],
|
253 |
],
|
254 |
'toggle' => true,
|
@@ -290,6 +293,9 @@ class InfoBox extends Base {
|
|
290 |
'placeholder' => 'https://example.com',
|
291 |
'dynamic' => [
|
292 |
'active' => true,
|
|
|
|
|
|
|
293 |
]
|
294 |
]
|
295 |
);
|
@@ -468,7 +474,9 @@ class InfoBox extends Base {
|
|
468 |
'max' => 1000,
|
469 |
],
|
470 |
],
|
471 |
-
'
|
|
|
|
|
472 |
]
|
473 |
);
|
474 |
|
@@ -488,12 +496,7 @@ class InfoBox extends Base {
|
|
488 |
],
|
489 |
],
|
490 |
'selectors' => [
|
491 |
-
|
492 |
-
'(desktop){{WRAPPER}} .ha-infobox-figure' => '-ms-transform: translate({{media_offset_x.SIZE || 0}}{{UNIT}}, {{media_offset_y.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{media_offset_x.SIZE || 0}}{{UNIT}}, {{media_offset_y.SIZE || 0}}{{UNIT}}); transform: translate({{media_offset_x.SIZE || 0}}{{UNIT}}, {{media_offset_y.SIZE || 0}}{{UNIT}});',
|
493 |
-
'(tablet){{WRAPPER}} .ha-infobox-figure' => '-ms-transform: translate({{media_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{media_offset_y_tablet.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{media_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{media_offset_y_tablet.SIZE || 0}}{{UNIT}}); transform: translate({{media_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{media_offset_y_tablet.SIZE || 0}}{{UNIT}});',
|
494 |
-
'(mobile){{WRAPPER}} .ha-infobox-figure' => '-ms-transform: translate({{media_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{media_offset_y_mobile.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{media_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{media_offset_y_mobile.SIZE || 0}}{{UNIT}}); transform: translate({{media_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{media_offset_y_mobile.SIZE || 0}}{{UNIT}});',
|
495 |
-
// Body text styles
|
496 |
-
'{{WRAPPER}} .ha-infobox-body' => 'margin-top: {{SIZE}}{{UNIT}};',
|
497 |
],
|
498 |
]
|
499 |
);
|
@@ -599,13 +602,11 @@ class InfoBox extends Base {
|
|
599 |
],
|
600 |
],
|
601 |
'selectors' => [
|
602 |
-
|
603 |
-
'{{WRAPPER}} .ha-infobox-figure--icon i, {{WRAPPER}} .ha-infobox-figure--icon svg' => '-ms-transform: rotate(-{{SIZE}}{{UNIT}}); -webkit-transform: rotate(-{{SIZE}}{{UNIT}}); transform: rotate(-{{SIZE}}{{UNIT}});',
|
604 |
-
// Icon box transform styles
|
605 |
-
'(desktop){{WRAPPER}} .ha-infobox-figure--icon' => '-ms-transform: translate({{media_offset_x.SIZE || 0}}px, {{media_offset_y.SIZE || 0}}px) rotate({{SIZE}}deg); -webkit-transform: translate({{media_offset_x.SIZE || 0}}px, {{media_offset_y.SIZE || 0}}px) rotate({{SIZE}}deg); transform: translate({{media_offset_x.SIZE || 0}}px, {{media_offset_y.SIZE || 0}}px) rotate({{SIZE}}deg);',
|
606 |
-
'(tablet){{WRAPPER}} .ha-infobox-figure--icon' => '-ms-transform: translate({{media_offset_x_tablet.SIZE || 0}}px, {{media_offset_y_tablet.SIZE || 0}}px) rotate({{SIZE}}deg); -webkit-transform: translate({{media_offset_x_tablet.SIZE || 0}}px, {{media_offset_y_tablet.SIZE || 0}}px) rotate({{SIZE}}deg); transform: translate({{media_offset_x_tablet.SIZE || 0}}px, {{media_offset_y_tablet.SIZE || 0}}px) rotate({{SIZE}}deg);',
|
607 |
-
'(mobile){{WRAPPER}} .ha-infobox-figure--icon' => '-ms-transform: translate({{media_offset_x_mobile.SIZE || 0}}px, {{media_offset_y_mobile.SIZE || 0}}px) rotate({{SIZE}}deg); -webkit-transform: translate({{media_offset_x_mobile.SIZE || 0}}px, {{media_offset_y_mobile.SIZE || 0}}px) rotate({{SIZE}}deg); transform: translate({{media_offset_x_mobile.SIZE || 0}}px, {{media_offset_y_mobile.SIZE || 0}}px) rotate({{SIZE}}deg);',
|
608 |
],
|
|
|
|
|
|
|
609 |
]
|
610 |
);
|
611 |
|
8 |
|
9 |
use Elementor\Scheme_Typography;
|
10 |
use Elementor\Utils;
|
|
|
11 |
use Elementor\Controls_Manager;
|
12 |
use Elementor\Group_Control_Border;
|
13 |
use Elementor\Group_Control_Box_Shadow;
|
239 |
'options' => [
|
240 |
'left' => [
|
241 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
242 |
+
'icon' => 'eicon-text-align-left',
|
243 |
],
|
244 |
'center' => [
|
245 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
246 |
+
'icon' => 'eicon-text-align-center',
|
247 |
],
|
248 |
'right' => [
|
249 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
250 |
+
'icon' => 'eicon-text-align-right',
|
251 |
+
],
|
252 |
+
'justify' => [
|
253 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
254 |
+
'icon' => 'eicon-text-align-justify',
|
255 |
],
|
256 |
],
|
257 |
'toggle' => true,
|
293 |
'placeholder' => 'https://example.com',
|
294 |
'dynamic' => [
|
295 |
'active' => true,
|
296 |
+
],
|
297 |
+
'default' => [
|
298 |
+
'url' => '#',
|
299 |
]
|
300 |
]
|
301 |
);
|
474 |
'max' => 1000,
|
475 |
],
|
476 |
],
|
477 |
+
'selectors' => [
|
478 |
+
'{{WRAPPER}}' => '--ha-infobox-media-offset-x: {{SIZE}}{{UNIT}};',
|
479 |
+
]
|
480 |
]
|
481 |
);
|
482 |
|
496 |
],
|
497 |
],
|
498 |
'selectors' => [
|
499 |
+
'{{WRAPPER}}' => '--ha-infobox-media-offset-y: {{SIZE}}{{UNIT}};',
|
|
|
|
|
|
|
|
|
|
|
500 |
],
|
501 |
]
|
502 |
);
|
602 |
],
|
603 |
],
|
604 |
'selectors' => [
|
605 |
+
'{{WRAPPER}}' => '--ha-infobox-media-rotate: {{SIZE}}{{UNIT}};',
|
|
|
|
|
|
|
|
|
|
|
606 |
],
|
607 |
+
'condition' => [
|
608 |
+
'type' => 'icon'
|
609 |
+
]
|
610 |
]
|
611 |
);
|
612 |
|
@@ -56,47 +56,54 @@ class Member extends Base {
|
|
56 |
return [ 'team', 'member', 'crew', 'staff', 'person' ];
|
57 |
}
|
58 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
protected static function get_profile_names() {
|
60 |
return [
|
61 |
-
'500px'
|
62 |
-
'apple'
|
63 |
-
'behance'
|
64 |
-
'bitbucket'
|
65 |
-
'codepen'
|
66 |
-
'delicious'
|
67 |
-
'deviantart'
|
68 |
-
'digg'
|
69 |
-
'dribbble'
|
70 |
-
'email'
|
71 |
-
'facebook'
|
72 |
-
'flickr'
|
73 |
-
'foursquare'
|
74 |
-
'github'
|
75 |
-
'houzz'
|
76 |
-
'instagram'
|
77 |
-
'jsfiddle'
|
78 |
-
'linkedin'
|
79 |
-
'medium'
|
80 |
-
'pinterest'
|
81 |
-
'product-hunt'
|
82 |
-
'reddit'
|
83 |
-
'slideshare'
|
84 |
-
'snapchat'
|
85 |
-
'soundcloud'
|
86 |
-
'spotify'
|
87 |
'stack-overflow' => __( 'StackOverflow', 'happy-elementor-addons' ),
|
88 |
-
'tripadvisor'
|
89 |
-
'tumblr'
|
90 |
-
'twitch'
|
91 |
-
'twitter'
|
92 |
-
'vimeo'
|
93 |
-
'vk'
|
94 |
-
'website'
|
95 |
-
'whatsapp'
|
96 |
-
'wordpress'
|
97 |
-
'xing'
|
98 |
-
'yelp'
|
99 |
-
'youtube'
|
100 |
];
|
101 |
}
|
102 |
|
@@ -223,15 +230,19 @@ class Member extends Base {
|
|
223 |
'options' => [
|
224 |
'left' => [
|
225 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
226 |
-
'icon' => '
|
227 |
],
|
228 |
'center' => [
|
229 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
230 |
-
'icon' => '
|
231 |
],
|
232 |
'right' => [
|
233 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
234 |
-
'icon' => '
|
|
|
|
|
|
|
|
|
235 |
],
|
236 |
],
|
237 |
'toggle' => true,
|
@@ -506,6 +517,9 @@ class Member extends Base {
|
|
506 |
],
|
507 |
'condition' => [
|
508 |
'show_details_button' => 'yes',
|
|
|
|
|
|
|
509 |
]
|
510 |
]
|
511 |
);
|
@@ -1229,7 +1243,7 @@ class Member extends Base {
|
|
1229 |
$url = 'mailto:' . antispambot( $profile['email'] );
|
1230 |
}
|
1231 |
|
1232 |
-
printf( '<a target="_blank" rel="noopener" href="%s" class="elementor-repeater-item-%s"><i class="fa fa-%s" aria-hidden="true"></i></a>',
|
1233 |
$url,
|
1234 |
esc_attr( $profile['_id'] ),
|
1235 |
esc_attr( $icon )
|
@@ -1308,7 +1322,7 @@ class Member extends Base {
|
|
1308 |
|
1309 |
view.addRenderAttribute( linkKey, 'class', 'elementor-repeater-item-' + profile._id );
|
1310 |
view.addRenderAttribute( linkKey, 'href', url ); #>
|
1311 |
-
<a {{{view.getRenderAttributeString( linkKey )}}}><i class="fa fa-{{{icon}}}"></i></a>
|
1312 |
<# }); #>
|
1313 |
</div>
|
1314 |
<# } #>
|
56 |
return [ 'team', 'member', 'crew', 'staff', 'person' ];
|
57 |
}
|
58 |
|
59 |
+
public function get_style_depends() {
|
60 |
+
return [
|
61 |
+
'elementor-icons-fa-solid',
|
62 |
+
'elementor-icons-fa-brands',
|
63 |
+
];
|
64 |
+
}
|
65 |
+
|
66 |
protected static function get_profile_names() {
|
67 |
return [
|
68 |
+
'500px' => __( '500px', 'happy-elementor-addons' ),
|
69 |
+
'apple' => __( 'Apple', 'happy-elementor-addons' ),
|
70 |
+
'behance' => __( 'Behance', 'happy-elementor-addons' ),
|
71 |
+
'bitbucket' => __( 'BitBucket', 'happy-elementor-addons' ),
|
72 |
+
'codepen' => __( 'CodePen', 'happy-elementor-addons' ),
|
73 |
+
'delicious' => __( 'Delicious', 'happy-elementor-addons' ),
|
74 |
+
'deviantart' => __( 'DeviantArt', 'happy-elementor-addons' ),
|
75 |
+
'digg' => __( 'Digg', 'happy-elementor-addons' ),
|
76 |
+
'dribbble' => __( 'Dribbble', 'happy-elementor-addons' ),
|
77 |
+
'email' => __( 'Email', 'happy-elementor-addons' ),
|
78 |
+
'facebook' => __( 'Facebook', 'happy-elementor-addons' ),
|
79 |
+
'flickr' => __( 'Flicker', 'happy-elementor-addons' ),
|
80 |
+
'foursquare' => __( 'FourSquare', 'happy-elementor-addons' ),
|
81 |
+
'github' => __( 'Github', 'happy-elementor-addons' ),
|
82 |
+
'houzz' => __( 'Houzz', 'happy-elementor-addons' ),
|
83 |
+
'instagram' => __( 'Instagram', 'happy-elementor-addons' ),
|
84 |
+
'jsfiddle' => __( 'JS Fiddle', 'happy-elementor-addons' ),
|
85 |
+
'linkedin' => __( 'LinkedIn', 'happy-elementor-addons' ),
|
86 |
+
'medium' => __( 'Medium', 'happy-elementor-addons' ),
|
87 |
+
'pinterest' => __( 'Pinterest', 'happy-elementor-addons' ),
|
88 |
+
'product-hunt' => __( 'Product Hunt', 'happy-elementor-addons' ),
|
89 |
+
'reddit' => __( 'Reddit', 'happy-elementor-addons' ),
|
90 |
+
'slideshare' => __( 'Slide Share', 'happy-elementor-addons' ),
|
91 |
+
'snapchat' => __( 'Snapchat', 'happy-elementor-addons' ),
|
92 |
+
'soundcloud' => __( 'SoundCloud', 'happy-elementor-addons' ),
|
93 |
+
'spotify' => __( 'Spotify', 'happy-elementor-addons' ),
|
94 |
'stack-overflow' => __( 'StackOverflow', 'happy-elementor-addons' ),
|
95 |
+
'tripadvisor' => __( 'TripAdvisor', 'happy-elementor-addons' ),
|
96 |
+
'tumblr' => __( 'Tumblr', 'happy-elementor-addons' ),
|
97 |
+
'twitch' => __( 'Twitch', 'happy-elementor-addons' ),
|
98 |
+
'twitter' => __( 'Twitter', 'happy-elementor-addons' ),
|
99 |
+
'vimeo' => __( 'Vimeo', 'happy-elementor-addons' ),
|
100 |
+
'vk' => __( 'VK', 'happy-elementor-addons' ),
|
101 |
+
'website' => __( 'Website', 'happy-elementor-addons' ),
|
102 |
+
'whatsapp' => __( 'WhatsApp', 'happy-elementor-addons' ),
|
103 |
+
'wordpress' => __( 'WordPress', 'happy-elementor-addons' ),
|
104 |
+
'xing' => __( 'Xing', 'happy-elementor-addons' ),
|
105 |
+
'yelp' => __( 'Yelp', 'happy-elementor-addons' ),
|
106 |
+
'youtube' => __( 'YouTube', 'happy-elementor-addons' ),
|
107 |
];
|
108 |
}
|
109 |
|
230 |
'options' => [
|
231 |
'left' => [
|
232 |
'title' => __( 'Left', 'happy-elementor-addons' ),
|
233 |
+
'icon' => 'eicon-text-align-left',
|
234 |
],
|
235 |
'center' => [
|
236 |
'title' => __( 'Center', 'happy-elementor-addons' ),
|
237 |
+
'icon' => 'eicon-text-align-center',
|
238 |
],
|
239 |
'right' => [
|
240 |
'title' => __( 'Right', 'happy-elementor-addons' ),
|
241 |
+
'icon' => 'eicon-text-align-right',
|
242 |
+
],
|
243 |
+
'justify' => [
|
244 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
245 |
+
'icon' => 'eicon-text-align-justify',
|
246 |
],
|
247 |
],
|
248 |
'toggle' => true,
|
517 |
],
|
518 |
'condition' => [
|
519 |
'show_details_button' => 'yes',
|
520 |
+
],
|
521 |
+
'default' => [
|
522 |
+
'url' => '#',
|
523 |
]
|
524 |
]
|
525 |
);
|
1243 |
$url = 'mailto:' . antispambot( $profile['email'] );
|
1244 |
}
|
1245 |
|
1246 |
+
printf( '<a target="_blank" rel="noopener" href="%s" class="elementor-repeater-item-%s"><i class="fa fab fa-%s" aria-hidden="true"></i></a>',
|
1247 |
$url,
|
1248 |
esc_attr( $profile['_id'] ),
|
1249 |
esc_attr( $icon )
|
1322 |
|
1323 |
view.addRenderAttribute( linkKey, 'class', 'elementor-repeater-item-' + profile._id );
|
1324 |
view.addRenderAttribute( linkKey, 'href', url ); #>
|
1325 |
+
<a {{{view.getRenderAttributeString( linkKey )}}}><i class="fa fab fa-{{{icon}}}"></i></a>
|
1326 |
<# }); #>
|
1327 |
</div>
|
1328 |
<# } #>
|
@@ -204,6 +204,38 @@ class Post_List extends Base {
|
|
204 |
]
|
205 |
);
|
206 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
$this->add_group_control(
|
208 |
Group_Control_Image_Size::get_type(),
|
209 |
[
|
@@ -250,6 +282,18 @@ class Post_List extends Base {
|
|
250 |
]
|
251 |
);
|
252 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
253 |
$this->add_control(
|
254 |
'meta',
|
255 |
[
|
@@ -439,6 +483,7 @@ class Post_List extends Base {
|
|
439 |
],
|
440 |
'condition' => [
|
441 |
'view' => 'list',
|
|
|
442 |
]
|
443 |
]
|
444 |
);
|
@@ -802,14 +847,87 @@ class Post_List extends Base {
|
|
802 |
[
|
803 |
'label' => __( 'Margin Right', 'happy-elementor-addons' ),
|
804 |
'type' => Controls_Manager::SLIDER,
|
|
|
|
|
|
|
|
|
805 |
'selectors' => [
|
806 |
'{{WRAPPER}} span.ha-post-list-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
|
807 |
'{{WRAPPER}} .ha-post-list-item a img' => 'margin-right: {{SIZE}}{{UNIT}};',
|
808 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
809 |
]
|
810 |
);
|
811 |
|
812 |
$this->end_controls_section();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
813 |
//List Meta Style
|
814 |
$this->start_controls_section(
|
815 |
'_section_list_meta_style',
|
@@ -906,7 +1024,10 @@ class Post_List extends Base {
|
|
906 |
protected function render () {
|
907 |
|
908 |
$settings = $this->get_settings_for_display();
|
909 |
-
|
|
|
|
|
|
|
910 |
$args = [
|
911 |
'post_status' => 'publish',
|
912 |
'post_type' => $settings['post_type'],
|
@@ -988,7 +1109,7 @@ class Post_List extends Base {
|
|
988 |
<?php if ( $settings['date_icon'] ):
|
989 |
Icons_Manager::render_icon( $settings['date_icon'], [ 'aria-hidden' => 'true' ] );
|
990 |
endif;
|
991 |
-
echo get_the_date( "M
|
992 |
?>
|
993 |
</span>
|
994 |
<?php endif; ?>
|
@@ -1015,6 +1136,21 @@ class Post_List extends Base {
|
|
1015 |
);
|
1016 |
}
|
1017 |
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1018 |
</div>
|
1019 |
</a>
|
1020 |
</li>
|
204 |
]
|
205 |
);
|
206 |
|
207 |
+
$this->add_control(
|
208 |
+
'feature_image_pos',
|
209 |
+
[
|
210 |
+
'label' => __( 'Image Position', 'happy-elementor-addons' ),
|
211 |
+
'label_block' => false,
|
212 |
+
'type' => Controls_Manager::CHOOSE,
|
213 |
+
'default' => 'left',
|
214 |
+
'options' => [
|
215 |
+
'left' => [
|
216 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
217 |
+
'icon' => 'eicon-h-align-left',
|
218 |
+
],
|
219 |
+
'top' => [
|
220 |
+
'title' => __( 'Top', 'happy-elementor-addons' ),
|
221 |
+
'icon' => 'eicon-v-align-top',
|
222 |
+
],
|
223 |
+
],
|
224 |
+
'style_transfer' => true,
|
225 |
+
'condition' => [
|
226 |
+
'feature_image' => 'yes'
|
227 |
+
],
|
228 |
+
'selectors_dictionary' => [
|
229 |
+
'left' => 'flex-direction: row',
|
230 |
+
'top' => 'flex-direction: column',
|
231 |
+
],
|
232 |
+
'selectors' => [
|
233 |
+
'{{WRAPPER}} .ha-post-list .ha-post-list-item a' => '{{VALUE}};',
|
234 |
+
'{{WRAPPER}} .ha-post-list-item a img' => 'margin-right: 0px;',
|
235 |
+
],
|
236 |
+
]
|
237 |
+
);
|
238 |
+
|
239 |
$this->add_group_control(
|
240 |
Group_Control_Image_Size::get_type(),
|
241 |
[
|
282 |
]
|
283 |
);
|
284 |
|
285 |
+
$this->add_control(
|
286 |
+
'content',
|
287 |
+
[
|
288 |
+
'label' => __( 'Show Content', 'happy-elementor-addons' ),
|
289 |
+
'type' => Controls_Manager::SWITCHER,
|
290 |
+
'label_on' => __( 'Show', 'happy-elementor-addons' ),
|
291 |
+
'label_off' => __( 'Hide', 'happy-elementor-addons' ),
|
292 |
+
'return_value' => 'yes',
|
293 |
+
'default' => '',
|
294 |
+
]
|
295 |
+
);
|
296 |
+
|
297 |
$this->add_control(
|
298 |
'meta',
|
299 |
[
|
483 |
],
|
484 |
'condition' => [
|
485 |
'view' => 'list',
|
486 |
+
'feature_image_pos' => 'left',
|
487 |
]
|
488 |
]
|
489 |
);
|
847 |
[
|
848 |
'label' => __( 'Margin Right', 'happy-elementor-addons' ),
|
849 |
'type' => Controls_Manager::SLIDER,
|
850 |
+
'default' => [
|
851 |
+
'unit' => 'px',
|
852 |
+
'size' => '15',
|
853 |
+
],
|
854 |
'selectors' => [
|
855 |
'{{WRAPPER}} span.ha-post-list-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
|
856 |
'{{WRAPPER}} .ha-post-list-item a img' => 'margin-right: {{SIZE}}{{UNIT}};',
|
857 |
],
|
858 |
+
'condition' => [
|
859 |
+
'feature_image_pos' => 'left'
|
860 |
+
],
|
861 |
+
]
|
862 |
+
);
|
863 |
+
|
864 |
+
$this->add_responsive_control(
|
865 |
+
'feature_margin_bottom',
|
866 |
+
[
|
867 |
+
'label' => __( 'Margin Bottom', 'happy-elementor-addons' ),
|
868 |
+
'type' => Controls_Manager::SLIDER,
|
869 |
+
'default' => [
|
870 |
+
'unit' => 'px',
|
871 |
+
'size' => '15',
|
872 |
+
],
|
873 |
+
'selectors' => [
|
874 |
+
'{{WRAPPER}} .ha-post-list-item a img' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
875 |
+
],
|
876 |
+
'condition' => [
|
877 |
+
'feature_image_pos' => 'top'
|
878 |
+
],
|
879 |
]
|
880 |
);
|
881 |
|
882 |
$this->end_controls_section();
|
883 |
+
|
884 |
+
//List Content Style
|
885 |
+
$this->start_controls_section(
|
886 |
+
'_section_list_excerpt_style',
|
887 |
+
[
|
888 |
+
'label' => __( 'Content', 'happy-elementor-addons' ),
|
889 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
890 |
+
'condition' => [
|
891 |
+
'content' => 'yes',
|
892 |
+
]
|
893 |
+
]
|
894 |
+
);
|
895 |
+
|
896 |
+
$this->add_group_control(
|
897 |
+
Group_Control_Typography::get_type(),
|
898 |
+
[
|
899 |
+
'name' => 'excerpt_typography',
|
900 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
901 |
+
'scheme' => Schemes\Typography::TYPOGRAPHY_3,
|
902 |
+
'selector' => '{{WRAPPER}} .ha-post-list-excerpt p',
|
903 |
+
]
|
904 |
+
);
|
905 |
+
|
906 |
+
$this->add_control(
|
907 |
+
'excerpt_color',
|
908 |
+
[
|
909 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
910 |
+
'type' => Controls_Manager::COLOR,
|
911 |
+
'default' => '',
|
912 |
+
'selectors' => [
|
913 |
+
'{{WRAPPER}} .ha-post-list-excerpt p' => 'color: {{VALUE}};',
|
914 |
+
],
|
915 |
+
]
|
916 |
+
);
|
917 |
+
|
918 |
+
$this->add_responsive_control(
|
919 |
+
'excerpt_space',
|
920 |
+
[
|
921 |
+
'label' => __( 'Space Top', 'happy-elementor-addons' ),
|
922 |
+
'type' => Controls_Manager::SLIDER,
|
923 |
+
'selectors' => [
|
924 |
+
'{{WRAPPER}} .ha-post-list-excerpt' => 'margin-top: {{SIZE}}{{UNIT}};',
|
925 |
+
],
|
926 |
+
]
|
927 |
+
);
|
928 |
+
|
929 |
+
$this->end_controls_section();
|
930 |
+
|
931 |
//List Meta Style
|
932 |
$this->start_controls_section(
|
933 |
'_section_list_meta_style',
|
1024 |
protected function render () {
|
1025 |
|
1026 |
$settings = $this->get_settings_for_display();
|
1027 |
+
|
1028 |
+
if ( ! $settings['post_type'] ){
|
1029 |
+
return;
|
1030 |
+
}
|
1031 |
$args = [
|
1032 |
'post_status' => 'publish',
|
1033 |
'post_type' => $settings['post_type'],
|
1109 |
<?php if ( $settings['date_icon'] ):
|
1110 |
Icons_Manager::render_icon( $settings['date_icon'], [ 'aria-hidden' => 'true' ] );
|
1111 |
endif;
|
1112 |
+
echo get_the_date( "d M Y", $post->ID );
|
1113 |
?>
|
1114 |
</span>
|
1115 |
<?php endif; ?>
|
1136 |
);
|
1137 |
}
|
1138 |
?>
|
1139 |
+
<?php if ( 'yes' === $settings['content'] ): ?>
|
1140 |
+
<div class="ha-post-list-excerpt">
|
1141 |
+
<?php
|
1142 |
+
if ( 'post' !== $settings['post_type'] && has_excerpt($post->ID) ) {
|
1143 |
+
printf('<p>%1$s</p>',
|
1144 |
+
wp_trim_words(get_the_excerpt($post->ID))
|
1145 |
+
);
|
1146 |
+
}else{
|
1147 |
+
printf('<p>%1$s</p>',
|
1148 |
+
wp_trim_words(get_the_content(null,false,$post->ID), 25, '.')
|
1149 |
+
);
|
1150 |
+
}
|
1151 |
+
?>
|
1152 |
+
</div>
|
1153 |
+
<?php endif; ?>
|
1154 |
</div>
|
1155 |
</a>
|
1156 |
</li>
|
@@ -89,26 +89,26 @@ class Pricing_Table extends Base {
|
|
89 |
'type' => Controls_Manager::SELECT,
|
90 |
'label_block' => false,
|
91 |
'options' => [
|
92 |
-
''
|
93 |
-
'baht'
|
94 |
-
'bdt'
|
95 |
-
'dollar'
|
96 |
-
'euro'
|
97 |
-
'franc'
|
98 |
-
'guilder'
|
99 |
-
'krona'
|
100 |
-
'lira'
|
101 |
-
'peseta'
|
102 |
-
'peso'
|
103 |
-
'pound'
|
104 |
-
'real'
|
105 |
-
'ruble'
|
106 |
-
'rupee'
|
107 |
'indian_rupee' => '₹ ' . _x( 'Rupee (Indian)', 'Currency Symbol', 'happy-elementor-addons' ),
|
108 |
-
'shekel'
|
109 |
-
'won'
|
110 |
-
'yen'
|
111 |
-
'custom'
|
112 |
],
|
113 |
'default' => 'dollar',
|
114 |
]
|
89 |
'type' => Controls_Manager::SELECT,
|
90 |
'label_block' => false,
|
91 |
'options' => [
|
92 |
+
'' => __( 'None', 'happy-elementor-addons' ),
|
93 |
+
'baht' => '฿ ' . _x( 'Baht', 'Currency Symbol', 'happy-elementor-addons' ),
|
94 |
+
'bdt' => '৳ ' . _x( 'BD Taka', 'Currency Symbol', 'happy-elementor-addons' ),
|
95 |
+
'dollar' => '$ ' . _x( 'Dollar', 'Currency Symbol', 'happy-elementor-addons' ),
|
96 |
+
'euro' => '€ ' . _x( 'Euro', 'Currency Symbol', 'happy-elementor-addons' ),
|
97 |
+
'franc' => '₣ ' . _x( 'Franc', 'Currency Symbol', 'happy-elementor-addons' ),
|
98 |
+
'guilder' => 'ƒ ' . _x( 'Guilder', 'Currency Symbol', 'happy-elementor-addons' ),
|
99 |
+
'krona' => 'kr ' . _x( 'Krona', 'Currency Symbol', 'happy-elementor-addons' ),
|
100 |
+
'lira' => '₤ ' . _x( 'Lira', 'Currency Symbol', 'happy-elementor-addons' ),
|
101 |
+
'peseta' => '₧ ' . _x( 'Peseta', 'Currency Symbol', 'happy-elementor-addons' ),
|
102 |
+
'peso' => '₱ ' . _x( 'Peso', 'Currency Symbol', 'happy-elementor-addons' ),
|
103 |
+
'pound' => '£ ' . _x( 'Pound Sterling', 'Currency Symbol', 'happy-elementor-addons' ),
|
104 |
+
'real' => 'R$ ' . _x( 'Real', 'Currency Symbol', 'happy-elementor-addons' ),
|
105 |
+
'ruble' => '₽ ' . _x( 'Ruble', 'Currency Symbol', 'happy-elementor-addons' ),
|
106 |
+
'rupee' => '₨ ' . _x( 'Rupee', 'Currency Symbol', 'happy-elementor-addons' ),
|
107 |
'indian_rupee' => '₹ ' . _x( 'Rupee (Indian)', 'Currency Symbol', 'happy-elementor-addons' ),
|
108 |
+
'shekel' => '₪ ' . _x( 'Shekel', 'Currency Symbol', 'happy-elementor-addons' ),
|
109 |
+
'won' => '₩ ' . _x( 'Won', 'Currency Symbol', 'happy-elementor-addons' ),
|
110 |
+
'yen' => '¥ ' . _x( 'Yen/Yuan', 'Currency Symbol', 'happy-elementor-addons' ),
|
111 |
+
'custom' => __( 'Custom', 'happy-elementor-addons' ),
|
112 |
],
|
113 |
'default' => 'dollar',
|
114 |
]
|
@@ -8,49 +8,54 @@ namespace Happy_Addons\Elementor\Widget;
|
|
8 |
|
9 |
use Elementor\Scheme_Typography;
|
10 |
use Elementor\Utils;
|
11 |
-
use Elementor\Control_Media;
|
12 |
use Elementor\Controls_Manager;
|
13 |
use Elementor\Group_Control_Border;
|
14 |
use Elementor\Group_Control_Box_Shadow;
|
15 |
use Elementor\Group_Control_Image_Size;
|
16 |
use Elementor\Group_Control_Typography;
|
17 |
-
use ParagonIE\Sodium\Core\Curve25519\Ge\P3;
|
18 |
|
19 |
defined( 'ABSPATH' ) || die();
|
20 |
|
21 |
class Review extends Base {
|
22 |
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
|
35 |
public function get_custom_help_url() {
|
36 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/review/';
|
37 |
}
|
38 |
|
39 |
/**
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
protected function register_content_controls() {
|
56 |
$this->start_controls_section(
|
@@ -61,789 +66,778 @@ class Review extends Base {
|
|
61 |
]
|
62 |
);
|
63 |
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
|
140 |
$this->end_controls_section();
|
141 |
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
$this->end_controls_section();
|
293 |
-
}
|
294 |
-
|
295 |
-
protected function register_style_controls() {
|
296 |
-
$this->start_controls_section(
|
297 |
-
'_section_ratting_style',
|
298 |
-
[
|
299 |
-
'label' => __( 'Ratting', 'happy-elementor-addons' ),
|
300 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
301 |
-
]
|
302 |
-
);
|
303 |
-
|
304 |
-
$this->add_responsive_control(
|
305 |
-
'ratting_size',
|
306 |
-
[
|
307 |
-
'label' => __( 'Size', 'happy-elementor-addons' ),
|
308 |
-
'type' => Controls_Manager::SLIDER,
|
309 |
-
'size_units' => ['px'],
|
310 |
-
'selectors' => [
|
311 |
-
'{{WRAPPER}} .ha-review-ratting' => 'font-size: {{SIZE}}{{UNIT}};',
|
312 |
-
],
|
313 |
-
]
|
314 |
-
);
|
315 |
-
|
316 |
-
$this->add_responsive_control(
|
317 |
-
'ratting_spacing',
|
318 |
-
[
|
319 |
-
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
320 |
-
'type' => Controls_Manager::SLIDER,
|
321 |
-
'size_units' => ['px'],
|
322 |
-
'selectors' => [
|
323 |
-
'{{WRAPPER}} .ha-review-ratting' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
324 |
-
],
|
325 |
-
]
|
326 |
-
);
|
327 |
-
|
328 |
-
$this->add_responsive_control(
|
329 |
-
'ratting_padding',
|
330 |
-
[
|
331 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
332 |
-
'type' => Controls_Manager::DIMENSIONS,
|
333 |
-
'size_units' => [ 'px', 'em', '%' ],
|
334 |
-
'selectors' => [
|
335 |
-
'{{WRAPPER}} .ha-review-ratting' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
336 |
-
],
|
337 |
-
]
|
338 |
-
);
|
339 |
-
|
340 |
-
$this->add_control(
|
341 |
-
'ratting_color',
|
342 |
-
[
|
343 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
344 |
-
'type' => Controls_Manager::COLOR,
|
345 |
-
'selectors' => [
|
346 |
-
'{{WRAPPER}} .ha-review-ratting' => 'color: {{VALUE}};',
|
347 |
-
],
|
348 |
-
]
|
349 |
-
);
|
350 |
-
|
351 |
-
$this->add_control(
|
352 |
-
'ratting_bg_color',
|
353 |
-
[
|
354 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
355 |
-
'type' => Controls_Manager::COLOR,
|
356 |
-
'selectors' => [
|
357 |
-
'{{WRAPPER}} .ha-review-ratting' => 'background-color: {{VALUE}};',
|
358 |
-
],
|
359 |
-
]
|
360 |
-
);
|
361 |
-
|
362 |
-
$this->add_group_control(
|
363 |
-
Group_Control_Border::get_type(),
|
364 |
-
[
|
365 |
-
'name' => 'ratting_border',
|
366 |
-
'selector' => '{{WRAPPER}} .ha-review-ratting',
|
367 |
-
]
|
368 |
-
);
|
369 |
-
|
370 |
-
$this->add_control(
|
371 |
-
'ratting_border_radius',
|
372 |
-
[
|
373 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
374 |
-
'type' => Controls_Manager::DIMENSIONS,
|
375 |
-
'size_units' => [ 'px', '%' ],
|
376 |
-
'selectors' => [
|
377 |
-
'{{WRAPPER}} .ha-review-ratting' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
378 |
-
],
|
379 |
-
]
|
380 |
-
);
|
381 |
-
|
382 |
-
$this->end_controls_section();
|
383 |
-
|
384 |
-
$this->start_controls_section(
|
385 |
-
'_section_review_style',
|
386 |
-
[
|
387 |
-
'label' => __( 'Review & Reviewer', 'happy-elementor-addons' ),
|
388 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
389 |
-
]
|
390 |
-
);
|
391 |
-
|
392 |
-
$this->add_responsive_control(
|
393 |
-
'body_padding',
|
394 |
-
[
|
395 |
-
'label' => __( 'Text Box Padding', 'happy-elementor-addons' ),
|
396 |
-
'type' => Controls_Manager::DIMENSIONS,
|
397 |
-
'size_units' => [ 'px', 'em', '%' ],
|
398 |
-
'selectors' => [
|
399 |
-
'{{WRAPPER}} .ha-review-body' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
400 |
-
],
|
401 |
-
]
|
402 |
-
);
|
403 |
-
|
404 |
-
$this->add_control(
|
405 |
-
'_heading_name',
|
406 |
-
[
|
407 |
-
'type' => Controls_Manager::HEADING,
|
408 |
-
'label' => __( 'Name', 'happy-elementor-addons' ),
|
409 |
-
'separator' => 'before'
|
410 |
-
]
|
411 |
-
);
|
412 |
-
|
413 |
-
$this->add_responsive_control(
|
414 |
-
'title_spacing',
|
415 |
-
[
|
416 |
-
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
417 |
-
'type' => Controls_Manager::SLIDER,
|
418 |
-
'size_units' => ['px'],
|
419 |
-
'selectors' => [
|
420 |
-
'{{WRAPPER}} .ha-review-reviewer' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
421 |
-
],
|
422 |
-
]
|
423 |
-
);
|
424 |
-
|
425 |
-
$this->add_control(
|
426 |
-
'name_color',
|
427 |
-
[
|
428 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
429 |
-
'type' => Controls_Manager::COLOR,
|
430 |
-
'selectors' => [
|
431 |
-
'{{WRAPPER}} .ha-review-reviewer' => 'color: {{VALUE}};',
|
432 |
-
],
|
433 |
-
]
|
434 |
-
);
|
435 |
-
|
436 |
-
$this->add_group_control(
|
437 |
-
Group_Control_Typography::get_type(),
|
438 |
-
[
|
439 |
-
'name' => 'name_typography',
|
440 |
-
'selector' => '{{WRAPPER}} .ha-review-reviewer',
|
441 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_2,
|
442 |
-
]
|
443 |
-
);
|
444 |
-
|
445 |
-
$this->add_control(
|
446 |
-
'_heading_job_title',
|
447 |
-
[
|
448 |
-
'type' => Controls_Manager::HEADING,
|
449 |
-
'label' => __( 'Job Title', 'happy-elementor-addons' ),
|
450 |
-
'separator' => 'before'
|
451 |
-
]
|
452 |
-
);
|
453 |
-
|
454 |
-
$this->add_responsive_control(
|
455 |
-
'job_title_spacing',
|
456 |
-
[
|
457 |
-
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
458 |
-
'type' => Controls_Manager::SLIDER,
|
459 |
-
'size_units' => ['px'],
|
460 |
-
'selectors' => [
|
461 |
-
'{{WRAPPER}} .ha-review-position' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
462 |
-
],
|
463 |
-
]
|
464 |
-
);
|
465 |
-
|
466 |
-
$this->add_control(
|
467 |
-
'job_title_color',
|
468 |
-
[
|
469 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
470 |
-
'type' => Controls_Manager::COLOR,
|
471 |
-
'selectors' => [
|
472 |
-
'{{WRAPPER}} .ha-review-position' => 'color: {{VALUE}};',
|
473 |
-
],
|
474 |
-
]
|
475 |
-
);
|
476 |
-
|
477 |
-
$this->add_group_control(
|
478 |
-
Group_Control_Typography::get_type(),
|
479 |
-
[
|
480 |
-
'name' => 'job_title_typography',
|
481 |
-
'selector' => '{{WRAPPER}} .ha-review-position',
|
482 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
483 |
-
]
|
484 |
-
);
|
485 |
-
|
486 |
-
$this->add_control(
|
487 |
-
'_heading_review',
|
488 |
-
[
|
489 |
-
'type' => Controls_Manager::HEADING,
|
490 |
-
'label' => __( 'Review', 'happy-elementor-addons' ),
|
491 |
-
'separator' => 'before'
|
492 |
-
]
|
493 |
-
);
|
494 |
-
|
495 |
-
$this->add_responsive_control(
|
496 |
-
'review_spacing',
|
497 |
-
[
|
498 |
-
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
499 |
-
'type' => Controls_Manager::SLIDER,
|
500 |
-
'size_units' => ['px'],
|
501 |
-
'selectors' => [
|
502 |
-
'{{WRAPPER}} .ha-review-desc' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
503 |
-
],
|
504 |
-
]
|
505 |
-
);
|
506 |
-
|
507 |
-
$this->add_control(
|
508 |
-
'review_color',
|
509 |
-
[
|
510 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
511 |
-
'type' => Controls_Manager::COLOR,
|
512 |
-
'selectors' => [
|
513 |
-
'{{WRAPPER}} .ha-review-desc' => 'color: {{VALUE}};',
|
514 |
-
],
|
515 |
-
]
|
516 |
-
);
|
517 |
-
|
518 |
-
$this->add_group_control(
|
519 |
-
Group_Control_Typography::get_type(),
|
520 |
-
[
|
521 |
-
'name' => 'review_typography',
|
522 |
-
'selector' => '{{WRAPPER}} .ha-review-desc',
|
523 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
524 |
-
]
|
525 |
-
);
|
526 |
-
|
527 |
-
$this->end_controls_section();
|
528 |
-
|
529 |
-
$this->start_controls_section(
|
530 |
-
'_section_photo_style',
|
531 |
-
[
|
532 |
-
'label' => __( 'Photo', 'happy-elementor-addons' ),
|
533 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
534 |
-
]
|
535 |
-
);
|
536 |
-
|
537 |
-
$this->add_responsive_control(
|
538 |
-
'image_width',
|
539 |
-
[
|
540 |
-
'label' => __( 'Width', 'happy-elementor-addons' ),
|
541 |
-
'type' => Controls_Manager::SLIDER,
|
542 |
-
'size_units' => [ 'px', '%' ],
|
543 |
-
'range' => [
|
544 |
-
'px' => [
|
545 |
-
'min' => 70,
|
546 |
-
'max' => 500,
|
547 |
-
],
|
548 |
-
'%' => [
|
549 |
-
'min' => 10,
|
550 |
-
'max' => 100,
|
551 |
-
],
|
552 |
-
],
|
553 |
-
'selectors' => [
|
554 |
-
'{{WRAPPER}} .ha-review-figure' => 'flex: 0 0 {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}};',
|
555 |
-
'{{WRAPPER}}.ha-review--right .ha-review-body, {{WRAPPER}}.ha-review--left .ha-review-body' => 'flex: 0 0 calc(100% - {{SIZE || 150}}{{UNIT}}); max-width: calc(100% - {{SIZE || 150}}{{UNIT}});',
|
556 |
-
],
|
557 |
-
]
|
558 |
-
);
|
559 |
-
|
560 |
-
$this->add_responsive_control(
|
561 |
-
'image_height',
|
562 |
-
[
|
563 |
-
'label' => __( 'Height', 'happy-elementor-addons' ),
|
564 |
-
'type' => Controls_Manager::SLIDER,
|
565 |
-
'size_units' => [ 'px' ],
|
566 |
-
'range' => [
|
567 |
-
'px' => [
|
568 |
-
'min' => 70,
|
569 |
-
'max' => 500,
|
570 |
-
],
|
571 |
-
],
|
572 |
-
'selectors' => [
|
573 |
-
'{{WRAPPER}} .ha-review-figure' => 'height: {{SIZE}}{{UNIT}};',
|
574 |
-
],
|
575 |
-
]
|
576 |
-
);
|
577 |
-
|
578 |
-
$this->add_control(
|
579 |
-
'offset_toggle',
|
580 |
-
[
|
581 |
-
'label' => __( 'Offset', 'happy-elementor-addons' ),
|
582 |
-
'type' => Controls_Manager::POPOVER_TOGGLE,
|
583 |
-
'label_off' => __( 'None', 'happy-elementor-addons' ),
|
584 |
-
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
585 |
-
'return_value' => 'yes',
|
586 |
-
]
|
587 |
-
);
|
588 |
-
|
589 |
-
$this->start_popover();
|
590 |
-
|
591 |
-
$this->add_responsive_control(
|
592 |
-
'image_offset_x',
|
593 |
-
[
|
594 |
-
'label' => __( 'Offset X', 'happy-elementor-addons' ),
|
595 |
-
'type' => Controls_Manager::SLIDER,
|
596 |
-
'size_units' => ['px'],
|
597 |
-
'condition' => [
|
598 |
-
'offset_toggle' => 'yes'
|
599 |
-
],
|
600 |
-
'range' => [
|
601 |
-
'px' => [
|
602 |
-
'min' => -1000,
|
603 |
-
'max' => 1000,
|
604 |
-
],
|
605 |
-
],
|
606 |
-
'render_type' => 'ui'
|
607 |
-
]
|
608 |
-
);
|
609 |
-
|
610 |
-
$this->add_responsive_control(
|
611 |
-
'image_offset_y',
|
612 |
-
[
|
613 |
-
'label' => __( 'Offset Y', 'happy-elementor-addons' ),
|
614 |
-
'type' => Controls_Manager::SLIDER,
|
615 |
-
'size_units' => ['px'],
|
616 |
-
'condition' => [
|
617 |
-
'offset_toggle' => 'yes'
|
618 |
-
],
|
619 |
-
'range' => [
|
620 |
-
'px' => [
|
621 |
-
'min' => -1000,
|
622 |
-
'max' => 1000,
|
623 |
-
],
|
624 |
-
],
|
625 |
-
'selectors' => [
|
626 |
-
// Left image position styles
|
627 |
-
'(desktop){{WRAPPER}}.ha-review--left .ha-review-body' => 'margin-left: {{image_offset_x.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width.SIZE || 150}}{{image_width.UNIT}}) + (-1 * {{image_offset_x.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width.SIZE || 150}}{{image_width.UNIT}}) + (-1 * {{image_offset_x.SIZE || 0}}{{UNIT}}));',
|
628 |
-
'(tablet){{WRAPPER}}.ha-review--left .ha-review-body' => 'margin-left: {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width_tablet.SIZE || 150}}{{image_width_tablet.UNIT}}) + (-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width_tablet.SIZE || 150}}{{image_width_tablet.UNIT}}) + (-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}));',
|
629 |
-
'(mobile){{WRAPPER}}.ha-review--left .ha-review-body' => 'margin-left: {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}; flex: 0 0 calc((100% - {{image_width_mobile.SIZE || 150}}{{image_width_mobile.UNIT}}) + (-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}})); max-width: calc((100% - {{image_width_mobile.SIZE || 150}}{{image_width_mobile.UNIT}}) + (-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}));',
|
630 |
-
// Image right position styles
|
631 |
-
'(desktop){{WRAPPER}}.ha-review--right .ha-review-body' => 'margin-right: calc(-1 * {{image_offset_x.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width.SIZE || 150}}{{image_width.UNIT}}) + {{image_offset_x.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width.SIZE || 150}}{{image_width.UNIT}}) + {{image_offset_x.SIZE || 0}}{{UNIT}});',
|
632 |
-
'(tablet){{WRAPPER}}.ha-review--right .ha-review-body' => 'margin-right: calc(-1 * {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width_tablet.SIZE || 150}}{{image_width_tablet.UNIT}}) + {{image_offset_x_tablet.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width_tablet.SIZE || 150}}{{image_width_tablet.UNIT}}) + {{image_offset_x_tablet.SIZE || 0}}{{UNIT}});',
|
633 |
-
'(mobile){{WRAPPER}}.ha-review--right .ha-review-body' => 'margin-right: calc(-1 * {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}); flex: 0 0 calc((100% - {{image_width_mobile.SIZE || 150}}{{image_width_mobile.UNIT}}) + {{image_offset_x_mobile.SIZE || 0}}{{UNIT}}); max-width: calc((100% - {{image_width_mobile.SIZE || 150}}{{image_width_mobile.UNIT}}) + {{image_offset_x_mobile.SIZE || 0}}{{UNIT}});',
|
634 |
-
// Image translate styles
|
635 |
-
'(desktop){{WRAPPER}} .ha-review-figure' => '-ms-transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x.SIZE || 0}}{{UNIT}}, {{image_offset_y.SIZE || 0}}{{UNIT}});',
|
636 |
-
'(tablet){{WRAPPER}} .ha-review-figure' => '-ms-transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x_tablet.SIZE || 0}}{{UNIT}}, {{image_offset_y_tablet.SIZE || 0}}{{UNIT}});',
|
637 |
-
'(mobile){{WRAPPER}} .ha-review-figure' => '-ms-transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}}); -webkit-transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}}); transform: translate({{image_offset_x_mobile.SIZE || 0}}{{UNIT}}, {{image_offset_y_mobile.SIZE || 0}}{{UNIT}});',
|
638 |
-
// Review body styles
|
639 |
-
'{{WRAPPER}}.ha-review--top .ha-review-body' => 'margin-top: {{SIZE}}{{UNIT}};',
|
640 |
-
],
|
641 |
-
]
|
642 |
-
);
|
643 |
-
$this->end_popover();
|
644 |
-
|
645 |
-
$this->add_responsive_control(
|
646 |
-
'image_padding',
|
647 |
-
[
|
648 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
649 |
-
'type' => Controls_Manager::DIMENSIONS,
|
650 |
-
'size_units' => [ 'px', 'em', '%' ],
|
651 |
-
'selectors' => [
|
652 |
-
'{{WRAPPER}} .ha-review-figure img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
653 |
-
],
|
654 |
-
]
|
655 |
-
);
|
656 |
-
|
657 |
-
$this->add_group_control(
|
658 |
-
Group_Control_Border::get_type(),
|
659 |
-
[
|
660 |
-
'name' => 'image_border',
|
661 |
-
'selector' => '{{WRAPPER}} .ha-review-figure img',
|
662 |
-
]
|
663 |
-
);
|
664 |
-
|
665 |
-
$this->add_responsive_control(
|
666 |
-
'image_border_radius',
|
667 |
-
[
|
668 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
669 |
-
'type' => Controls_Manager::DIMENSIONS,
|
670 |
-
'size_units' => [ 'px', '%' ],
|
671 |
-
'selectors' => [
|
672 |
-
'{{WRAPPER}} .ha-review-figure img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
673 |
-
],
|
674 |
-
]
|
675 |
-
);
|
676 |
-
|
677 |
-
$this->add_group_control(
|
678 |
-
Group_Control_Box_Shadow::get_type(),
|
679 |
-
[
|
680 |
-
'name' => 'image_box_shadow',
|
681 |
-
'exclude' => [
|
682 |
-
'box_shadow_position',
|
683 |
-
],
|
684 |
-
'selector' => '{{WRAPPER}} .ha-review-figure img',
|
685 |
-
]
|
686 |
-
);
|
687 |
-
|
688 |
-
$this->end_controls_section();
|
689 |
-
}
|
690 |
|
691 |
protected function render() {
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
|
723 |
-
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
738 |
-
|
739 |
-
|
740 |
-
|
741 |
-
|
742 |
-
|
743 |
-
|
744 |
-
|
745 |
-
|
746 |
-
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
-
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
777 |
-
|
778 |
-
|
779 |
-
|
780 |
-
|
781 |
-
|
782 |
-
|
783 |
-
|
784 |
-
|
785 |
-
|
786 |
-
|
787 |
-
|
788 |
-
|
789 |
-
|
790 |
-
|
791 |
-
|
792 |
-
|
793 |
-
|
794 |
-
|
795 |
-
|
796 |
-
|
797 |
-
|
798 |
-
|
799 |
-
|
800 |
-
|
801 |
-
|
802 |
-
|
803 |
-
|
804 |
-
|
805 |
-
|
806 |
-
|
807 |
-
|
808 |
-
|
809 |
-
|
810 |
-
|
811 |
-
|
812 |
-
|
813 |
-
|
814 |
-
|
815 |
-
|
816 |
-
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
824 |
-
|
825 |
-
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
833 |
-
|
834 |
-
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
840 |
-
|
841 |
-
|
842 |
-
|
843 |
-
|
844 |
-
|
845 |
-
</div>
|
846 |
-
<?php
|
847 |
-
}
|
848 |
|
849 |
}
|
8 |
|
9 |
use Elementor\Scheme_Typography;
|
10 |
use Elementor\Utils;
|
|
|
11 |
use Elementor\Controls_Manager;
|
12 |
use Elementor\Group_Control_Border;
|
13 |
use Elementor\Group_Control_Box_Shadow;
|
14 |
use Elementor\Group_Control_Image_Size;
|
15 |
use Elementor\Group_Control_Typography;
|
|
|
16 |
|
17 |
defined( 'ABSPATH' ) || die();
|
18 |
|
19 |
class Review extends Base {
|
20 |
|
21 |
+
/**
|
22 |
+
* Get widget title.
|
23 |
+
*
|
24 |
+
* @since 1.0.0
|
25 |
+
* @access public
|
26 |
+
*
|
27 |
+
* @return string Widget title.
|
28 |
+
*/
|
29 |
+
public function get_title() {
|
30 |
+
return __( 'Review', 'happy-elementor-addons' );
|
31 |
+
}
|
32 |
|
33 |
public function get_custom_help_url() {
|
34 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/review/';
|
35 |
}
|
36 |
|
37 |
/**
|
38 |
+
* Get widget icon.
|
39 |
+
*
|
40 |
+
* @since 1.0.0
|
41 |
+
* @access public
|
42 |
+
*
|
43 |
+
* @return string Widget icon.
|
44 |
+
*/
|
45 |
+
public function get_icon() {
|
46 |
+
return 'hm hm-review';
|
47 |
+
}
|
48 |
+
|
49 |
+
public function get_keywords() {
|
50 |
+
return [ 'review', 'comment', 'feedback', 'testimonial' ];
|
51 |
+
}
|
52 |
+
|
53 |
+
public function get_style_depends() {
|
54 |
+
return [
|
55 |
+
'elementor-icons-fa-solid',
|
56 |
+
'elementor-icons-fa-regular',
|
57 |
+
];
|
58 |
+
}
|
59 |
|
60 |
protected function register_content_controls() {
|
61 |
$this->start_controls_section(
|
66 |
]
|
67 |
);
|
68 |
|
69 |
+
$this->add_control(
|
70 |
+
'ratting',
|
71 |
+
[
|
72 |
+
'label' => __( 'Ratting', 'happy-elementor-addons' ),
|
73 |
+
'type' => Controls_Manager::SLIDER,
|
74 |
+
'default' => [
|
75 |
+
'unit' => 'px',
|
76 |
+
'size' => 4.2,
|
77 |
+
],
|
78 |
+
'size_units' => [ 'px' ],
|
79 |
+
'range' => [
|
80 |
+
'px' => [
|
81 |
+
'min' => 0,
|
82 |
+
'max' => 5,
|
83 |
+
'step' => .5,
|
84 |
+
],
|
85 |
+
],
|
86 |
+
'dynamic' => [
|
87 |
+
'active' => true,
|
88 |
+
]
|
89 |
+
]
|
90 |
+
);
|
91 |
+
|
92 |
+
$this->add_control(
|
93 |
+
'ratting_style',
|
94 |
+
[
|
95 |
+
'label' => __( 'Ratting Style', 'happy-elementor-addons' ),
|
96 |
+
'type' => Controls_Manager::SELECT,
|
97 |
+
'options' => [
|
98 |
+
'star' => __( 'Star', 'happy-elementor-addons' ),
|
99 |
+
'num' => __( 'Number', 'happy-elementor-addons' ),
|
100 |
+
],
|
101 |
+
'default' => 'star',
|
102 |
+
'style_transfer' => true,
|
103 |
+
]
|
104 |
+
);
|
105 |
+
|
106 |
+
$this->add_control(
|
107 |
+
'review',
|
108 |
+
[
|
109 |
+
'label' => __( 'Review', 'happy-elementor-addons' ),
|
110 |
+
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
111 |
+
'type' => Controls_Manager::TEXTAREA,
|
112 |
+
'default' => __( 'Happy reviewer is super excited being part of happy addons family', 'happy-elementor-addons' ),
|
113 |
+
'placeholder' => __( 'Type amazing review from happy reviewer', 'happy-elementor-addons' ),
|
114 |
+
'separator' => 'before',
|
115 |
+
'dynamic' => [
|
116 |
+
'active' => true,
|
117 |
+
]
|
118 |
+
]
|
119 |
+
);
|
120 |
+
|
121 |
+
$this->add_control(
|
122 |
+
'review_position',
|
123 |
+
[
|
124 |
+
'label' => __( 'Review Position', 'happy-elementor-addons' ),
|
125 |
+
'type' => Controls_Manager::SELECT,
|
126 |
+
'options' => [
|
127 |
+
'before' => __( 'Before Ratting', 'happy-elementor-addons' ),
|
128 |
+
'after' => __( 'After Ratting', 'happy-elementor-addons' ),
|
129 |
+
],
|
130 |
+
'default' => 'before',
|
131 |
+
'style_transfer' => true,
|
132 |
+
]
|
133 |
+
);
|
134 |
+
|
135 |
+
$this->add_control(
|
136 |
+
'review_for',
|
137 |
+
[
|
138 |
+
'label' => __( 'Review For', 'happy-elementor-addons' ),
|
139 |
+
'type' => Controls_Manager::TEXT,
|
140 |
+
'placeholder' => __( 'Movie, Games, Software name etc.', 'happy-elementor-addons' ),
|
141 |
+
'description' => __( '[This field is only for structured data (schema.org) purpose] Obviously this review belongs to something like Movie, Games, Software or Service. So type the name of that thing.', 'happy-elementor-addons' ),
|
142 |
+
]
|
143 |
+
);
|
144 |
+
|
145 |
+
$this->end_controls_section();
|
146 |
+
|
147 |
+
$this->start_controls_section(
|
148 |
+
'_section_reviewer',
|
149 |
+
[
|
150 |
+
'label' => __( 'Reviewer', 'happy-elementor-addons' ),
|
151 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
152 |
+
]
|
153 |
+
);
|
154 |
+
|
155 |
+
$this->add_control(
|
156 |
+
'image',
|
157 |
+
[
|
158 |
+
'label' => __( 'Photo', 'happy-elementor-addons' ),
|
159 |
+
'type' => Controls_Manager::MEDIA,
|
160 |
+
'default' => [
|
161 |
+
'url' => Utils::get_placeholder_image_src(),
|
162 |
+
],
|
163 |
+
'dynamic' => [
|
164 |
+
'active' => true,
|
165 |
+
]
|
166 |
+
]
|
167 |
+
);
|
168 |
+
|
169 |
+
$this->add_group_control(
|
170 |
+
Group_Control_Image_Size::get_type(),
|
171 |
+
[
|
172 |
+
'name' => 'thumbnail',
|
173 |
+
'default' => 'large',
|
174 |
+
'separator' => 'none',
|
175 |
+
]
|
176 |
+
);
|
177 |
+
|
178 |
+
$this->add_control(
|
179 |
+
'image_position',
|
180 |
+
[
|
181 |
+
'label' => __( 'Image Position', 'happy-elementor-addons' ),
|
182 |
+
'type' => Controls_Manager::CHOOSE,
|
183 |
+
'label_block' => false,
|
184 |
+
'options' => [
|
185 |
+
'left' => [
|
186 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
187 |
+
'icon' => 'eicon-h-align-left',
|
188 |
+
],
|
189 |
+
'top' => [
|
190 |
+
'title' => __( 'Top', 'happy-elementor-addons' ),
|
191 |
+
'icon' => 'eicon-v-align-top',
|
192 |
+
],
|
193 |
+
'right' => [
|
194 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
195 |
+
'icon' => 'eicon-h-align-right',
|
196 |
+
],
|
197 |
+
],
|
198 |
+
'default' => 'top',
|
199 |
+
'toggle' => false,
|
200 |
+
'prefix_class' => 'ha-review--',
|
201 |
+
'style_transfer' => true,
|
202 |
+
]
|
203 |
+
);
|
204 |
+
|
205 |
+
$this->add_control(
|
206 |
+
'title',
|
207 |
+
[
|
208 |
+
'label' => __( 'Name', 'happy-elementor-addons' ),
|
209 |
+
'label_block' => true,
|
210 |
+
'type' => Controls_Manager::TEXT,
|
211 |
+
'default' => 'Happy Reviewer',
|
212 |
+
'placeholder' => __( 'Type Reviewer Name', 'happy-elementor-addons' ),
|
213 |
+
'separator' => 'before',
|
214 |
+
'dynamic' => [
|
215 |
+
'active' => true,
|
216 |
+
]
|
217 |
+
]
|
218 |
+
);
|
219 |
+
|
220 |
+
$this->add_control(
|
221 |
+
'job_title',
|
222 |
+
[
|
223 |
+
'label' => __( 'Job Title', 'happy-elementor-addons' ),
|
224 |
+
'label_block' => true,
|
225 |
+
'type' => Controls_Manager::TEXT,
|
226 |
+
'default' => __( 'Happy Officer', 'happy-elementor-addons' ),
|
227 |
+
'placeholder' => __( 'Type Reviewer Job Title', 'happy-elementor-addons' ),
|
228 |
+
'dynamic' => [
|
229 |
+
'active' => true,
|
230 |
+
]
|
231 |
+
]
|
232 |
+
);
|
233 |
+
|
234 |
+
$this->add_responsive_control(
|
235 |
+
'align',
|
236 |
+
[
|
237 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
238 |
+
'type' => Controls_Manager::CHOOSE,
|
239 |
+
'options' => [
|
240 |
+
'left' => [
|
241 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
242 |
+
'icon' => 'eicon-text-align-left',
|
243 |
+
],
|
244 |
+
'center' => [
|
245 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
246 |
+
'icon' => 'eicon-text-align-center',
|
247 |
+
],
|
248 |
+
'right' => [
|
249 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
250 |
+
'icon' => 'eicon-text-align-right',
|
251 |
+
],
|
252 |
+
'justify' => [
|
253 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
254 |
+
'icon' => 'eicon-text-align-justify',
|
255 |
+
],
|
256 |
+
],
|
257 |
+
'toggle' => true,
|
258 |
+
'separator' => 'before',
|
259 |
+
'selectors' => [
|
260 |
+
'{{WRAPPER}} .elementor-widget-container' => 'text-align: {{VALUE}};'
|
261 |
+
]
|
262 |
+
]
|
263 |
+
);
|
264 |
+
|
265 |
+
$this->add_control(
|
266 |
+
'title_tag',
|
267 |
+
[
|
268 |
+
'label' => __( 'Name HTML Tag', 'happy-elementor-addons' ),
|
269 |
+
'type' => Controls_Manager::CHOOSE,
|
270 |
+
'options' => [
|
271 |
+
'h1' => [
|
272 |
+
'title' => __( 'H1', 'happy-elementor-addons' ),
|
273 |
+
'icon' => 'eicon-editor-h1'
|
274 |
+
],
|
275 |
+
'h2' => [
|
276 |
+
'title' => __( 'H2', 'happy-elementor-addons' ),
|
277 |
+
'icon' => 'eicon-editor-h2'
|
278 |
+
],
|
279 |
+
'h3' => [
|
280 |
+
'title' => __( 'H3', 'happy-elementor-addons' ),
|
281 |
+
'icon' => 'eicon-editor-h3'
|
282 |
+
],
|
283 |
+
'h4' => [
|
284 |
+
'title' => __( 'H4', 'happy-elementor-addons' ),
|
285 |
+
'icon' => 'eicon-editor-h4'
|
286 |
+
],
|
287 |
+
'h5' => [
|
288 |
+
'title' => __( 'H5', 'happy-elementor-addons' ),
|
289 |
+
'icon' => 'eicon-editor-h5'
|
290 |
+
],
|
291 |
+
'h6' => [
|
292 |
+
'title' => __( 'H6', 'happy-elementor-addons' ),
|
293 |
+
'icon' => 'eicon-editor-h6'
|
294 |
+
]
|
295 |
+
],
|
296 |
+
'default' => 'h2',
|
297 |
+
'toggle' => false,
|
298 |
+
]
|
299 |
+
);
|
300 |
+
|
301 |
+
$this->end_controls_section();
|
302 |
+
}
|
303 |
+
|
304 |
+
protected function register_style_controls() {
|
305 |
+
$this->start_controls_section(
|
306 |
+
'_section_ratting_style',
|
307 |
+
[
|
308 |
+
'label' => __( 'Ratting', 'happy-elementor-addons' ),
|
309 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
310 |
+
]
|
311 |
+
);
|
312 |
+
|
313 |
+
$this->add_responsive_control(
|
314 |
+
'ratting_size',
|
315 |
+
[
|
316 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
317 |
+
'type' => Controls_Manager::SLIDER,
|
318 |
+
'size_units' => ['px'],
|
319 |
+
'selectors' => [
|
320 |
+
'{{WRAPPER}} .ha-review-ratting' => 'font-size: {{SIZE}}{{UNIT}};',
|
321 |
+
],
|
322 |
+
]
|
323 |
+
);
|
324 |
+
|
325 |
+
$this->add_responsive_control(
|
326 |
+
'ratting_spacing',
|
327 |
+
[
|
328 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
329 |
+
'type' => Controls_Manager::SLIDER,
|
330 |
+
'size_units' => ['px'],
|
331 |
+
'selectors' => [
|
332 |
+
'{{WRAPPER}} .ha-review-ratting' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
333 |
+
],
|
334 |
+
]
|
335 |
+
);
|
336 |
+
|
337 |
+
$this->add_responsive_control(
|
338 |
+
'ratting_padding',
|
339 |
+
[
|
340 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
341 |
+
'type' => Controls_Manager::DIMENSIONS,
|
342 |
+
'size_units' => [ 'px', 'em', '%' ],
|
343 |
+
'selectors' => [
|
344 |
+
'{{WRAPPER}} .ha-review-ratting' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
345 |
+
],
|
346 |
+
]
|
347 |
+
);
|
348 |
+
|
349 |
+
$this->add_control(
|
350 |
+
'ratting_color',
|
351 |
+
[
|
352 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
353 |
+
'type' => Controls_Manager::COLOR,
|
354 |
+
'selectors' => [
|
355 |
+
'{{WRAPPER}} .ha-review-ratting' => 'color: {{VALUE}};',
|
356 |
+
],
|
357 |
+
]
|
358 |
+
);
|
359 |
+
|
360 |
+
$this->add_control(
|
361 |
+
'ratting_bg_color',
|
362 |
+
[
|
363 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
364 |
+
'type' => Controls_Manager::COLOR,
|
365 |
+
'selectors' => [
|
366 |
+
'{{WRAPPER}} .ha-review-ratting' => 'background-color: {{VALUE}};',
|
367 |
+
],
|
368 |
+
]
|
369 |
+
);
|
370 |
+
|
371 |
+
$this->add_group_control(
|
372 |
+
Group_Control_Border::get_type(),
|
373 |
+
[
|
374 |
+
'name' => 'ratting_border',
|
375 |
+
'selector' => '{{WRAPPER}} .ha-review-ratting',
|
376 |
+
]
|
377 |
+
);
|
378 |
+
|
379 |
+
$this->add_control(
|
380 |
+
'ratting_border_radius',
|
381 |
+
[
|
382 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
383 |
+
'type' => Controls_Manager::DIMENSIONS,
|
384 |
+
'size_units' => [ 'px', '%' ],
|
385 |
+
'selectors' => [
|
386 |
+
'{{WRAPPER}} .ha-review-ratting' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
387 |
+
],
|
388 |
+
]
|
389 |
+
);
|
390 |
+
|
391 |
+
$this->end_controls_section();
|
392 |
+
|
393 |
+
$this->start_controls_section(
|
394 |
+
'_section_review_style',
|
395 |
+
[
|
396 |
+
'label' => __( 'Review & Reviewer', 'happy-elementor-addons' ),
|
397 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
398 |
+
]
|
399 |
+
);
|
400 |
+
|
401 |
+
$this->add_responsive_control(
|
402 |
+
'body_padding',
|
403 |
+
[
|
404 |
+
'label' => __( 'Text Box Padding', 'happy-elementor-addons' ),
|
405 |
+
'type' => Controls_Manager::DIMENSIONS,
|
406 |
+
'size_units' => [ 'px', 'em', '%' ],
|
407 |
+
'selectors' => [
|
408 |
+
'{{WRAPPER}} .ha-review-body' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
409 |
+
],
|
410 |
+
]
|
411 |
+
);
|
412 |
+
|
413 |
+
$this->add_control(
|
414 |
+
'_heading_name',
|
415 |
+
[
|
416 |
+
'type' => Controls_Manager::HEADING,
|
417 |
+
'label' => __( 'Name', 'happy-elementor-addons' ),
|
418 |
+
'separator' => 'before'
|
419 |
+
]
|
420 |
+
);
|
421 |
+
|
422 |
+
$this->add_responsive_control(
|
423 |
+
'title_spacing',
|
424 |
+
[
|
425 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
426 |
+
'type' => Controls_Manager::SLIDER,
|
427 |
+
'size_units' => ['px'],
|
428 |
+
'selectors' => [
|
429 |
+
'{{WRAPPER}} .ha-review-reviewer' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
430 |
+
],
|
431 |
+
]
|
432 |
+
);
|
433 |
+
|
434 |
+
$this->add_control(
|
435 |
+
'name_color',
|
436 |
+
[
|
437 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
438 |
+
'type' => Controls_Manager::COLOR,
|
439 |
+
'selectors' => [
|
440 |
+
'{{WRAPPER}} .ha-review-reviewer' => 'color: {{VALUE}};',
|
441 |
+
],
|
442 |
+
]
|
443 |
+
);
|
444 |
+
|
445 |
+
$this->add_group_control(
|
446 |
+
Group_Control_Typography::get_type(),
|
447 |
+
[
|
448 |
+
'name' => 'name_typography',
|
449 |
+
'selector' => '{{WRAPPER}} .ha-review-reviewer',
|
450 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_2,
|
451 |
+
]
|
452 |
+
);
|
453 |
+
|
454 |
+
$this->add_control(
|
455 |
+
'_heading_job_title',
|
456 |
+
[
|
457 |
+
'type' => Controls_Manager::HEADING,
|
458 |
+
'label' => __( 'Job Title', 'happy-elementor-addons' ),
|
459 |
+
'separator' => 'before'
|
460 |
+
]
|
461 |
+
);
|
462 |
+
|
463 |
+
$this->add_responsive_control(
|
464 |
+
'job_title_spacing',
|
465 |
+
[
|
466 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
467 |
+
'type' => Controls_Manager::SLIDER,
|
468 |
+
'size_units' => ['px'],
|
469 |
+
'selectors' => [
|
470 |
+
'{{WRAPPER}} .ha-review-position' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
471 |
+
],
|
472 |
+
]
|
473 |
+
);
|
474 |
+
|
475 |
+
$this->add_control(
|
476 |
+
'job_title_color',
|
477 |
+
[
|
478 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
479 |
+
'type' => Controls_Manager::COLOR,
|
480 |
+
'selectors' => [
|
481 |
+
'{{WRAPPER}} .ha-review-position' => 'color: {{VALUE}};',
|
482 |
+
],
|
483 |
+
]
|
484 |
+
);
|
485 |
+
|
486 |
+
$this->add_group_control(
|
487 |
+
Group_Control_Typography::get_type(),
|
488 |
+
[
|
489 |
+
'name' => 'job_title_typography',
|
490 |
+
'selector' => '{{WRAPPER}} .ha-review-position',
|
491 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
492 |
+
]
|
493 |
+
);
|
494 |
+
|
495 |
+
$this->add_control(
|
496 |
+
'_heading_review',
|
497 |
+
[
|
498 |
+
'type' => Controls_Manager::HEADING,
|
499 |
+
'label' => __( 'Review', 'happy-elementor-addons' ),
|
500 |
+
'separator' => 'before'
|
501 |
+
]
|
502 |
+
);
|
503 |
+
|
504 |
+
$this->add_responsive_control(
|
505 |
+
'review_spacing',
|
506 |
+
[
|
507 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
508 |
+
'type' => Controls_Manager::SLIDER,
|
509 |
+
'size_units' => ['px'],
|
510 |
+
'selectors' => [
|
511 |
+
'{{WRAPPER}} .ha-review-desc' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
512 |
+
],
|
513 |
+
]
|
514 |
+
);
|
515 |
+
|
516 |
+
$this->add_control(
|
517 |
+
'review_color',
|
518 |
+
[
|
519 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
520 |
+
'type' => Controls_Manager::COLOR,
|
521 |
+
'selectors' => [
|
522 |
+
'{{WRAPPER}} .ha-review-desc' => 'color: {{VALUE}};',
|
523 |
+
],
|
524 |
+
]
|
525 |
+
);
|
526 |
+
|
527 |
+
$this->add_group_control(
|
528 |
+
Group_Control_Typography::get_type(),
|
529 |
+
[
|
530 |
+
'name' => 'review_typography',
|
531 |
+
'selector' => '{{WRAPPER}} .ha-review-desc',
|
532 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
533 |
+
]
|
534 |
+
);
|
535 |
|
536 |
$this->end_controls_section();
|
537 |
|
538 |
+
$this->start_controls_section(
|
539 |
+
'_section_photo_style',
|
540 |
+
[
|
541 |
+
'label' => __( 'Photo', 'happy-elementor-addons' ),
|
542 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
543 |
+
]
|
544 |
+
);
|
545 |
+
|
546 |
+
$this->add_responsive_control(
|
547 |
+
'image_width',
|
548 |
+
[
|
549 |
+
'label' => __( 'Width', 'happy-elementor-addons' ),
|
550 |
+
'type' => Controls_Manager::SLIDER,
|
551 |
+
'size_units' => [ 'px', '%' ],
|
552 |
+
'range' => [
|
553 |
+
'px' => [
|
554 |
+
'min' => 70,
|
555 |
+
'max' => 500,
|
556 |
+
],
|
557 |
+
'%' => [
|
558 |
+
'min' => 10,
|
559 |
+
'max' => 100,
|
560 |
+
],
|
561 |
+
],
|
562 |
+
'selectors' => [
|
563 |
+
'{{WRAPPER}}' => '--ha-review-media-width: {{SIZE}}{{UNIT}};',
|
564 |
+
],
|
565 |
+
]
|
566 |
+
);
|
567 |
+
|
568 |
+
$this->add_responsive_control(
|
569 |
+
'image_height',
|
570 |
+
[
|
571 |
+
'label' => __( 'Height', 'happy-elementor-addons' ),
|
572 |
+
'type' => Controls_Manager::SLIDER,
|
573 |
+
'size_units' => [ 'px' ],
|
574 |
+
'range' => [
|
575 |
+
'px' => [
|
576 |
+
'min' => 70,
|
577 |
+
'max' => 500,
|
578 |
+
],
|
579 |
+
],
|
580 |
+
'selectors' => [
|
581 |
+
'{{WRAPPER}} .ha-review-figure' => 'height: {{SIZE}}{{UNIT}};',
|
582 |
+
],
|
583 |
+
]
|
584 |
+
);
|
585 |
+
|
586 |
+
$this->add_control(
|
587 |
+
'offset_toggle',
|
588 |
+
[
|
589 |
+
'label' => __( 'Offset', 'happy-elementor-addons' ),
|
590 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
591 |
+
'label_off' => __( 'None', 'happy-elementor-addons' ),
|
592 |
+
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
593 |
+
'return_value' => 'yes',
|
594 |
+
]
|
595 |
+
);
|
596 |
+
|
597 |
+
$this->start_popover();
|
598 |
+
|
599 |
+
$this->add_responsive_control(
|
600 |
+
'image_offset_x',
|
601 |
+
[
|
602 |
+
'label' => __( 'Offset X', 'happy-elementor-addons' ),
|
603 |
+
'type' => Controls_Manager::SLIDER,
|
604 |
+
'size_units' => ['px'],
|
605 |
+
'condition' => [
|
606 |
+
'offset_toggle' => 'yes'
|
607 |
+
],
|
608 |
+
'range' => [
|
609 |
+
'px' => [
|
610 |
+
'min' => -1000,
|
611 |
+
'max' => 1000,
|
612 |
+
],
|
613 |
+
],
|
614 |
+
'selectors' => [
|
615 |
+
'{{WRAPPER}}' => '--ha-review-media-offset-x: {{SIZE}}{{UNIT}};'
|
616 |
+
]
|
617 |
+
]
|
618 |
+
);
|
619 |
+
|
620 |
+
$this->add_responsive_control(
|
621 |
+
'image_offset_y',
|
622 |
+
[
|
623 |
+
'label' => __( 'Offset Y', 'happy-elementor-addons' ),
|
624 |
+
'type' => Controls_Manager::SLIDER,
|
625 |
+
'size_units' => ['px'],
|
626 |
+
'condition' => [
|
627 |
+
'offset_toggle' => 'yes'
|
628 |
+
],
|
629 |
+
'range' => [
|
630 |
+
'px' => [
|
631 |
+
'min' => -1000,
|
632 |
+
'max' => 1000,
|
633 |
+
],
|
634 |
+
],
|
635 |
+
'selectors' => [
|
636 |
+
'{{WRAPPER}}' => '--ha-review-media-offset-y: {{SIZE}}{{UNIT}};'
|
637 |
+
],
|
638 |
+
]
|
639 |
+
);
|
640 |
+
$this->end_popover();
|
641 |
+
|
642 |
+
$this->add_responsive_control(
|
643 |
+
'image_padding',
|
644 |
+
[
|
645 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
646 |
+
'type' => Controls_Manager::DIMENSIONS,
|
647 |
+
'size_units' => [ 'px', 'em', '%' ],
|
648 |
+
'selectors' => [
|
649 |
+
'{{WRAPPER}} .ha-review-figure img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
650 |
+
],
|
651 |
+
]
|
652 |
+
);
|
653 |
+
|
654 |
+
$this->add_group_control(
|
655 |
+
Group_Control_Border::get_type(),
|
656 |
+
[
|
657 |
+
'name' => 'image_border',
|
658 |
+
'selector' => '{{WRAPPER}} .ha-review-figure img',
|
659 |
+
]
|
660 |
+
);
|
661 |
+
|
662 |
+
$this->add_responsive_control(
|
663 |
+
'image_border_radius',
|
664 |
+
[
|
665 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
666 |
+
'type' => Controls_Manager::DIMENSIONS,
|
667 |
+
'size_units' => [ 'px', '%' ],
|
668 |
+
'selectors' => [
|
669 |
+
'{{WRAPPER}} .ha-review-figure img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
670 |
+
],
|
671 |
+
]
|
672 |
+
);
|
673 |
+
|
674 |
+
$this->add_group_control(
|
675 |
+
Group_Control_Box_Shadow::get_type(),
|
676 |
+
[
|
677 |
+
'name' => 'image_box_shadow',
|
678 |
+
'exclude' => [
|
679 |
+
'box_shadow_position',
|
680 |
+
],
|
681 |
+
'selector' => '{{WRAPPER}} .ha-review-figure img',
|
682 |
+
]
|
683 |
+
);
|
684 |
+
|
685 |
+
$this->end_controls_section();
|
686 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
|
688 |
protected function render() {
|
689 |
+
$settings = $this->get_settings_for_display();
|
690 |
+
|
691 |
+
$this->add_render_attribute( '_wrapper', 'itemscope' );
|
692 |
+
$this->add_render_attribute( '_wrapper', 'itemtype', 'https://schema.org/Review' );
|
693 |
+
|
694 |
+
$this->add_inline_editing_attributes( 'title', 'basic' );
|
695 |
+
$this->add_render_attribute( 'title', 'class', 'ha-review-reviewer' );
|
696 |
+
$this->add_render_attribute( 'title', 'itemprop', 'author' );
|
697 |
+
$this->add_render_attribute( 'title', 'itemscope', '' );
|
698 |
+
$this->add_render_attribute( 'title', 'itemtype', 'https://schema.org/Person' );
|
699 |
+
|
700 |
+
$this->add_inline_editing_attributes( 'job_title', 'basic' );
|
701 |
+
$this->add_render_attribute( 'job_title', 'class', 'ha-review-position' );
|
702 |
+
|
703 |
+
$this->add_inline_editing_attributes( 'review', 'intermediate' );
|
704 |
+
$this->add_render_attribute( 'review', 'class', 'ha-review-desc' );
|
705 |
+
$this->add_render_attribute( 'review', 'itemprop', 'reviewBody' );
|
706 |
+
|
707 |
+
$this->add_render_attribute( 'ratting', 'class', [
|
708 |
+
'ha-review-ratting',
|
709 |
+
'ha-review-ratting--' . $settings['ratting_style']
|
710 |
+
] );
|
711 |
+
|
712 |
+
$this->add_render_attribute( 'ratting', 'itemprop', 'reviewRating' );
|
713 |
+
$this->add_render_attribute( 'ratting', 'itemscope' );
|
714 |
+
$this->add_render_attribute( 'ratting', 'itemtype', 'https://schema.org/Rating' );
|
715 |
+
|
716 |
+
$ratting = max( 0, $settings['ratting']['size'] );
|
717 |
+
?>
|
718 |
+
|
719 |
+
<?php if ( $settings['image']['url'] || $settings['image']['id'] ) :
|
720 |
+
$settings['hover_animation'] = 'disable-animation'; // hack to prevent image hover animation
|
721 |
+
?>
|
722 |
+
<figure class="ha-review-figure">
|
723 |
+
<?php echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'image' ); ?>
|
724 |
+
</figure>
|
725 |
+
<?php endif; ?>
|
726 |
+
|
727 |
+
<div class="ha-review-body">
|
728 |
+
<?php if ( $settings['review_position'] === 'before' && $settings['review'] ) : ?>
|
729 |
+
<div <?php $this->print_render_attribute_string( 'review' ); ?>>
|
730 |
+
<p><?php echo ha_kses_intermediate( $settings['review'] ); ?></p>
|
731 |
+
</div>
|
732 |
+
<?php endif; ?>
|
733 |
+
|
734 |
+
<div class="ha-review-header">
|
735 |
+
<?php if ( $settings['title' ] ) :
|
736 |
+
printf( '<%1$s %2$s>%3$s</%1$s>',
|
737 |
+
tag_escape( $settings['title_tag'] ),
|
738 |
+
$this->get_render_attribute_string( 'title' ),
|
739 |
+
ha_kses_basic( $settings['title' ] )
|
740 |
+
);
|
741 |
+
endif; ?>
|
742 |
+
|
743 |
+
<?php if ( $settings['job_title' ] ) : ?>
|
744 |
+
<div <?php $this->print_render_attribute_string( 'job_title' ); ?>><?php echo ha_kses_basic( $settings['job_title' ] ); ?></div>
|
745 |
+
<?php endif; ?>
|
746 |
+
|
747 |
+
<div <?php $this->print_render_attribute_string( 'ratting' ); ?>>
|
748 |
+
<meta itemprop="ratingValue" content="<?php echo esc_attr( $ratting ); ?>">
|
749 |
+
|
750 |
+
<?php if ( $settings['ratting_style'] === 'num' ) : ?>
|
751 |
+
<?php echo esc_html( $ratting ); ?> <i class="fas fa-star" aria-hidden="true"></i>
|
752 |
+
<?php else :
|
753 |
+
for ( $i = 1; $i <= 5; ++$i ) :
|
754 |
+
if ( $i <= $ratting ) {
|
755 |
+
echo '<i class="fas fa-star" aria-hidden="true"></i>';
|
756 |
+
} else {
|
757 |
+
echo '<i class="far fa-star" aria-hidden="true"></i>';
|
758 |
+
}
|
759 |
+
endfor;
|
760 |
+
endif; ?>
|
761 |
+
</div>
|
762 |
+
</div>
|
763 |
+
|
764 |
+
<?php if ( $settings['review_position'] === 'after' && $settings['review'] ) : ?>
|
765 |
+
<div <?php $this->print_render_attribute_string( 'review' ); ?>>
|
766 |
+
<p><?php echo ha_kses_intermediate( $settings['review'] ); ?></p>
|
767 |
+
</div>
|
768 |
+
<?php endif; ?>
|
769 |
+
</div>
|
770 |
+
|
771 |
+
<span class="ha-screen-reader-text" itemprop="itemReviewed" itemscope itemtype="https://schema.org/Thing">
|
772 |
+
<span itemprop="name"><?php echo esc_html( $settings['review_for'] ); ?></span>
|
773 |
+
</span>
|
774 |
+
<?php
|
775 |
+
}
|
776 |
+
|
777 |
+
public function _content_template() {
|
778 |
+
?>
|
779 |
+
<#
|
780 |
+
view.addInlineEditingAttributes( 'title', 'basic' );
|
781 |
+
view.addRenderAttribute( 'title', 'class', 'ha-review-reviewer' );
|
782 |
+
|
783 |
+
view.addInlineEditingAttributes( 'job_title', 'basic' );
|
784 |
+
view.addRenderAttribute( 'job_title', 'class', 'ha-review-position' );
|
785 |
+
|
786 |
+
view.addInlineEditingAttributes( 'review', 'intermediate' );
|
787 |
+
view.addRenderAttribute( 'review', 'class', 'ha-review-desc' );
|
788 |
+
|
789 |
+
var ratting = Math.max(0, settings.ratting.size);
|
790 |
+
|
791 |
+
if (settings.image.url || settings.image.id) {
|
792 |
+
var image = {
|
793 |
+
id: settings.image.id,
|
794 |
+
url: settings.image.url,
|
795 |
+
size: settings.thumbnail_size,
|
796 |
+
dimension: settings.thumbnail_custom_dimension,
|
797 |
+
model: view.getEditModel()
|
798 |
+
};
|
799 |
+
|
800 |
+
var image_url = elementor.imagesManager.getImageUrl( image );
|
801 |
+
#>
|
802 |
+
<figure class="ha-review-figure">
|
803 |
+
<img src="{{ image_url }}">
|
804 |
+
</figure>
|
805 |
+
<# } #>
|
806 |
+
|
807 |
+
<div class="ha-review-body">
|
808 |
+
<# if (settings.review_position === 'before' && settings.review) { #>
|
809 |
+
<div {{{ view.getRenderAttributeString( 'review' ) }}}>
|
810 |
+
<p>{{{ settings.review }}}</p>
|
811 |
+
</div>
|
812 |
+
<# } #>
|
813 |
+
<div class="ha-review-header">
|
814 |
+
<# if (settings.title) { #>
|
815 |
+
<{{ settings.title_tag }} {{{ view.getRenderAttributeString( 'title' ) }}}>{{{ settings.title }}}</{{ settings.title_tag }}>
|
816 |
+
<# } #>
|
817 |
+
<# if (settings.job_title) { #>
|
818 |
+
<div {{{ view.getRenderAttributeString( 'job_title' ) }}}>{{{ settings.job_title }}}</div>
|
819 |
+
<# } #>
|
820 |
+
<# if ( settings.ratting_style === 'num' ) { #>
|
821 |
+
<div class="ha-review-ratting ha-review-ratting--num">{{ ratting }} <i class="fa fa-star"></i></div>
|
822 |
+
<# } else { #>
|
823 |
+
<div class="ha-review-ratting ha-review-ratting--star">
|
824 |
+
<# _.each(_.range(1, 6), function(i) {
|
825 |
+
if (i <= ratting) {
|
826 |
+
print('<i class="fas fa-star"></i>');
|
827 |
+
} else {
|
828 |
+
print('<i class="far fa-star"></i>');
|
829 |
+
}
|
830 |
+
}); #>
|
831 |
+
</div>
|
832 |
+
<# } #>
|
833 |
+
</div>
|
834 |
+
<# if ( settings.review_position === 'after' && settings.review) { #>
|
835 |
+
<div {{{ view.getRenderAttributeString( 'review' ) }}}>
|
836 |
+
<p>{{{ settings.review }}}</p>
|
837 |
+
</div>
|
838 |
+
<# } #>
|
839 |
+
</div>
|
840 |
+
<?php
|
841 |
+
}
|
|
|
|
|
|
|
842 |
|
843 |
}
|
@@ -16,704 +16,756 @@ use Elementor\Scheme_Typography;
|
|
16 |
defined( 'ABSPATH' ) || die();
|
17 |
|
18 |
class Step_Flow extends Base {
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
|
31 |
public function get_custom_help_url() {
|
32 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/step-flow/';
|
33 |
}
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
|
|
|
|
|
|
|
|
240 |
],
|
241 |
'em' => [
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
|
469 |
-
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
-
|
489 |
-
|
490 |
-
|
491 |
-
|
492 |
-
|
493 |
-
|
494 |
-
|
495 |
-
|
496 |
-
|
497 |
-
|
498 |
-
|
499 |
-
|
500 |
-
|
501 |
-
|
502 |
-
|
503 |
-
|
504 |
-
|
505 |
-
|
506 |
-
|
507 |
-
|
508 |
-
|
509 |
-
|
510 |
-
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
-
|
516 |
-
|
517 |
-
|
518 |
-
|
519 |
-
|
520 |
-
|
521 |
-
|
522 |
-
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
-
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
|
533 |
-
|
534 |
-
|
535 |
-
|
536 |
-
|
537 |
-
|
538 |
-
|
539 |
-
|
540 |
-
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
|
546 |
-
|
547 |
-
|
548 |
-
|
549 |
-
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
|
561 |
-
|
562 |
-
|
563 |
-
|
564 |
-
|
565 |
-
|
566 |
-
|
567 |
-
|
568 |
-
|
569 |
-
|
570 |
-
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
|
577 |
-
|
578 |
-
|
579 |
-
|
580 |
-
|
581 |
-
|
582 |
-
|
583 |
-
|
584 |
-
|
585 |
-
|
586 |
-
|
587 |
-
|
588 |
-
|
589 |
-
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
|
594 |
-
|
595 |
-
|
596 |
-
|
597 |
-
|
598 |
-
|
599 |
-
|
600 |
-
|
601 |
-
|
602 |
-
|
603 |
-
|
604 |
-
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
614 |
-
|
615 |
-
|
616 |
-
|
617 |
-
|
618 |
-
|
619 |
-
|
620 |
-
|
621 |
-
|
622 |
-
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
627 |
-
|
628 |
-
|
629 |
-
|
630 |
-
|
631 |
-
|
632 |
-
|
633 |
-
|
634 |
-
|
635 |
-
|
636 |
-
|
637 |
-
|
638 |
-
|
639 |
-
|
640 |
-
|
641 |
-
|
642 |
-
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
|
651 |
-
|
652 |
-
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
659 |
-
|
660 |
-
|
661 |
-
|
662 |
-
|
663 |
-
|
664 |
-
|
665 |
-
|
666 |
-
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
|
671 |
-
|
672 |
-
|
673 |
-
|
674 |
-
|
675 |
-
|
676 |
-
|
677 |
-
|
678 |
-
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
-
|
684 |
-
|
685 |
-
|
686 |
-
|
687 |
-
|
688 |
-
|
689 |
-
|
690 |
-
|
691 |
-
|
692 |
-
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
|
697 |
-
|
698 |
-
|
699 |
-
|
700 |
-
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
|
705 |
-
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
718 |
|
719 |
}
|
16 |
defined( 'ABSPATH' ) || die();
|
17 |
|
18 |
class Step_Flow extends Base {
|
19 |
+
/**
|
20 |
+
* Get widget title.
|
21 |
+
*
|
22 |
+
* @since 1.0.0
|
23 |
+
* @access public
|
24 |
+
*
|
25 |
+
* @return string Widget title.
|
26 |
+
*/
|
27 |
+
public function get_title() {
|
28 |
+
return __( 'Step Flow', 'happy-elementor-addons' );
|
29 |
+
}
|
30 |
|
31 |
public function get_custom_help_url() {
|
32 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/step-flow/';
|
33 |
}
|
34 |
|
35 |
+
/**
|
36 |
+
* Get widget icon.
|
37 |
+
*
|
38 |
+
* @since 1.0.0
|
39 |
+
* @access public
|
40 |
+
*
|
41 |
+
* @return string Widget icon.
|
42 |
+
*/
|
43 |
+
public function get_icon() {
|
44 |
+
return 'hm hm-step-flow';
|
45 |
+
}
|
46 |
+
|
47 |
+
public function get_keywords() {
|
48 |
+
return [ 'step', 'flow' ];
|
49 |
+
}
|
50 |
+
|
51 |
+
protected function register_content_controls() {
|
52 |
+
$this->start_controls_section(
|
53 |
+
'_section_step',
|
54 |
+
[
|
55 |
+
'label' => __( 'Step Flow', 'happy-elementor-addons' ),
|
56 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
57 |
+
]
|
58 |
+
);
|
59 |
+
|
60 |
+
if ( ha_is_elementor_version( '<', '2.6.0' ) ) {
|
61 |
+
$this->add_control(
|
62 |
+
'icon',
|
63 |
+
[
|
64 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
65 |
+
'type' => Controls_Manager::ICON,
|
66 |
+
'label_block' => true,
|
67 |
+
'options' => ha_get_happy_icons(),
|
68 |
+
'default' => 'hm hm-finger-index',
|
69 |
+
]
|
70 |
+
);
|
71 |
+
} else {
|
72 |
+
$this->add_control(
|
73 |
+
'selected_icon',
|
74 |
+
[
|
75 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
76 |
+
'type' => Controls_Manager::ICONS,
|
77 |
+
'fa4compatibility' => 'icon',
|
78 |
+
'label_block' => true,
|
79 |
+
'default' => [
|
80 |
+
'value' => 'hm hm-finger-index',
|
81 |
+
'library' => 'happy-icons',
|
82 |
+
]
|
83 |
+
]
|
84 |
+
);
|
85 |
+
}
|
86 |
+
|
87 |
+
$this->add_control(
|
88 |
+
'badge',
|
89 |
+
[
|
90 |
+
'label' => __( 'Badge', 'happy-elementor-addons' ),
|
91 |
+
'type' => Controls_Manager::TEXT,
|
92 |
+
'placeholder' => __( 'Badge', 'happy-elementor-addons' ),
|
93 |
+
'description' => __( 'Keep it blank, if you want to remove the Badge', 'happy-elementor-addons' ),
|
94 |
+
'default' => __( 'Step 1', 'happy-elementor-addons' ),
|
95 |
+
'dynamic' => [
|
96 |
+
'active' => true,
|
97 |
+
]
|
98 |
+
]
|
99 |
+
);
|
100 |
+
|
101 |
+
$this->add_control(
|
102 |
+
'title',
|
103 |
+
[
|
104 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
105 |
+
'type' => Controls_Manager::TEXT,
|
106 |
+
'label_block' => true,
|
107 |
+
'placeholder' => __( 'Title', 'happy-elementor-addons' ),
|
108 |
+
'default' => __( 'Start Marketing', 'happy-elementor-addons' ),
|
109 |
+
'separator' => 'before',
|
110 |
+
'dynamic' => [
|
111 |
+
'active' => true,
|
112 |
+
]
|
113 |
+
]
|
114 |
+
);
|
115 |
+
|
116 |
+
$this->add_control(
|
117 |
+
'description',
|
118 |
+
[
|
119 |
+
'label' => __( 'Description', 'happy-elementor-addons' ),
|
120 |
+
'description' => ha_get_allowed_html_desc( 'intermediate' ),
|
121 |
+
'type' => Controls_Manager::TEXTAREA,
|
122 |
+
'placeholder' => __( 'Description', 'happy-elementor-addons' ),
|
123 |
+
'default' => 'consectetur adipiscing elit, sed do<br>eiusmod Lorem ipsum dolor sit amet,<br> consectetur.',
|
124 |
+
'dynamic' => [
|
125 |
+
'active' => true,
|
126 |
+
]
|
127 |
+
]
|
128 |
+
);
|
129 |
+
|
130 |
+
$this->add_control(
|
131 |
+
'link',
|
132 |
+
[
|
133 |
+
'label' => __( 'Link', 'happy-elementor-addons' ),
|
134 |
+
'type' => Controls_Manager::URL,
|
135 |
+
'placeholder' => 'https://example.com',
|
136 |
+
'dynamic' => [
|
137 |
+
'active' => true,
|
138 |
+
]
|
139 |
+
]
|
140 |
+
);
|
141 |
+
|
142 |
+
$this->add_control(
|
143 |
+
'title_tag',
|
144 |
+
[
|
145 |
+
'label' => __( 'Title HTML Tag', 'happy-elementor-addons' ),
|
146 |
+
'type' => Controls_Manager::CHOOSE,
|
147 |
+
'separator' => 'before',
|
148 |
+
'options' => [
|
149 |
+
'h1' => [
|
150 |
+
'title' => __( 'H1', 'happy-elementor-addons' ),
|
151 |
+
'icon' => 'eicon-editor-h1'
|
152 |
+
],
|
153 |
+
'h2' => [
|
154 |
+
'title' => __( 'H2', 'happy-elementor-addons' ),
|
155 |
+
'icon' => 'eicon-editor-h2'
|
156 |
+
],
|
157 |
+
'h3' => [
|
158 |
+
'title' => __( 'H3', 'happy-elementor-addons' ),
|
159 |
+
'icon' => 'eicon-editor-h3'
|
160 |
+
],
|
161 |
+
'h4' => [
|
162 |
+
'title' => __( 'H4', 'happy-elementor-addons' ),
|
163 |
+
'icon' => 'eicon-editor-h4'
|
164 |
+
],
|
165 |
+
'h5' => [
|
166 |
+
'title' => __( 'H5', 'happy-elementor-addons' ),
|
167 |
+
'icon' => 'eicon-editor-h5'
|
168 |
+
],
|
169 |
+
'h6' => [
|
170 |
+
'title' => __( 'H6', 'happy-elementor-addons' ),
|
171 |
+
'icon' => 'eicon-editor-h6'
|
172 |
+
]
|
173 |
+
],
|
174 |
+
'default' => 'h2',
|
175 |
+
'toggle' => false,
|
176 |
+
]
|
177 |
+
);
|
178 |
+
|
179 |
+
$this->add_control(
|
180 |
+
'content_alignment',
|
181 |
+
[
|
182 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
183 |
+
'type' => Controls_Manager::CHOOSE,
|
184 |
+
'options' => [
|
185 |
+
'left' => [
|
186 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
187 |
+
'icon' => 'eicon-text-align-left',
|
188 |
+
],
|
189 |
+
'center' => [
|
190 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
191 |
+
'icon' => 'eicon-text-align-center',
|
192 |
+
],
|
193 |
+
'right' => [
|
194 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
195 |
+
'icon' => 'eicon-text-align-right',
|
196 |
+
],
|
197 |
+
'justify' => [
|
198 |
+
'title' => __( 'Justify', 'happy-elementor-addons' ),
|
199 |
+
'icon' => 'eicon-text-align-justify',
|
200 |
+
],
|
201 |
+
],
|
202 |
+
'toggle' => true,
|
203 |
+
'selectors' => [
|
204 |
+
'{{WRAPPER}} .elementor-widget-container' => 'text-align: {{VALUE}};'
|
205 |
+
]
|
206 |
+
]
|
207 |
+
);
|
208 |
+
|
209 |
+
$this->add_control(
|
210 |
+
'show_indicator',
|
211 |
+
[
|
212 |
+
'label' => __( 'Show Direction', 'happy-elementor-addons' ),
|
213 |
+
'type' => Controls_Manager::SWITCHER,
|
214 |
+
'label_on' => __( 'Yes', 'happy-elementor-addons' ),
|
215 |
+
'label_off' => __( 'No', 'happy-elementor-addons' ),
|
216 |
+
'return_value' => 'yes',
|
217 |
+
'default' => 'yes',
|
218 |
+
'style_transfer' => true,
|
219 |
+
]
|
220 |
+
);
|
221 |
+
|
222 |
+
$this->end_controls_section();
|
223 |
+
}
|
224 |
+
|
225 |
+
protected function register_style_controls() {
|
226 |
+
$this->start_controls_section(
|
227 |
+
'_section_icon_style',
|
228 |
+
[
|
229 |
+
'label' => __( 'Icon', 'happy-elementor-addons' ),
|
230 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
231 |
+
]
|
232 |
+
);
|
233 |
+
|
234 |
+
$this->add_responsive_control(
|
235 |
+
'icon_size',
|
236 |
+
[
|
237 |
+
'label' => __( 'Size', 'happy-elementor-addons' ),
|
238 |
+
'type' => Controls_Manager::SLIDER,
|
239 |
+
'size_units' => [ 'px', 'em' ],
|
240 |
+
'range' => [
|
241 |
+
'px' => [
|
242 |
+
'min' => 6,
|
243 |
+
'max' => 300,
|
244 |
],
|
245 |
'em' => [
|
246 |
+
'min' => 6,
|
247 |
+
'max' => 300,
|
248 |
+
]
|
249 |
+
],
|
250 |
+
'selectors' => [
|
251 |
+
'{{WRAPPER}} .ha-steps-icon' => 'font-size: {{SIZE}}{{UNIT}};',
|
252 |
+
'{{WRAPPER}}' => '--ha-stepflow-icon-size: {{SIZE}}{{UNIT}};',
|
253 |
+
],
|
254 |
+
]
|
255 |
+
);
|
256 |
+
|
257 |
+
$this->add_responsive_control(
|
258 |
+
'icon_padding',
|
259 |
+
[
|
260 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
261 |
+
'type' => Controls_Manager::SLIDER,
|
262 |
+
'size_units' => [ 'px', '%' ],
|
263 |
+
'range' => [
|
264 |
+
'px' => [
|
265 |
+
'min' => 0,
|
266 |
+
'max' => 200,
|
267 |
+
]
|
268 |
+
],
|
269 |
+
'selectors' => [
|
270 |
+
'{{WRAPPER}} .ha-steps-icon' => 'padding: {{SIZE}}{{UNIT}};',
|
271 |
+
'{{WRAPPER}}' => '--ha-stepflow-icon-padding: {{SIZE}}{{UNIT}};',
|
272 |
+
],
|
273 |
+
]
|
274 |
+
);
|
275 |
+
|
276 |
+
$this->add_responsive_control(
|
277 |
+
'icon_spacing',
|
278 |
+
[
|
279 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
280 |
+
'type' => Controls_Manager::SLIDER,
|
281 |
+
'size_units' => [ 'px', '%' ],
|
282 |
+
'range' => [
|
283 |
+
'px' => [
|
284 |
+
'min' => 0,
|
285 |
+
'max' => 100,
|
286 |
+
]
|
287 |
+
],
|
288 |
+
'selectors' => [
|
289 |
+
'{{WRAPPER}} .ha-steps-icon' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
290 |
+
],
|
291 |
+
]
|
292 |
+
);
|
293 |
+
|
294 |
+
$this->add_group_control(
|
295 |
+
Group_Control_Border::get_type(),
|
296 |
+
[
|
297 |
+
'name' => 'icon_border',
|
298 |
+
'label' => __( 'Border', 'happy-elementor-addons' ),
|
299 |
+
'selector' => '{{WRAPPER}} .ha-steps-icon',
|
300 |
+
]
|
301 |
+
);
|
302 |
+
|
303 |
+
$this->add_responsive_control(
|
304 |
+
'icon_border_radius',
|
305 |
+
[
|
306 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
307 |
+
'type' => Controls_Manager::DIMENSIONS,
|
308 |
+
'size_units' => [ 'px', '%' ],
|
309 |
+
'selectors' => [
|
310 |
+
'{{WRAPPER}} .ha-steps-icon' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
311 |
+
],
|
312 |
+
]
|
313 |
+
);
|
314 |
+
|
315 |
+
$this->add_group_control(
|
316 |
+
Group_Control_Box_Shadow::get_type(),
|
317 |
+
[
|
318 |
+
'name' => 'icon_box_shadow',
|
319 |
+
'selector' => '{{WRAPPER}} .ha-steps-icon',
|
320 |
+
]
|
321 |
+
);
|
322 |
+
|
323 |
+
$this->add_control(
|
324 |
+
'icon_color',
|
325 |
+
[
|
326 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
327 |
+
'type' => Controls_Manager::COLOR,
|
328 |
+
'selectors' => [
|
329 |
+
'{{WRAPPER}} .ha-steps-icon i' => 'color: {{VALUE}};',
|
330 |
+
],
|
331 |
+
]
|
332 |
+
);
|
333 |
+
|
334 |
+
$this->add_control(
|
335 |
+
'icon_background_color',
|
336 |
+
[
|
337 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
338 |
+
'type' => Controls_Manager::COLOR,
|
339 |
+
'selectors' => [
|
340 |
+
'{{WRAPPER}} .ha-steps-icon' => 'background: {{VALUE}};',
|
341 |
+
],
|
342 |
+
]
|
343 |
+
);
|
344 |
+
|
345 |
+
$this->end_controls_section();
|
346 |
+
|
347 |
+
$this->start_controls_section(
|
348 |
+
'_section_badge_style',
|
349 |
+
[
|
350 |
+
'label' => __('Badge', 'happy-elementor-addons'),
|
351 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
352 |
+
'condition' => [
|
353 |
+
'badge!' => '',
|
354 |
+
],
|
355 |
+
]
|
356 |
+
);
|
357 |
+
|
358 |
+
$this->add_responsive_control(
|
359 |
+
'badge_padding',
|
360 |
+
[
|
361 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
362 |
+
'type' => Controls_Manager::DIMENSIONS,
|
363 |
+
'size_units' => [ 'px', '%' ],
|
364 |
+
'condition' => [
|
365 |
+
'badge!' => '',
|
366 |
+
],
|
367 |
+
'selectors' => [
|
368 |
+
'{{WRAPPER}} .ha-steps-label' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
369 |
+
],
|
370 |
+
]
|
371 |
+
);
|
372 |
+
|
373 |
+
$this->add_group_control(
|
374 |
+
Group_Control_Border::get_type(),
|
375 |
+
[
|
376 |
+
'name' => 'badge_border',
|
377 |
+
'label' => __( 'Border', 'happy-elementor-addons' ),
|
378 |
+
'selector' => '{{WRAPPER}} .ha-steps-label',
|
379 |
+
'condition' => [
|
380 |
+
'badge!' => '',
|
381 |
+
],
|
382 |
+
]
|
383 |
+
);
|
384 |
+
|
385 |
+
$this->add_responsive_control(
|
386 |
+
'badge_border_radius',
|
387 |
+
[
|
388 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
389 |
+
'type' => Controls_Manager::DIMENSIONS,
|
390 |
+
'size_units' => [ 'px', '%' ],
|
391 |
+
'condition' => [
|
392 |
+
'badge!' => '',
|
393 |
+
],
|
394 |
+
'selectors' => [
|
395 |
+
'{{WRAPPER}} .ha-steps-label' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
396 |
+
],
|
397 |
+
]
|
398 |
+
);
|
399 |
+
|
400 |
+
$this->add_control(
|
401 |
+
'badge_color',
|
402 |
+
[
|
403 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
404 |
+
'type' => Controls_Manager::COLOR,
|
405 |
+
'condition' => [
|
406 |
+
'badge!' => '',
|
407 |
+
],
|
408 |
+
'selectors' => [
|
409 |
+
'{{WRAPPER}} .ha-steps-label' => 'color: {{VALUE}};',
|
410 |
+
],
|
411 |
+
]
|
412 |
+
);
|
413 |
+
|
414 |
+
$this->add_control(
|
415 |
+
'badge_background_color',
|
416 |
+
[
|
417 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
418 |
+
'type' => Controls_Manager::COLOR,
|
419 |
+
'condition' => [
|
420 |
+
'badge!' => '',
|
421 |
+
],
|
422 |
+
'selectors' => [
|
423 |
+
'{{WRAPPER}} .ha-steps-label' => 'background: {{VALUE}};',
|
424 |
+
],
|
425 |
+
]
|
426 |
+
);
|
427 |
+
|
428 |
+
$this->add_group_control(
|
429 |
+
Group_Control_Typography::get_type(),
|
430 |
+
[
|
431 |
+
'name' => 'badge_typography',
|
432 |
+
'selector' => '{{WRAPPER}} .ha-steps-label',
|
433 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_4,
|
434 |
+
'condition' => [
|
435 |
+
'badge!' => '',
|
436 |
+
],
|
437 |
+
]
|
438 |
+
);
|
439 |
+
|
440 |
+
$this->end_controls_section();
|
441 |
+
|
442 |
+
$this->start_controls_section(
|
443 |
+
'_section_title_style',
|
444 |
+
[
|
445 |
+
'label' => __( 'Title & Description', 'happy-elementor-addons' ),
|
446 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
447 |
+
]
|
448 |
+
);
|
449 |
+
|
450 |
+
$this->add_control(
|
451 |
+
'_heading_title',
|
452 |
+
[
|
453 |
+
'type' => Controls_Manager::HEADING,
|
454 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
455 |
+
]
|
456 |
+
);
|
457 |
+
|
458 |
+
$this->add_responsive_control(
|
459 |
+
'title_spacing',
|
460 |
+
[
|
461 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
462 |
+
'type' => Controls_Manager::SLIDER,
|
463 |
+
'size_units' => [ 'px' ],
|
464 |
+
'selectors' => [
|
465 |
+
'{{WRAPPER}} .ha-steps-title' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
466 |
+
],
|
467 |
+
]
|
468 |
+
);
|
469 |
+
|
470 |
+
$this->add_control(
|
471 |
+
'title_color',
|
472 |
+
[
|
473 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
474 |
+
'type' => Controls_Manager::COLOR,
|
475 |
+
'selectors' => [
|
476 |
+
'{{WRAPPER}} .ha-steps-title' => 'color: {{VALUE}};',
|
477 |
+
],
|
478 |
+
]
|
479 |
+
);
|
480 |
+
|
481 |
+
$this->add_control(
|
482 |
+
'title_link_color',
|
483 |
+
[
|
484 |
+
'label' => __( 'Link Color', 'happy-elementor-addons' ),
|
485 |
+
'type' => Controls_Manager::COLOR,
|
486 |
+
'condition' => [
|
487 |
+
'link[url]!' => ''
|
488 |
+
],
|
489 |
+
'selectors' => [
|
490 |
+
'{{WRAPPER}} .ha-steps-title a' => 'color: {{VALUE}};',
|
491 |
+
],
|
492 |
+
]
|
493 |
+
);
|
494 |
+
|
495 |
+
$this->add_control(
|
496 |
+
'title_hover_color',
|
497 |
+
[
|
498 |
+
'label' => __( 'Hover Color', 'happy-elementor-addons' ),
|
499 |
+
'type' => Controls_Manager::COLOR,
|
500 |
+
'condition' => [
|
501 |
+
'link[url]!' => ''
|
502 |
+
],
|
503 |
+
'selectors' => [
|
504 |
+
'{{WRAPPER}} .ha-steps-title a:hover' => 'color: {{VALUE}};',
|
505 |
+
],
|
506 |
+
]
|
507 |
+
);
|
508 |
+
|
509 |
+
$this->add_group_control(
|
510 |
+
Group_Control_Text_Shadow::get_type(),
|
511 |
+
[
|
512 |
+
'name' => 'title_shadow',
|
513 |
+
'selector' => '{{WRAPPER}} .ha-steps-title',
|
514 |
+
]
|
515 |
+
);
|
516 |
+
|
517 |
+
$this->add_group_control(
|
518 |
+
Group_Control_Typography::get_type(),
|
519 |
+
[
|
520 |
+
'name' => 'title_typography',
|
521 |
+
'selector' => '{{WRAPPER}} .ha-steps-title',
|
522 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_2,
|
523 |
+
]
|
524 |
+
);
|
525 |
+
|
526 |
+
$this->add_control(
|
527 |
+
'_heading_description',
|
528 |
+
[
|
529 |
+
'type' => Controls_Manager::HEADING,
|
530 |
+
'label' => __( 'Description', 'happy-elementor-addons' ),
|
531 |
+
'separator' => 'before',
|
532 |
+
]
|
533 |
+
);
|
534 |
+
|
535 |
+
$this->add_control(
|
536 |
+
'description_color',
|
537 |
+
[
|
538 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
539 |
+
'type' => Controls_Manager::COLOR,
|
540 |
+
'selectors' => [
|
541 |
+
'{{WRAPPER}} .ha-step-description' => 'color: {{VALUE}};',
|
542 |
+
],
|
543 |
+
]
|
544 |
+
);
|
545 |
+
|
546 |
+
$this->add_group_control(
|
547 |
+
Group_Control_Text_Shadow::get_type(),
|
548 |
+
[
|
549 |
+
'name' => 'description_shadow',
|
550 |
+
'selector' => '{{WRAPPER}} .ha-step-description',
|
551 |
+
]
|
552 |
+
);
|
553 |
+
|
554 |
+
$this->add_group_control(
|
555 |
+
Group_Control_Typography::get_type(),
|
556 |
+
[
|
557 |
+
'name' => 'description_typography',
|
558 |
+
'selector' => '{{WRAPPER}} .ha-step-description',
|
559 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
560 |
+
]
|
561 |
+
);
|
562 |
+
|
563 |
+
$this->end_controls_section();
|
564 |
+
|
565 |
+
$this->start_controls_section(
|
566 |
+
'_section_direction_style',
|
567 |
+
[
|
568 |
+
'label' => __( 'Direction', 'happy-elementor-addons' ),
|
569 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
570 |
+
]
|
571 |
+
);
|
572 |
+
|
573 |
+
$this->add_control(
|
574 |
+
'direction_style',
|
575 |
+
[
|
576 |
+
'label' => __( 'Style', 'happy-elementor-addons' ),
|
577 |
+
'type' => Controls_Manager::SELECT,
|
578 |
+
'options' => [
|
579 |
+
'solid' => __( 'Solid', 'happy-elementor-addons' ),
|
580 |
+
'dotted' => __( 'Dotted', 'happy-elementor-addons' ),
|
581 |
+
'dashed' => __( 'Dashed', 'happy-elementor-addons' ),
|
582 |
+
],
|
583 |
+
'default' => 'solid',
|
584 |
+
'selectors' => [
|
585 |
+
'{{WRAPPER}} .ha-step-arrow, {{WRAPPER}} .ha-step-arrow:after' => 'border-top-style: {{VALUE}};',
|
586 |
+
'{{WRAPPER}} .ha-step-arrow:after' => 'border-right-style: {{VALUE}};',
|
587 |
+
],
|
588 |
+
]
|
589 |
+
);
|
590 |
+
|
591 |
+
$this->add_responsive_control(
|
592 |
+
'direction_width',
|
593 |
+
[
|
594 |
+
'label' => __( 'Width', 'happy-elementor-addons' ),
|
595 |
+
'type' => Controls_Manager::SLIDER,
|
596 |
+
'size_units' => ['px', '%'],
|
597 |
+
'range' => [
|
598 |
+
'px' => [
|
599 |
+
'min' => 1,
|
600 |
+
'max' => 150,
|
601 |
+
],
|
602 |
+
],
|
603 |
+
'selectors' => [
|
604 |
+
'{{WRAPPER}} .ha-step-arrow' => 'width: {{SIZE}}{{UNIT}};',
|
605 |
+
],
|
606 |
+
]
|
607 |
+
);
|
608 |
+
|
609 |
+
$this->add_responsive_control(
|
610 |
+
'direction_angle',
|
611 |
+
[
|
612 |
+
'label' => __( 'Angle', 'happy-elementor-addons' ),
|
613 |
+
'type' => Controls_Manager::SLIDER,
|
614 |
+
'size_units' => ['deg'],
|
615 |
+
'default' => [
|
616 |
+
'unit' => 'deg',
|
617 |
+
],
|
618 |
+
'tablet_default' => [
|
619 |
+
'unit' => 'deg',
|
620 |
+
],
|
621 |
+
'mobile_default' => [
|
622 |
+
'unit' => 'deg',
|
623 |
+
],
|
624 |
+
'range' => [
|
625 |
+
'deg' => [
|
626 |
+
'min' => 0,
|
627 |
+
'max' => 360,
|
628 |
+
],
|
629 |
+
],
|
630 |
+
'selectors' => [
|
631 |
+
'{{WRAPPER}}' => '--ha-stepflow-direction-angle: {{SIZE}}{{UNIT}};',
|
632 |
+
],
|
633 |
+
]
|
634 |
+
);
|
635 |
+
|
636 |
+
$this->add_control(
|
637 |
+
'direction_offset_toggle',
|
638 |
+
[
|
639 |
+
'label' => __( 'Offset', 'happy-elementor-addons' ),
|
640 |
+
'type' => Controls_Manager::POPOVER_TOGGLE,
|
641 |
+
'label_off' => __( 'None', 'happy-elementor-addons' ),
|
642 |
+
'label_on' => __( 'Custom', 'happy-elementor-addons' ),
|
643 |
+
'return_value' => 'yes',
|
644 |
+
]
|
645 |
+
);
|
646 |
+
|
647 |
+
$this->start_popover();
|
648 |
+
|
649 |
+
$this->add_responsive_control(
|
650 |
+
'direction_offset_y',
|
651 |
+
[
|
652 |
+
'label' => __( 'Offset Top', 'happy-elementor-addons' ),
|
653 |
+
'type' => Controls_Manager::SLIDER,
|
654 |
+
'size_units' => ['px', '%'],
|
655 |
+
'range' => [
|
656 |
+
'px' => [
|
657 |
+
'min' => 0,
|
658 |
+
'max' => 1000,
|
659 |
+
],
|
660 |
+
'%' => [
|
661 |
+
'min' => 0,
|
662 |
+
'max' => 500,
|
663 |
+
]
|
664 |
+
],
|
665 |
+
'condition' => [
|
666 |
+
'direction_offset_toggle' => 'yes'
|
667 |
+
],
|
668 |
+
'selectors' => [
|
669 |
+
'{{WRAPPER}} .ha-step-arrow' => 'top: {{SIZE}}{{UNIT}};',
|
670 |
+
],
|
671 |
+
]
|
672 |
+
);
|
673 |
+
|
674 |
+
$this->add_responsive_control(
|
675 |
+
'direction_offset_x',
|
676 |
+
[
|
677 |
+
'label' => __( 'Offset Left', 'happy-elementor-addons' ),
|
678 |
+
'type' => Controls_Manager::SLIDER,
|
679 |
+
'size_units' => ['px', '%'],
|
680 |
+
'range' => [
|
681 |
+
'px' => [
|
682 |
+
'min' => 0,
|
683 |
+
'max' => 1000,
|
684 |
+
],
|
685 |
+
'%' => [
|
686 |
+
'min' => 0,
|
687 |
+
'max' => 500,
|
688 |
+
]
|
689 |
+
],
|
690 |
+
'condition' => [
|
691 |
+
'direction_offset_toggle' => 'yes'
|
692 |
+
],
|
693 |
+
'selectors' => [
|
694 |
+
'{{WRAPPER}} .ha-step-arrow' => 'left: calc( 100% + {{SIZE}}{{UNIT}} );',
|
695 |
+
'{{WRAPPER}}' => '--ha-stepflow-direction-offset-x: {{SIZE}}{{UNIT}};',
|
696 |
+
],
|
697 |
+
]
|
698 |
+
);
|
699 |
+
|
700 |
+
$this->end_popover();
|
701 |
+
|
702 |
+
$this->add_control(
|
703 |
+
'direction_color',
|
704 |
+
[
|
705 |
+
'label' => __( 'Color', 'happy-elementor-addons' ),
|
706 |
+
'type' => Controls_Manager::COLOR,
|
707 |
+
'selectors' => [
|
708 |
+
'{{WRAPPER}} .ha-step-arrow' => 'border-color: {{VALUE}};',
|
709 |
+
'{{WRAPPER}} .ha-step-arrow:after' => 'border-color: {{VALUE}};',
|
710 |
+
],
|
711 |
+
]
|
712 |
+
);
|
713 |
+
|
714 |
+
$this->end_controls_section();
|
715 |
+
}
|
716 |
+
|
717 |
+
protected function render() {
|
718 |
+
$settings = $this->get_settings_for_display();
|
719 |
+
|
720 |
+
$this->add_render_attribute( 'title', 'class', 'ha-steps-title' );
|
721 |
+
|
722 |
+
$this->add_inline_editing_attributes( 'description', 'intermediate' );
|
723 |
+
$this->add_render_attribute( 'description', 'class', 'ha-step-description' );
|
724 |
+
|
725 |
+
$this->add_render_attribute( 'badge', 'class', 'ha-steps-label' );
|
726 |
+
$this->add_inline_editing_attributes( 'badge', 'none' );
|
727 |
+
|
728 |
+
if ( ! empty( $settings['link']['url'] ) ) {
|
729 |
+
$this->add_link_attributes( 'link', $settings['link'] );
|
730 |
+
$this->add_inline_editing_attributes( 'link', 'basic', 'title' );
|
731 |
+
|
732 |
+
$title = sprintf( '<a %s>%s</a>',
|
733 |
+
$this->get_render_attribute_string( 'link' ),
|
734 |
+
ha_kses_basic( $settings['title'] )
|
735 |
+
);
|
736 |
+
} else {
|
737 |
+
$this->add_inline_editing_attributes( 'title', 'basic' );
|
738 |
+
$title = ha_kses_basic( $settings['title'] );
|
739 |
+
}
|
740 |
+
?>
|
741 |
+
|
742 |
+
<div class="ha-steps-icon">
|
743 |
+
<?php if ( $settings['show_indicator'] === 'yes' ) : ?>
|
744 |
+
<span class="ha-step-arrow"></span>
|
745 |
+
<?php endif; ?>
|
746 |
+
|
747 |
+
<?php if ( ! empty( $settings['icon'] ) || ! empty( $settings['selected_icon']['value'] ) ) :
|
748 |
+
ha_render_icon( $settings, 'icon', 'selected_icon' );
|
749 |
+
endif; ?>
|
750 |
+
|
751 |
+
<?php if ( $settings['badge'] ) : ?>
|
752 |
+
<span <?php $this->print_render_attribute_string( 'badge' ); ?>><?php echo esc_html( $settings['badge'] ); ?></span>
|
753 |
+
<?php endif; ?>
|
754 |
+
</div>
|
755 |
+
|
756 |
+
<?php
|
757 |
+
printf( '<%1$s %2$s>%3$s</%1$s>',
|
758 |
+
tag_escape( $settings['title_tag'] ),
|
759 |
+
$this->get_render_attribute_string( 'title' ),
|
760 |
+
$title
|
761 |
+
);
|
762 |
+
?>
|
763 |
+
|
764 |
+
<?php if ( $settings['description'] ) : ?>
|
765 |
+
<p <?php $this->print_render_attribute_string( 'description' ); ?>><?php echo ha_kses_intermediate( $settings['description'] ); ?></p>
|
766 |
+
<?php endif; ?>
|
767 |
+
|
768 |
+
<?php
|
769 |
+
}
|
770 |
|
771 |
}
|
@@ -19,425 +19,432 @@ defined( 'ABSPATH' ) || die();
|
|
19 |
|
20 |
class Testimonial extends Base {
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
|
34 |
public function get_custom_help_url() {
|
35 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/testimonial/';
|
36 |
}
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
|
54 |
protected function register_content_controls() {
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
|
|
|
|
|
|
128 |
|
129 |
$this->add_control(
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
);
|
142 |
|
143 |
$this->add_group_control(
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
'default' => 'full',
|
148 |
'exclude' => ['custom'],
|
149 |
-
|
150 |
-
|
151 |
-
);
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
|
181 |
$this->end_controls_section();
|
182 |
-
|
183 |
-
|
184 |
-
protected function register_style_controls() {
|
185 |
-
$this->start_controls_section(
|
186 |
-
'_section_style_testimonial',
|
187 |
-
[
|
188 |
-
'label' => __( 'Testimonial', 'happy-elementor-addons' ),
|
189 |
-
'tab' => Controls_Manager::TAB_STYLE,
|
190 |
-
]
|
191 |
-
);
|
192 |
-
|
193 |
-
$this->add_responsive_control(
|
194 |
-
'testimonial_padding',
|
195 |
-
[
|
196 |
-
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
197 |
-
'type' => Controls_Manager::DIMENSIONS,
|
198 |
-
'size_units' => [ 'px', 'em', '%' ],
|
199 |
-
'selectors' => [
|
200 |
-
'{{WRAPPER}} .ha-testimonial__content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
201 |
-
],
|
202 |
-
]
|
203 |
-
);
|
204 |
-
|
205 |
-
$this->add_responsive_control(
|
206 |
-
'testimonial_spacing',
|
207 |
-
[
|
208 |
-
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
209 |
-
'type' => Controls_Manager::SLIDER,
|
210 |
-
'size_units' => ['px'],
|
211 |
-
'selectors' => [
|
212 |
-
'{{WRAPPER}} .ha-testimonial__content' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
213 |
-
],
|
214 |
-
]
|
215 |
-
);
|
216 |
-
|
217 |
-
$this->add_control(
|
218 |
-
'testimonial_color',
|
219 |
-
[
|
220 |
-
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
221 |
-
'type' => Controls_Manager::COLOR,
|
222 |
-
'selectors' => [
|
223 |
-
'{{WRAPPER}} .ha-testimonial__content' => 'color: {{VALUE}}',
|
224 |
-
],
|
225 |
-
]
|
226 |
-
);
|
227 |
-
|
228 |
-
$this->add_control(
|
229 |
-
'testimonial_bg_color',
|
230 |
-
[
|
231 |
-
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
232 |
-
'type' => Controls_Manager::COLOR,
|
233 |
-
'selectors' => [
|
234 |
-
'{{WRAPPER}} .ha-testimonial__content' => 'background-color: {{VALUE}};',
|
235 |
-
'{{WRAPPER}} .ha-testimonial__content:after' => 'color: {{VALUE}};',
|
236 |
-
],
|
237 |
-
]
|
238 |
-
);
|
239 |
-
|
240 |
-
$this->add_group_control(
|
241 |
-
Group_Control_Typography::get_type(),
|
242 |
-
[
|
243 |
-
'name' => 'testimonial_typography',
|
244 |
-
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
245 |
-
'selector' => '{{WRAPPER}} .ha-testimonial__content',
|
246 |
-
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
247 |
-
]
|
248 |
-
);
|
249 |
-
|
250 |
-
$this->add_responsive_control(
|
251 |
-
'testimonial_border_radius',
|
252 |
-
[
|
253 |
-
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
254 |
-
'type' => Controls_Manager::DIMENSIONS,
|
255 |
-
'size_units' => [ 'px', '%' ],
|
256 |
-
'selectors' => [
|
257 |
-
'{{WRAPPER}} .ha-testimonial__content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
258 |
-
],
|
259 |
-
]
|
260 |
-
);
|
261 |
-
|
262 |
-
$this->add_group_control(
|
263 |
-
Group_Control_Box_Shadow::get_type(),
|
264 |
-
[
|
265 |
-
'name' => 'testimonial_box_shadow',
|
266 |
-
'selector' => '{{WRAPPER}} .ha-testimonial__content',
|
267 |
-
]
|
268 |
-
);
|
269 |
-
|
270 |
-
$this->end_controls_section();
|
271 |
|
|
|
272 |
$this->start_controls_section(
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
);
|
279 |
|
280 |
$this->add_responsive_control(
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
'min' => 65,
|
289 |
-
'max' => 200,
|
290 |
-
],
|
291 |
],
|
292 |
-
|
293 |
-
|
294 |
-
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});',
|
295 |
-
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});',
|
296 |
-
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__content:after' => 'left: calc(({{SIZE}}{{UNIT}} / 2) - 18px);',
|
297 |
-
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__content:after' => 'right: calc(({{SIZE}}{{UNIT}} / 2) - 18px);',
|
298 |
-
],
|
299 |
-
]
|
300 |
-
);
|
301 |
|
302 |
$this->add_responsive_control(
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
'size_units' => [ 'px' ],
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
],
|
314 |
-
|
315 |
-
|
316 |
-
],
|
317 |
-
]
|
318 |
-
);
|
319 |
-
|
320 |
-
$this->add_responsive_control(
|
321 |
-
'image_spacing',
|
322 |
-
[
|
323 |
-
'label' => __( 'Spacing', 'happy-elementor-addons' ),
|
324 |
-
'type' => Controls_Manager::SLIDER,
|
325 |
-
'size_units' => ['px'],
|
326 |
-
'selectors' => [
|
327 |
-
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => 'padding-left: {{SIZE}}{{UNIT}};',
|
328 |
-
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => 'padding-right: {{SIZE}}{{UNIT}};',
|
329 |
-
'{{WRAPPER}}.ha-testimonial--center .ha-testimonial__reviewer-meta' => 'padding-top: {{SIZE}}{{UNIT}};',
|
330 |
-
],
|
331 |
-
]
|
332 |
-
);
|
333 |
|
334 |
$this->add_group_control(
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
);
|
341 |
|
342 |
$this->add_responsive_control(
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
);
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
|
362 |
$this->end_controls_section();
|
363 |
|
364 |
$this->start_controls_section(
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
);
|
371 |
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
|
380 |
$this->add_control(
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
|
391 |
$this->add_group_control(
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-name',
|
397 |
'scheme' => Scheme_Typography::TYPOGRAPHY_2,
|
398 |
-
|
399 |
);
|
400 |
|
401 |
$this->add_responsive_control(
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
'size_units' => ['px'],
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
$this->add_control(
|
414 |
-
'_heading_title',
|
415 |
-
[
|
416 |
-
'label' => __( 'Title', 'happy-elementor-addons' ),
|
417 |
-
'type' => Controls_Manager::HEADING,
|
418 |
-
'separator' => 'before',
|
419 |
-
]
|
420 |
-
);
|
421 |
|
422 |
$this->add_control(
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
431 |
);
|
432 |
|
433 |
$this->add_group_control(
|
434 |
-
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-title',
|
439 |
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
440 |
-
|
441 |
);
|
442 |
|
443 |
$this->end_controls_section();
|
@@ -460,17 +467,17 @@ class Testimonial extends Base {
|
|
460 |
<?php echo ha_kses_intermediate( $settings['testimonial'] ); ?>
|
461 |
</div>
|
462 |
<div class="ha-testimonial__reviewer">
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
|
469 |
<div class="ha-testimonial__reviewer-meta">
|
470 |
<div <?php $this->print_render_attribute_string( 'name' ); ?>><?php echo ha_kses_basic( $settings['name'] ); ?></div>
|
471 |
<div <?php $this->print_render_attribute_string( 'title' ); ?>><?php echo ha_kses_basic( $settings['title'] ); ?></div>
|
472 |
</div>
|
473 |
</div>
|
474 |
-
|
475 |
}
|
476 |
}
|
19 |
|
20 |
class Testimonial extends Base {
|
21 |
|
22 |
+
/**
|
23 |
+
* Get widget title.
|
24 |
+
*
|
25 |
+
* @since 1.0.0
|
26 |
+
* @access public
|
27 |
+
*
|
28 |
+
* @return string Widget title.
|
29 |
+
*/
|
30 |
+
public function get_title() {
|
31 |
+
return __( 'Testimonial', 'happy-elementor-addons' );
|
32 |
+
}
|
33 |
|
34 |
public function get_custom_help_url() {
|
35 |
return 'https://happyaddons.com/docs/happy-addons-for-elementor/widgets/testimonial/';
|
36 |
}
|
37 |
|
38 |
+
/**
|
39 |
+
* Get widget icon.
|
40 |
+
*
|
41 |
+
* @since 1.0.0
|
42 |
+
* @access public
|
43 |
+
*
|
44 |
+
* @return string Widget icon.
|
45 |
+
*/
|
46 |
+
public function get_icon() {
|
47 |
+
return 'hm hm-testimonial';
|
48 |
+
}
|
49 |
+
|
50 |
+
public function get_keywords() {
|
51 |
+
return [ 'testimonial', 'review', 'feedback' ];
|
52 |
+
}
|
53 |
|
54 |
protected function register_content_controls() {
|
55 |
+
$this->start_controls_section(
|
56 |
+
'_section_testimonial',
|
57 |
+
[
|
58 |
+
'label' => __( 'Testimonial', 'happy-elementor-addons' ),
|
59 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
60 |
+
]
|
61 |
+
);
|
62 |
+
|
63 |
+
$this->add_control(
|
64 |
+
'testimonial',
|
65 |
+
[
|
66 |
+
'label' => __( 'Testimonial', 'happy-elementor-addons' ),
|
67 |
+
'label_block' => true,
|
68 |
+
'type' => Controls_Manager::TEXTAREA,
|
69 |
+
'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.',
|
70 |
+
'placeholder' => __( 'Type testimonial', 'happy-elementor-addons' ),
|
71 |
+
'dynamic' => [
|
72 |
+
'active' => true,
|
73 |
+
]
|
74 |
+
]
|
75 |
+
);
|
76 |
+
|
77 |
+
$this->add_control(
|
78 |
+
'align',
|
79 |
+
[
|
80 |
+
'label' => __( 'Alignment', 'happy-elementor-addons' ),
|
81 |
+
'type' => Controls_Manager::CHOOSE,
|
82 |
+
'label_block' => false,
|
83 |
+
'options' => [
|
84 |
+
'left' => [
|
85 |
+
'title' => __( 'Left', 'happy-elementor-addons' ),
|
86 |
+
'icon' => 'eicon-text-align-left',
|
87 |
+
],
|
88 |
+
'center' => [
|
89 |
+
'title' => __( 'Center', 'happy-elementor-addons' ),
|
90 |
+
'icon' => 'eicon-text-align-center',
|
91 |
+
],
|
92 |
+
'right' => [
|
93 |
+
'title' => __( 'Right', 'happy-elementor-addons' ),
|
94 |
+
'icon' => 'eicon-text-align-right',
|
95 |
+
],
|
96 |
+
],
|
97 |
+
'toggle' => false,
|
98 |
+
'default' => 'left',
|
99 |
+
'prefix_class' => 'ha-testimonial--',
|
100 |
+
'selectors' => [
|
101 |
+
'{{WRAPPER}}' => 'text-align: {{VALUE}};'
|
102 |
+
]
|
103 |
+
]
|
104 |
+
);
|
105 |
+
|
106 |
+
$this->add_control(
|
107 |
+
'_design',
|
108 |
+
[
|
109 |
+
'label' => __( 'Design', 'happy-elementor-addons' ),
|
110 |
+
'type' => Controls_Manager::SELECT,
|
111 |
+
'label_block' => false,
|
112 |
+
'options' => [
|
113 |
+
'basic' => __( 'Default', 'happy-elementor-addons' ),
|
114 |
+
'bubble' => __( 'Bubble', 'happy-elementor-addons' ),
|
115 |
+
],
|
116 |
+
'default' => 'basic',
|
117 |
+
'prefix_class' => 'ha-testimonial--',
|
118 |
+
'style_transfer' => true,
|
119 |
+
]
|
120 |
+
);
|
121 |
+
|
122 |
+
$this->end_controls_section();
|
123 |
+
|
124 |
+
$this->start_controls_section(
|
125 |
+
'_section_reviewer',
|
126 |
+
[
|
127 |
+
'label' => __( 'Reviewer', 'happy-elementor-addons' ),
|
128 |
+
'tab' => Controls_Manager::TAB_CONTENT,
|
129 |
+
]
|
130 |
+
);
|
131 |
|
132 |
$this->add_control(
|
133 |
+
'image',
|
134 |
+
[
|
135 |
+
'label' => __( 'Image', 'happy-elementor-addons' ),
|
136 |
+
'type' => Controls_Manager::MEDIA,
|
137 |
+
'default' => [
|
138 |
+
'url' => Utils::get_placeholder_image_src(),
|
139 |
+
],
|
140 |
+
'dynamic' => [
|
141 |
+
'active' => true,
|
142 |
+
]
|
143 |
+
]
|
144 |
);
|
145 |
|
146 |
$this->add_group_control(
|
147 |
+
Group_Control_Image_Size::get_type(),
|
148 |
+
[
|
149 |
+
'name' => 'thumbnail',
|
150 |
'default' => 'full',
|
151 |
'exclude' => ['custom'],
|
152 |
+
'separator' => 'none',
|
153 |
+
]
|
154 |
+
);
|
155 |
+
|
156 |
+
$this->add_control(
|
157 |
+
'name',
|
158 |
+
[
|
159 |
+
'label' => __( 'Name', 'happy-elementor-addons' ),
|
160 |
+
'label_block' => true,
|
161 |
+
'type' => Controls_Manager::TEXT,
|
162 |
+
'default' => __( 'Happy', 'happy-elementor-addons' ),
|
163 |
+
'placeholder' => __( 'Type Reviewer Name', 'happy-elementor-addons' ),
|
164 |
+
'dynamic' => [
|
165 |
+
'active' => true,
|
166 |
+
]
|
167 |
+
]
|
168 |
+
);
|
169 |
+
|
170 |
+
$this->add_control(
|
171 |
+
'title',
|
172 |
+
[
|
173 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
174 |
+
'label_block' => true,
|
175 |
+
'type' => Controls_Manager::TEXT,
|
176 |
+
'default' => __( 'CMO, HappyAddons', 'happy-elementor-addons' ),
|
177 |
+
'placeholder' => __( 'Type reviewer title', 'happy-elementor-addons' ),
|
178 |
+
'dynamic' => [
|
179 |
+
'active' => true,
|
180 |
+
]
|
181 |
+
]
|
182 |
+
);
|
183 |
|
184 |
$this->end_controls_section();
|
185 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
|
187 |
+
protected function register_style_controls() {
|
188 |
$this->start_controls_section(
|
189 |
+
'_section_style_testimonial',
|
190 |
+
[
|
191 |
+
'label' => __( 'Testimonial', 'happy-elementor-addons' ),
|
192 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
193 |
+
]
|
194 |
);
|
195 |
|
196 |
$this->add_responsive_control(
|
197 |
+
'testimonial_padding',
|
198 |
+
[
|
199 |
+
'label' => __( 'Padding', 'happy-elementor-addons' ),
|
200 |
+
'type' => Controls_Manager::DIMENSIONS,
|
201 |
+
'size_units' => [ 'px', 'em', '%' ],
|
202 |
+
'selectors' => [
|
203 |
+
'{{WRAPPER}} .ha-testimonial__content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
|
|
|
|
|
|
204 |
],
|
205 |
+
]
|
206 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
$this->add_responsive_control(
|
209 |
+
'testimonial_spacing',
|
210 |
+
[
|
211 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
212 |
+
'type' => Controls_Manager::SLIDER,
|
213 |
+
'size_units' => ['px'],
|
214 |
+
'selectors' => [
|
215 |
+
'{{WRAPPER}} .ha-testimonial__content' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
216 |
+
],
|
217 |
+
]
|
218 |
+
);
|
219 |
+
|
220 |
+
$this->add_control(
|
221 |
+
'testimonial_color',
|
222 |
+
[
|
223 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
224 |
+
'type' => Controls_Manager::COLOR,
|
225 |
+
'selectors' => [
|
226 |
+
'{{WRAPPER}} .ha-testimonial__content' => 'color: {{VALUE}}',
|
227 |
+
],
|
228 |
+
]
|
229 |
+
);
|
230 |
+
|
231 |
+
$this->add_control(
|
232 |
+
'testimonial_bg_color',
|
233 |
+
[
|
234 |
+
'label' => __( 'Background Color', 'happy-elementor-addons' ),
|
235 |
+
'type' => Controls_Manager::COLOR,
|
236 |
+
'selectors' => [
|
237 |
+
'{{WRAPPER}} .ha-testimonial__content' => 'background-color: {{VALUE}};',
|
238 |
+
'{{WRAPPER}} .ha-testimonial__content:after' => 'color: {{VALUE}};',
|
239 |
+
],
|
240 |
+
]
|
241 |
+
);
|
242 |
+
|
243 |
+
$this->add_group_control(
|
244 |
+
Group_Control_Typography::get_type(),
|
245 |
+
[
|
246 |
+
'name' => 'testimonial_typography',
|
247 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
248 |
+
'selector' => '{{WRAPPER}} .ha-testimonial__content',
|
249 |
+
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
250 |
+
]
|
251 |
+
);
|
252 |
+
|
253 |
+
$this->add_responsive_control(
|
254 |
+
'testimonial_border_radius',
|
255 |
+
[
|
256 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
257 |
+
'type' => Controls_Manager::DIMENSIONS,
|
258 |
+
'size_units' => [ 'px', '%' ],
|
259 |
+
'selectors' => [
|
260 |
+
'{{WRAPPER}} .ha-testimonial__content' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
261 |
+
],
|
262 |
+
]
|
263 |
+
);
|
264 |
+
|
265 |
+
$this->add_group_control(
|
266 |
+
Group_Control_Box_Shadow::get_type(),
|
267 |
+
[
|
268 |
+
'name' => 'testimonial_box_shadow',
|
269 |
+
'selector' => '{{WRAPPER}} .ha-testimonial__content',
|
270 |
+
]
|
271 |
+
);
|
272 |
+
|
273 |
+
$this->end_controls_section();
|
274 |
+
|
275 |
+
$this->start_controls_section(
|
276 |
+
'_section_style_image',
|
277 |
+
[
|
278 |
+
'label' => __( 'Image', 'happy-elementor-addons' ),
|
279 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
280 |
+
]
|
281 |
+
);
|
282 |
+
|
283 |
+
$this->add_responsive_control(
|
284 |
+
'image_width',
|
285 |
+
[
|
286 |
+
'label' => __( 'Width', 'happy-elementor-addons' ),
|
287 |
+
'type' => Controls_Manager::SLIDER,
|
288 |
+
'size_units' => [ 'px' ],
|
289 |
+
'range' => [
|
290 |
+
'px' => [
|
291 |
+
'min' => 65,
|
292 |
+
'max' => 200,
|
293 |
+
],
|
294 |
+
],
|
295 |
+
'selectors' => [
|
296 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-thumb' => '-webkit-flex: 0 0 {{SIZE}}{{UNIT}}; -ms-flex: 0 0 {{SIZE}}{{UNIT}}; flex: 0 0 {{SIZE}}{{UNIT}}; max-width: {{SIZE}}{{UNIT}};',
|
297 |
+
|
298 |
+
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});',
|
299 |
+
|
300 |
+
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => '-webkit-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); -ms-flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); flex: 0 0 calc(100% - {{SIZE}}{{UNIT}}); max-width: calc(100% - {{SIZE}}{{UNIT}});',
|
301 |
+
|
302 |
+
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__content:after' => 'left: calc(({{SIZE}}{{UNIT}} / 2) - 18px);',
|
303 |
+
|
304 |
+
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__content:after' => 'right: calc(({{SIZE}}{{UNIT}} / 2) - 18px);',
|
305 |
+
],
|
306 |
+
]
|
307 |
+
);
|
308 |
+
|
309 |
+
$this->add_responsive_control(
|
310 |
+
'image_height',
|
311 |
+
[
|
312 |
+
'label' => __( 'Height', 'happy-elementor-addons' ),
|
313 |
+
'type' => Controls_Manager::SLIDER,
|
314 |
'size_units' => [ 'px' ],
|
315 |
+
'range' => [
|
316 |
+
'px' => [
|
317 |
+
'min' => 20,
|
318 |
+
'max' => 200,
|
319 |
+
],
|
320 |
+
],
|
321 |
+
'selectors' => [
|
322 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-thumb' => 'height: {{SIZE}}{{UNIT}};',
|
323 |
+
],
|
324 |
+
]
|
325 |
+
);
|
326 |
+
|
327 |
+
$this->add_responsive_control(
|
328 |
+
'image_spacing',
|
329 |
+
[
|
330 |
+
'label' => __( 'Spacing', 'happy-elementor-addons' ),
|
331 |
+
'type' => Controls_Manager::SLIDER,
|
332 |
+
'size_units' => ['px'],
|
333 |
+
'selectors' => [
|
334 |
+
'{{WRAPPER}}.ha-testimonial--left .ha-testimonial__reviewer-meta' => 'padding-left: {{SIZE}}{{UNIT}};',
|
335 |
+
'{{WRAPPER}}.ha-testimonial--right .ha-testimonial__reviewer-meta' => 'padding-right: {{SIZE}}{{UNIT}};',
|
336 |
+
'{{WRAPPER}}.ha-testimonial--center .ha-testimonial__reviewer-meta' => 'padding-top: {{SIZE}}{{UNIT}};',
|
337 |
],
|
338 |
+
]
|
339 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
|
341 |
$this->add_group_control(
|
342 |
+
Group_Control_Border::get_type(),
|
343 |
+
[
|
344 |
+
'name' => 'image_border',
|
345 |
+
'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-thumb img',
|
346 |
+
]
|
347 |
);
|
348 |
|
349 |
$this->add_responsive_control(
|
350 |
+
'image_border_radius',
|
351 |
+
[
|
352 |
+
'label' => __( 'Border Radius', 'happy-elementor-addons' ),
|
353 |
+
'type' => Controls_Manager::DIMENSIONS,
|
354 |
+
'size_units' => [ 'px', '%' ],
|
355 |
+
'selectors' => [
|
356 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-thumb img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
|
357 |
+
],
|
358 |
+
]
|
359 |
+
);
|
360 |
+
|
361 |
+
$this->add_group_control(
|
362 |
+
Group_Control_Box_Shadow::get_type(),
|
363 |
+
[
|
364 |
+
'name' => 'image_box_shadow',
|
365 |
+
'selector' => '.ha-testimonial__reviewer-thumb img',
|
366 |
+
]
|
367 |
+
);
|
368 |
|
369 |
$this->end_controls_section();
|
370 |
|
371 |
$this->start_controls_section(
|
372 |
+
'_section_style_reviewer',
|
373 |
+
[
|
374 |
+
'label' => __( 'Reviewer', 'happy-elementor-addons' ),
|
375 |
+
'tab' => Controls_Manager::TAB_STYLE,
|
376 |
+
]
|
377 |
);
|
378 |
|
379 |
+
$this->add_control(
|
380 |
+
'_heading_name',
|
381 |
+
[
|
382 |
+
'label' => __( 'Name', 'happy-elementor-addons' ),
|
383 |
+
'type' => Controls_Manager::HEADING,
|
384 |
+
]
|
385 |
+
);
|
386 |
|
387 |
$this->add_control(
|
388 |
+
'name_color',
|
389 |
+
[
|
390 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
391 |
+
'type' => Controls_Manager::COLOR,
|
392 |
+
'selectors' => [
|
393 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-name' => 'color: {{VALUE}};',
|
394 |
+
],
|
395 |
+
]
|
396 |
+
);
|
397 |
|
398 |
$this->add_group_control(
|
399 |
+
Group_Control_Typography::get_type(),
|
400 |
+
[
|
401 |
+
'name' => 'name_typography',
|
402 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
403 |
'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-name',
|
404 |
'scheme' => Scheme_Typography::TYPOGRAPHY_2,
|
405 |
+
]
|
406 |
);
|
407 |
|
408 |
$this->add_responsive_control(
|
409 |
+
'name_spacing',
|
410 |
+
[
|
411 |
+
'label' => __( 'Bottom Spacing', 'happy-elementor-addons' ),
|
412 |
+
'type' => Controls_Manager::SLIDER,
|
413 |
'size_units' => ['px'],
|
414 |
+
'selectors' => [
|
415 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-name' => 'margin-bottom: {{SIZE}}{{UNIT}};',
|
416 |
+
],
|
417 |
+
]
|
418 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
419 |
|
420 |
$this->add_control(
|
421 |
+
'_heading_title',
|
422 |
+
[
|
423 |
+
'label' => __( 'Title', 'happy-elementor-addons' ),
|
424 |
+
'type' => Controls_Manager::HEADING,
|
425 |
+
'separator' => 'before',
|
426 |
+
]
|
427 |
+
);
|
428 |
+
|
429 |
+
$this->add_control(
|
430 |
+
'title_color',
|
431 |
+
[
|
432 |
+
'label' => __( 'Text Color', 'happy-elementor-addons' ),
|
433 |
+
'type' => Controls_Manager::COLOR,
|
434 |
+
'selectors' => [
|
435 |
+
'{{WRAPPER}} .ha-testimonial__reviewer-title' => 'color: {{VALUE}}',
|
436 |
+
],
|
437 |
+
]
|
438 |
);
|
439 |
|
440 |
$this->add_group_control(
|
441 |
+
Group_Control_Typography::get_type(),
|
442 |
+
[
|
443 |
+
'name' => 'title_typography',
|
444 |
+
'label' => __( 'Typography', 'happy-elementor-addons' ),
|
445 |
'selector' => '{{WRAPPER}} .ha-testimonial__reviewer-title',
|
446 |
'scheme' => Scheme_Typography::TYPOGRAPHY_3,
|
447 |
+
]
|
448 |
);
|
449 |
|
450 |
$this->end_controls_section();
|
467 |
<?php echo ha_kses_intermediate( $settings['testimonial'] ); ?>
|
468 |
</div>
|
469 |
<div class="ha-testimonial__reviewer">
|
470 |
+
<?php if ( ! empty( $settings['image']['url'] ) ) : ?>
|
471 |
+
<div class="ha-testimonial__reviewer-thumb">
|
472 |
+
<?php echo Group_Control_Image_Size::get_attachment_image_html( $settings, 'thumbnail', 'image' ); ?>
|
473 |
+
</div>
|
474 |
+
<?php endif; ?>
|
475 |
|
476 |
<div class="ha-testimonial__reviewer-meta">
|
477 |
<div <?php $this->print_render_attribute_string( 'name' ); ?>><?php echo ha_kses_basic( $settings['name'] ); ?></div>
|
478 |
<div <?php $this->print_render_attribute_string( 'title' ); ?>><?php echo ha_kses_basic( $settings['title'] ); ?></div>
|
479 |
</div>
|
480 |
</div>
|
481 |
+
<?php
|
482 |
}
|
483 |
}
|
@@ -19,7 +19,11 @@ class WPML_Carousel extends \WPML_Elementor_Module_With_Items {
|
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
-
return [
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
@@ -33,6 +37,8 @@ class WPML_Carousel extends \WPML_Elementor_Module_With_Items {
|
|
33 |
return __( 'Carousel: Title', 'happy-elementor-addons' );
|
34 |
case 'subtitle':
|
35 |
return __( 'Carousel: Subtitle', 'happy-elementor-addons' );
|
|
|
|
|
36 |
default:
|
37 |
return '';
|
38 |
}
|
@@ -49,6 +55,8 @@ class WPML_Carousel extends \WPML_Elementor_Module_With_Items {
|
|
49 |
return 'LINE';
|
50 |
case 'subtitle':
|
51 |
return 'AREA';
|
|
|
|
|
52 |
default:
|
53 |
return '';
|
54 |
}
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'title',
|
24 |
+
'subtitle',
|
25 |
+
'link' => ['url']
|
26 |
+
];
|
27 |
}
|
28 |
|
29 |
/**
|
37 |
return __( 'Carousel: Title', 'happy-elementor-addons' );
|
38 |
case 'subtitle':
|
39 |
return __( 'Carousel: Subtitle', 'happy-elementor-addons' );
|
40 |
+
case 'url':
|
41 |
+
return __( 'Carousel: Link', 'happy-elementor-addons' );
|
42 |
default:
|
43 |
return '';
|
44 |
}
|
55 |
return 'LINE';
|
56 |
case 'subtitle':
|
57 |
return 'AREA';
|
58 |
+
case 'url':
|
59 |
+
return 'LINK';
|
60 |
default:
|
61 |
return '';
|
62 |
}
|
@@ -19,7 +19,10 @@ class WPML_Logo_Grid extends \WPML_Elementor_Module_With_Items {
|
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
-
return [
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
@@ -31,6 +34,8 @@ class WPML_Logo_Grid extends \WPML_Elementor_Module_With_Items {
|
|
31 |
switch ( $field ) {
|
32 |
case 'name':
|
33 |
return __( 'Logo Grid: Brand Name', 'happy-elementor-addons' );
|
|
|
|
|
34 |
default:
|
35 |
return '';
|
36 |
}
|
@@ -45,6 +50,8 @@ class WPML_Logo_Grid extends \WPML_Elementor_Module_With_Items {
|
|
45 |
switch ( $field ) {
|
46 |
case 'name':
|
47 |
return 'LINE';
|
|
|
|
|
48 |
default:
|
49 |
return '';
|
50 |
}
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'name',
|
24 |
+
'link' => ['url']
|
25 |
+
];
|
26 |
}
|
27 |
|
28 |
/**
|
34 |
switch ( $field ) {
|
35 |
case 'name':
|
36 |
return __( 'Logo Grid: Brand Name', 'happy-elementor-addons' );
|
37 |
+
case 'url':
|
38 |
+
return __( 'Logo Grid: Link', 'happy-elementor-addons' );
|
39 |
default:
|
40 |
return '';
|
41 |
}
|
50 |
switch ( $field ) {
|
51 |
case 'name':
|
52 |
return 'LINE';
|
53 |
+
case 'url':
|
54 |
+
return 'LINK';
|
55 |
default:
|
56 |
return '';
|
57 |
}
|
@@ -19,7 +19,11 @@ class WPML_Slider extends \WPML_Elementor_Module_With_Items {
|
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
-
return [
|
|
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
@@ -33,6 +37,8 @@ class WPML_Slider extends \WPML_Elementor_Module_With_Items {
|
|
33 |
return __( 'Slider: Title', 'happy-elementor-addons' );
|
34 |
case 'subtitle':
|
35 |
return __( 'Slider: Subtitle', 'happy-elementor-addons' );
|
|
|
|
|
36 |
default:
|
37 |
return '';
|
38 |
}
|
@@ -49,6 +55,8 @@ class WPML_Slider extends \WPML_Elementor_Module_With_Items {
|
|
49 |
return 'LINE';
|
50 |
case 'subtitle':
|
51 |
return 'AREA';
|
|
|
|
|
52 |
default:
|
53 |
return '';
|
54 |
}
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'title',
|
24 |
+
'subtitle',
|
25 |
+
'link' => ['url']
|
26 |
+
];
|
27 |
}
|
28 |
|
29 |
/**
|
37 |
return __( 'Slider: Title', 'happy-elementor-addons' );
|
38 |
case 'subtitle':
|
39 |
return __( 'Slider: Subtitle', 'happy-elementor-addons' );
|
40 |
+
case 'url':
|
41 |
+
return __( 'Slider: Link', 'happy-elementor-addons' );
|
42 |
default:
|
43 |
return '';
|
44 |
}
|
55 |
return 'LINE';
|
56 |
case 'subtitle':
|
57 |
return 'AREA';
|
58 |
+
case 'url':
|
59 |
+
return 'LINK';
|
60 |
default:
|
61 |
return '';
|
62 |
}
|
@@ -19,7 +19,10 @@ class WPML_Social_Icons extends \WPML_Elementor_Module_With_Items {
|
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
-
return [
|
|
|
|
|
|
|
23 |
}
|
24 |
|
25 |
/**
|
@@ -31,6 +34,8 @@ class WPML_Social_Icons extends \WPML_Elementor_Module_With_Items {
|
|
31 |
switch ( $field ) {
|
32 |
case 'ha_social_icon_title':
|
33 |
return __( 'Social Icons: Title', 'happy-elementor-addons' );
|
|
|
|
|
34 |
default:
|
35 |
return '';
|
36 |
}
|
@@ -45,6 +50,8 @@ class WPML_Social_Icons extends \WPML_Elementor_Module_With_Items {
|
|
45 |
switch ( $field ) {
|
46 |
case 'ha_social_icon_title':
|
47 |
return 'LINE';
|
|
|
|
|
48 |
default:
|
49 |
return '';
|
50 |
}
|
19 |
* @return array
|
20 |
*/
|
21 |
public function get_fields() {
|
22 |
+
return [
|
23 |
+
'ha_social_icon_title',
|
24 |
+
'ha_social_link' => ['url']
|
25 |
+
];
|
26 |
}
|
27 |
|
28 |
/**
|
34 |
switch ( $field ) {
|
35 |
case 'ha_social_icon_title':
|
36 |
return __( 'Social Icons: Title', 'happy-elementor-addons' );
|
37 |
+
case 'url':
|
38 |
+
return __( 'Social Icons: Link', 'happy-elementor-addons' );
|
39 |
default:
|
40 |
return '';
|
41 |
}
|
50 |
switch ( $field ) {
|
51 |
case 'ha_social_icon_title':
|
52 |
return 'LINE';
|
53 |
+
case 'url':
|
54 |
+
return 'LINK';
|
55 |
default:
|
56 |
return '';
|
57 |
}
|