SiteOrigin Widgets Bundle - Version 1.15.1

Version Description

  • 15 February 2019 =
  • Google maps: Use correct locations for static maps.
Download this release

Release Info

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

Code changes from version 1.14.1 to 1.15.1

base/inc/fields/builder.class.php CHANGED
@@ -55,12 +55,18 @@ class SiteOrigin_Widget_Field_Builder extends SiteOrigin_Widget_Field_Base {
55
  * @return array|mixed|object
56
  */
57
  protected function sanitize_field_input( $value, $instance ){
58
- $panels_data = json_decode( $value, true );
59
- if( function_exists('siteorigin_panels_process_raw_widgets') && !empty( $panels_data['widgets'] ) && is_array( $panels_data['widgets'] ) ) {
60
- $panels_data['widgets'] = siteorigin_panels_process_raw_widgets( $panels_data['widgets'] );
 
 
 
 
 
 
61
  }
62
 
63
- return $panels_data;
64
  }
65
 
66
  }
55
  * @return array|mixed|object
56
  */
57
  protected function sanitize_field_input( $value, $instance ){
58
+ if ( empty( $value ) ) {
59
+ return array();
60
+ }
61
+ if ( is_string( $value ) ) {
62
+ $value = json_decode( $value, true );
63
+ }
64
+
65
+ if( function_exists('siteorigin_panels_process_raw_widgets') && !empty( $value['widgets'] ) && is_array( $value['widgets'] ) ) {
66
+ $value['widgets'] = siteorigin_panels_process_raw_widgets( $value['widgets'] );
67
  }
68
 
69
+ return $value;
70
  }
71
 
72
  }
base/inc/lib/Less/Exception/Chunk.php CHANGED
@@ -1,203 +1,198 @@
1
- <?php
2
-
3
- /**
4
- * Chunk Exception
5
- *
6
- * @package Less
7
- * @subpackage exception
8
- */
9
- class Less_Exception_Chunk extends Less_Exception_Parser{
10
-
11
-
12
- protected $parserCurrentIndex = 0;
13
-
14
- protected $emitFrom = 0;
15
-
16
- protected $input_len;
17
-
18
-
19
- /**
20
- * Constructor
21
- *
22
- * @param string $input
23
- * @param Exception $previous Previous exception
24
- * @param integer $index The current parser index
25
- * @param Less_FileInfo|string $currentFile The file
26
- * @param integer $code The exception code
27
- */
28
- public function __construct($input, Exception $previous = null, $index = null, $currentFile = null, $code = 0){
29
-
30
- $this->message = 'ParseError: Unexpected input'; //default message
31
-
32
- $this->index = $index;
33
-
34
- $this->currentFile = $currentFile;
35
-
36
- $this->input = $input;
37
- $this->input_len = strlen($input);
38
-
39
- $this->Chunks();
40
- $this->genMessage();
41
- }
42
-
43
-
44
- /**
45
- * See less.js chunks()
46
- * We don't actually need the chunks
47
- *
48
- */
49
- protected function Chunks(){
50
- $level = 0;
51
- $parenLevel = 0;
52
- $lastMultiCommentEndBrace = null;
53
- $lastOpening = null;
54
- $lastMultiComment = null;
55
- $lastParen = null;
56
-
57
- for( $this->parserCurrentIndex = 0; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++ ){
58
- $cc = $this->CharCode($this->parserCurrentIndex);
59
- if ((($cc >= 97) && ($cc <= 122)) || ($cc < 34)) {
60
- // a-z or whitespace
61
- continue;
62
- }
63
-
64
- switch ($cc) {
65
-
66
- // (
67
- case 40:
68
- $parenLevel++;
69
- $lastParen = $this->parserCurrentIndex;
70
- continue;
71
-
72
- // )
73
- case 41:
74
- $parenLevel--;
75
- if( $parenLevel < 0 ){
76
- return $this->fail("missing opening `(`");
77
- }
78
- continue;
79
-
80
- // ;
81
- case 59:
82
- //if (!$parenLevel) { $this->emitChunk(); }
83
- continue;
84
-
85
- // {
86
- case 123:
87
- $level++;
88
- $lastOpening = $this->parserCurrentIndex;
89
- continue;
90
-
91
- // }
92
- case 125:
93
- $level--;
94
- if( $level < 0 ){
95
- return $this->fail("missing opening `{`");
96
-
97
- }
98
- //if (!$level && !$parenLevel) { $this->emitChunk(); }
99
- continue;
100
- // \
101
- case 92:
102
- if ($this->parserCurrentIndex < $this->input_len - 1) { $this->parserCurrentIndex++; continue; }
103
- return $this->fail("unescaped `\\`");
104
-
105
- // ", ' and `
106
- case 34:
107
- case 39:
108
- case 96:
109
- $matched = 0;
110
- $currentChunkStartIndex = $this->parserCurrentIndex;
111
- for ($this->parserCurrentIndex = $this->parserCurrentIndex + 1; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++) {
112
- $cc2 = $this->CharCode($this->parserCurrentIndex);
113
- if ($cc2 > 96) { continue; }
114
- if ($cc2 == $cc) { $matched = 1; break; }
115
- if ($cc2 == 92) { // \
116
- if ($this->parserCurrentIndex == $this->input_len - 1) {
117
- return $this->fail("unescaped `\\`");
118
- }
119
- $this->parserCurrentIndex++;
120
- }
121
- }
122
- if ($matched) { continue; }
123
- return $this->fail("unmatched `" . chr($cc) . "`", $currentChunkStartIndex);
124
-
125
- // /, check for comment
126
- case 47:
127
- if ($parenLevel || ($this->parserCurrentIndex == $this->input_len - 1)) { continue; }
128
- $cc2 = $this->CharCode($this->parserCurrentIndex+1);
129
- if ($cc2 == 47) {
130
- // //, find lnfeed
131
- for ($this->parserCurrentIndex = $this->parserCurrentIndex + 2; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++) {
132
- $cc2 = $this->CharCode($this->parserCurrentIndex);
133
- if (($cc2 <= 13) && (($cc2 == 10) || ($cc2 == 13))) { break; }
134
- }
135
- } else if ($cc2 == 42) {
136
- // /*, find */
137
- $lastMultiComment = $currentChunkStartIndex = $this->parserCurrentIndex;
138
- for ($this->parserCurrentIndex = $this->parserCurrentIndex + 2; $this->parserCurrentIndex < $this->input_len - 1; $this->parserCurrentIndex++) {
139
- $cc2 = $this->CharCode($this->parserCurrentIndex);
140
- if ($cc2 == 125) { $lastMultiCommentEndBrace = $this->parserCurrentIndex; }
141
- if ($cc2 != 42) { continue; }
142
- if ($this->CharCode($this->parserCurrentIndex+1) == 47) { break; }
143
- }
144
- if ($this->parserCurrentIndex == $this->input_len - 1) {
145
- return $this->fail("missing closing `*/`", $currentChunkStartIndex);
146
- }
147
- }
148
- continue;
149
-
150
- // *, check for unmatched */
151
- case 42:
152
- if (($this->parserCurrentIndex < $this->input_len - 1) && ($this->CharCode($this->parserCurrentIndex+1) == 47)) {
153
- return $this->fail("unmatched `/*`");
154
- }
155
- continue;
156
- }
157
- }
158
-
159
- if( $level !== 0 ){
160
- if( ($lastMultiComment > $lastOpening) && ($lastMultiCommentEndBrace > $lastMultiComment) ){
161
- return $this->fail("missing closing `}` or `*/`", $lastOpening);
162
- } else {
163
- return $this->fail("missing closing `}`", $lastOpening);
164
- }
165
- } else if ( $parenLevel !== 0 ){
166
- return $this->fail("missing closing `)`", $lastParen);
167
- }
168
-
169
-
170
- //chunk didn't fail
171
-
172
-
173
- //$this->emitChunk(true);
174
- }
175
-
176
- public function CharCode($pos){
177
- return ord($this->input[$pos]);
178
- }
179
-
180
-
181
- public function fail( $msg, $index = null ){
182
-
183
- if( !$index ){
184
- $this->index = $this->parserCurrentIndex;
185
- }else{
186
- $this->index = $index;
187
- }
188
- $this->message = 'ParseError: '.$msg;
189
- }
190
-
191
-
192
- /*
193
- function emitChunk( $force = false ){
194
- $len = $this->parserCurrentIndex - $this->emitFrom;
195
- if ((($len < 512) && !$force) || !$len) {
196
- return;
197
- }
198
- $chunks[] = substr($this->input, $this->emitFrom, $this->parserCurrentIndex + 1 - $this->emitFrom );
199
- $this->emitFrom = $this->parserCurrentIndex + 1;
200
- }
201
- */
202
-
203
- }
1
+ <?php
2
+
3
+ /**
4
+ * Chunk Exception
5
+ *
6
+ * @package Less
7
+ * @subpackage exception
8
+ */
9
+ class Less_Exception_Chunk extends Less_Exception_Parser{
10
+
11
+
12
+ protected $parserCurrentIndex = 0;
13
+
14
+ protected $emitFrom = 0;
15
+
16
+ protected $input_len;
17
+
18
+
19
+ /**
20
+ * Constructor
21
+ *
22
+ * @param string $input
23
+ * @param Exception $previous Previous exception
24
+ * @param integer $index The current parser index
25
+ * @param Less_FileInfo|string $currentFile The file
26
+ * @param integer $code The exception code
27
+ */
28
+ public function __construct($input, Exception $previous = null, $index = null, $currentFile = null, $code = 0){
29
+
30
+ $this->message = 'ParseError: Unexpected input'; //default message
31
+
32
+ $this->index = $index;
33
+
34
+ $this->currentFile = $currentFile;
35
+
36
+ $this->input = $input;
37
+ $this->input_len = strlen($input);
38
+
39
+ $this->Chunks();
40
+ $this->genMessage();
41
+ }
42
+
43
+
44
+ /**
45
+ * See less.js chunks()
46
+ * We don't actually need the chunks
47
+ *
48
+ */
49
+ protected function Chunks(){
50
+ $level = 0;
51
+ $parenLevel = 0;
52
+ $lastMultiCommentEndBrace = null;
53
+ $lastOpening = null;
54
+ $lastMultiComment = null;
55
+ $lastParen = null;
56
+
57
+ for( $this->parserCurrentIndex = 0; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++ ){
58
+ $cc = $this->CharCode($this->parserCurrentIndex);
59
+ if ((($cc >= 97) && ($cc <= 122)) || ($cc < 34)) {
60
+ // a-z or whitespace
61
+ continue;
62
+ }
63
+
64
+ switch ($cc) {
65
+
66
+ // (
67
+ case 40:
68
+ $parenLevel++;
69
+ $lastParen = $this->parserCurrentIndex;
70
+ break;
71
+ // )
72
+ case 41:
73
+ $parenLevel--;
74
+ if( $parenLevel < 0 ){
75
+ return $this->fail("missing opening `(`");
76
+ }
77
+ break;
78
+ // ;
79
+ case 59:
80
+ //if (!$parenLevel) { $this->emitChunk(); }
81
+ break;
82
+ // {
83
+ case 123:
84
+ $level++;
85
+ $lastOpening = $this->parserCurrentIndex;
86
+ break;
87
+ // }
88
+ case 125:
89
+ $level--;
90
+ if( $level < 0 ){
91
+ return $this->fail("missing opening `{`");
92
+
93
+ }
94
+ //if (!$level && !$parenLevel) { $this->emitChunk(); }
95
+ break;
96
+ // \
97
+ case 92:
98
+ if ($this->parserCurrentIndex < $this->input_len - 1) { $this->parserCurrentIndex++; break; }
99
+ return $this->fail("unescaped `\\`");
100
+
101
+ // ", ' and `
102
+ case 34:
103
+ case 39:
104
+ case 96:
105
+ $matched = 0;
106
+ $currentChunkStartIndex = $this->parserCurrentIndex;
107
+ for ($this->parserCurrentIndex = $this->parserCurrentIndex + 1; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++) {
108
+ $cc2 = $this->CharCode($this->parserCurrentIndex);
109
+ if ($cc2 > 96) { continue; }
110
+ if ($cc2 == $cc) { $matched = 1; break; }
111
+ if ($cc2 == 92) { // \
112
+ if ($this->parserCurrentIndex == $this->input_len - 1) {
113
+ return $this->fail("unescaped `\\`");
114
+ }
115
+ $this->parserCurrentIndex++;
116
+ }
117
+ }
118
+ if ($matched) { break; }
119
+ return $this->fail("unmatched `" . chr($cc) . "`", $currentChunkStartIndex);
120
+
121
+ // /, check for comment
122
+ case 47:
123
+ if ($parenLevel || ($this->parserCurrentIndex == $this->input_len - 1)) { break; }
124
+ $cc2 = $this->CharCode($this->parserCurrentIndex+1);
125
+ if ($cc2 == 47) {
126
+ // //, find lnfeed
127
+ for ($this->parserCurrentIndex = $this->parserCurrentIndex + 2; $this->parserCurrentIndex < $this->input_len; $this->parserCurrentIndex++) {
128
+ $cc2 = $this->CharCode($this->parserCurrentIndex);
129
+ if (($cc2 <= 13) && (($cc2 == 10) || ($cc2 == 13))) { break; }
130
+ }
131
+ } else if ($cc2 == 42) {
132
+ // /*, find */
133
+ $lastMultiComment = $currentChunkStartIndex = $this->parserCurrentIndex;
134
+ for ($this->parserCurrentIndex = $this->parserCurrentIndex + 2; $this->parserCurrentIndex < $this->input_len - 1; $this->parserCurrentIndex++) {
135
+ $cc2 = $this->CharCode($this->parserCurrentIndex);
136
+ if ($cc2 == 125) { $lastMultiCommentEndBrace = $this->parserCurrentIndex; }
137
+ if ($cc2 != 42) { continue; }
138
+ if ($this->CharCode($this->parserCurrentIndex+1) == 47) { break; }
139
+ }
140
+ if ($this->parserCurrentIndex == $this->input_len - 1) {
141
+ return $this->fail("missing closing `*/`", $currentChunkStartIndex);
142
+ }
143
+ }
144
+ break;
145
+ // *, check for unmatched */
146
+ case 42:
147
+ if (($this->parserCurrentIndex < $this->input_len - 1) && ($this->CharCode($this->parserCurrentIndex+1) == 47)) {
148
+ return $this->fail("unmatched `/*`");
149
+ }
150
+ break;
151
+ }
152
+ }
153
+
154
+ if( $level !== 0 ){
155
+ if( ($lastMultiComment > $lastOpening) && ($lastMultiCommentEndBrace > $lastMultiComment) ){
156
+ return $this->fail("missing closing `}` or `*/`", $lastOpening);
157
+ } else {
158
+ return $this->fail("missing closing `}`", $lastOpening);
159
+ }
160
+ } else if ( $parenLevel !== 0 ){
161
+ return $this->fail("missing closing `)`", $lastParen);
162
+ }
163
+
164
+
165
+ //chunk didn't fail
166
+
167
+
168
+ //$this->emitChunk(true);
169
+ }
170
+
171
+ public function CharCode($pos){
172
+ return ord($this->input[$pos]);
173
+ }
174
+
175
+
176
+ public function fail( $msg, $index = null ){
177
+
178
+ if( !$index ){
179
+ $this->index = $this->parserCurrentIndex;
180
+ }else{
181
+ $this->index = $index;
182
+ }
183
+ $this->message = 'ParseError: '.$msg;
184
+ }
185
+
186
+
187
+ /*
188
+ function emitChunk( $force = false ){
189
+ $len = $this->parserCurrentIndex - $this->emitFrom;
190
+ if ((($len < 512) && !$force) || !$len) {
191
+ return;
192
+ }
193
+ $chunks[] = substr($this->input, $this->emitFrom, $this->parserCurrentIndex + 1 - $this->emitFrom );
194
+ $this->emitFrom = $this->parserCurrentIndex + 1;
195
+ }
196
+ */
197
+
198
+ }
 
 
 
 
 
base/js/admin.js CHANGED
@@ -960,6 +960,10 @@ var sowbForms = window.sowbForms || {};
960
  callback(window.sowVars[widget][key]);
961
  }
962
  };
 
 
 
 
963
 
964
  sowbForms.getWidgetFormValues = function ( formContainer ) {
965
 
960
  callback(window.sowVars[widget][key]);
961
  }
962
  };
963
+
964
+ sowbForms.getWidgetIdBase = function ( formContainer ) {
965
+ return formContainer.data( 'id-base' );
966
+ };
967
 
