Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget) - Version 2.18.0

Version Description

  • 5 January 2021 =

  • New: Tabs are sortable in Post Tab widget

  • Tweak: Added Post tab widget tab hover cursor

  • Fix: Equal height control rendering issue

  • Fix: Horizontal Timeline inconsistency with Infinite loop

Download this release

Release Info

Developer thehappymonster
Plugin Icon 128x128 Happy Addons for Elementor (Mega Menu, Post Grid, Woocommerce Product Grid, Table, Event Calendar, Slider Elementor Widget)
Version 2.18.0
Comparing to
See all releases

Code changes from version 2.17.1 to 2.18.0

assets/admin/js/editor.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";window.haHasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},window.haGetFeatureLabel=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},window.haGetTranslated=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.haGetButtonWithIcon=function(e,t){var n,o,i,r,a,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)){d=e.model.attributes.settings.toJSON();var l=_.isUndefined(d[t.text])?"":d[t.text],c=!(_.isUndefined(d[t.oldIcon])||!d[t.oldIcon]),p=!(_.isUndefined(d[t.newIcon])||!_.isObject(d[t.newIcon])||!d[t.newIcon].value);if(l||p||c)return haHasIconLibrary()&&(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),(p||c)&&(haHasIconLibrary()&&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||p||c?l||!p&&!c?l&&(p||c)&&("before"===d[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),r=i,a="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),a=i,r="<span "+e.getRenderAttributeString(t.text)+">"+l+"</span>"),s=["<a "+e.getRenderAttributeString("button")+">",r,a,"</a>"]):s=["<a "+e.getRenderAttributeString("button")+">",i,"</a>"]:s=["<a "+e.getRenderAttributeString("button")+">","<span "+e.getRenderAttributeString(t.text)+">",l,"</span>","</a>"],s.join("")}};var t,n=elementor.modules.controls.Select2;t=function(){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)})},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.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,r=e.elements.options.collection,a=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){r.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),r.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=a.findIndex({name:"happy_addons_category"}),n&&a.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:haGetTranslated("promotionDialogHeader",[this.model.get("title")]),message:haGetTranslated("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});var o=n.extend({ALLOW_RERENDER:!0,getSelect2DefaultOptions:function(){var t=n.prototype.getSelect2DefaultOptions.apply(this,arguments);if(this.container&&"section"===this.container.type){var o=elementor.widgetsCache||elementor.config.widgets,i={},r=[];this.container.children.forEach(function(t){t.view.$childViewContainer.children("[data-widget_type]").each(function(t,n){var r=e(n).data("widget_type"),r=r.slice(0,r.lastIndexOf(".")),a=!_.isUndefined(o[r])&&o[r];a&&(i[a.widget_type]=a.title+" ("+a.widget_type+")")})}),_.each(i,function(e,t){r.push({id:t,text:e})}),t.data=r,this.model.set("options",i)}return t},onRender:function(){if(n.prototype.onRender.apply(this,arguments),this.container&&"section"===this.container.type&&this.ALLOW_RERENDER){var e=this,t=setTimeout(function(){e.render(),clearTimeout(t)},20);this.ALLOW_RERENDER=!1}}});elementor.addControlView("widget-list",o)}(jQuery);
1
+ !function(e){"use strict";window.haHasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},window.haGetFeatureLabel=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},window.haGetTranslated=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.haGetButtonWithIcon=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)){d=e.model.attributes.settings.toJSON();var l=_.isUndefined(d[t.text])?"":d[t.text],c=!(_.isUndefined(d[t.oldIcon])||!d[t.oldIcon]),p=!(_.isUndefined(d[t.newIcon])||!_.isObject(d[t.newIcon])||!d[t.newIcon].value);if(l||p||c)return haHasIconLibrary()&&(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),(p||c)&&(haHasIconLibrary()&&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||p||c?l||!p&&!c?l&&(p||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("")}};var t=function(){var t=e("#happy-addons-editor-dark-css");t.length||(t=e("<link>",{id:"happy-addons-editor-dark-css",rel:"stylesheet",href:HappyAddonsEditor.dark_stylesheet_url})),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)})};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.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.placeholder_widgets))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.placeholder_widgets,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:haGetTranslated("promotionDialogHeader",[this.model.get("title")]),message:haGetTranslated("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});var n=elementor.modules.controls.Select2.extend({onBeforeRender:function(){if(this.container&&"section"===this.container.type){var t=elementor.widgetsCache||elementor.config.widgets,n={};this.container.children.forEach(function(o){o.view.$childViewContainer.children("[data-widget_type]").each(function(o,i){var a=e(i).data("widget_type"),a=a.slice(0,a.lastIndexOf(".")),r=!_.isUndefined(t[a])&&t[a];r&&(n[r.widget_type]=r.title+" ("+r.widget_type+")")})}),this.model.set("options",n)}}});elementor.addControlView("widget-list",n);var o=elementor.modules.controls.BaseData.extend({getSelect2Placeholder:function(){return this.ui.select.children('option:first[value=""]').text()||this.model.get("placeholder")},getSelect2DefaultOptions:function(){var t=this;return{allowClear:!0,placeholder:this.getSelect2Placeholder(),dir:elementorCommon.config.isRTL?"rtl":"ltr",minimumInputLength:1,ajax:{url:ajaxurl,dataType:"json",method:"POST",delay:250,data:function(n){var o={nonce:HappyAddonsEditor.editor_nonce,action:"ha_process_dynamic_select",object_type:"post",query_term:n.term};return e.extend(o,t.model.get("dynamic_params"))},processResults:function(e){if(!e.success||0===e.data.length)return{results:[{id:-1,text:"No results found",disabled:!0}]};var t=[];return _.each(e.data,function(e,n){t.push({id:n,text:e})}),{results:t}},cache:!0}}},getSelect2Options:function(){return e.extend(this.getSelect2DefaultOptions(),this.model.get("select2options"))},addLoadingSpinner:function(){this.$el.find(".elementor-control-title").after('<span class="elementor-control-spinner">&nbsp;<i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>')},onBeforeRender:function(){if(!this.isRendered){var t=this,n=this.getControlValue();if(!_.isEmpty(n)){_.isArray(n)||(n=[n]);var o={nonce:HappyAddonsEditor.editor_nonce,action:"ha_process_dynamic_select",object_type:"post",saved_values:n};e.ajax({url:ajaxurl,type:"POST",data:e.extend(o,t.model.get("dynamic_params")),beforeSend:t.addLoadingSpinner.bind(this),success:function(n){if(n.success&&0!==n.data.length){var o=o=_.keys(n.data).map(function(t){return" "+e.trim(t)});t.container.settings.set(t.model.get("name"),o),t.model.set("options",n.data),t.render()}}})}}},applySavedValue:function(){elementor.modules.controls.BaseData.prototype.applySavedValue.apply(this,arguments),this.ui.select.data("select2")?this.ui.select.trigger("change"):(this.ui.select.select2(this.getSelect2Options()),this.model.get("sortable")&&this.initSortable())},initSortable:function(){var e=this.$el.find("ul.select2-selection__rendered"),t=this;e.sortable({containment:"parent",update:function(){t._orderSortedOption(e),t.container.settings.setExternalChange(t.model.get("name"),t.ui.select.val()),t.model.set("options",t.ui.select.val())}})},_orderSortedOption:function(t){var n=this;t.children("li[title]").each(function(t,o){var i=n.ui.select.children("option").filter(function(){return e(this).html()==o.title});n._moveOptionToEnd(i)})},_moveOptionToEnd:function(e){var t=e.parent();e.detach(),t.append(e)},onBeforeDestroy:function(){this.ui.select.select2("destroy"),this.$el.remove()}});elementor.addControlView("ha_advanced_select2",o)}(jQuery);
assets/admin/js/select2.min.js DELETED
@@ -1 +0,0 @@
1
- !function(e){"use strict";jQuery(window).on("elementor:init",function(){var t=elementor.modules.controls.BaseData.extend({isPostSearchReady:!1,dataQueryOption:function(){var e=this,t=e.model.get("data_options");return!(!t&&"object"!=typeof t)&&t},getPostTitlesbyID:function(){var t=this,o=this.dataQueryOption(),n=this.getControlValue();if(n&&0!==n.length){_.isArray(n)||(n=[n]);var s={security:HappyAddonsEditor.select2Secret,select_type:"selected",id:n};e.ajax({url:ajaxurl,type:"POST",data:e.extend({},s,o),before:t.addControlSpinner(),success:function(e){t.isPostSearchReady=!0,t.model.set("options",e),t.render()}})}},addControlSpinner:function(){this.ui.select.prop("disabled",!0),this.$el.find(".elementor-control-title").after('<span class="elementor-control-spinner">&nbsp;<i class="eicon-spinner eicon-animation-spin"></i>&nbsp;</span>')},onReady:function(){var t=this;this.dataQueryOption()&&(this.ui.select.select2({placeholder:t.model.get("placeholder")?t.model.get("placeholder"):"Search",minimumInputLength:t.model.get("mininput")?t.model.get("mininput"):0,allowClear:!0,ajax:{url:ajaxurl,dataType:"json",method:"post",delay:250,data:function(o){var n={security:HappyAddonsEditor.select2Secret,select_type:"choose",q:o.term},s=t.model.get("data_options");return e.extend({},n,s)},processResults:function(e){var t=[{id:-1,text:"No results found",disabled:!0}];return{results:null!==e?e:t}},cache:!0}}),this.isPostSearchReady||this.getPostTitlesbyID())},onBeforeDestroy:function(){this.ui.select.data("select2")&&this.ui.select.select2("destroy"),this.$el.remove()}});elementor.addControlView("ha-select2",t)})}(jQuery);
 
assets/css/main.css CHANGED
@@ -19,7 +19,7 @@
19
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;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{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{color:#242424}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}
20
  .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}
21
  .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;-o-object-fit:cover;object-fit:cover}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em;fill:currentColor}.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}
