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

Version Description

  • 4 June 2020 =

  • Fix: JS function backward compatibility issue

  • Fix: ha_get_feature_label JS error issue in Pricing table

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.11.1
Comparing to
See all releases

Code changes from version 2.11.0 to 2.11.1

assets/admin/js/editor.js CHANGED
@@ -20,6 +20,11 @@
20
  return elementorCommon.translate(stringKey, null, templateArgs, HappyAddonsEditor.i18n);
21
  };
22
 
 
 
 
 
 
23
  ha.getButtonWithIcon = function(view, args) {
24
  var buttonMarkup = [],
25
  settings = {},
20
  return elementorCommon.translate(stringKey, null, templateArgs, HappyAddonsEditor.i18n);
21
  };
22
 
23
+ // For BC
24
+ window.ha_get_feature_label = ha.getFeatureLabel;
25
+ window.ha_has_icon_library = ha.hasIconLibrary;
26
+ window.ha_translate = ha.hasIconLibrary;
27
+
28
  ha.getButtonWithIcon = function(view, args) {
29
  var buttonMarkup = [],
30
  settings = {},
assets/admin/js/editor.min.js CHANGED
@@ -1 +1 @@
1
- !function(e){"use strict";function t(){return{translate:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],skew:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],scale:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],rotate:["x","y","z","x_tablet","y_tablet","z_tablet","x_mobile","y_mobile","z_mobile"]}}function n(e,t,n){e="ha_transform_fx_"+e,t="ha_transform_fx_"+t,n.on("change:"+e,function(e,o){if(!o){var i=elementor.getPanelView().getCurrentPageView().children.find(function(e){return e.model.get("name")===t});n.set(t,_.extend({},n.defaults[t])),i&&i.render()}})}function o(e){var o=elementorFrontend.config.elements.data[e.cid];_.each(t(),function(e,t){_.each(e,function(e){n(t+"_toggle",t+"_"+e,o)})}),elementor.getPanelView().getCurrentPageView().model.on("editor:close",function(){_.each(t(),function(e,t){o.off("change:ha_transform_fx_"+t+"_toggle")})})}if(window.ha=window.ha||{},ha.hasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},ha.getFeatureLabel=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},ha.translate=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},ha.getButtonWithIcon=function(e,t){var n,o,i,a,r,s=[],l={};return t=t||{},t=_.defaults(t,{oldIcon:"button_icon",iconPos:"button_icon_position",newIcon:"button_selected_icon",text:"button_text",link:"button_link",class:"ha-btn ha-btn--link",textClass:"ha-btn-text"}),!_.isObject(e)||_.isUndefined(e.getContainer)?"":(l=e.getContainer().settings.toJSON(),ha.hasIconLibrary()&&(n=elementor.helpers.renderIcon(e,l[t.newIcon],{"aria-hidden":!0,class:"ha-btn-icon"},"i","object"),o=elementor.helpers.isIconMigrated(l,t.newIcon)),e.addInlineEditingAttributes(t.text,"none"),e.addRenderAttribute(t.text,"class",t.textClass),e.addRenderAttribute("button","class",t.class),e.addRenderAttribute("button","href",l[t.link].url),(l[t.newIcon]&&l[t.newIcon].value||l[t.oldIcon])&&(ha.hasIconLibrary()&&n&&n.rendered&&(!l[t.oldIcon]||o)?i="svg"===l[t.newIcon].library?'<span class="ha-btn-icon ha-btn-icon--svg">'+n.value+"</span>":n.value:l[t.oldIcon]&&(i='<i class="ha-btn-icon '+t.oldIcon+'" aria-hidden="true"></i>')),!l[t.text]||l[t.newIcon]||l[t.oldIcon]?l[t.text]||!l[t.newIcon]&&!l[t.oldIcon]?l[t.text]&&(l[t.newIcon]||l[t.oldIcon])&&("before"===l[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),a=i,r="<span "+e.getRenderAttributeString(t.text)+">"+l[t.text]+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),r=i,a="<span "+e.getRenderAttributeString(t.text)+">"+l[t.text]+"</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[t.text],"</span>","</a>"],s.join(""))},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 t={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",t),$e.shortcuts.register("cmd+shift+g",t)}}),elementor.hooks.addAction("panel/open_editor/widget",function(e,t){o(t)}),elementor.modules.controls.Icons){var i=elementor.modules.controls.Icons.extend({getControlValue:function(){var e=this.constructor.__super__.getControlValue.call(this),t=this.model,n=this.getValueToMigrate(),o={value:"",library:"happy-icons"},i=this.container&&this.container.settings||this.elementSettingsModel;if(_.isObject(e)&&!_.isEmpty(e)&&"svg"!==e.library&&0===e.value.indexOf("fashm"))return o.value=e.value.substr(e.value.indexOf("hm hm-")),i.set(t.get("name"),o),o;if(!_.isObject(e)&&n&&0===n.indexOf("hm hm-"))return o.value=n,i.set(t.get("name"),o),o;if(!this.isMigrationAllowed())return n;if(!n)return e;var a=i.get(this.dataKeys.migratedKey),r=t.get("name");return this.cache.migratedFlag[r]?this.cache.migratedFlag[r]:a&&a[r]?e:this.migrateFa4toFa5(n)}});elementor.addControlView("icons",i)}elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-home",icon:"hm hm-happyaddons",title:ha.translate("editorPanelHomeLinkTitle"),type:"link",link:HappyAddonsEditor.editorPanelHomeLinkURL,newTab:!0},"settings"),elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-widgets",icon:"hm hm-cross-game",title:ha.translate("editorPanelWidgetsLinkTitle"),type:"link",link:HappyAddonsEditor.editorPanelWidgetsLinkURL,newTab:!0},"settings"),elementor.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.proWidgets))return e;var t,n,o=e.elements.view,i=e.categories.view,a=e.elements.options.collection,r=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){a.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),a.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=r.findIndex({name:"happy_addons_category"}),n&&r.add({name:"happy_addons_pro_category",title:"Happy Addons Pro",icon:"hm hm-happyaddons",defaultActive:!1,items:s},{at:n+1}),t={className:function(){var e=this.constructor.__super__.className.call(this);return!this.isEditable()&&this.isHappyWidget()&&(e+=" ha-element--promotion"),e},isHappyWidget:function(){return 0===this.model.get("name").indexOf("ha-")},onMouseDown:function(){if(!this.isHappyWidget())return elementor.promotion.dialog.buttons[0].removeClass("ha-btn--promotion"),void this.constructor.__super__.onMouseDown.call(this);elementor.promotion.dialog.buttons[0].addClass("ha-btn--promotion"),elementor.promotion.showDialog({headerMessage:ha.translate("promotionDialogHeader",[this.model.get("title")]),message:ha.translate("promotionDialogMessage",[this.model.get("title")]),top:"-7",element:this.el,actionURL:"https://demo.happyaddons.com/"})}},e.elements.view=o.extend({childView:o.prototype.childView.extend(t)}),e.categories.view=i.extend({childView:i.prototype.childView.extend({childView:i.prototype.childView.prototype.childView.extend(t)})}),e})}(jQuery);
1
+ !function(e){"use strict";function t(){return{translate:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],skew:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],scale:["x","y","x_tablet","y_tablet","x_mobile","y_mobile"],rotate:["x","y","z","x_tablet","y_tablet","z_tablet","x_mobile","y_mobile","z_mobile"]}}function n(e,t,n){e="ha_transform_fx_"+e,t="ha_transform_fx_"+t,n.on("change:"+e,function(e,o){if(!o){var a=elementor.getPanelView().getCurrentPageView().children.find(function(e){return e.model.get("name")===t});n.set(t,_.extend({},n.defaults[t])),a&&a.render()}})}function o(e){var o=elementorFrontend.config.elements.data[e.cid];_.each(t(),function(e,t){_.each(e,function(e){n(t+"_toggle",t+"_"+e,o)})}),elementor.getPanelView().getCurrentPageView().model.on("editor:close",function(){_.each(t(),function(e,t){o.off("change:ha_transform_fx_"+t+"_toggle")})})}if(window.ha=window.ha||{},ha.hasIconLibrary=function(){return elementor.helpers&&elementor.helpers.renderIcon},ha.getFeatureLabel=function(e){var t=document.createElement("DIV");return t.innerHTML=e,e=t.textContent||t.innerText||e,e.length>20?e.substring(0,20)+"...":e},ha.translate=function(e,t){return elementorCommon.translate(e,null,t,HappyAddonsEditor.i18n)},window.ha_get_feature_label=ha.getFeatureLabel,window.ha_has_icon_library=ha.hasIconLibrary,window.ha_translate=ha.hasIconLibrary,ha.getButtonWithIcon=function(e,t){var n,o,a,i,r,s=[],l={};return t=t||{},t=_.defaults(t,{oldIcon:"button_icon",iconPos:"button_icon_position",newIcon:"button_selected_icon",text:"button_text",link:"button_link",class:"ha-btn ha-btn--link",textClass:"ha-btn-text"}),!_.isObject(e)||_.isUndefined(e.getContainer)?"":(l=e.getContainer().settings.toJSON(),ha.hasIconLibrary()&&(n=elementor.helpers.renderIcon(e,l[t.newIcon],{"aria-hidden":!0,class:"ha-btn-icon"},"i","object"),o=elementor.helpers.isIconMigrated(l,t.newIcon)),e.addInlineEditingAttributes(t.text,"none"),e.addRenderAttribute(t.text,"class",t.textClass),e.addRenderAttribute("button","class",t.class),e.addRenderAttribute("button","href",l[t.link].url),(l[t.newIcon]&&l[t.newIcon].value||l[t.oldIcon])&&(ha.hasIconLibrary()&&n&&n.rendered&&(!l[t.oldIcon]||o)?a="svg"===l[t.newIcon].library?'<span class="ha-btn-icon ha-btn-icon--svg">'+n.value+"</span>":n.value:l[t.oldIcon]&&(a='<i class="ha-btn-icon '+t.oldIcon+'" aria-hidden="true"></i>')),!l[t.text]||l[t.newIcon]||l[t.oldIcon]?l[t.text]||!l[t.newIcon]&&!l[t.oldIcon]?l[t.text]&&(l[t.newIcon]||l[t.oldIcon])&&("before"===l[t.iconPos]?(e.addRenderAttribute("button","class","ha-btn--icon-before"),i=a,r="<span "+e.getRenderAttributeString(t.text)+">"+l[t.text]+"</span>"):(e.addRenderAttribute("button","class","ha-btn--icon-after"),r=a,i="<span "+e.getRenderAttributeString(t.text)+">"+l[t.text]+"</span>"),s=["<a "+e.getRenderAttributeString("button")+">",i,r,"</a>"]):s=["<a "+e.getRenderAttributeString("button")+">",a,"</a>"]:s=["<a "+e.getRenderAttributeString("button")+">","<span "+e.getRenderAttributeString(t.text)+">",l[t.text],"</span>","</a>"],s.join(""))},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 t={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",t),$e.shortcuts.register("cmd+shift+g",t)}}),elementor.hooks.addAction("panel/open_editor/widget",function(e,t){o(t)}),elementor.modules.controls.Icons){var a=elementor.modules.controls.Icons.extend({getControlValue:function(){var e=this.constructor.__super__.getControlValue.call(this),t=this.model,n=this.getValueToMigrate(),o={value:"",library:"happy-icons"},a=this.container&&this.container.settings||this.elementSettingsModel;if(_.isObject(e)&&!_.isEmpty(e)&&"svg"!==e.library&&0===e.value.indexOf("fashm"))return o.value=e.value.substr(e.value.indexOf("hm hm-")),a.set(t.get("name"),o),o;if(!_.isObject(e)&&n&&0===n.indexOf("hm hm-"))return o.value=n,a.set(t.get("name"),o),o;if(!this.isMigrationAllowed())return n;if(!n)return e;var i=a.get(this.dataKeys.migratedKey),r=t.get("name");return this.cache.migratedFlag[r]?this.cache.migratedFlag[r]:i&&i[r]?e:this.migrateFa4toFa5(n)}});elementor.addControlView("icons",a)}elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-home",icon:"hm hm-happyaddons",title:ha.translate("editorPanelHomeLinkTitle"),type:"link",link:HappyAddonsEditor.editorPanelHomeLinkURL,newTab:!0},"settings"),elementor.modules.layouts.panel.pages.menu.Menu.addItem({name:"happyaddons-widgets",icon:"hm hm-cross-game",title:ha.translate("editorPanelWidgetsLinkTitle"),type:"link",link:HappyAddonsEditor.editorPanelWidgetsLinkURL,newTab:!0},"settings"),elementor.hooks.addFilter("panel/elements/regionViews",function(e){if(HappyAddonsEditor.hasPro||_.isEmpty(HappyAddonsEditor.proWidgets))return e;var t,n,o=e.elements.view,a=e.categories.view,i=e.elements.options.collection,r=e.categories.options.collection,s=[];return _.each(HappyAddonsEditor.proWidgets,function(e,t){i.add({name:"ha-"+t,title:e.title,icon:e.icon,categories:["happy_addons_pro"],editable:!1})}),i.each(function(e){"happy_addons_pro"===e.get("categories")[0]&&s.push(e)}),n=r.findIndex({name:"happy_addons_category"}),n&&r.add({name:"happy_addons_pro_category",title:"Happy Addons Pro",icon:"hm hm-happyaddons",defaultActive:!1,items:s},{at:n+1}),t={className:function(){var e=this.constructor.__super__.className.call(this);return!this.isEditable()&&this.isHappyWidget()&&(e+=" ha-element--promotion"),e},isHappyWidget:function(){return 0===this.model.get("name").indexOf("ha-")},onMouseDown:function(){if(!this.isHappyWidget())return elementor.promotion.dialog.buttons[0].removeClass("ha-btn--promotion"),void this.constructor.__super__.onMouseDown.call(this);elementor.promotion.dialog.buttons[0].addClass("ha-btn--promotion"),elementor.promotion.showDialog({headerMessage:ha.translate("promotionDialogHeader",[this.model.get("title")]),message:ha.translate("promotionDialogMessage",[this.model.get("title")]),top:"-7",element:this.el,actionURL:"https://demo.happyaddons.com/"})}},e.elements.view=o.extend({childView:o.prototype.childView.extend(t)}),e.categories.view=a.extend({childView:a.prototype.childView.extend({childView:a.prototype.childView.prototype.childView.extend(t)})}),e})}(jQuery);
changelog.txt CHANGED
@@ -1,3 +1,8 @@
 
 
 
 
 
