SiteOrigin Widgets Bundle - Version 1.15.6

Version Description

  • 29 April 2019 =
  • Image: Fix images vertical stretching.
  • Image: Fix widths for images wrapped in links.
  • Google Maps Location Field: Remove some unnecessary use of jQuery to avoid $ is not a function errors.
  • Google Maps Location Field: Check if matchError exists before accessing.
Download this release

Release Info

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

Code changes from version 1.15.5 to 1.15.6

readme.txt CHANGED
@@ -1,9 +1,9 @@
1
=== SiteOrigin Widgets Bundle ===
2
Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
3
Requires at least: 4.2
4
- Tested up to: 5.1
5
- Stable tag: 1.15.5
6
- Build time: 2019-04-25T13:09:36-07:00
7
License: GPLv3 or later
8
Contributors: gpriday, braam-genis
9
Donate link: https://siteorigin.com/downloads/premium/
@@ -65,6 +65,12 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
65
66
== Changelog ==
67
68
= 1.15.5 - 25 April 2019 =
69
* Removed admin notice for new widgets.
70
* Slider Base Widget: Removed unused background videos height setting.
1
=== SiteOrigin Widgets Bundle ===
2
Tags: bundle, widget, button, slider, image, carousel, price table, google maps, tinymce, social links
3
Requires at least: 4.2
4
+ Tested up to: 5.2
5
+ Stable tag: 1.15.6
6
+ Build time: 2019-04-29T11:24:58-07:00
7
License: GPLv3 or later
8
Contributors: gpriday, braam-genis
9
Donate link: https://siteorigin.com/downloads/premium/
65
66
== Changelog ==
67
68
+ = 1.15.6 - 29 April 2019 =
69
+ * Image: Fix images vertical stretching.
70
+ * Image: Fix widths for images wrapped in links.
71
+ * Google Maps Location Field: Remove some unnecessary use of jQuery to avoid `$ is not a function` errors.
72
+ * Google Maps Location Field: Check if matchError exists before accessing.
73
+
74
= 1.15.5 - 25 April 2019 =
75
* Removed admin notice for new widgets.
76
* Slider Base Widget: Removed unused background videos height setting.
so-widgets-bundle.php CHANGED
@@ -2,7 +2,7 @@
2
/*
3
Plugin Name: SiteOrigin Widgets Bundle
4
Description: A collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
- Version: 1.15.5
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.15.5');
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 collection of all widgets, neatly bundled into a single plugin. It's also a framework to code your own widgets on top of.
5
+ Version: 1.15.6
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.15.6');
16
define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
18
// Allow JS suffix to be pre-set
widgets/google-map/fields/js/location-field.js CHANGED
@@ -11,57 +11,58 @@ sowbForms.LocationField = function () {
11
return;
12
}
13
14
- var $inputField = $( element ).find( '.siteorigin-widget-location-input' );
15
- var $valueField = $( element ).find( '.siteorigin-widget-input' );
16
- var autocomplete = new google.maps.places.Autocomplete( $inputField.get( 0 ) );
17
18
var getSimplePlace = function ( place ) {
19
- var promise = new $.Deferred();
20
- var simplePlace = { name: place.name };
21
- simplePlace.address = place.hasOwnProperty( 'formatted_address' ) ? place.formatted_address : '';
22
- if ( place.hasOwnProperty( 'geometry' ) ) {
23
- simplePlace.location = place.geometry.location.toString();
24
- promise.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
- promise.resolve( simplePlace );
32
- } else {
33
- promise.reject( status );
34
- }
35
- } );
36
- }
37
- return promise;
38
};
39
40
var onPlaceChanged = function () {
41
var place = autocomplete.getPlace();
42
43
getSimplePlace( place )
44
- .done( function ( simplePlace ) {
45
- $valueField.val( JSON.stringify( simplePlace ) )
46
- $valueField.trigger( 'change' );
47
} )
48
- .fail( function ( status ) {
49
console.warn( 'SiteOrigin Google Maps Widget: Geocoding failed for "' + place.name + '" with status: ' + status );
50
} );
51
};
52
53
autocomplete.addListener( 'place_changed', onPlaceChanged );
54
55
- $inputField.on( 'change', function () {
56
- $valueField.val( JSON.stringify( { name: $inputField.val() } ) );
57
- $valueField.trigger( 'change' );
58
} );
59
60
- if ( $valueField.val() ) {
61
// Attempt automatic migration
62
var place = {};
63
try {
64
- var parsed = JSON.parse( $valueField.val() );
65
if ( ! parsed.hasOwnProperty( 'location' ) ) {
66
if ( parsed.hasOwnProperty( 'address' ) ) {
67
place.name = parsed.address;
@@ -69,7 +70,7 @@ sowbForms.LocationField = function () {
69
}
70
} catch ( error ) {
71
// Let's just try use the value directly.
72
- place.name = $valueField.val();
73
}
74
if ( place.hasOwnProperty( 'name' ) && place.name !== 'null') {
75
if ( ! sowbForms.mapsMigrationLogged ) {
@@ -79,9 +80,9 @@ sowbForms.LocationField = function () {
79
var delay = 100;
80
function callGetSimplePlace( place, field ) {
81
getSimplePlace( place )
82
- .done( function ( simplePlace ) {
83
- field.val( JSON.stringify( simplePlace ) );
84
- field.trigger( 'change' );
85
sowbForms._geocodeQueue.shift();
86
if ( sowbForms._geocodeQueue.length > 0 ) {
87
var next = sowbForms._geocodeQueue[ 0 ];
@@ -92,7 +93,7 @@ sowbForms.LocationField = function () {
92
console.info( 'SiteOrigin Google Maps Widget: Location fields updated. Please save the post to complete the migration.' );
93
}
94
} )
95
- .fail( function ( status ) {
96
if ( status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT ) {
97
if ( ! sowbForms.hasOwnProperty( 'overQueryLimitCount' ) ) {
98
sowbForms.overQueryLimitCount = 1;
@@ -116,10 +117,10 @@ sowbForms.LocationField = function () {
116
}
117
} );
118
}
119
- sowbForms._geocodeQueue.push( { place: place, field: $valueField } );
120
if ( sowbForms._geocodeQueue.length === 1 ) {
121
setTimeout( function () {
122
- callGetSimplePlace( place, $valueField );
123
}, delay );
124
}
125
}
@@ -130,10 +131,10 @@ sowbForms.LocationField = function () {
130
131
sowbForms.setupLocationFields = function () {
132
if ( google && google.maps && google.maps.places ) {
133
- $( '.siteorigin-widget-field-type-location' ).each( function ( index, element ) {
134
- if ( ! $( element ).data( 'initialized' ) ) {
135
new sowbForms.LocationField().init( element );
136
- $( element ).data( 'initialized', true );
137
}
138
} );
139
}
@@ -146,7 +147,7 @@ function sowbAdminGoogleMapInit() {
146
sowbForms.setupLocationFields();
147
}
148
149
- ( function ( $ ) {
150
151
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-location', function () {
152
@@ -199,10 +200,12 @@ function sowbAdminGoogleMapInit() {
199
// This occurs when the API key has been restricted to prevent use of certain APIs.
200
matchError = error.match( /^This API project is not authorized to use this API/ );
201
}
202
- if ( matchError.length === 3 ) {
203
- matchError = matchError[ 2 ];
204
- } else if ( matchError.length === 1 ) {
205
- matchError = 'ApiNotActivatedMapError';
206
}
207
}
208
if ( matchError ) {
@@ -243,4 +246,4 @@ function sowbAdminGoogleMapInit() {
243
$( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
244
} );
245
246
- } )( jQuery );
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) {
20
+ var simplePlace = {name: place.name};
21
+ simplePlace.address = place.hasOwnProperty('formatted_address') ? place.formatted_address : '';
22
+ if (place.hasOwnProperty('geometry')) {
23
+ simplePlace.location = place.geometry.location.toString();
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 {
33
+ reject(status);
34
+ }
35
+ });
36
+ }
37
+ });
38
};
39
40
var onPlaceChanged = function () {
41
var place = autocomplete.getPlace();
42
43
getSimplePlace( place )
44
+ .then( function ( simplePlace ) {
45
+ valueField.value = JSON.stringify(simplePlace);
46
+ valueField.dispatchEvent(new Event('change', {bubbles: true, cancelable: true}));
47
} )
48
+ .catch( function ( status ) {
49
console.warn( 'SiteOrigin Google Maps Widget: Geocoding failed for "' + place.name + '" with status: ' + status );
50
} );
51
};
52
53
autocomplete.addListener( 'place_changed', onPlaceChanged );
54
55
+ inputField.addEventListener( 'change', function () {
56
+
57
+ valueField.value = JSON.stringify({name: inputField.value});
58
+ valueField.dispatchEvent(new Event('change', {bubbles: true, cancelable: true}));
59
} );
60
61
+ if ( valueField.value ) {
62
// Attempt automatic migration
63
var place = {};
64
try {
65
+ var parsed = JSON.parse( valueField.value );
66
if ( ! parsed.hasOwnProperty( 'location' ) ) {
67
if ( parsed.hasOwnProperty( 'address' ) ) {
68
place.name = parsed.address;
70
}
71
} catch ( error ) {
72
// Let's just try use the value directly.
73
+ place.name = valueField.value;
74
}
75
if ( place.hasOwnProperty( 'name' ) && place.name !== 'null') {
76
if ( ! sowbForms.mapsMigrationLogged ) {
80
var delay = 100;
81
function callGetSimplePlace( place, field ) {
82
getSimplePlace( place )
83
+ .then( function ( simplePlace ) {
84
+ field.value = JSON.stringify( simplePlace );
85
+ valueField.dispatchEvent(new Event('change', {bubbles: true, cancelable: true}));
86
sowbForms._geocodeQueue.shift();
87
if ( sowbForms._geocodeQueue.length > 0 ) {
88
var next = sowbForms._geocodeQueue[ 0 ];
93
console.info( 'SiteOrigin Google Maps Widget: Location fields updated. Please save the post to complete the migration.' );
94
}
95
} )
96
+ .catch( function ( status ) {
97
if ( status === google.maps.GeocoderStatus.OVER_QUERY_LIMIT ) {
98
if ( ! sowbForms.hasOwnProperty( 'overQueryLimitCount' ) ) {
99
sowbForms.overQueryLimitCount = 1;
117
}
118
} );
119
}
120
+ sowbForms._geocodeQueue.push( { place: place, field: valueField } );
121
if ( sowbForms._geocodeQueue.length === 1 ) {
122
setTimeout( function () {
123
+ callGetSimplePlace( place, valueField );
124
}, delay );
125
}
126
}
131
132
sowbForms.setupLocationFields = function () {
133
if ( google && google.maps && google.maps.places ) {
134
+ document.querySelectorAll( '.siteorigin-widget-field-type-location' ).forEach( function ( element ) {
135
+ if ( element.getAttribute( 'data-initialized' ) !== 'true' ) {
136
new sowbForms.LocationField().init( element );
137
+ element.setAttribute('data-initialized', 'true');
138
}
139
} );
140
}
147
sowbForms.setupLocationFields();
148
}
149
150
+ window.addEventListener('DOMContentLoaded', function () {
151
152
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-location', function () {
153
200
// This occurs when the API key has been restricted to prevent use of certain APIs.
201
matchError = error.match( /^This API project is not authorized to use this API/ );
202
}
203
+ if ( matchError ) {
204
+ if ( matchError.length === 3 ) {
205
+ matchError = matchError[ 2 ];
206
+ } else if ( matchError.length === 1 ) {
207
+ matchError = 'ApiNotActivatedMapError';
208
+ }
209
}
210
}
211
if ( matchError ) {
246
$( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
247
} );
248
249
+ });
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(o){if(void 0!==google.maps.places){var e=$(o).find(".siteorigin-widget-location-input"),i=$(o).find(".siteorigin-widget-input"),t=new google.maps.places.Autocomplete(e.get(0)),s=function(o){var i=new $.Deferred,t={name:o.name};if(t.address=o.hasOwnProperty("formatted_address")?o.formatted_address:"",o.hasOwnProperty("geometry"))t.location=o.geometry.location.toString(),i.resolve(t);else{var e={address:o.hasOwnProperty("formatted_address")?o.formatted_address:o.name};(new google.maps.Geocoder).geocode(e,function(o,e){e===google.maps.GeocoderStatus.OK?(t.location=o[0].geometry.location.toString(),i.resolve(t)):i.reject(e)})}return i};if(t.addListener("place_changed",function(){var e=t.getPlace();s(e).done(function(o){i.val(JSON.stringify(o)),i.trigger("change")}).fail(function(o){console.warn('SiteOrigin Google Maps Widget: Geocoding failed for "'+e.name+'" with status: '+o)})}),e.on("change",function(){i.val(JSON.stringify({name:e.val()})),i.trigger("change")}),i.val()){var a={};try{var n=JSON.parse(i.val());n.hasOwnProperty("location")||n.hasOwnProperty("address")&&(a.name=n.address)}catch(o){a.name=i.val()}if(a.hasOwnProperty("name")&&"null"!==a.name){sowbForms.mapsMigrationLogged||(console.info("SiteOrigin Google Maps Widget: Starting automatic migration of location. Please wait a moment..."),sowbForms.mapsMigrationLogged=!0);var r=100;sowbForms._geocodeQueue.push({place:a,field:i}),1===sowbForms._geocodeQueue.length&&setTimeout(function(){!function i(o,t){s(o).done(function(o){if(t.val(JSON.stringify(o)),t.trigger("change"),sowbForms._geocodeQueue.shift(),0<sowbForms._geocodeQueue.length){var e=sowbForms._geocodeQueue[0];setTimeout(function(){i(e.place,e.field)},r)}else console.info("SiteOrigin Google Maps Widget: Location fields updated. Please save the post to complete the migration.")}).fail(function(o){if(o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT)if(sowbForms.hasOwnProperty("overQueryLimitCount")?sowbForms.overQueryLimitCount++:sowbForms.overQueryLimitCount=1,sowbForms.overQueryLimitCount<3){var e=sowbForms._geocodeQueue[0];r*=10,setTimeout(function(){i(e.place,e.field)},r)}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.")})}(a,i)},r)}}}else console.error("SiteOrigin Google Maps Widget: Failed to load the places library.")}}},sowbForms.setupLocationFields=function(){google&&google.maps&&google.maps.places&&$(".siteorigin-widget-field-type-location").each(function(o,e){$(e).data("initialized")||((new sowbForms.LocationField).init(e),$(e).data("initialized",!0))})},function(s){s(document).on("sowsetupformfield",".siteorigin-widget-field-type-location",function(){sowbForms._geocodeQueue=sowbForms._geocodeQueue||[];var i=s(this);if(!i.is(":not(:visible)")&&!sowbForms.mapsInitializing)if(sowbForms.mapsInitialized)sowbForms.setupLocationFields();else{sowbForms.mapsInitializing=!0;var o=i.find(".location-field-data").data("apiKey");if(o||(sowbForms.displayNotice(s(this).closest(".siteorigin-widget-form"),soLocationField.missingApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],i),console.warn("SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required."),o=""),window.console&&window.console.error){var t=window.console.error;sowbForms.checkMapsApiInvalidKeyError=function(o){var e;if("string"==typeof o&&(null===(e=o.match(/^Google Maps.*API (error|warning): (.*)/))&&(e=o.match(/^This API project is not authorized to use this API/)),3===e.length?e=e[2]:1===e.length&&(e="ApiNotActivatedMapError")),e)switch(e){case"InvalidKeyMapError":sowbForms.displayNotice(s(this).closest(".siteorigin-widget-form"),soLocationField.invalidApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],i);break;case"ApiNotActivatedMapError":sowbForms.displayNotice(s(this).closest(".siteorigin-widget-form"),soLocationField.apiNotEnabled,"",[],i)}t.apply(window.console,arguments)}.bind(this),window.console.error=sowbForms.checkMapsApiInvalidKeyError}var e="https://maps.googleapis.com/maps/api/js?key="+o+"&libraries=places&callback=sowbAdminGoogleMapInit";s("body").append('<script async type="text/javascript" src="'+e+'">')}})}(jQuery);
1
+ function sowbAdminGoogleMapInit(){sowbForms.mapsInitializing=!1,sowbForms.mapsInitialized=!0,sowbForms.setupLocationFields()}window.sowbForms=window.sowbForms||{},sowbForms.LocationField=function(){return{init:function(o){if(void 0!==google.maps.places){var e=o.querySelector(".siteorigin-widget-location-input"),s=o.querySelector(".siteorigin-widget-input"),i=new google.maps.places.Autocomplete(e),n=function(e){return new Promise(function(i,t){var s={name:e.name};if(s.address=e.hasOwnProperty("formatted_address")?e.formatted_address:"",e.hasOwnProperty("geometry"))s.location=e.geometry.location.toString(),i(s);else{var o={address:e.hasOwnProperty("formatted_address")?e.formatted_address:e.name};(new google.maps.Geocoder).geocode(o,function(o,e){e===google.maps.GeocoderStatus.OK?(s.location=o[0].geometry.location.toString(),i(s)):t(e)})}})};if(i.addListener("place_changed",function(){var e=i.getPlace();n(e).then(function(o){s.value=JSON.stringify(o),s.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0}))}).catch(function(o){console.warn('SiteOrigin Google Maps Widget: Geocoding failed for "'+e.name+'" with status: '+o)})}),e.addEventListener("change",function(){s.value=JSON.stringify({name:e.value}),s.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0}))}),s.value){var t={};try{var a=JSON.parse(s.value);a.hasOwnProperty("location")||a.hasOwnProperty("address")&&(t.name=a.address)}catch(o){t.name=s.value}if(t.hasOwnProperty("name")&&"null"!==t.name){sowbForms.mapsMigrationLogged||(console.info("SiteOrigin Google Maps Widget: Starting automatic migration of location. Please wait a moment..."),sowbForms.mapsMigrationLogged=!0);var r=100;sowbForms._geocodeQueue.push({place:t,field:s}),1===sowbForms._geocodeQueue.length&&setTimeout(function(){!function i(o,t){n(o).then(function(o){if(t.value=JSON.stringify(o),s.dispatchEvent(new Event("change",{bubbles:!0,cancelable:!0})),sowbForms._geocodeQueue.shift(),0<sowbForms._geocodeQueue.length){var e=sowbForms._geocodeQueue[0];setTimeout(function(){i(e.place,e.field)},r)}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 e=sowbForms._geocodeQueue[0];r*=10,setTimeout(function(){i(e.place,e.field)},r)}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.")})}(t,s)},r)}}}else console.error("SiteOrigin Google Maps Widget: Failed to load the places library.")}}},sowbForms.setupLocationFields=function(){google&&google.maps&&google.maps.places&&document.querySelectorAll(".siteorigin-widget-field-type-location").forEach(function(o){"true"!==o.getAttribute("data-initialized")&&((new sowbForms.LocationField).init(o),o.setAttribute("data-initialized","true"))})},window.addEventListener("DOMContentLoaded",function(){$(document).on("sowsetupformfield",".siteorigin-widget-field-type-location",function(){sowbForms._geocodeQueue=sowbForms._geocodeQueue||[];var i=$(this);if(!i.is(":not(:visible)")&&!sowbForms.mapsInitializing)if(sowbForms.mapsInitialized)sowbForms.setupLocationFields();else{sowbForms.mapsInitializing=!0;var o=i.find(".location-field-data").data("apiKey");if(o||(sowbForms.displayNotice($(this).closest(".siteorigin-widget-form"),soLocationField.missingApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],i),console.warn("SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required."),o=""),window.console&&window.console.error){var t=window.console.error;sowbForms.checkMapsApiInvalidKeyError=function(o){var e;if("string"==typeof o&&(null===(e=o.match(/^Google Maps.*API (error|warning): (.*)/))&&(e=o.match(/^This API project is not authorized to use this API/)),e&&(3===e.length?e=e[2]:1===e.length&&(e="ApiNotActivatedMapError"))),e)switch(e){case"InvalidKeyMapError":sowbForms.displayNotice($(this).closest(".siteorigin-widget-form"),soLocationField.invalidApiKey,"",[{label:soLocationField.globalSettingsButtonLabel,url:soLocationField.globalSettingsButtonUrl}],i);break;case"ApiNotActivatedMapError":sowbForms.displayNotice($(this).closest(".siteorigin-widget-form"),soLocationField.apiNotEnabled,"",[],i)}t.apply(window.console,arguments)}.bind(this),window.console.error=sowbForms.checkMapsApiInvalidKeyError}var e="https://maps.googleapis.com/maps/api/js?key="+o+"&libraries=places&callback=sowbAdminGoogleMapInit";$("body").append('<script async type="text/javascript" src="'+e+'">')}})});
widgets/image/styles/default.less CHANGED
@@ -11,6 +11,7 @@
11
12
.sow-image-container {
13
display: flex;
14
& when( @image_alignment = left ) {
15
justify-content: flex-start;
16
}
@@ -21,6 +22,10 @@
21
justify-content: center;
22
}
23
24
.so-widget-image {
25
display: block;
26
max-width: @image_max_width;
11
12
.sow-image-container {
13
display: flex;
14
+ align-items: flex-start;
15
& when( @image_alignment = left ) {
16
justify-content: flex-start;
17
}
22
justify-content: center;
23
}
24
25
+ > a {
26
+ width: @image_width;
27
+ }
28
+
29
.so-widget-image {
30
display: block;
31
max-width: @image_max_width;