968
  sowbForms.getWidgetFormValues = function ( formContainer ) {
969
 
base/js/admin.min.js CHANGED
@@ -1 +1 @@
1
- var sowbForms=window.sowbForms||{};!function(C){C.fn.sowSetupForm=function(){return C(this).each(function(e,i){var o,t=C(i),y=!0,r=C("body"),n=t.find("input[name]");if(n.length&&-1!==n.attr("name").indexOf("__i__"))return this;if(t.is(".siteorigin-widget-form-main")){if(!0===t.data("sow-form-setup"))return!0;if(r.hasClass("widgets-php")&&!t.is(":visible")&&0===t.closest(".panel-dialog").length)return!0;t.on("sowstatechange",function(e,h,b){t.find("[data-state-handler]").each(function(){var e,i,t,r,n,a,s=C(this),o=C.extend({},s.data("state-handler"),y?s.data("state-handler-initial"):{});if(0===Object.keys(o).length)return!0;var d={},l=sowbForms.getContainerFieldId(s,"repeater",".siteorigin-widget-field-repeater-item");if(!1!==l){var g={};for(var f in o)g[f.replace("{$repeater}",l)]=o[f];o=g}var c=sowbForms.getContainerFieldId(s,"widget",".siteorigin-widget-widget");if(!1!==c){var p={};for(var u in o){var m=u.match(/_else\[(.*)\]|(.*)\[(.*)\]/);p[m&&m.length&&void 0===m[1]?m[2]+"_"+c+"["+m[3]+"]":"_else["+m[1]+"_"+c+"]"]=o[u]}o=p}for(var w in o)if(n=!1,null!==(e=w.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(i={group:"default",name:"",multi:!1},void 0!==e[2]?(i.group=e[1],i.name=e[3]):i.name=e[0],i.multi=void 0!==e[4],"_else"===i.group)i.group=i.name,i.name="",n=i.group===h&&void 0===d[i.group];else{a=i.name.split(",").map(function(e){return e.trim()});for(var v=0;v<a.length&&!(n=i.group===h&&a[v]===b);v++);}if(n){t=o[w],i.multi||(t=[t]);for(v=0;v<t.length;v++)(r=void 0!==t[v][1]&&Boolean(t[v][1])?s.find(t[v][1]):s)[t[v][0]].apply(r,void 0!==t[v][2]?t[v][2]:[]);d[i.group]=!0}}})}),t.sowSetupPreview();var a=(o=t).find(".siteorigin-widget-teaser");if(a.find(".dashicons-dismiss").click(function(){var e=C(this);C.get(e.data("dismiss-url")),a.slideUp("normal",function(){a.remove()})}),!t.data("backupDisabled")){var s=t.find("> .siteorigin-widgets-form-id").val(),d=t.find("> .siteorigin-widgets-form-timestamp"),l=parseInt(d.val()||0),g=JSON.parse(sessionStorage.getItem(s));if(g)if(g._sow_form_timestamp>l){var f=C('<div class="siteorigin-widget-form-notification"><span>'+soWidgets.backup.newerVersion+'</span><a class="button button-small so-backup-restore">'+soWidgets.backup.restore+'</a><a class="button button-small so-backup-dismiss">'+soWidgets.backup.dismiss+"</a><div><small>"+soWidgets.backup.replaceWarning+"</small></div></div>");t.prepend(f),f.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(o,g),f.slideUp("fast",function(){f.remove()})}),f.find(".so-backup-dismiss").click(function(){f.slideUp("fast",function(){sessionStorage.removeItem(s),f.remove()})})}else sessionStorage.removeItem(s);t.change(function(){d.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(t);sessionStorage.setItem(s,JSON.stringify(e))})}}else o=t.closest(".siteorigin-widget-form-main");o.find("> .siteorigin-widgets-form-id").val();var c=t.find("> .siteorigin-widget-field");c.find("> .siteorigin-widget-section").sowSetupForm();var p=c.find("> .siteorigin-widget-widget");p.find("> .siteorigin-widget-section").sowSetupForm(),p.filter(":not(:has(> .siteorigin-widget-section))").sowSetupForm(),c.find(".siteorigin-widget-input").each(function(e,i){null===C(i).data("original-name")&&C(i).data("original-name",C(i).attr("name"))}),c.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),t.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),c.find("> .siteorigin-widget-input-color").each(function(){var e=C(this),i={change:function(e,i){setTimeout(function(){C(e.target).trigger("change")},100)}};e.data("defaultColor")&&(i.defaultColor=e.data("defaultColor")),e.wpColorPicker(i)});var u=function(){C(this).toggleClass("siteorigin-widget-section-visible"),C(this).parent().find("> .siteorigin-widget-section, > .siteorigin-widget-widget > .siteorigin-widget-section").slideToggle("fast",function(){(C(window).resize(),C(this).find("> .siteorigin-widget-field-container-state").val(C(this).is(":visible")?"open":"closed"),C(this).is(":visible"))&&C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")})};c.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(u),c.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(u),c.filter(".siteorigin-widget-field-type-slider").each(function(){var t=C(this),r=t.find('input[type="number"]'),n=t.find(".siteorigin-widget-value-slider");n.slider({max:parseFloat(r.attr("max")),min:parseFloat(r.attr("min")),step:parseFloat(r.attr("step")),value:parseFloat(r.val()),slide:function(e,i){r.val(parseFloat(i.value)),r.trigger("change")},change:function(e,i){t.find(".siteorigin-widget-slider-value").html(i.value)}}),r.change(function(e,i){i&&i.silent||n.slider("value",parseFloat(r.val()))})}),c.filter(".siteorigin-widget-field-type-link").each(function(){var n=C(this),t=function(){var e=n.find(".content-text-search"),i=e.val(),t=e.data("postTypes"),r=n.find("ul.posts").empty().addClass("loading");C.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:i,postTypes:t},function(e){for(var i=0;i<e.length;i++)""===e[i].label&&(e[i].label="&nbsp;"),r.append(C("<li>").addClass("post").html(e[i].label+"<span>("+e[i].type+")</span>").data(e[i]));r.removeClass("loading")})};n.find(".select-content-button, .button-close").click(function(e){e.preventDefault(),C(this).blur();var i=n.find(".existing-content-selector");i.toggle(),i.is(":visible")&&0===i.find("ul.posts li").length&&t()}),n.on("click",".posts li",function(e){e.preventDefault();var i=C(this);n.find("input.siteorigin-widget-input").val("post: "+i.data("value")),n.change(),n.find(".existing-content-selector").toggle()});var e=null;n.find(".content-text-search").keyup(function(){null!==e&&clearTimeout(e),e=setTimeout(function(){t()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&c.filter(".siteorigin-widget-field-type-builder").each(function(){C(this).find("> .siteorigin-page-builder-field").each(function(){var e=C(this);e.soPanelsSetupBuilderWidget({builderType:e.data("type")})})});var m=function(){var a=C(this),e=a.closest("[data-state-emitter]").data("state-emitter");if(void 0!==e){var i=function(e,i){if(void 0===sowEmitters[e.callback]||"_"===e.callback.substr(0,1))return i;if(a.is('[type="radio"]')&&!a.is(":checked"))return i;var t=sowbForms.getContainerFieldId(a,"repeater",".siteorigin-widget-field-repeater-item");!1!==t&&(e.args=e.args.map(function(e){return e.replace("{$repeater}",t)}));var r=sowbForms.getContainerFieldId(a,"widget",".siteorigin-widget-widget");!1===r||e.hasOwnProperty("widgetFieldId")||(e.widgetFieldId=r,e.args=e.args.map(function(e){return e+"_"+r}));var n=a.is('[type="checkbox"]')?a.is(":checked"):a.val();return C.extend(i,sowEmitters[e.callback](n,e.args))},t={default:""};void 0===e.length&&(e=[e]);for(var r=0;r<e.length;r++)t=i(e[r],t);var n=o.data("states");for(var s in void 0===n&&(n={default:""}),t)void 0!==n[s]&&t[s]===n[s]||(n[s]=t[s],o.trigger("sowstatechange",[s,t[s]]));o.data("states",n)}};c.filter("[data-state-emitter]").each(function(){var e=C(this).find(".siteorigin-widget-input");e.on("keyup change",m),e.each(function(){var e=C(this);e.is(":radio")?e.is(":checked")&&m.call(e[0]):m.call(e[0])})}),t.trigger("sowsetupform",c).data("sow-form-setup",!0),c.trigger("sowsetupformfield"),t.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(r.hasClass("wp-customizer")||r.hasClass("widgets-php"))&&t.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),y=!1})},C.fn.sowSetupPreview=function(){var r=C(this);r.siblings(".siteorigin-widget-preview").find("> a").click(function(e){e.preventDefault();var i=sowbForms.getWidgetFormValues(r),t=C(C("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");t.find('input[name="data"]').val(JSON.stringify(i)),t.find('input[name="class"]').val(r.data("class")),t.find("iframe").on("load",function(){C(this).css("visibility","visible")}),t.find("form").submit(),t.find(".close").click(function(){t.remove()})})},C.fn.sowSetupRepeater=function(){return C(this).each(function(e,i){var n=C(i),t=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");t.bind("updateFieldPositions",function(){var e=C(this),i=e.find("> .siteorigin-widget-field-repeater-item");i.each(function(r,e){C(e).find(".siteorigin-widget-input").each(function(e,i){var t=C(i).data("repeater-positions");void 0===t&&(t={}),t[a]=r,C(i).data("repeater-positions",t)})}),e.find(".siteorigin-widget-input").each(function(e,i){var t=C(i),r=t.data("repeater-positions");if(void 0!==r){var n=t.attr("data-original-name");if(n||(t.attr("data-original-name",t.attr("name")),n=t.attr("name")),!n)return;if(r)for(var a in r)n=n.replace("#"+a+"#",r[a]);t.attr("name",n)}}),e.data("initialSetup")||(e.find(".siteorigin-widget-input").each(function(e,i){var t=C(i);t.prop("checked",t.prop("defaultChecked"))}),e.data("initialSetup",!0));var t=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(0<t&&i.length>t){var r=i.first().outerHeight();e.css("max-height",r*t).css("overflow","auto")}else e.css("max-height","").css("overflow","")}),t.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){t.find('input[type="radio"].siteorigin-widget-input').attr("name",""),t.trigger("updateFieldPositions"),n.trigger("change")},sortstop:function(e,i){i.item.is(".siteorigin-widget-field-repeater-item")?i.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}):i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield");n.trigger("change")}}),t.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(e){e.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){C(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(e){e.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){C(window).resize()})})})},C.fn.sowAddRepeaterItem=function(){return C(this).each(function(e,i){var t=C(i),r=t.find("> .siteorigin-widget-field-repeater-items").children().length+1,n=C("<div>"+t.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");n.find(".siteorigin-widget-input[data-name]").each(function(){var e=C(this);0===e.closest(".siteorigin-widget-field-repeater-item-html").length&&e.attr("name",C(this).data("name"))});var a="";n.find("> .siteorigin-widget-field").each(function(e,i){var t=i.outerHTML;C(i).is(".siteorigin-widget-field-type-repeater")||(t=t.replace(/_id_/g,r)),a+=t});var s=void 0!==t.attr("readonly"),o=C('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(C('<div class="siteorigin-widget-field-repeater-item-top" />').append(C('<div class="siteorigin-widget-field-expand" />')).append(s?"":C('<div class="siteorigin-widget-field-copy" />')).append(s?"":C('<div class="siteorigin-widget-field-remove" />')).append(C("<h4 />").html(t.data("item-name")))).append(C('<div class="siteorigin-widget-field-repeater-item-form" />').html(a));t.find("> .siteorigin-widget-field-repeater-items").append(o).sortable("refresh").trigger("updateFieldPositions"),o.sowSetupRepeaterItems(),o.hide().slideDown("fast",function(){C(window).resize()}),t.trigger("change")})},C.fn.sowRemoveRepeaterItem=function(){return C(this).each(function(e,i){var t=C(this).closest(".siteorigin-widget-field-repeater-items");C(this).remove(),t.sortable("refresh").trigger("updateFieldPositions"),C(i).trigger("change")})},C.fn.sowSetupRepeaterItems=function(){return C(this).each(function(e,i){var _=C(i);if(void 0===_.data("sowrepeater-actions-setup")){var t=_.closest(".siteorigin-widget-field-repeater"),r=_.find("> .siteorigin-widget-field-repeater-item-top"),n=t.data("item-label");if(n&&n.selector){var a=function(){var e=n.hasOwnProperty("valueMethod")&&n.valueMethod?n.valueMethod:"val",i=_.find(n.selector)[e]();i&&(80<i.length&&(i=i.substr(0,79)+"..."),r.find("h4").text(i))};a();var s=n.hasOwnProperty("updateEvent")&&n.updateEvent?n.updateEvent:"change";_.bind(s,a)}r.click(function(e){"siteorigin-widget-field-remove"!==e.target.className&&"siteorigin-widget-field-copy"!==e.target.className&&(e.preventDefault(),C(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){(C(window).resize(),C(this).is(":visible"))?(C(this).trigger("slideToggleOpenComplete"),C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")):C(this).trigger("slideToggleCloseComplete")}))}),r.find(".siteorigin-widget-field-remove").click(function(e,i){e.preventDefault();var t=C(this).closest(".siteorigin-widget-field-repeater-items"),r=C(this).closest(".siteorigin-widget-field-repeater-item"),n=function(){r.remove(),t.sortable("refresh").trigger("updateFieldPositions"),C(window).resize()};i&&i.silent?n():confirm(soWidgets.sure)&&r.slideUp("fast",n),_.trigger("change")}),r.find(".siteorigin-widget-field-copy").click(function(e){e.preventDefault();var h=C(this).closest(".siteorigin-widget-form-main"),b=C(this).closest(".siteorigin-widget-field-repeater-item"),y=b.clone(),i=b.closest(".siteorigin-widget-field-repeater-items"),F=i.children().length,k={};y.find("*[name]").each(function(){var e=C(this),i=e.attr("id"),t=e.attr("name");if(e.is("textarea")&&e.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){e.parent().empty().append(e),e.css("display","");var r=tinymce.get(i);r&&e.val(r.getContent())}else if(e.is(".wp-color-picker")){var n=e.closest(".wp-picker-container"),a=e.closest(".siteorigin-widget-field");n.remove(),a.append(e.remove())}else{var s=i?b.find("#"+i):b.find('[name="'+t+'"]');s.length&&null!=s.val()&&e.val(s.val())}if(i){var o,d;if(e.is('[type="radio"]')){o=i.replace(/-\d+-\d+$/,"");var l=i.replace(/-\d+$/,"");if(!k[o]){var g={};k[o]=h.find(".siteorigin-widget-input[id^="+o+"]").not("[id*=_id_]").filter(function(e,i){var t=C(i).attr("name");return!g[t]&&(g[t]=!0)}).length+1}var f=o+"-"+k[o];d=f+i.match(/-\d+$/)[0],y.find("label[for="+l+"]").attr("for",f)}else u=new RegExp("-\\d+$"),o=i.replace(u,""),k[o]||(k[o]=h.find(".siteorigin-widget-input[id^="+o+"]").not("[id*=_id_]").length+1),d=o+"-"+k[o]++;if(e.attr("id",d),e.is(".wp-editor-area")){var c=e.closest(".siteorigin-widget-tinymce-container"),p=c.data("media-buttons");if(p&&p.html){var u=new RegExp(i,"g");p.html=p.html.replace(u,d),c.data("media-buttons",p)}}y.find("label[for="+i+"]").attr("for",d),y.find("[id*="+i+"]").each(function(){var e=C(this).attr("id").replace(i,d);C(this).attr("id",e)}),"undefined"!=typeof tinymce&&tinymce.get(d)&&tinymce.get(d).remove()}var m=b.parents(".siteorigin-widget-field-repeater").length,w=C("body");(w.hasClass("wp-customizer")||w.hasClass("widgets-php"))&&0===_.closest(".panel-dialog").length&&(m+=1);var v=t.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(m-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+F.toString()+"$3");e.attr("name",v),e.data("original-name",v)}),i.append(y).sortable("refresh").trigger("updateFieldPositions"),y.sowSetupRepeaterItems(),y.hide().slideDown("fast",function(){C(window).resize()}),_.trigger("change")}),_.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),_.data("sowrepeater-actions-setup",!0)}})},sowbForms.getContainerFieldId=function(e,i,t){var r=i+"FieldId";this.hasOwnProperty(r)||(this[r]=1);var n=e.closest(t);if(n.length){var a=n.data("field-id");return void 0===a&&(a=this[r]++),n.data("field-id",a),a}return!1},sowbForms.getWidgetFieldVariable=function(e,i,t){var r=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var n=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1].split("]["),a=n.length?r:null;n.length;)a=a[n.shift()];return a[t]},sowbForms.fetchWidgetVariable=function(i,t,r){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?C.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,r(window.sowVars[t][i])}):r(window.sowVars[t][i])},sowbForms.getWidgetFormValues=function(e){if(_.isUndefined(e))return null;var l={};return e.find("*[name]").each(function(){var i=C(this);try{var e=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(e))return!0;var t=(e=e[1]).split("][");t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var r=l,n=null,a=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===a)n=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===a){if(!i.is(":checked"))return;n=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var s=null;"undefined"!=typeof tinyMCE&&(s=tinyMCE.get(i.attr("id"))),n=null===s||"function"!=typeof s.getContent||s.isHidden()?i.val():s.getContent()}else if("SELECT"===i.prop("tagName")){var o=i.find("option:selected");1===o.length?n=i.find("option:selected").val():1<o.length&&(n=_.map(i.find("option:selected"),function(e,i){return C(e).val()}))}else n=i.val();for(var d=0;d<t.length;d++)d===t.length-1?""===t[d]?r.push(n):r[t[d]]=n:(_.isUndefined(r[t[d]])&&(_.isNumber(t[d+1])||""===t[d+1]?r[t[d]]=[]:r[t[d]]={}),r=r[t[d]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),l},sowbForms.setWidgetFormValues=function(e,d,v,l){v=v||!1,l=void 0!==l&&l||void 0===l;var i=0,h=function(e,w){10!=++i&&e.find("> .siteorigin-widget-field-type-repeater,> .siteorigin-widget-field-type-section > .siteorigin-widget-section > .siteorigin-widget-field-type-repeater").each(function(e,i){var t=C(this),r=t.find("> .siteorigin-widget-field-repeater"),n=r.data("repeaterName"),a=w.hasOwnProperty(n)?w[n]:null;if(t.parent().is(".siteorigin-widget-section")){var s=r.data("element-name");s=s.replace(/\[#.*?#\]/g,"");for(var o=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(s)[1].split("]["),d=o.length?w:null;o.length;){var l=o.shift();d=d.hasOwnProperty(l)?d[l]:d}a=d}if(a&&Array.isArray(a)){var g=r.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),f=a.length,c=g.length;if(c<f)for(var p=0;p<f-c;p++)r.find("> .siteorigin-widget-field-repeater-add").click();else if(!v&&f<c)for(var u=f;u<c;u++){C(g.eq(u)).find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}g=r.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var m=0;m<g.length;m++)g.eq(m).find("> .siteorigin-widget-field-repeater-item-form"),h(g.eq(m).find("> .siteorigin-widget-field-repeater-item-form"),a[m])}}),--i};h(e,d),e.find("*[name]").each(function(){var e=C(this),i=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(e.attr("name"));if(null==i)return!0;var t=(i=i[1]).split("][");t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var r,n=d,a=0;a<t.length;a++){if(!n.hasOwnProperty(t[a])){if(v)return!0;break}a===t.length-1?r=n[t[a]]:n=n[t[a]]}if("checkbox"===e.attr("type"))e.prop("checked",r);else if("radio"===e.attr("type"))e.prop("checked",r===e.val());else if("TEXTAREA"===e.prop("tagName")&&e.hasClass("wp-editor-area")){var s=null;"undefined"!=typeof tinyMCE&&(s=tinyMCE.get(e.attr("id"))),null!==s&&"function"==typeof s.setContent&&!s.isHidden()&&e.parent().is(":visible")?s.initialized?s.setContent(r):s.on("init",function(){s.setContent(r)}):e.val(r)}else if(e.is(".panels-data")){e.val(r);var o=e.data("builder");o&&o.setDataField(e)}else e.val(r);l&&e.trigger("change")})},C(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var e=C(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){e.sowSetupForm()},200)});var e=C("body");e.hasClass("wp-customizer")&&C(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e.hasClass("block-editor-page")&&C(document).on("panels_setup_preview",function(){C(sowb).trigger("setup_widgets",{preview:!0})}),C(document).on("open_dialog",function(e,i){i.$el.find(".so-panels-dialog").is(".so-panels-dialog-edit-widget")&&i.$el.find(".siteorigin-widget-form-main").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),C(function(){C(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){void 0===i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$").exec(e);if(null===t)return!1;var r="",n="default";return r=void 0!==t[3]?(n=t[1],t[3]):t[1],{match:t[4].trim(),group:n,state:r}},_checker:function(e,i,t,r){var n,a={};void 0===i.length&&(i=[i]);for(var s=0;s<i.length;s++)!1!==(n=sowEmitters._match(i[s],t))&&("_true"===n.match||r(e,i,n.match))&&(a[n.group]=n.state);return a},select:function(e,i){void 0===i.length&&(i=[i]);for(var t={},r=0;r<i.length;r++)""===i[r]&&(i[r]="default"),t[i[r]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},in:function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return-1!==t.split(",").map(function(e){return e.trim()}).indexOf(e)})}};window.sowbForms=sowbForms;
1
+ var sowbForms=window.sowbForms||{};!function(C){C.fn.sowSetupForm=function(){return C(this).each(function(e,i){var o,t=C(i),y=!0,r=C("body"),n=t.find("input[name]");if(n.length&&-1!==n.attr("name").indexOf("__i__"))return this;if(t.is(".siteorigin-widget-form-main")){if(!0===t.data("sow-form-setup"))return!0;if(r.hasClass("widgets-php")&&!t.is(":visible")&&0===t.closest(".panel-dialog").length)return!0;t.on("sowstatechange",function(e,h,b){t.find("[data-state-handler]").each(function(){var e,i,t,r,n,a,s=C(this),o=C.extend({},s.data("state-handler"),y?s.data("state-handler-initial"):{});if(0===Object.keys(o).length)return!0;var d={},l=sowbForms.getContainerFieldId(s,"repeater",".siteorigin-widget-field-repeater-item");if(!1!==l){var g={};for(var f in o)g[f.replace("{$repeater}",l)]=o[f];o=g}var c=sowbForms.getContainerFieldId(s,"widget",".siteorigin-widget-widget");if(!1!==c){var p={};for(var u in o){var m=u.match(/_else\[(.*)\]|(.*)\[(.*)\]/);p[m&&m.length&&void 0===m[1]?m[2]+"_"+c+"["+m[3]+"]":"_else["+m[1]+"_"+c+"]"]=o[u]}o=p}for(var w in o)if(n=!1,null!==(e=w.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(i={group:"default",name:"",multi:!1},void 0!==e[2]?(i.group=e[1],i.name=e[3]):i.name=e[0],i.multi=void 0!==e[4],"_else"===i.group)i.group=i.name,i.name="",n=i.group===h&&void 0===d[i.group];else{a=i.name.split(",").map(function(e){return e.trim()});for(var v=0;v<a.length&&!(n=i.group===h&&a[v]===b);v++);}if(n){t=o[w],i.multi||(t=[t]);for(v=0;v<t.length;v++)(r=void 0!==t[v][1]&&Boolean(t[v][1])?s.find(t[v][1]):s)[t[v][0]].apply(r,void 0!==t[v][2]?t[v][2]:[]);d[i.group]=!0}}})}),t.sowSetupPreview();var a=(o=t).find(".siteorigin-widget-teaser");if(a.find(".dashicons-dismiss").click(function(){var e=C(this);C.get(e.data("dismiss-url")),a.slideUp("normal",function(){a.remove()})}),!t.data("backupDisabled")){var s=t.find("> .siteorigin-widgets-form-id").val(),d=t.find("> .siteorigin-widgets-form-timestamp"),l=parseInt(d.val()||0),g=JSON.parse(sessionStorage.getItem(s));if(g)if(g._sow_form_timestamp>l){var f=C('<div class="siteorigin-widget-form-notification"><span>'+soWidgets.backup.newerVersion+'</span><a class="button button-small so-backup-restore">'+soWidgets.backup.restore+'</a><a class="button button-small so-backup-dismiss">'+soWidgets.backup.dismiss+"</a><div><small>"+soWidgets.backup.replaceWarning+"</small></div></div>");t.prepend(f),f.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(o,g),f.slideUp("fast",function(){f.remove()})}),f.find(".so-backup-dismiss").click(function(){f.slideUp("fast",function(){sessionStorage.removeItem(s),f.remove()})})}else sessionStorage.removeItem(s);t.change(function(){d.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(t);sessionStorage.setItem(s,JSON.stringify(e))})}}else o=t.closest(".siteorigin-widget-form-main");o.find("> .siteorigin-widgets-form-id").val();var c=t.find("> .siteorigin-widget-field");c.find("> .siteorigin-widget-section").sowSetupForm();var p=c.find("> .siteorigin-widget-widget");p.find("> .siteorigin-widget-section").sowSetupForm(),p.filter(":not(:has(> .siteorigin-widget-section))").sowSetupForm(),c.find(".siteorigin-widget-input").each(function(e,i){null===C(i).data("original-name")&&C(i).data("original-name",C(i).attr("name"))}),c.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),t.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),c.find("> .siteorigin-widget-input-color").each(function(){var e=C(this),i={change:function(e,i){setTimeout(function(){C(e.target).trigger("change")},100)}};e.data("defaultColor")&&(i.defaultColor=e.data("defaultColor")),e.wpColorPicker(i)});var u=function(){C(this).toggleClass("siteorigin-widget-section-visible"),C(this).parent().find("> .siteorigin-widget-section, > .siteorigin-widget-widget > .siteorigin-widget-section").slideToggle("fast",function(){(C(window).resize(),C(this).find("> .siteorigin-widget-field-container-state").val(C(this).is(":visible")?"open":"closed"),C(this).is(":visible"))&&C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")})};c.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(u),c.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(u),c.filter(".siteorigin-widget-field-type-slider").each(function(){var t=C(this),r=t.find('input[type="number"]'),n=t.find(".siteorigin-widget-value-slider");n.slider({max:parseFloat(r.attr("max")),min:parseFloat(r.attr("min")),step:parseFloat(r.attr("step")),value:parseFloat(r.val()),slide:function(e,i){r.val(parseFloat(i.value)),r.trigger("change")},change:function(e,i){t.find(".siteorigin-widget-slider-value").html(i.value)}}),r.change(function(e,i){i&&i.silent||n.slider("value",parseFloat(r.val()))})}),c.filter(".siteorigin-widget-field-type-link").each(function(){var n=C(this),t=function(){var e=n.find(".content-text-search"),i=e.val(),t=e.data("postTypes"),r=n.find("ul.posts").empty().addClass("loading");C.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:i,postTypes:t},function(e){for(var i=0;i<e.length;i++)""===e[i].label&&(e[i].label="&nbsp;"),r.append(C("<li>").addClass("post").html(e[i].label+"<span>("+e[i].type+")</span>").data(e[i]));r.removeClass("loading")})};n.find(".select-content-button, .button-close").click(function(e){e.preventDefault(),C(this).blur();var i=n.find(".existing-content-selector");i.toggle(),i.is(":visible")&&0===i.find("ul.posts li").length&&t()}),n.on("click",".posts li",function(e){e.preventDefault();var i=C(this);n.find("input.siteorigin-widget-input").val("post: "+i.data("value")),n.change(),n.find(".existing-content-selector").toggle()});var e=null;n.find(".content-text-search").keyup(function(){null!==e&&clearTimeout(e),e=setTimeout(function(){t()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&c.filter(".siteorigin-widget-field-type-builder").each(function(){C(this).find("> .siteorigin-page-builder-field").each(function(){var e=C(this);e.soPanelsSetupBuilderWidget({builderType:e.data("type")})})});var m=function(){var a=C(this),e=a.closest("[data-state-emitter]").data("state-emitter");if(void 0!==e){var i=function(e,i){if(void 0===sowEmitters[e.callback]||"_"===e.callback.substr(0,1))return i;if(a.is('[type="radio"]')&&!a.is(":checked"))return i;var t=sowbForms.getContainerFieldId(a,"repeater",".siteorigin-widget-field-repeater-item");!1!==t&&(e.args=e.args.map(function(e){return e.replace("{$repeater}",t)}));var r=sowbForms.getContainerFieldId(a,"widget",".siteorigin-widget-widget");!1===r||e.hasOwnProperty("widgetFieldId")||(e.widgetFieldId=r,e.args=e.args.map(function(e){return e+"_"+r}));var n=a.is('[type="checkbox"]')?a.is(":checked"):a.val();return C.extend(i,sowEmitters[e.callback](n,e.args))},t={default:""};void 0===e.length&&(e=[e]);for(var r=0;r<e.length;r++)t=i(e[r],t);var n=o.data("states");for(var s in void 0===n&&(n={default:""}),t)void 0!==n[s]&&t[s]===n[s]||(n[s]=t[s],o.trigger("sowstatechange",[s,t[s]]));o.data("states",n)}};c.filter("[data-state-emitter]").each(function(){var e=C(this).find(".siteorigin-widget-input");e.on("keyup change",m),e.each(function(){var e=C(this);e.is(":radio")?e.is(":checked")&&m.call(e[0]):m.call(e[0])})}),t.trigger("sowsetupform",c).data("sow-form-setup",!0),c.trigger("sowsetupformfield"),t.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(r.hasClass("wp-customizer")||r.hasClass("widgets-php"))&&t.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),y=!1})},C.fn.sowSetupPreview=function(){var r=C(this);r.siblings(".siteorigin-widget-preview").find("> a").click(function(e){e.preventDefault();var i=sowbForms.getWidgetFormValues(r),t=C(C("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");t.find('input[name="data"]').val(JSON.stringify(i)),t.find('input[name="class"]').val(r.data("class")),t.find("iframe").on("load",function(){C(this).css("visibility","visible")}),t.find("form").submit(),t.find(".close").click(function(){t.remove()})})},C.fn.sowSetupRepeater=function(){return C(this).each(function(e,i){var n=C(i),t=n.find(".siteorigin-widget-field-repeater-items"),a=n.data("repeater-name");t.bind("updateFieldPositions",function(){var e=C(this),i=e.find("> .siteorigin-widget-field-repeater-item");i.each(function(r,e){C(e).find(".siteorigin-widget-input").each(function(e,i){var t=C(i).data("repeater-positions");void 0===t&&(t={}),t[a]=r,C(i).data("repeater-positions",t)})}),e.find(".siteorigin-widget-input").each(function(e,i){var t=C(i),r=t.data("repeater-positions");if(void 0!==r){var n=t.attr("data-original-name");if(n||(t.attr("data-original-name",t.attr("name")),n=t.attr("name")),!n)return;if(r)for(var a in r)n=n.replace("#"+a+"#",r[a]);t.attr("name",n)}}),e.data("initialSetup")||(e.find(".siteorigin-widget-input").each(function(e,i){var t=C(i);t.prop("checked",t.prop("defaultChecked"))}),e.data("initialSetup",!0));var t=n.data("scroll-count")?parseInt(n.data("scroll-count")):0;if(0<t&&i.length>t){var r=i.first().outerHeight();e.css("max-height",r*t).css("overflow","auto")}else e.css("max-height","").css("overflow","")}),t.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){t.find('input[type="radio"].siteorigin-widget-input').attr("name",""),t.trigger("updateFieldPositions"),n.trigger("change")},sortstop:function(e,i){i.item.is(".siteorigin-widget-field-repeater-item")?i.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}):i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield");n.trigger("change")}}),t.trigger("updateFieldPositions"),n.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(e){e.preventDefault(),n.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){C(window).resize()})}),n.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(e){e.preventDefault(),n.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){C(window).resize()})})})},C.fn.sowAddRepeaterItem=function(){return C(this).each(function(e,i){var t=C(i),r=t.find("> .siteorigin-widget-field-repeater-items").children().length+1,n=C("<div>"+t.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");n.find(".siteorigin-widget-input[data-name]").each(function(){var e=C(this);0===e.closest(".siteorigin-widget-field-repeater-item-html").length&&e.attr("name",C(this).data("name"))});var a="";n.find("> .siteorigin-widget-field").each(function(e,i){var t=i.outerHTML;C(i).is(".siteorigin-widget-field-type-repeater")||(t=t.replace(/_id_/g,r)),a+=t});var s=void 0!==t.attr("readonly"),o=C('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(C('<div class="siteorigin-widget-field-repeater-item-top" />').append(C('<div class="siteorigin-widget-field-expand" />')).append(s?"":C('<div class="siteorigin-widget-field-copy" />')).append(s?"":C('<div class="siteorigin-widget-field-remove" />')).append(C("<h4 />").html(t.data("item-name")))).append(C('<div class="siteorigin-widget-field-repeater-item-form" />').html(a));t.find("> .siteorigin-widget-field-repeater-items").append(o).sortable("refresh").trigger("updateFieldPositions"),o.sowSetupRepeaterItems(),o.hide().slideDown("fast",function(){C(window).resize()}),t.trigger("change")})},C.fn.sowRemoveRepeaterItem=function(){return C(this).each(function(e,i){var t=C(this).closest(".siteorigin-widget-field-repeater-items");C(this).remove(),t.sortable("refresh").trigger("updateFieldPositions"),C(i).trigger("change")})},C.fn.sowSetupRepeaterItems=function(){return C(this).each(function(e,i){var _=C(i);if(void 0===_.data("sowrepeater-actions-setup")){var t=_.closest(".siteorigin-widget-field-repeater"),r=_.find("> .siteorigin-widget-field-repeater-item-top"),n=t.data("item-label");if(n&&n.selector){var a=function(){var e=n.hasOwnProperty("valueMethod")&&n.valueMethod?n.valueMethod:"val",i=_.find(n.selector)[e]();i&&(80<i.length&&(i=i.substr(0,79)+"..."),r.find("h4").text(i))};a();var s=n.hasOwnProperty("updateEvent")&&n.updateEvent?n.updateEvent:"change";_.bind(s,a)}r.click(function(e){"siteorigin-widget-field-remove"!==e.target.className&&"siteorigin-widget-field-copy"!==e.target.className&&(e.preventDefault(),C(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){(C(window).resize(),C(this).is(":visible"))?(C(this).trigger("slideToggleOpenComplete"),C(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")):C(this).trigger("slideToggleCloseComplete")}))}),r.find(".siteorigin-widget-field-remove").click(function(e,i){e.preventDefault();var t=C(this).closest(".siteorigin-widget-field-repeater-items"),r=C(this).closest(".siteorigin-widget-field-repeater-item"),n=function(){r.remove(),t.sortable("refresh").trigger("updateFieldPositions"),C(window).resize()};i&&i.silent?n():confirm(soWidgets.sure)&&r.slideUp("fast",n),_.trigger("change")}),r.find(".siteorigin-widget-field-copy").click(function(e){e.preventDefault();var h=C(this).closest(".siteorigin-widget-form-main"),b=C(this).closest(".siteorigin-widget-field-repeater-item"),y=b.clone(),i=b.closest(".siteorigin-widget-field-repeater-items"),F=i.children().length,k={};y.find("*[name]").each(function(){var e=C(this),i=e.attr("id"),t=e.attr("name");if(e.is("textarea")&&e.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){e.parent().empty().append(e),e.css("display","");var r=tinymce.get(i);r&&e.val(r.getContent())}else if(e.is(".wp-color-picker")){var n=e.closest(".wp-picker-container"),a=e.closest(".siteorigin-widget-field");n.remove(),a.append(e.remove())}else{var s=i?b.find("#"+i):b.find('[name="'+t+'"]');s.length&&null!=s.val()&&e.val(s.val())}if(i){var o,d;if(e.is('[type="radio"]')){o=i.replace(/-\d+-\d+$/,"");var l=i.replace(/-\d+$/,"");if(!k[o]){var g={};k[o]=h.find(".siteorigin-widget-input[id^="+o+"]").not("[id*=_id_]").filter(function(e,i){var t=C(i).attr("name");return!g[t]&&(g[t]=!0)}).length+1}var f=o+"-"+k[o];d=f+i.match(/-\d+$/)[0],y.find("label[for="+l+"]").attr("for",f)}else u=new RegExp("-\\d+$"),o=i.replace(u,""),k[o]||(k[o]=h.find(".siteorigin-widget-input[id^="+o+"]").not("[id*=_id_]").length+1),d=o+"-"+k[o]++;if(e.attr("id",d),e.is(".wp-editor-area")){var c=e.closest(".siteorigin-widget-tinymce-container"),p=c.data("media-buttons");if(p&&p.html){var u=new RegExp(i,"g");p.html=p.html.replace(u,d),c.data("media-buttons",p)}}y.find("label[for="+i+"]").attr("for",d),y.find("[id*="+i+"]").each(function(){var e=C(this).attr("id").replace(i,d);C(this).attr("id",e)}),"undefined"!=typeof tinymce&&tinymce.get(d)&&tinymce.get(d).remove()}var m=b.parents(".siteorigin-widget-field-repeater").length,w=C("body");(w.hasClass("wp-customizer")||w.hasClass("widgets-php"))&&0===_.closest(".panel-dialog").length&&(m+=1);var v=t.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(m-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+F.toString()+"$3");e.attr("name",v),e.data("original-name",v)}),i.append(y).sortable("refresh").trigger("updateFieldPositions"),y.sowSetupRepeaterItems(),y.hide().slideDown("fast",function(){C(window).resize()}),_.trigger("change")}),_.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),_.data("sowrepeater-actions-setup",!0)}})},sowbForms.getContainerFieldId=function(e,i,t){var r=i+"FieldId";this.hasOwnProperty(r)||(this[r]=1);var n=e.closest(t);if(n.length){var a=n.data("field-id");return void 0===a&&(a=this[r]++),n.data("field-id",a),a}return!1},sowbForms.getWidgetFieldVariable=function(e,i,t){var r=window.sow_field_javascript_variables[e];i=i.replace(/\[#.*?#\]/g,"");for(var n=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(i)[1].split("]["),a=n.length?r:null;n.length;)a=a[n.shift()];return a[t]},sowbForms.fetchWidgetVariable=function(i,t,r){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?C.post(soWidgets.ajaxurl,{action:"sow_get_javascript_variables",widget:t,key:i},function(e){window.sowVars[t]=e,r(window.sowVars[t][i])}):r(window.sowVars[t][i])},sowbForms.getWidgetIdBase=function(e){return e.data("id-base")},sowbForms.getWidgetFormValues=function(e){if(_.isUndefined(e))return null;var l={};return e.find("*[name]").each(function(){var i=C(this);try{var e=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(e))return!0;var t=(e=e[1]).split("][");t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var r=l,n=null,a=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===a)n=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===a){if(!i.is(":checked"))return;n=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var s=null;"undefined"!=typeof tinyMCE&&(s=tinyMCE.get(i.attr("id"))),n=null===s||"function"!=typeof s.getContent||s.isHidden()?i.val():s.getContent()}else if("SELECT"===i.prop("tagName")){var o=i.find("option:selected");1===o.length?n=i.find("option:selected").val():1<o.length&&(n=_.map(i.find("option:selected"),function(e,i){return C(e).val()}))}else n=i.val();for(var d=0;d<t.length;d++)d===t.length-1?""===t[d]?r.push(n):r[t[d]]=n:(_.isUndefined(r[t[d]])&&(_.isNumber(t[d+1])||""===t[d+1]?r[t[d]]=[]:r[t[d]]={}),r=r[t[d]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),l},sowbForms.setWidgetFormValues=function(e,d,v,l){v=v||!1,l=void 0!==l&&l||void 0===l;var i=0,h=function(e,w){10!=++i&&e.find("> .siteorigin-widget-field-type-repeater,> .siteorigin-widget-field-type-section > .siteorigin-widget-section > .siteorigin-widget-field-type-repeater").each(function(e,i){var t=C(this),r=t.find("> .siteorigin-widget-field-repeater"),n=r.data("repeaterName"),a=w.hasOwnProperty(n)?w[n]:null;if(t.parent().is(".siteorigin-widget-section")){var s=r.data("element-name");s=s.replace(/\[#.*?#\]/g,"");for(var o=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(s)[1].split("]["),d=o.length?w:null;o.length;){var l=o.shift();d=d.hasOwnProperty(l)?d[l]:d}a=d}if(a&&Array.isArray(a)){var g=r.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),f=a.length,c=g.length;if(c<f)for(var p=0;p<f-c;p++)r.find("> .siteorigin-widget-field-repeater-add").click();else if(!v&&f<c)for(var u=f;u<c;u++){C(g.eq(u)).find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}g=r.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var m=0;m<g.length;m++)g.eq(m).find("> .siteorigin-widget-field-repeater-item-form"),h(g.eq(m).find("> .siteorigin-widget-field-repeater-item-form"),a[m])}}),--i};h(e,d),e.find("*[name]").each(function(){var e=C(this),i=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(e.attr("name"));if(null==i)return!0;var t=(i=i[1]).split("][");t=t.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var r,n=d,a=0;a<t.length;a++){if(!n.hasOwnProperty(t[a])){if(v)return!0;break}a===t.length-1?r=n[t[a]]:n=n[t[a]]}if("checkbox"===e.attr("type"))e.prop("checked",r);else if("radio"===e.attr("type"))e.prop("checked",r===e.val());else if("TEXTAREA"===e.prop("tagName")&&e.hasClass("wp-editor-area")){var s=null;"undefined"!=typeof tinyMCE&&(s=tinyMCE.get(e.attr("id"))),null!==s&&"function"==typeof s.setContent&&!s.isHidden()&&e.parent().is(":visible")?s.initialized?s.setContent(r):s.on("init",function(){s.setContent(r)}):e.val(r)}else if(e.is(".panels-data")){e.val(r);var o=e.data("builder");o&&o.setDataField(e)}else e.val(r);l&&e.trigger("change")})},C(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var e=C(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){e.sowSetupForm()},200)});var e=C("body");e.hasClass("wp-customizer")&&C(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),e.hasClass("block-editor-page")&&C(document).on("panels_setup_preview",function(){C(sowb).trigger("setup_widgets",{preview:!0})}),C(document).on("open_dialog",function(e,i){i.$el.find(".so-panels-dialog").is(".so-panels-dialog-edit-widget")&&i.$el.find(".siteorigin-widget-form-main").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),C(function(){C(document).trigger("sowadminloaded")})}(jQuery);var sowEmitters={_match:function(e,i){void 0===i&&(i=".*");var t=new RegExp("^([a-zA-Z0-9_-]+)(\\[([a-zA-Z0-9_-]+)\\])? *: *("+i+") *$").exec(e);if(null===t)return!1;var r="",n="default";return r=void 0!==t[3]?(n=t[1],t[3]):t[1],{match:t[4].trim(),group:n,state:r}},_checker:function(e,i,t,r){var n,a={};void 0===i.length&&(i=[i]);for(var s=0;s<i.length;s++)!1!==(n=sowEmitters._match(i[s],t))&&("_true"===n.match||r(e,i,n.match))&&(a[n.group]=n.state);return a},select:function(e,i){void 0===i.length&&(i=[i]);for(var t={},r=0;r<i.length;r++)""===i[r]&&(i[r]="default"),t[i[r]]=e;return t},conditional:function(val,args){return sowEmitters._checker(val,args,"[^;{}]*",function(val,args,match){return eval(match)})},in:function(e,i){return sowEmitters._checker(e,i,"[^;{}]*",function(e,i,t){return-1!==t.split(",").map(function(e){return e.trim()}).indexOf(e)})}};window.sowbForms=sowbForms;
base/siteorigin-widget.class.php CHANGED
@@ -337,11 +337,14 @@ abstract class SiteOrigin_Widget extends WP_Widget {
337
  }
338
 
339
  private function is_block_editor_page() {
 
 
340
  // This is for the Gutenberg plugin.
341
- $is_gutenberg_page = function_exists( 'is_gutenberg_page' ) && is_gutenberg_page();
 
 
342
  // This is for WP 5 with the integrated block editor.
343
  $is_block_editor = false;
344
- $current_screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
345
  if ( ! empty( $current_screen ) && method_exists( $current_screen, 'is_block_editor' ) ) {
346
  $is_block_editor = $current_screen->is_block_editor();
347
  }
@@ -469,7 +472,9 @@ abstract class SiteOrigin_Widget extends WP_Widget {
469
  $instance['_sow_form_id'] = $id;
470
  }
471
  ?>
472
- <div class="siteorigin-widget-form siteorigin-widget-form-main siteorigin-widget-form-main-<?php echo esc_attr($class_name) ?>" id="<?php echo $form_id ?>" data-class="<?php echo esc_attr( $this->widget_class ) ?>" style="display: none">
 
 
473
  <?php
474
  $this->display_teaser_message();
475
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
337
  }
338
 
339
  private function is_block_editor_page() {
340
+ $current_screen = function_exists( 'get_current_screen' ) ? get_current_screen() : null;
341
+
342
  // This is for the Gutenberg plugin.
343
+ $is_gutenberg_page = $current_screen != null &&
344
+ function_exists( 'is_gutenberg_page' ) &&
345
+ is_gutenberg_page();
346
  // This is for WP 5 with the integrated block editor.
347
  $is_block_editor = false;
 
348
  if ( ! empty( $current_screen ) && method_exists( $current_screen, 'is_block_editor' ) ) {
349
  $is_block_editor = $current_screen->is_block_editor();
350
  }
472
  $instance['_sow_form_id'] = $id;
473
  }
474
  ?>
475
+ <div class="siteorigin-widget-form siteorigin-widget-form-main siteorigin-widget-form-main-<?php echo esc_attr($class_name) ?>"
476
+ id="<?php echo $form_id ?>" data-class="<?php echo esc_attr( $this->widget_class ) ?>"
477
+ data-id-base="<?php echo esc_attr( $this->id_base ) ?>" style="display: none">
478
  <?php
479
  $this->display_teaser_message();
480
  /* @var $field_factory SiteOrigin_Widget_Field_Factory */
compat/beaver-builder/beaver-builder.php CHANGED
@@ -32,13 +32,14 @@ class SiteOrigin_Widgets_Bundle_Beaver_Builder {
32
  global $wp_widget_factory;
33
 
34
  // Beaver Builder does it's editing in the front end so enqueue required form scripts for active widgets.
 
 
 
35
  $any_widgets_active = false;
36
  foreach ( $wp_widget_factory->widgets as $class => $widget_obj ) {
37
  if ( ! empty( $widget_obj ) && is_object( $widget_obj ) && is_subclass_of( $widget_obj, 'SiteOrigin_Widget' ) ) {
38
  $any_widgets_active = true;
39
- ob_start();
40
- $widget_obj->form( array() );
41
- ob_clean();
42
  }
43
  }
44
 
32
  global $wp_widget_factory;
33
 
34
  // Beaver Builder does it's editing in the front end so enqueue required form scripts for active widgets.
35
+ $so_widgets_bundle = SiteOrigin_Widgets_Bundle::single();
36
+ $so_widgets_bundle->enqueue_registered_widgets_scripts( false, true );
37
+
38
  $any_widgets_active = false;
39
  foreach ( $wp_widget_factory->widgets as $class => $widget_obj ) {
40
  if ( ! empty( $widget_obj ) && is_object( $widget_obj ) && is_subclass_of( $widget_obj, 'SiteOrigin_Widget' ) ) {
41
  $any_widgets_active = true;
42
+ break;
 
 
43
  }
44
  }
45
 
compat/beaver-builder/sowb-beaver-builder.js CHANGED
@@ -31,7 +31,7 @@ var sowb = window.sowb || {};
31
  // Loop through the form data.
32
  for ( i = 0; i < data.length; i++ ) {
33
 
34
- value = data[ i ].value.replace( /\r/gm, '' );
35
 
36
  // Don't save text editor textareas.
37
  if ( data[ i ].name.indexOf( 'flrich' ) > -1 ) {
@@ -52,7 +52,7 @@ var sowb = window.sowb || {};
52
  continue;
53
  }
54
 
55
- keys.push( matches[ k ].replace( /\[|\]/g, '' ) );
56
  }
57
 
58
 
@@ -108,6 +108,14 @@ var sowb = window.sowb || {};
108
  }
109
  }
110
 
 
 
 
 
 
 
 
 
111
  if ( typeof FLBuilder._getOriginalSettings === 'function' ) {
112
  // Merge in the original settings in case legacy fields haven't rendered yet.
113
  settings = $.extend( {}, FLBuilder._getOriginalSettings( form ), settings );
@@ -115,7 +123,8 @@ var sowb = window.sowb || {};
115
 
116
  var widgetForm = form.find( '.siteorigin-widget-form' );
117
  if ( widgetForm.length ) {
118
- settings[ name ] = sowbForms.getWidgetFormValues( widgetForm );
 
119
  }
120
  // Return the settings.
121
  return settings;
31
  // Loop through the form data.
32
  for ( i = 0; i < data.length; i++ ) {
33
 
34
+ value = data[ i ].value.replace( /\r/gm, '' ).replace( /&#39;/g, "'" );
35
 
36
  // Don't save text editor textareas.
37
  if ( data[ i ].name.indexOf( 'flrich' ) > -1 ) {
52
  continue;
53
  }
54
 
55
+ keys.push( matches[ k ].replace( /[\[\]]/g, '' ) );
56
  }
57
 
58
 
108
  }
109
  }
110
 
111
+ // In the case of multi-select or checkboxes we need to put the blank setting back in.
112
+ $.each( form.find( '[name]' ), function( key, input ) {
113
+ var name = $( input ).attr( 'name' ).replace( /\[(.*)\]/, '' );
114
+ if ( ! ( name in settings ) ) {
115
+ settings[ name ] = '';
116
+ }
117
+ });
118
+
119
  if ( typeof FLBuilder._getOriginalSettings === 'function' ) {
120
  // Merge in the original settings in case legacy fields haven't rendered yet.
121
  settings = $.extend( {}, FLBuilder._getOriginalSettings( form ), settings );
123
 
124
  var widgetForm = form.find( '.siteorigin-widget-form' );
125
  if ( widgetForm.length ) {
126
+ var widgetSettingKey = 'widget-' + sowbForms.getWidgetIdBase( widgetForm );
127
+ settings[ widgetSettingKey ] = sowbForms.getWidgetFormValues( widgetForm );
128
  }
129
  // Return the settings.
130
  return settings;
compat/beaver-builder/sowb-beaver-builder.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};!function(c){"undefined"!=typeof FLBuilder&&(sowb.orig_FLBuilder_initJQueryReadyFix=FLBuilder._initJQueryReadyFix,FLBuilder._initJQueryReadyFix=function(){},sowb.orig_FLBuilder_getSettings=FLBuilder._getSettings,FLBuilder._getSettings=function(e){FLBuilder._updateEditorFields();var i=e.serializeArray(),r=0,t=0,n="",l="",d="",o=[],u=[],s={};for(r=0;r<i.length;r++)if(n=i[r].value.replace(/\r/gm,""),!(-1<i[r].name.indexOf("flrich")))if(-1<i[r].name.indexOf("[")){for(l=i[r].name.replace(/\[(.*)\]/,""),o=[],u=(d=i[r].name.replace(l,"")).match(/\[[^\]]*\]/g),t=0;t<u.length;t++)"[]"!==u[t]&&o.push(u[t].replace(/\[|\]/g,""));var a=function(e,i,r,t){0===t.length?e[r]=i:(void 0===e[r]&&(e[r]={}),a(e[r],i,t.shift(),t))};if(0<o.length){var g=o.slice();void 0===s[l]&&(s[l]={}),a(s[l],n,g.shift(),g)}else void 0===s[l]&&(s[l]=[]),s[l].push(n)}else s[i[r].name]=n;for(d in s)if(void 0!==s["as_values_"+d]){s[d]=c.grep(s["as_values_"+d].split(","),function(e){return""!==e}).join(",");try{delete s["as_values_"+d]}catch(e){}}"function"==typeof FLBuilder._getOriginalSettings&&(s=c.extend({},FLBuilder._getOriginalSettings(e),s));var f=e.find(".siteorigin-widget-form");return f.length&&(s[l]=sowbForms.getWidgetFormValues(f)),s}),c(document).on("fl-builder.preview-rendered fl-builder.layout-rendered",".fl-builder-content",function(){c(sowb).trigger("setup_widgets",{preview:!0})})}(jQuery),window.sowb=sowb;
1
+ var sowb=window.sowb||{};!function(w){"undefined"!=typeof FLBuilder&&(sowb.orig_FLBuilder_initJQueryReadyFix=FLBuilder._initJQueryReadyFix,FLBuilder._initJQueryReadyFix=function(){},sowb.orig_FLBuilder_getSettings=FLBuilder._getSettings,FLBuilder._getSettings=function(e){FLBuilder._updateEditorFields();var i=e.serializeArray(),r=0,t=0,n="",d="",l="",a=[],o=[],u={};for(r=0;r<i.length;r++)if(n=i[r].value.replace(/\r/gm,"").replace(/&#39;/g,"'"),!(-1<i[r].name.indexOf("flrich")))if(-1<i[r].name.indexOf("[")){for(d=i[r].name.replace(/\[(.*)\]/,""),a=[],o=(l=i[r].name.replace(d,"")).match(/\[[^\]]*\]/g),t=0;t<o.length;t++)"[]"!==o[t]&&a.push(o[t].replace(/[\[\]]/g,""));var s=function(e,i,r,t){0===t.length?e[r]=i:(void 0===e[r]&&(e[r]={}),s(e[r],i,t.shift(),t))};if(0<a.length){var g=a.slice();void 0===u[d]&&(u[d]={}),s(u[d],n,g.shift(),g)}else void 0===u[d]&&(u[d]=[]),u[d].push(n)}else u[i[r].name]=n;for(l in u)if(void 0!==u["as_values_"+l]){u[l]=w.grep(u["as_values_"+l].split(","),function(e){return""!==e}).join(",");try{delete u["as_values_"+l]}catch(e){}}w.each(e.find("[name]"),function(e,i){var r=w(i).attr("name").replace(/\[(.*)\]/,"");r in u||(u[r]="")}),"function"==typeof FLBuilder._getOriginalSettings&&(u=w.extend({},FLBuilder._getOriginalSettings(e),u));var f=e.find(".siteorigin-widget-form");if(f.length){var c="widget-"+sowbForms.getWidgetIdBase(f);u[c]=sowbForms.getWidgetFormValues(f)}return u}),w(document).on("fl-builder.preview-rendered fl-builder.layout-rendered",".fl-builder-content",function(){w(sowb).trigger("setup_widgets",{preview:!0})})}(jQuery),window.sowb=sowb;
compat/beaver-builder/styles.css CHANGED
@@ -103,9 +103,19 @@
103
  .siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline {
104
  font-family: 'sow-elegantline' !important;
105
  }
106
- .fl-lightbox .siteorigin-widget-form .sow-icon-fontawesome,
107
- .siteorigin-widgets-query-builder.media-modal .sow-icon-fontawesome {
108
- font-family: 'sow-fontawesome' !important;
 
 
 
 
 
 
 
 
 
 
109
  }
110
  .fl-lightbox .siteorigin-widget-form .sow-icon-genericons,
111
  .siteorigin-widgets-query-builder.media-modal .sow-icon-genericons {
103
  .siteorigin-widgets-query-builder.media-modal .sow-icon-elegantline {
104
  font-family: 'sow-elegantline' !important;
105
  }
106
+ .fl-lightbox .siteorigin-widget-form .sow-fas,
107
+ .siteorigin-widgets-query-builder.media-modal .sow-fas {
108
+ font-family: 'sow-fontawesome-free' !important;
109
+ font-weight: 900;
110
+ }
111
+ .fl-lightbox .siteorigin-widget-form .sow-fab,
112
+ .siteorigin-widgets-query-builder.media-modal .sow-fab {
113
+ font-family: 'sow-fontawesome-brands' !important;
114
+ }
115
+ .fl-lightbox .siteorigin-widget-form .sow-far,
116
+ .siteorigin-widgets-query-builder.media-modal .sow-far {
117
+ font-family: 'sow-fontawesome-free' !important;
118
+ font-weight: 400;
119
  }
120
  .fl-lightbox .siteorigin-widget-form .sow-icon-genericons,
121
  .siteorigin-widgets-query-builder.media-modal .sow-icon-genericons {
js/sow.google-map.js CHANGED
@@ -1,6 +1,6 @@
1
  /* globals jQuery, google, sowb */
2
 
3
- var sowb = window.sowb || {};
4
 
5
  sowb.SiteOriginGoogleMap = function($) {
6
  return {
@@ -299,10 +299,7 @@ sowb.SiteOriginGoogleMap = function($) {
299
  return;
300
  }
301
 
302
- var autocomplete = new google.maps.places.Autocomplete(
303
- element,
304
- {types: ['address']}
305
- );
306
 
307
  var $mapField = $(element).siblings('.sow-google-map-canvas');
308
 
@@ -371,8 +368,8 @@ sowb.SiteOriginGoogleMap = function($) {
371
  var latLng;
372
 
373
  if ( inputLocation && inputLocation.indexOf( ',' ) > -1 ) {
374
- var vals = inputLocation.split( ',' );
375
- // A latlng value should be of the format 'lat,lng'
376
  if ( vals && vals.length === 2 ) {
377
  latLng = new google.maps.LatLng( vals[ 0 ], vals[ 1 ] );
378
  // Let the API decide if we have a valid latlng
@@ -477,7 +474,10 @@ jQuery(function ($) {
477
  var errLog = window.console.error;
478
 
479
  sowb.onLoadMapsApiError = function ( error ) {
480
- var matchError = error.match( /^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/ );
 
 
 
481
  if ( matchError && matchError.length && matchError[0] ) {
482
  $( '.sow-google-map-canvas' ).each( function ( index, element ) {
483
  var $this = $( element );
@@ -504,5 +504,3 @@ jQuery(function ($) {
504
  $( sowb ).on( 'setup_widgets', sowb.setupGoogleMaps );
505
 
506
  });
507
-
508
- window.sowb = sowb;
1
  /* globals jQuery, google, sowb */
2
 
3
+ window.sowb = window.sowb || {};
4
 
5
  sowb.SiteOriginGoogleMap = function($) {
6
  return {
299
  return;
300
  }
301
 
302
+ var autocomplete = new google.maps.places.Autocomplete( element );
 
 
 
303
 
304
  var $mapField = $(element).siblings('.sow-google-map-canvas');
305
 
368
  var latLng;
369
 
370
  if ( inputLocation && inputLocation.indexOf( ',' ) > -1 ) {
371
+ // A latlng value should be of the format 'lat,lng' or '(lat,lng)'
372
+ var vals = inputLocation.replace(/[\(\)]/g, '').split( ',' );
373
  if ( vals && vals.length === 2 ) {
374
  latLng = new google.maps.LatLng( vals[ 0 ], vals[ 1 ] );
375
  // Let the API decide if we have a valid latlng
474
  var errLog = window.console.error;
475
 
476
  sowb.onLoadMapsApiError = function ( error ) {
477
+ var matchError;
478
+ if ( typeof error === 'string' ) {
479
+ matchError = error.match( /^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/ );
480
+ }
481
  if ( matchError && matchError.length && matchError[0] ) {
482
  $( '.sow-google-map-canvas' ).each( function ( index, element ) {
483
  var $this = $( element );
504
  $( sowb ).on( 'setup_widgets', sowb.setupGoogleMaps );
505
 
506
  });
 
 
js/sow.google-map.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}sowb.SiteOriginGoogleMap=function(l){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(e,o,t){var i=Number(t.zoom);i||(i=14);var a,n="user_map_style",s={zoom:i,scrollwheel:t.scrollZoom,draggable:t.draggable,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:o,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,n]}},r=new google.maps.Map(e,s),l={name:t.mapName},c=t.mapStyles;if(c){var d=new google.maps.StyledMapType(c,l);r.mapTypes.set(n,d),r.setMapTypeId(n)}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:r,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered)&&(google.maps.event.addDomListener(r,"idle",function(){a=r.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){r.setCenter(a)}));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,r,t),this.showMarkers(t.markerPositions,r,t),this.showDirections(t.directions,r,t)},linkAutocompleteField:function(o,e,t,i){if(o&&e){var a=function(e){this.inputAddress!==e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){t.setZoom(15),t.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=l(e);o.addListener("place_changed",function(){var e=o.getPlace();t.setZoom(15),e.geometry&&(t.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(e,"keypress",function(e){"13"===(e.keyCode||e.which)&&e.preventDefault()}),n.focusin(function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var e=l(l(".pac-item").get(0)),o=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=o+(t?", "+t:"");i&&a(i)});this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var s=function(i){this.getGeocoder().geocode({location:i},function(e,o){if(o===google.maps.GeocoderStatus.OK&&0<e.length){var t=e[0].formatted_address;n.val(t),this.centerMarker&&(this.centerMarker.setPosition(i),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",function(e){s(e.latLng)}),this.centerMarker.addListener("dragend",function(e){s(e.latLng)})}},showMarkers:function(e,d,p){if(e&&e.length){this.infoWindows=[];for(var o=[],t=0;t<e.length;t++){var i=parseInt(t/10);o.length===i&&(o[i]=[]),o[i][t%10]=e[t]}var a=function(e){var r=e.custom_marker_icon,l=e.hasOwnProperty("info")?e.info:null,c=e.hasOwnProperty("info_max_width")?e.info_max_width:null;return this.getLocation(e.place).done(function(e){var o=p.markerIcon;r&&(o=r);var t=new google.maps.Marker({position:e,map:d,draggable:p.markersDraggable,icon:o,title:""});if(l){var i={content:l};c&&(i.maxWidth=c);var a=p.markerInfoDisplay;i.disableAutoPan="always"===a;var n=new google.maps.InfoWindow(i);this.infoWindows.push(n);var s=a;"always"===a&&(s="click",n.open(d,t)),t.addListener(s,function(){n.open(d,t),"always"===a||p.markerInfoMultiple||this.infoWindows.forEach(function(e){e!==n&&e.close()})}.bind(this)),"mouseover"===a&&t.addListener("mouseout",function(){setTimeout(function(){n.close()},100)})}}.bind(this)).fail(function(e){n=e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(e)})}.bind(this),n=!1,s=function(e,o){for(var t=0,i=0;i<e.length&&!n;i++)a(e[i]).then(function(){++t===e.length&&o.length&&s(o.shift(),o)})}.bind(this);s(o.shift(),o)}},showDirections:function(t,e){if(t){t.waypoints&&t.waypoints.length&&t.waypoints.map(function(e){e.stopover=Boolean(e.stopover)});var i=new google.maps.DirectionsRenderer;i.setMap(e),(new google.maps.DirectionsService).route({origin:t.origin,destination:t.destination,travelMode:t.travelMode.toUpperCase(),avoidHighways:t.avoidHighways,avoidTolls:t.avoidTolls,waypoints:t.waypoints,optimizeWaypoints:t.optimizeWaypoints},function(e,o){o===google.maps.DirectionsStatus.OK&&(i.setOptions({preserveViewport:t.preserveViewport}),i.setDirections(e))})}},initMaps:function(){var e=l(".sow-google-map-autocomplete"),n=new l.Deferred;0===e.length?n.resolve():e.each(function(e,o){if(void 0!==google.maps.places){var t=new google.maps.places.Autocomplete(o,{types:["address"]}),i=l(o).siblings(".sow-google-map-canvas");if(0<i.length){var a=i.data("options");a.autocomplete=t,a.autocompleteElement=o,this.getLocation(a.address).done(function(e){this.showMap(i.get(0),e,a),i.data("initialized",!0),n.resolve()}.bind(this)).fail(function(){i.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),n.reject()})}}else n.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),n.always(function(){l(".sow-google-map-canvas").each(function(e,o){var t=l(o);if(t.data("initialized"))return!0;var i=t.data("options"),a=i.address;if(!a){var n=i.markerPositions;n&&n.length&&(a=n[0].place)}this.getLocation(a).done(function(e){this.showMap(t.get(0),e,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(e){console.log(e)})},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(e){var o,t=new l.Deferred,i={address:e};if(e&&-1<e.indexOf(",")){var a=e.split(",");a&&2===a.length&&(o=new google.maps.LatLng(a[0],a[1]),isNaN(o.lat())||isNaN(o.lng())||(i={location:{lat:o.lat(),lng:o.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 s=0,r=function(e,o){o===google.maps.GeocoderStatus.OK?t.resolve(e[0].geometry.location):o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++s<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,r)}.bind(this),1e3):t.reject(o):o!==google.maps.GeocoderStatus.ZERO_RESULTS&&o!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(o)}.bind(this);this.getGeocoder().geocode(i,r)}return t}}},jQuery(function(r){sowb.setupGoogleMaps=function(){var a,n=[],e=r(".sow-google-map-canvas");if(e.length){e.each(function(e,o){var t=r(o);if(!t.is(":visible")||t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(n=n.concat(i.libraries)),!a&&i.apiKey&&(a=i.apiKey)),t.data("apiInitialized",!0)});var o=void 0!==window.google&&void 0!==window.google.maps;if(sowb.mapsApiInitialized)var t=setTimeout(function(){o&&(clearTimeout(t),soGoogleMapInitialize())},100);else{var i="https://maps.googleapis.com/maps/api/js?callback=soGoogleMapInitialize";if(n&&n.length&&(i+="&libraries="+n.join(",")),a&&(i+="&key="+a),window.console&&window.console.error){var s=window.console.error;sowb.onLoadMapsApiError=function(e){var o=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/);o&&o.length&&o[0]&&r(".sow-google-map-canvas").each(function(e,o){var t=r(o);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}}),s.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}r("body").append('<script async type="text/javascript" src="'+i+'">'),sowb.mapsApiInitialized=!0}}},sowb.setupGoogleMaps(),r(sowb).on("setup_widgets",sowb.setupGoogleMaps)}),window.sowb=sowb;
1
+ function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}window.sowb=window.sowb||{},sowb.SiteOriginGoogleMap=function(l){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(e,o,t){var i=Number(t.zoom);i||(i=14);var a,n="user_map_style",s={zoom:i,scrollwheel:t.scrollZoom,draggable:t.draggable,disableDefaultUI:t.disableUi,zoomControl:t.zoomControl,panControl:t.panControl,center:o,mapTypeControlOptions:{mapTypeIds:[google.maps.MapTypeId.ROADMAP,google.maps.MapTypeId.SATELLITE,n]}},r=new google.maps.Map(e,s),l={name:t.mapName},c=t.mapStyles;if(c){var d=new google.maps.StyledMapType(c,l);r.mapTypes.set(n,d),r.setMapTypeId(n)}(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:r,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered)&&(google.maps.event.addDomListener(r,"idle",function(){a=r.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){r.setCenter(a)}));this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,r,t),this.showMarkers(t.markerPositions,r,t),this.showDirections(t.directions,r,t)},linkAutocompleteField:function(o,e,t,i){if(o&&e){var a=function(e){this.inputAddress!==e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){t.setZoom(15),t.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),n=l(e);o.addListener("place_changed",function(){var e=o.getPlace();t.setZoom(15),e.geometry&&(t.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(e,"keypress",function(e){"13"===(e.keyCode||e.which)&&e.preventDefault()}),n.focusin(function(){if(!this.resultsObserver){var e=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var e=l(l(".pac-item").get(0)),o=e.find(".pac-item-query").text(),t=e.find("span").not("[class]").text(),i=o+(t?", "+t:"");i&&a(i)});this.resultsObserver.observe(e,{attributes:!0,childList:!0,characterData:!0})}}.bind(this));var s=function(i){this.getGeocoder().geocode({location:i},function(e,o){if(o===google.maps.GeocoderStatus.OK&&0<e.length){var t=e[0].formatted_address;n.val(t),this.centerMarker&&(this.centerMarker.setPosition(i),this.centerMarker.setTitle(t))}}.bind(this))}.bind(this);t.addListener("click",function(e){s(e.latLng)}),this.centerMarker.addListener("dragend",function(e){s(e.latLng)})}},showMarkers:function(e,d,p){if(e&&e.length){this.infoWindows=[];for(var o=[],t=0;t<e.length;t++){var i=parseInt(t/10);o.length===i&&(o[i]=[]),o[i][t%10]=e[t]}var a=function(e){var r=e.custom_marker_icon,l=e.hasOwnProperty("info")?e.info:null,c=e.hasOwnProperty("info_max_width")?e.info_max_width:null;return this.getLocation(e.place).done(function(e){var o=p.markerIcon;r&&(o=r);var t=new google.maps.Marker({position:e,map:d,draggable:p.markersDraggable,icon:o,title:""});if(l){var i={content:l};c&&(i.maxWidth=c);var a=p.markerInfoDisplay;i.disableAutoPan="always"===a;var n=new google.maps.InfoWindow(i);this.infoWindows.push(n);var s=a;"always"===a&&(s="click",n.open(d,t)),t.addListener(s,function(){n.open(d,t),"always"===a||p.markerInfoMultiple||this.infoWindows.forEach(function(e){e!==n&&e.close()})}.bind(this)),"mouseover"===a&&t.addListener("mouseout",function(){setTimeout(function(){n.close()},100)})}}.bind(this)).fail(function(e){n=e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(e)})}.bind(this),n=!1,s=function(e,o){for(var t=0,i=0;i<e.length&&!n;i++)a(e[i]).then(function(){++t===e.length&&o.length&&s(o.shift(),o)})}.bind(this);s(o.shift(),o)}},showDirections:function(t,e){if(t){t.waypoints&&t.waypoints.length&&t.waypoints.map(function(e){e.stopover=Boolean(e.stopover)});var i=new google.maps.DirectionsRenderer;i.setMap(e),(new google.maps.DirectionsService).route({origin:t.origin,destination:t.destination,travelMode:t.travelMode.toUpperCase(),avoidHighways:t.avoidHighways,avoidTolls:t.avoidTolls,waypoints:t.waypoints,optimizeWaypoints:t.optimizeWaypoints},function(e,o){o===google.maps.DirectionsStatus.OK&&(i.setOptions({preserveViewport:t.preserveViewport}),i.setDirections(e))})}},initMaps:function(){var e=l(".sow-google-map-autocomplete"),n=new l.Deferred;0===e.length?n.resolve():e.each(function(e,o){if(void 0!==google.maps.places){var t=new google.maps.places.Autocomplete(o),i=l(o).siblings(".sow-google-map-canvas");if(0<i.length){var a=i.data("options");a.autocomplete=t,a.autocompleteElement=o,this.getLocation(a.address).done(function(e){this.showMap(i.get(0),e,a),i.data("initialized",!0),n.resolve()}.bind(this)).fail(function(){i.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),n.reject()})}}else n.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.')}.bind(this)),n.always(function(){l(".sow-google-map-canvas").each(function(e,o){var t=l(o);if(t.data("initialized"))return!0;var i=t.data("options"),a=i.address;if(!a){var n=i.markerPositions;n&&n.length&&(a=n[0].place)}this.getLocation(a).done(function(e){this.showMap(t.get(0),e,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(e){console.log(e)})},getGeocoder:function(){return this._geocoder||(this._geocoder=new google.maps.Geocoder),this._geocoder},getLocation:function(e){var o,t=new l.Deferred,i={address:e};if(e&&-1<e.indexOf(",")){var a=e.replace(/[\(\)]/g,"").split(",");a&&2===a.length&&(o=new google.maps.LatLng(a[0],a[1]),isNaN(o.lat())||isNaN(o.lng())||(i={location:{lat:o.lat(),lng:o.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 s=0,r=function(e,o){o===google.maps.GeocoderStatus.OK?t.resolve(e[0].geometry.location):o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++s<3?setTimeout(function(){this.getGeocoder().geocode.call(this,i,r)}.bind(this),1e3):t.reject(o):o!==google.maps.GeocoderStatus.ZERO_RESULTS&&o!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||t.reject(o)}.bind(this);this.getGeocoder().geocode(i,r)}return t}}},jQuery(function(r){sowb.setupGoogleMaps=function(){var a,n=[],e=r(".sow-google-map-canvas");if(e.length){e.each(function(e,o){var t=r(o);if(!t.is(":visible")||t.data("apiInitialized"))return t;var i=t.data("options");i&&(void 0!==i.libraries&&null!==i.libraries&&(n=n.concat(i.libraries)),!a&&i.apiKey&&(a=i.apiKey)),t.data("apiInitialized",!0)});var o=void 0!==window.google&&void 0!==window.google.maps;if(sowb.mapsApiInitialized)var t=setTimeout(function(){o&&(clearTimeout(t),soGoogleMapInitialize())},100);else{var i="https://maps.googleapis.com/maps/api/js?callback=soGoogleMapInitialize";if(n&&n.length&&(i+="&libraries="+n.join(",")),a&&(i+="&key="+a),window.console&&window.console.error){var s=window.console.error;sowb.onLoadMapsApiError=function(e){var o;"string"==typeof e&&(o=e.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/)),o&&o.length&&o[0]&&r(".sow-google-map-canvas").each(function(e,o){var t=r(o);if(t.data("fallbackImage")){var i=t.data("fallbackImage");i.hasOwnProperty("img")&&t.append(i.img)}}),s.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}r("body").append('<script async type="text/javascript" src="'+i+'">'),sowb.mapsApiInitialized=!0}}},sowb.setupGoogleMaps(),r(sowb).on("setup_widgets",sowb.setupGoogleMaps)});
lang/so-widgets-bundle.pot CHANGED
@@ -8,7 +8,7 @@ msgstr ""
8
  "Content-Transfer-Encoding: 8bit\n"
9
  "Language-Team: SiteOrigin <support@siteorigin.com>\n"
10
  "Last-Translator: SiteOrigin <support@siteorigin.com>\n"
11
- "Report-Msgid-Bugs-To: http://www.siteorigin.com\n"
12
  "X-Poedit-Basepath: ..\n"
13
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
14
  "X-Poedit-SearchPath-0: .\n"
@@ -24,7 +24,7 @@ msgstr ""
24
  msgid "Filter Widgets"
25
  msgstr ""
26
 
27
- #: admin/tpl/admin.php:17, base/inc/fields/posts.class.php:12, widgets/google-map/google-map.php:337
28
  msgid "All"
29
  msgstr ""
30
 
@@ -48,7 +48,7 @@ msgstr ""
48
  msgid "Deactivate"
49
  msgstr ""
50
 
51
- #: admin/tpl/admin.php:90, widgets/contact/contact.php:59, widgets/google-map/google-map.php:63, widgets/testimonial/testimonial.php:100
52
  msgid "Settings"
53
  msgstr ""
54
 
@@ -80,7 +80,7 @@ msgstr ""
80
  msgid "Invalid post."
81
  msgstr ""
82
 
83
- #: base/inc/actions.php:50, base/siteorigin-widget.class.php:655
84
  msgid "Widget Preview"
85
  msgstr ""
86
 
@@ -353,7 +353,7 @@ msgstr ""
353
  msgid "Sticky posts"
354
  msgstr ""
355
 
356
- #: base/inc/fields/posts.class.php:116, compat/beaver-builder/beaver-builder.php:65, widgets/google-map/google-map.php:269, widgets/image/image.php:47, widgets/image/image.php:59
357
  msgid "Default"
358
  msgstr ""
359
 
@@ -529,51 +529,51 @@ msgstr ""
529
  msgid "previous slide"
530
  msgstr ""
531
 
532
- #: base/siteorigin-widget.class.php:499
533
  msgid "Preview"
534
  msgstr ""
535
 
536
- #: base/siteorigin-widget.class.php:504
537
  msgid "Help"
538
  msgstr ""
539
 
540
- #: base/siteorigin-widget.class.php:570
541
  msgid "This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page."
542
  msgstr ""
543
 
544
- #: base/siteorigin-widget.class.php:571
545
  msgid "You will only need to do this once."
546
  msgstr ""
547
 
548
- #: base/siteorigin-widget.class.php:598
549
  msgid "Are you sure?"
550
  msgstr ""
551
 
552
- #: base/siteorigin-widget.class.php:600
553
  msgid "There is a newer version of this widget's content available."
554
  msgstr ""
555
 
556
- #: base/siteorigin-widget.class.php:601, base/siteorigin-widget.class.php:605
557
  msgid "Restore"
558
  msgstr ""
559
 
560
- #: base/siteorigin-widget.class.php:602
561
  msgid "Dismiss"
562
  msgstr ""
563
 
564
- #: base/siteorigin-widget.class.php:604
565
  msgid "Clicking %s will replace the current widget contents. You can revert by refreshing the page before updating."
566
  msgstr ""
567
 
568
- #: compat/beaver-builder/beaver-builder.php:64
569
  msgid "Clear"
570
  msgstr ""
571
 
572
- #: compat/beaver-builder/beaver-builder.php:66
573
  msgid "Select Color"
574
  msgstr ""
575
 
576
- #: compat/beaver-builder/beaver-builder.php:67
577
  msgid "Current Color"
578
  msgstr ""
579
 
@@ -621,7 +621,7 @@ msgstr ""
621
  msgid "Regular"
622
  msgstr ""
623
 
624
- #: icons/fontawesome/filter.php:1343, widgets/contact/contact.php:330, widgets/contact/contact.php:447, widgets/contact/contact.php:555, widgets/contact/contact.php:633, widgets/headline/headline.php:187
625
  msgid "Solid"
626
  msgstr ""
627
 
@@ -705,7 +705,7 @@ msgstr ""
705
  msgid "Panels"
706
  msgstr ""
707
 
708
- #: widgets/accordion/accordion.php:64, widgets/hero/hero.php:60, widgets/layout-slider/layout-slider.php:48, widgets/tabs/tabs.php:64
709
  msgid "Content"
710
  msgstr ""
711
 
@@ -733,7 +733,7 @@ msgstr ""
733
  msgid "Headings"
734
  msgstr ""
735
 
736
- #: widgets/accordion/accordion.php:90, widgets/accordion/accordion.php:128, widgets/contact/contact.php:303, widgets/contact/contact.php:536, widgets/cta/cta.php:78, widgets/hero/hero.php:120, widgets/layout-slider/layout-slider.php:82, widgets/social-media-buttons/social-media-buttons.php:86, widgets/tabs/tabs.php:86, widgets/tabs/tabs.php:106, widgets/tabs/tabs.php:150
737
  msgid "Background color"
738
  msgstr ""
739
 
@@ -769,7 +769,7 @@ msgstr ""
769
  msgid "Bottom margin"
770
  msgstr ""
771
 
772
- #: widgets/accordion/accordion.php:233
773
  msgid "Get more customization options and the ability to use widgets and layouts as your accordion content with %sSiteOrigin Premium%s"
774
  msgstr ""
775
 
@@ -789,11 +789,11 @@ msgstr ""
789
  msgid "Button text"
790
  msgstr ""
791
 
792
- #: widgets/button/button.php:51, widgets/google-map/google-map.php:97, widgets/headline/headline.php:45, widgets/headline/headline.php:116, widgets/hero/hero.php:126, widgets/icon/icon.php:57, widgets/image/image.php:89, widgets/layout-slider/layout-slider.php:88, widgets/simple-masonry/simple-masonry.php:79, widgets/slider/slider.php:85
793
  msgid "Destination URL"
794
  msgstr ""
795
 
796
- #: widgets/button/button.php:57, widgets/google-map/google-map.php:108, widgets/headline/headline.php:50, widgets/headline/headline.php:121, widgets/icon/icon.php:63, widgets/simple-masonry/simple-masonry.php:84, widgets/social-media-buttons/social-media-buttons.php:97, widgets/taxonomy/taxonomy.php:65
797
  msgid "Open in a new window"
798
  msgstr ""
799
 
@@ -821,7 +821,7 @@ msgstr ""
821
  msgid "Top"
822
  msgstr ""
823
 
824
- #: widgets/button/button.php:86, widgets/button/button.php:112, widgets/contact/contact.php:368, widgets/contact/contact.php:383, widgets/contact/contact.php:607, widgets/cta/cta.php:103, widgets/features/features.php:65, widgets/headline/headline.php:90, widgets/headline/headline.php:161, widgets/headline/headline.php:216, widgets/icon/icon.php:50, widgets/image/image.php:49, widgets/image/image.php:61, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:255
825
  msgid "Right"
826
  msgstr ""
827
 
@@ -829,7 +829,7 @@ msgstr ""
829
  msgid "Bottom"
830
  msgstr ""
831
 
832
- #: widgets/button/button.php:88, widgets/button/button.php:111, widgets/contact/contact.php:367, widgets/contact/contact.php:382, widgets/contact/contact.php:606, widgets/cta/cta.php:102, widgets/features/features.php:67, widgets/headline/headline.php:89, widgets/headline/headline.php:160, widgets/headline/headline.php:215, widgets/icon/icon.php:49, widgets/image/image.php:48, widgets/image/image.php:60, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:254
833
  msgid "Left"
834
  msgstr ""
835
 
@@ -837,7 +837,7 @@ msgstr ""
837
  msgid "Design and layout"
838
  msgstr ""
839
 
840
- #: widgets/button/button.php:102, widgets/contact/contact.php:374, widgets/contact/contact.php:599, widgets/contact/contact.php:650, widgets/google-map/google-map.php:88
841
  msgid "Width"
842
  msgstr ""
843
 
@@ -849,11 +849,11 @@ msgstr ""
849
  msgid "Align"
850
  msgstr ""
851
 
852
- #: widgets/button/button.php:113, widgets/contact/contact.php:384, widgets/contact/contact.php:608, widgets/headline/headline.php:88, widgets/headline/headline.php:159, widgets/headline/headline.php:214, widgets/icon/icon.php:48, widgets/image/image.php:50, widgets/image/image.php:62, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
853
  msgid "Center"
854
  msgstr ""
855
 
856
- #: widgets/button/button.php:114, widgets/contact/contact.php:385, widgets/headline/headline.php:91, widgets/headline/headline.php:162, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
857
  msgid "Justify"
858
  msgstr ""
859
 
@@ -877,7 +877,7 @@ msgstr ""
877
  msgid "Button color"
878
  msgstr ""
879
 
880
- #: widgets/button/button.php:137, widgets/contact/contact.php:574, widgets/hero/hero.php:251, widgets/layout-slider/layout-slider.php:186
881
  msgid "Text color"
882
  msgstr ""
883
 
@@ -885,7 +885,7 @@ msgstr ""
885
  msgid "Use hover effects"
886
  msgstr ""
887
 
888
- #: widgets/button/button.php:148, widgets/contact/contact.php:347, widgets/contact/contact.php:397, widgets/features/features.php:138, widgets/features/features.php:159, widgets/features/features.php:180, widgets/headline/headline.php:76, widgets/headline/headline.php:147
889
  msgid "Font"
890
  msgstr ""
891
 
@@ -909,7 +909,7 @@ msgstr ""
909
  msgid "Rounding"
910
  msgstr ""
911
 
912
- #: widgets/button/button.php:168, widgets/contact/contact.php:326, widgets/contact/contact.php:443, widgets/contact/contact.php:554, widgets/contact/contact.php:639, widgets/headline/headline.php:186, widgets/social-media-buttons/social-media-buttons.php:130
913
  msgid "None"
914
  msgstr ""
915
 
@@ -1109,7 +1109,7 @@ msgstr ""
1109
  msgid "Subject"
1110
  msgstr ""
1111
 
1112
- #: widgets/contact/contact.php:152, widgets/features/features.php:111, widgets/features/features.php:154, widgets/headline/headline.php:41, widgets/headline/headline.php:112, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:82
1113
  msgid "Text"
1114
  msgstr ""
1115
 
@@ -1145,7 +1145,7 @@ msgstr ""
1145
  msgid "Required Field"
1146
  msgstr ""
1147
 
1148
- #: widgets/contact/contact.php:181, widgets/contact/contact.php:1010
1149
  msgid "Required field"
1150
  msgstr ""
1151
 
@@ -1261,31 +1261,31 @@ msgstr ""
1261
  msgid "Hidden"
1262
  msgstr ""
1263
 
1264
- #: widgets/contact/contact.php:328, widgets/contact/contact.php:445, widgets/contact/contact.php:556, widgets/contact/contact.php:631, widgets/headline/headline.php:188
1265
  msgid "Dotted"
1266
  msgstr ""
1267
 
1268
- #: widgets/contact/contact.php:329, widgets/contact/contact.php:446, widgets/contact/contact.php:557, widgets/contact/contact.php:632, widgets/headline/headline.php:189
1269
  msgid "Dashed"
1270
  msgstr ""
1271
 
1272
- #: widgets/contact/contact.php:331, widgets/contact/contact.php:448, widgets/contact/contact.php:634, widgets/headline/headline.php:190
1273
  msgid "Double"
1274
  msgstr ""
1275
 
1276
- #: widgets/contact/contact.php:332, widgets/contact/contact.php:449, widgets/contact/contact.php:635, widgets/headline/headline.php:191
1277
  msgid "Groove"
1278
  msgstr ""
1279
 
1280
- #: widgets/contact/contact.php:333, widgets/contact/contact.php:450, widgets/contact/contact.php:636, widgets/headline/headline.php:192
1281
  msgid "Ridge"
1282
  msgstr ""
1283
 
1284
- #: widgets/contact/contact.php:334, widgets/contact/contact.php:451, widgets/contact/contact.php:637, widgets/headline/headline.php:193
1285
  msgid "Inset"
1286
  msgstr ""
1287
 
1288
- #: widgets/contact/contact.php:335, widgets/contact/contact.php:452, widgets/contact/contact.php:638, widgets/headline/headline.php:194
1289
  msgid "Outset"
1290
  msgstr ""
1291
 
@@ -1293,7 +1293,7 @@ msgstr ""
1293
  msgid "Field labels"
1294
  msgstr ""
1295
 
1296
- #: widgets/contact/contact.php:357, widgets/contact/contact.php:476, widgets/contact/contact.php:645, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/google-map/google-map.php:347, widgets/headline/headline.php:68, widgets/headline/headline.php:139, widgets/headline/headline.php:199, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56
1297
  msgid "Color"
1298
  msgstr ""
1299
 
@@ -1313,7 +1313,7 @@ msgstr ""
1313
  msgid "Inside"
1314
  msgstr ""
1315
 
1316
- #: widgets/contact/contact.php:402, widgets/headline/headline.php:81, widgets/headline/headline.php:152
1317
  msgid "Font Size"
1318
  msgstr ""
1319
 
@@ -1325,7 +1325,7 @@ msgstr ""
1325
  msgid "Margin"
1326
  msgstr ""
1327
 
1328
- #: widgets/contact/contact.php:418, widgets/google-map/google-map.php:93, widgets/hero/hero.php:163, widgets/layout-slider/layout-slider.php:125
1329
  msgid "Height"
1330
  msgstr ""
1331
 
@@ -1333,7 +1333,7 @@ msgstr ""
1333
  msgid "Text Area Height"
1334
  msgstr ""
1335
 
1336
- #: widgets/contact/contact.php:426, widgets/hero/hero.php:87, widgets/layout-slider/layout-slider.php:53
1337
  msgid "Background"
1338
  msgstr ""
1339
 
@@ -1349,7 +1349,7 @@ msgstr ""
1349
  msgid "Field descriptions"
1350
  msgstr ""
1351
 
1352
- #: widgets/contact/contact.php:481, widgets/contact/contact.php:628, widgets/google-map/google-map.php:300, widgets/headline/headline.php:183
1353
  msgid "Style"
1354
  msgstr ""
1355
 
@@ -1457,35 +1457,35 @@ msgstr ""
1457
  msgid "Please write something"
1458
  msgstr ""
1459
 
1460
- #: widgets/contact/contact.php:1022
1461
  msgid "Invalid email address."
1462
  msgstr ""
1463
 
1464
- #: widgets/contact/contact.php:1101
1465
  msgid "Error sending email, please try again later."
1466
  msgstr ""
1467
 
1468
- #: widgets/contact/contact.php:1127
1469
  msgid "A valid email is required"
1470
  msgstr ""
1471
 
1472
- #: widgets/contact/contact.php:1129
1473
  msgid "The email address is invalid"
1474
  msgstr ""
1475
 
1476
- #: widgets/contact/contact.php:1133
1477
  msgid "Missing subject"
1478
  msgstr ""
1479
 
1480
- #: widgets/contact/contact.php:1167
1481
  msgid "Error validating your Captcha response."
1482
  msgstr ""
1483
 
1484
- #: widgets/contact/contact.php:1199
1485
  msgid "Unfortunately our system identified your message as spam."
1486
  msgstr ""
1487
 
1488
- #: widgets/contact/contact.php:1207
1489
  msgctxt "The name of who sent this email"
1490
  msgid "From"
1491
  msgstr ""
@@ -1518,7 +1518,7 @@ msgstr ""
1518
  msgid "Button align"
1519
  msgstr ""
1520
 
1521
- #: widgets/cta/cta.php:112, widgets/hero/hero.php:66, widgets/hero/hero.php:78
1522
  msgid "Button"
1523
  msgstr ""
1524
 
@@ -1646,7 +1646,7 @@ msgstr ""
1646
  msgid "Open more URL in a new window"
1647
  msgstr ""
1648
 
1649
- #: widgets/features/features.php:298, widgets/hero/hero.php:434, widgets/layout-slider/layout-slider.php:323, widgets/social-media-buttons/social-media-buttons.php:33
1650
  msgid "Responsive Breakpoint"
1651
  msgstr ""
1652
 
@@ -1666,379 +1666,375 @@ msgstr ""
1666
  msgid "A Google Maps widget."
1667
  msgstr ""
1668
 
1669
- #: widgets/google-map/google-map.php:37
1670
  msgid "Map center"
1671
  msgstr ""
1672
 
1673
- #: widgets/google-map/google-map.php:39
1674
  msgid "The name of a place, town, city, or even a country. Can be an exact address too. Please ensure you have enabled the <strong>Geocoding API</strong> in the %sGoogle APIs Dashboard%s."
1675
  msgstr ""
1676
 
1677
- #: widgets/google-map/google-map.php:46, widgets/google-map/google-map.php:51, widgets/google-map/google-map.php:437
1678
  msgid "API key"
1679
  msgstr ""
1680
 
1681
- #: widgets/google-map/google-map.php:54
1682
  msgid "Enter your %sAPI key%s. Your map may not function correctly without one."
1683
  msgstr ""
1684
 
1685
- #: widgets/google-map/google-map.php:65
1686
  msgid "Set map display options."
1687
  msgstr ""
1688
 
1689
- #: widgets/google-map/google-map.php:70
1690
  msgid "Map type"
1691
  msgstr ""
1692
 
1693
- #: widgets/google-map/google-map.php:76
1694
  msgid "Interactive"
1695
  msgstr ""
1696
 
1697
- #: widgets/google-map/google-map.php:77
1698
  msgid "Static image"
1699
  msgstr ""
1700
 
1701
- #: widgets/google-map/google-map.php:117
1702
  msgid "Zoom level"
1703
  msgstr ""
1704
 
1705
- #: widgets/google-map/google-map.php:118
1706
  msgid "A value from 0 (the world) to 21 (street level)."
1707
  msgstr ""
1708
 
1709
- #: widgets/google-map/google-map.php:132
1710
  msgid "Scroll to zoom"
1711
  msgstr ""
1712
 
1713
- #: widgets/google-map/google-map.php:133
1714
  msgid "Allow scrolling over the map to zoom in or out."
1715
  msgstr ""
1716
 
1717
- #: widgets/google-map/google-map.php:142
1718
  msgid "Draggable"
1719
  msgstr ""
1720
 
1721
- #: widgets/google-map/google-map.php:143
1722
  msgid "Allow dragging the map to move it around."
1723
  msgstr ""
1724
 
1725
- #: widgets/google-map/google-map.php:152
1726
  msgid "Disable default UI"
1727
  msgstr ""
1728
 
1729
- #: widgets/google-map/google-map.php:153
1730
  msgid "Hides the default Google Maps controls."
1731
  msgstr ""
1732
 
1733
- #: widgets/google-map/google-map.php:162
1734
  msgid "Keep map centered"
1735
  msgstr ""
1736
 
1737
- #: widgets/google-map/google-map.php:163
1738
  msgid "Keeps the map centered when it's container is resized."
1739
  msgstr ""
1740
 
1741
- #: widgets/google-map/google-map.php:167
1742
  msgid "Fallback Image"
1743
  msgstr ""
1744
 
1745
- #: widgets/google-map/google-map.php:168
1746
  msgid "This image will be displayed if there are any problems with displaying the specified map."
1747
  msgstr ""
1748
 
1749
- #: widgets/google-map/google-map.php:173
1750
  msgid "Fallback Image Size"
1751
  msgstr ""
1752
 
1753
- #: widgets/google-map/google-map.php:179
1754
  msgid "Markers"
1755
  msgstr ""
1756
 
1757
- #: widgets/google-map/google-map.php:181
1758
  msgid "Use markers to identify points of interest on the map."
1759
  msgstr ""
1760
 
1761
- #: widgets/google-map/google-map.php:186
1762
  msgid "Show marker at map center"
1763
  msgstr ""
1764
 
1765
- #: widgets/google-map/google-map.php:191
1766
  msgid "Marker icon"
1767
  msgstr ""
1768
 
1769
- #: widgets/google-map/google-map.php:192
1770
  msgid "Replaces the default map marker with your own image."
1771
  msgstr ""
1772
 
1773
- #: widgets/google-map/google-map.php:201
1774
  msgid "Draggable markers"
1775
  msgstr ""
1776
 
1777
- #: widgets/google-map/google-map.php:205
1778
  msgid "Marker positions"
1779
  msgstr ""
1780
 
1781
- #: widgets/google-map/google-map.php:206
1782
- msgid "Please be aware that adding more than 10 markers may cause a slight delay before they appear, due to Google Geocoding API rate limits."
1783
- msgstr ""
1784
-
1785
- #: widgets/google-map/google-map.php:207
1786
  msgid "Marker"
1787
  msgstr ""
1788
 
1789
- #: widgets/google-map/google-map.php:217
1790
  msgid "Place"
1791
  msgstr ""
1792
 
1793
- #: widgets/google-map/google-map.php:222
1794
  msgid "Info Window Content"
1795
  msgstr ""
1796
 
1797
- #: widgets/google-map/google-map.php:226
1798
  msgid "Info Window max width"
1799
  msgstr ""
1800
 
1801
- #: widgets/google-map/google-map.php:231
1802
  msgid "Custom Marker icon"
1803
  msgstr ""
1804
 
1805
- #: widgets/google-map/google-map.php:232
1806
  msgid "Replace the default map marker with your own image for each marker."
1807
  msgstr ""
1808
 
1809
- #: widgets/google-map/google-map.php:238
1810
  msgid "When should Info Windows be displayed?"
1811
  msgstr ""
1812
 
1813
- #: widgets/google-map/google-map.php:241
1814
  msgid "Click"
1815
  msgstr ""
1816
 
1817
- #: widgets/google-map/google-map.php:242
1818
  msgid "Mouse over"
1819
  msgstr ""
1820
 
1821
- #: widgets/google-map/google-map.php:243
1822
  msgid "Always"
1823
  msgstr ""
1824
 
1825
- #: widgets/google-map/google-map.php:248
1826
  msgid "Allow multiple simultaneous Info Windows?"
1827
  msgstr ""
1828
 
1829
- #: widgets/google-map/google-map.php:256
1830
  msgid "Styles"
1831
  msgstr ""
1832
 
1833
- #: widgets/google-map/google-map.php:258
1834
  msgid "Apply custom colors to map features, or hide them completely."
1835
  msgstr ""
1836
 
1837
- #: widgets/google-map/google-map.php:263
1838
  msgid "Map styles"
1839
  msgstr ""
1840
 
1841
- #: widgets/google-map/google-map.php:270
1842
  msgid "Custom"
1843
  msgstr ""
1844
 
1845
- #: widgets/google-map/google-map.php:271
1846
  msgid "Predefined Styles"
1847
  msgstr ""
1848
 
1849
- #: widgets/google-map/google-map.php:280
1850
  msgid "Styled map name"
1851
  msgstr ""
1852
 
1853
- #: widgets/google-map/google-map.php:290
1854
  msgid "Raw JSON styles"
1855
  msgstr ""
1856
 
1857
- #: widgets/google-map/google-map.php:291
1858
  msgid "Copy and paste predefined styles here from <a href=\"http://snazzymaps.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Snazzy Maps</a>."
1859
  msgstr ""
1860
 
1861
- #: widgets/google-map/google-map.php:299
1862
  msgid "Custom map styles"
1863
  msgstr ""
1864
 
1865
- #: widgets/google-map/google-map.php:310
1866
  msgid "Select map feature to style"
1867
  msgstr ""
1868
 
1869
- #: widgets/google-map/google-map.php:312
1870
  msgid "Water"
1871
  msgstr ""
1872
 
1873
- #: widgets/google-map/google-map.php:313
1874
  msgid "Highways"
1875
  msgstr ""
1876
 
1877
- #: widgets/google-map/google-map.php:314
1878
  msgid "Arterial roads"
1879
  msgstr ""
1880
 
1881
- #: widgets/google-map/google-map.php:315
1882
  msgid "Local roads"
1883
  msgstr ""
1884
 
1885
- #: widgets/google-map/google-map.php:316
1886
  msgid "Transit lines"
1887
  msgstr ""
1888
 
1889
- #: widgets/google-map/google-map.php:317
1890
  msgid "Transit stations"
1891
  msgstr ""
1892
 
1893
- #: widgets/google-map/google-map.php:318
1894
  msgid "Man-made landscape"
1895
  msgstr ""
1896
 
1897
- #: widgets/google-map/google-map.php:319
1898
  msgid "Natural landscape landcover"
1899
  msgstr ""
1900
 
1901
- #: widgets/google-map/google-map.php:320
1902
  msgid "Natural landscape terrain"
1903
  msgstr ""
1904
 
1905
- #: widgets/google-map/google-map.php:321
1906
  msgid "Point of interest - Attractions"
1907
  msgstr ""
1908
 
1909
- #: widgets/google-map/google-map.php:322
1910
  msgid "Point of interest - Business"
1911
  msgstr ""
1912
 
1913
- #: widgets/google-map/google-map.php:323
1914
  msgid "Point of interest - Government"
1915
  msgstr ""
1916
 
1917
- #: widgets/google-map/google-map.php:324
1918
  msgid "Point of interest - Medical"
1919
  msgstr ""
1920
 
1921
- #: widgets/google-map/google-map.php:325
1922
  msgid "Point of interest - Parks"
1923
  msgstr ""
1924
 
1925
- #: widgets/google-map/google-map.php:326
1926
  msgid "Point of interest - Places of worship"
1927
  msgstr ""
1928
 
1929
- #: widgets/google-map/google-map.php:327
1930
  msgid "Point of interest - Schools"
1931
  msgstr ""
1932
 
1933
- #: widgets/google-map/google-map.php:328
1934
  msgid "Point of interest - Sports complexes"
1935
  msgstr ""
1936
 
1937
- #: widgets/google-map/google-map.php:333
1938
  msgid "Select element type to style"
1939
  msgstr ""
1940
 
1941
- #: widgets/google-map/google-map.php:335
1942
  msgid "Geometry"
1943
  msgstr ""
1944
 
1945
- #: widgets/google-map/google-map.php:336
1946
  msgid "Labels"
1947
  msgstr ""
1948
 
1949
- #: widgets/google-map/google-map.php:343
1950
  msgid "Visible"
1951
  msgstr ""
1952
 
1953
- #: widgets/google-map/google-map.php:355
1954
  msgid "Directions"
1955
  msgstr ""
1956
 
1957
- #: widgets/google-map/google-map.php:362
1958
  msgid "Display a route on your map, with waypoints between your starting point and destination. Please ensure you have enabled the <strong>Directions API</strong> in the %sGoogle APIs Dashboard%s."
1959
  msgstr ""
1960
 
1961
- #: widgets/google-map/google-map.php:369
1962
  msgid "Starting point"
1963
  msgstr ""
1964
 
1965
- #: widgets/google-map/google-map.php:373
1966
  msgid "Destination"
1967
  msgstr ""
1968
 
1969
- #: widgets/google-map/google-map.php:377
1970
  msgid "Travel mode"
1971
  msgstr ""
1972
 
1973
- #: widgets/google-map/google-map.php:380
1974
  msgid "Driving"
1975
  msgstr ""
1976
 
1977
- #: widgets/google-map/google-map.php:381
1978
  msgid "Walking"
1979
  msgstr ""
1980
 
1981
- #: widgets/google-map/google-map.php:382
1982
  msgid "Bicycling"
1983
  msgstr ""
1984
 
1985
- #: widgets/google-map/google-map.php:383
1986
  msgid "Transit"
1987
  msgstr ""
1988
 
1989
- #: widgets/google-map/google-map.php:388
1990
  msgid "Avoid highways"
1991
  msgstr ""
1992
 
1993
- #: widgets/google-map/google-map.php:392
1994
  msgid "Avoid tolls"
1995
  msgstr ""
1996
 
1997
- #: widgets/google-map/google-map.php:396
1998
  msgid "Preserve viewport"
1999
  msgstr ""
2000
 
2001
- #: widgets/google-map/google-map.php:397
2002
  msgid "This will prevent the map from centering and zooming around the directions. Use this when you have other markers or features on your map."
2003
  msgstr ""
2004
 
2005
- #: widgets/google-map/google-map.php:401
2006
  msgid "Waypoints"
2007
  msgstr ""
2008
 
2009
- #: widgets/google-map/google-map.php:402
2010
  msgid "Waypoint"
2011
  msgstr ""
2012
 
2013
- #: widgets/google-map/google-map.php:412, widgets/testimonial/testimonial.php:66
2014
  msgid "Location"
2015
  msgstr ""
2016
 
2017
- #: widgets/google-map/google-map.php:417
2018
  msgid "Stopover"
2019
  msgstr ""
2020
 
2021
- #: widgets/google-map/google-map.php:418
2022
  msgid "Whether or not this is a stop on the route or just a route preference."
2023
  msgstr ""
2024
 
2025
- #: widgets/google-map/google-map.php:424
2026
  msgid "Optimize waypoints"
2027
  msgstr ""
2028
 
2029
- #: widgets/google-map/google-map.php:426
2030
  msgid "Allow the Google Maps service to reorder waypoints for the shortest travelling distance."
2031
  msgstr ""
2032
 
2033
- #: widgets/google-map/google-map.php:440
2034
  msgid "Enter your %sAPI key%s. Your map won't function correctly without one."
2035
  msgstr ""
2036
 
2037
- #: widgets/google-map/google-map.php:546
2038
  msgid "There were no results for the place you entered. Please try another."
2039
  msgstr ""
2040
 
2041
- #: widgets/google-map/google-map.php:602
2042
  msgid "Custom Map"
2043
  msgstr ""
2044
 
@@ -2054,96 +2050,96 @@ msgstr ""
2054
  msgid "A headline widget."
2055
  msgstr ""
2056
 
2057
- #: widgets/headline/headline.php:36, widgets/headline/headline.php:236
2058
  msgid "Headline"
2059
  msgstr ""
2060
 
2061
- #: widgets/headline/headline.php:54, widgets/headline/headline.php:125
2062
  msgid "HTML Tag"
2063
  msgstr ""
2064
 
2065
- #: widgets/headline/headline.php:57, widgets/headline/headline.php:128
2066
  msgid "H1"
2067
  msgstr ""
2068
 
2069
- #: widgets/headline/headline.php:58, widgets/headline/headline.php:129
2070
  msgid "H2"
2071
  msgstr ""
2072
 
2073
- #: widgets/headline/headline.php:59, widgets/headline/headline.php:130
2074
  msgid "H3"
2075
  msgstr ""
2076
 
2077
- #: widgets/headline/headline.php:60, widgets/headline/headline.php:131
2078
  msgid "H4"
2079
  msgstr ""
2080
 
2081
- #: widgets/headline/headline.php:61, widgets/headline/headline.php:132
2082
  msgid "H5"
2083
  msgstr ""
2084
 
2085
- #: widgets/headline/headline.php:62, widgets/headline/headline.php:133
2086
  msgid "H6"
2087
  msgstr ""
2088
 
2089
- #: widgets/headline/headline.php:63, widgets/headline/headline.php:134
2090
  msgid "Paragraph"
2091
  msgstr ""
2092
 
2093
- #: widgets/headline/headline.php:72, widgets/headline/headline.php:143
2094
  msgid "Hover Color"
2095
  msgstr ""
2096
 
2097
- #: widgets/headline/headline.php:85, widgets/headline/headline.php:156, widgets/headline/headline.php:211, widgets/icon/icon.php:46
2098
  msgid "Alignment"
2099
  msgstr ""
2100
 
2101
- #: widgets/headline/headline.php:96, widgets/headline/headline.php:167
2102
  msgid "Line Height"
2103
  msgstr ""
2104
 
2105
- #: widgets/headline/headline.php:100, widgets/headline/headline.php:171, widgets/headline/headline.php:226
2106
  msgid "Top and Bottom Margin"
2107
  msgstr ""
2108
 
2109
- #: widgets/headline/headline.php:107
2110
  msgid "Sub headline"
2111
  msgstr ""
2112
 
2113
- #: widgets/headline/headline.php:178, widgets/headline/headline.php:237
2114
  msgid "Divider"
2115
  msgstr ""
2116
 
2117
- #: widgets/headline/headline.php:204
2118
  msgid "Thickness"
2119
  msgstr ""
2120
 
2121
- #: widgets/headline/headline.php:221
2122
  msgid "Divider Width"
2123
  msgstr ""
2124
 
2125
- #: widgets/headline/headline.php:234
2126
  msgid "Element Order"
2127
  msgstr ""
2128
 
2129
- #: widgets/headline/headline.php:238
2130
  msgid "Sub Headline"
2131
  msgstr ""
2132
 
2133
- #: widgets/headline/headline.php:245, widgets/hero/hero.php:218
2134
  msgid "Use FitText"
2135
  msgstr ""
2136
 
2137
- #: widgets/headline/headline.php:246, widgets/hero/hero.php:219
2138
  msgid "Dynamically adjust your heading font size based on screen size."
2139
  msgstr ""
2140
 
2141
- #: widgets/headline/headline.php:259, widgets/hero/hero.php:232
2142
  msgid "FitText Compressor Strength"
2143
  msgstr ""
2144
 
2145
- #: widgets/headline/headline.php:260, widgets/hero/hero.php:233
2146
- msgid "The lower the value, the more your headings will be scaled down. Values above 1 are allowed."
2147
  msgstr ""
2148
 
2149
  #: widgets/hero/hero.php:4, widgets/hero/hero.php:21
@@ -2154,123 +2150,123 @@ msgstr ""
2154
  msgid "SiteOrigin Hero"
2155
  msgstr ""
2156
 
2157
- #: widgets/hero/hero.php:48
2158
  msgid "Hero frames"
2159
  msgstr ""
2160
 
2161
- #: widgets/hero/hero.php:49, widgets/layout-slider/layout-slider.php:36, widgets/slider/slider.php:35
2162
  msgid "Frame"
2163
  msgstr ""
2164
 
2165
- #: widgets/hero/hero.php:65, widgets/taxonomy/taxonomy.php:50
2166
  msgid "Buttons"
2167
  msgstr ""
2168
 
2169
- #: widgets/hero/hero.php:67
2170
  msgid "Add [buttons] shortcode to the content to insert these buttons."
2171
  msgstr ""
2172
 
2173
- #: widgets/hero/hero.php:91, widgets/layout-slider/layout-slider.php:57, widgets/slider/slider.php:57
2174
  msgid "Background image"
2175
  msgstr ""
2176
 
2177
- #: widgets/hero/hero.php:98, widgets/image-grid/image-grid.php:87, widgets/image/image.php:39, widgets/testimonial/testimonial.php:131, widgets/testimonial/testimonial.php:160, widgets/testimonial/testimonial.php:202
2178
  msgid "Image size"
2179
  msgstr ""
2180
 
2181
- #: widgets/hero/hero.php:103, widgets/layout-slider/layout-slider.php:64, widgets/slider/slider.php:68
2182
  msgid "Background image type"
2183
  msgstr ""
2184
 
2185
- #: widgets/hero/hero.php:105, widgets/slider/slider.php:70
2186
  msgid "Cover"
2187
  msgstr ""
2188
 
2189
- #: widgets/hero/hero.php:111, widgets/layout-slider/layout-slider.php:73
2190
  msgid "Background image opacity"
2191
  msgstr ""
2192
 
2193
- #: widgets/hero/hero.php:131, widgets/layout-slider/layout-slider.php:93
2194
  msgid "Open URL in a new window"
2195
  msgstr ""
2196
 
2197
- #: widgets/hero/hero.php:136, widgets/layout-slider/layout-slider.php:98, widgets/slider/slider.php:44
2198
  msgid "Video"
2199
  msgstr ""
2200
 
2201
- #: widgets/hero/hero.php:137, widgets/layout-slider/layout-slider.php:99, widgets/slider/slider.php:45
2202
  msgid "Background videos"
2203
  msgstr ""
2204
 
2205
- #: widgets/hero/hero.php:152, widgets/layout-slider/layout-slider.php:114
2206
  msgid "Slider Controls"
2207
  msgstr ""
2208
 
2209
- #: widgets/hero/hero.php:158, widgets/layout-slider/layout-slider.php:120
2210
  msgid "Design and Layout"
2211
  msgstr ""
2212
 
2213
- #: widgets/hero/hero.php:169, widgets/layout-slider/layout-slider.php:130
2214
  msgid "Responsive Height"
2215
  msgstr ""
2216
 
2217
- #: widgets/hero/hero.php:175, widgets/layout-slider/layout-slider.php:135
2218
  msgid "Top and bottom padding"
2219
  msgstr ""
2220
 
2221
- #: widgets/hero/hero.php:181, widgets/layout-slider/layout-slider.php:141
2222
  msgid "Extra top padding"
2223
  msgstr ""
2224
 
2225
- #: widgets/hero/hero.php:182, widgets/layout-slider/layout-slider.php:142
2226
  msgid "Additional padding added to the top of the slider"
2227
  msgstr ""
2228
 
2229
- #: widgets/hero/hero.php:188, widgets/layout-slider/layout-slider.php:148
2230
  msgid "Side padding"
2231
  msgstr ""
2232
 
2233
- #: widgets/hero/hero.php:194, widgets/layout-slider/layout-slider.php:154
2234
  msgid "Maximum container width"
2235
  msgstr ""
2236
 
2237
- #: widgets/hero/hero.php:200
2238
  msgid "Heading font"
2239
  msgstr ""
2240
 
2241
- #: widgets/hero/hero.php:206, widgets/layout-slider/layout-slider.php:160
2242
  msgid "Heading color"
2243
  msgstr ""
2244
 
2245
- #: widgets/hero/hero.php:212, widgets/layout-slider/layout-slider.php:166
2246
  msgid "Heading size"
2247
  msgstr ""
2248
 
2249
- #: widgets/hero/hero.php:243, widgets/layout-slider/layout-slider.php:172
2250
  msgid "Heading shadow intensity"
2251
  msgstr ""
2252
 
2253
- #: widgets/hero/hero.php:256, widgets/layout-slider/layout-slider.php:180
2254
  msgid "Text size"
2255
  msgstr ""
2256
 
2257
- #: widgets/hero/hero.php:261
2258
  msgid "Text font"
2259
  msgstr ""
2260
 
2261
- #: widgets/hero/hero.php:266
2262
  msgid "Text shadow intensity"
2263
  msgstr ""
2264
 
2265
- #: widgets/hero/hero.php:275
2266
  msgid "Link color"
2267
  msgstr ""
2268
 
2269
- #: widgets/hero/hero.php:280
2270
  msgid "Link Hover Color"
2271
  msgstr ""
2272
 
2273
- #: widgets/hero/hero.php:436
2274
  msgid "This setting controls when the Hero widget will switch to the responsive height for slides. This breakpoint will only be used if a responsive height is set in the hero settings. The default value is 780px"
2275
  msgstr ""
2276
 
@@ -2679,130 +2675,150 @@ msgid "AngelList"
2679
  msgstr ""
2680
 
2681
  #: widgets/social-media-buttons/data/networks.php:104
2682
- msgid "Behance"
2683
  msgstr ""
2684
 
2685
  #: widgets/social-media-buttons/data/networks.php:110
2686
- msgid "Bitbucket"
2687
  msgstr ""
2688
 
2689
  #: widgets/social-media-buttons/data/networks.php:116
2690
- msgid "Codepen"
2691
  msgstr ""
2692
 
2693
  #: widgets/social-media-buttons/data/networks.php:122
2694
- msgid "Delicious"
2695
  msgstr ""
2696
 
2697
  #: widgets/social-media-buttons/data/networks.php:128
2698
- msgid "deviantArt"
2699
  msgstr ""
2700
 
2701
  #: widgets/social-media-buttons/data/networks.php:134
2702
- msgid "Dribbble"
2703
  msgstr ""
2704
 
2705
  #: widgets/social-media-buttons/data/networks.php:140
2706
- msgid "Dropbox"
2707
  msgstr ""
2708
 
2709
  #: widgets/social-media-buttons/data/networks.php:146
2710
- msgid "Foursquare"
2711
  msgstr ""
2712
 
2713
  #: widgets/social-media-buttons/data/networks.php:152
2714
- msgid "Github"
2715
  msgstr ""
2716
 
2717
  #: widgets/social-media-buttons/data/networks.php:158
2718
- msgid "Gratipay"
2719
  msgstr ""
2720
 
2721
  #: widgets/social-media-buttons/data/networks.php:164
2722
- msgid "Hacker News"
2723
  msgstr ""
2724
 
2725
  #: widgets/social-media-buttons/data/networks.php:170
2726
- msgid "JSFiddle"
2727
  msgstr ""
2728
 
2729
  #: widgets/social-media-buttons/data/networks.php:176
2730
- msgid "Last.fm"
2731
  msgstr ""
2732
 
2733
  #: widgets/social-media-buttons/data/networks.php:182
2734
- msgid "Reddit"
2735
  msgstr ""
2736
 
2737
  #: widgets/social-media-buttons/data/networks.php:188
2738
- msgid "Slack"
2739
  msgstr ""
2740
 
2741
  #: widgets/social-media-buttons/data/networks.php:194
2742
- msgid "Slideshare"
2743
  msgstr ""
2744
 
2745
  #: widgets/social-media-buttons/data/networks.php:200
2746
- msgid "Soundcloud"
2747
  msgstr ""
2748
 
2749
  #: widgets/social-media-buttons/data/networks.php:206
2750
- msgid "Spotify"
2751
  msgstr ""
2752
 
2753
  #: widgets/social-media-buttons/data/networks.php:212
2754
- msgid "Stack Exchange"
2755
  msgstr ""
2756
 
2757
  #: widgets/social-media-buttons/data/networks.php:218
2758
- msgid "Stack Overflow"
2759
  msgstr ""
2760
 
2761
  #: widgets/social-media-buttons/data/networks.php:224
2762
- msgid "Steam"
2763
  msgstr ""
2764
 
2765
  #: widgets/social-media-buttons/data/networks.php:230
2766
- msgid "StumbleUpon"
2767
  msgstr ""
2768
 
2769
  #: widgets/social-media-buttons/data/networks.php:236
2770
- msgid "Trello"
2771
  msgstr ""
2772
 
2773
  #: widgets/social-media-buttons/data/networks.php:242
2774
- msgid "TripAdvisor"
2775
  msgstr ""
2776
 
2777
  #: widgets/social-media-buttons/data/networks.php:248
2778
- msgid "Twitch"
2779
  msgstr ""
2780
 
2781
  #: widgets/social-media-buttons/data/networks.php:254
2782
- msgid "Vimeo"
2783
  msgstr ""
2784
 
2785
  #: widgets/social-media-buttons/data/networks.php:260
2786
- msgid "WhatsApp"
2787
  msgstr ""
2788
 
2789
  #: widgets/social-media-buttons/data/networks.php:266
2790
- msgid "WordPress"
2791
  msgstr ""
2792
 
2793
  #: widgets/social-media-buttons/data/networks.php:272
2794
- msgid "Xing"
2795
  msgstr ""
2796
 
2797
  #: widgets/social-media-buttons/data/networks.php:278
2798
- msgid "Yahoo"
2799
  msgstr ""
2800
 
2801
  #: widgets/social-media-buttons/data/networks.php:284
2802
- msgid "Yelp"
2803
  msgstr ""
2804
 
2805
  #: widgets/social-media-buttons/data/networks.php:290
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2806
  msgid "YouTube"
2807
  msgstr ""
2808
 
8
  "Content-Transfer-Encoding: 8bit\n"
9
  "Language-Team: SiteOrigin <support@siteorigin.com>\n"
10
  "Last-Translator: SiteOrigin <support@siteorigin.com>\n"
11
+ "Report-Msgid-Bugs-To: http://www.siteorigin.com/thread\n"
12
  "X-Poedit-Basepath: ..\n"
13
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
14
  "X-Poedit-SearchPath-0: .\n"
24
  msgid "Filter Widgets"
25
  msgstr ""
26
 
27
+ #: admin/tpl/admin.php:17, base/inc/fields/posts.class.php:12, widgets/google-map/google-map.php:346
28
  msgid "All"
29
  msgstr ""
30
 
48
  msgid "Deactivate"
49
  msgstr ""
50
 
51
+ #: admin/tpl/admin.php:90, widgets/contact/contact.php:59, widgets/google-map/google-map.php:73, widgets/testimonial/testimonial.php:100
52
  msgid "Settings"
53
  msgstr ""
54
 
80
  msgid "Invalid post."
81
  msgstr ""
82
 
83
+ #: base/inc/actions.php:50, base/siteorigin-widget.class.php:660
84
  msgid "Widget Preview"
85
  msgstr ""
86
 
353
  msgid "Sticky posts"
354
  msgstr ""
355
 
356
+ #: base/inc/fields/posts.class.php:116, compat/beaver-builder/beaver-builder.php:66, widgets/google-map/google-map.php:278, widgets/image/image.php:47, widgets/image/image.php:59
357
  msgid "Default"
358
  msgstr ""
359
 
529
  msgid "previous slide"
530
  msgstr ""
531
 
532
+ #: base/siteorigin-widget.class.php:504
533
  msgid "Preview"
534
  msgstr ""
535
 
536
+ #: base/siteorigin-widget.class.php:509
537
  msgid "Help"
538
  msgstr ""
539
 
540
+ #: base/siteorigin-widget.class.php:575
541
  msgid "This widget has scripts and styles that need to be loaded before you can use it. Please save and reload your current page."
542
  msgstr ""
543
 
544
+ #: base/siteorigin-widget.class.php:576
545
  msgid "You will only need to do this once."
546
  msgstr ""
547
 
548
+ #: base/siteorigin-widget.class.php:603
549
  msgid "Are you sure?"
550
  msgstr ""
551
 
552
+ #: base/siteorigin-widget.class.php:605
553
  msgid "There is a newer version of this widget's content available."
554
  msgstr ""
555
 
556
+ #: base/siteorigin-widget.class.php:606, base/siteorigin-widget.class.php:610
557
  msgid "Restore"
558
  msgstr ""
559
 
560
+ #: base/siteorigin-widget.class.php:607
561
  msgid "Dismiss"
562
  msgstr ""
563
 
564
+ #: base/siteorigin-widget.class.php:609
565
  msgid "Clicking %s will replace the current widget contents. You can revert by refreshing the page before updating."
566
  msgstr ""
567
 
568
+ #: compat/beaver-builder/beaver-builder.php:65
569
  msgid "Clear"
570
  msgstr ""
571
 
572
+ #: compat/beaver-builder/beaver-builder.php:67
573
  msgid "Select Color"
574
  msgstr ""
575
 
576
+ #: compat/beaver-builder/beaver-builder.php:68
577
  msgid "Current Color"
578
  msgstr ""
579
 
621
  msgid "Regular"
622
  msgstr ""
623
 
624
+ #: icons/fontawesome/filter.php:1343, widgets/contact/contact.php:330, widgets/contact/contact.php:447, widgets/contact/contact.php:555, widgets/contact/contact.php:633, widgets/headline/headline.php:189
625
  msgid "Solid"
626
  msgstr ""
627
 
705
  msgid "Panels"
706
  msgstr ""
707
 
708
+ #: widgets/accordion/accordion.php:64, widgets/hero/hero.php:62, widgets/layout-slider/layout-slider.php:48, widgets/tabs/tabs.php:64
709
  msgid "Content"
710
  msgstr ""
711
 
733
  msgid "Headings"
734
  msgstr ""
735
 
736
+ #: widgets/accordion/accordion.php:90, widgets/accordion/accordion.php:128, widgets/contact/contact.php:303, widgets/contact/contact.php:536, widgets/cta/cta.php:78, widgets/hero/hero.php:122, widgets/layout-slider/layout-slider.php:82, widgets/social-media-buttons/social-media-buttons.php:86, widgets/tabs/tabs.php:86, widgets/tabs/tabs.php:106, widgets/tabs/tabs.php:150
737
  msgid "Background color"
738
  msgstr ""
739
 
769
  msgid "Bottom margin"
770
  msgstr ""
771
 
772
+ #: widgets/accordion/accordion.php:237
773
  msgid "Get more customization options and the ability to use widgets and layouts as your accordion content with %sSiteOrigin Premium%s"
774
  msgstr ""
775
 
789
  msgid "Button text"
790
  msgstr ""
791
 
792
+ #: widgets/button/button.php:51, widgets/google-map/google-map.php:107, widgets/headline/headline.php:47, widgets/headline/headline.php:118, widgets/hero/hero.php:128, widgets/icon/icon.php:57, widgets/image/image.php:89, widgets/layout-slider/layout-slider.php:88, widgets/simple-masonry/simple-masonry.php:79, widgets/slider/slider.php:85
793
  msgid "Destination URL"
794
  msgstr ""
795
 
796
+ #: widgets/button/button.php:57, widgets/google-map/google-map.php:118, widgets/headline/headline.php:52, widgets/headline/headline.php:123, widgets/icon/icon.php:63, widgets/simple-masonry/simple-masonry.php:84, widgets/social-media-buttons/social-media-buttons.php:97, widgets/taxonomy/taxonomy.php:65
797
  msgid "Open in a new window"
798
  msgstr ""
799
 
821
  msgid "Top"
822
  msgstr ""
823
 
824
+ #: widgets/button/button.php:86, widgets/button/button.php:112, widgets/contact/contact.php:368, widgets/contact/contact.php:383, widgets/contact/contact.php:607, widgets/cta/cta.php:103, widgets/features/features.php:65, widgets/headline/headline.php:92, widgets/headline/headline.php:163, widgets/headline/headline.php:218, widgets/icon/icon.php:50, widgets/image/image.php:49, widgets/image/image.php:61, widgets/social-media-buttons/social-media-buttons.php:153, widgets/social-media-buttons/social-media-buttons.php:164, widgets/testimonial/testimonial.php:255
825
  msgid "Right"
826
  msgstr ""
827
 
829
  msgid "Bottom"
830
  msgstr ""
831
 
832
+ #: widgets/button/button.php:88, widgets/button/button.php:111, widgets/contact/contact.php:367, widgets/contact/contact.php:382, widgets/contact/contact.php:606, widgets/cta/cta.php:102, widgets/features/features.php:67, widgets/headline/headline.php:91, widgets/headline/headline.php:162, widgets/headline/headline.php:217, widgets/icon/icon.php:49, widgets/image/image.php:48, widgets/image/image.php:60, widgets/social-media-buttons/social-media-buttons.php:152, widgets/social-media-buttons/social-media-buttons.php:163, widgets/testimonial/testimonial.php:254
833
  msgid "Left"
834
  msgstr ""
835
 
837
  msgid "Design and layout"
838
  msgstr ""
839
 
840
+ #: widgets/button/button.php:102, widgets/contact/contact.php:374, widgets/contact/contact.php:599, widgets/contact/contact.php:650, widgets/google-map/google-map.php:98
841
  msgid "Width"
842
  msgstr ""
843
 
849
  msgid "Align"
850
  msgstr ""
851
 
852
+ #: widgets/button/button.php:113, widgets/contact/contact.php:384, widgets/contact/contact.php:608, widgets/headline/headline.php:90, widgets/headline/headline.php:161, widgets/headline/headline.php:216, widgets/icon/icon.php:48, widgets/image/image.php:50, widgets/image/image.php:62, widgets/social-media-buttons/social-media-buttons.php:154, widgets/social-media-buttons/social-media-buttons.php:165
853
  msgid "Center"
854
  msgstr ""
855
 
856
+ #: widgets/button/button.php:114, widgets/contact/contact.php:385, widgets/headline/headline.php:93, widgets/headline/headline.php:164, widgets/social-media-buttons/social-media-buttons.php:155, widgets/social-media-buttons/social-media-buttons.php:166
857
  msgid "Justify"
858
  msgstr ""
859
 
877
  msgid "Button color"
878
  msgstr ""
879
 
880
+ #: widgets/button/button.php:137, widgets/contact/contact.php:574, widgets/hero/hero.php:253, widgets/layout-slider/layout-slider.php:186
881
  msgid "Text color"
882
  msgstr ""
883
 
885
  msgid "Use hover effects"
886
  msgstr ""
887
 
888
+ #: widgets/button/button.php:148, widgets/contact/contact.php:347, widgets/contact/contact.php:397, widgets/features/features.php:138, widgets/features/features.php:159, widgets/features/features.php:180, widgets/headline/headline.php:78, widgets/headline/headline.php:149
889
  msgid "Font"
890
  msgstr ""
891
 
909
  msgid "Rounding"
910
  msgstr ""
911
 
912
+ #: widgets/button/button.php:168, widgets/contact/contact.php:326, widgets/contact/contact.php:443, widgets/contact/contact.php:554, widgets/contact/contact.php:639, widgets/headline/headline.php:188, widgets/social-media-buttons/social-media-buttons.php:130
913
  msgid "None"
914
  msgstr ""
915
 
1109
  msgid "Subject"
1110
  msgstr ""
1111
 
1112
+ #: widgets/contact/contact.php:152, widgets/features/features.php:111, widgets/features/features.php:154, widgets/headline/headline.php:43, widgets/headline/headline.php:114, widgets/price-table/price-table.php:111, widgets/taxonomy/taxonomy.php:51, widgets/testimonial/testimonial.php:82
1113
  msgid "Text"
1114
  msgstr ""
1115
 
1145
  msgid "Required Field"
1146
  msgstr ""
1147
 
1148
+ #: widgets/contact/contact.php:181, widgets/contact/contact.php:1013
1149
  msgid "Required field"
1150
  msgstr ""
1151
 
1261
  msgid "Hidden"
1262
  msgstr ""
1263
 
1264
+ #: widgets/contact/contact.php:328, widgets/contact/contact.php:445, widgets/contact/contact.php:556, widgets/contact/contact.php:631, widgets/headline/headline.php:190
1265
  msgid "Dotted"
1266
  msgstr ""
1267
 
1268
+ #: widgets/contact/contact.php:329, widgets/contact/contact.php:446, widgets/contact/contact.php:557, widgets/contact/contact.php:632, widgets/headline/headline.php:191
1269
  msgid "Dashed"
1270
  msgstr ""
1271
 
1272
+ #: widgets/contact/contact.php:331, widgets/contact/contact.php:448, widgets/contact/contact.php:634, widgets/headline/headline.php:192
1273
  msgid "Double"
1274
  msgstr ""
1275
 
1276
+ #: widgets/contact/contact.php:332, widgets/contact/contact.php:449, widgets/contact/contact.php:635, widgets/headline/headline.php:193
1277
  msgid "Groove"
1278
  msgstr ""
1279
 
1280
+ #: widgets/contact/contact.php:333, widgets/contact/contact.php:450, widgets/contact/contact.php:636, widgets/headline/headline.php:194
1281
  msgid "Ridge"
1282
  msgstr ""
1283
 
1284
+ #: widgets/contact/contact.php:334, widgets/contact/contact.php:451, widgets/contact/contact.php:637, widgets/headline/headline.php:195
1285
  msgid "Inset"
1286
  msgstr ""
1287
 
1288
+ #: widgets/contact/contact.php:335, widgets/contact/contact.php:452, widgets/contact/contact.php:638, widgets/headline/headline.php:196
1289
  msgid "Outset"
1290
  msgstr ""
1291
 
1293
  msgid "Field labels"
1294
  msgstr ""
1295
 
1296
+ #: widgets/contact/contact.php:357, widgets/contact/contact.php:476, widgets/contact/contact.php:645, widgets/features/features.php:147, widgets/features/features.php:168, widgets/features/features.php:189, widgets/google-map/google-map.php:356, widgets/headline/headline.php:70, widgets/headline/headline.php:141, widgets/headline/headline.php:201, widgets/icon/icon.php:36, widgets/taxonomy/taxonomy.php:56
1297
  msgid "Color"
1298
  msgstr ""
1299
 
1313
  msgid "Inside"
1314
  msgstr ""
1315
 
1316
+ #: widgets/contact/contact.php:402, widgets/headline/headline.php:83, widgets/headline/headline.php:154
1317
  msgid "Font Size"
1318
  msgstr ""
1319
 
1325
  msgid "Margin"
1326
  msgstr ""
1327
 
1328
+ #: widgets/contact/contact.php:418, widgets/google-map/google-map.php:103, widgets/hero/hero.php:165, widgets/layout-slider/layout-slider.php:125
1329
  msgid "Height"
1330
  msgstr ""
1331
 
1333
  msgid "Text Area Height"
1334
  msgstr ""
1335
 
1336
+ #: widgets/contact/contact.php:426, widgets/hero/hero.php:89, widgets/layout-slider/layout-slider.php:53
1337
  msgid "Background"
1338
  msgstr ""
1339
 
1349
  msgid "Field descriptions"
1350
  msgstr ""
1351
 
1352
+ #: widgets/contact/contact.php:481, widgets/contact/contact.php:628, widgets/google-map/google-map.php:309, widgets/headline/headline.php:185
1353
  msgid "Style"
1354
  msgstr ""
1355
 
1457
  msgid "Please write something"
1458
  msgstr ""
1459
 
1460
+ #: widgets/contact/contact.php:1025
1461
  msgid "Invalid email address."
1462
  msgstr ""
1463
 
1464
+ #: widgets/contact/contact.php:1104
1465
  msgid "Error sending email, please try again later."
1466
  msgstr ""
1467
 
1468
+ #: widgets/contact/contact.php:1130
1469
  msgid "A valid email is required"
1470
  msgstr ""
1471
 
1472
+ #: widgets/contact/contact.php:1132
1473
  msgid "The email address is invalid"
1474
  msgstr ""
1475
 
1476
+ #: widgets/contact/contact.php:1136
1477
  msgid "Missing subject"
1478
  msgstr ""
1479
 
1480
+ #: widgets/contact/contact.php:1170
1481
  msgid "Error validating your Captcha response."
1482
  msgstr ""
1483
 
1484
+ #: widgets/contact/contact.php:1202
1485
  msgid "Unfortunately our system identified your message as spam."
1486
  msgstr ""
1487
 
1488
+ #: widgets/contact/contact.php:1210
1489
  msgctxt "The name of who sent this email"
1490
  msgid "From"
1491
  msgstr ""
1518
  msgid "Button align"
1519
  msgstr ""
1520
 
1521
+ #: widgets/cta/cta.php:112, widgets/hero/hero.php:68, widgets/hero/hero.php:80
1522
  msgid "Button"
1523
  msgstr ""
1524
 
1646
  msgid "Open more URL in a new window"
1647
  msgstr ""
1648
 
1649
+ #: widgets/features/features.php:298, widgets/hero/hero.php:436, widgets/layout-slider/layout-slider.php:323, widgets/social-media-buttons/social-media-buttons.php:33
1650
  msgid "Responsive Breakpoint"
1651
  msgstr ""
1652
 
1666
  msgid "A Google Maps widget."
1667
  msgstr ""
1668
 
1669
+ #: widgets/google-map/google-map.php:47
1670
  msgid "Map center"
1671
  msgstr ""
1672
 
1673
+ #: widgets/google-map/google-map.php:49
1674
  msgid "The name of a place, town, city, or even a country. Can be an exact address too. Please ensure you have enabled the <strong>Geocoding API</strong> in the %sGoogle APIs Dashboard%s."
1675
  msgstr ""
1676
 
1677
+ #: widgets/google-map/google-map.php:56, widgets/google-map/google-map.php:61, widgets/google-map/google-map.php:446
1678
  msgid "API key"
1679
  msgstr ""
1680
 
1681
+ #: widgets/google-map/google-map.php:64
1682
  msgid "Enter your %sAPI key%s. Your map may not function correctly without one."
1683
  msgstr ""
1684
 
1685
+ #: widgets/google-map/google-map.php:75
1686
  msgid "Set map display options."
1687
  msgstr ""
1688
 
1689
+ #: widgets/google-map/google-map.php:80
1690
  msgid "Map type"
1691
  msgstr ""
1692
 
1693
+ #: widgets/google-map/google-map.php:86
1694
  msgid "Interactive"
1695
  msgstr ""
1696
 
1697
+ #: widgets/google-map/google-map.php:87
1698
  msgid "Static image"
1699
  msgstr ""
1700
 
1701
+ #: widgets/google-map/google-map.php:127
1702
  msgid "Zoom level"
1703
  msgstr ""
1704
 
1705
+ #: widgets/google-map/google-map.php:128
1706
  msgid "A value from 0 (the world) to 21 (street level)."
1707
  msgstr ""
1708
 
1709
+ #: widgets/google-map/google-map.php:142
1710
  msgid "Scroll to zoom"
1711
  msgstr ""
1712
 
1713
+ #: widgets/google-map/google-map.php:143
1714
  msgid "Allow scrolling over the map to zoom in or out."
1715
  msgstr ""
1716
 
1717
+ #: widgets/google-map/google-map.php:152
1718
  msgid "Draggable"
1719
  msgstr ""
1720
 
1721
+ #: widgets/google-map/google-map.php:153
1722
  msgid "Allow dragging the map to move it around."
1723
  msgstr ""
1724
 
1725
+ #: widgets/google-map/google-map.php:162
1726
  msgid "Disable default UI"
1727
  msgstr ""
1728
 
1729
+ #: widgets/google-map/google-map.php:163
1730
  msgid "Hides the default Google Maps controls."
1731
  msgstr ""
1732
 
1733
+ #: widgets/google-map/google-map.php:172
1734
  msgid "Keep map centered"
1735
  msgstr ""
1736
 
1737
+ #: widgets/google-map/google-map.php:173
1738
  msgid "Keeps the map centered when it's container is resized."
1739
  msgstr ""
1740
 
1741
+ #: widgets/google-map/google-map.php:177
1742
  msgid "Fallback Image"
1743
  msgstr ""
1744
 
1745
+ #: widgets/google-map/google-map.php:178
1746
  msgid "This image will be displayed if there are any problems with displaying the specified map."
1747
  msgstr ""
1748
 
1749
+ #: widgets/google-map/google-map.php:183
1750
  msgid "Fallback Image Size"
1751
  msgstr ""
1752
 
1753
+ #: widgets/google-map/google-map.php:189
1754
  msgid "Markers"
1755
  msgstr ""
1756
 
1757
+ #: widgets/google-map/google-map.php:191
1758
  msgid "Use markers to identify points of interest on the map."
1759
  msgstr ""
1760
 
1761
+ #: widgets/google-map/google-map.php:196
1762
  msgid "Show marker at map center"
1763
  msgstr ""
1764
 
1765
+ #: widgets/google-map/google-map.php:201
1766
  msgid "Marker icon"
1767
  msgstr ""
1768
 
1769
+ #: widgets/google-map/google-map.php:202
1770
  msgid "Replaces the default map marker with your own image."
1771
  msgstr ""
1772
 
1773
+ #: widgets/google-map/google-map.php:211
1774
  msgid "Draggable markers"
1775
  msgstr ""
1776
 
1777
+ #: widgets/google-map/google-map.php:215
1778
  msgid "Marker positions"
1779
  msgstr ""
1780
 
1781
+ #: widgets/google-map/google-map.php:216
 
 
 
 
1782
  msgid "Marker"
1783
  msgstr ""
1784
 
1785
+ #: widgets/google-map/google-map.php:226
1786
  msgid "Place"
1787
  msgstr ""
1788
 
1789
+ #: widgets/google-map/google-map.php:231
1790
  msgid "Info Window Content"
1791
  msgstr ""
1792
 
1793
+ #: widgets/google-map/google-map.php:235
1794
  msgid "Info Window max width"
1795
  msgstr ""
1796
 
1797
+ #: widgets/google-map/google-map.php:240
1798
  msgid "Custom Marker icon"
1799
  msgstr ""
1800
 
1801
+ #: widgets/google-map/google-map.php:241
1802
  msgid "Replace the default map marker with your own image for each marker."
1803
  msgstr ""
1804
 
1805
+ #: widgets/google-map/google-map.php:247
1806
  msgid "When should Info Windows be displayed?"
1807
  msgstr ""
1808
 
1809
+ #: widgets/google-map/google-map.php:250
1810
  msgid "Click"
1811
  msgstr ""
1812
 
1813
+ #: widgets/google-map/google-map.php:251
1814
  msgid "Mouse over"
1815
  msgstr ""
1816
 
1817
+ #: widgets/google-map/google-map.php:252
1818
  msgid "Always"
1819
  msgstr ""
1820
 
1821
+ #: widgets/google-map/google-map.php:257
1822
  msgid "Allow multiple simultaneous Info Windows?"
1823
  msgstr ""
1824
 
1825
+ #: widgets/google-map/google-map.php:265
1826
  msgid "Styles"
1827
  msgstr ""
1828
 
1829
+ #: widgets/google-map/google-map.php:267
1830
  msgid "Apply custom colors to map features, or hide them completely."
1831
  msgstr ""
1832
 
1833
+ #: widgets/google-map/google-map.php:272
1834
  msgid "Map styles"
1835
  msgstr ""
1836
 
1837
+ #: widgets/google-map/google-map.php:279
1838
  msgid "Custom"
1839
  msgstr ""
1840
 
1841
+ #: widgets/google-map/google-map.php:280
1842
  msgid "Predefined Styles"
1843
  msgstr ""
1844
 
1845
+ #: widgets/google-map/google-map.php:289
1846
  msgid "Styled map name"
1847
  msgstr ""
1848
 
1849
+ #: widgets/google-map/google-map.php:299
1850
  msgid "Raw JSON styles"
1851
  msgstr ""
1852
 
1853
+ #: widgets/google-map/google-map.php:300
1854
  msgid "Copy and paste predefined styles here from <a href=\"http://snazzymaps.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Snazzy Maps</a>."
1855
  msgstr ""
1856
 
1857
+ #: widgets/google-map/google-map.php:308
1858
  msgid "Custom map styles"
1859
  msgstr ""
1860
 
1861
+ #: widgets/google-map/google-map.php:319
1862
  msgid "Select map feature to style"
1863
  msgstr ""
1864
 
1865
+ #: widgets/google-map/google-map.php:321
1866
  msgid "Water"
1867
  msgstr ""
1868
 
1869
+ #: widgets/google-map/google-map.php:322
1870
  msgid "Highways"
1871
  msgstr ""
1872
 
1873
+ #: widgets/google-map/google-map.php:323
1874
  msgid "Arterial roads"
1875
  msgstr ""
1876
 
1877
+ #: widgets/google-map/google-map.php:324
1878
  msgid "Local roads"
1879
  msgstr ""
1880
 
1881
+ #: widgets/google-map/google-map.php:325
1882
  msgid "Transit lines"
1883
  msgstr ""
1884
 
1885
+ #: widgets/google-map/google-map.php:326
1886
  msgid "Transit stations"
1887
  msgstr ""
1888
 
1889
+ #: widgets/google-map/google-map.php:327
1890
  msgid "Man-made landscape"
1891
  msgstr ""
1892
 
1893
+ #: widgets/google-map/google-map.php:328
1894
  msgid "Natural landscape landcover"
1895
  msgstr ""
1896
 
1897
+ #: widgets/google-map/google-map.php:329
1898
  msgid "Natural landscape terrain"
1899
  msgstr ""
1900
 
1901
+ #: widgets/google-map/google-map.php:330
1902
  msgid "Point of interest - Attractions"
1903
  msgstr ""
1904
 
1905
+ #: widgets/google-map/google-map.php:331
1906
  msgid "Point of interest - Business"
1907
  msgstr ""
1908
 
1909
+ #: widgets/google-map/google-map.php:332
1910
  msgid "Point of interest - Government"
1911
  msgstr ""
1912
 
1913
+ #: widgets/google-map/google-map.php:333
1914
  msgid "Point of interest - Medical"
1915
  msgstr ""
1916
 
1917
+ #: widgets/google-map/google-map.php:334
1918
  msgid "Point of interest - Parks"
1919
  msgstr ""
1920
 
1921
+ #: widgets/google-map/google-map.php:335
1922
  msgid "Point of interest - Places of worship"
1923
  msgstr ""
1924
 
1925
+ #: widgets/google-map/google-map.php:336
1926
  msgid "Point of interest - Schools"
1927
  msgstr ""
1928
 
1929
+ #: widgets/google-map/google-map.php:337
1930
  msgid "Point of interest - Sports complexes"
1931
  msgstr ""
1932
 
1933
+ #: widgets/google-map/google-map.php:342
1934
  msgid "Select element type to style"
1935
  msgstr ""
1936
 
1937
+ #: widgets/google-map/google-map.php:344
1938
  msgid "Geometry"
1939
  msgstr ""
1940
 
1941
+ #: widgets/google-map/google-map.php:345
1942
  msgid "Labels"
1943
  msgstr ""
1944
 
1945
+ #: widgets/google-map/google-map.php:352
1946
  msgid "Visible"
1947
  msgstr ""
1948
 
1949
+ #: widgets/google-map/google-map.php:364
1950
  msgid "Directions"
1951
  msgstr ""
1952
 
1953
+ #: widgets/google-map/google-map.php:371
1954
  msgid "Display a route on your map, with waypoints between your starting point and destination. Please ensure you have enabled the <strong>Directions API</strong> in the %sGoogle APIs Dashboard%s."
1955
  msgstr ""
1956
 
1957
+ #: widgets/google-map/google-map.php:378
1958
  msgid "Starting point"
1959
  msgstr ""
1960
 
1961
+ #: widgets/google-map/google-map.php:382
1962
  msgid "Destination"
1963
  msgstr ""
1964
 
1965
+ #: widgets/google-map/google-map.php:386
1966
  msgid "Travel mode"
1967
  msgstr ""
1968
 
1969
+ #: widgets/google-map/google-map.php:389
1970
  msgid "Driving"
1971
  msgstr ""
1972
 
1973
+ #: widgets/google-map/google-map.php:390
1974
  msgid "Walking"
1975
  msgstr ""
1976
 
1977
+ #: widgets/google-map/google-map.php:391
1978
  msgid "Bicycling"
1979
  msgstr ""
1980
 
1981
+ #: widgets/google-map/google-map.php:392
1982
  msgid "Transit"
1983
  msgstr ""
1984
 
1985
+ #: widgets/google-map/google-map.php:397
1986
  msgid "Avoid highways"
1987
  msgstr ""
1988
 
1989
+ #: widgets/google-map/google-map.php:401
1990
  msgid "Avoid tolls"
1991
  msgstr ""
1992
 
1993
+ #: widgets/google-map/google-map.php:405
1994
  msgid "Preserve viewport"
1995
  msgstr ""
1996
 
1997
+ #: widgets/google-map/google-map.php:406
1998
  msgid "This will prevent the map from centering and zooming around the directions. Use this when you have other markers or features on your map."
1999
  msgstr ""
2000
 
2001
+ #: widgets/google-map/google-map.php:410
2002
  msgid "Waypoints"
2003
  msgstr ""
2004
 
2005
+ #: widgets/google-map/google-map.php:411
2006
  msgid "Waypoint"
2007
  msgstr ""
2008
 
2009
+ #: widgets/google-map/google-map.php:421, widgets/testimonial/testimonial.php:66
2010
  msgid "Location"
2011
  msgstr ""
2012
 
2013
+ #: widgets/google-map/google-map.php:426
2014
  msgid "Stopover"
2015
  msgstr ""
2016
 
2017
+ #: widgets/google-map/google-map.php:427
2018
  msgid "Whether or not this is a stop on the route or just a route preference."
2019
  msgstr ""
2020
 
2021
+ #: widgets/google-map/google-map.php:433
2022
  msgid "Optimize waypoints"
2023
  msgstr ""
2024
 
2025
+ #: widgets/google-map/google-map.php:435
2026
  msgid "Allow the Google Maps service to reorder waypoints for the shortest travelling distance."
2027
  msgstr ""
2028
 
2029
+ #: widgets/google-map/google-map.php:449
2030
  msgid "Enter your %sAPI key%s. Your map won't function correctly without one."
2031
  msgstr ""
2032
 
2033
+ #: widgets/google-map/google-map.php:573
2034
  msgid "There were no results for the place you entered. Please try another."
2035
  msgstr ""
2036
 
2037
+ #: widgets/google-map/google-map.php:629
2038
  msgid "Custom Map"
2039
  msgstr ""
2040
 
2050
  msgid "A headline widget."
2051
  msgstr ""
2052
 
2053
+ #: widgets/headline/headline.php:38, widgets/headline/headline.php:238
2054
  msgid "Headline"
2055
  msgstr ""
2056
 
2057
+ #: widgets/headline/headline.php:56, widgets/headline/headline.php:127
2058
  msgid "HTML Tag"
2059
  msgstr ""
2060
 
2061
+ #: widgets/headline/headline.php:59, widgets/headline/headline.php:130
2062
  msgid "H1"
2063
  msgstr ""
2064
 
2065
+ #: widgets/headline/headline.php:60, widgets/headline/headline.php:131
2066
  msgid "H2"
2067
  msgstr ""
2068
 
2069
+ #: widgets/headline/headline.php:61, widgets/headline/headline.php:132
2070
  msgid "H3"
2071
  msgstr ""
2072
 
2073
+ #: widgets/headline/headline.php:62, widgets/headline/headline.php:133
2074
  msgid "H4"
2075
  msgstr ""
2076
 
2077
+ #: widgets/headline/headline.php:63, widgets/headline/headline.php:134
2078
  msgid "H5"
2079
  msgstr ""
2080
 
2081
+ #: widgets/headline/headline.php:64, widgets/headline/headline.php:135
2082
  msgid "H6"
2083
  msgstr ""
2084
 
2085
+ #: widgets/headline/headline.php:65, widgets/headline/headline.php:136
2086
  msgid "Paragraph"
2087
  msgstr ""
2088
 
2089
+ #: widgets/headline/headline.php:74, widgets/headline/headline.php:145
2090
  msgid "Hover Color"
2091
  msgstr ""
2092
 
2093
+ #: widgets/headline/headline.php:87, widgets/headline/headline.php:158, widgets/headline/headline.php:213, widgets/icon/icon.php:46
2094
  msgid "Alignment"
2095
  msgstr ""
2096
 
2097
+ #: widgets/headline/headline.php:98, widgets/headline/headline.php:169
2098
  msgid "Line Height"
2099
  msgstr ""
2100
 
2101
+ #: widgets/headline/headline.php:102, widgets/headline/headline.php:173, widgets/headline/headline.php:228
2102
  msgid "Top and Bottom Margin"
2103
  msgstr ""
2104
 
2105
+ #: widgets/headline/headline.php:109
2106
  msgid "Sub headline"
2107
  msgstr ""
2108
 
2109
+ #: widgets/headline/headline.php:180, widgets/headline/headline.php:239
2110
  msgid "Divider"
2111
  msgstr ""
2112
 
2113
+ #: widgets/headline/headline.php:206
2114
  msgid "Thickness"
2115
  msgstr ""
2116
 
2117
+ #: widgets/headline/headline.php:223
2118
  msgid "Divider Width"
2119
  msgstr ""
2120
 
2121
+ #: widgets/headline/headline.php:236
2122
  msgid "Element Order"
2123
  msgstr ""
2124
 
2125
+ #: widgets/headline/headline.php:240
2126
  msgid "Sub Headline"
2127
  msgstr ""
2128
 
2129
+ #: widgets/headline/headline.php:247, widgets/hero/hero.php:220
2130
  msgid "Use FitText"
2131
  msgstr ""
2132
 
2133
+ #: widgets/headline/headline.php:248, widgets/hero/hero.php:221
2134
  msgid "Dynamically adjust your heading font size based on screen size."
2135
  msgstr ""
2136
 
2137
+ #: widgets/headline/headline.php:261, widgets/hero/hero.php:234
2138
  msgid "FitText Compressor Strength"
2139
  msgstr ""
2140
 
2141
+ #: widgets/headline/headline.php:262, widgets/hero/hero.php:235
2142
+ msgid "The higher the value, the more your headings will be scaled down. Values above 1 are allowed."
2143
  msgstr ""
2144
 
2145
  #: widgets/hero/hero.php:4, widgets/hero/hero.php:21
2150
  msgid "SiteOrigin Hero"
2151
  msgstr ""
2152
 
2153
+ #: widgets/hero/hero.php:50
2154
  msgid "Hero frames"
2155
  msgstr ""
2156
 
2157
+ #: widgets/hero/hero.php:51, widgets/layout-slider/layout-slider.php:36, widgets/slider/slider.php:35
2158
  msgid "Frame"
2159
  msgstr ""
2160
 
2161
+ #: widgets/hero/hero.php:67, widgets/taxonomy/taxonomy.php:50
2162
  msgid "Buttons"
2163
  msgstr ""
2164
 
2165
+ #: widgets/hero/hero.php:69
2166
  msgid "Add [buttons] shortcode to the content to insert these buttons."
2167
  msgstr ""
2168
 
2169
+ #: widgets/hero/hero.php:93, widgets/layout-slider/layout-slider.php:57, widgets/slider/slider.php:57
2170
  msgid "Background image"
2171
  msgstr ""
2172
 
2173
+ #: widgets/hero/hero.php:100, widgets/image-grid/image-grid.php:87, widgets/image/image.php:39, widgets/testimonial/testimonial.php:131, widgets/testimonial/testimonial.php:160, widgets/testimonial/testimonial.php:202
2174
  msgid "Image size"
2175
  msgstr ""
2176
 
2177
+ #: widgets/hero/hero.php:105, widgets/layout-slider/layout-slider.php:64, widgets/slider/slider.php:68
2178
  msgid "Background image type"
2179
  msgstr ""
2180
 
2181
+ #: widgets/hero/hero.php:107, widgets/slider/slider.php:70
2182
  msgid "Cover"
2183
  msgstr ""
2184
 
2185
+ #: widgets/hero/hero.php:113, widgets/layout-slider/layout-slider.php:73
2186
  msgid "Background image opacity"
2187
  msgstr ""
2188
 
2189
+ #: widgets/hero/hero.php:133, widgets/layout-slider/layout-slider.php:93
2190
  msgid "Open URL in a new window"
2191
  msgstr ""
2192
 
2193
+ #: widgets/hero/hero.php:138, widgets/layout-slider/layout-slider.php:98, widgets/slider/slider.php:44
2194
  msgid "Video"
2195
  msgstr ""
2196
 
2197
+ #: widgets/hero/hero.php:139, widgets/layout-slider/layout-slider.php:99, widgets/slider/slider.php:45
2198
  msgid "Background videos"
2199
  msgstr ""
2200
 
2201
+ #: widgets/hero/hero.php:154, widgets/layout-slider/layout-slider.php:114
2202
  msgid "Slider Controls"
2203
  msgstr ""
2204
 
2205
+ #: widgets/hero/hero.php:160, widgets/layout-slider/layout-slider.php:120
2206
  msgid "Design and Layout"
2207
  msgstr ""
2208
 
2209
+ #: widgets/hero/hero.php:171, widgets/layout-slider/layout-slider.php:130
2210
  msgid "Responsive Height"
2211
  msgstr ""
2212
 
2213
+ #: widgets/hero/hero.php:177, widgets/layout-slider/layout-slider.php:135
2214
  msgid "Top and bottom padding"
2215
  msgstr ""
2216
 
2217
+ #: widgets/hero/hero.php:183, widgets/layout-slider/layout-slider.php:141
2218
  msgid "Extra top padding"
2219
  msgstr ""
2220
 
2221
+ #: widgets/hero/hero.php:184, widgets/layout-slider/layout-slider.php:142
2222
  msgid "Additional padding added to the top of the slider"
2223
  msgstr ""
2224
 
2225
+ #: widgets/hero/hero.php:190, widgets/layout-slider/layout-slider.php:148
2226
  msgid "Side padding"
2227
  msgstr ""
2228
 
2229
+ #: widgets/hero/hero.php:196, widgets/layout-slider/layout-slider.php:154
2230
  msgid "Maximum container width"
2231
  msgstr ""
2232
 
2233
+ #: widgets/hero/hero.php:202
2234
  msgid "Heading font"
2235
  msgstr ""
2236
 
2237
+ #: widgets/hero/hero.php:208, widgets/layout-slider/layout-slider.php:160
2238
  msgid "Heading color"
2239
  msgstr ""
2240
 
2241
+ #: widgets/hero/hero.php:214, widgets/layout-slider/layout-slider.php:166
2242
  msgid "Heading size"
2243
  msgstr ""
2244
 
2245
+ #: widgets/hero/hero.php:245, widgets/layout-slider/layout-slider.php:172
2246
  msgid "Heading shadow intensity"
2247
  msgstr ""
2248
 
2249
+ #: widgets/hero/hero.php:258, widgets/layout-slider/layout-slider.php:180
2250
  msgid "Text size"
2251
  msgstr ""
2252
 
2253
+ #: widgets/hero/hero.php:263
2254
  msgid "Text font"
2255
  msgstr ""
2256
 
2257
+ #: widgets/hero/hero.php:268
2258
  msgid "Text shadow intensity"
2259
  msgstr ""
2260
 
2261
+ #: widgets/hero/hero.php:277
2262
  msgid "Link color"
2263
  msgstr ""
2264
 
2265
+ #: widgets/hero/hero.php:282
2266
  msgid "Link Hover Color"
2267
  msgstr ""
2268
 
2269
+ #: widgets/hero/hero.php:438
2270
  msgid "This setting controls when the Hero widget will switch to the responsive height for slides. This breakpoint will only be used if a responsive height is set in the hero settings. The default value is 780px"
2271
  msgstr ""
2272
 
2675
  msgstr ""
2676
 
2677
  #: widgets/social-media-buttons/data/networks.php:104
2678
+ msgid "Bandcamp"
2679
  msgstr ""
2680
 
2681
  #: widgets/social-media-buttons/data/networks.php:110
2682
+ msgid "Behance"
2683
  msgstr ""
2684
 
2685
  #: widgets/social-media-buttons/data/networks.php:116
2686
+ msgid "Bitbucket"
2687
  msgstr ""
2688
 
2689
  #: widgets/social-media-buttons/data/networks.php:122
2690
+ msgid "Blogger"
2691
  msgstr ""
2692
 
2693
  #: widgets/social-media-buttons/data/networks.php:128
2694
+ msgid "Codepen"
2695
  msgstr ""
2696
 
2697
  #: widgets/social-media-buttons/data/networks.php:134
2698
+ msgid "Delicious"
2699
  msgstr ""
2700
 
2701
  #: widgets/social-media-buttons/data/networks.php:140
2702
+ msgid "deviantArt"
2703
  msgstr ""
2704
 
2705
  #: widgets/social-media-buttons/data/networks.php:146
2706
+ msgid "Dribbble"
2707
  msgstr ""
2708
 
2709
  #: widgets/social-media-buttons/data/networks.php:152
2710
+ msgid "Dropbox"
2711
  msgstr ""
2712
 
2713
  #: widgets/social-media-buttons/data/networks.php:158
2714
+ msgid "Foursquare"
2715
  msgstr ""
2716
 
2717
  #: widgets/social-media-buttons/data/networks.php:164
2718
+ msgid "Github"
2719
  msgstr ""
2720
 
2721
  #: widgets/social-media-buttons/data/networks.php:170
2722
+ msgid "Gratipay"
2723
  msgstr ""
2724
 
2725
  #: widgets/social-media-buttons/data/networks.php:176
2726
+ msgid "Goodreads"
2727
  msgstr ""
2728
 
2729
  #: widgets/social-media-buttons/data/networks.php:182
2730
+ msgid "Hacker News"
2731
  msgstr ""
2732
 
2733
  #: widgets/social-media-buttons/data/networks.php:188
2734
+ msgid "JSFiddle"
2735
  msgstr ""
2736
 
2737
  #: widgets/social-media-buttons/data/networks.php:194
2738
+ msgid "Last.fm"
2739
  msgstr ""
2740
 
2741
  #: widgets/social-media-buttons/data/networks.php:200
2742
+ msgid "Reddit"
2743
  msgstr ""
2744
 
2745
  #: widgets/social-media-buttons/data/networks.php:206
2746
+ msgid "Slack"
2747
  msgstr ""
2748
 
2749
  #: widgets/social-media-buttons/data/networks.php:212
2750
+ msgid "Slideshare"
2751
  msgstr ""
2752
 
2753
  #: widgets/social-media-buttons/data/networks.php:218
2754
+ msgid "Soundcloud"
2755
  msgstr ""
2756
 
2757
  #: widgets/social-media-buttons/data/networks.php:224
2758
+ msgid "Spotify"
2759
  msgstr ""
2760
 
2761
  #: widgets/social-media-buttons/data/networks.php:230
2762
+ msgid "Stack Exchange"
2763
  msgstr ""
2764
 
2765
  #: widgets/social-media-buttons/data/networks.php:236
2766
+ msgid "Stack Overflow"
2767
  msgstr ""
2768
 
2769
  #: widgets/social-media-buttons/data/networks.php:242
2770
+ msgid "Steam"
2771
  msgstr ""
2772
 
2773
  #: widgets/social-media-buttons/data/networks.php:248
2774
+ msgid "Strava"
2775
  msgstr ""
2776
 
2777
  #: widgets/social-media-buttons/data/networks.php:254
2778
+ msgid "StumbleUpon"
2779
  msgstr ""
2780
 
2781
  #: widgets/social-media-buttons/data/networks.php:260
2782
+ msgid "Telegram"
2783
  msgstr ""
2784
 
2785
  #: widgets/social-media-buttons/data/networks.php:266
2786
+ msgid "Trello"
2787
  msgstr ""
2788
 
2789
  #: widgets/social-media-buttons/data/networks.php:272
2790
+ msgid "TripAdvisor"
2791
  msgstr ""
2792
 
2793
  #: widgets/social-media-buttons/data/networks.php:278
2794
+ msgid "Twitch"
2795
  msgstr ""
2796
 
2797
  #: widgets/social-media-buttons/data/networks.php:284
2798
+ msgid "Vimeo"
2799
  msgstr ""
2800
 
2801
  #: widgets/social-media-buttons/data/networks.php:290
2802
+ msgid "WhatsApp"
2803
+ msgstr ""
2804
+
2805
+ #: widgets/social-media-buttons/data/networks.php:296
2806
+ msgid "WordPress"
2807
+ msgstr ""
2808
+
2809
+ #: widgets/social-media-buttons/data/networks.php:302
2810
+ msgid "Xing"
2811
+ msgstr ""
2812
+
2813
+ #: widgets/social-media-buttons/data/networks.php:308
2814
+ msgid "Yahoo"
2815
+ msgstr ""
2816
+
2817
+ #: widgets/social-media-buttons/data/networks.php:314
2818
+ msgid "Yelp"
2819
+ msgstr ""
2820
+
2821
+ #: widgets/social-media-buttons/data/networks.php:320
2822
  msgid "YouTube"
2823
  msgstr ""
2824
 
readme.txt CHANGED
@@ -2,8 +2,8 @@
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.0
5
- Stable tag: 1.14.1
6
- Build time: 2019-01-09T13:17:13-08:00
7
  License: GPLv3 or later
8
  Contributors: gpriday, braam-genis
9
  Donate link: https://siteorigin.com/downloads/contribution/
@@ -65,6 +65,20 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
65
 
66
  == Changelog ==
67
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
  = 1.14.1 - 9 January 2019 =
69
  * Icon field: Set correct value of currently selected icon for non-FA icons.
70
  * Icon field: Avoid requiring that third party icon families include a `filter.php` file.
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.0
5
+ Stable tag: 1.15.1
6
+ Build time: 2019-02-15T09:48:04-08:00
7
  License: GPLv3 or later
8
  Contributors: gpriday, braam-genis
9
  Donate link: https://siteorigin.com/downloads/contribution/
65
 
66
  == Changelog ==
67
 
68
+ = 1.15.1 - 15 February 2019 =
69
+ * Google maps: Use correct locations for static maps.
70
+
71
+ = 1.15.0 - 14 February 2019 =
72
+ * Location field: New specialized admin form field which autocompletes addresses using the Google Maps places library.
73
+ * Google maps: Moved global API key override to `modify_instance` to make key available in admin form too.
74
+ * Google maps: Auto-migration of locations to new location field format.
75
+ * Update LESS PHP library with fixes for PHP 7.3 compatibility.
76
+ * Features: Apply text styles to all features content, not just `<p>` tags.
77
+ * Social Media: New networks: Bandcamp, Goodreads, Telegram, Strava, Blogger.
78
+ * Accordion: Fix issue preventing use of numbers in panel titles.
79
+ * Block editor: Preview fixes.
80
+ * Beaver Builder compat: Fix widgets failing to update and CSS for FontAwesome icons.
81
+
82
  = 1.14.1 - 9 January 2019 =
83
  * Icon field: Set correct value of currently selected icon for non-FA icons.
84
  * Icon field: Avoid requiring that third party icon families include a `filter.php` file.
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.14.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.14.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 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.1
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.1');
16
  define('SOW_BUNDLE_BASE_FILE', __FILE__);
17
 
18
  // Allow JS suffix to be pre-set
widgets/accordion/accordion.php CHANGED
@@ -153,6 +153,10 @@ class SiteOrigin_Widget_Accordion_Widget extends SiteOrigin_Widget {
153
  }
154
 
155
  public function get_less_variables( $instance ) {
 
 
 
 
156
  $design = $instance['design'];
157
 
158
  return array(
153
  }
154
 
155
  public function get_less_variables( $instance ) {
156
+ if ( empty( $instance['design'] ) ) {
157
+ return array();
158
+ }
159
+
160
  $design = $instance['design'];
161
 
162
  return array(
widgets/accordion/js/accordion.js CHANGED
@@ -129,7 +129,7 @@ jQuery( function ( $ ) {
129
  var panel = panels[ i ];
130
  var anchor = $( panel ).data( 'anchor' );
131
  var anchors = window.location.hash.substring(1).split( ',' );
132
- if ( anchor && $.inArray( anchor, anchors ) > -1 ) {
133
  openPanel( panel, true );
134
  } else {
135
  closePanel( panel, true );
129
  var panel = panels[ i ];
130
  var anchor = $( panel ).data( 'anchor' );
131
  var anchors = window.location.hash.substring(1).split( ',' );
132
+ if ( anchor && $.inArray( anchor.toString(), anchors ) > -1 ) {
133
  openPanel( panel, true );
134
  } else {
135
  closePanel( panel, true );
widgets/accordion/js/accordion.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};jQuery(function(h){sowb.setupAccordion=function(){h(".sow-accordion").each(function(o,n){var e=h(this).closest(".so-widget-sow-accordion");if(e.data("initialized"))return h(this);var t=h(n).find("> .sow-accordion-panel");t.not(".sow-accordion-panel-open").find(".sow-accordion-panel-content").hide();var s=t.filter(".sow-accordion-panel-open").toArray(),c=function(){},r=function(o,n){var a=o.offset().top-90;n?h("body,html").animate({scrollTop:a},200):window.scrollTo(0,a)},d=function(o,n,a){var i=h(o);if(!i.is(".sow-accordion-panel-open")){i.find("> .sow-accordion-panel-content").slideDown(function(){a&&i.offset().top<window.scrollY&&r(i,!0),h(this).trigger("show"),h(sowb).trigger("setup_widgets")}),i.addClass("sow-accordion-panel-open"),s.push(o);var e=h(o).parents(".sow-accordion-panel");e.length&&!e.hasClass("sow-accordion-panel-open")&&d(e.get(0),!0),n||c()}},l=function(o,n){var a=h(o);a.is(".sow-accordion-panel-open")&&(a.find("> .sow-accordion-panel-content").slideUp(function(){h(this).trigger("hide")}),a.removeClass("sow-accordion-panel-open"),s.splice(s.indexOf(o),1),n||c())};if(t.find("> .sow-accordion-panel-header").click(function(){var o=h(this),a=e.data("maxOpenPanels"),n=o.closest(".sow-accordion-panel");if(n.is(".sow-accordion-panel-open")?l(n.get(0)):d(n.get(0),!1,!0),!isNaN(a)&&0<a&&s.length>a){var i=0;h.each(s.reverse(),function(o,n){i!==a?i++:l(s[o])})}}),e.data("useAnchorTags")){var a;c=function(){a&&clearTimeout(a),a=setTimeout(function(){for(var o=[],n=h(".sow-accordion-panel-open").toArray(),a=0;a<n.length;a++){var i=h(n[a]).data("anchor");if(i){var e=h(n[a]).parents(".sow-accordion-panel");(!e.length||e.length&&e.hasClass("sow-accordion-panel-open"))&&(o[a]=i)}}o&&o.length?window.location.hash=o.join(","):window.location.hash&&window.history.pushState("",document.title,window.location.pathname+window.location.search)},100)};var i=function(){for(var o=t.toArray(),n=0;n<o.length;n++){var a=o[n],i=h(a).data("anchor"),e=window.location.hash.substring(1).split(",");i&&-1<h.inArray(i,e)?d(a,!0):l(a,!0)}};h(window).on("hashchange",i),window.location.hash?i():c();var w=e.data("initialScrollPanel");if(0<w){var p=w>t.length?t.last():t.eq(w-1);setTimeout(function(){r(p)},500)}}e.data("initialized",!0)})},sowb.setupAccordion(),h(sowb).on("setup_widgets",sowb.setupAccordion)}),window.sowb=sowb;
1
+ var sowb=window.sowb||{};jQuery(function(h){sowb.setupAccordion=function(){h(".sow-accordion").each(function(o,n){var e=h(this).closest(".so-widget-sow-accordion");if(e.data("initialized"))return h(this);var t=h(n).find("> .sow-accordion-panel");t.not(".sow-accordion-panel-open").find(".sow-accordion-panel-content").hide();var s=t.filter(".sow-accordion-panel-open").toArray(),c=function(){},r=function(o,n){var a=o.offset().top-90;n?h("body,html").animate({scrollTop:a},200):window.scrollTo(0,a)},d=function(o,n,a){var i=h(o);if(!i.is(".sow-accordion-panel-open")){i.find("> .sow-accordion-panel-content").slideDown(function(){a&&i.offset().top<window.scrollY&&r(i,!0),h(this).trigger("show"),h(sowb).trigger("setup_widgets")}),i.addClass("sow-accordion-panel-open"),s.push(o);var e=h(o).parents(".sow-accordion-panel");e.length&&!e.hasClass("sow-accordion-panel-open")&&d(e.get(0),!0),n||c()}},l=function(o,n){var a=h(o);a.is(".sow-accordion-panel-open")&&(a.find("> .sow-accordion-panel-content").slideUp(function(){h(this).trigger("hide")}),a.removeClass("sow-accordion-panel-open"),s.splice(s.indexOf(o),1),n||c())};if(t.find("> .sow-accordion-panel-header").click(function(){var o=h(this),a=e.data("maxOpenPanels"),n=o.closest(".sow-accordion-panel");if(n.is(".sow-accordion-panel-open")?l(n.get(0)):d(n.get(0),!1,!0),!isNaN(a)&&0<a&&s.length>a){var i=0;h.each(s.reverse(),function(o,n){i!==a?i++:l(s[o])})}}),e.data("useAnchorTags")){var a;c=function(){a&&clearTimeout(a),a=setTimeout(function(){for(var o=[],n=h(".sow-accordion-panel-open").toArray(),a=0;a<n.length;a++){var i=h(n[a]).data("anchor");if(i){var e=h(n[a]).parents(".sow-accordion-panel");(!e.length||e.length&&e.hasClass("sow-accordion-panel-open"))&&(o[a]=i)}}o&&o.length?window.location.hash=o.join(","):window.location.hash&&window.history.pushState("",document.title,window.location.pathname+window.location.search)},100)};var i=function(){for(var o=t.toArray(),n=0;n<o.length;n++){var a=o[n],i=h(a).data("anchor"),e=window.location.hash.substring(1).split(",");i&&-1<h.inArray(i.toString(),e)?d(a,!0):l(a,!0)}};h(window).on("hashchange",i),window.location.hash?i():c();var w=e.data("initialScrollPanel");if(0<w){var p=w>t.length?t.last():t.eq(w-1);setTimeout(function(){r(p)},500)}}e.data("initialized",!0)})},sowb.setupAccordion(),h(sowb).on("setup_widgets",sowb.setupAccordion)}),window.sowb=sowb;
widgets/contact/contact.php CHANGED
@@ -754,6 +754,9 @@ class SiteOrigin_Widgets_ContactForm_Widget extends SiteOrigin_Widget {
754
  }
755
 
756
  function get_less_variables( $instance ) {
 
 
 
757
  if ( empty( $instance['design']['labels']['font'] ) ) {
758
  $instance['design']['labels'] = array( 'font' => '' );
759
  }
754
  }
755
 
756
  function get_less_variables( $instance ) {
757
+ if ( empty( $instance['design'] ) ) {
758
+ return;
759
+ }
760
  if ( empty( $instance['design']['labels']['font'] ) ) {
761
  $instance['design']['labels'] = array( 'font' => '' );
762
  }
widgets/features/styles/default.less CHANGED
@@ -160,18 +160,16 @@
160
 
161
  .textwidget {
162
  margin: auto;
 
 
 
 
163
  > h5 {
164
  .font(@title_font, @title_font_weight);
165
  font-size: @title_size;
166
  color: @title_color;
167
  }
168
 
169
- > p {
170
- .font(@text_font, @text_font_weight);
171
- font-size: @text_size;
172
- color: @text_color;
173
- }
174
-
175
  > p.sow-more-text {
176
  .font(@more_text_font, @more_text_font_weight);
177
  font-size: @more_text_size;
160
 
161
  .textwidget {
162
  margin: auto;
163
+ .font(@text_font, @text_font_weight);
164
+ font-size: @text_size;
165
+ color: @text_color;
166
+
167
  > h5 {
168
  .font(@title_font, @title_font_weight);
169
  font-size: @title_size;
170
  color: @title_color;
171
  }
172
 
 
 
 
 
 
 
173
  > p.sow-more-text {
174
  .font(@more_text_font, @more_text_font_weight);
175
  font-size: @more_text_size;
widgets/google-map/fields/css/location-field.css ADDED
@@ -0,0 +1 @@
 
1
+ .pac-container{z-index:100010}
widgets/google-map/fields/js/location-field.js ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* global jQuery, sowbForms */
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 ).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;
68
+ }
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 ) {
76
+ console.info( 'SiteOrigin Google Maps Widget: Starting automatic migration of location. Please wait a moment...' );
77
+ sowbForms.mapsMigrationLogged = true;
78
+ }
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 ];
88
+ setTimeout( function () {
89
+ callGetSimplePlace( next.place, next.field );
90
+ }, delay );
91
+ } else {
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;
99
+ } else {
100
+ sowbForms.overQueryLimitCount++;
101
+ }
102
+
103
+ if ( sowbForms.overQueryLimitCount < 3 ) {
104
+ // The Google Maps Geocoding API docs say rate limits are 50 requests per second,
105
+ // but in practice it seems the limit is much lower.
106
+ var next = sowbForms._geocodeQueue[ 0 ];
107
+ // Progressively increase the delay to try avoid hitting the rate limit.
108
+ delay = delay * 10;
109
+ setTimeout( function () {
110
+ callGetSimplePlace( next.place, next.field );
111
+ }, delay );
112
+ } else {
113
+ console.warn( 'SiteOrigin Google Maps Widget: Automatic migration of old address failed with status: ' + status );
114
+ console.info( 'SiteOrigin Google Maps Widget: Please save this post and open the form to try again.' );
115
+ }
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
+ }
126
+ }
127
+ }
128
+ };
129
+ };
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
+ }
140
+ };
141
+
142
+ // Called by Google Maps API when it has loaded.
143
+ function sowbAdminGoogleMapInit() {
144
+ sowbForms.mapsInitializing = false;
145
+ sowbForms.mapsInitialized = true;
146
+ sowbForms.setupLocationFields();
147
+ }
148
+
149
+ ( function ( $ ) {
150
+
151
+ $( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-location', function () {
152
+
153
+ sowbForms._geocodeQueue = sowbForms._geocodeQueue || [];
154
+
155
+ if ( sowbForms.mapsInitializing ) {
156
+ return;
157
+ }
158
+
159
+ if ( sowbForms.mapsInitialized ) {
160
+ sowbForms.setupLocationFields();
161
+ return;
162
+ }
163
+
164
+ var $apiKeyField = $( this ).closest( '.siteorigin-widget-form' ).find( 'input[type="text"][name*="api_key"]' ).first();
165
+ var apiKey = $apiKeyField.val();
166
+ if ( ! apiKey ) {
167
+ console.warn( 'SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required.' );
168
+ }
169
+
170
+ var apiUrl = 'https://maps.googleapis.com/maps/api/js?key=' + apiKey + '&libraries=places&callback=sowbAdminGoogleMapInit';
171
+
172
+ $( 'body' ).append( '<script async type="text/javascript" src="' + apiUrl + '">' );
173
+
174
+ sowbForms.mapsInitializing = true;
175
+ } );
176
+
177
+ } )( jQuery );
widgets/google-map/fields/js/location-field.min.js ADDED
@@ -0,0 +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(i){i(document).on("sowsetupformfield",".siteorigin-widget-field-type-location",function(){if(sowbForms._geocodeQueue=sowbForms._geocodeQueue||[],!sowbForms.mapsInitializing)if(sowbForms.mapsInitialized)sowbForms.setupLocationFields();else{var o=i(this).closest(".siteorigin-widget-form").find('input[type="text"][name*="api_key"]').first().val();o||console.warn("SiteOrigin Google Maps Widget: Could not find API key. Google Maps API key is required.");var e="https://maps.googleapis.com/maps/api/js?key="+o+"&libraries=places&callback=sowbAdminGoogleMapInit";i("body").append('<script async type="text/javascript" src="'+e+'">'),sowbForms.mapsInitializing=!0}})}(jQuery);
widgets/google-map/fields/location.class.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * A specialized field for the Google Maps widget which will immediately geocode addresses in the front end,
4
+ * before the form is submitted.
5
+ */
6
+ class SiteOrigin_Widget_Field_Location extends SiteOrigin_Widget_Field_Base {
7
+
8
+ protected function render_field( $value, $instance ) {
9
+ if ( is_string( $value ) ) {
10
+ $value = json_decode( $value, true );
11
+ if ( empty( $value ) ) {
12
+ $value = array();
13
+ }
14
+ }
15
+ $address = '';
16
+ if ( ! empty( $value['address'] ) ) {
17
+ $address = $value['address'];
18
+ } else if ( ! empty( $value['name'] ) ) {
19
+ $address = $value['name'];
20
+ }
21
+ ?>
22
+ <input type="text" value="<?php echo esc_attr( $address ) ?>"
23
+ class="widefat siteorigin-widget-location-input"/>
24
+ <input type="hidden"
25
+ class="siteorigin-widget-input location-field-data"
26
+ value="<?php echo esc_attr( json_encode( $value ) ); ?>"
27
+ name="<?php echo esc_attr( $this->element_name ) ?>"
28
+ id="<?php echo esc_attr( $this->element_id ) ?>"/>
29
+ <?php
30
+ }
31
+
32
+ function enqueue_scripts() {
33
+ wp_enqueue_script(
34
+ 'so-location-field',
35
+ plugin_dir_url( __FILE__ ) . 'js/location-field' . SOW_BUNDLE_JS_SUFFIX . '.js',
36
+ array( 'jquery' ),
37
+ SOW_BUNDLE_VERSION
38
+ );
39
+ wp_enqueue_style(
40
+ 'so-location-field',
41
+ plugin_dir_url( __FILE__ ) . 'css/location-field.css',
42
+ array(),
43
+ SOW_BUNDLE_VERSION
44
+ );
45
+ }
46
+
47
+ protected function sanitize_field_input( $value, $instance ) {
48
+ if ( empty( $value ) ) {
49
+ return array();
50
+ }
51
+ if ( is_string( $value ) ) {
52
+ $decoded_value = json_decode( $value, true );
53
+ // If it's not valid JSON
54
+ if ( $decoded_value == null ) {
55
+ $decoded_value = array( 'address' => $value );
56
+ }
57
+ }
58
+ $location = array();
59
+
60
+ if ( ! empty( $decoded_value['name'] ) ) {
61
+ $location['name'] = wp_kses_post( $decoded_value['name'] );
62
+ }
63
+ if ( ! empty( $decoded_value['address'] ) ) {
64
+ $location['address'] = wp_kses_post( $decoded_value['address'] );
65
+ }
66
+ if ( ! empty( $decoded_value['location'] ) ) {
67
+ $location['location'] = wp_kses_post( $decoded_value['location'] );
68
+ }
69
+
70
+ return $location;
71
+ }
72
+ }
widgets/google-map/google-map.php CHANGED
@@ -23,6 +23,16 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
23
  false,
24
  plugin_dir_path(__FILE__)
25
  );
 
 
 
 
 
 
 
 
 
 
26
  }
27
 
28
  function initialize() {
@@ -32,7 +42,7 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
32
  function get_widget_form(){
33
  return array(
34
  'map_center' => array(
35
- 'type' => 'textarea',
36
  'rows' => 2,
37
  'label' => __( 'Map center', 'so-widgets-bundle' ),
38
  'description' => sprintf(
@@ -203,16 +213,15 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
203
  'marker_positions' => array(
204
  'type' => 'repeater',
205
  'label' => __( 'Marker positions', 'so-widgets-bundle' ),
206
- 'description' => __( 'Please be aware that adding more than 10 markers may cause a slight delay before they appear, due to Google Geocoding API rate limits.', 'so-widgets-bundle' ),
207
  'item_name' => __( 'Marker', 'so-widgets-bundle' ),
208
  'item_label' => array(
209
- 'selector' => "[id*='marker_positions-place']",
210
  'update_event' => 'change',
211
  'value_method' => 'val'
212
  ),
213
  'fields' => array(
214
  'place' => array(
215
- 'type' => 'textarea',
216
  'rows' => 2,
217
  'label' => __( 'Place', 'so-widgets-bundle' )
218
  ),
@@ -490,16 +499,20 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
490
 
491
  $markerpos = isset( $markers['marker_positions'] ) ? $markers['marker_positions'] : '';
492
  if( ! empty($markerpos)) {
493
- foreach ($markerpos as $key => $pos) {
494
- if(! empty($pos['custom_marker_icon'])) {
495
  $icon_src = wp_get_attachment_image_src( $pos['custom_marker_icon'] );
496
- $markerpos[$key]['custom_marker_icon'] = $icon_src[0];
 
 
 
497
  }
498
  }
499
  }
500
-
 
501
  $map_data = siteorigin_widgets_underscores_to_camel_case( array(
502
- 'address' => $instance['map_center'],
503
  'zoom' => $settings['zoom'],
504
  'scroll_zoom' => $settings['scroll_zoom'],
505
  'draggable' => $settings['draggable'],
@@ -518,13 +531,27 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
518
  ));
519
 
520
  return array(
521
- 'map_id' => md5( $instance['map_center'] ),
522
  'height' => $settings['height'],
523
  'map_data' => $map_data,
524
  'fallback_image_data' => array( 'img' => $fallback_image ),
525
  );
526
  }
527
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
 
529
  public function enqueue_widget_scripts( $instance ) {
530
  if ( ! empty( $instance['settings']['map_type'] ) && $instance['settings']['map_type'] == 'interactive' ||
@@ -611,8 +638,9 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
611
  }
612
 
613
  private function get_static_image_src( $instance, $width, $height, $styles ) {
 
614
  $src_url = "https://maps.googleapis.com/maps/api/staticmap?";
615
- $src_url .= "center=" . $instance['map_center'];
616
  $src_url .= "&zoom=" . $instance['settings']['zoom'];
617
  $src_url .= "&size=" . $width . "x" . $height;
618
 
@@ -669,7 +697,7 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
669
  if ( ! empty( $markers_st ) ) {
670
  $markers_st .= "|";
671
  }
672
- $markers_st .= $instance['map_center'];
673
  }
674
 
675
  if ( ! empty( $markers['marker_positions'] ) ) {
@@ -677,7 +705,7 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
677
  if ( ! empty( $markers_st ) ) {
678
  $markers_st .= "|";
679
  }
680
- $markers_st .= urlencode( $marker['place'] );
681
  }
682
  }
683
  $markers_st = '&markers=' . $markers_st;
@@ -689,6 +717,18 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
689
 
690
  public function modify_instance( $instance ) {
691
 
 
 
 
 
 
 
 
 
 
 
 
 
692
  if ( empty( $instance['api_key_section'] ) ) {
693
  $instance['api_key_section'] = array();
694
  }
@@ -700,6 +740,36 @@ class SiteOrigin_Widget_GoogleMap_Widget extends SiteOrigin_Widget {
700
  }
701
  return $instance;
702
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
703
  }
704
 
705
  siteorigin_widget_register( 'sow-google-map', __FILE__, 'SiteOrigin_Widget_GoogleMap_Widget' );
 
23
  false,
24
  plugin_dir_path(__FILE__)
25
  );
26
+
27
+ add_filter( 'siteorigin_widgets_field_class_paths', array( $this, 'add_location_field_path' ) );
28
+ }
29
+
30
+ // Tell the autoloader where to look for the location field class.
31
+ function add_location_field_path( $class_paths ) {
32
+
33
+ $class_paths[] = plugin_dir_path( __FILE__ ) . 'fields/';
34
+
35
+ return $class_paths;
36
  }
37
 
38
  function initialize() {
42
  function get_widget_form(){
43
  return array(
44
  'map_center' => array(
45
+ 'type' => 'location',
46
  'rows' => 2,
47
  'label' => __( 'Map center', 'so-widgets-bundle' ),
48
  'description' => sprintf(
213
  'marker_positions' => array(
214
  'type' => 'repeater',
215
  'label' => __( 'Marker positions', 'so-widgets-bundle' ),
 
216
  'item_name' => __( 'Marker', 'so-widgets-bundle' ),
217
  'item_label' => array(
218
+ 'selector' => ".siteorigin-widget-location-input",
219
  'update_event' => 'change',
220
  'value_method' => 'val'
221
  ),
222
  'fields' => array(
223
  'place' => array(
224
+ 'type' => 'location',
225
  'rows' => 2,
226
  'label' => __( 'Place', 'so-widgets-bundle' )
227
  ),
499
 
500
  $markerpos = isset( $markers['marker_positions'] ) ? $markers['marker_positions'] : '';
501
  if( ! empty($markerpos)) {
502
+ foreach ($markerpos as &$pos) {
503
+ if ( ! empty( $pos['custom_marker_icon'] ) ) {
504
  $icon_src = wp_get_attachment_image_src( $pos['custom_marker_icon'] );
505
+ $pos['custom_marker_icon'] = $icon_src[0];
506
+ }
507
+ if ( ! empty( $pos['place'] ) ) {
508
+ $pos['place'] = $this->get_location_string( $pos['place'] );
509
  }
510
  }
511
  }
512
+ $location = $this->get_location_string( $instance['map_center'] );
513
+
514
  $map_data = siteorigin_widgets_underscores_to_camel_case( array(
515
+ 'address' => $location,
516
  'zoom' => $settings['zoom'],
517
  'scroll_zoom' => $settings['scroll_zoom'],
518
  'draggable' => $settings['draggable'],
531
  ));
532
 
533
  return array(
534
+ 'map_id' => md5( json_encode( $instance ) ),
535
  'height' => $settings['height'],
536
  'map_data' => $map_data,
537
  'fallback_image_data' => array( 'img' => $fallback_image ),
538
  );
539
  }
540
  }
541
+
542
+ private function get_location_string( $location_data ) {
543
+ $location = '';
544
+ if ( ! empty( $location_data['location'] ) ) {
545
+ $location = $location_data['location'];
546
+ $location = preg_replace( '/[\(\)]/', '', $location );
547
+ } else if ( ! empty( $location_data['address'] ) ) {
548
+ $location = $location_data['address'];
549
+ } else if ( ! empty( $location_data['name'] ) ) {
550
+ $location = $location_data['name'];
551
+ }
552
+
553
+ return $location;
554
+ }
555
 
556
  public function enqueue_widget_scripts( $instance ) {
557
  if ( ! empty( $instance['settings']['map_type'] ) && $instance['settings']['map_type'] == 'interactive' ||
638
  }
639
 
640
  private function get_static_image_src( $instance, $width, $height, $styles ) {
641
+ $location = $this->get_location_string( $instance['map_center'] );
642
  $src_url = "https://maps.googleapis.com/maps/api/staticmap?";
643
+ $src_url .= "center=" . $location;
644
  $src_url .= "&zoom=" . $instance['settings']['zoom'];
645
  $src_url .= "&size=" . $width . "x" . $height;
646
 
697
  if ( ! empty( $markers_st ) ) {
698
  $markers_st .= "|";
699
  }
700
+ $markers_st .= $location;
701
  }
702
 
703
  if ( ! empty( $markers['marker_positions'] ) ) {
705
  if ( ! empty( $markers_st ) ) {
706
  $markers_st .= "|";
707
  }
708
+ $markers_st .= urlencode( $this->get_location_string( $marker['place'] ) );
709
  }
710
  }
711
  $markers_st = '&markers=' . $markers_st;
717
 
718
  public function modify_instance( $instance ) {
719
 
720
+ if ( ! empty( $instance['map_center'] ) && empty( $instance['map_center']['name'] ) ) {
721
+ $instance['map_center'] = $this->migrate_location( $instance['map_center'] );
722
+ }
723
+
724
+ if ( ! empty( $instance['markers'] ) && ! empty( $instance['markers']['marker_positions'] ) ) {
725
+ foreach ( $instance['markers']['marker_positions'] as &$marker_position ) {
726
+ if ( ! empty( $marker_position['place'] ) && empty( $marker_position['place']['name'] ) ) {
727
+ $marker_position['place'] = $this->migrate_location( $marker_position['place'] );
728
+ }
729
+ }
730
+ }
731
+
732
  if ( empty( $instance['api_key_section'] ) ) {
733
  $instance['api_key_section'] = array();
734
  }
740
  }
741
  return $instance;
742
  }
743
+
744
+ private function migrate_location( $location_data ) {
745
+
746
+ if ( is_string( $location_data ) ) {
747
+ $raw_location = json_decode( $location_data, true );
748
+ } else {
749
+ $raw_location = $location_data;
750
+ }
751
+
752
+ $location = array();
753
+ // If it's not valid JSON
754
+ if ( $raw_location == null ) {
755
+ $location = array( 'address' => $location_data );
756
+ } else if ( is_array( $raw_location ) ) {
757
+ $location = array();
758
+
759
+ if ( ! empty( $raw_location['name'] ) ) {
760
+ $location['name'] = $raw_location['name'];
761
+ }
762
+ if ( ! empty( $raw_location['address'] ) ) {
763
+ $location['address'] = $raw_location['address'];
764
+ }
765
+ if ( ! empty( $raw_location['location'] ) ) {
766
+ $location['location'] = $raw_location['location'];
767
+ }
768
+ }
769
+
770
+ return $location;
771
+ }
772
  }
773
 
774
  siteorigin_widget_register( 'sow-google-map', __FILE__, 'SiteOrigin_Widget_GoogleMap_Widget' );
775
+
widgets/headline/headline.php CHANGED
@@ -25,6 +25,8 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
25
  }
26
 
27
  function initialize(){
 
 
28
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $this->id_base, array( $this, 'wrapper_class_filter' ), 10, 2 );
29
  add_filter( 'siteorigin_widgets_wrapper_data_' . $this->id_base, array( $this, 'wrapper_data_filter' ), 10, 2 );
30
  }
@@ -257,7 +259,7 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
257
  'fittext_compressor' => array(
258
  'type' => 'number',
259
  'label' => __( 'FitText Compressor Strength', 'so-widgets-bundle' ),
260
- 'description' => __( 'The lower the value, the more your headings will be scaled down. Values above 1 are allowed.', 'so-widgets-bundle' ),
261
  'default' => 0.85,
262
  'state_handler' => array(
263
  'use_fittext[show]' => array( 'show' ),
@@ -349,19 +351,24 @@ class SiteOrigin_Widget_Headline_Widget extends SiteOrigin_Widget {
349
  }
350
 
351
  function wrapper_class_filter( $classes, $instance ){
352
- if( $instance[ 'fittext' ] ) {
353
  $classes[] = 'so-widget-fittext-wrapper';
354
- wp_enqueue_script( 'sowb-fittext' );
355
  }
356
  return $classes;
357
  }
358
 
359
  function wrapper_data_filter( $data, $instance ) {
360
- if( $instance['fittext'] ) {
361
  $data['fit-text-compressor'] = $instance['fittext_compressor'];
362
  }
363
  return $data;
364
  }
 
 
 
 
 
 
365
 
366
  function modify_instance( $instance ) {
367
  // Change the old divider weight into a divider thickness
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
  }
259
  'fittext_compressor' => array(
260
  'type' => 'number',
261
  'label' => __( 'FitText Compressor Strength', 'so-widgets-bundle' ),
262
+ 'description' => __( 'The higher the value, the more your headings will be scaled down. Values above 1 are allowed.', 'so-widgets-bundle' ),
263
  'default' => 0.85,
264
  'state_handler' => array(
265
  'use_fittext[show]' => array( 'show' ),
351
  }
352
 
353
  function wrapper_class_filter( $classes, $instance ){
354
+ if( ! empty( $instance[ 'fittext' ] ) ) {
355
  $classes[] = 'so-widget-fittext-wrapper';
 
356
  }
357
  return $classes;
358
  }
359
 
360
  function wrapper_data_filter( $data, $instance ) {
361
+ if( ! empty( $instance['fittext'] ) ) {
362
  $data['fit-text-compressor'] = $instance['fittext_compressor'];
363
  }
364
  return $data;
365
  }
366
+
367
+ function enqueue_widget_scripts( $instance ) {
368
+ if( ! empty( $instance['fittext'] ) || $this->is_preview( $instance ) ) {
369
+ wp_enqueue_script( 'sowb-fittext' );
370
+ }
371
+ }
372
 
373
  function modify_instance( $instance ) {
374
  // Change the old divider weight into a divider thickness
widgets/hero/hero.php CHANGED
@@ -33,7 +33,9 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
33
  if( !class_exists('SiteOrigin_Widget_Button_Widget') ) {
34
  SiteOrigin_Widgets_Bundle::single()->include_widget( 'button' );
35
  }
36
-
 
 
37
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $this->id_base, array( $this, 'wrapper_class_filter' ), 10, 2 );
38
  add_filter( 'siteorigin_widgets_wrapper_data_' . $this->id_base, array( $this, 'wrapper_data_filter' ), 10, 2 );
39
 
@@ -230,7 +232,7 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
230
  'fittext_compressor' => array(
231
  'type' => 'number',
232
  'label' => __( 'FitText Compressor Strength', 'so-widgets-bundle' ),
233
- 'description' => __( 'The lower the value, the more your headings will be scaled down. Values above 1 are allowed.', 'so-widgets-bundle' ),
234
  'default' => 0.85,
235
  'state_handler' => array(
236
  'use_fittext[show]' => array( 'show' ),
@@ -465,7 +467,6 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
465
  function wrapper_class_filter( $classes, $instance ){
466
  if( ! empty( $instance['design']['fittext'] ) ) {
467
  $classes[] = 'so-widget-fittext-wrapper';
468
- wp_enqueue_script( 'sowb-fittext' );
469
  }
470
  return $classes;
471
  }
@@ -476,7 +477,12 @@ class SiteOrigin_Widget_Hero_Widget extends SiteOrigin_Widget_Base_Slider {
476
  }
477
  return $data;
478
  }
479
-
 
 
 
 
 
480
  }
481
 
482
  siteorigin_widget_register('sow-hero', __FILE__, 'SiteOrigin_Widget_Hero_Widget');
33
  if( !class_exists('SiteOrigin_Widget_Button_Widget') ) {
34
  SiteOrigin_Widgets_Bundle::single()->include_widget( 'button' );
35
  }
36
+
37
+ add_action( 'siteorigin_widgets_enqueue_frontend_scripts_' . $this->id_base, array( $this, 'enqueue_widget_scripts' ) );
38
+
39
  add_filter( 'siteorigin_widgets_wrapper_classes_' . $this->id_base, array( $this, 'wrapper_class_filter' ), 10, 2 );
40
  add_filter( 'siteorigin_widgets_wrapper_data_' . $this->id_base, array( $this, 'wrapper_data_filter' ), 10, 2 );
41
 
232
  'fittext_compressor' => array(
233
  'type' => 'number',
234
  'label' => __( 'FitText Compressor Strength', 'so-widgets-bundle' ),
235
+ 'description' => __( 'The higher the value, the more your headings will be scaled down. Values above 1 are allowed.', 'so-widgets-bundle' ),
236
  'default' => 0.85,
237
  'state_handler' => array(
238
  'use_fittext[show]' => array( 'show' ),
467
  function wrapper_class_filter( $classes, $instance ){
468
  if( ! empty( $instance['design']['fittext'] ) ) {
469
  $classes[] = 'so-widget-fittext-wrapper';
 
470
  }
471
  return $classes;
472
  }
477
  }
478
  return $data;
479
  }
480
+
481
+ function enqueue_widget_scripts( $instance ) {
482
+ if( ! empty( $instance['design']['fittext'] ) || $this->is_preview( $instance ) ) {
483
+ wp_enqueue_script( 'sowb-fittext' );
484
+ }
485
+ }
486
  }
487
 
488
  siteorigin_widget_register('sow-hero', __FILE__, 'SiteOrigin_Widget_Hero_Widget');
widgets/post-carousel/js/carousel.js CHANGED
@@ -27,8 +27,9 @@ jQuery( function ( $ ) {
27
 
28
  var updatePosition = function () {
29
  if ( position < 0 ) position = 0;
30
- if ( position >= $$.find( '.sow-carousel-item' ).length - 1 ) {
31
- position = $$.find( '.sow-carousel-item' ).length - 1;
 
32
  // Fetch the next batch
33
  if ( !fetching && !complete ) {
34
  fetching = true;
27
 
28
  var updatePosition = function () {
29
  if ( position < 0 ) position = 0;
30
+ var numVisibleItems = Math.ceil( $$.outerWidth() / itemWidth );
31
+ // Offset position by numVisibleItems to trigger the next fetch before the view is empty.
32
+ if ( position + numVisibleItems >= $$.find( '.sow-carousel-item' ).length - 1 ) {
33
  // Fetch the next batch
34
  if ( !fetching && !complete ) {
35
  fetching = true;
widgets/post-carousel/js/carousel.min.js CHANGED
@@ -1 +1 @@
1
- var sowb=window.sowb||{};jQuery(function(y){sowb.setupCarousel=function(){y(".sow-carousel-wrapper").each(function(){var t=y(this),e=t.closest(".sow-carousel-container"),s=t.closest(".sow-carousel-container").parent(),n=t.find(".sow-carousel-items"),a=t.find(".sow-carousel-item"),o=a.eq(0),u=0,i=1,r=!1,l=a.length,c=t.data("found-posts"),w=l===c,f=o.width()+parseInt(o.css("margin-right")),d=e.hasClass("js-rtl"),p=d?"margin-right":"margin-left",h=function(){if(u<0&&(u=0),u>=t.find(".sow-carousel-item").length-1&&(u=t.find(".sow-carousel-item").length-1,!r&&!w)){r=!0,i++,n.append('<li class="sow-carousel-item sow-carousel-loading"></li>');var e=s.find('input[name="instance_hash"]').val();y.get(t.data("ajax-url"),{query:t.data("query"),action:"sow_carousel_load",paged:i,instance_hash:e},function(e,s){y(e.html).appendTo(n).hide().fadeIn(),t.find(".sow-carousel-loading").remove(),l=t.find(".sow-carousel-item").length,w=l===c,r=!1})}n.css("transition-duration","0.45s"),n.css(p,-f*u+"px")};if(s.on("click","a.sow-carousel-previous",function(e){e.preventDefault(),u-=d?-1:1,h()}),s.on("click","a.sow-carousel-next",function(e){e.preventDefault(),u+=d?-1:1,h()}),"function"==typeof t.swipe){var g,m=!1,v=0,b=0,D=0,I=0,T=d?"right":"left",x=function(e){return e<50&&-f*l<e&&(n.css("transition-duration","0s"),n.css(p,e+"px"),!0)},_=function(){var e=parseInt(n.css(p));u=Math.abs(Math.round(e/f)),h()};t.on("click",".sow-carousel-item a",function(e){m&&(e.preventDefault(),m=!1)}),t.swipe({excludedElements:"",triggerOnTouchEnd:!0,threshold:75,swipeStatus:function(e,s,n,a,t,o,i){if("up"===n||"down"===n)return!1;if("start"===s)b=-f*u,I=(new Date).getTime(),clearInterval(g);else if("move"===s){n===T&&(a*=-1),x(b+a);var r=(new Date).getTime();D=(a-v)/((r-I)/1e3),I=r,v=a}else if("end"===s)if(m=!0,n===T&&(a*=-1),400<Math.abs(D)){D*=.1;var l=(new Date).getTime(),c=0;g=setInterval(function(){var e=((new Date).getTime()-l)/1e3,s=b+a+(c+=D*e),t=Math.abs(D)-30<0;n===T?D+=30:D-=30,!t&&x(s)||(clearInterval(g),_())},20)}else _();else"cancel"===s&&h()}})}})},sowb.setupCarousel(),y(sowb).on("setup_widgets",sowb.setupCarousel)}),window.sowb=sowb;
1
+ var sowb=window.sowb||{};jQuery(function(_){sowb.setupCarousel=function(){_(".sow-carousel-wrapper").each(function(){var t=_(this),e=t.closest(".sow-carousel-container"),a=t.closest(".sow-carousel-container").parent(),n=t.find(".sow-carousel-items"),s=t.find(".sow-carousel-item"),o=s.eq(0),u=0,i=1,r=!1,c=s.length,l=t.data("found-posts"),w=c===l,f=o.width()+parseInt(o.css("margin-right")),d=e.hasClass("js-rtl"),p=d?"margin-right":"margin-left",h=function(){u<0&&(u=0);var e=Math.ceil(t.outerWidth()/f);if(u+e>=t.find(".sow-carousel-item").length-1&&!r&&!w){r=!0,i++,n.append('<li class="sow-carousel-item sow-carousel-loading"></li>');var s=a.find('input[name="instance_hash"]').val();_.get(t.data("ajax-url"),{query:t.data("query"),action:"sow_carousel_load",paged:i,instance_hash:s},function(e,s){_(e.html).appendTo(n).hide().fadeIn(),t.find(".sow-carousel-loading").remove(),c=t.find(".sow-carousel-item").length,w=c===l,r=!1})}n.css("transition-duration","0.45s"),n.css(p,-f*u+"px")};if(a.on("click","a.sow-carousel-previous",function(e){e.preventDefault(),u-=d?-1:1,h()}),a.on("click","a.sow-carousel-next",function(e){e.preventDefault(),u+=d?-1:1,h()}),"function"==typeof t.swipe){var g,v=!1,m=0,b=0,D=0,I=0,T=d?"right":"left",x=function(e){return e<50&&-f*c<e&&(n.css("transition-duration","0s"),n.css(p,e+"px"),!0)},M=function(){var e=parseInt(n.css(p));u=Math.abs(Math.round(e/f)),h()};t.on("click",".sow-carousel-item a",function(e){v&&(e.preventDefault(),v=!1)}),t.swipe({excludedElements:"",triggerOnTouchEnd:!0,threshold:75,swipeStatus:function(e,s,a,n,t,o,i){if("up"===a||"down"===a)return!1;if("start"===s)b=-f*u,I=(new Date).getTime(),clearInterval(g);else if("move"===s){a===T&&(n*=-1),x(b+n);var r=(new Date).getTime();D=(n-m)/((r-I)/1e3),I=r,m=n}else if("end"===s)if(v=!0,a===T&&(n*=-1),400<Math.abs(D)){D*=.1;var c=(new Date).getTime(),l=0;g=setInterval(function(){var e=((new Date).getTime()-c)/1e3,s=b+n+(l+=D*e),t=Math.abs(D)-30<0;a===T?D+=30:D-=30,!t&&x(s)||(clearInterval(g),M())},20)}else M();else"cancel"===s&&h()}})}})},sowb.setupCarousel(),_(sowb).on("setup_widgets",sowb.setupCarousel)}),window.sowb=sowb;
widgets/social-media-buttons/data/networks.php CHANGED
@@ -100,6 +100,12 @@ return array(
100
  'icon_color' => '#FFFFFF',
101
  'button_color' => '#2A2929'
102
  ),
 
 
 
 
 
 
103
  'behance' => array(
104
  'label' => __( 'Behance', 'so-widgets-bundle' ),
105
  'base_url' => 'https://www.behance.net/',
@@ -112,6 +118,12 @@ return array(
112
  'icon_color' => '#FFFFFF',
113
  'button_color' => '#205081'
114
  ),
 
 
 
 
 
 
115
  'codepen' => array(
116
  'label' => __( 'Codepen', 'so-widgets-bundle' ),
117
  'base_url' => 'https://codepen.io/',
@@ -160,6 +172,12 @@ return array(
160
  'icon_color' => '#FFFFFF',
161
  'button_color' => '#653614'
162
  ),
 
 
 
 
 
 
163
  'hacker-news' => array(
164
  'label' => __( 'Hacker News', 'so-widgets-bundle' ),
165
  'base_url' => 'https://news.ycombinator.com/',
@@ -226,12 +244,24 @@ return array(
226
  'icon_color' => '#FFFFFF',
227
  'button_color' => '#171A21'
228
  ),
 
 
 
 
 
 
229
  'stumbleupon' => array(
230
  'label' => __( 'StumbleUpon', 'so-widgets-bundle' ),
231
  'base_url' => 'https://www.stumbleupon.com/',
232
  'icon_color' => '#FFFFFF',
233
  'button_color' => '#EB4924'
234
  ),
 
 
 
 
 
 
235
  'trello' => array(
236
  'label' => __( 'Trello', 'so-widgets-bundle' ),
237
  'base_url' => 'https://trello.com/',
100
  'icon_color' => '#FFFFFF',
101
  'button_color' => '#2A2929'
102
  ),
103
+ 'bandcamp' => array(
104
+ 'label' => __( 'Bandcamp', 'so-widgets-bundle' ),
105
+ 'base_url' => 'https://bandcamp.com/',
106
+ 'icon_color' => '#1da0c3',
107
+ 'button_color' => '#FFFFFF'
108
+ ),
109
  'behance' => array(
110
  'label' => __( 'Behance', 'so-widgets-bundle' ),
111
  'base_url' => 'https://www.behance.net/',
118
  'icon_color' => '#FFFFFF',
119
  'button_color' => '#205081'
120
  ),
121
+ 'blogger-b' => array(
122
+ 'label' => __( 'Blogger', 'so-widgets-bundle' ),
123
+ 'base_url' => 'https://www.blogger.com/',
124
+ 'icon_color' => '#f1f1f1',
125
+ 'button_color' => '#ff5722'
126
+ ),
127
  'codepen' => array(
128
  'label' => __( 'Codepen', 'so-widgets-bundle' ),
129
  'base_url' => 'https://codepen.io/',
172
  'icon_color' => '#FFFFFF',
173
  'button_color' => '#653614'
174
  ),
175
+ 'goodreads-g' => array(
176
+ 'label' => __( 'Goodreads', 'so-widgets-bundle' ),
177
+ 'base_url' => 'https://goodreads.com/',
178
+ 'icon_color' => '#372213',
179
+ 'button_color' => '#e2e0d1'
180
+ ),
181
  'hacker-news' => array(
182
  'label' => __( 'Hacker News', 'so-widgets-bundle' ),
183
  'base_url' => 'https://news.ycombinator.com/',
244
  'icon_color' => '#FFFFFF',
245
  'button_color' => '#171A21'
246
  ),
247
+ 'strava' => array(
248
+ 'label' => __( 'Strava', 'so-widgets-bundle' ),
249
+ 'base_url' => 'https://www.strava.com/athletes/',
250
+ 'icon_color' => '#FFFFFF',
251
+ 'button_color' => '#fc4c02'
252
+ ),
253
  'stumbleupon' => array(
254
  'label' => __( 'StumbleUpon', 'so-widgets-bundle' ),
255
  'base_url' => 'https://www.stumbleupon.com/',
256
  'icon_color' => '#FFFFFF',
257
  'button_color' => '#EB4924'
258
  ),
259
+ 'telegram-plane' => array(
260
+ 'label' => __( 'Telegram', 'so-widgets-bundle' ),
261
+ 'base_url' => 'https://t.me/',
262
+ 'icon_color' => '#FFFFFF',
263
+ 'button_color' => '#27a7e5'
264
+ ),
265
  'trello' => array(
266
  'label' => __( 'Trello', 'so-widgets-bundle' ),
267
  'base_url' => 'https://trello.com/',
widgets/tabs/styles/default.less CHANGED
@@ -9,6 +9,7 @@
9
  @tabs_container_border_radius: default;
10
  @tabs_container_padding: 12px 10px 0px 10px;
11
  @tabs_container_tabs_align: default;
 
12
 
13
  @tabs_background_color: default;
14
  @tabs_background_hover_color: default;
@@ -42,7 +43,24 @@
42
  .sow-tabs-tab-container {
43
  background-color: @tabs_container_background_color;
44
  padding: @tabs_container_padding;
45
- text-align: @tabs_container_tabs_align;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
  //noinspection CssOptimizeSimilarProperties
48
  & when ( @has_tabs_container_border_width = true ) {
@@ -113,4 +131,27 @@
113
  }
114
  }
115
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
  }
9
  @tabs_container_border_radius: default;
10
  @tabs_container_padding: 12px 10px 0px 10px;
11
  @tabs_container_tabs_align: default;
12
+ @tabs_container_tabs_position: default;
13
 
14
  @tabs_background_color: default;
15
  @tabs_background_hover_color: default;
43
  .sow-tabs-tab-container {
44
  background-color: @tabs_container_background_color;
45
  padding: @tabs_container_padding;
46
+
47
+ & when ( @tabs_container_tabs_position = left ), ( @tabs_container_tabs_position = right ) {
48
+ & when not ( @tabs_container_tabs_align = top ) {
49
+ display: flex;
50
+ flex-direction: column;
51
+ & when ( @tabs_container_tabs_align = middle ) {
52
+ justify-content: center;
53
+ }
54
+ & when ( @tabs_container_tabs_align = bottom ) {
55
+ justify-content: flex-end;
56
+ }
57
+ }
58
+ }
59
+
60
+ & when ( @tabs_container_tabs_position = top ), ( @tabs_container_tabs_position = bottom ) {
61
+ text-align: @tabs_container_tabs_align;
62
+ }
63
+
64
 
65
  //noinspection CssOptimizeSimilarProperties
66
  & when ( @has_tabs_container_border_width = true ) {
131
  }
132
  }
133
  }
134
+
135
+ & when not ( @tabs_container_tabs_position = top ) {
136
+ display: flex;
137
+ }
138
+
139
+ & when ( @tabs_container_tabs_position = bottom ) {
140
+ flex-direction: column-reverse;
141
+ }
142
+
143
+
144
+ & when ( @tabs_container_tabs_position = left ), ( @tabs_container_tabs_position = right ) {
145
+ & when ( @tabs_container_tabs_position = right ) {
146
+ flex-direction: row-reverse;
147
+ }
148
+
149
+ .sow-tabs-panel-container {
150
+ flex: 1;
151
+ }
152
+
153
+ .sow-tabs-tab {
154
+ display: block !important;
155
+ }
156
+ }
157
  }