1
  = 2.11.0 - 1 June 2020 =
2
 
3
  - Tweak: Slide item link support for Carousel widget
1
+ = 2.11.1 - 4 June 2020 =
2
+
3
+ - Fix: JS function backward compatibility issue
4
+ - Fix: `ha_get_feature_label` JS error issue in Pricing table
5
+
6
  = 2.11.0 - 1 June 2020 =
7
 
8
  - Tweak: Slide item link support for Carousel widget
plugin.php CHANGED
@@ -3,7 +3,7 @@
3
  * Plugin Name: Happy Elementor Addons
4
  * Plugin URI: https://happyaddons.com/
5
  * Description: <a href="https://happyaddons.com/">HappyAddons</a> is a collection of slick, powerful widgets that works seamlessly with Elementor page builder. It’s trendy look with detail customization features allows to create extraordinary designs instantly. <a href="https://happyaddons.com/">HappyAddons</a> is free, rapidly growing and comes with great support.
6
- * Version: 2.11.0
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
@@ -34,7 +34,7 @@ Copyright 2019 HappyMonster <http://happymonster.me>
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
- define( 'HAPPY_ADDONS_VERSION', '2.11.0' );
38
  define( 'HAPPY_ADDONS__FILE__', __FILE__ );
39
  define( 'HAPPY_ADDONS_DIR_PATH', plugin_dir_path( HAPPY_ADDONS__FILE__ ) );