22
- .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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
23
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.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}
24
  .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;-o-object-fit:cover;object-fit:cover}.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)}
25
  .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}
19
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;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{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{color:#242424}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}
20
  .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}
21
  .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;-o-object-fit:cover;object-fit:cover}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em;fill:currentColor}.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}
22
+ .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;cursor:pointer}.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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
23
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.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}
24
  .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;-o-object-fit:cover;object-fit:cover}.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)}
25
  .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}
assets/css/main.min.css CHANGED
@@ -19,7 +19,7 @@
19
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;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{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{color:#242424}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}
20
  .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}
21
  .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;-o-object-fit:cover;object-fit:cover}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em;fill:currentColor}.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}
22
- .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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
23
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.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}
24
  .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;-o-object-fit:cover;object-fit:cover}.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)}
25
  .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}
19
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;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{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{color:#242424}.ha-news-ticker-wrapper li.ha-news-ticker-item a:hover{color:#e04c8a}
20
  .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}
21
  .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;-o-object-fit:cover;object-fit:cover}span.ha-post-list-icon{margin-right:8px;color:#242424;font-size:14px}span.ha-post-list-icon svg{width:auto;height:1em;fill:currentColor}.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}
22
+ .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;cursor:pointer}.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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
23
  .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{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;-ms-flex-align:baseline;margin-bottom:1rem;font-size:16px}.ha-pricing-table-features-list li>i,.ha-pricing-table-features-list li>svg{margin-right:.5rem;min-width:15px;text-align:center;font-size:.8em}.ha-pricing-table-features-list li>svg{width:auto;height:1em;fill:currentColor}.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}
24
  .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;-o-object-fit:cover;object-fit:cover}.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)}
25
  .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}
assets/css/widgets/post-tab.min.css CHANGED
@@ -1 +1 @@
1
- .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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
1
+ .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;cursor:pointer}.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{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;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;-o-object-fit:cover;object-fit:cover}.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}}
assets/js/happy-addons.js CHANGED
@@ -188,18 +188,18 @@
188
  break;
189
  }
190
 
191
- settings.slidesToShow = this.getElementSettings('slides_to_show') || 1;
192
  settings.responsive = [
193
  {
194
  breakpoint: elementorFrontend.config.breakpoints.lg,
195
  settings: {
196
- slidesToShow: (this.getElementSettings('slides_to_show_tablet') || settings.slidesToShow),
197
  }
198
  },
199
  {
200
  breakpoint: elementorFrontend.config.breakpoints.md,
201
  settings: {
202
- slidesToShow: (this.getElementSettings('slides_to_show_mobile') || this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow,
203
  }
204
  }
205
  ];
188
  break;
189
  }
190
 
