Version Description
- 15 November 2018 =
- Contact: Fix checkboxes and radio alignment on android.
- FitText: Set minimum font size to ensure readability.
- TinyMCE field: Use correct editor when block editor is present.
- Google maps: Use correct info window text for markers.
- TinyMCE: Remove 'editor-buttons' style enqueue causing conflicts.
- TinyMCE field: Prevent adding multiple copies of media buttons.
- Image widget: if no alt text is supplied add an empty alt attribute.
- Repeaters: Reverted some commits causing multiple issues.
- WP 5: Fixed some styles in the block editor.
- Only setup form fields in the dialog when a PB edit widget dialog is opened.
- Multi-measurement field: Fix autoFill in block editor and attempt to fix in PHP <
Download this release
Release Info
Developer | gpriday |
Plugin | SiteOrigin Widgets Bundle |
Version | 1.13.3 |
Comparing to | |
See all releases |
Code changes from version 1.13.2 to 1.13.3
- base/base.php +0 -5
- base/css/admin.css +16 -13
- base/inc/fields/builder.class.php +1 -1
- base/inc/fields/container-base.class.php +122 -122
- base/inc/fields/js/multi-measurement-field.js +57 -57
- base/inc/fields/js/multi-measurement-field.min.js +1 -1
- base/inc/fields/js/tinymce-field.js +9 -5
- base/inc/fields/js/tinymce-field.min.js +1 -1
- base/inc/fields/multi-measurement.class.php +122 -118
- base/inc/fields/repeater.class.php +0 -1
- base/inc/fields/section.class.php +22 -22
- base/js/admin.js +15 -12
- base/js/admin.min.js +1 -1
- base/siteorigin-widget.class.php +3 -3
- compat/{gutenberg → block-editor}/widget-block.js +11 -11
- compat/block-editor/widget-block.min.js +1 -0
- compat/{gutenberg/gutenberg.php → block-editor/widget-block.php} +4 -4
- compat/compat.php +1 -1
- compat/gutenberg/widget-block.min.js +0 -1
- js/sow.google-map.js +66 -55
- js/sow.google-map.min.js +1 -1
- js/sow.jquery.fittext.js +1 -0
- js/sow.jquery.fittext.min.js +1 -1
- lang/so-widgets-bundle.pot +12 -12
- readme.txt +15 -2
- so-widgets-bundle.php +2 -2
- widgets/contact/styles/default.less +3 -1
- widgets/google-map/tpl/static-map.php +22 -22
- widgets/image/tpl/default.php +29 -29
base/base.php
CHANGED
@@ -246,11 +246,6 @@ function siteorigin_widgets_font_families( ){
|
|
246 |
return apply_filters('siteorigin_widgets_font_families', $font_families);
|
247 |
}
|
248 |
|
249 |
-
function siteorigin_widgets_tinymce_admin_print_styles() {
|
250 |
-
wp_enqueue_style( 'editor-buttons' );
|
251 |
-
}
|
252 |
-
add_action( 'admin_print_styles', 'siteorigin_widgets_tinymce_admin_print_styles' );
|
253 |
-
|
254 |
/**
|
255 |
* Get list of supported measurements
|
256 |
*
|
246 |
return apply_filters('siteorigin_widgets_font_families', $font_families);
|
247 |
}
|
248 |
|
|
|
|
|
|
|
|
|
|
|
249 |
/**
|
250 |
* Get list of supported measurements
|
251 |
*
|
base/css/admin.css
CHANGED
@@ -591,46 +591,49 @@
|
|
591 |
background-size: cover;
|
592 |
background-image: url("img/bundle-icon.png");
|
593 |
}
|
594 |
-
.widget-icon.so-widget-icon.so-
|
595 |
width: 20px;
|
596 |
height: 20px;
|
597 |
display: inline-block;
|
598 |
}
|
599 |
-
.
|
|
|
|
|
|
|
600 |
background: url("img/bundle-icon.png") no-repeat left;
|
601 |
background-size: 20px;
|
602 |
padding-left: 25px;
|
603 |
}
|
604 |
-
.
|
605 |
max-width: unset;
|
606 |
}
|
607 |
-
.
|
608 |
width: 100%;
|
609 |
}
|
610 |
-
.
|
611 |
min-width: unset;
|
612 |
}
|
613 |
-
.
|
614 |
text-align: left;
|
615 |
}
|
616 |
-
.
|
617 |
padding: 3px 5px;
|
618 |
}
|
619 |
-
.
|
620 |
-
.
|
621 |
box-shadow: unset;
|
622 |
font-size: 13px;
|
623 |
height: 28px;
|
624 |
}
|
625 |
-
.
|
626 |
height: 37px;
|
627 |
}
|
628 |
-
.
|
629 |
box-sizing: content-box;
|
630 |
}
|
631 |
-
.
|
632 |
text-align: center;
|
633 |
}
|
634 |
-
.
|
635 |
display: inline-block;
|
636 |
}
|
591 |
background-size: cover;
|
592 |
background-image: url("img/bundle-icon.png");
|
593 |
}
|
594 |
+
.widget-icon.so-widget-icon.so-block-editor-icon {
|
595 |
width: 20px;
|
596 |
height: 20px;
|
597 |
display: inline-block;
|
598 |
}
|
599 |
+
.block-editor .so-widget-placeholder {
|
600 |
+
text-align: left;
|
601 |
+
}
|
602 |
+
.block-editor .so-widget-placeholder > .components-placeholder__label {
|
603 |
background: url("img/bundle-icon.png") no-repeat left;
|
604 |
background-size: 20px;
|
605 |
padding-left: 25px;
|
606 |
}
|
607 |
+
.block-editor .so-widget-placeholder > .components-placeholder__fieldset {
|
608 |
max-width: unset;
|
609 |
}
|
610 |
+
.block-editor .so-widget-placeholder > .components-placeholder__fieldset .so-widget-block-container {
|
611 |
width: 100%;
|
612 |
}
|
613 |
+
.block-editor .so-widget-placeholder > .components-placeholder__fieldset .so-widget-block-container .siteorigin-widget-form.siteorigin-widget-form-main {
|
614 |
min-width: unset;
|
615 |
}
|
616 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field {
|
617 |
text-align: left;
|
618 |
}
|
619 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field input {
|
620 |
padding: 3px 5px;
|
621 |
}
|
622 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-autocomplete .select-content-button,
|
623 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-link .select-content-button {
|
624 |
box-shadow: unset;
|
625 |
font-size: 13px;
|
626 |
height: 28px;
|
627 |
}
|
628 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-icon .siteorigin-widget-icon-selector-current {
|
629 |
height: 37px;
|
630 |
}
|
631 |
+
.block-editor .siteorigin-widget-form .siteorigin-widget-field.siteorigin-widget-field-type-tinymce .wp-switch-editor {
|
632 |
box-sizing: content-box;
|
633 |
}
|
634 |
+
.block-editor .so-widget-preview-container .so-widgets-spinner-container {
|
635 |
text-align: center;
|
636 |
}
|
637 |
+
.block-editor .so-widget-preview-container .so-widgets-spinner-container > span {
|
638 |
display: inline-block;
|
639 |
}
|
base/inc/fields/builder.class.php
CHANGED
@@ -11,7 +11,7 @@ class SiteOrigin_Widget_Field_Builder extends SiteOrigin_Widget_Field_Base {
|
|
11 |
if( defined('SITEORIGIN_PANELS_VERSION') ) {
|
12 |
// Normal rendering code
|
13 |
// In some contexts this is already encoded, e.g. accordion widget using a layout field for content,
|
14 |
-
// inside a PB block in
|
15 |
$valid_string = is_string( $value ); // Required for PHP <5.4
|
16 |
if ( empty( $valid_string ) ) {
|
17 |
$value = json_encode( $value );
|
11 |
if( defined('SITEORIGIN_PANELS_VERSION') ) {
|
12 |
// Normal rendering code
|
13 |
// In some contexts this is already encoded, e.g. accordion widget using a layout field for content,
|
14 |
+
// inside a PB block in the block editor.
|
15 |
$valid_string = is_string( $value ); // Required for PHP <5.4
|
16 |
if ( empty( $valid_string ) ) {
|
17 |
$value = json_encode( $value );
|
base/inc/fields/container-base.class.php
CHANGED
@@ -1,122 +1,122 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
*
|
5 |
-
* The common base class for fields which may contain and render other fields.
|
6 |
-
*
|
7 |
-
* Class SiteOrigin_Widget_Field_Container_Base
|
8 |
-
*/
|
9 |
-
abstract class SiteOrigin_Widget_Field_Container_Base extends SiteOrigin_Widget_Field_Base {
|
10 |
-
/**
|
11 |
-
* The child field options.
|
12 |
-
*
|
13 |
-
* @access protected
|
14 |
-
* @var array
|
15 |
-
*/
|
16 |
-
protected $fields;
|
17 |
-
/**
|
18 |
-
* The child field instances.
|
19 |
-
*
|
20 |
-
* @access protected
|
21 |
-
* @var array
|
22 |
-
*/
|
23 |
-
protected $sub_fields;
|
24 |
-
/**
|
25 |
-
* Whether or not this container's fields should initially be hidden.
|
26 |
-
*
|
27 |
-
* @access protected
|
28 |
-
* @var bool
|
29 |
-
*/
|
30 |
-
protected $hide;
|
31 |
-
/**
|
32 |
-
* The current visibility state of this container.
|
33 |
-
*
|
34 |
-
* @access protected
|
35 |
-
* @var string
|
36 |
-
*/
|
37 |
-
protected $state;
|
38 |
-
/**
|
39 |
-
* Whether or not this container's fields are rendered within a collapsible container.
|
40 |
-
*
|
41 |
-
* @access protected
|
42 |
-
* @var bool
|
43 |
-
*/
|
44 |
-
protected $collapsible = true;
|
45 |
-
|
46 |
-
protected function render_before_field( $value, $instance ) {
|
47 |
-
if( ! empty( $value[ 'so_field_container_state' ] ) ) {
|
48 |
-
$this->state = $value[ 'so_field_container_state' ];
|
49 |
-
}
|
50 |
-
else {
|
51 |
-
$this->state = $this->hide ? 'closed' : 'open';
|
52 |
-
}
|
53 |
-
|
54 |
-
parent::render_before_field( $value, $instance );
|
55 |
-
}
|
56 |
-
|
57 |
-
protected function get_label_classes( $value, $instance ) {
|
58 |
-
$label_classes = parent::get_label_classes( $value, $instance );
|
59 |
-
if( $this->state == 'open' ) $label_classes[] = 'siteorigin-widget-section-visible';
|
60 |
-
return $label_classes;
|
61 |
-
}
|
62 |
-
|
63 |
-
protected function render_field_label( $value, $instance ) {
|
64 |
-
if ($this->collapsible ) {
|
65 |
-
parent::render_field_label( $value, $instance );
|
66 |
-
}
|
67 |
-
}
|
68 |
-
|
69 |
-
protected function create_and_render_sub_fields( $values, $parent_container = null, $is_template = false ) {
|
70 |
-
$this->sub_fields = array();
|
71 |
-
if( isset( $parent_container )) {
|
72 |
-
if( ! in_array( $parent_container, $this->parent_container, true ) ){
|
73 |
-
$this->parent_container[] = $parent_container;
|
74 |
-
}
|
75 |
-
}
|
76 |
-
/* @var $field_factory SiteOrigin_Widget_Field_Factory */
|
77 |
-
$field_factory = SiteOrigin_Widget_Field_Factory::single();
|
78 |
-
foreach( $this->fields as $sub_field_name => $sub_field_options ) {
|
79 |
-
/* @var $field SiteOrigin_Widget_Field_Base */
|
80 |
-
$field = $field_factory->create_field(
|
81 |
-
$sub_field_name,
|
82 |
-
$sub_field_options,
|
83 |
-
$this->for_widget,
|
84 |
-
$this->parent_container,
|
85 |
-
$is_template
|
86 |
-
);
|
87 |
-
$sub_value = ( ! empty( $values ) && isset( $values[$sub_field_name] ) ) ? $values[$sub_field_name] : null;
|
88 |
-
$field->render( $sub_value, $values );
|
89 |
-
$field_js_vars = $field->get_javascript_variables();
|
90 |
-
if( ! empty( $field_js_vars ) ) {
|
91 |
-
$this->javascript_variables[$sub_field_name] = $field_js_vars;
|
92 |
-
}
|
93 |
-
$field->enqueue_scripts();
|
94 |
-
$this->sub_fields[$sub_field_name] = $field;
|
95 |
-
}
|
96 |
-
}
|
97 |
-
|
98 |
-
protected function sanitize_field_input( $value, $instance ) {
|
99 |
-
/* @var $field_factory SiteOrigin_Widget_Field_Factory */
|
100 |
-
$field_factory = SiteOrigin_Widget_Field_Factory::single();
|
101 |
-
foreach( $this->fields as $sub_field_name => $sub_field_options ) {
|
102 |
-
|
103 |
-
/* @var $sub_field SiteOrigin_Widget_Field_Base */
|
104 |
-
if( ! empty( $this->sub_fields ) && ! empty( $this->sub_fields[$sub_field_name] ) ) {
|
105 |
-
$sub_field = $this->sub_fields[$sub_field_name];
|
106 |
-
}
|
107 |
-
else {
|
108 |
-
$sub_field = $field_factory->create_field(
|
109 |
-
$this->base_name . '][' . $sub_field_name,
|
110 |
-
$sub_field_options,
|
111 |
-
$this->for_widget,
|
112 |
-
$this->parent_container
|
113 |
-
);
|
114 |
-
}
|
115 |
-
$value[$sub_field_name] = $sub_field->sanitize( isset($value[$sub_field_name]) ? $value[$sub_field_name] : null, $value );
|
116 |
-
$value = $sub_field->sanitize_instance( $value );
|
117 |
-
}
|
118 |
-
|
119 |
-
return $value;
|
120 |
-
}
|
121 |
-
|
122 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
*
|
5 |
+
* The common base class for fields which may contain and render other fields.
|
6 |
+
*
|
7 |
+
* Class SiteOrigin_Widget_Field_Container_Base
|
8 |
+
*/
|
9 |
+
abstract class SiteOrigin_Widget_Field_Container_Base extends SiteOrigin_Widget_Field_Base {
|
10 |
+
/**
|
11 |
+
* The child field options.
|
12 |
+
*
|
13 |
+
* @access protected
|
14 |
+
* @var array
|
15 |
+
*/
|
16 |
+
protected $fields;
|
17 |
+
/**
|
18 |
+
* The child field instances.
|
19 |
+
*
|
20 |
+
* @access protected
|
21 |
+
* @var array
|
22 |
+
*/
|
23 |
+
protected $sub_fields;
|
24 |
+
/**
|
25 |
+
* Whether or not this container's fields should initially be hidden.
|
26 |
+
*
|
27 |
+
* @access protected
|
28 |
+
* @var bool
|
29 |
+
*/
|
30 |
+
protected $hide;
|
31 |
+
/**
|
32 |
+
* The current visibility state of this container.
|
33 |
+
*
|
34 |
+
* @access protected
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
protected $state;
|
38 |
+
/**
|
39 |
+
* Whether or not this container's fields are rendered within a collapsible container.
|
40 |
+
*
|
41 |
+
* @access protected
|
42 |
+
* @var bool
|
43 |
+
*/
|
44 |
+
protected $collapsible = true;
|
45 |
+
|
46 |
+
protected function render_before_field( $value, $instance ) {
|
47 |
+
if( ! empty( $value[ 'so_field_container_state' ] ) ) {
|
48 |
+
$this->state = $value[ 'so_field_container_state' ];
|
49 |
+
}
|
50 |
+
else {
|
51 |
+
$this->state = $this->hide ? 'closed' : 'open';
|
52 |
+
}
|
53 |
+
|
54 |
+
parent::render_before_field( $value, $instance );
|
55 |
+
}
|
56 |
+
|
57 |
+
protected function get_label_classes( $value, $instance ) {
|
58 |
+
$label_classes = parent::get_label_classes( $value, $instance );
|
59 |
+
if( $this->state == 'open' ) $label_classes[] = 'siteorigin-widget-section-visible';
|
60 |
+
return $label_classes;
|
61 |
+
}
|
62 |
+
|
63 |
+
protected function render_field_label( $value, $instance ) {
|
64 |
+
if ($this->collapsible ) {
|
65 |
+
parent::render_field_label( $value, $instance );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
protected function create_and_render_sub_fields( $values, $parent_container = null, $is_template = false ) {
|
70 |
+
$this->sub_fields = array();
|
71 |
+
if( isset( $parent_container )) {
|
72 |
+
if( ! in_array( $parent_container, $this->parent_container, true ) ){
|
73 |
+
$this->parent_container[] = $parent_container;
|
74 |
+
}
|
75 |
+
}
|
76 |
+
/* @var $field_factory SiteOrigin_Widget_Field_Factory */
|
77 |
+
$field_factory = SiteOrigin_Widget_Field_Factory::single();
|
78 |
+
foreach( $this->fields as $sub_field_name => $sub_field_options ) {
|
79 |
+
/* @var $field SiteOrigin_Widget_Field_Base */
|
80 |
+
$field = $field_factory->create_field(
|
81 |
+
$sub_field_name,
|
82 |
+
$sub_field_options,
|
83 |
+
$this->for_widget,
|
84 |
+
$this->parent_container,
|
85 |
+
$is_template
|
86 |
+
);
|
87 |
+
$sub_value = ( ! empty( $values ) && isset( $values[$sub_field_name] ) ) ? $values[$sub_field_name] : null;
|
88 |
+
$field->render( $sub_value, $values );
|
89 |
+
$field_js_vars = $field->get_javascript_variables();
|
90 |
+
if( ! empty( $field_js_vars ) ) {
|
91 |
+
$this->javascript_variables[$sub_field_name] = $field_js_vars;
|
92 |
+
}
|
93 |
+
$field->enqueue_scripts();
|
94 |
+
$this->sub_fields[$sub_field_name] = $field;
|
95 |
+
}
|
96 |
+
}
|
97 |
+
|
98 |
+
protected function sanitize_field_input( $value, $instance ) {
|
99 |
+
/* @var $field_factory SiteOrigin_Widget_Field_Factory */
|
100 |
+
$field_factory = SiteOrigin_Widget_Field_Factory::single();
|
101 |
+
foreach( $this->fields as $sub_field_name => $sub_field_options ) {
|
102 |
+
|
103 |
+
/* @var $sub_field SiteOrigin_Widget_Field_Base */
|
104 |
+
if( ! empty( $this->sub_fields ) && ! empty( $this->sub_fields[$sub_field_name] ) ) {
|
105 |
+
$sub_field = $this->sub_fields[$sub_field_name];
|
106 |
+
}
|
107 |
+
else {
|
108 |
+
$sub_field = $field_factory->create_field(
|
109 |
+
$this->base_name . '][' . $sub_field_name,
|
110 |
+
$sub_field_options,
|
111 |
+
$this->for_widget,
|
112 |
+
$this->parent_container
|
113 |
+
);
|
114 |
+
}
|
115 |
+
$value[$sub_field_name] = $sub_field->sanitize( isset($value[$sub_field_name]) ? $value[$sub_field_name] : null, $value );
|
116 |
+
$value = $sub_field->sanitize_instance( $value );
|
117 |
+
}
|
118 |
+
|
119 |
+
return $value;
|
120 |
+
}
|
121 |
+
|
122 |
+
}
|
base/inc/fields/js/multi-measurement-field.js
CHANGED
@@ -1,57 +1,57 @@
|
|
1 |
-
/* global jQuery */
|
2 |
-
|
3 |
-
(function( $ ) {
|
4 |
-
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-multi-measurement', function ( e ) {
|
5 |
-
|
6 |
-
var valField = $( this ).find( 'input[type="hidden"][class="siteorigin-widget-input"]' );
|
7 |
-
var separator = valField.data( 'separator' );
|
8 |
-
var autoFillEnabled = valField.data( 'autofill' );
|
9 |
-
var values = valField.val() === '' ? [] : valField.val().split( separator );
|
10 |
-
var $valInputs = $( this ).find( '.sow-multi-measurement-input' );
|
11 |
-
var $inputContainers = $( this ).find( '.sow-multi-measurement-input-container' );
|
12 |
-
|
13 |
-
var updateValue = function ( $element ) {
|
14 |
-
var vals = valField.val() === '' ? [] : valField.val().split( separator );
|
15 |
-
var $unitInput = $element.find( '+ .sow-multi-measurement-select-unit' );
|
16 |
-
var index = $valInputs.index( $element );
|
17 |
-
vals[ index ] = $element.val() + ( $element.val() === '' ? '' : $unitInput.val() );
|
18 |
-
valField.val( vals.join( separator ) );
|
19 |
-
};
|
20 |
-
|
21 |
-
$valInputs.each( function ( index, element ) {
|
22 |
-
if ( values.length > index ) {
|
23 |
-
var valueResult = values[ index ].match( /(\d+\.?\d*)([a-z%]+)*/ );
|
24 |
-
if ( valueResult && valueResult.length ) {
|
25 |
-
var amount = valueResult[ 1 ];
|
26 |
-
var unit = valueResult[ 2 ];
|
27 |
-
$( element ).val( amount );
|
28 |
-
$( element ).find( '+ .sow-multi-measurement-select-unit' ).val( unit );
|
29 |
-
}
|
30 |
-
} else {
|
31 |
-
updateValue( $( element ) );
|
32 |
-
}
|
33 |
-
} );
|
34 |
-
|
35 |
-
$inputContainers.change( function ( event ) {
|
36 |
-
var $valInput = $( event.currentTarget ).find( '> .sow-multi-measurement-input' );
|
37 |
-
var doAutofill = autoFillEnabled;
|
38 |
-
if ( autoFillEnabled ) {
|
39 |
-
$valInputs.each( function ( index, element ) {
|
40 |
-
// Only want to autofill if it has been enabled and no other inputs have values.
|
41 |
-
if ( element !== $valInput.eq( 0 ) ) {
|
42 |
-
doAutofill = doAutofill && !( $( element ).val() );
|
43 |
-
}
|
44 |
-
} );
|
45 |
-
}
|
46 |
-
if ( doAutofill ) {
|
47 |
-
$valInputs.each( function( index, element ) {
|
48 |
-
$( element ).val( $valInput.val() );
|
49 |
-
updateValue( $( element ) );
|
50 |
-
} );
|
51 |
-
} else {
|
52 |
-
updateValue( $valInput );
|
53 |
-
}
|
54 |
-
} );
|
55 |
-
|
56 |
-
} );
|
57 |
-
})( jQuery );
|
1 |
+
/* global jQuery */
|
2 |
+
|
3 |
+
(function( $ ) {
|
4 |
+
$( document ).on( 'sowsetupformfield', '.siteorigin-widget-field-type-multi-measurement', function ( e ) {
|
5 |
+
|
6 |
+
var valField = $( this ).find( 'input[type="hidden"][class="siteorigin-widget-input"]' );
|
7 |
+
var separator = valField.data( 'separator' );
|
8 |
+
var autoFillEnabled = valField.data( 'autofill' );
|
9 |
+
var values = valField.val() === '' ? [] : valField.val().split( separator );
|
10 |
+
var $valInputs = $( this ).find( '.sow-multi-measurement-input' );
|
11 |
+
var $inputContainers = $( this ).find( '.sow-multi-measurement-input-container' );
|
12 |
+
|
13 |
+
var updateValue = function ( $element ) {
|
14 |
+
var vals = valField.val() === '' ? [] : valField.val().split( separator );
|
15 |
+
var $unitInput = $element.find( '+ .sow-multi-measurement-select-unit' );
|
16 |
+
var index = $valInputs.index( $element );
|
17 |
+
vals[ index ] = $element.val() + ( $element.val() === '' ? '' : $unitInput.val() );
|
18 |
+
valField.val( vals.join( separator ) );
|
19 |
+
};
|
20 |
+
|
21 |
+
$valInputs.each( function ( index, element ) {
|
22 |
+
if ( values.length > index ) {
|
23 |
+
var valueResult = values[ index ].match( /(\d+\.?\d*)([a-z%]+)*/ );
|
24 |
+
if ( valueResult && valueResult.length ) {
|
25 |
+
var amount = valueResult[ 1 ];
|
26 |
+
var unit = valueResult[ 2 ];
|
27 |
+
$( element ).val( amount );
|
28 |
+
$( element ).find( '+ .sow-multi-measurement-select-unit' ).val( unit );
|
29 |
+
}
|
30 |
+
} else {
|
31 |
+
updateValue( $( element ) );
|
32 |
+
}
|
33 |
+
} );
|
34 |
+
|
35 |
+
$inputContainers.change( function ( event ) {
|
36 |
+
var $valInput = $( event.currentTarget ).find( '> .sow-multi-measurement-input' );
|
37 |
+
var doAutofill = autoFillEnabled;
|
38 |
+
if ( autoFillEnabled ) {
|
39 |
+
$valInputs.each( function ( index, element ) {
|
40 |
+
// Only want to autofill if it has been enabled and no other inputs have values.
|
41 |
+
if ( $( element ).attr( 'id' ) !== $valInput.eq( 0 ).attr( 'id' ) ) {
|
42 |
+
doAutofill = doAutofill && !( $( element ).val() );
|
43 |
+
}
|
44 |
+
} );
|
45 |
+
}
|
46 |
+
if ( doAutofill ) {
|
47 |
+
$valInputs.each( function( index, element ) {
|
48 |
+
$( element ).val( $valInput.val() );
|
49 |
+
updateValue( $( element ) );
|
50 |
+
} );
|
51 |
+
} else {
|
52 |
+
updateValue( $valInput );
|
53 |
+
}
|
54 |
+
} );
|
55 |
+
|
56 |
+
} );
|
57 |
+
})( jQuery );
|
base/inc/fields/js/multi-measurement-field.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(t){t(document).on("sowsetupformfield",".siteorigin-widget-field-type-multi-measurement",function(
|
1 |
+
!function(t){t(document).on("sowsetupformfield",".siteorigin-widget-field-type-multi-measurement",function(i){var e=t(this).find('input[type="hidden"][class="siteorigin-widget-input"]'),n=e.data("separator"),a=e.data("autofill"),l=""===e.val()?[]:e.val().split(n),u=t(this).find(".sow-multi-measurement-input"),s=t(this).find(".sow-multi-measurement-input-container"),r=function(t){var i=""===e.val()?[]:e.val().split(n),a=t.find("+ .sow-multi-measurement-select-unit");i[u.index(t)]=t.val()+(""===t.val()?"":a.val()),e.val(i.join(n))};u.each(function(i,e){if(l.length>i){var n=l[i].match(/(\d+\.?\d*)([a-z%]+)*/);if(n&&n.length){var a=n[1],u=n[2];t(e).val(a),t(e).find("+ .sow-multi-measurement-select-unit").val(u)}}else r(t(e))}),s.change(function(i){var e=t(i.currentTarget).find("> .sow-multi-measurement-input"),n=a;a&&u.each(function(i,a){t(a).attr("id")!==e.eq(0).attr("id")&&(n=n&&!t(a).val())}),n?u.each(function(i,n){t(n).val(e.val()),r(t(n))}):r(e)})})}(jQuery);
|
base/inc/fields/js/tinymce-field.js
CHANGED
@@ -7,10 +7,12 @@
|
|
7 |
return;
|
8 |
}
|
9 |
|
10 |
-
var
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
14 |
|
15 |
var $container = $field.find( '.siteorigin-widget-tinymce-container' );
|
16 |
var settings = $container.data( 'editorSettings' );
|
@@ -46,7 +48,9 @@
|
|
46 |
$( document ).on( 'wp-before-tinymce-init', function ( event, init ) {
|
47 |
if ( init.selector === settings.tinymce.selector ) {
|
48 |
var mediaButtons = $container.data( 'mediaButtons' );
|
49 |
-
$field.find( '.wp-
|
|
|
|
|
50 |
}
|
51 |
} );
|
52 |
$( document ).on( 'tinymce-editor-setup', function () {
|
7 |
return;
|
8 |
}
|
9 |
|
10 |
+
var wpEditor = wp.oldEditor ? wp.oldEditor : wp.editor;
|
11 |
+
if ( wpEditor && wpEditor.hasOwnProperty( 'autop' ) ) {
|
12 |
+
wp.editor.autop = wpEditor.autop;
|
13 |
+
wp.editor.removep = wpEditor.removep;
|
14 |
+
wp.editor.initialize = wpEditor.initialize
|
15 |
+
}
|
16 |
|
17 |
var $container = $field.find( '.siteorigin-widget-tinymce-container' );
|
18 |
var settings = $container.data( 'editorSettings' );
|
48 |
$( document ).on( 'wp-before-tinymce-init', function ( event, init ) {
|
49 |
if ( init.selector === settings.tinymce.selector ) {
|
50 |
var mediaButtons = $container.data( 'mediaButtons' );
|
51 |
+
if ( $field.find( '.wp-media-buttons' ).length === 0 ) {
|
52 |
+
$field.find( '.wp-editor-tabs' ).before( mediaButtons.html );
|
53 |
+
}
|
54 |
}
|
55 |
} );
|
56 |
$( document ).on( 'tinymce-editor-setup', function () {
|
base/inc/fields/js/tinymce-field.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(i){var e=function(e){if(!e.data("initialized")){var t=
|
1 |
+
!function(i){var e=function(e){if(!e.data("initialized")){var t=wp.oldEditor?wp.oldEditor:wp.editor;t&&t.hasOwnProperty("autop")&&(wp.editor.autop=t.autop,wp.editor.removep=t.removep,wp.editor.initialize=t.initialize);var n,o=e.find(".siteorigin-widget-tinymce-container"),r=o.data("editorSettings");if(r.wpautopToggleField){var a=o.closest(".siteorigin-widget-form");n=a.find(r.wpautopToggleField),r.tinymce.wpautop=n.is(":checked")}var d=o.find("textarea"),s=d.attr("id"),c=function(i){i.on("change",function(){window.tinymce.get(s).save(),d.trigger("change")}),n&&(n.off("change"),n.on("change",function(){wp.editor.remove(s),r.tinymce.wpautop=n.is(":checked"),wp.editor.initialize(s,r)}))};if(r.tinymce&&(r.tinymce=i.extend({},r.tinymce,{selector:"#"+s,setup:c})),i(document).on("wp-before-tinymce-init",function(i,t){if(t.selector===r.tinymce.selector){var n=o.data("mediaButtons");0===e.find(".wp-media-buttons").length&&e.find(".wp-editor-tabs").before(n.html)}}),i(document).on("tinymce-editor-setup",function(){e.find(".wp-editor-wrap").hasClass(r.selectedEditor+"-active")||setTimeout(function(){window.switchEditors.go(s)},10)}),t.remove(s),window.tinymce.EditorManager.overrideDefaults({base_url:r.baseURL,suffix:r.suffix}),d.is(":visible"))t.initialize(s,r);else var l=setInterval(function(){d.is(":visible")&&(t.initialize(s,r),clearInterval(l))},500);e.on("click",function(t){var n=i(t.target);if(n.is(".wp-switch-editor")){var o=n.hasClass("switch-tmce")?"tmce":"html";if("tmce"===o){var a=window.tinymce.get(s);if(null!==a){var c=d.val();-1!==c.search("<")&&-1===c.search(">")&&(c=c.replace(/</g,""),d.val(c)),a.setContent(window.switchEditors.wpautop(c))}}r.selectedEditor=o,e.find(".siteorigin-widget-tinymce-selected-editor").val(o)}}),e.data("initialized",!0)}};i(document).on("sowsetupformfield",".siteorigin-widget-field-type-tinymce",function(){var t=i(this),n=t.closest(".siteorigin-widget-field-repeater-item-form");n.length>0?n.is(":visible")?e(t):n.on("slideToggleOpenComplete",function(){n.is(":visible")&&(e(t),n.off("slideToggleOpenComplete"))}):e(t)}),i(document).on("sortstop",function(t,n){var o;o=n.item.is(".siteorigin-widget-field-repeater-item")?n.item.find("> .siteorigin-widget-field-repeater-item-form"):n.item.find(".siteorigin-widget-form"),o.find(".siteorigin-widget-field-type-tinymce").each(function(){i(this).data("initialized",null),e(i(this))})})}(jQuery);
|
base/inc/fields/multi-measurement.class.php
CHANGED
@@ -1,118 +1,122 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class SiteOrigin_Widget_Field_Multi_Measurement
|
5 |
-
*/
|
6 |
-
class SiteOrigin_Widget_Field_Multi_Measurement extends SiteOrigin_Widget_Field_Text_Input_Base {
|
7 |
-
|
8 |
-
/**
|
9 |
-
* Configuration of the measurements to be taken. Should be in the form:
|
10 |
-
* `array(
|
11 |
-
* 'padding_left' => array(
|
12 |
-
* 'label' => __( 'Padding left', 'so-widgets-bundle' ),
|
13 |
-
* 'units' => array( 'px', 'rem', 'em', '%' ),
|
14 |
-
* ),
|
15 |
-
* 'padding_right' => __( 'Padding right', 'so-widgets-bundle' ),
|
16 |
-
* 'padding_bottom' => __( 'Padding bottom', 'so-widgets-bundle' ),
|
17 |
-
* 'padding_top' => __( 'Padding top', 'so-widgets-bundle' ),
|
18 |
-
* )`
|
19 |
-
*
|
20 |
-
* The 'units' property is optional and defaults to the list returned by `siteorigin_widgets_get_measurements_list`.
|
21 |
-
*
|
22 |
-
* @access protected
|
23 |
-
* @var array
|
24 |
-
*/
|
25 |
-
protected $measurements;
|
26 |
-
|
27 |
-
/**
|
28 |
-
* String separator for the measurements. Default is an empty space.
|
29 |
-
*
|
30 |
-
* @access protected
|
31 |
-
* @var string
|
32 |
-
*/
|
33 |
-
protected $separator;
|
34 |
-
|
35 |
-
/**
|
36 |
-
* Whether to automatically fill the rest of the inputs when the first value is entered.
|
37 |
-
* Default is false.
|
38 |
-
*
|
39 |
-
* @access protected
|
40 |
-
* @var boolean
|
41 |
-
*/
|
42 |
-
protected $autofill;
|
43 |
-
|
44 |
-
protected function get_default_options() {
|
45 |
-
return array(
|
46 |
-
'separator' => ' ',
|
47 |
-
'autofill' => false,
|
48 |
-
);
|
49 |
-
}
|
50 |
-
|
51 |
-
protected function render_field( $value, $instance ) {
|
52 |
-
?>
|
53 |
-
<div class="sow-multi-measurement-container">
|
54 |
-
<?php
|
55 |
-
foreach ( $this->measurements as $name => $measurement_config ) {
|
56 |
-
|
57 |
-
if ( is_array( $measurement_config ) ) {
|
58 |
-
$label = empty( $measurement_config['label'] ) ? '' : $measurement_config['label'];
|
59 |
-
} else {
|
60 |
-
$label = $measurement_config;
|
61 |
-
}
|
62 |
-
$
|
63 |
-
|
64 |
-
$
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
$
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
}
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class SiteOrigin_Widget_Field_Multi_Measurement
|
5 |
+
*/
|
6 |
+
class SiteOrigin_Widget_Field_Multi_Measurement extends SiteOrigin_Widget_Field_Text_Input_Base {
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Configuration of the measurements to be taken. Should be in the form:
|
10 |
+
* `array(
|
11 |
+
* 'padding_left' => array(
|
12 |
+
* 'label' => __( 'Padding left', 'so-widgets-bundle' ),
|
13 |
+
* 'units' => array( 'px', 'rem', 'em', '%' ),
|
14 |
+
* ),
|
15 |
+
* 'padding_right' => __( 'Padding right', 'so-widgets-bundle' ),
|
16 |
+
* 'padding_bottom' => __( 'Padding bottom', 'so-widgets-bundle' ),
|
17 |
+
* 'padding_top' => __( 'Padding top', 'so-widgets-bundle' ),
|
18 |
+
* )`
|
19 |
+
*
|
20 |
+
* The 'units' property is optional and defaults to the list returned by `siteorigin_widgets_get_measurements_list`.
|
21 |
+
*
|
22 |
+
* @access protected
|
23 |
+
* @var array
|
24 |
+
*/
|
25 |
+
protected $measurements;
|
26 |
+
|
27 |
+
/**
|
28 |
+
* String separator for the measurements. Default is an empty space.
|
29 |
+
*
|
30 |
+
* @access protected
|
31 |
+
* @var string
|
32 |
+
*/
|
33 |
+
protected $separator;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Whether to automatically fill the rest of the inputs when the first value is entered.
|
37 |
+
* Default is false.
|
38 |
+
*
|
39 |
+
* @access protected
|
40 |
+
* @var boolean
|
41 |
+
*/
|
42 |
+
protected $autofill;
|
43 |
+
|
44 |
+
protected function get_default_options() {
|
45 |
+
return array(
|
46 |
+
'separator' => ' ',
|
47 |
+
'autofill' => false,
|
48 |
+
);
|
49 |
+
}
|
50 |
+
|
51 |
+
protected function render_field( $value, $instance ) {
|
52 |
+
?>
|
53 |
+
<div class="sow-multi-measurement-container">
|
54 |
+
<?php
|
55 |
+
foreach ( $this->measurements as $name => $measurement_config ) {
|
56 |
+
|
57 |
+
if ( is_array( $measurement_config ) ) {
|
58 |
+
$label = empty( $measurement_config['label'] ) ? '' : $measurement_config['label'];
|
59 |
+
} else {
|
60 |
+
$label = $measurement_config;
|
61 |
+
}
|
62 |
+
$default_measurements = siteorigin_widgets_get_measurements_list();
|
63 |
+
$units = empty( $measurement_config['units'] ) ?
|
64 |
+
$default_measurements :
|
65 |
+
$measurement_config['units'];
|
66 |
+
if ( empty( $units ) ) {
|
67 |
+
$units = array( 'px' );
|
68 |
+
}
|
69 |
+
$input_id = $this->element_id . '-' . $name;
|
70 |
+
?>
|
71 |
+
<div class="sow-multi-measurement-input-container">
|
72 |
+
<label for="<?php echo esc_attr( $input_id ) ?>"><?php echo esc_html( $label ) ?></label>
|
73 |
+
<input id="<?php echo esc_attr( $input_id ) ?>" type="text" class="sow-multi-measurement-input">
|
74 |
+
<select class="sow-multi-measurement-select-unit">
|
75 |
+
<?php foreach ( (array) $units as $unit ):?>
|
76 |
+
<option value="<?php echo esc_attr( $unit ) ?>"><?php echo esc_html( $unit ) ?></option>
|
77 |
+
<?php endforeach?>
|
78 |
+
</select>
|
79 |
+
<div class="clear"></div>
|
80 |
+
</div>
|
81 |
+
<?php
|
82 |
+
}
|
83 |
+
?>
|
84 |
+
</div>
|
85 |
+
<input type="hidden"
|
86 |
+
class="siteorigin-widget-input"
|
87 |
+
value="<?php echo esc_attr( $value ) ?>"
|
88 |
+
name="<?php echo esc_attr( $this->element_name ) ?>"
|
89 |
+
data-autofill="<?php echo empty( $this->autofill ) ? 'false' : 'true'; ?>"
|
90 |
+
data-separator="<?php echo esc_attr( $this->separator ) ?>"/><?php
|
91 |
+
}
|
92 |
+
|
93 |
+
public function enqueue_scripts() {
|
94 |
+
wp_enqueue_style( 'so-multi-measurement-field', plugin_dir_url( __FILE__ ) . 'css/multi-measurement-field.css', array(),
|
95 |
+
SOW_BUNDLE_VERSION );
|
96 |
+
wp_enqueue_script( 'so-multi-measurement-field',
|
97 |
+
plugin_dir_url( __FILE__ ) . 'js/multi-measurement-field' . SOW_BUNDLE_JS_SUFFIX . '.js', array( 'jquery' ),
|
98 |
+
SOW_BUNDLE_VERSION );
|
99 |
+
}
|
100 |
+
|
101 |
+
protected function sanitize_field_input( $value, $instance ) {
|
102 |
+
if ( empty( $value ) ) {
|
103 |
+
return $value;
|
104 |
+
}
|
105 |
+
|
106 |
+
$values = explode( $this->separator, $value );
|
107 |
+
$any_values = false;
|
108 |
+
foreach ( $values as $index => $measurement ) {
|
109 |
+
$any_values = $any_values || ! empty( $measurement );
|
110 |
+
preg_match('/(\d+\.?\d*)([a-z%]+)*/', $measurement, $matches);
|
111 |
+
|
112 |
+
$num_matches = count( $matches );
|
113 |
+
|
114 |
+
$val = $num_matches > 1 ? $matches[1] : '0';
|
115 |
+
$unit = $num_matches > 2 ? $matches[2] : 'px';
|
116 |
+
$measurement = $val . $unit;
|
117 |
+
$values[ $index ] = $measurement;
|
118 |
+
}
|
119 |
+
// If all values are empty, just return an empty string.
|
120 |
+
return $any_values ? implode( $this->separator, $values ) : '';
|
121 |
+
}
|
122 |
+
}
|
base/inc/fields/repeater.class.php
CHANGED
@@ -94,7 +94,6 @@ class SiteOrigin_Widget_Field_Repeater extends SiteOrigin_Widget_Field_Container
|
|
94 |
<?php endif; ?>
|
95 |
<?php
|
96 |
ob_start();
|
97 |
-
$container['is_template'] = true;
|
98 |
$this->create_and_render_sub_fields( null, $container, true );
|
99 |
$rpt_fields = ob_get_clean();
|
100 |
$rpt_fields = preg_replace( '/\s+name\s*=\s*/', ' data-name=', $rpt_fields );
|
94 |
<?php endif; ?>
|
95 |
<?php
|
96 |
ob_start();
|
|
|
97 |
$this->create_and_render_sub_fields( null, $container, true );
|
98 |
$rpt_fields = ob_get_clean();
|
99 |
$rpt_fields = preg_replace( '/\s+name\s*=\s*/', ' data-name=', $rpt_fields );
|
base/inc/fields/section.class.php
CHANGED
@@ -1,23 +1,23 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class SiteOrigin_Widget_Field_Section
|
5 |
-
*/
|
6 |
-
class SiteOrigin_Widget_Field_Section extends SiteOrigin_Widget_Field_Container_Base {
|
7 |
-
|
8 |
-
protected function render_field( $value, $instance ) {
|
9 |
-
?>
|
10 |
-
<div class="siteorigin-widget-section <?php if( $this->state == 'closed' ) echo 'siteorigin-widget-section-hide'; ?>"><?php
|
11 |
-
if ( !isset( $this->fields ) || empty($this->fields ) ) {
|
12 |
-
echo '</div>';
|
13 |
-
return;
|
14 |
-
}
|
15 |
-
$this->create_and_render_sub_fields( $value, array( 'name' => $this->base_name, 'type' => 'section' ) );
|
16 |
-
?>
|
17 |
-
<input type="hidden"
|
18 |
-
name="<?php echo esc_attr( $this->element_name . '[so_field_container_state]' ) ?>" id="<?php echo esc_attr( $this->element_id . '-so_field_container_state' ) ?>"
|
19 |
-
class="siteorigin-widget-input siteorigin-widget-field-container-state" value="<?php echo esc_attr( $this->state ) ?>"/>
|
20 |
-
</div><?php
|
21 |
-
}
|
22 |
-
|
23 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class SiteOrigin_Widget_Field_Section
|
5 |
+
*/
|
6 |
+
class SiteOrigin_Widget_Field_Section extends SiteOrigin_Widget_Field_Container_Base {
|
7 |
+
|
8 |
+
protected function render_field( $value, $instance ) {
|
9 |
+
?>
|
10 |
+
<div class="siteorigin-widget-section <?php if( $this->state == 'closed' ) echo 'siteorigin-widget-section-hide'; ?>"><?php
|
11 |
+
if ( !isset( $this->fields ) || empty($this->fields ) ) {
|
12 |
+
echo '</div>';
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
$this->create_and_render_sub_fields( $value, array( 'name' => $this->base_name, 'type' => 'section' ) );
|
16 |
+
?>
|
17 |
+
<input type="hidden"
|
18 |
+
name="<?php echo esc_attr( $this->element_name . '[so_field_container_state]' ) ?>" id="<?php echo esc_attr( $this->element_id . '-so_field_container_state' ) ?>"
|
19 |
+
class="siteorigin-widget-input siteorigin-widget-field-container-state" value="<?php echo esc_attr( $this->state ) ?>"/>
|
20 |
+
</div><?php
|
21 |
+
}
|
22 |
+
|
23 |
}
|
base/js/admin.js
CHANGED
@@ -530,7 +530,7 @@ var sowbForms = window.sowbForms || {};
|
|
530 |
|
531 |
return $(this).each(function (i, el) {
|
532 |
var $el = $(el);
|
533 |
-
var $items = $el.find('
|
534 |
var name = $el.data('repeater-name');
|
535 |
|
536 |
$items.bind('updateFieldPositions', function () {
|
@@ -550,11 +550,8 @@ var sowbForms = window.sowbForms || {};
|
|
550 |
});
|
551 |
});
|
552 |
|
553 |
-
// Skip child repeaters as they'll go through this setup process for themselves.
|
554 |
-
var $fieldsExclRepeaters = $$.find( '> .siteorigin-widget-field-repeater-item > .siteorigin-widget-field-repeater-item-form > .siteorigin-widget-field' )
|
555 |
-
.not( '.siteorigin-widget-field-type-repeater' );
|
556 |
// Update the field names for all the input items
|
557 |
-
|
558 |
var $in = $( input );
|
559 |
var pos = $in.data( 'repeater-positions' );
|
560 |
|
@@ -581,7 +578,7 @@ var sowbForms = window.sowbForms || {};
|
|
581 |
if ( !$$.data( 'initialSetup' ) ) {
|
582 |
// Setup default checked values, now that we've updated input names.
|
583 |
// Without this radio inputs in repeaters will be rendered as if they all belong to the same group.
|
584 |
-
|
585 |
var $in = $(input);
|
586 |
$in.prop('checked', $in.prop('defaultChecked'));
|
587 |
});
|
@@ -661,10 +658,16 @@ var sowbForms = window.sowbForms || {};
|
|
661 |
});
|
662 |
|
663 |
// Replace repeater item id placeholders with the index of the repeater item.
|
664 |
-
var
|
665 |
-
|
666 |
-
|
667 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
668 |
|
669 |
var readonly = typeof $el.attr('readonly') !== 'undefined';
|
670 |
var item = $('<div class="siteorigin-widget-field-repeater-item ui-draggable" />')
|
@@ -1234,7 +1237,7 @@ var sowbForms = window.sowbForms || {};
|
|
1234 |
});
|
1235 |
}
|
1236 |
|
1237 |
-
if ( $body.hasClass('
|
1238 |
// Setup new widgets when they're added in the customizer interface
|
1239 |
$(document).on('panels_setup_preview', function () {
|
1240 |
$( sowb ).trigger( 'setup_widgets' );
|
@@ -1244,7 +1247,7 @@ var sowbForms = window.sowbForms || {};
|
|
1244 |
$( document ).on( 'open_dialog', function ( e, dialog ) {
|
1245 |
// When we open a Page Builder edit widget dialog
|
1246 |
if ( dialog.$el.find( '.so-panels-dialog' ).is( '.so-panels-dialog-edit-widget' ) ) {
|
1247 |
-
var $fields =
|
1248 |
$fields.trigger( 'sowsetupformfield' );
|
1249 |
}
|
1250 |
});
|
530 |
|
531 |
return $(this).each(function (i, el) {
|
532 |
var $el = $(el);
|
533 |
+
var $items = $el.find('.siteorigin-widget-field-repeater-items');
|
534 |
var name = $el.data('repeater-name');
|
535 |
|
536 |
$items.bind('updateFieldPositions', function () {
|
550 |
});
|
551 |
});
|
552 |
|
|
|
|
|
|
|
553 |
// Update the field names for all the input items
|
554 |
+
$$.find('.siteorigin-widget-input').each( function ( i, input ) {
|
555 |
var $in = $( input );
|
556 |
var pos = $in.data( 'repeater-positions' );
|
557 |
|
578 |
if ( !$$.data( 'initialSetup' ) ) {
|
579 |
// Setup default checked values, now that we've updated input names.
|
580 |
// Without this radio inputs in repeaters will be rendered as if they all belong to the same group.
|
581 |
+
$$.find('.siteorigin-widget-input').each(function (i, input) {
|
582 |
var $in = $(input);
|
583 |
$in.prop('checked', $in.prop('defaultChecked'));
|
584 |
});
|
658 |
});
|
659 |
|
660 |
// Replace repeater item id placeholders with the index of the repeater item.
|
661 |
+
var repeaterHtml = '';
|
662 |
+
repeaterObject.find( '> .siteorigin-widget-field' )
|
663 |
+
.each( function ( index, element ) {
|
664 |
+
var html = element.outerHTML;
|
665 |
+
// Skip child repeaters, so they can setup their own id's when necessary.
|
666 |
+
if ( ! $( element ).is( '.siteorigin-widget-field-type-repeater' ) ) {
|
667 |
+
html = html.replace( /_id_/g, $nextIndex );
|
668 |
+
}
|
669 |
+
repeaterHtml += html;
|
670 |
+
} );
|
671 |
|
672 |
var readonly = typeof $el.attr('readonly') !== 'undefined';
|
673 |
var item = $('<div class="siteorigin-widget-field-repeater-item ui-draggable" />')
|
1237 |
});
|
1238 |
}
|
1239 |
|
1240 |
+
if ( $body.hasClass('block-editor-page') ) {
|
1241 |
// Setup new widgets when they're added in the customizer interface
|
1242 |
$(document).on('panels_setup_preview', function () {
|
1243 |
$( sowb ).trigger( 'setup_widgets' );
|
1247 |
$( document ).on( 'open_dialog', function ( e, dialog ) {
|
1248 |
// When we open a Page Builder edit widget dialog
|
1249 |
if ( dialog.$el.find( '.so-panels-dialog' ).is( '.so-panels-dialog-edit-widget' ) ) {
|
1250 |
+
var $fields = dialog.$el.find( '.siteorigin-widget-form-main' ).find( '> .siteorigin-widget-field' );
|
1251 |
$fields.trigger( 'sowsetupformfield' );
|
1252 |
}
|
1253 |
});
|
base/js/admin.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var sowbForms=window.sowbForms||{};!function(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var r,n=e(t),a=!0,s=e("body"),o=n.find("input[name]");if(o.length&&-1!==o.attr("name").indexOf("__i__"))return this;if(n.is(".siteorigin-widget-form-main")){if(!0===n.data("sow-form-setup"))return!0;if(s.hasClass("widgets-php")&&!n.is(":visible")&&0===n.closest(".panel-dialog").length)return!0;n.on("sowstatechange",function(i,t,r){n.find("[data-state-handler]").each(function(){var i=e(this),n=e.extend({},i.data("state-handler"),a?i.data("state-handler-initial"):{});if(0===Object.keys(n).length)return!0;var s,o,d,l,g,f,p={},c=sowbForms.getContainerFieldId(i,"repeater",".siteorigin-widget-field-repeater-item");if(!1!==c){var u={};for(var m in n)u[m.replace("{$repeater}",c)]=n[m];n=u}var w=sowbForms.getContainerFieldId(i,"widget",".siteorigin-widget-widget");if(!1!==w){var v={};for(var h in n){var b=h.match(/_else\[(.*)\]|(.*)\[(.*)\]/),y="";y=b&&b.length&&void 0===b[1]?b[2]+"_"+w+"["+b[3]+"]":"_else["+b[1]+"_"+w+"]",v[y]=n[h]}n=v}for(var F in n)if(g=!1,null!==(s=F.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(o={group:"default",name:"",multi:!1},void 0!==s[2]?(o.group=s[1],o.name=s[3]):o.name=s[0],o.multi=void 0!==s[4],"_else"===o.group)o.group=o.name,o.name="",g=o.group===t&&void 0===p[o.group];else{f=o.name.split(",").map(function(e){return e.trim()});for(var k=0;k<f.length&&!(g=o.group===t&&f[k]===r);k++);}if(g){d=n[F],o.multi||(d=[d]);for(var k=0;k<d.length;k++)l=void 0!==d[k][1]&&Boolean(d[k][1])?i.find(d[k][1]):i,l[d[k][0]].apply(l,void 0!==d[k][2]?d[k][2]:[]);p[o.group]=!0}}})}),n.sowSetupPreview(),r=n;var d=n.find(".siteorigin-widget-teaser");if(d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})}),!n.data("backupDisabled")){var l=n.find("> .siteorigin-widgets-form-id").val(),g=n.find("> .siteorigin-widgets-form-timestamp"),f=parseInt(g.val()||0),p=JSON.parse(sessionStorage.getItem(l));if(p)if(p._sow_form_timestamp>f){var c=e('<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>");n.prepend(c),c.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(r,p),c.slideUp("fast",function(){c.remove()})}),c.find(".so-backup-dismiss").click(function(){c.slideUp("fast",function(){sessionStorage.removeItem(l),c.remove()})})}else sessionStorage.removeItem(l);n.change(function(){g.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(n);sessionStorage.setItem(l,JSON.stringify(e))})}}else r=n.closest(".siteorigin-widget-form-main");r.find("> .siteorigin-widgets-form-id").val();var u=n.find("> .siteorigin-widget-field");u.find("> .siteorigin-widget-section").sowSetupForm();var m=u.find("> .siteorigin-widget-widget");m.find("> .siteorigin-widget-section").sowSetupForm(),m.filter(":not(:has(> .siteorigin-widget-section))").sowSetupForm(),u.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),u.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),n.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),u.find("> .siteorigin-widget-input-color").each(function(){var i=e(this),t={change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}};i.data("defaultColor")&&(t.defaultColor=i.data("defaultColor")),i.wpColorPicker(t)});var w=function(){e(this).toggleClass("siteorigin-widget-section-visible"),e(this).parent().find("> .siteorigin-widget-section, > .siteorigin-widget-widget > .siteorigin-widget-section").slideToggle("fast",function(){if(e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed"),e(this).is(":visible")){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}})};u.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(w),u.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(w),u.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),r=i.find(".siteorigin-widget-value-slider");r.slider({max:parseFloat(t.attr("max")),min:parseFloat(t.attr("min")),step:parseFloat(t.attr("step")),value:parseFloat(t.val()),slide:function(e,i){t.val(parseFloat(i.value)),t.trigger("change")},change:function(e,t){i.find(".siteorigin-widget-slider-value").html(t.value)}}),t.change(function(e,i){i&&i.silent||r.slider("value",parseFloat(t.val()))})}),u.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,r=function(){null!==t&&t.abort();var r=i.find(".content-text-search"),n=r.val(),a=r.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:n,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].label&&(i[t].label=" "),s.append(e("<li>").addClass("post").html(i[t].label+"<span>("+i[t].type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var n=i.find(".existing-content-selector");n.toggle(),n.is(":visible")&&0===n.find("ul.posts li").length&&r()}),i.on("click",".posts li",function(t){t.preventDefault();var r=e(this);i.find("input.siteorigin-widget-input").val("post: "+r.data("value")),i.change(),i.find(".existing-content-selector").toggle()});var n=null;i.find(".content-text-search").keyup(function(){null!==n&&clearTimeout(n),n=setTimeout(function(){r()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&u.filter(".siteorigin-widget-field-type-builder").each(function(){e(this).find("> .siteorigin-page-builder-field").each(function(){var i=e(this);i.soPanelsSetupBuilderWidget({builderType:i.data("type")})})});var v=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if(void 0!==t){var n={default:""};void 0===t.length&&(t=[t]);for(var a=0;a<t.length;a++)n=function(t,r){if(void 0===sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return r;if(i.is('[type="radio"]')&&!i.is(":checked"))return r;var n=sowbForms.getContainerFieldId(i,"repeater",".siteorigin-widget-field-repeater-item");!1!==n&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",n)}));var a=sowbForms.getContainerFieldId(i,"widget",".siteorigin-widget-widget");!1===a||t.hasOwnProperty("widgetFieldId")||(t.widgetFieldId=a,t.args=t.args.map(function(e){return e+"_"+a}));var s=i.is('[type="checkbox"]')?i.is(":checked"):i.val();return e.extend(r,sowEmitters[t.callback](s,t.args))}(t[a],n);var s=r.data("states");void 0===s&&(s={default:""});for(var o in n)void 0!==s[o]&&n[o]===s[o]||(s[o]=n[o],r.trigger("sowstatechange",[o,n[o]]));r.data("states",s)}};u.filter("[data-state-emitter]").each(function(){var i=e(this).find(".siteorigin-widget-input");i.on("keyup change",v),i.each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&v.call(i[0]):v.call(i[0])})}),n.trigger("sowsetupform",u).data("sow-form-setup",!0),u.trigger("sowsetupformfield"),n.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(s.hasClass("wp-customizer")||s.hasClass("widgets-php"))&&n.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),a=!1})},e.fn.sowSetupPreview=function(){var i=e(this);i.siblings(".siteorigin-widget-preview").find("> a").click(function(t){t.preventDefault();var r=sowbForms.getWidgetFormValues(i),n=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");n.find('input[name="data"]').val(JSON.stringify(r)),n.find('input[name="class"]').val(i.data("class")),n.find("iframe").on("load",function(){e(this).css("visibility","visible")}),n.find("form").submit(),n.find(".close").click(function(){n.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var r=e(t),n=r.find("> .siteorigin-widget-field-repeater-items"),a=r.data("repeater-name");n.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,r){var n=e(r).data("repeater-positions");void 0===n&&(n={}),n[a]=i,e(r).data("repeater-positions",n)})});var n=i.find("> .siteorigin-widget-field-repeater-item > .siteorigin-widget-field-repeater-item-form > .siteorigin-widget-field").not(".siteorigin-widget-field-type-repeater");n.find(".siteorigin-widget-input").each(function(i,t){var r=e(t),n=r.data("repeater-positions");if(void 0!==n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(n.find('input[type="radio"].siteorigin-widget-input').each(function(i,t){var r=e(t);r.prop("checked",r.prop("defaultChecked"))}),i.data("initialSetup",!0));var s=r.data("scroll-count")?parseInt(r.data("scroll-count")):0;if(s>0&&t.length>s){var o=t.first().outerHeight();i.css("max-height",o*s).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),n.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){n.find('input[type="radio"].siteorigin-widget-input').attr("name",""),n.trigger("updateFieldPositions"),r.trigger("change")},sortstop:function(i,t){if(t.item.is(".siteorigin-widget-field-repeater-item"))t.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")});else{t.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}r.trigger("change")}}),n.trigger("updateFieldPositions"),r.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),r.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),r.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),r.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var r=e(t),n=r.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+r.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find(".siteorigin-widget-input[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s=r.data("repeater-name"),o=new RegExp(s+"-_id_","g"),d=s+"-"+n,l=a.html().replace(o,d),g=void 0!==r.attr("readonly"),f=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(g?"":e('<div class="siteorigin-widget-field-copy" />')).append(g?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(r.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(l));r.find("> .siteorigin-widget-field-repeater-items").append(f).sortable("refresh").trigger("updateFieldPositions"),f.sowSetupRepeaterItems(),f.hide().slideDown("fast",function(){e(window).resize()}),r.trigger("change")})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var r=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),r.sortable("refresh").trigger("updateFieldPositions"),e(t).trigger("change")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var r=e(t);if(void 0===r.data("sowrepeater-actions-setup")){var n=r.closest(".siteorigin-widget-field-repeater"),a=r.find("> .siteorigin-widget-field-repeater-item-top"),s=n.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=r.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";r.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){if(e(window).resize(),e(this).is(":visible")){e(this).trigger("slideToggleOpenComplete");e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}else e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i,t){i.preventDefault();var n=e(this).closest(".siteorigin-widget-field-repeater-items"),a=e(this).closest(".siteorigin-widget-field-repeater-item"),s=function(){a.remove(),n.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()};t&&t.silent?s():confirm(soWidgets.sure)&&a.slideUp("fast",s),r.trigger("change")}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),n=e(this).closest(".siteorigin-widget-field-repeater-item"),a=n.clone(),s=n.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var g=tinymce.get(s);g&&i.val(g.getContent())}else if(i.is(".wp-color-picker")){var f=i.closest(".wp-picker-container"),p=i.closest(".siteorigin-widget-field");f.remove(),p.append(i.remove())}else{var c=s?n.find("#"+s):n.find('[name="'+l+'"]');c.length&&null!=c.val()&&i.val(c.val())}if(s){var u,m,w;if(i.is('[type="radio"]')){m=s.replace(/-\d+-\d+$/,"");var v=s.replace(/-\d+$/,"");if(!d[m]){var h={};d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").filter(function(i,t){var r=e(t).attr("name");return!h[r]&&(h[r]=!0,!0)}).length+1}var b=m+"-"+d[m];w=b+s.match(/-\d+$/)[0],a.find("label[for="+v+"]").attr("for",b)}else u=new RegExp("-\\d+$"),m=s.replace(u,""),d[m]||(d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").length+1),w=m+"-"+d[m]++;if(i.attr("id",w),i.is(".wp-editor-area")){var y=i.closest(".siteorigin-widget-tinymce-container"),F=y.data("media-buttons");if(F&&F.html){var u=new RegExp(s,"g");F.html=F.html.replace(u,w),y.data("media-buttons",F)}}a.find("label[for="+s+"]").attr("for",w),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,w);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(w)&&tinymce.get(w).remove()}var k=n.parents(".siteorigin-widget-field-repeater").length,_=e("body");(_.hasClass("wp-customizer")||_.hasClass("widgets-php"))&&0===r.closest(".panel-dialog").length&&(k+=1);var C=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(k-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",C),i.data("original-name",C)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()}),r.trigger("change")}),r.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),r.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],a=n.split("]["),s=a.length?r:null;a.length;)s=s[a.shift()];return s[t]},sowbForms.fetchWidgetVariable=function(i,t,r){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?e.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(i){if(_.isUndefined(i))return null;var t={};return i.find("*[name]").each(function(){var i=e(this);try{var r=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(r))return!0;r=r[1];var n=r.split("][");n=n.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var a=t,s=null,o=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===o)s=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===o){if(!i.is(":checked"))return;s=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),s=null===d||"function"!=typeof d.getContent||d.isHidden()?i.val():d.getContent()}else if("SELECT"===i.prop("tagName")){var l=i.find("option:selected");1===l.length?s=i.find("option:selected").val():l.length>1&&(s=_.map(i.find("option:selected"),function(i,t){return e(i).val()}))}else s=i.val();for(var g=0;g<n.length;g++)g===n.length-1?""===n[g]?a.push(s):a[n[g]]=s:(_.isUndefined(a[n[g]])&&(_.isNumber(n[g+1])||""===n[g+1]?a[n[g]]=[]:a[n[g]]={}),a=a[n[g]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),t},sowbForms.setWidgetFormValues=function(i,t,r,n){r=r||!1,n=void 0!==n&&n||void 0===n;var a=0,s=function(i,t){if(10==++a)return void--a;i.find("> .siteorigin-widget-field-type-repeater,> .siteorigin-widget-field-type-section > .siteorigin-widget-section > .siteorigin-widget-field-type-repeater").each(function(i,n){var a=e(this),o=a.find("> .siteorigin-widget-field-repeater"),d=o.data("repeaterName"),l=t.hasOwnProperty(d)?t[d]:null;if(a.parent().is(".siteorigin-widget-section")){var g=o.data("element-name");g=g.replace(/\[#.*?#\]/g,"");for(var f=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(g)[1],p=f.split("]["),c=p.length?t:null;p.length;){var u=p.shift();c=c.hasOwnProperty(u)?c[u]:c}l=c}if(l&&Array.isArray(l)){var m=o.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),w=l.length,v=m.length;if(w>v)for(var h=0;h<w-v;h++)o.find("> .siteorigin-widget-field-repeater-add").click();else if(!r&&w<v)for(var b=w;b<v;b++){var y=e(m.eq(b));y.find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}m=o.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var F=0;F<m.length;F++)m.eq(F).find("> .siteorigin-widget-field-repeater-item-form"),s(m.eq(F).find("> .siteorigin-widget-field-repeater-item-form"),l[F])}}),--a};s(i,t),i.find("*[name]").each(function(){var i=e(this),a=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===a||null===a)return!0;a=a[1];var s=a.split("][");s=s.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var o,d=t,l=0;l<s.length;l++){if(!d.hasOwnProperty(s[l])){if(r)return!0;break}l===s.length-1?o=d[s[l]]:d=d[s[l]]}if("checkbox"===i.attr("type"))i.prop("checked",o);else if("radio"===i.attr("type"))i.prop("checked",o===i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var g=null;"undefined"!=typeof tinyMCE&&(g=tinyMCE.get(i.attr("id"))),null!==g&&"function"==typeof g.setContent&&!g.isHidden()&&i.parent().is(":visible")?g.initialized?g.setContent(o):g.on("init",function(){g.setContent(o)}):i.val(o)}else if(i.is(".panels-data")){i.val(o);var f=i.data("builder");f&&f.setDataField(i)}else i.val(o);n&&i.trigger("change")})},e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)});var i=e("body");i.hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),i.hasClass("gutenberg-editor-page")&&e(document).on("panels_setup_preview",function(){e(sowb).trigger("setup_widgets")}),e(document).on("open_dialog",function(i,t){if(t.$el.find(".so-panels-dialog").is(".so-panels-dialog-edit-widget")){e(i.target).find(".siteorigin-widget-form-main").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}}),e(function(){e(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+") *$"),r=t.exec(e);if(null===r)return!1;var n="",a="default";return void 0!==r[3]?(a=r[1],n=r[3]):n=r[1],{match:r[4].trim(),group:a,state:n}},_checker:function(e,i,t,r){var n={};void 0===i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)!1!==(a=sowEmitters._match(i[s],t))&&("_true"===a.match||r(e,i,a.match))&&(n[a.group]=a.state);return n},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(e){e.fn.sowSetupForm=function(){return e(this).each(function(i,t){var r,n=e(t),a=!0,s=e("body"),o=n.find("input[name]");if(o.length&&-1!==o.attr("name").indexOf("__i__"))return this;if(n.is(".siteorigin-widget-form-main")){if(!0===n.data("sow-form-setup"))return!0;if(s.hasClass("widgets-php")&&!n.is(":visible")&&0===n.closest(".panel-dialog").length)return!0;n.on("sowstatechange",function(i,t,r){n.find("[data-state-handler]").each(function(){var i=e(this),n=e.extend({},i.data("state-handler"),a?i.data("state-handler-initial"):{});if(0===Object.keys(n).length)return!0;var s,o,d,l,g,f,c={},p=sowbForms.getContainerFieldId(i,"repeater",".siteorigin-widget-field-repeater-item");if(!1!==p){var u={};for(var m in n)u[m.replace("{$repeater}",p)]=n[m];n=u}var w=sowbForms.getContainerFieldId(i,"widget",".siteorigin-widget-widget");if(!1!==w){var v={};for(var h in n){var b=h.match(/_else\[(.*)\]|(.*)\[(.*)\]/),y="";y=b&&b.length&&void 0===b[1]?b[2]+"_"+w+"["+b[3]+"]":"_else["+b[1]+"_"+w+"]",v[y]=n[h]}n=v}for(var F in n)if(g=!1,null!==(s=F.match(/^([a-zA-Z0-9_-]+)(\[([a-zA-Z0-9_\-,]+)\])?(\[\])?$/))){if(o={group:"default",name:"",multi:!1},void 0!==s[2]?(o.group=s[1],o.name=s[3]):o.name=s[0],o.multi=void 0!==s[4],"_else"===o.group)o.group=o.name,o.name="",g=o.group===t&&void 0===c[o.group];else{f=o.name.split(",").map(function(e){return e.trim()});for(var k=0;k<f.length&&!(g=o.group===t&&f[k]===r);k++);}if(g){d=n[F],o.multi||(d=[d]);for(var k=0;k<d.length;k++)l=void 0!==d[k][1]&&Boolean(d[k][1])?i.find(d[k][1]):i,l[d[k][0]].apply(l,void 0!==d[k][2]?d[k][2]:[]);c[o.group]=!0}}})}),n.sowSetupPreview(),r=n;var d=n.find(".siteorigin-widget-teaser");if(d.find(".dashicons-dismiss").click(function(){var i=e(this);e.get(i.data("dismiss-url")),d.slideUp("normal",function(){d.remove()})}),!n.data("backupDisabled")){var l=n.find("> .siteorigin-widgets-form-id").val(),g=n.find("> .siteorigin-widgets-form-timestamp"),f=parseInt(g.val()||0),c=JSON.parse(sessionStorage.getItem(l));if(c)if(c._sow_form_timestamp>f){var p=e('<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>");n.prepend(p),p.find(".so-backup-restore").click(function(){sowbForms.setWidgetFormValues(r,c),p.slideUp("fast",function(){p.remove()})}),p.find(".so-backup-dismiss").click(function(){p.slideUp("fast",function(){sessionStorage.removeItem(l),p.remove()})})}else sessionStorage.removeItem(l);n.change(function(){g.val((new Date).getTime());var e=sowbForms.getWidgetFormValues(n);sessionStorage.setItem(l,JSON.stringify(e))})}}else r=n.closest(".siteorigin-widget-form-main");r.find("> .siteorigin-widgets-form-id").val();var u=n.find("> .siteorigin-widget-field");u.find("> .siteorigin-widget-section").sowSetupForm();var m=u.find("> .siteorigin-widget-widget");m.find("> .siteorigin-widget-section").sowSetupForm(),m.filter(":not(:has(> .siteorigin-widget-section))").sowSetupForm(),u.find(".siteorigin-widget-input").each(function(i,t){null===e(t).data("original-name")&&e(t).data("original-name",e(t).attr("name"))}),u.find("> .siteorigin-widget-field-repeater").sowSetupRepeater(),n.find(".siteorigin-widget-field-repeater-item").sowSetupRepeaterItems(),u.find("> .siteorigin-widget-input-color").each(function(){var i=e(this),t={change:function(i,t){setTimeout(function(){e(i.target).trigger("change")},100)}};i.data("defaultColor")&&(t.defaultColor=i.data("defaultColor")),i.wpColorPicker(t)});var w=function(){e(this).toggleClass("siteorigin-widget-section-visible"),e(this).parent().find("> .siteorigin-widget-section, > .siteorigin-widget-widget > .siteorigin-widget-section").slideToggle("fast",function(){if(e(window).resize(),e(this).find("> .siteorigin-widget-field-container-state").val(e(this).is(":visible")?"open":"closed"),e(this).is(":visible")){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}})};u.filter(".siteorigin-widget-field-type-widget, .siteorigin-widget-field-type-section").find("> label").click(w),u.filter(".siteorigin-widget-field-type-posts").find(".posts-container-label-wrapper").click(w),u.filter(".siteorigin-widget-field-type-slider").each(function(){var i=e(this),t=i.find('input[type="number"]'),r=i.find(".siteorigin-widget-value-slider");r.slider({max:parseFloat(t.attr("max")),min:parseFloat(t.attr("min")),step:parseFloat(t.attr("step")),value:parseFloat(t.val()),slide:function(e,i){t.val(parseFloat(i.value)),t.trigger("change")},change:function(e,t){i.find(".siteorigin-widget-slider-value").html(t.value)}}),t.change(function(e,i){i&&i.silent||r.slider("value",parseFloat(t.val()))})}),u.filter(".siteorigin-widget-field-type-link").each(function(){var i=e(this),t=null,r=function(){null!==t&&t.abort();var r=i.find(".content-text-search"),n=r.val(),a=r.data("postTypes"),s=i.find("ul.posts").empty().addClass("loading");e.get(soWidgets.ajaxurl,{action:"so_widgets_search_posts",query:n,postTypes:a},function(i){for(var t=0;t<i.length;t++)""===i[t].label&&(i[t].label=" "),s.append(e("<li>").addClass("post").html(i[t].label+"<span>("+i[t].type+")</span>").data(i[t]));s.removeClass("loading")})};i.find(".select-content-button, .button-close").click(function(t){t.preventDefault(),e(this).blur();var n=i.find(".existing-content-selector");n.toggle(),n.is(":visible")&&0===n.find("ul.posts li").length&&r()}),i.on("click",".posts li",function(t){t.preventDefault();var r=e(this);i.find("input.siteorigin-widget-input").val("post: "+r.data("value")),i.change(),i.find(".existing-content-selector").toggle()});var n=null;i.find(".content-text-search").keyup(function(){null!==n&&clearTimeout(n),n=setTimeout(function(){r()},500)})}),void 0!==jQuery.fn.soPanelsSetupBuilderWidget&&u.filter(".siteorigin-widget-field-type-builder").each(function(){e(this).find("> .siteorigin-page-builder-field").each(function(){var i=e(this);i.soPanelsSetupBuilderWidget({builderType:i.data("type")})})});var v=function(){var i=e(this),t=i.closest("[data-state-emitter]").data("state-emitter");if(void 0!==t){var n={default:""};void 0===t.length&&(t=[t]);for(var a=0;a<t.length;a++)n=function(t,r){if(void 0===sowEmitters[t.callback]||"_"===t.callback.substr(0,1))return r;if(i.is('[type="radio"]')&&!i.is(":checked"))return r;var n=sowbForms.getContainerFieldId(i,"repeater",".siteorigin-widget-field-repeater-item");!1!==n&&(t.args=t.args.map(function(e){return e.replace("{$repeater}",n)}));var a=sowbForms.getContainerFieldId(i,"widget",".siteorigin-widget-widget");!1===a||t.hasOwnProperty("widgetFieldId")||(t.widgetFieldId=a,t.args=t.args.map(function(e){return e+"_"+a}));var s=i.is('[type="checkbox"]')?i.is(":checked"):i.val();return e.extend(r,sowEmitters[t.callback](s,t.args))}(t[a],n);var s=r.data("states");void 0===s&&(s={default:""});for(var o in n)void 0!==s[o]&&n[o]===s[o]||(s[o]=n[o],r.trigger("sowstatechange",[o,n[o]]));r.data("states",s)}};u.filter("[data-state-emitter]").each(function(){var i=e(this).find(".siteorigin-widget-input");i.on("keyup change",v),i.each(function(){var i=e(this);i.is(":radio")?i.is(":checked")&&v.call(i[0]):v.call(i[0])})}),n.trigger("sowsetupform",u).data("sow-form-setup",!0),u.trigger("sowsetupformfield"),n.find(".siteorigin-widget-field-repeater-item").trigger("updateFieldPositions"),(s.hasClass("wp-customizer")||s.hasClass("widgets-php"))&&n.closest(".ui-sortable").on("sortstop",function(e,i){i.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}),a=!1})},e.fn.sowSetupPreview=function(){var i=e(this);i.siblings(".siteorigin-widget-preview").find("> a").click(function(t){t.preventDefault();var r=sowbForms.getWidgetFormValues(i),n=e(e("#so-widgets-bundle-tpl-preview-dialog").html().trim()).appendTo("body");n.find('input[name="data"]').val(JSON.stringify(r)),n.find('input[name="class"]').val(i.data("class")),n.find("iframe").on("load",function(){e(this).css("visibility","visible")}),n.find("form").submit(),n.find(".close").click(function(){n.remove()})})},e.fn.sowSetupRepeater=function(){return e(this).each(function(i,t){var r=e(t),n=r.find(".siteorigin-widget-field-repeater-items"),a=r.data("repeater-name");n.bind("updateFieldPositions",function(){var i=e(this),t=i.find("> .siteorigin-widget-field-repeater-item");t.each(function(i,t){e(t).find(".siteorigin-widget-input").each(function(t,r){var n=e(r).data("repeater-positions");void 0===n&&(n={}),n[a]=i,e(r).data("repeater-positions",n)})}),i.find(".siteorigin-widget-input").each(function(i,t){var r=e(t),n=r.data("repeater-positions");if(void 0!==n){var a=r.attr("data-original-name");if(a||(r.attr("data-original-name",r.attr("name")),a=r.attr("name")),!a)return;if(n)for(var s in n)a=a.replace("#"+s+"#",n[s]);r.attr("name",a)}}),i.data("initialSetup")||(i.find(".siteorigin-widget-input").each(function(i,t){var r=e(t);r.prop("checked",r.prop("defaultChecked"))}),i.data("initialSetup",!0));var n=r.data("scroll-count")?parseInt(r.data("scroll-count")):0;if(n>0&&t.length>n){var s=t.first().outerHeight();i.css("max-height",s*n).css("overflow","auto")}else i.css("max-height","").css("overflow","")}),n.sortable({handle:".siteorigin-widget-field-repeater-item-top",items:"> .siteorigin-widget-field-repeater-item",update:function(){n.find('input[type="radio"].siteorigin-widget-input').attr("name",""),n.trigger("updateFieldPositions"),r.trigger("change")},sortstop:function(i,t){if(t.item.is(".siteorigin-widget-field-repeater-item"))t.item.find("> .siteorigin-widget-field-repeater-item-form").each(function(){e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")});else{t.item.find(".siteorigin-widget-form").find("> .siteorigin-widget-field").trigger("sowsetupformfield")}r.trigger("change")}}),n.trigger("updateFieldPositions"),r.find("> .siteorigin-widget-field-repeater-add").disableSelection().click(function(i){i.preventDefault(),r.closest(".siteorigin-widget-field-repeater").sowAddRepeaterItem().find("> .siteorigin-widget-field-repeater-items").slideDown("fast",function(){e(window).resize()})}),r.find("> .siteorigin-widget-field-repeater-top > .siteorigin-widget-field-repeater-expand").click(function(i){i.preventDefault(),r.closest(".siteorigin-widget-field-repeater").find("> .siteorigin-widget-field-repeateritems-").slideToggle("fast",function(){e(window).resize()})})})},e.fn.sowAddRepeaterItem=function(){return e(this).each(function(i,t){var r=e(t),n=r.find("> .siteorigin-widget-field-repeater-items").children().length+1,a=e("<div>"+r.find("> .siteorigin-widget-field-repeater-item-html").html()+"</div>");a.find(".siteorigin-widget-input[data-name]").each(function(){var i=e(this);0===i.closest(".siteorigin-widget-field-repeater-item-html").length&&i.attr("name",e(this).data("name"))});var s="";a.find("> .siteorigin-widget-field").each(function(i,t){var r=t.outerHTML;e(t).is(".siteorigin-widget-field-type-repeater")||(r=r.replace(/_id_/g,n)),s+=r});var o=void 0!==r.attr("readonly"),d=e('<div class="siteorigin-widget-field-repeater-item ui-draggable" />').append(e('<div class="siteorigin-widget-field-repeater-item-top" />').append(e('<div class="siteorigin-widget-field-expand" />')).append(o?"":e('<div class="siteorigin-widget-field-copy" />')).append(o?"":e('<div class="siteorigin-widget-field-remove" />')).append(e("<h4 />").html(r.data("item-name")))).append(e('<div class="siteorigin-widget-field-repeater-item-form" />').html(s));r.find("> .siteorigin-widget-field-repeater-items").append(d).sortable("refresh").trigger("updateFieldPositions"),d.sowSetupRepeaterItems(),d.hide().slideDown("fast",function(){e(window).resize()}),r.trigger("change")})},e.fn.sowRemoveRepeaterItem=function(){return e(this).each(function(i,t){var r=e(this).closest(".siteorigin-widget-field-repeater-items");e(this).remove(),r.sortable("refresh").trigger("updateFieldPositions"),e(t).trigger("change")})},e.fn.sowSetupRepeaterItems=function(){return e(this).each(function(i,t){var r=e(t);if(void 0===r.data("sowrepeater-actions-setup")){var n=r.closest(".siteorigin-widget-field-repeater"),a=r.find("> .siteorigin-widget-field-repeater-item-top"),s=n.data("item-label");if(s&&s.selector){var o=function(){var e=s.hasOwnProperty("valueMethod")&&s.valueMethod?s.valueMethod:"val",i=r.find(s.selector)[e]();i&&(i.length>80&&(i=i.substr(0,79)+"..."),a.find("h4").text(i))};o();var d=s.hasOwnProperty("updateEvent")&&s.updateEvent?s.updateEvent:"change";r.bind(d,o)}a.click(function(i){"siteorigin-widget-field-remove"!==i.target.className&&"siteorigin-widget-field-copy"!==i.target.className&&(i.preventDefault(),e(this).closest(".siteorigin-widget-field-repeater-item").find(".siteorigin-widget-field-repeater-item-form").eq(0).slideToggle("fast",function(){if(e(window).resize(),e(this).is(":visible")){e(this).trigger("slideToggleOpenComplete");e(this).find("> .siteorigin-widget-field").trigger("sowsetupformfield")}else e(this).trigger("slideToggleCloseComplete")}))}),a.find(".siteorigin-widget-field-remove").click(function(i,t){i.preventDefault();var n=e(this).closest(".siteorigin-widget-field-repeater-items"),a=e(this).closest(".siteorigin-widget-field-repeater-item"),s=function(){a.remove(),n.sortable("refresh").trigger("updateFieldPositions"),e(window).resize()};t&&t.silent?s():confirm(soWidgets.sure)&&a.slideUp("fast",s),r.trigger("change")}),a.find(".siteorigin-widget-field-copy").click(function(i){i.preventDefault();var t=e(this).closest(".siteorigin-widget-form-main"),n=e(this).closest(".siteorigin-widget-field-repeater-item"),a=n.clone(),s=n.closest(".siteorigin-widget-field-repeater-items"),o=s.children().length,d={};a.find("*[name]").each(function(){var i=e(this),s=i.attr("id"),l=i.attr("name");if(i.is("textarea")&&i.parent().is(".wp-editor-container")&&"undefined"!=typeof tinymce){i.parent().empty().append(i),i.css("display","");var g=tinymce.get(s);g&&i.val(g.getContent())}else if(i.is(".wp-color-picker")){var f=i.closest(".wp-picker-container"),c=i.closest(".siteorigin-widget-field");f.remove(),c.append(i.remove())}else{var p=s?n.find("#"+s):n.find('[name="'+l+'"]');p.length&&null!=p.val()&&i.val(p.val())}if(s){var u,m,w;if(i.is('[type="radio"]')){m=s.replace(/-\d+-\d+$/,"");var v=s.replace(/-\d+$/,"");if(!d[m]){var h={};d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").filter(function(i,t){var r=e(t).attr("name");return!h[r]&&(h[r]=!0,!0)}).length+1}var b=m+"-"+d[m];w=b+s.match(/-\d+$/)[0],a.find("label[for="+v+"]").attr("for",b)}else u=new RegExp("-\\d+$"),m=s.replace(u,""),d[m]||(d[m]=t.find(".siteorigin-widget-input[id^="+m+"]").not("[id*=_id_]").length+1),w=m+"-"+d[m]++;if(i.attr("id",w),i.is(".wp-editor-area")){var y=i.closest(".siteorigin-widget-tinymce-container"),F=y.data("media-buttons");if(F&&F.html){var u=new RegExp(s,"g");F.html=F.html.replace(u,w),y.data("media-buttons",F)}}a.find("label[for="+s+"]").attr("for",w),a.find("[id*="+s+"]").each(function(){var i=e(this).attr("id"),t=i.replace(s,w);e(this).attr("id",t)}),"undefined"!=typeof tinymce&&tinymce.get(w)&&tinymce.get(w).remove()}var k=n.parents(".siteorigin-widget-field-repeater").length,_=e("body");(_.hasClass("wp-customizer")||_.hasClass("widgets-php"))&&0===r.closest(".panel-dialog").length&&(k+=1);var C=l.replace(new RegExp("((?:.*?\\[\\d+\\]){"+(k-1).toString()+"})?(.*?\\[)\\d+(\\])"),"$1$2"+o.toString()+"$3");i.attr("name",C),i.data("original-name",C)}),s.append(a).sortable("refresh").trigger("updateFieldPositions"),a.sowSetupRepeaterItems(),a.hide().slideDown("fast",function(){e(window).resize()}),r.trigger("change")}),r.find("> .siteorigin-widget-field-repeater-item-form").sowSetupForm(),r.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],a=n.split("]["),s=a.length?r:null;a.length;)s=s[a.shift()];return s[t]},sowbForms.fetchWidgetVariable=function(i,t,r){window.sowVars=window.sowVars||{},void 0===window.sowVars[t]?e.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(i){if(_.isUndefined(i))return null;var t={};return i.find("*[name]").each(function(){var i=e(this);try{var r=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(_.isEmpty(r))return!0;r=r[1];var n=r.split("][");n=n.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});var a=t,s=null,o=_.isString(i.attr("type"))?i.attr("type").toLowerCase():null;if("checkbox"===o)s=!!i.is(":checked")&&(""===i.val()||i.val());else if("radio"===o){if(!i.is(":checked"))return;s=i.val()}else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var d=null;"undefined"!=typeof tinyMCE&&(d=tinyMCE.get(i.attr("id"))),s=null===d||"function"!=typeof d.getContent||d.isHidden()?i.val():d.getContent()}else if("SELECT"===i.prop("tagName")){var l=i.find("option:selected");1===l.length?s=i.find("option:selected").val():l.length>1&&(s=_.map(i.find("option:selected"),function(i,t){return e(i).val()}))}else s=i.val();for(var g=0;g<n.length;g++)g===n.length-1?""===n[g]?a.push(s):a[n[g]]=s:(_.isUndefined(a[n[g]])&&(_.isNumber(n[g+1])||""===n[g+1]?a[n[g]]=[]:a[n[g]]={}),a=a[n[g]])}catch(e){console.error("Field ["+i.attr("name")+"] could not be processed and was skipped - "+e.message)}}),t},sowbForms.setWidgetFormValues=function(i,t,r,n){r=r||!1,n=void 0!==n&&n||void 0===n;var a=0,s=function(i,t){if(10==++a)return void--a;i.find("> .siteorigin-widget-field-type-repeater,> .siteorigin-widget-field-type-section > .siteorigin-widget-section > .siteorigin-widget-field-type-repeater").each(function(i,n){var a=e(this),o=a.find("> .siteorigin-widget-field-repeater"),d=o.data("repeaterName"),l=t.hasOwnProperty(d)?t[d]:null;if(a.parent().is(".siteorigin-widget-section")){var g=o.data("element-name");g=g.replace(/\[#.*?#\]/g,"");for(var f=/[a-zA-Z0-9\-]+(?:\[c?[0-9]+\])?\[(.*)\]/.exec(g)[1],c=f.split("]["),p=c.length?t:null;c.length;){var u=c.shift();p=p.hasOwnProperty(u)?p[u]:p}l=p}if(l&&Array.isArray(l)){var m=o.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item"),w=l.length,v=m.length;if(w>v)for(var h=0;h<w-v;h++)o.find("> .siteorigin-widget-field-repeater-add").click();else if(!r&&w<v)for(var b=w;b<v;b++){var y=e(m.eq(b));y.find("> .siteorigin-widget-field-repeater-item-top").find(".siteorigin-widget-field-remove").trigger("click",{silent:!0})}m=o.find("> .siteorigin-widget-field-repeater-items > .siteorigin-widget-field-repeater-item");for(var F=0;F<m.length;F++)m.eq(F).find("> .siteorigin-widget-field-repeater-item-form"),s(m.eq(F).find("> .siteorigin-widget-field-repeater-item-form"),l[F])}}),--a};s(i,t),i.find("*[name]").each(function(){var i=e(this),a=/[a-zA-Z0-9\-]+\[[a-zA-Z0-9]+\]\[(.*)\]/.exec(i.attr("name"));if(void 0===a||null===a)return!0;a=a[1];var s=a.split("][");s=s.map(function(e){return!isNaN(parseFloat(e))&&isFinite(e)?parseInt(e):e});for(var o,d=t,l=0;l<s.length;l++){if(!d.hasOwnProperty(s[l])){if(r)return!0;break}l===s.length-1?o=d[s[l]]:d=d[s[l]]}if("checkbox"===i.attr("type"))i.prop("checked",o);else if("radio"===i.attr("type"))i.prop("checked",o===i.val());else if("TEXTAREA"===i.prop("tagName")&&i.hasClass("wp-editor-area")){var g=null;"undefined"!=typeof tinyMCE&&(g=tinyMCE.get(i.attr("id"))),null!==g&&"function"==typeof g.setContent&&!g.isHidden()&&i.parent().is(":visible")?g.initialized?g.setContent(o):g.on("init",function(){g.setContent(o)}):i.val(o)}else if(i.is(".panels-data")){i.val(o);var f=i.data("builder");f&&f.setDataField(i)}else i.val(o);n&&i.trigger("change")})},e(".widgets-holder-wrap").on("click",".widget:has(.siteorigin-widget-form-main) .widget-top",function(){var i=e(this).closest(".widget").find(".siteorigin-widget-form-main");setTimeout(function(){i.sowSetupForm()},200)});var i=e("body");i.hasClass("wp-customizer")&&e(document).on("widget-added",function(e,i){i.find(".siteorigin-widget-form").sowSetupForm()}),i.hasClass("block-editor-page")&&e(document).on("panels_setup_preview",function(){e(sowb).trigger("setup_widgets")}),e(document).on("open_dialog",function(e,i){if(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")}}),e(function(){e(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+") *$"),r=t.exec(e);if(null===r)return!1;var n="",a="default";return void 0!==r[3]?(a=r[1],n=r[3]):n=r[1],{match:r[4].trim(),group:a,state:n}},_checker:function(e,i,t,r){var n={};void 0===i.length&&(i=[i]);for(var a,s=0;s<i.length;s++)!1!==(a=sowEmitters._match(i[s],t))&&("_true"===a.match||r(e,i,a.match))&&(n[a.group]=a.state);return n},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
@@ -1068,12 +1068,12 @@ abstract class SiteOrigin_Widget extends WP_Widget {
|
|
1068 |
else {
|
1069 |
$name = array();
|
1070 |
foreach ( $container as $container_item ) {
|
1071 |
-
$name[] = $container_item['name']
|
1072 |
}
|
1073 |
$name[] = $field_name;
|
1074 |
-
$field_id_base = $this->get_field_id(
|
1075 |
if ( $is_template ) {
|
1076 |
-
return $field_id_base;
|
1077 |
}
|
1078 |
if ( ! isset( $this->field_ids[ $field_id_base ] ) ) {
|
1079 |
$this->field_ids[ $field_id_base ] = 1;
|
1068 |
else {
|
1069 |
$name = array();
|
1070 |
foreach ( $container as $container_item ) {
|
1071 |
+
$name[] = $container_item['name'];
|
1072 |
}
|
1073 |
$name[] = $field_name;
|
1074 |
+
$field_id_base = $this->get_field_id(implode('-', $name));
|
1075 |
if ( $is_template ) {
|
1076 |
+
return $field_id_base . '-_id_';
|
1077 |
}
|
1078 |
if ( ! isset( $this->field_ids[ $field_id_base ] ) ) {
|
1079 |
$this->field_ids[ $field_id_base ] = 1;
|
compat/{gutenberg → block-editor}/widget-block.js
RENAMED
@@ -20,7 +20,7 @@
|
|
20 |
return el(
|
21 |
'span',
|
22 |
{
|
23 |
-
className: 'widget-icon so-widget-icon so-
|
24 |
}
|
25 |
)
|
26 |
},
|
@@ -53,9 +53,9 @@
|
|
53 |
|
54 |
if ( props.loadingWidgets ) {
|
55 |
$.get( {
|
56 |
-
url:
|
57 |
beforeSend: function ( xhr ) {
|
58 |
-
xhr.setRequestHeader( 'X-WP-Nonce',
|
59 |
}
|
60 |
} )
|
61 |
.then( function( widgets ) {
|
@@ -69,7 +69,7 @@
|
|
69 |
|
70 |
function onWidgetClassChange( newWidgetClass ) {
|
71 |
if ( newWidgetClass !== '' ) {
|
72 |
-
if ( props.widgetSettingsChanged && ! confirm(
|
73 |
return false;
|
74 |
}
|
75 |
props.setAttributes( { widgetClass: newWidgetClass, widgetData: null } );
|
@@ -147,9 +147,9 @@
|
|
147 |
var loadingWidgetForm = props.attributes.widgetClass && !props.widgetFormHtml;
|
148 |
if ( loadingWidgetForm ) {
|
149 |
$.get( {
|
150 |
-
url:
|
151 |
beforeSend: function ( xhr ) {
|
152 |
-
xhr.setRequestHeader( 'X-WP-Nonce',
|
153 |
},
|
154 |
data: {
|
155 |
widgetClass: props.attributes.widgetClass
|
@@ -192,7 +192,7 @@
|
|
192 |
el( Spinner ) :
|
193 |
el(
|
194 |
'div',
|
195 |
-
{ className: 'so-widget-
|
196 |
el(
|
197 |
SelectControl,
|
198 |
{
|
@@ -202,7 +202,7 @@
|
|
202 |
}
|
203 |
),
|
204 |
el( 'div', {
|
205 |
-
className: 'so-widget-
|
206 |
dangerouslySetInnerHTML: { __html: widgetForm },
|
207 |
ref: setupWidgetForm,
|
208 |
} )
|
@@ -215,9 +215,9 @@
|
|
215 |
var loadingWidgetPreview = !props.editing && !props.widgetPreviewHtml;
|
216 |
if ( loadingWidgetPreview ) {
|
217 |
$.get( {
|
218 |
-
url:
|
219 |
beforeSend: function ( xhr ) {
|
220 |
-
xhr.setRequestHeader( 'X-WP-Nonce',
|
221 |
},
|
222 |
data: {
|
223 |
widgetClass: props.attributes.widgetClass,
|
@@ -251,7 +251,7 @@
|
|
251 |
'div',
|
252 |
{
|
253 |
key: 'preview',
|
254 |
-
className: 'so-widget-
|
255 |
},
|
256 |
( loadingWidgetPreview ?
|
257 |
el( 'div', {
|
20 |
return el(
|
21 |
'span',
|
22 |
{
|
23 |
+
className: 'widget-icon so-widget-icon so-block-editor-icon'
|
24 |
}
|
25 |
)
|
26 |
},
|
53 |
|
54 |
if ( props.loadingWidgets ) {
|
55 |
$.get( {
|
56 |
+
url: sowbBlockEditorAdmin.restUrl + 'sowb/v1/widgets',
|
57 |
beforeSend: function ( xhr ) {
|
58 |
+
xhr.setRequestHeader( 'X-WP-Nonce', sowbBlockEditorAdmin.nonce );
|
59 |
}
|
60 |
} )
|
61 |
.then( function( widgets ) {
|
69 |
|
70 |
function onWidgetClassChange( newWidgetClass ) {
|
71 |
if ( newWidgetClass !== '' ) {
|
72 |
+
if ( props.widgetSettingsChanged && ! confirm( sowbBlockEditorAdmin.confirmChangeWidget ) ) {
|
73 |
return false;
|
74 |
}
|
75 |
props.setAttributes( { widgetClass: newWidgetClass, widgetData: null } );
|
147 |
var loadingWidgetForm = props.attributes.widgetClass && !props.widgetFormHtml;
|
148 |
if ( loadingWidgetForm ) {
|
149 |
$.get( {
|
150 |
+
url: sowbBlockEditorAdmin.restUrl + 'sowb/v1/widgets/forms',
|
151 |
beforeSend: function ( xhr ) {
|
152 |
+
xhr.setRequestHeader( 'X-WP-Nonce', sowbBlockEditorAdmin.nonce );
|
153 |
},
|
154 |
data: {
|
155 |
widgetClass: props.attributes.widgetClass
|
192 |
el( Spinner ) :
|
193 |
el(
|
194 |
'div',
|
195 |
+
{ className: 'so-widget-block-container' },
|
196 |
el(
|
197 |
SelectControl,
|
198 |
{
|
202 |
}
|
203 |
),
|
204 |
el( 'div', {
|
205 |
+
className: 'so-widget-block-form-container',
|
206 |
dangerouslySetInnerHTML: { __html: widgetForm },
|
207 |
ref: setupWidgetForm,
|
208 |
} )
|
215 |
var loadingWidgetPreview = !props.editing && !props.widgetPreviewHtml;
|
216 |
if ( loadingWidgetPreview ) {
|
217 |
$.get( {
|
218 |
+
url: sowbBlockEditorAdmin.restUrl + 'sowb/v1/widgets/previews',
|
219 |
beforeSend: function ( xhr ) {
|
220 |
+
xhr.setRequestHeader( 'X-WP-Nonce', sowbBlockEditorAdmin.nonce );
|
221 |
},
|
222 |
data: {
|
223 |
widgetClass: props.attributes.widgetClass,
|
251 |
'div',
|
252 |
{
|
253 |
key: 'preview',
|
254 |
+
className: 'so-widget-preview-container'
|
255 |
},
|
256 |
( loadingWidgetPreview ?
|
257 |
el( 'div', {
|
compat/block-editor/widget-block.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
!function(e,t,i,n,o,s){var d=n.createElement,a=t.registerBlockType,r=e.BlockControls,l=o.SelectControl,w=s.withState,g=o.Toolbar,c=o.IconButton,m=o.Placeholder,u=o.Spinner,b=i.__;a("sowb/widget-block",{title:b("SiteOrigin Widget"),description:b("Select a SiteOrigin widget from the dropdown."),icon:function(){return d("span",{className:"widget-icon so-widget-icon so-block-editor-icon"})},category:"widgets",supports:{html:!1},attributes:{widgetClass:{type:"string"},widgetData:{type:"object"}},edit:w({loadingWidgets:!0,editing:!1,formInitialized:!1,previewInitialized:!1,widgets:null,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})(function(e){function t(t){if(""!==t){if(e.widgetSettingsChanged&&!confirm(sowbBlockEditorAdmin.confirmChangeWidget))return!1;e.setAttributes({widgetClass:t,widgetData:null}),e.setState({widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}}function i(){e.setState({editing:!0,formInitialized:!1})}function n(){e.setState({editing:!1,previewInitialized:!1})}function o(t){var i=$(t).find(".siteorigin-widget-form-main");if(i.length>0&&!e.formInitialized){i.siblings(".siteorigin-widget-preview").find("> a").on("click",function(e){e.stopImmediatePropagation(),n()}),i.data("backupDisabled",!0),i.sowSetupForm(),e.attributes.widgetData?sowbForms.setWidgetFormValues(i,e.attributes.widgetData):e.setAttributes({widgetData:sowbForms.getWidgetFormValues(i)}),i.on("change",function(){e.setAttributes({widgetData:sowbForms.getWidgetFormValues(i)}),e.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1})}),e.setState({formInitialized:!0})}}function s(){e.previewInitialized||($(window.sowb).trigger("setup_widgets"),e.setState({previewInitialized:!0}))}if(e.loadingWidgets&&$.get({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)}}).then(function(t){var i={widgets:t,loadingWidgets:!1};e.attributes.widgetClass||(i.editing=!0),e.setState(i)}),e.editing){var a=[];e.widgets&&(e.widgets.sort(function(e,t){return e.name<t.name?-1:e.name>t.name?1:0}),a=e.widgets.map(function(e){return{value:e.class,label:e.name}}),a.unshift({value:"",label:b("Select widget type")}));var w=e.attributes.widgetClass&&!e.widgetFormHtml;w&&$.get({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass}}).then(function(t){e.setState({widgetFormHtml:t})});var p=e.widgetFormHtml?e.widgetFormHtml:"";return[!!p&&d(r,{key:"controls"},d(g,null,d(c,{className:"components-icon-button components-toolbar__control",label:b("Preview widget."),onClick:n,icon:"visibility"}))),d(m,{key:"placeholder",className:"so-widget-placeholder",label:b("SiteOrigin Widget"),instructions:b("Select the type of widget you want to use:")},e.loadingWidgets||w?d(u):d("div",{className:"so-widget-block-container"},d(l,{options:a,value:e.attributes.widgetClass,onChange:t}),d("div",{className:"so-widget-block-form-container",dangerouslySetInnerHTML:{__html:p},ref:o})))]}var f=!e.editing&&!e.widgetPreviewHtml;f&&$.get({url:sowbBlockEditorAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbBlockEditorAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData||{}}}).then(function(t){e.setState({widgetPreviewHtml:t})});var v=e.widgetPreviewHtml?e.widgetPreviewHtml:"";return[d(r,{key:"controls"},d(g,null,d(c,{className:"components-icon-button components-toolbar__control",label:b("Edit widget."),onClick:i,icon:"edit"}))),d("div",{key:"preview",className:"so-widget-preview-container"},f?d("div",{className:"so-widgets-spinner-container"},d("span",null,d(u))):d("div",{dangerouslySetInnerHTML:{__html:v},ref:s}))]}),save:function(){return null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose);
|
compat/{gutenberg/gutenberg.php → block-editor/widget-block.php}
RENAMED
@@ -1,10 +1,10 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
class
|
4 |
/**
|
5 |
* Get the singleton instance
|
6 |
*
|
7 |
-
* @return
|
8 |
*/
|
9 |
public static function single() {
|
10 |
static $single;
|
@@ -32,7 +32,7 @@ class SiteOrigin_Widgets_Bundle_Gutenberg_Block {
|
|
32 |
);
|
33 |
wp_localize_script(
|
34 |
'sowb-widget-block',
|
35 |
-
'
|
36 |
array(
|
37 |
'restUrl' => esc_url_raw( rest_url() ),
|
38 |
'nonce' => wp_create_nonce( 'wp_rest' ),
|
@@ -81,4 +81,4 @@ class SiteOrigin_Widgets_Bundle_Gutenberg_Block {
|
|
81 |
}
|
82 |
}
|
83 |
|
84 |
-
|
1 |
<?php
|
2 |
|
3 |
+
class SiteOrigin_Widgets_Bundle_Widget_Block {
|
4 |
/**
|
5 |
* Get the singleton instance
|
6 |
*
|
7 |
+
* @return SiteOrigin_Widgets_Bundle_Widget_Block
|
8 |
*/
|
9 |
public static function single() {
|
10 |
static $single;
|
32 |
);
|
33 |
wp_localize_script(
|
34 |
'sowb-widget-block',
|
35 |
+
'sowbBlockEditorAdmin',
|
36 |
array(
|
37 |
'restUrl' => esc_url_raw( rest_url() ),
|
38 |
'nonce' => wp_create_nonce( 'wp_rest' ),
|
81 |
}
|
82 |
}
|
83 |
|
84 |
+
SiteOrigin_Widgets_Bundle_Widget_Block::single();
|
compat/compat.php
CHANGED
@@ -23,7 +23,7 @@ class SiteOrigin_Widgets_Bundle_Compatibility {
|
|
23 |
}
|
24 |
|
25 |
if ( function_exists( 'register_block_type' ) ) {
|
26 |
-
require_once plugin_dir_path( __FILE__ ) . '
|
27 |
}
|
28 |
}
|
29 |
|
23 |
}
|
24 |
|
25 |
if ( function_exists( 'register_block_type' ) ) {
|
26 |
+
require_once plugin_dir_path( __FILE__ ) . 'block-editor/widget-block.php';
|
27 |
}
|
28 |
}
|
29 |
|
compat/gutenberg/widget-block.min.js
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
!function(e,t,i,n,o,s){var r=n.createElement,a=t.registerBlockType,d=e.BlockControls,g=o.SelectControl,l=s.withState,w=o.Toolbar,u=o.IconButton,c=o.Placeholder,m=o.Spinner,b=i.__;a("sowb/widget-block",{title:b("SiteOrigin Widget"),description:b("Select a SiteOrigin widget from the dropdown."),icon:function(){return r("span",{className:"widget-icon so-widget-icon so-gutenberg-icon"})},category:"widgets",supports:{html:!1},attributes:{widgetClass:{type:"string"},widgetData:{type:"object"}},edit:l({loadingWidgets:!0,editing:!1,formInitialized:!1,previewInitialized:!1,widgets:null,widgetFormHtml:"",widgetSettingsChanged:!1,widgetPreviewHtml:""})(function(e){function t(t){if(""!==t){if(e.widgetSettingsChanged&&!confirm(sowbGutenbergAdmin.confirmChangeWidget))return!1;e.setAttributes({widgetClass:t,widgetData:null}),e.setState({widgetFormHtml:null,formInitialized:!1,widgetSettingsChanged:!1,widgetPreviewHtml:null,previewInitialized:!1})}}function i(){e.setState({editing:!0,formInitialized:!1})}function n(){e.setState({editing:!1,previewInitialized:!1})}function o(t){var i=$(t).find(".siteorigin-widget-form-main");if(i.length>0&&!e.formInitialized){i.siblings(".siteorigin-widget-preview").find("> a").on("click",function(e){e.stopImmediatePropagation(),n()}),i.data("backupDisabled",!0),i.sowSetupForm(),e.attributes.widgetData?sowbForms.setWidgetFormValues(i,e.attributes.widgetData):e.setAttributes({widgetData:sowbForms.getWidgetFormValues(i)}),i.on("change",function(){e.setAttributes({widgetData:sowbForms.getWidgetFormValues(i)}),e.setState({widgetSettingsChanged:!0,widgetPreviewHtml:null,previewInitialized:!1})}),e.setState({formInitialized:!0})}}function s(){e.previewInitialized||($(window.sowb).trigger("setup_widgets"),e.setState({previewInitialized:!0}))}if(e.loadingWidgets&&$.get({url:sowbGutenbergAdmin.restUrl+"sowb/v1/widgets",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbGutenbergAdmin.nonce)}}).then(function(t){var i={widgets:t,loadingWidgets:!1};e.attributes.widgetClass||(i.editing=!0),e.setState(i)}),e.editing){var a=[];e.widgets&&(e.widgets.sort(function(e,t){return e.name<t.name?-1:e.name>t.name?1:0}),a=e.widgets.map(function(e){return{value:e.class,label:e.name}}),a.unshift({value:"",label:b("Select widget type")}));var l=e.attributes.widgetClass&&!e.widgetFormHtml;l&&$.get({url:sowbGutenbergAdmin.restUrl+"sowb/v1/widgets/forms",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbGutenbergAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass}}).then(function(t){e.setState({widgetFormHtml:t})});var p=e.widgetFormHtml?e.widgetFormHtml:"";return[!!p&&r(d,{key:"controls"},r(w,null,r(u,{className:"components-icon-button components-toolbar__control",label:b("Preview widget."),onClick:n,icon:"visibility"}))),r(c,{key:"placeholder",className:"so-widget-placeholder",label:b("SiteOrigin Widget"),instructions:b("Select the type of widget you want to use:")},e.loadingWidgets||l?r(m):r("div",{className:"so-widget-gutenberg-container"},r(g,{options:a,value:e.attributes.widgetClass,onChange:t}),r("div",{className:"so-widget-gutenberg-form-container",dangerouslySetInnerHTML:{__html:p},ref:o})))]}var f=!e.editing&&!e.widgetPreviewHtml;f&&$.get({url:sowbGutenbergAdmin.restUrl+"sowb/v1/widgets/previews",beforeSend:function(e){e.setRequestHeader("X-WP-Nonce",sowbGutenbergAdmin.nonce)},data:{widgetClass:e.attributes.widgetClass,widgetData:e.attributes.widgetData||{}}}).then(function(t){e.setState({widgetPreviewHtml:t})});var v=e.widgetPreviewHtml?e.widgetPreviewHtml:"";return[r(d,{key:"controls"},r(w,null,r(u,{className:"components-icon-button components-toolbar__control",label:b("Edit widget."),onClick:i,icon:"edit"}))),r("div",{key:"preview",className:"so-widget-gutenberg-preview-container"},f?r("div",{className:"so-widgets-spinner-container"},r("span",null,r(m))):r("div",{dangerouslySetInnerHTML:{__html:v},ref:s}))]}),save:function(){return null}})}(window.wp.editor,window.wp.blocks,window.wp.i18n,window.wp.element,window.wp.components,window.wp.compose);
|
|
js/sow.google-map.js
CHANGED
@@ -172,6 +172,66 @@ sowb.SiteOriginGoogleMap = function($) {
|
|
172 |
}
|
173 |
markerBatches[ batchIndex ][ i % BATCH_SIZE ] = markerPositions[ i ];
|
174 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
175 |
var overQuota = false;
|
176 |
var geocodeMarkerBatch = function ( markerBatchHead, markerBatchTail ) {
|
177 |
var doneCount = 0;
|
@@ -180,63 +240,14 @@ sowb.SiteOriginGoogleMap = function($) {
|
|
180 |
if ( overQuota ) {
|
181 |
break;
|
182 |
}
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
mrkerIcon = mrkr.custom_marker_icon;
|
188 |
-
}
|
189 |
-
|
190 |
-
var marker = new google.maps.Marker( {
|
191 |
-
position: location,
|
192 |
-
map: map,
|
193 |
-
draggable: options.markersDraggable,
|
194 |
-
icon: mrkerIcon,
|
195 |
-
title: ''
|
196 |
-
} );
|
197 |
-
|
198 |
-
if ( mrkr.hasOwnProperty( 'info' ) && mrkr.info ) {
|
199 |
-
var infoWindowOptions = { content: mrkr.info };
|
200 |
-
|
201 |
-
if ( mrkr.hasOwnProperty( 'info_max_width' ) && mrkr.info_max_width ) {
|
202 |
-
infoWindowOptions.maxWidth = mrkr.info_max_width;
|
203 |
-
}
|
204 |
-
|
205 |
-
var infoDisplay = options.markerInfoDisplay;
|
206 |
-
infoWindowOptions.disableAutoPan = infoDisplay === 'always';
|
207 |
-
var infoWindow = new google.maps.InfoWindow( infoWindowOptions );
|
208 |
-
this.infoWindows.push( infoWindow );
|
209 |
-
var openEvent = infoDisplay;
|
210 |
-
if ( infoDisplay === 'always' ) {
|
211 |
-
openEvent = 'click';
|
212 |
-
infoWindow.open( map, marker );
|
213 |
}
|
214 |
-
marker.addListener( openEvent, function () {
|
215 |
-
infoWindow.open( map, marker );
|
216 |
-
if ( infoDisplay !== 'always' && !options.markerInfoMultiple ) {
|
217 |
-
this.infoWindows.forEach( function ( iw ) {
|
218 |
-
if ( iw !== infoWindow ) {
|
219 |
-
iw.close();
|
220 |
-
}
|
221 |
-
} );
|
222 |
-
}
|
223 |
-
}.bind( this ) );
|
224 |
-
if ( infoDisplay === 'mouseover' ) {
|
225 |
-
marker.addListener( 'mouseout', function () {
|
226 |
-
setTimeout( function () {
|
227 |
-
infoWindow.close();
|
228 |
-
}, 100 );
|
229 |
-
} );
|
230 |
-
}
|
231 |
-
}
|
232 |
-
if ( ++doneCount === markerBatchHead.length && markerBatchTail.length ) {
|
233 |
-
geocodeMarkerBatch( markerBatchTail.shift(), markerBatchTail );
|
234 |
}
|
235 |
-
|
236 |
-
|
237 |
-
overQuota = errorStatus === google.maps.GeocoderStatus.OVER_QUERY_LIMIT;
|
238 |
-
console.log( errorStatus );
|
239 |
-
} );
|
240 |
}
|
241 |
}.bind( this );
|
242 |
geocodeMarkerBatch( markerBatches.shift(), markerBatches );
|
172 |
}
|
173 |
markerBatches[ batchIndex ][ i % BATCH_SIZE ] = markerPositions[ i ];
|
174 |
}
|
175 |
+
var geocodeMarker = function ( mrkr ) {
|
176 |
+
|
177 |
+
var customIcon = mrkr.custom_marker_icon;
|
178 |
+
var markerInfo = mrkr.hasOwnProperty( 'info' ) ? mrkr.info : null;
|
179 |
+
var infoMaxWidth = mrkr.hasOwnProperty( 'info_max_width' ) ? mrkr.info_max_width : null;
|
180 |
+
return this.getLocation( mrkr.place ).done( function ( location ) {
|
181 |
+
var mrkerIcon = options.markerIcon;
|
182 |
+
if ( customIcon ) {
|
183 |
+
mrkerIcon = customIcon;
|
184 |
+
}
|
185 |
+
|
186 |
+
var marker = new google.maps.Marker( {
|
187 |
+
position: location,
|
188 |
+
map: map,
|
189 |
+
draggable: options.markersDraggable,
|
190 |
+
icon: mrkerIcon,
|
191 |
+
title: ''
|
192 |
+
} );
|
193 |
+
|
194 |
+
if ( markerInfo ) {
|
195 |
+
var infoWindowOptions = { content: markerInfo };
|
196 |
+
|
197 |
+
if ( infoMaxWidth ) {
|
198 |
+
infoWindowOptions.maxWidth = infoMaxWidth;
|
199 |
+
}
|
200 |
+
|
201 |
+
var infoDisplay = options.markerInfoDisplay;
|
202 |
+
infoWindowOptions.disableAutoPan = infoDisplay === 'always';
|
203 |
+
var infoWindow = new google.maps.InfoWindow( infoWindowOptions );
|
204 |
+
this.infoWindows.push( infoWindow );
|
205 |
+
var openEvent = infoDisplay;
|
206 |
+
if ( infoDisplay === 'always' ) {
|
207 |
+
openEvent = 'click';
|
208 |
+
infoWindow.open( map, marker );
|
209 |
+
}
|
210 |
+
marker.addListener( openEvent, function () {
|
211 |
+
infoWindow.open( map, marker );
|
212 |
+
if ( infoDisplay !== 'always' && !options.markerInfoMultiple ) {
|
213 |
+
this.infoWindows.forEach( function ( iw ) {
|
214 |
+
if ( iw !== infoWindow ) {
|
215 |
+
iw.close();
|
216 |
+
}
|
217 |
+
} );
|
218 |
+
}
|
219 |
+
}.bind( this ) );
|
220 |
+
if ( infoDisplay === 'mouseover' ) {
|
221 |
+
marker.addListener( 'mouseout', function () {
|
222 |
+
setTimeout( function () {
|
223 |
+
infoWindow.close();
|
224 |
+
}, 100 );
|
225 |
+
} );
|
226 |
+
}
|
227 |
+
}
|
228 |
+
}.bind( this ) )
|
229 |
+
.fail( function ( errorStatus ) {
|
230 |
+
overQuota = errorStatus === google.maps.GeocoderStatus.OVER_QUERY_LIMIT;
|
231 |
+
console.log( errorStatus );
|
232 |
+
} );
|
233 |
+
}.bind( this );
|
234 |
+
|
235 |
var overQuota = false;
|
236 |
var geocodeMarkerBatch = function ( markerBatchHead, markerBatchTail ) {
|
237 |
var doneCount = 0;
|
240 |
if ( overQuota ) {
|
241 |
break;
|
242 |
}
|
243 |
+
geocodeMarker( markerBatchHead[ i ] ).then(
|
244 |
+
function () {
|
245 |
+
if ( ++doneCount === markerBatchHead.length && markerBatchTail.length ) {
|
246 |
+
geocodeMarkerBatch( markerBatchTail.shift(), markerBatchTail );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
}
|
249 |
+
);
|
250 |
+
|
|
|
|
|
|
|
251 |
}
|
252 |
}.bind( this );
|
253 |
geocodeMarkerBatch( markerBatches.shift(), markerBatches );
|
js/sow.google-map.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}var sowb=window.sowb||{};sowb.SiteOriginGoogleMap=function(e){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={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,"user_map_style"]}},n=new google.maps.Map(e,a),s={name:t.mapName},r=t.mapStyles;if(r){var l=new google.maps.StyledMapType(r,s);n.mapTypes.set("user_map_style",l),n.setMapTypeId("user_map_style")}if(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:n,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered){var d;google.maps.event.addDomListener(n,"idle",function(){d=n.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){n.setCenter(d)})}this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,n,t),this.showMarkers(t.markerPositions,n,t),this.showDirections(t.directions,n,t)},linkAutocompleteField:function(o,t,i,a){if(o&&t){var n=function(e){this.inputAddress!==e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){i.setZoom(15),i.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),s=e(t);o.addListener("place_changed",function(){var e=o.getPlace();i.setZoom(15),e.geometry&&(i.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",function(e){"13"===(e.keyCode||e.which)&&e.preventDefault()}),s.focusin(function(){if(!this.resultsObserver){var o=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var o=e(e(".pac-item").get(0)),t=o.find(".pac-item-query").text(),i=o.find("span").not("[class]").text(),a=t+(i?", "+i:"");a&&n(a)});var t={attributes:!0,childList:!0,characterData:!0};this.resultsObserver.observe(o,t)}}.bind(this));var r=function(e){this.getGeocoder().geocode({location:e},function(o,t){if(t===google.maps.GeocoderStatus.OK&&o.length>0){var i=o[0].formatted_address;s.val(i),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(i))}}.bind(this))}.bind(this);i.addListener("click",function(e){r(e.latLng)}),this.centerMarker.addListener("dragend",function(e){r(e.latLng)})}},showMarkers:function(e,o,t){if(e&&e.length){this.infoWindows=[];for(var i=[],a=0;a<e.length;a++){var n=parseInt(a/10);i.length===n&&(i[n]=[]),i[n][a%10]=e[a]}var s
|
1 |
+
function soGoogleMapInitialize(){new sowb.SiteOriginGoogleMap(jQuery).initMaps()}var sowb=window.sowb||{};sowb.SiteOriginGoogleMap=function(e){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={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,"user_map_style"]}},n=new google.maps.Map(e,a),s={name:t.mapName},r=t.mapStyles;if(r){var l=new google.maps.StyledMapType(r,s);n.mapTypes.set("user_map_style",l),n.setMapTypeId("user_map_style")}if(t.markerAtCenter&&(this.centerMarker=new google.maps.Marker({position:o,map:n,draggable:t.markersDraggable,icon:t.markerIcon,title:""})),t.keepCentered){var d;google.maps.event.addDomListener(n,"idle",function(){d=n.getCenter()}),google.maps.event.addDomListener(window,"resize",function(){n.setCenter(d)})}this.linkAutocompleteField(t.autocomplete,t.autocompleteElement,n,t),this.showMarkers(t.markerPositions,n,t),this.showDirections(t.directions,n,t)},linkAutocompleteField:function(o,t,i,a){if(o&&t){var n=function(e){this.inputAddress!==e&&(this.inputAddress=e,this.getLocation(this.inputAddress).done(function(e){i.setZoom(15),i.setCenter(e),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(this.inputAddress))}.bind(this)))}.bind(this),s=e(t);o.addListener("place_changed",function(){var e=o.getPlace();i.setZoom(15),e.geometry&&(i.setCenter(e.geometry.location),this.centerMarker&&this.centerMarker.setPosition(e.geometry.location))}.bind(this)),google.maps.event.addDomListener(t,"keypress",function(e){"13"===(e.keyCode||e.which)&&e.preventDefault()}),s.focusin(function(){if(!this.resultsObserver){var o=document.querySelector(".pac-container");this.resultsObserver=new MutationObserver(function(){var o=e(e(".pac-item").get(0)),t=o.find(".pac-item-query").text(),i=o.find("span").not("[class]").text(),a=t+(i?", "+i:"");a&&n(a)});var t={attributes:!0,childList:!0,characterData:!0};this.resultsObserver.observe(o,t)}}.bind(this));var r=function(e){this.getGeocoder().geocode({location:e},function(o,t){if(t===google.maps.GeocoderStatus.OK&&o.length>0){var i=o[0].formatted_address;s.val(i),this.centerMarker&&(this.centerMarker.setPosition(e),this.centerMarker.setTitle(i))}}.bind(this))}.bind(this);i.addListener("click",function(e){r(e.latLng)}),this.centerMarker.addListener("dragend",function(e){r(e.latLng)})}},showMarkers:function(e,o,t){if(e&&e.length){this.infoWindows=[];for(var i=[],a=0;a<e.length;a++){var n=parseInt(a/10);i.length===n&&(i[n]=[]),i[n][a%10]=e[a]}var s=function(e){var i=e.custom_marker_icon,a=e.hasOwnProperty("info")?e.info:null,n=e.hasOwnProperty("info_max_width")?e.info_max_width:null;return this.getLocation(e.place).done(function(e){var s=t.markerIcon;i&&(s=i);var r=new google.maps.Marker({position:e,map:o,draggable:t.markersDraggable,icon:s,title:""});if(a){var l={content:a};n&&(l.maxWidth=n);var d=t.markerInfoDisplay;l.disableAutoPan="always"===d;var c=new google.maps.InfoWindow(l);this.infoWindows.push(c);var p=d;"always"===d&&(p="click",c.open(o,r)),r.addListener(p,function(){c.open(o,r),"always"===d||t.markerInfoMultiple||this.infoWindows.forEach(function(e){e!==c&&e.close()})}.bind(this)),"mouseover"===d&&r.addListener("mouseout",function(){setTimeout(function(){c.close()},100)})}}.bind(this)).fail(function(e){r=e===google.maps.GeocoderStatus.OVER_QUERY_LIMIT,console.log(e)})}.bind(this),r=!1,l=function(e,o){for(var t=0,i=0;i<e.length&&!r;i++)s(e[i]).then(function(){++t===e.length&&o.length&&l(o.shift(),o)})}.bind(this);l(i.shift(),i)}},showDirections:function(e,o){if(e){e.waypoints&&e.waypoints.length&&e.waypoints.map(function(e){e.stopover=Boolean(e.stopover)});var t=new google.maps.DirectionsRenderer;t.setMap(o);(new google.maps.DirectionsService).route({origin:e.origin,destination:e.destination,travelMode:e.travelMode.toUpperCase(),avoidHighways:e.avoidHighways,avoidTolls:e.avoidTolls,waypoints:e.waypoints,optimizeWaypoints:e.optimizeWaypoints},function(o,i){i===google.maps.DirectionsStatus.OK&&(t.setOptions({preserveViewport:e.preserveViewport}),t.setDirections(o))})}},initMaps:function(){var o=e(".sow-google-map-autocomplete"),t=new e.Deferred;0===o.length?t.resolve():o.each(function(o,i){if(void 0===google.maps.places)return void t.reject('Sorry, we couldn\'t load the "places" library due to another plugin, so the autocomplete feature is not available.');var a=new google.maps.places.Autocomplete(i,{types:["address"]}),n=e(i).siblings(".sow-google-map-canvas");if(n.length>0){var s=n.data("options");s.autocomplete=a,s.autocompleteElement=i,this.getLocation(s.address).done(function(e){this.showMap(n.get(0),e,s),n.data("initialized",!0),t.resolve()}.bind(this)).fail(function(){n.append("<div><p><strong>"+soWidgetsGoogleMap.geocode.noResults+"</strong></p></div>"),t.reject()})}}.bind(this)),t.always(function(){e(".sow-google-map-canvas").each(function(o,t){var i=e(t);if(i.data("initialized"))return!0;var a=i.data("options"),n=a.address;if(!n){var s=a.markerPositions;s&&s.length&&(n=s[0].place)}this.getLocation(n).done(function(e){this.showMap(i.get(0),e,a),i.data("initialized",!0)}.bind(this)).fail(function(){i.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(o){var t,i=new e.Deferred,a={address:o};if(o&&o.indexOf(",")>-1){var n=o.split(",");n&&2===n.length&&(t=new google.maps.LatLng(n[0],n[1]),isNaN(t.lat())||isNaN(t.lng())||(a={location:{lat:t.lat(),lng:t.lng()}}))}if(a.hasOwnProperty("location"))i.resolve(a.location);else if(a.hasOwnProperty("address")){if(!a.address){var s=parseInt(Math.random()*this.DEFAULT_LOCATIONS.length);a.address=this.DEFAULT_LOCATIONS[s]}var r=0,l=function(e,o){o===google.maps.GeocoderStatus.OK?i.resolve(e[0].geometry.location):o===google.maps.GeocoderStatus.OVER_QUERY_LIMIT?++r<3?setTimeout(function(){this.getGeocoder().geocode.call(this,a,l)}.bind(this),1e3):i.reject(o):o!==google.maps.GeocoderStatus.ZERO_RESULTS&&o!==google.maps.GeocoderStatus.OVER_DAILY_LIMIT||i.reject(o)}.bind(this);this.getGeocoder().geocode(a,l)}return i}}},jQuery(function(e){sowb.setupGoogleMaps=function(){var o,t=[],i=e(".sow-google-map-canvas");if(i.length){i.each(function(i,a){var n=e(a);if(!n.is(":visible")||n.data("apiInitialized"))return n;var s=n.data("options");s&&(void 0!==s.libraries&&null!==s.libraries&&(t=t.concat(s.libraries)),!o&&s.apiKey&&(o=s.apiKey)),n.data("apiInitialized",!0)});var a=void 0!==window.google&&void 0!==window.google.maps;if(sowb.mapsApiInitialized)var n=setTimeout(function(){a&&(clearTimeout(n),soGoogleMapInitialize())},100);else{var s="https://maps.googleapis.com/maps/api/js?callback=soGoogleMapInitialize";if(t&&t.length&&(s+="&libraries="+t.join(",")),o&&(s+="&key="+o),window.console&&window.console.error){var r=window.console.error;sowb.onLoadMapsApiError=function(o){var t=o.match(/^Google Maps API (error|warning): ([^\s]*)\s([^\s]*)(?:\s(.*))?/);t&&t.length&&t[0]&&e(".sow-google-map-canvas").each(function(o,t){var i=e(t);if(i.data("fallbackImage")){var a=i.data("fallbackImage");a.hasOwnProperty("img")&&i.append(a.img)}}),r.apply(window.console,arguments)},window.console.error=sowb.onLoadMapsApiError}e("body").append('<script async type="text/javascript" src="'+s+'">'),sowb.mapsApiInitialized=!0}}},sowb.setupGoogleMaps(),e(sowb).on("setup_widgets",sowb.setupGoogleMaps)}),window.sowb=sowb;
|
js/sow.jquery.fittext.js
CHANGED
@@ -55,6 +55,7 @@ jQuery( function( $ ){
|
|
55 |
fitTextWrapper.find( 'h1,h2,h3,h4,h5,h6' ).each( function () {
|
56 |
var $$ = $( this );
|
57 |
$$.fitText( compressor, {
|
|
|
58 |
maxFontSize: $$.css( 'font-size' )
|
59 |
} );
|
60 |
} );
|
55 |
fitTextWrapper.find( 'h1,h2,h3,h4,h5,h6' ).each( function () {
|
56 |
var $$ = $( this );
|
57 |
$$.fitText( compressor, {
|
58 |
+
minFontSize: '12px',
|
59 |
maxFontSize: $$.css( 'font-size' )
|
60 |
} );
|
61 |
} );
|
js/sow.jquery.fittext.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var sowb=window.sowb||{};!function(t){t.fn.fitText=function(i,e){var n=i||1,o=t.extend({minFontSize:Number.NEGATIVE_INFINITY,maxFontSize:Number.POSITIVE_INFINITY},e);return this.each(function(){var i=t(this),e=function(){i.css("font-size",Math.max(Math.min(i.width()/(10*n),parseFloat(o.maxFontSize)),parseFloat(o.minFontSize)))};e(),t(window).on("resize.fittext orientationchange.fittext",e)})}}(jQuery),jQuery(function(t){sowb.runFitText=function(){t(".so-widget-fittext-wrapper").each(function(){var i=t(this);if(!i.is(":visible")||i.data("fitTextDone"))return i;t(window).off("resize.fittext orientationchange.fittext");var e=i.data("fitTextCompressor")||.85;i.find("h1,h2,h3,h4,h5,h6").each(function(){var i=t(this);i.fitText(e,{maxFontSize:i.css("font-size")})}),i.data("fitTextDone",!0),i.trigger("fitTextDone")})},t(sowb).on("setup_widgets",sowb.runFitText),sowb.runFitText()}),window.sowb=sowb;
|
1 |
+
var sowb=window.sowb||{};!function(t){t.fn.fitText=function(i,e){var n=i||1,o=t.extend({minFontSize:Number.NEGATIVE_INFINITY,maxFontSize:Number.POSITIVE_INFINITY},e);return this.each(function(){var i=t(this),e=function(){i.css("font-size",Math.max(Math.min(i.width()/(10*n),parseFloat(o.maxFontSize)),parseFloat(o.minFontSize)))};e(),t(window).on("resize.fittext orientationchange.fittext",e)})}}(jQuery),jQuery(function(t){sowb.runFitText=function(){t(".so-widget-fittext-wrapper").each(function(){var i=t(this);if(!i.is(":visible")||i.data("fitTextDone"))return i;t(window).off("resize.fittext orientationchange.fittext");var e=i.data("fitTextCompressor")||.85;i.find("h1,h2,h3,h4,h5,h6").each(function(){var i=t(this);i.fitText(e,{minFontSize:"12px",maxFontSize:i.css("font-size")})}),i.data("fitTextDone",!0),i.trigger("fitTextDone")})},t(sowb).on("setup_widgets",sowb.runFitText),sowb.runFitText()}),window.sowb=sowb;
|
lang/so-widgets-bundle.pot
CHANGED
@@ -572,28 +572,28 @@ msgstr ""
|
|
572 |
msgid "Current Color"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: compat/
|
576 |
-
msgid "
|
577 |
msgstr ""
|
578 |
|
579 |
-
#: compat/
|
580 |
-
msgid "
|
581 |
msgstr ""
|
582 |
|
583 |
-
#: compat/
|
584 |
-
msgid "
|
585 |
msgstr ""
|
586 |
|
587 |
-
#: compat/
|
588 |
-
msgid "
|
589 |
msgstr ""
|
590 |
|
591 |
-
#: compat/
|
592 |
-
msgid "
|
593 |
msgstr ""
|
594 |
|
595 |
-
#: compat/
|
596 |
-
msgid "
|
597 |
msgstr ""
|
598 |
|
599 |
#: compat/visual-composer/visual-composer.php:38, compat/visual-composer/visual-composer.php:54
|
572 |
msgid "Current Color"
|
573 |
msgstr ""
|
574 |
|
575 |
+
#: compat/block-editor/widget-block.php:39, compat/visual-composer/visual-composer.php:77
|
576 |
+
msgid "Selecting a different widget will revert any changes. Continue?"
|
577 |
msgstr ""
|
578 |
|
579 |
+
#: compat/block-editor/widget-block.php:52
|
580 |
+
msgid "You need to select a widget type before you'll see anything here. :)"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: compat/block-editor/widget-block.php:73
|
584 |
+
msgid "Invalid widget class %s. Please make sure the widget has been activated in %sSiteOrigin Widgets%s."
|
585 |
msgstr ""
|
586 |
|
587 |
+
#: compat/builders.php:4
|
588 |
+
msgid "Beaver Builder"
|
589 |
msgstr ""
|
590 |
|
591 |
+
#: compat/builders.php:8
|
592 |
+
msgid "Elementor"
|
593 |
msgstr ""
|
594 |
|
595 |
+
#: compat/builders.php:12
|
596 |
+
msgid "Visual Composer"
|
597 |
msgstr ""
|
598 |
|
599 |
#: compat/visual-composer/visual-composer.php:38, compat/visual-composer/visual-composer.php:54
|
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: 4.9.1
|
5 |
-
Stable tag: 1.13.
|
6 |
-
Build time: 2018-
|
7 |
License: GPLv3 or later
|
8 |
Contributors: gpriday, braam-genis
|
9 |
Donate link: https://siteorigin.com/downloads/contribution/
|
@@ -65,6 +65,19 @@ The SiteOrigin Widgets Bundle is the perfect platform to build widgets for your
|
|
65 |
|
66 |
== Changelog ==
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
= 1.13.2 - 31 October 2018 =
|
69 |
* Builder field: Prevent error in PHP <= 5.4
|
70 |
* Avoid replacing repeater item id placeholders for child repeaters.
|
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: 4.9.1
|
5 |
+
Stable tag: 1.13.3
|
6 |
+
Build time: 2018-11-15T16:26:45-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.13.3 - 15 November 2018 =
|
69 |
+
* Contact: Fix checkboxes and radio alignment on android.
|
70 |
+
* FitText: Set minimum font size to ensure readability.
|
71 |
+
* TinyMCE field: Use correct editor when block editor is present.
|
72 |
+
* Google maps: Use correct info window text for markers.
|
73 |
+
* TinyMCE: Remove 'editor-buttons' style enqueue causing conflicts.
|
74 |
+
* TinyMCE field: Prevent adding multiple copies of media buttons.
|
75 |
+
* Image widget: if no alt text is supplied add an empty alt attribute.
|
76 |
+
* Repeaters: Reverted some commits causing multiple issues.
|
77 |
+
* WP 5: Fixed some styles in the block editor.
|
78 |
+
* Only setup form fields in the dialog when a PB edit widget dialog is opened.
|
79 |
+
* Multi-measurement field: Fix autoFill in block editor and attempt to fix in PHP <= 5.3.
|
80 |
+
|
81 |
= 1.13.2 - 31 October 2018 =
|
82 |
* Builder field: Prevent error in PHP <= 5.4
|
83 |
* Avoid replacing repeater item id placeholders for child repeaters.
|
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.13.
|
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.13.
|
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.13.3
|
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.13.3');
|
16 |
define('SOW_BUNDLE_BASE_FILE', __FILE__);
|
17 |
|
18 |
// Allow JS suffix to be pre-set
|
widgets/contact/styles/default.less
CHANGED
@@ -110,11 +110,13 @@
|
|
110 |
|
111 |
label {
|
112 |
margin-bottom: 0;
|
|
|
|
|
113 |
}
|
114 |
|
115 |
input {
|
116 |
float: left;
|
117 |
-
margin: 0.
|
118 |
height: auto;
|
119 |
}
|
120 |
}
|
110 |
|
111 |
label {
|
112 |
margin-bottom: 0;
|
113 |
+
display: flex;
|
114 |
+
align-items: center;
|
115 |
}
|
116 |
|
117 |
input {
|
118 |
float: left;
|
119 |
+
margin-right: 0.5em;
|
120 |
height: auto;
|
121 |
}
|
122 |
}
|
widgets/google-map/tpl/static-map.php
CHANGED
@@ -1,22 +1,22 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @var $destination_url
|
4 |
-
* @var $new_window
|
5 |
-
* @var $src_url
|
6 |
-
* @var $fallback_image_data
|
7 |
-
*/
|
8 |
-
?>
|
9 |
-
|
10 |
-
<?php if( !empty( $destination_url ) ): ?>
|
11 |
-
<a href="<?php echo sow_esc_url( $destination_url ) ?>" <?php echo $new_window ? 'target="_blank" rel="noopener noreferrer"' : '' ?>>
|
12 |
-
<?php endif; ?>
|
13 |
-
|
14 |
-
<img
|
15 |
-
class="sowb-google-map-static"
|
16 |
-
border="0"
|
17 |
-
src="<?php echo sow_esc_url( $src_url ) ?>"
|
18 |
-
data-fallback-image="<?php echo esc_attr( json_encode( $fallback_image_data ) ); ?>"
|
19 |
-
onerror="this.sowbLoadError = true;">
|
20 |
-
|
21 |
-
<?php
|
22 |
-
if( !empty( $destination_url ) ) echo '</a>';
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $destination_url
|
4 |
+
* @var $new_window
|
5 |
+
* @var $src_url
|
6 |
+
* @var $fallback_image_data
|
7 |
+
*/
|
8 |
+
?>
|
9 |
+
|
10 |
+
<?php if( !empty( $destination_url ) ): ?>
|
11 |
+
<a href="<?php echo sow_esc_url( $destination_url ) ?>" <?php echo $new_window ? 'target="_blank" rel="noopener noreferrer"' : '' ?>>
|
12 |
+
<?php endif; ?>
|
13 |
+
|
14 |
+
<img
|
15 |
+
class="sowb-google-map-static"
|
16 |
+
border="0"
|
17 |
+
src="<?php echo sow_esc_url( $src_url ) ?>"
|
18 |
+
data-fallback-image="<?php echo esc_attr( json_encode( $fallback_image_data ) ); ?>"
|
19 |
+
onerror="this.sowbLoadError = true;">
|
20 |
+
|
21 |
+
<?php
|
22 |
+
if( !empty( $destination_url ) ) echo '</a>';
|
widgets/image/tpl/default.php
CHANGED
@@ -1,29 +1,29 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @var $title
|
4 |
-
* @var $title_position
|
5 |
-
* @var $url
|
6 |
-
* @var $link_attributes
|
7 |
-
* @var $new_window
|
8 |
-
* @var $attributes
|
9 |
-
* @var $classes
|
10 |
-
*/
|
11 |
-
?>
|
12 |
-
|
13 |
-
<?php if( $title_position == 'above' ) : ?>
|
14 |
-
<?php echo $args['before_title'] . wp_kses_post( $title ) . $args['after_title']; ?>
|
15 |
-
<?php endif; ?>
|
16 |
-
|
17 |
-
<?php
|
18 |
-
|
19 |
-
?>
|
20 |
-
<div class="sow-image-container">
|
21 |
-
<?php if ( ! empty( $url ) ) : ?><a href="<?php echo sow_esc_url( $url ) ?>" <?php foreach( $link_attributes as $att => $val ) if ( ! empty( $val ) ) : echo $att.'="' . esc_attr( $val ) . '" '; endif; ?>><?php endif; ?>
|
22 |
-
<img <?php foreach( $attributes as $n => $v ) if ( ! empty( $v ) ) : echo $n.'="' . esc_attr( $v ) . '" '; endif; ?>
|
23 |
-
class="<?php echo esc_attr( implode(' ', $classes ) ) ?>"/>
|
24 |
-
<?php if ( ! empty( $url ) ) : ?></a><?php endif; ?>
|
25 |
-
</div>
|
26 |
-
|
27 |
-
<?php if( $title_position == 'below' ) : ?>
|
28 |
-
<?php echo $args['before_title'] . wp_kses_post( $title ) . $args['after_title']; ?>
|
29 |
-
<?php endif; ?>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var $title
|
4 |
+
* @var $title_position
|
5 |
+
* @var $url
|
6 |
+
* @var $link_attributes
|
7 |
+
* @var $new_window
|
8 |
+
* @var $attributes
|
9 |
+
* @var $classes
|
10 |
+
*/
|
11 |
+
?>
|
12 |
+
|
13 |
+
<?php if( $title_position == 'above' ) : ?>
|
14 |
+
<?php echo $args['before_title'] . wp_kses_post( $title ) . $args['after_title']; ?>
|
15 |
+
<?php endif; ?>
|
16 |
+
|
17 |
+
<?php
|
18 |
+
|
19 |
+
?>
|
20 |
+
<div class="sow-image-container">
|
21 |
+
<?php if ( ! empty( $url ) ) : ?><a href="<?php echo sow_esc_url( $url ) ?>" <?php foreach( $link_attributes as $att => $val ) if ( ! empty( $val ) ) : echo $att.'="' . esc_attr( $val ) . '" '; endif; ?>><?php endif; ?>
|
22 |
+
<img <?php foreach( $attributes as $n => $v ) if ( $n === 'alt' || ! empty( $v ) ) : echo $n.'="' . esc_attr( $v ) . '" '; endif; ?>
|
23 |
+
class="<?php echo esc_attr( implode(' ', $classes ) ) ?>"/>
|
24 |
+
<?php if ( ! empty( $url ) ) : ?></a><?php endif; ?>
|
25 |
+
</div>
|
26 |
+
|
27 |
+
<?php if( $title_position == 'below' ) : ?>
|
28 |
+
<?php echo $args['before_title'] . wp_kses_post( $title ) . $args['after_title']; ?>
|
29 |
+
<?php endif; ?>
|