SiteOrigin Widgets Bundle - Version 1.27.0

Version Description

  • 17 December 2021 =
  • Price Table: Added new Header, Featured and Feature text color settings.
  • Slider Widgets: Prevented potential settings migration error.
  • Widget Block: Prevented potential Google Maps error.
Download this release

Release Info

Developer SiteOrigin
Plugin Icon 128x128 SiteOrigin Widgets Bundle
Version 1.27.0
Comparing to
See all releases

Code changes from version 1.26.1 to 1.27.0

base/inc/widgets/base-slider.class.php CHANGED
@@ -348,7 +348,9 @@ abstract class SiteOrigin_Widget_Base_Slider extends SiteOrigin_Widget {
348
  foreach ( $migrate_layout_settings as $setting => $sub_section ) {
349
  if ( is_array( $sub_section ) ) {
350
  foreach ( $sub_section as $responsive_setting ) {
351
- $instance['layout'][ $setting ][ $responsive_setting ] = $instance['design'][ $responsive_setting ];
 
 
352
  }
353
  } elseif ( ! empty( $instance['design'][ $setting ] ) ) {
354
  $instance['layout'][ $setting ] = $instance['design'][ $setting ];
348
  foreach ( $migrate_layout_settings as $setting => $sub_section ) {
349
  if ( is_array( $sub_section ) ) {
350
  foreach ( $sub_section as $responsive_setting ) {
351
+ if ( ! empty( $instance['design'][ $responsive_setting ] ) ) {
352
+ $instance['layout'][ $setting ][ $responsive_setting ] = $instance['design'][ $responsive_setting ];
353
+ }
354
  }
355
  } elseif ( ! empty( $instance['design'][ $setting ] ) ) {
356
  $instance['layout'][ $setting ] = $instance['design'][ $setting ];
js/sow.google-map.js CHANGED
@@ -118,7 +118,7 @@ sowb.SiteOriginGoogleMap = function($) {
118
  }
119
  }.bind( this ) );
120
 
121
- window.google.maps.event.addDomListener( autocompleteElement, 'keypress', function ( event ) {
122
  var key = event.keyCode || event.which;
123
  if ( key === '13' ) {
124
  event.preventDefault();
@@ -292,7 +292,7 @@ sowb.SiteOriginGoogleMap = function($) {
292
  optimizeWaypoints: directions.optimizeWaypoints,
293
  },
294
  function(result, status) {
295
- if (status === window.google.maps.DirectionsStatus.OK) {
296
  directionsRenderer.setOptions( { preserveViewport: directions.preserveViewport } );
297
  directionsRenderer.setDirections(result);
298
  }
@@ -437,9 +437,14 @@ sowb.SiteOriginGoogleMap = function($) {
437
 
438
  // Called by Google Maps API when it has loaded.
439
  function soGoogleMapInitialize() {
440
- new sowb.SiteOriginGoogleMap(jQuery).initMaps();
441
  }
442
 
 
 
 
 
 
443
  jQuery(function ($) {
444
  sowb.googleMapsData = [];
445
  sowb.googleMapsData.libraries = [];
@@ -482,7 +487,9 @@ jQuery(function ($) {
482
  // If this is an admin preview, and the API has already been setup,
483
  // skip any further API checks to confirm it's working and set it up.
484
  if ( $( 'body.wp-admin' ).length && $( '#sow-google-maps-js' ).length ) {
485
- soGoogleMapInitialize();
 
 
486
  } else {
487
  sowb.loadGoogleMapsAPI( forceLoad );
488
  // Ensure Google Maps is loaded before using it.
118
  }
119
  }.bind( this ) );
120
 
121
+ window.google.maps.event.addDomListener( autocompleteElement, 'keypress', function( event ) {
122
  var key = event.keyCode || event.which;
123
  if ( key === '13' ) {
124
  event.preventDefault();
292
  optimizeWaypoints: directions.optimizeWaypoints,
293
  },
294
  function(result, status) {
295
+ if ( status === window.google.maps.DirectionsStatus.OK ) {
296
  directionsRenderer.setOptions( { preserveViewport: directions.preserveViewport } );
297
  directionsRenderer.setDirections(result);
298
  }
437
 
438
  // Called by Google Maps API when it has loaded.
439
  function soGoogleMapInitialize() {
440
+ jQuery( window.sowb ).trigger( 'sow-google-map-loaded' );
441
  }
442
 
443
+ jQuery( window.sowb ).on( 'sow-google-map-loaded', function() {
444
+ new sowb.SiteOriginGoogleMap(jQuery).initMaps();
445
+ } );
446
+
447
+
448
  jQuery(function ($) {
449
  sowb.googleMapsData = [];
450
  sowb.googleMapsData.libraries = [];
487
  // If this is an admin preview, and the API has already been setup,
488
  // skip any further API checks to confirm it's working and set it up.
489
  if ( $( 'body.wp-admin' ).length && $( '#sow-google-maps-js' ).length ) {
490
+ setTimeout( function() {
491
+ soGoogleMapInitialize();
492
+ }, 250 );
493
  } else {
494
  sowb.loadGoogleMapsAPI( forceLoad );
495
  // Ensure Google Maps is loaded before using it.
js/sow.google-map.min.js CHANGED
@@ -1 +1 @@
1
- function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(o,e,a){var t=Number(a.zoom);t||(t=14),window.matchMedia("(max-width: "+a.breakpoint+"px)").matches&&(t=a.mobileZoom);var i,s={zoom:t,gestureHandling:a.gestureHandling,disableDefaultUI:a.disableUi,zoomControl:a.zoomControl,panControl:a.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[window.google.maps.MapTypeId.ROADMAP,window.google.maps.MapTypeId.SATELLITE,"user_map_style"]}},n=new window.google.maps.Map(o,s),r={name:a.mapName},l=a.mapStyles;if(l){var p=new window.google.maps.StyledMapType(l,r);n.mapTypes.set("user_map_style",p),n.setMapTypeId("user_map_style")}(a.markerAtCenter&&(this.centerMarker=new window.google.maps.Marker({position:e,map:n,draggable:a.markersDraggable,icon:a.markerIcon,title:""}),n.centerMarker=this.centerMarker),a.keepCentered)&&(window.google.maps.event.addDomListener(n,"idle",(function(){i=n.getCenter()})),window.google.maps.event.addDomListener(window,"resize",(function(){n.setCenter(i)})));this.linkAutocompleteField(a.autocomplete,a.autocompleteElement,n,a),this.showMarkers(a.markerPositions,n,a),this.showDirections(a.directions,n,a),sowb.SiteOriginGoogleMapInstances.push(n)},linkAutocompleteField:function(e,a,t,i){if(e&&a){var s=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){t.setZoom(15),t.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=o(a);e.addListener("place_changed",function(){var o=e.getPlace();t.setZoom(15),o.geometry&&(t.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),window.google.maps.event.addDomListener(a,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),n.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),a=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=a+(t?", "+t:"");i&&s(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,a){if(a===window.google.maps.GeocoderStatus.OK&&e.length>0){var t=e[0].formatted_address;n.val(t),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,a){if(o&&o.length){this.infoWindows=[];for(var t=[],i=0;i<o.length;i++){var s=parseInt(i/10);t.length===s&&(t[s]=[]),t[s][i%10]=o[i]}var n=function(o){var t=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,s=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){var n=a.markerIcon;t&&(n=t);var r=new window.google.maps.Marker({position:o,map:e,draggable:a.markersDraggable,icon:n,title:""});if(i){var l={content:i};s&&(l.maxWidth=s);var p=a.markerInfoDisplay;l.disableAutoPan="always"===p;var g=new window.google.maps.InfoWindow(l);this.infoWindows.push(g);var d=p;"always"===p&&(d="click",g.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(d,function(){g.open(e,r),"always"===p||a.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==g&&o.close()}))}.bind(this)),"mouseover"===p&&r.addListener("mouseout",(function(){setTimeout((function(){g.close()}),100)}))}}.bind(this)).fail((function(o){r=o===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var a=0,t=0;t<o.length&&!r;t++)n(o[t]).then((function(){++a===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(t.shift(),t)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var a=new window.google.maps.DirectionsRenderer;a.setMap(e),(new window.google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,t){t===window.google.maps.DirectionsStatus.OK&&(a.setOptions({preserveViewport:o.preserveViewport}),a.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),a=new o.Deferred;0===e.length?a.resolve():e.each(function(e,t){if(void 0!==window.google.maps.places){var i=new window.google.maps.places.Autocomplete(t),s=o(t).siblings(".sow-google-map-canvas");if(s.length>0){var n=s.data("options");n.autocomplete=i,n.autocompleteElement=t,this.getLocation(n.address).done(function(o){this.showMap(s.get(0),o,n),s.data("initialized",!0),a.resolve()}.bind(this)).fail((function(){s.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),a.reject()}))}}else a.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),a.always(function(){o(".sow-google-map-canvas").each(function(e,a){var t=o(a);if(t.data("initialized"))return!0;var i=t.data("options"),s=i.address;if(!s){var n=i.markerPositions;n&&n.length&&(s=n[0].place)}this.getLocation(s).done(function(o){this.showMap(t.get(0),o,i),t.data("initialized",!0)}.bind(this)).fail((function(){t.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new window.google.maps.Geocoder),this._geocoder},getLocation:function(e){var a,t=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var s=e.replace(/[\(\)]/g,"").split(",");s&&2===s.length&&(a=new window.google.maps.LatLng(s[0],s[1]),isNaN(a.lat())||isNaN(a.lng())||(i={location:{lat:a.lat(),lng:a.lng()}}))}if(i.hasOwnProperty("location"))t.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var n=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[n]}var r=0,l=function(o,e){e===window.google.maps.GeocoderStatus.OK?t.resolve(o[0].geometry.location):e===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):t.reject(e):e!==window.google.maps.GeocoderStatus.ZERO_RESULTS&&e!==window.google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return t}}},jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,a=!1){var t=o(".sow-google-map-canvas");t.length&&(o("body.wp-admin").length&&sowb.googleMapsData.libraries.push("places"),t.each((function(e,a){var t=o(a);if(t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),t.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(a||void 0===window.google.maps)&&(o("body.wp-admin").length&&o("#sow-google-maps-js").length?soGoogleMapInitialize():(sowb.loadGoogleMapsAPI(a),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250))))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&(e||void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");var a="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(a+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var t=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var a;"string"==typeof e&&(a=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),a&&a.length&&a[0]&&(o(".sow-google-map-canvas").each((function(e,a){var t=o(a);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}})),sowb.googleMapsData.ApiError=!0),t.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0}))):(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0)},sowb.setupGoogleMaps(),o(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));
1
+ function soGoogleMapInitialize(){jQuery(window.sowb).trigger("sow-google-map-loaded")}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMapInstances=[],sowb.SiteOriginGoogleMap=function(o){return{DEFAULT_LOCATIONS:["Addo Elephant National Park, R335, Addo","Cape Town, Western Cape, South Africa","San Francisco Bay Area, CA, United States","New York, NY, United States"],showMap:function(o,e,a){var t=Number(a.zoom);t||(t=14),window.matchMedia("(max-width: "+a.breakpoint+"px)").matches&&(t=a.mobileZoom);var i,n={zoom:t,gestureHandling:a.gestureHandling,disableDefaultUI:a.disableUi,zoomControl:a.zoomControl,panControl:a.panControl,center:e,mapTypeControlOptions:{mapTypeIds:[window.google.maps.MapTypeId.ROADMAP,window.google.maps.MapTypeId.SATELLITE,"user_map_style"]}},s=new window.google.maps.Map(o,n),r={name:a.mapName},l=a.mapStyles;if(l){var g=new window.google.maps.StyledMapType(l,r);s.mapTypes.set("user_map_style",g),s.setMapTypeId("user_map_style")}(a.markerAtCenter&&(this.centerMarker=new window.google.maps.Marker({position:e,map:s,draggable:a.markersDraggable,icon:a.markerIcon,title:""}),s.centerMarker=this.centerMarker),a.keepCentered)&&(window.google.maps.event.addDomListener(s,"idle",(function(){i=s.getCenter()})),window.google.maps.event.addDomListener(window,"resize",(function(){s.setCenter(i)})));this.linkAutocompleteField(a.autocomplete,a.autocompleteElement,s,a),this.showMarkers(a.markerPositions,s,a),this.showDirections(a.directions,s,a),sowb.SiteOriginGoogleMapInstances.push(s)},linkAutocompleteField:function(e,a,t,i){if(e&&a){var n=function(o){this.inputAddress!==o&&(this.inputAddress=o,this.getLocation(this.inputAddress).done(function(o){t.setZoom(15),t.setCenter(o),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),s=o(a);e.addListener("place_changed",function(){var o=e.getPlace();t.setZoom(15),o.geometry&&(t.setCenter(o.geometry.location),this.centerMarker&&this.centerMarker.setPosition(o.geometry.location))}.bind(this)),window.google.maps.event.addDomListener(a,"keypress",(function(o){"13"===(o.keyCode||o.which)&&o.preventDefault()})),s.on("focusin",function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver((function(){var e=o(o(".pac-item").get(0)),a=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=a+(t?", "+t:"");i&&n(i)}));this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var r=function(o){this.getGeocoder().geocode({location:o},function(e,a){if(a===window.google.maps.GeocoderStatus.OK&&e.length>0){var t=e[0].formatted_address;s.val(t),this.centerMarker&&(this.centerMarker.setPosition(o),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",(function(o){r(o.latLng)})),this.centerMarker.addListener("dragend",(function(o){r(o.latLng)}))}},showMarkers:function(o,e,a){if(o&&o.length){this.infoWindows=[];for(var t=[],i=0;i<o.length;i++){var n=parseInt(i/10);t.length===n&&(t[n]=[]),t[n][i%10]=o[i]}var s=function(o){var t=o.customMarkerIcon,i=o.hasOwnProperty("info")?o.info:null,n=o.hasOwnProperty("infoMaxWidth")?o.infoMaxWidth:null;return this.getLocation(o.place).done(function(o){var s=a.markerIcon;t&&(s=t);var r=new window.google.maps.Marker({position:o,map:e,draggable:a.markersDraggable,icon:s,title:""});if(i){var l={content:i};n&&(l.maxWidth=n);var g=a.markerInfoDisplay;l.disableAutoPan="always"===g;var p=new window.google.maps.InfoWindow(l);this.infoWindows.push(p);var d=g;"always"===g&&(d="click",p.open({map:e,anchor:r,shouldFocus:!1})),r.addListener(d,function(){p.open(e,r),"always"===g||a.markerInfoMultiple||this.infoWindows.forEach((function(o){o!==p&&o.close()}))}.bind(this)),"mouseover"===g&&r.addListener("mouseout",(function(){setTimeout((function(){p.close()}),100)}))}}.bind(this)).fail((function(o){r=o===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(o)}))}.bind(this),r=!1,l=function(o,e){for(var a=0,t=0;t<o.length&&!r;t++)s(o[t]).then((function(){++a===o.length&&e.length&&l(e.shift(),e)}))}.bind(this);l(t.shift(),t)}},showDirections:function(o,e){if(o){o.waypoints&&o.waypoints.length&&o.waypoints.map((function(o){o.stopover=Boolean(o.stopover)}));var a=new window.google.maps.DirectionsRenderer;a.setMap(e),(new window.google.maps.DirectionsService).route({origin:o.origin,destination:o.destination,travelMode:o.travelMode.toUpperCase(),avoidHighways:o.avoidHighways,avoidTolls:o.avoidTolls,waypoints:o.waypoints,optimizeWaypoints:o.optimizeWaypoints},(function(e,t){t===window.google.maps.DirectionsStatus.OK&&(a.setOptions({preserveViewport:o.preserveViewport}),a.setDirections(e))}))}},initMaps:function(){var e=o(".sow-google-map-autocomplete"),a=new o.Deferred;0===e.length?a.resolve():e.each(function(e,t){if(void 0!==window.google.maps.places){var i=new window.google.maps.places.Autocomplete(t),n=o(t).siblings(".sow-google-map-canvas");if(n.length>0){var s=n.data("options");s.autocomplete=i,s.autocompleteElement=t,this.getLocation(s.address).done(function(o){this.showMap(n.get(0),o,s),n.data("initialized",!0),a.resolve()}.bind(this)).fail((function(){n.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),a.reject()}))}}else a.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),a.always(function(){o(".sow-google-map-canvas").each(function(e,a){var t=o(a);if(t.data("initialized"))return!0;var i=t.data("options"),n=i.address;if(!n){var s=i.markerPositions;s&&s.length&&(n=s[0].place)}this.getLocation(n).done(function(o){this.showMap(t.get(0),o,i),t.data("initialized",!0)}.bind(this)).fail((function(){t.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>")}))}.bind(this))}.bind(this)).fail((function(o){console.log(o)})).done((function(){o(sowb).trigger("maps_loaded")}))},getGeocoder:function(){return this._geocoder||(this._geocoder=new window.google.maps.Geocoder),this._geocoder},getLocation:function(e){var a,t=new o.Deferred,i={address:e};if(e&&e.indexOf(",")>-1){var n=e.replace(/[\(\)]/g,"").split(",");n&&2===n.length&&(a=new window.google.maps.LatLng(n[0],n[1]),isNaN(a.lat())||isNaN(a.lng())||(i={location:{lat:a.lat(),lng:a.lng()}}))}if(i.hasOwnProperty("location"))t.resolve(i.location);else if(i.hasOwnProperty("address")){if(!i.address){var s=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);i.address=this.DEFAULT_LOCATIONS[s]}var r=0,l=function(o,e){e===window.google.maps.GeocoderStatus.OK?t.resolve(o[0].geometry.location):e===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,l)}.bind(this),1e3):t.reject(e):e!==window.google.maps.GeocoderStatus.ZERO_RESULTS&&e!==window.google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(e)}.bind(this);this.getGeocoder().geocode(i,l)}return t}}},jQuery(window.sowb).on("sow-google-map-loaded",(function(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()})),jQuery((function(o){sowb.googleMapsData=[],sowb.googleMapsData.libraries=[],sowb.setupGoogleMaps=function(e,a=!1){var t=o(".sow-google-map-canvas");t.length&&(o("body.wp-admin").length&&sowb.googleMapsData.libraries.push("places"),t.each((function(e,a){var t=o(a);if(t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(sowb.googleMapsData.libraries=sowb.googleMapsData.libraries.concat(i.libraries)),!sowb.googleMapsData.apiKey&&i.apiKey&&(sowb.googleMapsData.apiKey=i.apiKey)),t.data("apiInitialized",!0)})),void 0===window.google&&(window.google={}),(a||void 0===window.google.maps)&&(o("body.wp-admin").length&&o("#sow-google-maps-js").length?setTimeout((function(){soGoogleMapInitialize()}),250):(sowb.loadGoogleMapsAPI(a),sowb.googleMapsData.timer=setInterval((function(){var o=!1;sowb.googleMapsData.ApiError=!0,void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError&&(o=!0),o||void 0===window.google.maps||(o=!0,soGoogleMapInitialize()),o&&clearInterval(sowb.googleMapsData.timer)}),250))))},sowb.loadGoogleMapsAPI=function(e=!1){o("#sow-google-maps-js").length&&(e||void 0!==sowb.googleMapsData.ApiError&&sowb.googleMapsData.ApiError)&&o("#sow-google-maps-js").remove(),sowb.googleMapsData.apiKey||console.warn("SiteOrigin Google Maps: Could not find API key. Google Maps API key is required.");var a="https://maps.googleapis.com/maps/api/js?key="+sowb.googleMapsData.apiKey+"&callback=soGoogleMapInitialize";if(sowb.googleMapsData.libraries&&sowb.googleMapsData.libraries.length&&(a+="&libraries="+sowb.googleMapsData.libraries.join(",")),window.console&&window.console.error){var t=window.console.error;sowb.googleMapsData.ApiError=!1,sowb.onLoadMapsApiError=function(e){var a;"string"==typeof e&&(a=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),a&&a.length&&a[0]&&(o(".sow-google-map-canvas").each((function(e,a){var t=o(a);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}})),sowb.googleMapsData.ApiError=!0),t.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}soWidgetsGoogleMap.map_consent?(e&&o(".sow-google-map-consent button").off("click"),o(".sow-google-map-consent button").on("click",(function(){o(".sow-google-map-consent").remove(),o(".sow-google-map-canvas").show(),o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0}))):(o("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+a+'">'),sowb.mapsApiInitialized=!0)},sowb.setupGoogleMaps(),o(sowb).on("setup_widgets",sowb.setupGoogleMaps)}));
lang/so-widgets-bundle.pot CHANGED
@@ -272,7 +272,7 @@ msgstr ""
272
  msgid "Regular"
273
  msgstr ""
274
 
275
- #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:365, widgets/contact/contact.php:487, widgets/contact/contact.php:595, widgets/contact/contact.php:673, widgets/headline/headline.php:220
276
  msgid "Solid"
277
  msgstr ""
278
 
@@ -296,7 +296,7 @@ msgstr ""
296
  msgid "When opening the panel, scroll the user to the top of the panel."
297
  msgstr ""
298
 
299
- #: widgets/accordion/accordion.php:71, widgets/accordion/accordion.php:84, widgets/anything-carousel/anything-carousel.php:52, widgets/anything-carousel/anything-carousel.php:68, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:35, widgets/features/features.php:137, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:230, widgets/price-table/price-table.php:42, widgets/price-table/price-table.php:61, widgets/simple-masonry/simple-masonry.php:44, widgets/simple-masonry/simple-masonry.php:85, widgets/social-media-buttons/social-media-buttons.php:54, widgets/tabs/tabs.php:71, widgets/tabs/tabs.php:84, widgets/taxonomy/taxonomy.php:34, widgets/testimonial/testimonial.php:41, widgets/video/video.php:33, base/inc/fields/posts.class.php:108
300
  msgid "Title"
301
  msgstr ""
302
 
@@ -396,7 +396,7 @@ msgstr ""
396
  msgid "Item"
397
  msgstr ""
398
 
399
- #: widgets/anything-carousel/anything-carousel.php:95, widgets/button/button.php:203, widgets/contact/contact.php:382, widgets/contact/contact.php:432, widgets/features/features.php:142, widgets/features/features.php:163, widgets/features/features.php:184, widgets/headline/headline.php:89, widgets/headline/headline.php:170, base/inc/widgets/base-carousel.class.php:292
400
  msgid "Font"
401
  msgstr ""
402
 
@@ -404,7 +404,7 @@ msgstr ""
404
  msgid "Font size"
405
  msgstr ""
406
 
407
- #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:392, widgets/contact/contact.php:516, widgets/contact/contact.php:685, widgets/features/features.php:151, widgets/features/features.php:172, widgets/features/features.php:193, widgets/google-map/google-map.php:368, widgets/headline/headline.php:81, widgets/headline/headline.php:162, widgets/headline/headline.php:232, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:300
408
  msgid "Color"
409
  msgstr ""
410
 
@@ -412,19 +412,19 @@ msgstr ""
412
  msgid "Margin"
413
  msgstr ""
414
 
415
- #: widgets/anything-carousel/anything-carousel.php:112, widgets/button/button.php:104, widgets/features/features.php:67, widgets/image-grid/image-grid.php:133, widgets/image-grid/image-grid.php:153
416
  msgid "Top"
417
  msgstr ""
418
 
419
- #: widgets/anything-carousel/anything-carousel.php:116, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:403, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/cta/cta.php:103, widgets/features/features.php:68, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/headline/headline.php:249, widgets/headline/headline.php:258, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:136, widgets/image-grid/image-grid.php:166, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
420
  msgid "Right"
421
  msgstr ""
422
 
423
- #: widgets/anything-carousel/anything-carousel.php:120, widgets/button/button.php:106, widgets/features/features.php:69, widgets/image-grid/image-grid.php:139, widgets/image-grid/image-grid.php:155
424
  msgid "Bottom"
425
  msgstr ""
426
 
427
- #: widgets/anything-carousel/anything-carousel.php:124, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:102, widgets/features/features.php:70, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:142, widgets/image-grid/image-grid.php:164, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
428
  msgid "Left"
429
  msgstr ""
430
 
@@ -468,7 +468,7 @@ msgstr ""
468
  msgid "SiteOrigin Button"
469
  msgstr ""
470
 
471
- #: widgets/button/button.php:33, widgets/contact/contact.php:785, widgets/features/features.php:343, widgets/headline/headline.php:38, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:222
472
  msgid "Responsive Breakpoint"
473
  msgstr ""
474
 
@@ -480,11 +480,11 @@ msgstr ""
480
  msgid "Button text"
481
  msgstr ""
482
 
483
- #: widgets/button/button.php:62, widgets/google-map/google-map.php:103, widgets/headline/headline.php:58, widgets/headline/headline.php:139, widgets/hero/hero.php:139, widgets/icon/icon.php:57, widgets/image/image.php:90, widgets/layout-slider/layout-slider.php:107, widgets/simple-masonry/simple-masonry.php:89, widgets/slider/slider.php:116
484
  msgid "Destination URL"
485
  msgstr ""
486
 
487
- #: widgets/button/button.php:69, widgets/google-map/google-map.php:114, widgets/headline/headline.php:63, widgets/headline/headline.php:144, widgets/icon/icon.php:63, widgets/simple-masonry/simple-masonry.php:94, widgets/social-media-buttons/social-media-buttons.php:97, widgets/taxonomy/taxonomy.php:65, widgets/testimonial/testimonial.php:94
488
  msgid "Open in a new window"
489
  msgstr ""
490
 
@@ -496,11 +496,11 @@ msgstr ""
496
  msgid "The Destination URL will be downloaded when a user clicks on the button."
497
  msgstr ""
498
 
499
- #: widgets/button/button.php:81, widgets/button/button.php:85, widgets/features/features.php:79, widgets/icon/icon.php:31, widgets/price-table/price-table.php:119
500
  msgid "Icon"
501
  msgstr ""
502
 
503
- #: widgets/button/button.php:90, widgets/features/features.php:89, widgets/price-table/price-table.php:123, widgets/social-media-buttons/social-media-buttons.php:82
504
  msgid "Icon color"
505
  msgstr ""
506
 
@@ -532,11 +532,11 @@ msgstr ""
532
  msgid "Align"
533
  msgstr ""
534
 
535
- #: widgets/button/button.php:132, widgets/button/button.php:143, widgets/contact/contact.php:419, widgets/contact/contact.php:648, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/image-grid/image-grid.php:154, widgets/image-grid/image-grid.php:165, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
536
  msgid "Center"
537
  msgstr ""
538
 
539
- #: widgets/button/button.php:133, widgets/button/button.php:144, widgets/contact/contact.php:420, widgets/headline/headline.php:104, widgets/headline/headline.php:114, widgets/headline/headline.php:185, widgets/headline/headline.php:195, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
540
  msgid "Justify"
541
  msgstr ""
542
 
@@ -560,7 +560,7 @@ msgstr ""
560
  msgid "Wire"
561
  msgstr ""
562
 
563
- #: widgets/button/button.php:161, widgets/price-table/price-table.php:150
564
  msgid "Button color"
565
  msgstr ""
566
 
@@ -600,7 +600,7 @@ msgstr ""
600
  msgid "Rounding"
601
  msgstr ""
602
 
603
- #: widgets/button/button.php:223, widgets/contact/contact.php:361, widgets/contact/contact.php:483, widgets/contact/contact.php:594, widgets/contact/contact.php:679, widgets/google-map/google-map.php:158, widgets/headline/headline.php:219, widgets/social-media-buttons/social-media-buttons.php:130
604
  msgid "None"
605
  msgstr ""
606
 
@@ -804,7 +804,7 @@ msgstr ""
804
  msgid "Subject"
805
  msgstr ""
806
 
807
- #: widgets/contact/contact.php:154, widgets/features/features.php:115, widgets/features/features.php:158, widgets/headline/headline.php:54, widgets/headline/headline.php:135, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:83
808
  msgid "Text"
809
  msgstr ""
810
 
@@ -916,7 +916,7 @@ msgstr ""
916
  msgid "Audio"
917
  msgstr ""
918
 
919
- #: widgets/contact/contact.php:288, widgets/contact/contact.php:511, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/icon/icon.php:41
920
  msgid "Size"
921
  msgstr ""
922
 
@@ -960,31 +960,31 @@ msgstr ""
960
  msgid "Hidden"
961
  msgstr ""
962
 
963
- #: widgets/contact/contact.php:363, widgets/contact/contact.php:485, widgets/contact/contact.php:596, widgets/contact/contact.php:671, widgets/headline/headline.php:221
964
  msgid "Dotted"
965
  msgstr ""
966
 
967
- #: widgets/contact/contact.php:364, widgets/contact/contact.php:486, widgets/contact/contact.php:597, widgets/contact/contact.php:672, widgets/headline/headline.php:222
968
  msgid "Dashed"
969
  msgstr ""
970
 
971
- #: widgets/contact/contact.php:366, widgets/contact/contact.php:488, widgets/contact/contact.php:674, widgets/headline/headline.php:223
972
  msgid "Double"
973
  msgstr ""
974
 
975
- #: widgets/contact/contact.php:367, widgets/contact/contact.php:489, widgets/contact/contact.php:675, widgets/headline/headline.php:224
976
  msgid "Groove"
977
  msgstr ""
978
 
979
- #: widgets/contact/contact.php:368, widgets/contact/contact.php:490, widgets/contact/contact.php:676, widgets/headline/headline.php:225
980
  msgid "Ridge"
981
  msgstr ""
982
 
983
- #: widgets/contact/contact.php:369, widgets/contact/contact.php:491, widgets/contact/contact.php:677, widgets/headline/headline.php:226
984
  msgid "Inset"
985
  msgstr ""
986
 
987
- #: widgets/contact/contact.php:370, widgets/contact/contact.php:492, widgets/contact/contact.php:678, widgets/headline/headline.php:227
988
  msgid "Outset"
989
  msgstr ""
990
 
@@ -1036,7 +1036,7 @@ msgstr ""
1036
  msgid "Field descriptions"
1037
  msgstr ""
1038
 
1039
- #: widgets/contact/contact.php:521, widgets/contact/contact.php:668, widgets/google-map/google-map.php:321, widgets/headline/headline.php:216
1040
  msgid "Style"
1041
  msgstr ""
1042
 
@@ -1253,127 +1253,127 @@ msgstr ""
1253
  msgid "Feature"
1254
  msgstr ""
1255
 
1256
- #: widgets/features/features.php:57
1257
  msgid "Icon container color"
1258
  msgstr ""
1259
 
1260
- #: widgets/features/features.php:65
1261
  msgid "Icon container position"
1262
  msgstr ""
1263
 
1264
- #: widgets/features/features.php:84, widgets/social-media-buttons/social-media-buttons.php:78
1265
  msgid "Icon title"
1266
  msgstr ""
1267
 
1268
- #: widgets/features/features.php:96
1269
  msgid "Icon image"
1270
  msgstr ""
1271
 
1272
- #: widgets/features/features.php:97
1273
  msgid "Use your own icon image."
1274
  msgstr ""
1275
 
1276
- #: widgets/features/features.php:103
1277
  msgid "Icon image size"
1278
  msgstr ""
1279
 
1280
- #: widgets/features/features.php:110, widgets/image/image.php:69
1281
  msgid "Title text"
1282
  msgstr ""
1283
 
1284
- #: widgets/features/features.php:120
1285
  msgid "More link text"
1286
  msgstr ""
1287
 
1288
- #: widgets/features/features.php:125
1289
  msgid "More link URL"
1290
  msgstr ""
1291
 
1292
- #: widgets/features/features.php:132
1293
  msgid "Font Design"
1294
  msgstr ""
1295
 
1296
- #: widgets/features/features.php:179
1297
  msgid "More Link"
1298
  msgstr ""
1299
 
1300
- #: widgets/features/features.php:202
1301
  msgid "Icon container shape"
1302
  msgstr ""
1303
 
1304
- #: widgets/features/features.php:209
1305
  msgid "Icon container size"
1306
  msgstr ""
1307
 
1308
- #: widgets/features/features.php:215, widgets/social-media-buttons/social-media-buttons.php:117
1309
  msgid "Icon size"
1310
  msgstr ""
1311
 
1312
- #: widgets/features/features.php:221
1313
  msgid "Use icon size for custom icon"
1314
  msgstr ""
1315
 
1316
- #: widgets/features/features.php:227
1317
  msgid "Title text HTML tag"
1318
  msgstr ""
1319
 
1320
- #: widgets/features/features.php:230, widgets/headline/headline.php:70, widgets/headline/headline.php:151, base/inc/widgets/base-carousel.class.php:281
1321
  msgid "H1"
1322
  msgstr ""
1323
 
1324
- #: widgets/features/features.php:231, widgets/headline/headline.php:71, widgets/headline/headline.php:152, base/inc/widgets/base-carousel.class.php:282
1325
  msgid "H2"
1326
  msgstr ""
1327
 
1328
- #: widgets/features/features.php:232, widgets/headline/headline.php:72, widgets/headline/headline.php:153, base/inc/widgets/base-carousel.class.php:283
1329
  msgid "H3"
1330
  msgstr ""
1331
 
1332
- #: widgets/features/features.php:233, widgets/headline/headline.php:73, widgets/headline/headline.php:154, base/inc/widgets/base-carousel.class.php:284
1333
  msgid "H4"
1334
  msgstr ""
1335
 
1336
- #: widgets/features/features.php:234, widgets/headline/headline.php:74, widgets/headline/headline.php:155, base/inc/widgets/base-carousel.class.php:285
1337
  msgid "H5"
1338
  msgstr ""
1339
 
1340
- #: widgets/features/features.php:235, widgets/headline/headline.php:75, widgets/headline/headline.php:156, base/inc/widgets/base-carousel.class.php:286
1341
  msgid "H6"
1342
  msgstr ""
1343
 
1344
- #: widgets/features/features.php:241
1345
  msgid "Features per row"
1346
  msgstr ""
1347
 
1348
- #: widgets/features/features.php:247
1349
  msgid "Responsive layout"
1350
  msgstr ""
1351
 
1352
- #: widgets/features/features.php:253
1353
  msgid "Link feature title to more URL"
1354
  msgstr ""
1355
 
1356
- #: widgets/features/features.php:263
1357
  msgid "Link icon to more URL"
1358
  msgstr ""
1359
 
1360
- #: widgets/features/features.php:273
1361
  msgid "Link feature column to more URL"
1362
  msgstr ""
1363
 
1364
- #: widgets/features/features.php:285
1365
  msgid "Open more URL in a new window"
1366
  msgstr ""
1367
 
1368
- #: widgets/features/features.php:345
1369
  msgid "This setting controls when the features widget will collapse for mobile devices. The default value is 520px"
1370
  msgstr ""
1371
 
1372
- #: widgets/features/features.php:354
1373
  msgid "Add an feature icon title tooltip with %sSiteOrigin Premium%s"
1374
  msgstr ""
1375
 
1376
- #: widgets/features/features.php:359
1377
  msgid "Use Google Fonts right inside the Features Widget with %sSiteOrigin Premium%s"
1378
  msgstr ""
1379
 
@@ -1848,83 +1848,83 @@ msgstr ""
1848
  msgid "SiteOrigin Headline"
1849
  msgstr ""
1850
 
1851
- #: widgets/headline/headline.php:40
1852
  msgid "The pixel resolution when the mobile alignment settings will be applied."
1853
  msgstr ""
1854
 
1855
- #: widgets/headline/headline.php:49, widgets/headline/headline.php:278
1856
  msgid "Headline"
1857
  msgstr ""
1858
 
1859
- #: widgets/headline/headline.php:67, widgets/headline/headline.php:148, base/inc/widgets/base-carousel.class.php:278
1860
  msgid "HTML Tag"
1861
  msgstr ""
1862
 
1863
- #: widgets/headline/headline.php:76, widgets/headline/headline.php:157, base/inc/widgets/base-carousel.class.php:287
1864
  msgid "Paragraph"
1865
  msgstr ""
1866
 
1867
- #: widgets/headline/headline.php:85, widgets/headline/headline.php:166
1868
  msgid "Hover Color"
1869
  msgstr ""
1870
 
1871
- #: widgets/headline/headline.php:94, widgets/headline/headline.php:175
1872
  msgid "Font Size"
1873
  msgstr ""
1874
 
1875
- #: widgets/headline/headline.php:98, widgets/headline/headline.php:179, widgets/headline/headline.php:244, widgets/icon/icon.php:46
1876
  msgid "Alignment"
1877
  msgstr ""
1878
 
1879
- #: widgets/headline/headline.php:109, widgets/headline/headline.php:190, widgets/headline/headline.php:254
1880
  msgid "Mobile alignment"
1881
  msgstr ""
1882
 
1883
- #: widgets/headline/headline.php:119, widgets/headline/headline.php:200
1884
  msgid "Line Height"
1885
  msgstr ""
1886
 
1887
- #: widgets/headline/headline.php:123, widgets/headline/headline.php:204, widgets/headline/headline.php:268
1888
  msgid "Top and Bottom Margin"
1889
  msgstr ""
1890
 
1891
- #: widgets/headline/headline.php:130
1892
  msgid "Sub headline"
1893
  msgstr ""
1894
 
1895
- #: widgets/headline/headline.php:211, widgets/headline/headline.php:279
1896
  msgid "Divider"
1897
  msgstr ""
1898
 
1899
- #: widgets/headline/headline.php:237
1900
  msgid "Thickness"
1901
  msgstr ""
1902
 
1903
- #: widgets/headline/headline.php:263
1904
  msgid "Divider Width"
1905
  msgstr ""
1906
 
1907
- #: widgets/headline/headline.php:276
1908
  msgid "Element Order"
1909
  msgstr ""
1910
 
1911
- #: widgets/headline/headline.php:280
1912
  msgid "Sub Headline"
1913
  msgstr ""
1914
 
1915
- #: widgets/headline/headline.php:287, widgets/hero/hero.php:277
1916
  msgid "Use FitText"
1917
  msgstr ""
1918
 
1919
- #: widgets/headline/headline.php:288, widgets/hero/hero.php:278
1920
  msgid "Dynamically adjust your heading font size based on screen size."
1921
  msgstr ""
1922
 
1923
- #: widgets/headline/headline.php:301
1924
  msgid "FitText Compressor Strength"
1925
  msgstr ""
1926
 
1927
- #: widgets/headline/headline.php:302, widgets/hero/hero.php:292
1928
  msgid "The higher the value, the more your headings will be scaled down. Values above 1 are allowed."
1929
  msgstr ""
1930
 
@@ -2405,26 +2405,38 @@ msgid "Price table theme"
2405
  msgstr ""
2406
 
2407
  #: widgets/price-table/price-table.php:140
2408
- msgid "Header color"
2409
  msgstr ""
2410
 
2411
  #: widgets/price-table/price-table.php:145
2412
- msgid "Featured header color"
 
 
 
 
2413
  msgstr ""
2414
 
2415
  #: widgets/price-table/price-table.php:155
 
 
 
 
 
 
 
 
2416
  msgid "Featured button color"
2417
  msgstr ""
2418
 
2419
- #: widgets/price-table/price-table.php:160
2420
  msgid "Open Button URL in a new window"
2421
  msgstr ""
2422
 
2423
- #: widgets/price-table/price-table.php:165
2424
  msgid "Equalize row heights"
2425
  msgstr ""
2426
 
2427
- #: widgets/price-table/price-table.php:329
2428
  msgid "Add a Price Table feature tooltip with %sSiteOrigin Premium%s"
2429
  msgstr ""
2430
 
@@ -3373,15 +3385,15 @@ msgstr ""
3373
  msgid "Background video opacity"
3374
  msgstr ""
3375
 
3376
- #: base/inc/widgets/base-slider.class.php:401
3377
  msgid "display slide %s"
3378
  msgstr ""
3379
 
3380
- #: base/inc/widgets/base-slider.class.php:406
3381
  msgid "next slide"
3382
  msgstr ""
3383
 
3384
- #: base/inc/widgets/base-slider.class.php:412
3385
  msgid "previous slide"
3386
  msgstr ""
3387
 
272
  msgid "Regular"
273
  msgstr ""
274
 
275
+ #: icons/fontawesome/filter.php:1472, widgets/contact/contact.php:365, widgets/contact/contact.php:487, widgets/contact/contact.php:595, widgets/contact/contact.php:673, widgets/headline/headline.php:219
276
  msgid "Solid"
277
  msgstr ""
278
 
296
  msgid "When opening the panel, scroll the user to the top of the panel."
297
  msgstr ""
298
 
299
+ #: widgets/accordion/accordion.php:71, widgets/accordion/accordion.php:84, widgets/anything-carousel/anything-carousel.php:52, widgets/anything-carousel/anything-carousel.php:68, widgets/contact/contact.php:48, widgets/cta/cta.php:64, widgets/editor/editor.php:35, widgets/features/features.php:133, widgets/icon/icon.php:68, widgets/post-carousel/post-carousel.php:230, widgets/price-table/price-table.php:42, widgets/price-table/price-table.php:61, widgets/simple-masonry/simple-masonry.php:44, widgets/simple-masonry/simple-masonry.php:85, widgets/social-media-buttons/social-media-buttons.php:54, widgets/tabs/tabs.php:71, widgets/tabs/tabs.php:84, widgets/taxonomy/taxonomy.php:34, widgets/testimonial/testimonial.php:41, widgets/video/video.php:33, base/inc/fields/posts.class.php:108
300
  msgid "Title"
301
  msgstr ""
302
 
396
  msgid "Item"
397
  msgstr ""
398
 
399
+ #: widgets/anything-carousel/anything-carousel.php:95, widgets/button/button.php:203, widgets/contact/contact.php:382, widgets/contact/contact.php:432, widgets/features/features.php:138, widgets/features/features.php:159, widgets/features/features.php:180, widgets/headline/headline.php:88, widgets/headline/headline.php:169, base/inc/widgets/base-carousel.class.php:292
400
  msgid "Font"
401
  msgstr ""
402
 
404
  msgid "Font size"
405
  msgstr ""
406
 
407
+ #: widgets/anything-carousel/anything-carousel.php:103, widgets/contact/contact.php:392, widgets/contact/contact.php:516, widgets/contact/contact.php:685, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/google-map/google-map.php:368, widgets/headline/headline.php:80, widgets/headline/headline.php:161, widgets/headline/headline.php:231, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56, base/inc/widgets/base-carousel.class.php:300
408
  msgid "Color"
409
  msgstr ""
410
 
412
  msgid "Margin"
413
  msgstr ""
414
 
415
+ #: widgets/anything-carousel/anything-carousel.php:112, widgets/button/button.php:104, widgets/features/features.php:65, widgets/image-grid/image-grid.php:133, widgets/image-grid/image-grid.php:153
416
  msgid "Top"
417
  msgstr ""
418
 
419
+ #: widgets/anything-carousel/anything-carousel.php:116, widgets/button/button.php:105, widgets/button/button.php:131, widgets/button/button.php:142, widgets/contact/contact.php:403, widgets/contact/contact.php:418, widgets/contact/contact.php:647, widgets/cta/cta.php:103, widgets/features/features.php:66, widgets/headline/headline.php:102, widgets/headline/headline.php:112, widgets/headline/headline.php:183, widgets/headline/headline.php:193, widgets/headline/headline.php:248, widgets/headline/headline.php:257, widgets/icon/icon.php:50, widgets/image/image.php:50, widgets/image/image.php:62, widgets/image-grid/image-grid.php:136, widgets/image-grid/image-grid.php:166, widgets/simple-masonry/simple-masonry.php:216, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:256
420
  msgid "Right"
421
  msgstr ""
422
 
423
+ #: widgets/anything-carousel/anything-carousel.php:120, widgets/button/button.php:106, widgets/features/features.php:67, widgets/image-grid/image-grid.php:139, widgets/image-grid/image-grid.php:155
424
  msgid "Bottom"
425
  msgstr ""
426
 
427
+ #: widgets/anything-carousel/anything-carousel.php:124, widgets/button/button.php:107, widgets/button/button.php:130, widgets/button/button.php:141, widgets/contact/contact.php:402, widgets/contact/contact.php:417, widgets/contact/contact.php:646, widgets/cta/cta.php:102, widgets/features/features.php:68, widgets/headline/headline.php:101, widgets/headline/headline.php:111, widgets/headline/headline.php:182, widgets/headline/headline.php:192, widgets/headline/headline.php:247, widgets/headline/headline.php:256, widgets/icon/icon.php:49, widgets/image/image.php:49, widgets/image/image.php:61, widgets/image-grid/image-grid.php:142, widgets/image-grid/image-grid.php:164, widgets/simple-masonry/simple-masonry.php:215, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:255
428
  msgid "Left"
429
  msgstr ""
430
 
468
  msgid "SiteOrigin Button"
469
  msgstr ""
470
 
471
+ #: widgets/button/button.php:33, widgets/contact/contact.php:785, widgets/features/features.php:339, widgets/headline/headline.php:37, widgets/social-media-buttons/social-media-buttons.php:33, base/inc/widgets/base-slider.class.php:222
472
  msgid "Responsive Breakpoint"
473
  msgstr ""
474
 
480
  msgid "Button text"
481
  msgstr ""
482
 
483
+ #: widgets/button/button.php:62, widgets/google-map/google-map.php:103, widgets/headline/headline.php:57, widgets/headline/headline.php:138, widgets/hero/hero.php:139, widgets/icon/icon.php:57, widgets/image/image.php:90, widgets/layout-slider/layout-slider.php:107, widgets/simple-masonry/simple-masonry.php:89, widgets/slider/slider.php:116
484
  msgid "Destination URL"
485
  msgstr ""
486
 
487
+ #: widgets/button/button.php:69, widgets/google-map/google-map.php:114, widgets/headline/headline.php:62, widgets/headline/headline.php:143, widgets/icon/icon.php:63, widgets/simple-masonry/simple-masonry.php:94, widgets/social-media-buttons/social-media-buttons.php:97, widgets/taxonomy/taxonomy.php:65, widgets/testimonial/testimonial.php:94
488
  msgid "Open in a new window"
489
  msgstr ""
490
 
496
  msgid "The Destination URL will be downloaded when a user clicks on the button."
497
  msgstr ""
498
 
499
+ #: widgets/button/button.php:81, widgets/button/button.php:85, widgets/features/features.php:76, widgets/icon/icon.php:31, widgets/price-table/price-table.php:119
500
  msgid "Icon"
501
  msgstr ""
502
 
503
+ #: widgets/button/button.php:90, widgets/features/features.php:86, widgets/price-table/price-table.php:123, widgets/social-media-buttons/social-media-buttons.php:82
504
  msgid "Icon color"
505
  msgstr ""
506
 
532
  msgid "Align"
533
  msgstr ""
534
 
535
+ #: widgets/button/button.php:132, widgets/button/button.php:143, widgets/contact/contact.php:419, widgets/contact/contact.php:648, widgets/headline/headline.php:100, widgets/headline/headline.php:110, widgets/headline/headline.php:181, widgets/headline/headline.php:191, widgets/headline/headline.php:246, widgets/headline/headline.php:255, widgets/icon/icon.php:48, widgets/image/image.php:51, widgets/image/image.php:63, widgets/image-grid/image-grid.php:154, widgets/image-grid/image-grid.php:165, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
536
  msgid "Center"
537
  msgstr ""
538
 
539
+ #: widgets/button/button.php:133, widgets/button/button.php:144, widgets/contact/contact.php:420, widgets/headline/headline.php:103, widgets/headline/headline.php:113, widgets/headline/headline.php:184, widgets/headline/headline.php:194, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
540
  msgid "Justify"
541
  msgstr ""
542
 
560
  msgid "Wire"
561
  msgstr ""
562
 
563
+ #: widgets/button/button.php:161, widgets/price-table/price-table.php:167
564
  msgid "Button color"
565
  msgstr ""
566
 
600
  msgid "Rounding"
601
  msgstr ""
602
 
603
+ #: widgets/button/button.php:223, widgets/contact/contact.php:361, widgets/contact/contact.php:483, widgets/contact/contact.php:594, widgets/contact/contact.php:679, widgets/google-map/google-map.php:158, widgets/headline/headline.php:218, widgets/social-media-buttons/social-media-buttons.php:130
604
  msgid "None"
605
  msgstr ""
606
 
804
  msgid "Subject"
805
  msgstr ""
806
 
807
+ #: widgets/contact/contact.php:154, widgets/features/features.php:111, widgets/features/features.php:154, widgets/headline/headline.php:53, widgets/headline/headline.php:134, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:83
808
  msgid "Text"
809
  msgstr ""
810
 
916
  msgid "Audio"
917
  msgstr ""
918
 
919
+ #: widgets/contact/contact.php:288, widgets/contact/contact.php:511, widgets/features/features.php:143, widgets/features/features.php:164, widgets/features/features.php:185, widgets/icon/icon.php:41
920
  msgid "Size"
921
  msgstr ""
922
 
960
  msgid "Hidden"
961
  msgstr ""
962
 
963
+ #: widgets/contact/contact.php:363, widgets/contact/contact.php:485, widgets/contact/contact.php:596, widgets/contact/contact.php:671, widgets/headline/headline.php:220
964
  msgid "Dotted"
965
  msgstr ""
966
 
967
+ #: widgets/contact/contact.php:364, widgets/contact/contact.php:486, widgets/contact/contact.php:597, widgets/contact/contact.php:672, widgets/headline/headline.php:221
968
  msgid "Dashed"
969
  msgstr ""
970
 
971
+ #: widgets/contact/contact.php:366, widgets/contact/contact.php:488, widgets/contact/contact.php:674, widgets/headline/headline.php:222
972
  msgid "Double"
973
  msgstr ""
974
 
975
+ #: widgets/contact/contact.php:367, widgets/contact/contact.php:489, widgets/contact/contact.php:675, widgets/headline/headline.php:223
976
  msgid "Groove"
977
  msgstr ""
978
 
979
+ #: widgets/contact/contact.php:368, widgets/contact/contact.php:490, widgets/contact/contact.php:676, widgets/headline/headline.php:224
980
  msgid "Ridge"
981
  msgstr ""
982
 
983
+ #: widgets/contact/contact.php:369, widgets/contact/contact.php:491, widgets/contact/contact.php:677, widgets/headline/headline.php:225
984
  msgid "Inset"
985
  msgstr ""
986
 
987
+ #: widgets/contact/contact.php:370, widgets/contact/contact.php:492, widgets/contact/contact.php:678, widgets/headline/headline.php:226
988
  msgid "Outset"
989
  msgstr ""
990
 
1036
  msgid "Field descriptions"
1037
  msgstr ""
1038
 
1039
+ #: widgets/contact/contact.php:521, widgets/contact/contact.php:668, widgets/google-map/google-map.php:321, widgets/headline/headline.php:215
1040
  msgid "Style"
1041
  msgstr ""
1042
 
1253
  msgid "Feature"
1254
  msgstr ""
1255
 
1256
+ #: widgets/features/features.php:56
1257
  msgid "Icon container color"
1258
  msgstr ""
1259
 
1260
+ #: widgets/features/features.php:63
1261
  msgid "Icon container position"
1262
  msgstr ""
1263
 
1264
+ #: widgets/features/features.php:81, widgets/social-media-buttons/social-media-buttons.php:78
1265
  msgid "Icon title"
1266
  msgstr ""
1267
 
1268
+ #: widgets/features/features.php:93
1269
  msgid "Icon image"
1270
  msgstr ""
1271
 
1272
+ #: widgets/features/features.php:94
1273
  msgid "Use your own icon image."
1274
  msgstr ""
1275
 
1276
+ #: widgets/features/features.php:100
1277
  msgid "Icon image size"
1278
  msgstr ""
1279
 
1280
+ #: widgets/features/features.php:106, widgets/image/image.php:69
1281
  msgid "Title text"
1282
  msgstr ""
1283
 
1284
+ #: widgets/features/features.php:116
1285
  msgid "More link text"
1286
  msgstr ""
1287
 
1288
+ #: widgets/features/features.php:121
1289
  msgid "More link URL"
1290
  msgstr ""
1291
 
1292
+ #: widgets/features/features.php:128
1293
  msgid "Font Design"
1294
  msgstr ""
1295
 
1296
+ #: widgets/features/features.php:175
1297
  msgid "More Link"
1298
  msgstr ""
1299
 
1300
+ #: widgets/features/features.php:198
1301
  msgid "Icon container shape"
1302
  msgstr ""
1303
 
1304
+ #: widgets/features/features.php:205
1305
  msgid "Icon container size"
1306
  msgstr ""
1307
 
1308
+ #: widgets/features/features.php:211, widgets/social-media-buttons/social-media-buttons.php:117
1309
  msgid "Icon size"
1310
  msgstr ""
1311
 
1312
+ #: widgets/features/features.php:217
1313
  msgid "Use icon size for custom icon"
1314
  msgstr ""
1315
 
1316
+ #: widgets/features/features.php:223
1317
  msgid "Title text HTML tag"
1318
  msgstr ""
1319
 
1320
+ #: widgets/features/features.php:226, widgets/headline/headline.php:69, widgets/headline/headline.php:150, base/inc/widgets/base-carousel.class.php:281
1321
  msgid "H1"
1322
  msgstr ""
1323
 
1324
+ #: widgets/features/features.php:227, widgets/headline/headline.php:70, widgets/headline/headline.php:151, base/inc/widgets/base-carousel.class.php:282
1325
  msgid "H2"
1326
  msgstr ""
1327
 
1328
+ #: widgets/features/features.php:228, widgets/headline/headline.php:71, widgets/headline/headline.php:152, base/inc/widgets/base-carousel.class.php:283
1329
  msgid "H3"
1330
  msgstr ""
1331
 
1332
+ #: widgets/features/features.php:229, widgets/headline/headline.php:72, widgets/headline/headline.php:153, base/inc/widgets/base-carousel.class.php:284
1333
  msgid "H4"
1334
  msgstr ""
1335
 
1336
+ #: widgets/features/features.php:230, widgets/headline/headline.php:73, widgets/headline/headline.php:154, base/inc/widgets/base-carousel.class.php:285
1337
  msgid "H5"
1338
  msgstr ""
1339
 
1340
+ #: widgets/features/features.php:231, widgets/headline/headline.php:74, widgets/headline/headline.php:155, base/inc/widgets/base-carousel.class.php:286
1341
  msgid "H6"
1342
  msgstr ""
1343
 
1344
+ #: widgets/features/features.php:237
1345
  msgid "Features per row"
1346
  msgstr ""
1347
 
1348
+ #: widgets/features/features.php:243
1349
  msgid "Responsive layout"
1350
  msgstr ""
1351
 
1352
+ #: widgets/features/features.php:249
1353
  msgid "Link feature title to more URL"
1354
  msgstr ""
1355
 
1356
+ #: widgets/features/features.php:259
1357
  msgid "Link icon to more URL"
1358
  msgstr ""
1359
 
1360
+ #: widgets/features/features.php:269
1361
  msgid "Link feature column to more URL"
1362
  msgstr ""
1363
 
1364
+ #: widgets/features/features.php:281
1365
  msgid "Open more URL in a new window"
1366
  msgstr ""
1367
 
1368
+ #: widgets/features/features.php:341
1369
  msgid "This setting controls when the features widget will collapse for mobile devices. The default value is 520px"
1370
  msgstr ""
1371
 
1372
+ #: widgets/features/features.php:350
1373
  msgid "Add an feature icon title tooltip with %sSiteOrigin Premium%s"
1374
  msgstr ""
1375
 
1376
+ #: widgets/features/features.php:355
1377
  msgid "Use Google Fonts right inside the Features Widget with %sSiteOrigin Premium%s"
1378
  msgstr ""
1379
 
1848
  msgid "SiteOrigin Headline"
1849
  msgstr ""
1850
 
1851
+ #: widgets/headline/headline.php:39
1852
  msgid "The pixel resolution when the mobile alignment settings will be applied."
1853
  msgstr ""
1854
 
1855
+ #: widgets/headline/headline.php:48, widgets/headline/headline.php:277
1856
  msgid "Headline"
1857
  msgstr ""
1858
 
1859
+ #: widgets/headline/headline.php:66, widgets/headline/headline.php:147, base/inc/widgets/base-carousel.class.php:278
1860
  msgid "HTML Tag"
1861
  msgstr ""
1862
 
1863
+ #: widgets/headline/headline.php:75, widgets/headline/headline.php:156, base/inc/widgets/base-carousel.class.php:287
1864
  msgid "Paragraph"
1865
  msgstr ""
1866
 
1867
+ #: widgets/headline/headline.php:84, widgets/headline/headline.php:165
1868
  msgid "Hover Color"
1869
  msgstr ""
1870
 
1871
+ #: widgets/headline/headline.php:93, widgets/headline/headline.php:174
1872
  msgid "Font Size"
1873
  msgstr ""
1874
 
1875
+ #: widgets/headline/headline.php:97, widgets/headline/headline.php:178, widgets/headline/headline.php:243, widgets/icon/icon.php:46
1876
  msgid "Alignment"
1877
  msgstr ""
1878
 
1879
+ #: widgets/headline/headline.php:108, widgets/headline/headline.php:189, widgets/headline/headline.php:253
1880
  msgid "Mobile alignment"
1881
  msgstr ""
1882
 
1883
+ #: widgets/headline/headline.php:118, widgets/headline/headline.php:199
1884
  msgid "Line Height"
1885
  msgstr ""
1886
 
1887
+ #: widgets/headline/headline.php:122, widgets/headline/headline.php:203, widgets/headline/headline.php:267
1888
  msgid "Top and Bottom Margin"
1889
  msgstr ""
1890
 
1891
+ #: widgets/headline/headline.php:129
1892
  msgid "Sub headline"
1893
  msgstr ""
1894
 
1895
+ #: widgets/headline/headline.php:210, widgets/headline/headline.php:278
1896
  msgid "Divider"
1897
  msgstr ""
1898
 
1899
+ #: widgets/headline/headline.php:236
1900
  msgid "Thickness"
1901
  msgstr ""
1902
 
1903
+ #: widgets/headline/headline.php:262
1904
  msgid "Divider Width"
1905
  msgstr ""
1906
 
1907
+ #: widgets/headline/headline.php:275
1908
  msgid "Element Order"
1909
  msgstr ""
1910
 
1911
+ #: widgets/headline/headline.php:279
1912
  msgid "Sub Headline"
1913
  msgstr ""
1914
 
1915
+ #: widgets/headline/headline.php:286, widgets/hero/hero.php:277
1916
  msgid "Use FitText"
1917
  msgstr ""
1918
 
1919
+ #: widgets/headline/headline.php:287, widgets/hero/hero.php:278
1920
  msgid "Dynamically adjust your heading font size based on screen size."
1921
  msgstr ""
1922
 
1923
+ #: widgets/headline/headline.php:300
1924
  msgid "FitText Compressor Strength"
1925
  msgstr ""
1926
 
1927
+ #: widgets/headline/headline.php:301, widgets/hero/hero.php:292
1928
  msgid "The higher the value, the more your headings will be scaled down. Values above 1 are allowed."
1929
  msgstr ""
1930
 
2405
  msgstr ""
2406
 
2407
  #: widgets/price-table/price-table.php:140
2408
+ msgid "Header background color"
2409
  msgstr ""
2410
 
2411
  #: widgets/price-table/price-table.php:145
2412
+ msgid "Header text color"
2413
+ msgstr ""
2414
+
2415
+ #: widgets/price-table/price-table.php:150
2416
+ msgid "Featured header background color"
2417
  msgstr ""
2418
 
2419
  #: widgets/price-table/price-table.php:155
2420
+ msgid "Featured header text color"
2421
+ msgstr ""
2422
+
2423
+ #: widgets/price-table/price-table.php:161
2424
+ msgid "Feature text color"
2425
+ msgstr ""
2426
+
2427
+ #: widgets/price-table/price-table.php:172
2428
  msgid "Featured button color"
2429
  msgstr ""
2430
 
2431
+ #: widgets/price-table/price-table.php:177
2432
  msgid "Open Button URL in a new window"
2433
  msgstr ""
2434
 
2435
+ #: widgets/price-table/price-table.php:182
2436
  msgid "Equalize row heights"
2437
  msgstr ""
2438
 
2439
+ #: widgets/price-table/price-table.php:352
2440
  msgid "Add a Price Table feature tooltip with %sSiteOrigin Premium%s"
2441
  msgstr ""
2442
 
3385
  msgid "Background video opacity"
3386
  msgstr ""
3387
 
3388
+ #: base/inc/widgets/base-slider.class.php:403
3389
  msgid "display slide %s"
3390
  msgstr ""
3391
 
3392
+ #: base/inc/widgets/base-slider.class.php:408
3393
  msgid "next slide"
3394
  msgstr ""
3395
 
3396
+ #: base/inc/widgets/base-slider.class.php:414
3397
  msgid "previous slide"
3398
  msgstr ""
3399
 
readme.txt CHANGED
@@ -3,8 +3,8 @@ Tags: widget, button, slider, hero, google maps, image, carousel, features, icon
3
  Requires at least: 4.2
4
  Tested up to: 5.8
5
  Requires PHP: 5.6.20
6
- Stable tag: 1.26.1
7
- Build time: 2021-12-04T14:52:15+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
@@ -100,6 +100,11 @@ The Widgets Bundle global interface is available at Plugins > SiteOrigin Widgets
100
 
101
  == Changelog ==
102
 
 
 
 
 
 
103
  = 1.26.1 - 04 December 2021 =
104
  * Carousels: Renamed `Carousel Settings` to Settings.
105
  * WPML: Filter posts listed in widget search fields to current page language.
3
  Requires at least: 4.2
4
  Tested up to: 5.8
5
  Requires PHP: 5.6.20
6
+ Stable tag: 1.27.0
7
+ Build time: 2021-12-17T22:50:43+02:00
8
  License: GPLv3 or later
9
  Contributors: gpriday, braam-genis, alexgso
10
  Donate link: https://siteorigin.com/downloads/premium/
100
 
101
  == Changelog ==
102
 
103
+ = 1.27.0 - 17 December 2021 =
104
+ * Price Table: Added new Header, Featured and Feature text color settings.
105
+ * Slider Widgets: Prevented potential settings migration error.
106
+ * Widget Block: Prevented potential Google Maps error.
107
+
108
  = 1.26.1 - 04 December 2021 =
109
  * Carousels: Renamed `Carousel Settings` to Settings.
110
  * WPML: Filter posts listed in widget search fields to current page language.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
- Version: 1.26.1
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
@@ -12,7 +12,7 @@ License: GPL3
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
- define('SOW_BUNDLE_VERSION', '1.26.1');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
2
  /*
3
  Plugin Name: SiteOrigin Widgets Bundle
4
  Description: A highly customizable collection of widgets, ready to be used anywhere, neatly bundled into a single plugin.
5
+ Version: 1.27.0
6
  Text Domain: so-widgets-bundle
7
  Domain Path: /lang
8
  Author: SiteOrigin
12
  License URI: https://www.gnu.org/licenses/gpl-3.0.txt
13
  */
14
 
15
+ define('SOW_BUNDLE_VERSION', '1.27.0');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
widgets/features/features.php CHANGED
@@ -36,7 +36,7 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
36
  );
37
  }
38
 
39
- function get_widget_form(){
40
 
41
  return array(
42
  'features' => array(
@@ -51,7 +51,6 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
51
  'fields' => array(
52
 
53
  // The container shape
54
-
55
  'container_color' => array(
56
  'type' => 'color',
57
  'label' => __( 'Icon container color', 'so-widgets-bundle' ),
@@ -59,21 +58,19 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
59
  ),
60
 
61
  // Left and right array keys are swapped due to a mistake that couldn't be corrected without disturbing existing users.
 
 
 
 
 
 
 
 
 
 
 
62
 
63
- 'container_position' => array(
64
- 'type' => 'select',
65
- 'label' => __( 'Icon container position', 'so-widgets-bundle' ),
66
- 'options' => array(
67
- 'top' => __( 'Top', 'so-widgets-bundle' ),
68
- 'left' => __( 'Right', 'so-widgets-bundle' ),
69
- 'bottom' => __( 'Bottom', 'so-widgets-bundle' ),
70
- 'right' => __( 'Left', 'so-widgets-bundle' ),
71
- ),
72
- 'default' => 'top',
73
- ),
74
-
75
- // The Icon
76
-
77
  'icon' => array(
78
  'type' => 'icon',
79
  'label' => __( 'Icon', 'so-widgets-bundle' ),
@@ -103,8 +100,7 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
103
  'label' => __( 'Icon image size', 'so-widgets-bundle' ),
104
  ),
105
 
106
- // The text under the icon
107
-
108
  'title' => array(
109
  'type' => 'text',
110
  'label' => __( 'Title text', 'so-widgets-bundle' ),
@@ -364,4 +360,4 @@ class SiteOrigin_Widget_Features_Widget extends SiteOrigin_Widget {
364
  }
365
  }
366
 
367
- siteorigin_widget_register('sow-features', __FILE__, 'SiteOrigin_Widget_Features_Widget');
36
  );
37
  }
38
 
39
+ function get_widget_form() {
40
 
41
  return array(
42
  'features' => array(
51
  'fields' => array(
52
 
53
  // The container shape
 
54
  'container_color' => array(
55
  'type' => 'color',
56
  'label' => __( 'Icon container color', 'so-widgets-bundle' ),
58
  ),
59
 
60
  // Left and right array keys are swapped due to a mistake that couldn't be corrected without disturbing existing users.
61
+ 'container_position' => array(
62
+ 'type' => 'select',
63
+ 'label' => __( 'Icon container position', 'so-widgets-bundle' ),
64
+ 'options' => array(
65
+ 'top' => __( 'Top', 'so-widgets-bundle' ),
66
+ 'left' => __( 'Right', 'so-widgets-bundle' ),
67
+ 'bottom' => __( 'Bottom', 'so-widgets-bundle' ),
68
+ 'right' => __( 'Left', 'so-widgets-bundle' ),
69
+ ),
70
+ 'default' => 'top',
71
+ ),
72
 
73
+ // The icon.
 
 
 
 
 
 
 
 
 
 
 
 
 
74
  'icon' => array(
75
  'type' => 'icon',
76
  'label' => __( 'Icon', 'so-widgets-bundle' ),
100
  'label' => __( 'Icon image size', 'so-widgets-bundle' ),
101
  ),
102
 
103
+ // The text under the icon.
 
104
  'title' => array(
105
  'type' => 'text',
106
  'label' => __( 'Title text', 'so-widgets-bundle' ),
360
  }
361
  }
362
 
363
+ siteorigin_widget_register( 'sow-features', __FILE__, 'SiteOrigin_Widget_Features_Widget' );
widgets/google-map/fields/js/location-field.js CHANGED
@@ -1,19 +1,20 @@
1
  /* global jQuery, sowbForms, soLocationField */
2
 
3
  window.sowbForms = window.sowbForms || {};
 
4
 
5
  sowbForms.LocationField = function () {
6
  return {
7
  init: function ( element ) {
8
 
9
- if ( typeof google.maps.places === 'undefined' ) {
10
  console.error( 'SiteOrigin Google Maps Widget: Failed to load the places library.' );
11
  return;
12
  }
13
 
14
  var inputField = element.querySelector( '.siteorigin-widget-location-input' );
15
  var valueField = element.querySelector( '.siteorigin-widget-input' );
16
- var autocomplete = new google.maps.places.Autocomplete( inputField );
17
 
18
  var getSimplePlace = function ( place ) {
19
  return new Promise(function (resolve, reject) {
@@ -24,9 +25,9 @@ sowbForms.LocationField = function () {
24
  resolve(simplePlace);
25
  } else {
26
  var addr = {address: place.hasOwnProperty('formatted_address') ? place.formatted_address : place.name};
27
- new google.maps.Geocoder().geocode(addr,
28
  function (results, status) {
29
- if (status === google.maps.GeocoderStatus.OK) {
30
  simplePlace.location = results[0].geometry.location.toString();
31
  resolve(simplePlace);
32
  } else {
@@ -117,7 +118,7 @@ sowbForms.LocationField = function () {
117
  }
118
  } )
119
  .catch( function ( status ) {
120
- if ( status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT ) {
121
  if ( ! sowbForms.hasOwnProperty( 'overQueryLimitCount' ) ) {
122
  sowbForms.overQueryLimitCount = 1;
123
  } else {
@@ -168,10 +169,15 @@ sowbForms.setupLocationFields = function () {
168
 
169
  // Called by Google Maps API when it has loaded.
170
  function sowbAdminGoogleMapInit() {
 
 
 
 
171
  sowbForms.mapsInitializing = false;
172
  sowbForms.mapsInitialized = true;
173
  sowbForms.setupLocationFields();
174
- }
 
175
 
176
  window.addEventListener('DOMContentLoaded', function () {
177
 
@@ -274,7 +280,7 @@ window.addEventListener('DOMContentLoaded', function () {
274
  var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + apiKey + '&libraries=places&callback=sowbAdminGoogleMapInit';
275
  $( 'body' ).append( '<script async type="text/javascript" id="sow-google-maps-js" src="' + apiUrl + '">' );
276
  } else {
277
- sowbAdminGoogleMapInit();
278
  }
279
  } );
280
 
1
  /* global jQuery, sowbForms, soLocationField */
2
 
3
  window.sowbForms = window.sowbForms || {};
4
+ window.sowb = window.sowb || {};
5
 
6
  sowbForms.LocationField = function () {
7
  return {
8
  init: function ( element ) {
9
 
10
+ if ( typeof window.google.maps.places === 'undefined' ) {
11
  console.error( 'SiteOrigin Google Maps Widget: Failed to load the places library.' );
12
  return;
13
  }
14
 
15
  var inputField = element.querySelector( '.siteorigin-widget-location-input' );
16
  var valueField = element.querySelector( '.siteorigin-widget-input' );
17
+ var autocomplete = new window.google.maps.places.Autocomplete( inputField );
18
 
19
  var getSimplePlace = function ( place ) {
20
  return new Promise(function (resolve, reject) {
25
  resolve(simplePlace);
26
  } else {
27
  var addr = {address: place.hasOwnProperty('formatted_address') ? place.formatted_address : place.name};
28
+ new window.google.maps.Geocoder().geocode(addr,
29
  function (results, status) {
30
+ if (status === window.google.maps.GeocoderStatus.OK) {
31
  simplePlace.location = results[0].geometry.location.toString();
32
  resolve(simplePlace);
33
  } else {
118
  }
119
  } )
120
  .catch( function ( status ) {
121
+ if ( status === window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT ) {
122
  if ( ! sowbForms.hasOwnProperty( 'overQueryLimitCount' ) ) {
123
  sowbForms.overQueryLimitCount = 1;
124
  } else {
169
 
170
  // Called by Google Maps API when it has loaded.
171
  function sowbAdminGoogleMapInit() {
172
+ jQuery( window.sowb ).trigger( 'sow-google-map-loaded' );
173
+ }
174
+
175
+ jQuery( window.sowb ).on( 'sow-google-map-loaded', function() {
176
  sowbForms.mapsInitializing = false;
177
  sowbForms.mapsInitialized = true;
178
  sowbForms.setupLocationFields();
179
+ } );
180
+
181
 
182
  window.addEventListener('DOMContentLoaded', function () {
183
 
280
  var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + apiKey + '&libraries=places&callback=sowbAdminGoogleMapInit';
281
  $( 'body' ).append( '<script async type="text/javascript" id="sow-google-maps-js" src="' + apiUrl + '">' );
282
  } else {
283
+ jQuery( window.sowb ).trigger( 'sow-google-map-loaded' );
284
  }
285
  } );
286
 
widgets/google-map/fields/js/location-field.min.js CHANGED
@@ -1 +1 @@
1
- function sowbAdminGoogleMapInit(){sowbForms.mapsInitializing=!1,sowbForms.mapsInitialized=!0,sowbForms.setupLocationFields()}window.sowbForms=window.sowbForms||{},sowbForms.LocationField=function(){return{init:function(e){if(void 0!==google.maps.places){var o=e.querySelector(".siteorigin-widget-location-input"),i=e.querySelector(".siteorigin-widget-input"),t=new google.maps.places.Autocomplete(o),n=function(e){return new Promise((function(o,i){var t={name:e.name};if(t.address=e.hasOwnProperty("formatted_address")?e.formatted_address:"",e.hasOwnProperty("geometry"))t.location=e.geometry.location.toString(),o(t);else{var n={address:e.hasOwnProperty("formatted_address")?e.formatted_address:e.name};(new google.maps.Geocoder).geocode(n,(function(e,n){n===google.maps.GeocoderStatus.OK?(t.location=e[0].geometry.location.toString(),o(t)):i(n)}))}}))},s=function(){var e=JSON.parse(i.value),t="";e.hasOwnProperty("address")&&(t=e.address),e.hasOwnProperty("name")&&0!==t.indexOf(e.name)&&(t=e.name+", "+t),o.removeEventListener("change",r),o.value=t,o.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),o.addEventListener("change",r)};i.addEventListener("change",s);var a=function(e){i.value=JSON.stringify(e),i.removeEventListener("change",s),i.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),i.addEventListener("change",s)};t.addListener("place_changed",(function(){var e=t.getPlace();n(e).then((function(e){a(e)})).catch((function(o){console.warn('SiteOrigin Google Maps Widget: Geocoding failed for "'+e.name+'" with status: '+o)}))}));var r=function(){a({name:o.value})};if(o.addEventListener("change",r),i.value){var l={};try{var d=JSON.parse(i.value);d.hasOwnProperty("location")||d.hasOwnProperty("address")&&(l.name=d.address)}catch(e){l.name=i.value}if(l.hasOwnProperty("name")&&"null"!==l.name){sowbForms.mapsMigrationLogged||(console.info("SiteOrigin Google Maps Widget: Starting automatic migration of location. Please wait a moment..."),sowbForms.mapsMigrationLogged=!0);var c=100;sowbForms._geocodeQueue.push({place:l,field:i}),1===sowbForms._geocodeQueue.length&&setTimeout((function(){!function e(o,t){n(o).then((function(o){if(t.value=JSON.stringify(o),i.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),sowbForms._geocodeQueue.shift(),sowbForms._geocodeQueue.length>0){var n=sowbForms._geocodeQueue[0];setTimeout((function(){e(n.place,n.field)}),c)}else console.info("SiteOrigin Google Maps Widget: Location fields updated. Please save the post to complete the migration.")})).catch((function(o){if(o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT)if(sowbForms.hasOwnProperty("overQueryLimitCount")?sowbForms.overQueryLimitCount++:sowbForms.overQueryLimitCount=1,sowbForms.overQueryLimitCount<3){var i=sowbForms._geocodeQueue[0];c*=10,setTimeout((function(){e(i.place,i.field)}),c)}else console.warn("SiteOrigin Google Maps Widget: Automatic migration of old address failed with status: "+o),console.info("SiteOrigin Google Maps Widget: Please save this post and open the form to try again.")}))}(l,i)}),c)}else s()}}else console.error("SiteOrigin Google Maps Widget: Failed to load the places library.")}}},sowbForms.setupLocationFields=function(){window.google&&window.google.maps&&window.google.maps.places&&document.querySelectorAll(".siteorigin-widget-field-type-location").forEach((function(e){!(0===e.offsetWidth||0===e.offsetHeight)&&"true"!==e.getAttribute("data-initialized")&&((new sowbForms.LocationField).init(e),e.setAttribute("data-initialized","true"))}))},window.addEventListener("DOMContentLoaded",(function(){var e=e||jQuery;e&&e(document).on("sowsetupformfield",".siteorigin-widget-field-type-location",(function(){sowbForms._geocodeQueue=sowbForms._geocodeQueue||[];var o=e(this);if(!sowbForms.mapsInitializing)if(sowbForms.mapsInitialized)sowbForms.setupLocationFields();else{sowbForms.mapsInitializing=!0;var i=o.find(".location-field-data").data("apiKey");if(i||(sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.missingApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],o),console.warn("SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required."),i=""),window.console&&window.console.error){var t=window.console.error;sowbForms.checkMapsApiInvalidKeyError=function(i){var n;if("string"==typeof i&&(null===(n=i.match(/^Google Maps.*API (error|warning): (.*)/))&&(n=i.match(/^This API project is not authorized to use this API/)),n&&(3===n.length?n=n[2]:1===n.length&&(n="ApiNotActivatedMapError"))),n)switch(n){case"InvalidKeyMapError":sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.invalidApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],o);break;case"ApiNotActivatedMapError":sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.apiNotEnabled,"",[],o)}t.apply(window.console,arguments)}.bind(this),window.console.error=sowbForms.checkMapsApiInvalidKeyError}if(e("#sow-google-maps-js").length)sowbAdminGoogleMapInit();else{var n="https://maps.googleapis.com/maps/api/js?key="+i+"&libraries=places&callback=sowbAdminGoogleMapInit";e("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+n+'">')}}}))}));
1
+ function sowbAdminGoogleMapInit(){jQuery(window.sowb).trigger("sow-google-map-loaded")}window.sowbForms=window.sowbForms||{},window.sowb=window.sowb||{},sowbForms.LocationField=function(){return{init:function(e){if(void 0!==window.google.maps.places){var o=e.querySelector(".siteorigin-widget-location-input"),i=e.querySelector(".siteorigin-widget-input"),t=new window.google.maps.places.Autocomplete(o),n=function(e){return new Promise((function(o,i){var t={name:e.name};if(t.address=e.hasOwnProperty("formatted_address")?e.formatted_address:"",e.hasOwnProperty("geometry"))t.location=e.geometry.location.toString(),o(t);else{var n={address:e.hasOwnProperty("formatted_address")?e.formatted_address:e.name};(new window.google.maps.Geocoder).geocode(n,(function(e,n){n===window.google.maps.GeocoderStatus.OK?(t.location=e[0].geometry.location.toString(),o(t)):i(n)}))}}))},s=function(){var e=JSON.parse(i.value),t="";e.hasOwnProperty("address")&&(t=e.address),e.hasOwnProperty("name")&&0!==t.indexOf(e.name)&&(t=e.name+", "+t),o.removeEventListener("change",r),o.value=t,o.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),o.addEventListener("change",r)};i.addEventListener("change",s);var a=function(e){i.value=JSON.stringify(e),i.removeEventListener("change",s),i.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),i.addEventListener("change",s)};t.addListener("place_changed",(function(){var e=t.getPlace();n(e).then((function(e){a(e)})).catch((function(o){console.warn('SiteOrigin Google Maps Widget: Geocoding failed for "'+e.name+'" with status: '+o)}))}));var r=function(){a({name:o.value})};if(o.addEventListener("change",r),i.value){var l={};try{var d=JSON.parse(i.value);d.hasOwnProperty("location")||d.hasOwnProperty("address")&&(l.name=d.address)}catch(e){l.name=i.value}if(l.hasOwnProperty("name")&&"null"!==l.name){sowbForms.mapsMigrationLogged||(console.info("SiteOrigin Google Maps Widget: Starting automatic migration of location. Please wait a moment..."),sowbForms.mapsMigrationLogged=!0);var c=100;sowbForms._geocodeQueue.push({place:l,field:i}),1===sowbForms._geocodeQueue.length&&setTimeout((function(){!function e(o,t){n(o).then((function(o){if(t.value=JSON.stringify(o),i.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),sowbForms._geocodeQueue.shift(),sowbForms._geocodeQueue.length>0){var n=sowbForms._geocodeQueue[0];setTimeout((function(){e(n.place,n.field)}),c)}else console.info("SiteOrigin Google Maps Widget: Location fields updated. Please save the post to complete the migration.")})).catch((function(o){if(o===window.google.maps.GeocoderStatus.OVER_QUERY_LIMIT)if(sowbForms.hasOwnProperty("overQueryLimitCount")?sowbForms.overQueryLimitCount++:sowbForms.overQueryLimitCount=1,sowbForms.overQueryLimitCount<3){var i=sowbForms._geocodeQueue[0];c*=10,setTimeout((function(){e(i.place,i.field)}),c)}else console.warn("SiteOrigin Google Maps Widget: Automatic migration of old address failed with status: "+o),console.info("SiteOrigin Google Maps Widget: Please save this post and open the form to try again.")}))}(l,i)}),c)}else s()}}else console.error("SiteOrigin Google Maps Widget: Failed to load the places library.")}}},sowbForms.setupLocationFields=function(){window.google&&window.google.maps&&window.google.maps.places&&document.querySelectorAll(".siteorigin-widget-field-type-location").forEach((function(e){!(0===e.offsetWidth||0===e.offsetHeight)&&"true"!==e.getAttribute("data-initialized")&&((new sowbForms.LocationField).init(e),e.setAttribute("data-initialized","true"))}))},jQuery(window.sowb).on("sow-google-map-loaded",(function(){sowbForms.mapsInitializing=!1,sowbForms.mapsInitialized=!0,sowbForms.setupLocationFields()})),window.addEventListener("DOMContentLoaded",(function(){var e=e||jQuery;e&&e(document).on("sowsetupformfield",".siteorigin-widget-field-type-location",(function(){sowbForms._geocodeQueue=sowbForms._geocodeQueue||[];var o=e(this);if(!sowbForms.mapsInitializing)if(sowbForms.mapsInitialized)sowbForms.setupLocationFields();else{sowbForms.mapsInitializing=!0;var i=o.find(".location-field-data").data("apiKey");if(i||(sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.missingApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],o),console.warn("SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required."),i=""),window.console&&window.console.error){var t=window.console.error;sowbForms.checkMapsApiInvalidKeyError=function(i){var n;if("string"==typeof i&&(null===(n=i.match(/^Google Maps.*API (error|warning): (.*)/))&&(n=i.match(/^This API project is not authorized to use this API/)),n&&(3===n.length?n=n[2]:1===n.length&&(n="ApiNotActivatedMapError"))),n)switch(n){case"InvalidKeyMapError":sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.invalidApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],o);break;case"ApiNotActivatedMapError":sowbForms.displayNotice(e(this).closest(".siteorigin-widget-form"),soLocationField.apiNotEnabled,"",[],o)}t.apply(window.console,arguments)}.bind(this),window.console.error=sowbForms.checkMapsApiInvalidKeyError}if(e("#sow-google-maps-js").length)jQuery(window.sowb).trigger("sow-google-map-loaded");else{var n="https://maps.googleapis.com/maps/api/js?key="+i+"&libraries=places&callback=sowbAdminGoogleMapInit";e("body").append('<script async type="text/javascript" id="sow-google-maps-js" src="'+n+'">')}}}))}));
widgets/headline/headline.php CHANGED
@@ -24,9 +24,8 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
24
  );
25
  }
26
 
27
- function initialize(){
28
  add_action( 'siteorigin_widgets_enqueue_frontend_scripts_' . $this->id_base, array( $this, 'enqueue_widget_scripts' ) );
29
-
30
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $this->id_base, array( $this, 'wrapper_class_filter' ), 10, 2 );
31
  add_filter( 'siteorigin_widgets_wrapper_data_' . $this->id_base, array( $this, 'wrapper_data_filter' ), 10, 2 );
32
  }
@@ -42,7 +41,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
42
  );
43
  }
44
 
45
- function get_widget_form(){
46
  return array(
47
  'headline' => array(
48
  'type' => 'section',
@@ -315,7 +314,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
315
  'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ),
316
  );
317
 
318
- // All the headline attributes
319
  $less_vars['headline_tag'] = isset( $instance['headline']['tag'] ) ? $instance['headline']['tag'] : false;
320
  $less_vars['headline_hover_color'] = isset( $instance['headline']['hover_color'] ) ? $instance['headline']['hover_color'] : false;
321
  $less_vars['headline_align'] = isset( $instance['headline']['align'] ) ? $instance['headline']['align'] : false;
@@ -325,7 +324,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
325
  $less_vars['headline_line_height'] = isset( $instance['headline']['line_height'] ) ? $instance['headline']['line_height'] : false;
326
  $less_vars['headline_margin'] = isset( $instance['headline']['margin'] ) ? $instance['headline']['margin'] : false;
327
 
328
- // Headline font family and weight
329
  if ( ! empty( $instance['headline']['font'] ) ) {
330
  $font = siteorigin_widget_get_font( $instance['headline']['font'] );
331
  $less_vars['headline_font'] = $font['family'];
@@ -335,7 +334,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
335
  }
336
  }
337
 
338
- // Set the sub headline attributes
339
  $less_vars['sub_headline_align'] = isset( $instance['sub_headline']['align'] ) ? $instance['sub_headline']['align'] : false;
340
  $less_vars['sub_headline_mobile_align'] = isset( $instance['sub_headline']['mobile_align'] ) ? $instance['sub_headline']['mobile_align'] : false;
341
  $less_vars['sub_headline_hover_color'] = isset( $instance['sub_headline']['hover_color'] ) ? $instance['sub_headline']['hover_color'] : false;
@@ -345,7 +344,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
345
  $less_vars['sub_headline_line_height'] = isset( $instance['sub_headline']['line_height'] ) ? $instance['sub_headline']['line_height'] : false;
346
  $less_vars['sub_headline_margin'] = isset( $instance['sub_headline']['margin'] ) ? $instance['sub_headline']['margin'] : false;
347
 
348
- // Sub headline font family and weight
349
  if ( ! empty( $instance['sub_headline']['font'] ) ) {
350
  $font = siteorigin_widget_get_font( $instance['sub_headline']['font'] );
351
  $less_vars['sub_headline_font'] = $font['family'];
@@ -375,7 +374,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
375
  * @return array
376
  */
377
  function get_template_variables( $instance, $args ) {
378
- if( empty( $instance ) ) return array();
379
 
380
  return array(
381
  'headline' => $instance['headline']['text'],
@@ -391,28 +390,28 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
391
  );
392
  }
393
 
394
- function wrapper_class_filter( $classes, $instance ){
395
- if( ! empty( $instance[ 'fittext' ] ) ) {
396
  $classes[] = 'so-widget-fittext-wrapper';
397
  }
398
  return $classes;
399
  }
400
 
401
  function wrapper_data_filter( $data, $instance ) {
402
- if( ! empty( $instance['fittext'] ) ) {
403
  $data['fit-text-compressor'] = $instance['fittext_compressor'];
404
  }
405
  return $data;
406
  }
407
 
408
  function enqueue_widget_scripts( $instance ) {
409
- if( ! empty( $instance['fittext'] ) || $this->is_preview( $instance ) ) {
410
  wp_enqueue_script( 'sowb-fittext' );
411
  }
412
  }
413
 
414
  function modify_instance( $instance ) {
415
- // Change the old divider weight into a divider thickness
416
  if( isset( $instance['divider']['weight'] ) && ! isset( $instance['divider']['thickness'] ) ) {
417
  switch( $instance['divider']['weight'] ) {
418
  case 'medium':
@@ -429,23 +428,23 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
429
  unset( $instance['divider']['weight'] );
430
  }
431
 
432
- // Change the old divider side margin into overall width
433
  if( isset( $instance['divider']['side_margin'] ) && ! isset( $instance['divider']['width'] ) ) {
434
  global $content_width;
435
- $value = (float) $instance['divider']['side_margin'];
436
 
437
  switch( $instance['divider']['side_margin_unit'] ) {
438
- case 'px' :
439
  $instance['divider']['width'] = ( ( !empty( $content_width ) ? $content_width : 960 ) - ( 2 * $value ) ) . 'px';
440
  $instance['divider']['width_unit'] = 'px';
441
  break;
442
 
443
- case '%' :
444
- $instance['divider']['width'] = ( 100 - (2 * $value) ) . '%';
445
  $instance['divider']['width_unit'] = '%';
446
  break;
447
 
448
- default :
449
  $instance['divider']['width'] = '80%';
450
  $instance['divider']['width_unit'] = '%';
451
  break;
@@ -455,8 +454,8 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
455
  unset( $instance['divider']['side_margin_unit'] );
456
  }
457
 
458
- // Copy top margin over to bottom margin
459
- if( isset( $instance['divider']['top_margin'] ) && ! isset( $instance['divider']['bottom_margin'] ) ) {
460
  $instance['divider']['bottom_margin'] = $instance['divider']['top_margin'];
461
  $instance['divider']['bottom_margin_unit'] = $instance['divider']['top_margin_unit'];
462
  }
@@ -471,4 +470,4 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
471
  }
472
  }
473
 
474
- siteorigin_widget_register('sow-headline', __FILE__, 'SiteOrigin_Widget_Headline_Widget');
24
  );
25
  }
26
 
27
+ function initialize() {
28
  add_action( 'siteorigin_widgets_enqueue_frontend_scripts_' . $this->id_base, array( $this, 'enqueue_widget_scripts' ) );
 
29
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $this->id_base, array( $this, 'wrapper_class_filter' ), 10, 2 );
30
  add_filter( 'siteorigin_widgets_wrapper_data_' . $this->id_base, array( $this, 'wrapper_data_filter' ), 10, 2 );
31
  }
41
  );
42
  }
43
 
44
+ function get_widget_form() {
45
  return array(
46
  'headline' => array(
47
  'type' => 'section',
314
  'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ),
315
  );
316
 
317
+ // All the headline attributes.
318
  $less_vars['headline_tag'] = isset( $instance['headline']['tag'] ) ? $instance['headline']['tag'] : false;
319
  $less_vars['headline_hover_color'] = isset( $instance['headline']['hover_color'] ) ? $instance['headline']['hover_color'] : false;
320
  $less_vars['headline_align'] = isset( $instance['headline']['align'] ) ? $instance['headline']['align'] : false;
324
  $less_vars['headline_line_height'] = isset( $instance['headline']['line_height'] ) ? $instance['headline']['line_height'] : false;
325
  $less_vars['headline_margin'] = isset( $instance['headline']['margin'] ) ? $instance['headline']['margin'] : false;
326
 
327
+ // Headline font family and weight.
328
  if ( ! empty( $instance['headline']['font'] ) ) {
329
  $font = siteorigin_widget_get_font( $instance['headline']['font'] );
330
  $less_vars['headline_font'] = $font['family'];
334
  }
335
  }
336
 
337
+ // Set the sub headline attributes.
338
  $less_vars['sub_headline_align'] = isset( $instance['sub_headline']['align'] ) ? $instance['sub_headline']['align'] : false;
339
  $less_vars['sub_headline_mobile_align'] = isset( $instance['sub_headline']['mobile_align'] ) ? $instance['sub_headline']['mobile_align'] : false;
340
  $less_vars['sub_headline_hover_color'] = isset( $instance['sub_headline']['hover_color'] ) ? $instance['sub_headline']['hover_color'] : false;
344
  $less_vars['sub_headline_line_height'] = isset( $instance['sub_headline']['line_height'] ) ? $instance['sub_headline']['line_height'] : false;
345
  $less_vars['sub_headline_margin'] = isset( $instance['sub_headline']['margin'] ) ? $instance['sub_headline']['margin'] : false;
346
 
347
+ // Sub headline font family and weight.
348
  if ( ! empty( $instance['sub_headline']['font'] ) ) {
349
  $font = siteorigin_widget_get_font( $instance['sub_headline']['font'] );
350
  $less_vars['sub_headline_font'] = $font['family'];
374
  * @return array
375
  */
376
  function get_template_variables( $instance, $args ) {
377
+ if ( empty( $instance ) ) return array();
378
 
379
  return array(
380
  'headline' => $instance['headline']['text'],
390
  );
391
  }
392
 
393
+ function wrapper_class_filter( $classes, $instance ) {
394
+ if ( ! empty( $instance[ 'fittext' ] ) ) {
395
  $classes[] = 'so-widget-fittext-wrapper';
396
  }
397
  return $classes;
398
  }
399
 
400
  function wrapper_data_filter( $data, $instance ) {
401
+ if ( ! empty( $instance['fittext'] ) ) {
402
  $data['fit-text-compressor'] = $instance['fittext_compressor'];
403
  }
404
  return $data;
405
  }
406
 
407
  function enqueue_widget_scripts( $instance ) {
408
+ if ( ! empty( $instance['fittext'] ) || $this->is_preview( $instance ) ) {
409
  wp_enqueue_script( 'sowb-fittext' );
410
  }
411
  }
412
 
413
  function modify_instance( $instance ) {
414
+ // Change the old divider weight into a divider thickness.
415
  if( isset( $instance['divider']['weight'] ) && ! isset( $instance['divider']['thickness'] ) ) {
416
  switch( $instance['divider']['weight'] ) {
417
  case 'medium':
428
  unset( $instance['divider']['weight'] );
429
  }
430
 
431
+ // Change the old divider side margin into overall width.
432
  if( isset( $instance['divider']['side_margin'] ) && ! isset( $instance['divider']['width'] ) ) {
433
  global $content_width;
434
+ $value = ( float ) $instance['divider']['side_margin'];
435
 
436
  switch( $instance['divider']['side_margin_unit'] ) {
437
+ case 'px':
438
  $instance['divider']['width'] = ( ( !empty( $content_width ) ? $content_width : 960 ) - ( 2 * $value ) ) . 'px';
439
  $instance['divider']['width_unit'] = 'px';
440
  break;
441
 
442
+ case '%':
443
+ $instance['divider']['width'] = ( 100 - ( 2 * $value ) ) . '%';
444
  $instance['divider']['width_unit'] = '%';
445
  break;
446
 
447
+ default:
448
  $instance['divider']['width'] = '80%';
449
  $instance['divider']['width_unit'] = '%';
450
  break;
454
  unset( $instance['divider']['side_margin_unit'] );
455
  }
456
 
457
+ // Copy top margin over to bottom margin.
458
+ if ( isset( $instance['divider']['top_margin'] ) && ! isset( $instance['divider']['bottom_margin'] ) ) {
459
  $instance['divider']['bottom_margin'] = $instance['divider']['top_margin'];
460
  $instance['divider']['bottom_margin_unit'] = $instance['divider']['top_margin_unit'];
461
  }
470
  }
471
  }
472
 
473
+ siteorigin_widget_register( 'sow-headline', __FILE__, 'SiteOrigin_Widget_Headline_Widget' );
widgets/price-table/price-table.php CHANGED
@@ -137,12 +137,29 @@ class SiteOrigin_Widget_PriceTable_Widget extends SiteOrigin_Widget {
137
 
138
  'header_color' => array(
139
  'type' => 'color',
140
- 'label' => __( 'Header color', 'so-widgets-bundle' ),
 
 
 
 
 
141
  ),
142
 
143
  'featured_header_color' => array(
144
  'type' => 'color',
145
- 'label' => __( 'Featured header color', 'so-widgets-bundle' ),
 
 
 
 
 
 
 
 
 
 
 
 
146
  ),
147
 
148
  'button_color' => array(
@@ -266,16 +283,22 @@ class SiteOrigin_Widget_PriceTable_Widget extends SiteOrigin_Widget {
266
  function get_less_variables( $instance ) {
267
  $instance = wp_parse_args( $instance, array(
268
  'header_color' => '',
 
269
  'featured_header_color' => '',
 
 
270
  'button_color' => '',
271
  'featured_button_color' => '',
272
  ) );
273
 
274
  $colors = array(
275
- 'header_color' => $instance['header_color'],
276
- 'featured_header_color' => $instance['featured_header_color'],
277
- 'button_color' => $instance['button_color'],
278
- 'featured_button_color' => $instance['featured_button_color'],
 
 
 
279
  );
280
 
281
  if ( ! class_exists( 'SiteOrigin_Widgets_Color_Object' ) ) {
137
 
138
  'header_color' => array(
139
  'type' => 'color',
140
+ 'label' => __( 'Header background color', 'so-widgets-bundle' ),
141
+ ),
142
+
143
+ 'header_text_color' => array(
144
+ 'type' => 'color',
145
+ 'label' => __( 'Header text color', 'so-widgets-bundle' ),
146
  ),
147
 
148
  'featured_header_color' => array(
149
  'type' => 'color',
150
+ 'label' => __( 'Featured header background color', 'so-widgets-bundle' ),
151
+ ),
152
+
153
+ 'featured_header_text_color' => array(
154
+ 'type' => 'color',
155
+ 'label' => __( 'Featured header text color', 'so-widgets-bundle' ),
156
+ 'default' => '#fff',
157
+ ),
158
+
159
+ 'feature_text_color' => array(
160
+ 'type' => 'color',
161
+ 'label' => __( 'Feature text color', 'so-widgets-bundle' ),
162
+ 'default' => '#5f6062',
163
  ),
164
 
165
  'button_color' => array(
283
  function get_less_variables( $instance ) {
284
  $instance = wp_parse_args( $instance, array(
285
  'header_color' => '',
286
+ 'header_text_color' => '',
287
  'featured_header_color' => '',
288
+ 'featured_header_text_color' => '',
289
+ 'feature_text_color' => '',
290
  'button_color' => '',
291
  'featured_button_color' => '',
292
  ) );
293
 
294
  $colors = array(
295
+ 'header_color' => $instance['header_color'],
296
+ 'header_text_color' => $instance['header_text_color'],
297
+ 'featured_header_color' => $instance['featured_header_color'],
298
+ 'featured_header_text_color' => $instance['featured_header_text_color'],
299
+ 'feature_text_color' => $instance['feature_text_color'],
300
+ 'button_color' => $instance['button_color'],
301
+ 'featured_button_color' => $instance['featured_button_color'],
302
  );
303
 
304
  if ( ! class_exists( 'SiteOrigin_Widgets_Color_Object' ) ) {
widgets/price-table/styles/atom.less CHANGED
@@ -4,6 +4,11 @@
4
  @header_color: #65707f;
5
  @featured_header_color: lighten(#65707f, 5%);
6
 
 
 
 
 
 
7
  /* Button colors */
8
  @button_color: #41a9d5;
9
  @button_text_color: #FFFFFF;
@@ -15,13 +20,13 @@
15
  padding-top: 20px;
16
 
17
  .ow-pt-column {
 
18
  float: left;
19
 
20
  .ow-pt-title {
21
  .gradient(@header_color, darken(@header_color, 10%), @header_color);
22
  padding: 20px 0;
23
  text-align: center;
24
- color: #FFFFFF;
25
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
26
  border: 1px solid darken(@header_color, 20%);
27
  border-bottom: 0;
@@ -31,36 +36,27 @@
31
 
32
  .ow-pt-subtitle {
33
  font-size: 0.9em;
34
- color: #F0F0F0;
35
  }
36
  }
37
 
38
  .ow-pt-details {
39
- .gradient(lighten(@header_color, 5%), lighten(@header_color, 1%), lighten(@header_color, 5%));
40
- position: relative;
41
- padding: 15px 25px;
42
-
43
- border-width: 1px;
44
- border-style: solid;
45
  border-color: darken(@header_color, 2%);
46
- border-top-color: darken(@header_color, 20%);
47
  border-right-width: 0;
48
-
 
 
49
  .box-shadow(~"inset 0px -15px 25px rgba(0,0,0,0.05)");
50
-
 
 
51
  text-align: center;
52
 
53
  .ow-pt-price {
54
- color: #FFFFFF;
55
  font-size: 2.5em;
56
  line-height: 1.25em;
57
  font-weight: 300;
58
  text-shadow: 0 1px 1px rgba(0,0,0,0.25);
59
  }
60
-
61
- .ow-pt-per {
62
- color: lighten(@header_color, 50%);
63
- }
64
  }
65
 
66
  .ow-pt-image {
@@ -76,7 +72,7 @@
76
 
77
  .ow-pt-features {
78
  font-size: 0.925em;
79
- color: #5f6062;
80
 
81
  .ow-pt-feature {
82
  padding: 15px 20px;
@@ -177,11 +173,12 @@
177
  }
178
 
179
  &.ow-pt-featured {
 
180
  margin-top: -20px;
181
  .ow-pt-title {
182
- padding: 30px 0;
183
  border-color: darken(@featured_header_color, 20%);
184
  .gradient(@featured_header_color, darken(@featured_header_color, 10%), @featured_header_color);
 
185
  }
186
 
187
  .ow-pt-details {
4
  @header_color: #65707f;
5
  @featured_header_color: lighten(#65707f, 5%);
6
 
7
+ /* Text Colors */
8
+ @header_text_color: #fff;
9
+ @featured_header_text_color: #fff;
10
+ @feature_text_color: #5f6062;
11
+
12
  /* Button colors */
13
  @button_color: #41a9d5;
14
  @button_text_color: #FFFFFF;
20
  padding-top: 20px;
21
 
22
  .ow-pt-column {
23
+ color: @header_text_color;
24
  float: left;
25
 
26
  .ow-pt-title {
27
  .gradient(@header_color, darken(@header_color, 10%), @header_color);
28
  padding: 20px 0;
29
  text-align: center;
 
30
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5);
31
  border: 1px solid darken(@header_color, 20%);
32
  border-bottom: 0;
36
 
37
  .ow-pt-subtitle {
38
  font-size: 0.9em;
 
39
  }
40
  }
41
 
42
  .ow-pt-details {
 
 
 
 
 
 
43
  border-color: darken(@header_color, 2%);
 
44
  border-right-width: 0;
45
+ border-style: solid;
46
+ border-top-color: darken(@header_color, 20%);
47
+ border-width: 1px;
48
  .box-shadow(~"inset 0px -15px 25px rgba(0,0,0,0.05)");
49
+ .gradient(lighten(@header_color, 5%), lighten(@header_color, 1%), lighten(@header_color, 5%));
50
+ padding: 15px 25px;
51
+ position: relative;
52
  text-align: center;
53
 
54
  .ow-pt-price {
 
55
  font-size: 2.5em;
56
  line-height: 1.25em;
57
  font-weight: 300;
58
  text-shadow: 0 1px 1px rgba(0,0,0,0.25);
59
  }
 
 
 
 
60
  }
61
 
62
  .ow-pt-image {
72
 
73
  .ow-pt-features {
74
  font-size: 0.925em;
75
+ color: @feature_text_color;
76
 
77
  .ow-pt-feature {
78
  padding: 15px 20px;
173
  }
174
 
175
  &.ow-pt-featured {
176
+ color: @featured_header_text_color;
177
  margin-top: -20px;
178
  .ow-pt-title {
 
179
  border-color: darken(@featured_header_color, 20%);
180
  .gradient(@featured_header_color, darken(@featured_header_color, 10%), @featured_header_color);
181
+ padding: 30px 0;
182
  }
183
 
184
  .ow-pt-details {