40
  define( 'HAPPY_ADDONS_DIR_URL', plugin_dir_url( HAPPY_ADDONS__FILE__ ) );
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.11.1
7
  * Author: weDevs
8
  * Author URI: https://happyaddons.com/
9
  * License: GPLv2
34
 
35
  defined( 'ABSPATH' ) || die();
36
 
37
+ define( 'HAPPY_ADDONS_VERSION', '2.11.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__ ) );
readme.txt CHANGED
@@ -1,6 +1,6 @@
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
- Version: 2.11.0
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
@@ -253,6 +253,11 @@ For a more detailed explanation check out the following documentation
253
 
254
  == Changelog ==
255
 
 
 
 
 
 
256
  = 2.11.0 - 1 June 2020 =
257
 
258
  - Tweak: Slide item link support for Carousel widget
1
  === Happy Addons for Elementor ===
2
  Plugin Name: Happy Addons for Elementor
3
+ Version: 2.11.1
4
  Author: weDevs
5
  Author URI: https://happyaddons.com/
6
  Contributors: thehappymonster, happyaddons, hasinhayder, mosaddek73, tareq1988, sourav926, wedevs, iqbalrony, mrokon, obiplabon
253
 
254
  == Changelog ==
255
 
256
+ = 2.11.1 - 4 June 2020 =
257
+
258
+ - Fix: JS function backward compatibility issue
259
+ - Fix: `ha_get_feature_label` JS error issue in Pricing table
260
+
261
  = 2.11.0 - 1 June 2020 =
262
 
263
  - Tweak: Slide item link support for Carousel widget