191
+ settings.slidesToShow = parseInt( this.getElementSettings('slides_to_show') ) || 1;
192
  settings.responsive = [
193
  {
194
  breakpoint: elementorFrontend.config.breakpoints.lg,
195
  settings: {
196
+ slidesToShow: (parseInt(this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow),
197
  }
198
  },
199
  {
200
  breakpoint: elementorFrontend.config.breakpoints.md,
201
  settings: {
202
+ slidesToShow: (parseInt(this.getElementSettings('slides_to_show_mobile')) || parseInt(this.getElementSettings('slides_to_show_tablet'))) || settings.slidesToShow,
203
  }
204
  }
205
  ];
assets/js/happy-addons.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";function t(e,t,n){var i;return function(){var a=this,o=arguments,r=function(){i=null,n||e.apply(a,o)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(a,o)}}function n(t,n){var i=t.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(t){t.stopPropagation();var i=e(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function i(t){if(t.$element.on("click",t.selector,function(e){e.preventDefault()}),e.fn.magnificPopup){if(!t.isEnabled)return void e.magnificPopup.close();var n=e(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;t.$element.find(t.selector).magnificPopup({key:t.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(t.disableOnMobile&&n<i)&&!(t.disableOnTablet&&n>=i&&n<a)}})}}var a=e(window);e.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){a.trigger("resize.twentytwenty"),clearTimeout(e)},400)})};a.on("elementor/frontend/init",function(){var r=elementorModules.frontend.handlers.Base,s=r.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:e("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:e("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:t(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var t={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":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}return t.slidesToShow=this.getElementSettings("slides_to_show")||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:this.getElementSettings("slides_to_show_tablet")||t.slidesToShow}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:this.getElementSettings("slides_to_show_mobile")||this.getElementSettings("slides_to_show_tablet")||t.slidesToShow}}],e.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),l=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-number-text");t.numerator(t.data("animation"))})},d=function(t){elementorFrontend.waypoint(t,function(){t.find(".ha-skill-level").each(function(){var t=e(this),n=t.find(".ha-skill-level-text"),i=t.data("level");t.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},c=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings();n(this.$element,function(n){e.elements.$container.isotope({filter:n}),"*"!==n&&(t.selector=n),i(t)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),i(e.getLightBoxSettings())}}),h=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};n(e.$element,function(n){"*"!==n&&(a.lastRow="nojustify",t.selector=n),a.filter=n,e.elements.$container.justifiedGallery(a),i(t)})},onElementChange:function(e){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),i(this.getLightBoxSettings())}}),u=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var t=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),r="scroll"+o+t+n,s=this.wrapper.data("duration"),l="normal",d=10,c={transform:"translateX(0"+n+"px)"},h={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){d+=e(this).outerWidth(!0)}),i.css({width:d,display:"flex"}),e.keyframe.define([{name:r,"0%":c,"100%":h}]),i.playKeyframe({name:r,duration:s+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),f=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-fun-factor__content-number");t.numerator(t.data("animation"))})},m=function(t){elementorFrontend.waypoint(t,function(){var t=e(this),n=t.find(".ha-bar-chart-container"),i=t.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},p=function(t){var n=t.find(".ha-twitter-load-more"),i=t.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=e(this),o=a.data("settings"),r=a.data("total"),s=t.find(".ha-tweet-item").length;e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:s},success:function(t){r>s?e(t).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(e){}})})},g=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var n=this.wrapper.find(".ha-post-tab-filter"),i=n.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,t(function(t){t.preventDefault();var n=e(this),a=n.data("term"),r=n.closest(".ha-post-tab"),s=r.find(".ha-post-tab-content"),l=s.find(".ha-post-tab-loading"),d=s.find(".ha-post-tab-item-wrapper"),c=!1;0===l.length&&(i.removeClass("active"),d.removeClass("active"),n.addClass("active"),d.each(function(){var t=e(this),n=t.data("term");a===n&&(t.addClass("active"),c=!0)}),!1===c&&e.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(){s.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){s.find(".ha-post-tab-loading").remove(),s.append(e)},error:function(e){}}))},200))}}),y=function(t){var n=t.find(".ha-table__head-column-cell");t.find(".ha-table__body-row").each(function(t,i){e(i).find(".ha-table__body-row-cell").each(function(t,i){e(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(t).html()+"</div>")})})},_=function(t){var n=t.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=t.find(".ha-threesixty-rotation-magnify"),r=t.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=t.find(".ha-threesixty-rotation-play"),d=circlr(i,{play:!0});if("on"===a){var c=t.find(".ha-threesixty-rotation-autoplay");c.on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){c.trigger("click"),c.remove()},1e3)}else l.on("click",function(t){t.preventDefault();var n=e(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),d.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),d.stop()),r.remove()});o.on("click",function(n){t.find("img").each(function(){-1!==e(this).attr("style").indexOf("block")&&(HappySimplaMagnify(e(this)[0],s),o.css("display","none"),r.remove())})}),e(document).on("click",function(i){var a=e(i.target),s=t.find(".ha-img-magnifier-glass"),l=o.find("i");s.length&&a[0]!==l[0]&&(s.remove(),o.removeAttr("style")),a[0]===n[0]&&r.remove()}),n.on("mouseup mousedown",function(e){r.remove()})};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0})}),e("[data-ha-element-link]").on("click.onWrapperLink",function(){var t,n,i=e(this),a=i.data("ha-element-link"),o=i.data("id"),r=document.createElement("a");r.id="happy-addons-wrapper-link-"+o,r.href=a.url,r.target=a.is_external?"_blank":"_self",r.rel=a.nofollow?"nofollow noreferer":"",r.style.display="none",document.body.appendChild(r),t=document.getElementById(r.id),t.click(),n=setTimeout(function(){document.body.removeChild(t),clearTimeout(n)})});var v=function(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("has-bg-overlay")},b={"ha-image-compare.default":o,"ha-number.default":l,"ha-skills.default":d,"ha-fun-factor.default":f,"ha-bar-chart.default":m,"ha-twitter-feed.default":p,"ha-threesixty-rotation.default":_,"ha-data-table.default":y,widget:v};e.each(b,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)});var w={"ha-image-grid.default":c,"ha-justified-gallery.default":h,"ha-news-ticker.default":u,"ha-post-tab.default":g};e.each(w,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})})}(jQuery);
1
+ !function(e){"use strict";function t(e,t,n){var i;return function(){var a=this,o=arguments,r=function(){i=null,n||e.apply(a,o)},s=n&&!i;clearTimeout(i),i=setTimeout(r,t),s&&e.apply(a,o)}}function n(t,n){var i=t.find(".hajs-filter"),a=i.data("default-filter");i.length&&(i.on("click.onFilterNav","button",function(t){t.stopPropagation();var i=e(this);i.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"),n(i.data("filter"))}),i.find('[data-filter="'+a+'"]').click())}function i(t){if(t.$element.on("click",t.selector,function(e){e.preventDefault()}),e.fn.magnificPopup){if(!t.isEnabled)return void e.magnificPopup.close();var n=e(window).width(),i=elementorFrontendConfig.breakpoints.md,a=elementorFrontendConfig.breakpoints.lg;t.$element.find(t.selector).magnificPopup({key:t.key,type:"image",image:{titleSrc:function(e){return e.el.attr("title")?e.el.attr("title"):e.el.find("img").attr("alt")}},gallery:{enabled:!0,preload:[1,2]},zoom:{enabled:!0,duration:300,easing:"ease-in-out",opener:function(e){return e.is("img")?e:e.find("img")}},disableOn:function(){return!(t.disableOnMobile&&n<i)&&!(t.disableOnTablet&&n>=i&&n<a)}})}}var a=e(window);e.fn.getHappySettings=function(){return this.data("happy-settings")};var o=function(e){var t=e.find(".hajs-image-comparison"),n=t.getHappySettings();n[{on_hover:"move_slider_on_hover",on_swipe:"move_with_handle_only",on_click:"click_to_move"}[n.move_handle||"on_swipe"]]=!0,delete n.move_handle,t.imagesLoaded().done(function(){t.twentytwenty(n);var e=setTimeout(function(){a.trigger("resize.twentytwenty"),clearTimeout(e)},400)})};a.on("elementor/frontend/init",function(){var r=elementorModules.frontend.handlers.Base,s=r.extend({bindEvents:function(){this.removeArrows(),this.run()},removeArrows:function(){var e=this;this.elements.$container.on("init",function(){e.elements.$container.siblings().hide()})},getDefaultSettings:function(){return{autoplay:!0,arrows:!1,checkVisible:!1,container:".hajs-slick",dots:!1,infinite:!0,rows:0,slidesToShow:1,prevArrow:e("<div />").append(this.findElement(".slick-prev").clone().show()).html(),nextArrow:e("<div />").append(this.findElement(".slick-next").clone().show()).html()}},getDefaultElements:function(){return{$container:this.findElement(this.getSettings("container"))}},onElementChange:t(function(){this.elements.$container.slick("unslick"),this.run()},200),getSlickSettings:function(){var t={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":t.arrows=!0;break;case"dots":t.dots=!0;break;case"both":t.arrows=!0,t.dots=!0}return t.slidesToShow=parseInt(this.getElementSettings("slides_to_show"))||1,t.responsive=[{breakpoint:elementorFrontend.config.breakpoints.lg,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}},{breakpoint:elementorFrontend.config.breakpoints.md,settings:{slidesToShow:parseInt(this.getElementSettings("slides_to_show_mobile"))||parseInt(this.getElementSettings("slides_to_show_tablet"))||t.slidesToShow}}],e.extend({},this.getSettings(),t)},run:function(){this.elements.$container.slick(this.getSlickSettings())}}),l=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-number-text");t.numerator(t.data("animation"))})},d=function(t){elementorFrontend.waypoint(t,function(){t.find(".ha-skill-level").each(function(){var t=e(this),n=t.find(".ha-skill-level-text"),i=t.data("level");t.animate({width:i+"%"},500),n.numerator({toValue:i+"%",duration:1300,onStep:function(){n.append("%")}})})})},c=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getLayoutMode:function(){var e=this.getElementSettings("layout");return"even"===e?"masonry":e},getDefaultSettings:function(){return{itemSelector:".ha-image-grid__item",percentPosition:!0,layoutMode:this.getLayoutMode()}},getDefaultElements:function(){return{$container:this.findElement(".hajs-isotope")}},getLightBoxSettings:function(){return{key:"imagegrid",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings();n(this.$element,function(n){e.elements.$container.isotope({filter:n}),"*"!==n&&(t.selector=n),i(t)})},onElementChange:function(e){-1!==["layout","image_height","columns","image_margin","enable_popup"].indexOf(e)&&this.run()},run:function(){var e=this;e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function(){e.elements.$container.isotope("layout")}),i(e.getLightBoxSettings())}}),h=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.run(),this.runFilter(),a.on("resize",t(this.run.bind(this),100))},getDefaultSettings:function(){return{rowHeight:+this.getElementSettings("row_height.size")||150,lastRow:this.getElementSettings("last_row"),margins:+this.getElementSettings("margins.size"),captions:!!this.getElementSettings("show_caption")}},getDefaultElements:function(){return{$container:this.findElement(".hajs-justified-grid")}},getLightBoxSettings:function(){return{key:"justifiedgallery",$element:this.$element,selector:".ha-js-lightbox",isEnabled:!!this.getElementSettings("enable_popup"),disableOnTablet:!!this.getElementSettings("disable_lightbox_on_tablet"),disableOnMobile:!!this.getElementSettings("disable_lightbox_on_mobile")}},runFilter:function(){var e=this,t=this.getLightBoxSettings(),a={lastRow:this.getElementSettings("last_row")};n(e.$element,function(n){"*"!==n&&(a.lastRow="nojustify",t.selector=n),a.filter=n,e.elements.$container.justifiedGallery(a),i(t)})},onElementChange:function(e){-1!==["row_height","last_row","margins","show_caption","enable_popup"].indexOf(e)&&this.run()},run:function(){this.elements.$container.justifiedGallery(this.getDefaultSettings()),i(this.getLightBoxSettings())}}),u=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-news-ticker-wrapper"),this.run()},onElementChange:function(e){"item_space"!==e&&"title_typography_font_size"!==e||this.run()},run:function(){var t=this.wrapper.innerHeight(),n=this.wrapper.innerWidth(),i=this.wrapper.find(".ha-news-ticker-container"),a=i.find(".ha-news-ticker-item"),o=this.wrapper.data("scroll-direction"),r="scroll"+o+t+n,s=this.wrapper.data("duration"),l="normal",d=10,c={transform:"translateX(0"+n+"px)"},h={transform:"translateX(-101%)"};"right"===o&&(l="reverse"),a.each(function(){d+=e(this).outerWidth(!0)}),i.css({width:d,display:"flex"}),e.keyframe.define([{name:r,"0%":c,"100%":h}]),i.playKeyframe({name:r,duration:s+"ms",timingFunction:"linear",delay:"0s",iterationCount:"infinite",direction:l,fillMode:"none",complete:function(){}})}}),f=function(e){elementorFrontend.waypoint(e,function(){var t=e.find(".ha-fun-factor__content-number");t.numerator(t.data("animation"))})},m=function(t){elementorFrontend.waypoint(t,function(){var t=e(this),n=t.find(".ha-bar-chart-container"),i=t.find("#ha-bar-chart"),a=n.data("settings");n.length&&new Chart(i,a)})},p=function(t){var n=t.find(".ha-twitter-load-more"),i=t.find(".ha-tweet-items");n.on("click",function(n){n.preventDefault();var a=e(this),o=a.data("settings"),r=a.data("total"),s=t.find(".ha-tweet-item").length;e.ajax({url:HappyLocalize.ajax_url,type:"POST",data:{action:"ha_twitter_feed_action",security:HappyLocalize.nonce,query_settings:o,loaded_item:s},success:function(t){r>s?e(t).appendTo(i):(a.text("All Loaded").addClass("loaded"),setTimeout(function(){a.css({display:"none"})},800))},error:function(e){}})})},g=r.extend({onInit:function(){r.prototype.onInit.apply(this,arguments),this.wrapper=this.$element.find(".ha-post-tab"),this.run()},run:function(){var n=this.wrapper.find(".ha-post-tab-filter"),i=n.find("li"),a=this.wrapper.data("event"),o=this.wrapper.data("query-args");i.on(a,t(function(t){t.preventDefault();var n=e(this),a=n.data("term"),r=n.closest(".ha-post-tab"),s=r.find(".ha-post-tab-content"),l=s.find(".ha-post-tab-loading"),d=s.find(".ha-post-tab-item-wrapper"),c=!1;0===l.length&&(i.removeClass("active"),d.removeClass("active"),n.addClass("active"),d.each(function(){var t=e(this),n=t.data("term");a===n&&(t.addClass("active"),c=!0)}),!1===c&&e.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(){s.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')},success:function(e){s.find(".ha-post-tab-loading").remove(),s.append(e)},error:function(e){}}))},200))}}),y=function(t){var n=t.find(".ha-table__head-column-cell");t.find(".ha-table__body-row").each(function(t,i){e(i).find(".ha-table__body-row-cell").each(function(t,i){e(i).prepend('<div class="ha-table__head-column-cell">'+n.eq(t).html()+"</div>")})})},_=function(t){var n=t.find(".ha-threesixty-rotation-inner"),i=n.data("selector"),a=n.data("autoplay"),o=t.find(".ha-threesixty-rotation-magnify"),r=t.find(".ha-threesixty-rotation-360img"),s=o.data("zoom"),l=t.find(".ha-threesixty-rotation-play"),d=circlr(i,{play:!0});if("on"===a){var c=t.find(".ha-threesixty-rotation-autoplay");c.on("click",function(e){e.preventDefault(),d.play(),r.remove()}),setTimeout(function(){c.trigger("click"),c.remove()},1e3)}else l.on("click",function(t){t.preventDefault();var n=e(this),i=n.find("i");i.hasClass("hm-play-button")?(i.removeClass("hm-play-button"),i.addClass("hm-stop"),d.play()):(i.removeClass("hm-stop"),i.addClass("hm-play-button"),d.stop()),r.remove()});o.on("click",function(n){t.find("img").each(function(){-1!==e(this).attr("style").indexOf("block")&&(HappySimplaMagnify(e(this)[0],s),o.css("display","none"),r.remove())})}),e(document).on("click",function(i){var a=e(i.target),s=t.find(".ha-img-magnifier-glass"),l=o.find("i");s.length&&a[0]!==l[0]&&(s.remove(),o.removeAttr("style")),a[0]===n[0]&&r.remove()}),n.on("mouseup mousedown",function(e){r.remove()})};elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e})}),elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default",function(e){elementorFrontend.elementsHandler.addHandler(s,{$element:e,autoplay:!1,container:".ha-horizontal-timeline-wrapper",navigation:"arrow",arrows:!0})}),e("[data-ha-element-link]").on("click.onWrapperLink",function(){var t,n,i=e(this),a=i.data("ha-element-link"),o=i.data("id"),r=document.createElement("a");r.id="happy-addons-wrapper-link-"+o,r.href=a.url,r.target=a.is_external?"_blank":"_self",r.rel=a.nofollow?"nofollow noreferer":"",r.style.display="none",document.body.appendChild(r),t=document.getElementById(r.id),t.click(),n=setTimeout(function(){document.body.removeChild(t),clearTimeout(n)})});var v=function(e){e.hasClass("elementor-element-edit-mode")&&e.addClass("has-bg-overlay")},b={"ha-image-compare.default":o,"ha-number.default":l,"ha-skills.default":d,"ha-fun-factor.default":f,"ha-bar-chart.default":m,"ha-twitter-feed.default":p,"ha-threesixty-rotation.default":_,"ha-data-table.default":y,widget:v};e.each(b,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,t)});var w={"ha-image-grid.default":c,"ha-justified-gallery.default":h,"ha-news-ticker.default":u,"ha-post-tab.default":g};e.each(w,function(e,t){elementorFrontend.hooks.addAction("frontend/element_ready/"+e,function(e){elementorFrontend.elementsHandler.addHandler(t,{$element:e})})})})}(jQuery);
base.php CHANGED
@@ -88,14 +88,13 @@ class Base {
88
 
89
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-cache.php' );
90
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/assets-cache.php' );
91
-
92
- include_once( HAPPY_ADDONS_DIR_PATH . 'classes/select2-handler.php' );
93
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/wpml-manager.php' );
94
 
95
  if ( is_admin() ) {
96
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/updater.php' );
97
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/dashboard.php' );
98
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/attention-seeker.php' );
 
99
  }
100
 
101
  if ( is_user_logged_in() ) {
88
 
89
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/widgets-cache.php' );
90
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/assets-cache.php' );
 
 
91
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/wpml-manager.php' );
92
 
93
  if ( is_admin() ) {
94
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/updater.php' );
95
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/dashboard.php' );
96
  include_once( HAPPY_ADDONS_DIR_PATH . 'classes/attention-seeker.php' );
97
+ include_once( HAPPY_ADDONS_DIR_PATH . 'classes/select2-handler.php' );
98
  }
99
 
100
  if ( is_user_logged_in() ) {
changelog.txt CHANGED
@@ -1,3 +1,10 @@
 
 
 
 
 
 
 
1
  = 2.17.1 - 24 December 2020 =
2
 
3
  - Fix: Wrapper link undefined url issue
@@ -46,7 +53,7 @@
46
  - New: Horizontal TimeLine widget
47
  - New: Social Share widget
48
  - New: Happy Icons v4 (44 new icons)
49
- - Tweak: Data Table row-cell text link option
50
  - Fix: On Demand Assets Loading compatibility with WPML
51
  - Fix: Post Tab widget compatibility with WPML
52
  - Fix: News Ticker widget compatibility with WPML
@@ -82,7 +89,7 @@
82
 
83
  - New: Updated compatibility with WP 5.5.x
84
  - New: Updated compatibility with Elementor 3.x.x
85
- - New: Twitter feed timestamp settings
86
  - Tweak: Removed unnecessary Elementor kit assets enqueue
87
  - Tweak: Removed common image styles, instead added widget wise
88
  - Fix: Templates compatibility issue with Elementor 3.x.x
1
+ = 2.18.0 - 5 January 2021 =
2
+
3
+ - New: Tabs are sortable in Post Tab widget
4
+ - Tweak: Added Post tab widget tab hover cursor
5
+ - Fix: Equal height control rendering issue
6
+ - Fix: Horizontal Timeline inconsistency with Infinite loop
7
+
8
  = 2.17.1 - 24 December 2020 =
9
 
10
  - Fix: Wrapper link undefined url issue
53
  - New: Horizontal TimeLine widget
54
  - New: Social Share widget
55
  - New: Happy Icons v4 (44 new icons)
56
+ - Tweak: Data Table row-cell text link option
57
  - Fix: On Demand Assets Loading compatibility with WPML
58
  - Fix: Post Tab widget compatibility with WPML
59
  - Fix: News Ticker widget compatibility with WPML
89
 
90
  - New: Updated compatibility with WP 5.5.x
91
  - New: Updated compatibility with Elementor 3.x.x
92
+ - New: Twitter feed timestamp settings
93
  - Tweak: Removed unnecessary Elementor kit assets enqueue
94
  - Tweak: Removed common image styles, instead added widget wise
95
  - Fix: Templates compatibility issue with Elementor 3.x.x
classes/assets-manager.php CHANGED
@@ -377,14 +377,11 @@ class Assets_Manager {
377
  self::enqueue_dark_stylesheet();
378
 
379
  $localize_data = [
380
- 'proWidgets' => [],
381
- 'hasPro' => ha_has_pro(),
382
- 'editorPanelHomeLinkURL' => ha_get_dashboard_link(),
383
- 'editorPanelWidgetsLinkURL' => ha_get_dashboard_link( '#widgets' ),
384
- 'select2Secret' => wp_create_nonce( 'HappyAddons_Select2_Secret' ),
385
- 'darkStylesheetURL' => self::get_dark_stylesheet_url(),
386
  'i18n' => [
387
- 'editorPanelHomeLinkTitle' => esc_html__( 'HappyAddons', 'happy-elementor-addons' ),
388
  'promotionDialogHeader' => esc_html__( '%s Widget', 'happy-elementor-addons' ),
389
  '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' ),
390
  'templatesEmptyTitle' => esc_html__( 'No Templates Found', 'happy-elementor-addons' ),
@@ -395,7 +392,7 @@ class Assets_Manager {
395
  ];
396
 
397
  if ( ! ha_has_pro() && ha_is_elementor_version( '>=', '2.9.0' ) ) {
398
- $localize_data['proWidgets'] = Widgets_Manager::get_pro_widget_map();
399
  }
400
 
401
  wp_localize_script(
377
  self::enqueue_dark_stylesheet();
378
 
379
  $localize_data = [
380
+ 'placeholder_widgets' => [],
381
+ 'hasPro' => ha_has_pro(),
382
+ 'editor_nonce' => wp_create_nonce( 'ha_editor_nonce' ),
383
+ 'dark_stylesheet_url' => self::get_dark_stylesheet_url(),
 
 
384
  'i18n' => [
 
385
  'promotionDialogHeader' => esc_html__( '%s Widget', 'happy-elementor-addons' ),
386
  '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' ),
387
  'templatesEmptyTitle' => esc_html__( 'No Templates Found', 'happy-elementor-addons' ),
392
  ];
393
 
394
  if ( ! ha_has_pro() && ha_is_elementor_version( '>=', '2.9.0' ) ) {
395
+ $localize_data['placeholder_widgets'] = Widgets_Manager::get_pro_widget_map();
396
  }
397
 
398
  wp_localize_script(
classes/select2-handler.php CHANGED
@@ -1,147 +1,138 @@
1
  <?php
2
-
3
  namespace Happy_Addons\Elementor;
4
 
5
  defined( 'ABSPATH' ) || die();
6
 
7
- /**
8
- * Class Select2_Handler
9
- * @package Happy_Addons\Elementor
10
- */
11
  class Select2_Handler {
12
 
13
- public static function init () {
14
- add_action( 'wp_ajax_ha_post_list_query', [ __CLASS__, 'ha_post_list_query' ] );
15
- add_action( 'wp_ajax_ha_post_tab_select_query', [ __CLASS__, 'post_tab_query' ] );
16
- add_action( 'wp_ajax_ha_taxonomy_list_query', [ __CLASS__, 'taxonomy_list_query' ] );
17
  }
18
 
19
- /**
20
- * Return Post list based on post type
21
- */
22
- public static function ha_post_list_query () {
23
- $security = check_ajax_referer( 'HappyAddons_Select2_Secret', 'security' );
24
- if ( ! $security ) return;
25
- $post_type = isset( $_POST['post_type'] ) ? sanitize_text_field( $_POST['post_type'] ) : '';
26
- if ( ! $post_type ) return;
27
-
28
- $select_type = isset( $_POST['select_type'] ) ? $_POST['select_type'] : false;
29
- $search_string = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : '';
30
- $ids = isset( $_POST['id'] ) ? $_POST['id'] : array();
31
-
32
- $data = [];
33
- $arg = [
34
- 'post_status' => 'publish',
35
- 'post_type' => $post_type,
36
- 'posts_per_page' => -1,
37
- ];
38
- $arg['s'] = $search_string;
39
- $arg['post__in'] = $ids;
40
- $query = new \WP_Query( $arg );
41
- if ( $select_type === 'choose' && $query->have_posts() ) {
42
- while ( $query->have_posts() ) {
43
- $query->the_post();
44
- $data[] = [
45
- 'id' => get_the_id(),
46
- 'text' => get_the_title(),
47
- ];
48
- }
49
- wp_reset_postdata();
50
  }
51
- if ( $select_type === 'selected' && $query->have_posts() ) {
52
- while ( $query->have_posts() ) {
53
- $query->the_post();
54
- $data[get_the_id()] = get_the_title();
55
- }
56
- wp_reset_postdata();
57
  }
58
- // return the results in json.
59
- wp_send_json( $data );
 
 
 
60
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  }
62
 
63
- /**
64
- * Return Post tab query value
65
- */
66
- public static function post_tab_query () {
67
- $security = check_ajax_referer( 'HappyAddons_Select2_Secret', 'security' );
68
- if ( ! $security ) return;
69
- $tax_id = isset( $_POST['tax_id'] ) ? sanitize_text_field( $_POST['tax_id'] ) : '';
70
- if ( ! $tax_id ) return;
71
-
72
- $select_type = isset( $_POST['select_type'] ) ? $_POST['select_type'] : false;
73
- $search = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : '';
74
- $ids = isset( $_POST['id'] ) ? $_POST['id'] : array();
75
-
76
- $arg = [
77
- 'taxonomy' => $tax_id,
78
- 'hide_empty' => true,
79
- 'include' => $ids,
80
  ];
81
- if($search)
82
- $arg['search'] = $search;
83
- $terms = get_terms( $arg );
84
-
85
- $data = [];
86
- if ( $select_type === 'choose' ) {
87
- foreach ($terms as $value){
88
- $data[] = [
89
- 'id' => $value->term_id,
90
- 'text' => $value->name . ' ('. $value->count.')',
91
- ];
92
- }
93
  }
94
- if ( $select_type === 'selected' ) {
95
- foreach ($terms as $value){
96
- $data[ $value->term_id ] = $value->name;
97
- }
 
 
 
 
 
 
 
98
  }
99
- // return the results in json.
100
- wp_send_json( $data );
101
 
 
 
 
 
 
 
 
 
102
  }
103
 
104
- /**
105
- * Return Taxonomy query value
106
- */
107
- public static function taxonomy_list_query () {
108
- $security = check_ajax_referer( 'HappyAddons_Select2_Secret', 'security' );
109
- if ( ! $security ) return;
110
- $taxonomy_type = isset( $_POST['taxonomy_type'] ) ? sanitize_text_field( $_POST['taxonomy_type'] ) : '';
111
- if ( ! $taxonomy_type ) return;
112
-
113
- $select_type = isset( $_POST['select_type'] ) ? $_POST['select_type'] : false;
114
- $search = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : '';
115
- $ids = isset( $_POST['id'] ) ? $_POST['id'] : array();
116
-
117
- $arg = [
118
- 'taxonomy' => $taxonomy_type,
119
- 'hide_empty' => true,
120
- 'include' => $ids,
121
  ];
122
- if($search)
123
- $arg['search'] = $search;
124
- $terms = get_terms( $arg );
125
-
126
- $data = [];
127
- if ( $select_type === 'choose' ) {
128
- foreach ($terms as $value){
129
- $data[] = [
130
- 'id' => $value->term_id,
131
- 'text' => $value->name,
132
- ];
133
- }
134
  }
135
- if ( $select_type === 'selected' ) {
136
- foreach ($terms as $value){
137
- $data[ $value->term_id ] = $value->name;
138
- }
 
139
  }
140
- // return the results in json.
141
- wp_send_json( $data );
142
 
143
- }
 
 
 
 
 
 
144
 
 
 
 
 
 
 
 
 
145
  }
146
 
147
  Select2_Handler::init();
1
  <?php
 
2
  namespace Happy_Addons\Elementor;
3
 
4
  defined( 'ABSPATH' ) || die();
5
 
6
+ use Exception;
7
+
 
 
8
  class Select2_Handler {
9
 
10
+ public static function init() {
11
+ add_action( 'wp_ajax_ha_process_dynamic_select', [ __CLASS__, 'process_request' ] );
 
 
12
  }
13
 
14
+ protected static function validate_reqeust() {
15
+ $nonce = ! empty( $_REQUEST['nonce'] ) ? $_REQUEST['nonce'] : '';
16
+
17
+ if ( ! wp_verify_nonce( $nonce, 'ha_editor_nonce' ) ) {
18
+ throw new Exception( 'Invalid request' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  }
20
+
21
+ if ( ! current_user_can( 'edit_posts' ) ) {
22
+ throw new Exception( 'Unauthorized request' );
 
 
 
23
  }
24
+ }
25
+
26
+ public static function process_request() {
27
+ try {
28
+ self::validate_reqeust();
29
 
30
+ $object_type = ! empty( $_REQUEST['object_type'] ) ? trim( $_REQUEST['object_type'] ) : '';
31
+
32
+ if ( ! in_array( $object_type, [ 'post', 'term', 'user' ], true ) ) {
33
+ throw new Exception( 'Invalid object type' );
34
+ }
35
+
36
+ $response = [];
37
+
38
+ if ( $object_type === 'post' ) {
39
+ $response = self::process_post();
40
+ }
41
+
42
+ if ( $object_type === 'term' ) {
43
+ $response = self::process_term();
44
+ }
45
+
46
+ wp_send_json_success( $response );
47
+ } catch( Exception $e ) {
48
+ wp_send_json_error( $e->getMessage() );
49
+ }
50
  }
51
 
52
+ public static function process_post() {
53
+ $post_type = ! empty( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : 'any';
54
+ $query_term = ! empty( $_REQUEST['query_term'] ) ? $_REQUEST['query_term'] : '';
55
+ $saved_values = ! empty( $_REQUEST['saved_values'] ) ? $_REQUEST['saved_values'] : 0;
56
+
57
+ $args = [
58
+ 'post_type' => $post_type,
59
+ 'suppress_filters' => false,
60
+ 'posts_per_page' => 20,
61
+ 'orderby' => 'title',
62
+ 'order' => 'ASC',
63
+ 'post_status' => 'publish',
 
 
 
 
 
64
  ];
65
+
66
+ if ( $query_term ) {
67
+ $args['s'] = $query_term;
 
 
 
 
 
 
 
 
 
68
  }
69
+
70
+ if ( $saved_values ) {
71
+ $args['post__in'] = $saved_values;
72
+ $args['posts_per_page'] = count( $saved_values );
73
+ $args['orderby'] = 'post__in';
74
+ }
75
+
76
+ $posts = get_posts( $args );
77
+
78
+ if ( empty( $posts ) ) {
79
+ return [];
80
  }
 
 
81
 
82
+ $out = [];
83
+
84
+ foreach ( $posts as $post ) {
85
+ // extra space is needed to maintain order in elementor control
86
+ $out[" {$post->ID}"] = esc_html( $post->post_title );
87
+ }
88
+
89
+ return $out;
90
  }
91
 
92
+ public static function process_term() {
93
+ $term_taxonomy = ! empty( $_REQUEST['term_taxonomy'] ) ? $_REQUEST['term_taxonomy'] : '';
94
+ $query_term = ! empty( $_REQUEST['query_term'] ) ? $_REQUEST['query_term'] : '';
95
+ $saved_values = ! empty( $_REQUEST['saved_values'] ) ? $_REQUEST['saved_values'] : 0;
96
+
97
+ if ( empty( $term_taxonomy ) ) {
98
+ throw new Exception( 'Invalid taxonomy' );
99
+ }
100
+
101
+ $args = [
102
+ 'taxonomy' => $term_taxonomy,
103
+ 'hide_empty' => false,
104
+ 'orderby' => 'name',
105
+ 'order' => 'ASC',
106
+ 'number' => 20,
 
 
107
  ];
108
+
109
+ if ( $query_term ) {
110
+ $args['search'] = $query_term;
111
+ $args['count'] = true;
 
 
 
 
 
 
 
 
112
  }
113
+
114
+ if ( $saved_values ) {
115
+ $args['include'] = $saved_values;
116
+ $args['number'] = count( $saved_values );
117
+ $args['orderby'] = 'include';
118
  }
 
 
119
 
120
+ $terms = get_terms( $args );
121
+
122
+ if ( empty( $terms ) || is_wp_error( $terms ) ) {
123
+ return [];
124
+ }
125
+
126
+ $out = [];
127
 
128
+ foreach ( $terms as $term ) {
129
+ $title = ! empty( $query_term ) ? "{$term->name} ({$term->count})" : $term->name;
130
+ // extra space is needed to maintain order in elementor control
131
+ $out[" {$term->term_id}"] = $title;
132
+ }
133
+
134
+ return $out;
135
+ }
136
  }
137
 
138
  Select2_Handler::init();
controls/select2.php CHANGED
@@ -1,21 +1,21 @@
1
  <?php
2
  /**
3
- * Select2 Update control class
4
  *
5
  * @package Happy_Addons
6
  */
7
  namespace Happy_Addons\Elementor\Controls;
8
 
9
- use Elementor\Base_Data_Control;
10
 
11
  defined( 'ABSPATH' ) || die();
12
 
13
- class Select2 extends Base_Data_Control {
14
 
15
  /**
16
  * Control identifier
17
  */
18
- const TYPE = 'ha-select2';
19
 
20
  /**
21
  * Set control type.
@@ -24,18 +24,6 @@ class Select2 extends Base_Data_Control {
24
  return self::TYPE;
25
  }
26
 
27
- /**
28
- * Enqueue control scripts and styles.
29
- */
30
- public function enqueue() {
31
- wp_enqueue_script(
32
- 'ha-select2',
33
- HAPPY_ADDONS_ASSETS . 'admin/js/select2.min.js',
34
- ['jquery'],
35
- HAPPY_ADDONS_VERSION
36
- );
37
- }
38
-
39
  /**
40
  * Get select2 control default settings.
41
  *
@@ -48,48 +36,20 @@ class Select2 extends Base_Data_Control {
48
  */
49
  protected function get_default_settings() {
50
  return [
51
- 'options' => [],
52
- 'multiple' => false,
 
 
53
  'select2options' => [],
54
  ];
55
  }
56
 
57
  /**
58
- * Render select2 control output in the editor.
59
- *
60
- * Used to generate the control HTML in the editor using Underscore JS
61
- * template. The variables for the class are available using `data` JS
62
- * object.
63
- *
64
- * @access public
65
  */
66
- public function content_template() {
67
- $control_uid = $this->get_control_uid();
68
- ?>
69
- <div class="elementor-control-field">
70
- <# if ( data.label ) {#>
71
- <label for="<?php echo $control_uid; ?>" class="elementor-control-title">{{{ data.label }}}</label>
72
- <# } #>
73
- <div class="elementor-control-input-wrapper">
74
- <# var multiple = ( data.multiple ) ? 'multiple' : ''; #>
75
- <select id="<?php echo $control_uid; ?>" class="elementor-select2" type="select2" {{ multiple }} data-setting="{{ data.name }}">
76
- <# _.each( data.options, function( option_title, option_value ) {
77
- var value = data.controlValue;
78
- if ( typeof value == 'string' ) {
79
- var selected = ( option_value === value ) ? 'selected' : '';
80
- } else if ( null !== value ) {
81
- var value = _.values( value );
82
- var selected = ( -1 !== value.indexOf( option_value ) ) ? 'selected' : '';
83
- }
84
- #>
85
- <option {{ selected }} value="{{ option_value }}">{{{ option_title }}}</option>
86
- <# } ); #>
87
- </select>
88
- </div>
89
- </div>
90
- <# if ( data.description ) { #>
91
- <div class="elementor-control-field-description">{{{ data.description }}}</div>
92
- <# } #>
93
- <?php
94
  }
95
  }
1
  <?php
2
  /**
3
+ * Dynamic select control class.
4
  *
5
  * @package Happy_Addons
6
  */
7
  namespace Happy_Addons\Elementor\Controls;
8
 
9
+ use Elementor\Control_Select2;
10
 
11
  defined( 'ABSPATH' ) || die();
12
 
13
+ class Select2 extends Control_Select2 {
14
 
15
  /**
16
  * Control identifier
17
  */
18
+ const TYPE = 'ha_advanced_select2';
19
 
20
  /**
21
  * Set control type.
24
  return self::TYPE;
25
  }
26
 
 
 
 
 
 
 
 
 
 
 
 
 
27
  /**
28
  * Get select2 control default settings.
29
  *
36
  */
37
  protected function get_default_settings() {
38
  return [
39
+ 'options' => [],
40
+ 'multiple' => false,
41
+ 'sortable' => false,
42
+ 'dynamic_params' => [],
43
  'select2options' => [],
44
  ];
45
  }
46
 
47
  /**
48
+ * Enqueue control scripts and styles.
 
 
 
 
 
 
49
  */
50
+ public function enqueue() {
51
+ if ( $this->get_settings( 'sortable' ) ) {
52
+ wp_enqueue_script( 'jquery-ui-sortable' );
53
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  }
55
  }
extensions/wrapper-link.php CHANGED
@@ -8,58 +8,57 @@ defined('ABSPATH') || die();
8
 
9
  class Wrapper_Link {
10
 
11
- public static function init() {
12
- add_action( 'elementor/element/column/section_advanced/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
13
- add_action( 'elementor/element/section/section_advanced/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
14
- add_action( 'elementor/element/common/_section_style/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
15
 
16
- add_action( 'elementor/frontend/before_render', [ __CLASS__, 'before_section_render' ], 1 );
17
- }
18
 
19
- public static function add_controls_section( Element_Base $element) {
20
- $tabs = Controls_Manager::TAB_CONTENT;
21
 
22
- if ( 'section' === $element->get_name() || 'column' === $element->get_name() ) {
23
- $tabs = Controls_Manager::TAB_LAYOUT;
24
- }
25
 
26
- $element->start_controls_section(
27
- '_section_ha_wrapper_link',
28
- [
29
- 'label' => __( 'Wrapper Link', 'happy-elementor-addons' ) . ha_get_section_icon(),
30
- 'tab' => $tabs,
31
- ]
32
- );
33
 
34
- $element->add_control(
35
- 'ha_element_link',
36
- [
37
- 'label' => __( 'Link', 'happy-elementor-addons' ),
38
  'type' => Controls_Manager::URL,
39
- 'dynamic' => [
40
- 'active' => true,
41
- ],
42
- 'placeholder' => 'https://example.com',
43
- ]
44
- );
45
 
46
- $element->end_controls_section();
47
- }
48
 
49
- public static function before_section_render( Element_Base $element ) {
50
- $settings = $element->get_settings_for_display();
51
- $ha_link = $settings['ha_element_link'];
52
 
53
- if ( $ha_link && ! empty( $ha_link['url'] ) ) {
54
- $element->add_render_attribute(
55
- '_wrapper',
56
- [
57
- 'data-ha-element-link' => json_encode( $ha_link ),
58
- 'style' => 'cursor: pointer'
59
- ]
60
- );
61
- }
62
- }
63
  }
64
 
65
  Wrapper_Link::init();
8
 
9
  class Wrapper_Link {
10
 
11
+ public static function init() {
12
+ add_action( 'elementor/element/column/section_advanced/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
13
+ add_action( 'elementor/element/section/section_advanced/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
14
+ add_action( 'elementor/element/common/_section_style/after_section_end', [ __CLASS__, 'add_controls_section' ], 1 );
15
 
16
+ add_action( 'elementor/frontend/before_render', [ __CLASS__, 'before_section_render' ], 1 );
17
+ }
18
 
19
+ public static function add_controls_section( Element_Base $element) {
20
+ $tabs = Controls_Manager::TAB_CONTENT;
21
 
22
+ if ( 'section' === $element->get_name() || 'column' === $element->get_name() ) {
23
+ $tabs = Controls_Manager::TAB_LAYOUT;
24
+ }
25
 
26
+ $element->start_controls_section(
27
+ '_section_ha_wrapper_link',
28
+ [
29
+ 'label' => __( 'Wrapper Link', 'happy-elementor-addons' ) . ha_get_section_icon(),
30
+ 'tab' => $tabs,
31
+ ]
32
+ );
33
 
34
+ $element->add_control(
35
+ 'ha_element_link',
36
+ [
37
+ 'label' => __( 'Link', 'happy-elementor-addons' ),
38
  'type' => Controls_Manager::URL,
39
+ 'dynamic' => [
40
+ 'active' => true,
41
+ ],
42
+ 'placeholder' => 'https://example.com',
43
+ ]
44
+ );
45
 
46
+ $element->end_controls_section();
47
+ }
48
 
49
+ public static function before_section_render( Element_Base $element ) {
50
+ $link_settings = $element->get_settings_for_display( 'ha_element_link' );
 
51
 
52
+ if ( $link_settings && ! empty( $link_settings['url'] ) ) {
53
+ $element->add_render_attribute(
54
+ '_wrapper',
55
+ [
56
+ 'data-ha-element-link' => json_encode( $link_settings ),
57
+ 'style' => 'cursor: pointer'
58
+ ]
59
+ );
60
+ }
61
+ }
62
  }
63
 
64
  Wrapper_Link::init();
plugin.php CHANGED
@@ -3,9 +3,11 @@
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.17.1
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
 
 
9
  * License: GPLv2
10
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
11
  * Text Domain: happy-elementor-addons
@@ -34,7 +36,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
- define( 'HAPPY_ADDONS_VERSION', '2.17.1' );
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.18.0
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
+ * Elementor tested up to: 3.0.15
10
+ * Elementor Pro tested up to: 3.0.9
11
  * License: GPLv2
12
  * License URI: https://www.gnu.org/licenses/gpl-2.0.html
13
  * Text Domain: happy-elementor-addons
36
 
37
  defined( 'ABSPATH' ) || die();
38
 
39
+ define( 'HAPPY_ADDONS_VERSION', '2.18.0' );
40
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
41
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
42
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
- Version: 2.17.1
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
@@ -283,6 +283,13 @@ For a more detailed explanation check out the following documentation
283
 
284
  == Changelog ==
285
 
 
 
 
 
 
 
 
286
  = 2.17.1 - 24 December 2020 =
287
 
288
  - Fix: Wrapper link undefined url issue
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
+ Version: 2.18.0
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
283
 
284
  == Changelog ==
285
 
286
+ = 2.18.0 - 5 January 2021 =
287
+
288
+ - New: Tabs are sortable in Post Tab widget
289
+ - Tweak: Added Post tab widget tab hover cursor
290
+ - Fix: Equal height control rendering issue
291
+ - Fix: Horizontal Timeline inconsistency with Infinite loop
292
+
293
  = 2.17.1 - 24 December 2020 =
294
 
295
  - Fix: Wrapper link undefined url issue
widgets/post-list/widget.php CHANGED
@@ -4,10 +4,13 @@
4
  *
5
  * @package Happy_Addons
6
  */
7
-
8
  namespace Happy_Addons\Elementor\Widget;
9
 
 
 
10
  use Elementor\Controls_Manager;
 
 
11
  use Elementor\Group_Control_Border;
12
  use Elementor\Group_Control_Box_Shadow;
13
  use Elementor\Group_Control_Image_Size;
@@ -15,12 +18,8 @@ use Elementor\Group_Control_Text_Shadow;
15
  use Elementor\Group_Control_Typography;
16
  use Elementor\Icons_Manager;
17
  use Elementor\Repeater;
18
- use Elementor\Core\Schemes;
19
- use Elementor\Group_Control_Background;
20
  use Happy_Addons\Elementor\Controls\Select2;
21
 
22
- defined( 'ABSPATH' ) || die();
23
-
24
  class Post_List extends Base {
25
 
26
  /**
@@ -138,9 +137,9 @@ class Post_List extends Base {
138
  'type' => Select2::TYPE,
139
  'multiple' => false,
140
  'placeholder' => 'Search ' . $value,
141
- 'data_options' => [
142
- 'post_type' => $key,
143
- 'action' => 'ha_post_list_query'
144
  ],
145
  ]
146
  );
4
  *
5
  * @package Happy_Addons
6
  */
 
7
  namespace Happy_Addons\Elementor\Widget;
8
 
9
+ defined( 'ABSPATH' ) || die();
10
+
11
  use Elementor\Controls_Manager;
12
+ use Elementor\Core\Schemes;
13
+ use Elementor\Group_Control_Background;
14
  use Elementor\Group_Control_Border;
15
  use Elementor\Group_Control_Box_Shadow;
16
  use Elementor\Group_Control_Image_Size;
18
  use Elementor\Group_Control_Typography;
19
  use Elementor\Icons_Manager;
20
  use Elementor\Repeater;
 
 
21
  use Happy_Addons\Elementor\Controls\Select2;
22
 
 
 
23
  class Post_List extends Base {
24
 
25
  /**
137
  'type' => Select2::TYPE,
138
  'multiple' => false,
139
  'placeholder' => 'Search ' . $value,
140
+ 'dynamic_params' => [
141
+ 'object_type' => 'post',
142
+ 'post_type' => $key,
143
  ],
144
  ]
145
  );
widgets/post-tab/widget.php CHANGED
@@ -8,11 +8,11 @@
8
  namespace Happy_Addons\Elementor\Widget;
9
 
10
  use Elementor\Controls_Manager;
 
11
  use Elementor\Group_Control_Border;
12
  use Elementor\Group_Control_Box_Shadow;
13
  use Elementor\Group_Control_Typography;
14
  use Elementor\Scheme_Typography;
15
- use Elementor\Group_Control_Background;
16
  use Happy_Addons\Elementor\Controls\Select2;
17
 
18
  defined( 'ABSPATH' ) || die();
@@ -127,16 +127,16 @@ class Post_Tab extends Base {
127
  'label_block' => true,
128
  'type' => Select2::TYPE,
129
  'multiple' => true,
 
130
  'placeholder' => 'Search ' . $tax_value,
131
- 'data_options' => [
132
- 'tax_id' => $tax_key,
133
- 'action' => 'ha_post_tab_select_query'
134
  ],
135
  'condition' => [
136
  'post_type' => $key,
137
  'tax_type_' . $key => $tax_key
138
  ],
139
- 'render_type' => 'template',
140
  ]
141
  );
142
  }
@@ -822,12 +822,14 @@ class Post_Tab extends Base {
822
 
823
  $taxonomy = $settings['tax_type_' . $settings['post_type']];
824
  $terms_ids = $settings['tax_ids_' . $taxonomy];
 
825
  $terms_args = [
826
- 'taxonomy' => $taxonomy,
827
  'hide_empty' => true,
828
- 'include' => $terms_ids,
829
- 'orderby' => 'term_id',
830
  ];
 
831
  $filter_list = get_terms( $terms_args );
832
 
833
  $post_args = [
8
  namespace Happy_Addons\Elementor\Widget;
9
 
10
  use Elementor\Controls_Manager;
11
+ use Elementor\Group_Control_Background;
12
  use Elementor\Group_Control_Border;
13
  use Elementor\Group_Control_Box_Shadow;
14
  use Elementor\Group_Control_Typography;
15
  use Elementor\Scheme_Typography;
 
16
  use Happy_Addons\Elementor\Controls\Select2;
17
 
18
  defined( 'ABSPATH' ) || die();
127
  'label_block' => true,
128
  'type' => Select2::TYPE,
129
  'multiple' => true,
130
+ 'sortable' => true,
131
  'placeholder' => 'Search ' . $tax_value,
132
+ 'dynamic_params' => [
133
+ 'term_taxonomy' => $tax_key,
134
+ 'object_type' => 'term'
135
  ],
136
  'condition' => [
137
  'post_type' => $key,
138
  'tax_type_' . $key => $tax_key
139
  ],
 
140
  ]
141
  );
142
  }
822
 
823
  $taxonomy = $settings['tax_type_' . $settings['post_type']];
824
  $terms_ids = $settings['tax_ids_' . $taxonomy];
825
+
826
  $terms_args = [
827
+ 'taxonomy' => $taxonomy,
828
  'hide_empty' => true,
829
+ 'include' => $terms_ids,
830
+ 'orderby' => 'include',
831
  ];
832
+
833
  $filter_list = get_terms( $terms_args );
834
 
835
  $post_args = [
widgets/taxonomy-list/widget.php CHANGED
@@ -8,16 +8,16 @@
8
  namespace Happy_Addons\Elementor\Widget;
9
 
10
  use Elementor\Controls_Manager;
 
 
11
  use Elementor\Group_Control_Border;
12
  use Elementor\Group_Control_Box_Shadow;
 
13
  use Elementor\Group_Control_Typography;
14
  use Elementor\Icons_Manager;
15
  use Elementor\Repeater;
16
  use Elementor\Utils;
17
- use Elementor\Core\Schemes;
18
- use Elementor\Group_Control_Background;
19
  use Happy_Addons\Elementor\Controls\Select2;
20
- use Elementor\Group_Control_Css_Filter;
21
 
22
  defined( 'ABSPATH' ) || die();
23
 
@@ -171,9 +171,9 @@ class Taxonomy_List extends Base {
171
  'type' => Select2::TYPE,
172
  'multiple' => false,
173
  'placeholder' => 'Search ' . $value,
174
- 'data_options' => [
175
- 'taxonomy_type' => $key,
176
- 'action' => 'ha_taxonomy_list_query'
177
  ],
178
  ]
179
  );
8
  namespace Happy_Addons\Elementor\Widget;
9
 
10
  use Elementor\Controls_Manager;
11
+ use Elementor\Core\Schemes;
12
+ use Elementor\Group_Control_Background;
13
  use Elementor\Group_Control_Border;
14
  use Elementor\Group_Control_Box_Shadow;
15
+ use Elementor\Group_Control_Css_Filter;
16
  use Elementor\Group_Control_Typography;
17
  use Elementor\Icons_Manager;
18
  use Elementor\Repeater;
19
  use Elementor\Utils;
 
 
20
  use Happy_Addons\Elementor\Controls\Select2;
 
21
 
22
  defined( 'ABSPATH' ) || die();
23
 
171
  'type' => Select2::TYPE,
172
  'multiple' => false,
173
  'placeholder' => 'Search ' . $value,
174
+ 'dynamic_params' => [
175
+ 'term_taxonomy' => $key,
176
+ 'object_type' => 'term'
177
  ],
178
  ]
179
  );